[hibernate-commits] Hibernate SVN: r19714 - in core/branches/gradle2: hibernate-release and 22 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Thu Jun 10 12:31:34 EDT 2010
Author: steve.ebersole at jboss.com
Date: 2010-06-10 12:31:26 -0400 (Thu, 10 Jun 2010)
New Revision: 19714
Added:
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Book_Info.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Hibernate_Core_Reference_Guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Hibernate_Reference.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Revision_History.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/author_group.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/architecture.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/association_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/basic_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/batch.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/best_practices.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/bibliography.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/collection_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/component_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/configuration.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/events.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_mappings.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_parentchild.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_weblog.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/filters.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/inheritance_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/performance.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/persistent_classes.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/portability.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/preface.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_criteria.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_hql.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_sql.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/readonly.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/session_api.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/toolset_guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/transactions.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/tutorial.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/xml.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Conventions.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Legal_Notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/legal_notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Book_Info.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Hibernate_Reference.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/author_group.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/architecture.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/association_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/basic_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/batch.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/best_practices.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/bibliography.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/collection_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/component_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/configuration.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/events.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_mappings.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_parentchild.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_weblog.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/filters.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/inheritance_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/performance.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/persistent_classes.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/portability.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/preface.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_criteria.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_hql.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_sql.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/quickstart.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/readonly.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/session_api.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/toolset_guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/transactions.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/tutorial.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/xml.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Conventions.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Legal_Notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/legal_notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Book_Info.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Hibernate_Reference.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/author_group.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/architecture.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/association_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/basic_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/batch.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/best_practices.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/bibliography.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/collection_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/component_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/configuration.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/events.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_mappings.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_parentchild.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_weblog.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/filters.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/inheritance_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/performance.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/persistent_classes.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/portability.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/preface.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_criteria.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_hql.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_sql.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/quickstart.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/readonly.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/session_api.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/toolset_guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/transactions.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/tutorial.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/xml.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Conventions.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Legal_Notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/legal_notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Book_Info.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Hibernate_Reference.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/author_group.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/architecture.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/association_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/basic_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/batch.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/best_practices.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/bibliography.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/collection_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/component_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/configuration.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/events.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_mappings.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_parentchild.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_weblog.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/filters.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/inheritance_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/performance.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/persistent_classes.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/portability.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/preface.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_criteria.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_hql.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_sql.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/quickstart.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/session_api.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/toolset_guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/transactions.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/tutorial.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/xml.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Conventions.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Legal_Notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/legal_notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/pot/
core/branches/gradle2/hibernate-release/src/main/docbook/pot/Book_Info.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/Hibernate_Reference.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/author_group.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/architecture.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/association_mapping.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/basic_mapping.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/batch.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/best_practices.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/bibliography.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/collection_mapping.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/component_mapping.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/configuration.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/events.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_mappings.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_parentchild.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_weblog.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/filters.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/inheritance_mapping.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/performance.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/persistent_classes.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/portability.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/preface.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_criteria.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_hql.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_sql.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/readonly.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/session_api.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/toolset_guide.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/transactions.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/tutorial.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/xml.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Conventions.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Feedback.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Legal_Notice.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pot/legal_notice.pot
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Book_Info.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Hibernate_Reference.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/author_group.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/architecture.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/association_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/basic_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/batch.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/best_practices.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/bibliography.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/collection_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/component_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/configuration.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/events.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_mappings.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_parentchild.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_weblog.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/filters.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/inheritance_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/performance.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/persistent_classes.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/portability.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/preface.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_criteria.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_hql.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_sql.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/quickstart.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/readonly.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/session_api.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/toolset_guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/transactions.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/tutorial.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/xml.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Conventions.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Legal_Notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/legal_notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/publican.cfg
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Book_Info.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Hibernate_Reference.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/author_group.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/architecture.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/association_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/basic_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/batch.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/best_practices.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/bibliography.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/collection_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/component_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/configuration.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/events.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_mappings.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_parentchild.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_weblog.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/filters.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/inheritance_mapping.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/performance.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/persistent_classes.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/portability.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/preface.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_criteria.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_hql.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_sql.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/quickstart.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/readonly.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/session_api.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/toolset_guide.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/transactions.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/tutorial.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/xml.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Conventions.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Feedback.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po
core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/legal_notice.po
Removed:
core/branches/gradle2/documentation/manual/
Modified:
core/branches/gradle2/hibernate-release/hibernate-release.gradle
Log:
migrated docs to hibernate-release module (still think they ultimately fit better in hibernate-core) and finished adding translations to gradle build
Modified: core/branches/gradle2/hibernate-release/hibernate-release.gradle
===================================================================
--- core/branches/gradle2/hibernate-release/hibernate-release.gradle 2010-06-10 16:22:34 UTC (rev 19713)
+++ core/branches/gradle2/hibernate-release/hibernate-release.gradle 2010-06-10 16:31:26 UTC (rev 19714)
@@ -29,7 +29,7 @@
jdocbook {
masterSourceDocumentName = 'HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.xml'
- translation 'fr-FR'
+ translations = ['de-DE', 'es-ES', 'fr-FR', 'ja-JP', 'ko-KR', 'pt-BR', 'zh-CN']
profiling {
enabled = true
}
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Book_Info.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Book_Info.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Book_Info.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,313 @@
+# translation of Book_Info.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007, 2010 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-01-10 09:33+1100\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, fuzzy, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Hibernate Core Referenz-Handbuch"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&version;"
+msgstr ""
+
+#~ 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)"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,315 @@
+# translation of Feedback.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007, 2010 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2009-12-03T00:15:25\n"
+"PO-Revision-Date: 2010-01-11 10:23+1100\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Feedback"
+msgstr "Feedback"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you spot a typo in this guide, or if you have thought of a way to make "
+"this manual better, we would love to hear from you! Submit a report in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> against "
+"the Product: JBoss Enterprise Application Platform, Version: "
+"<replaceable><version></replaceable>, Component: <emphasis>Doc</"
+"emphasis>. If you have a suggestion for improving the documentation, try to "
+"be as specific as possible. If you have found an error, include the section "
+"number and some of the surrounding text so we can find it easily."
+msgstr ""
+"Falls SIe einen Tippfehler in diesem Handbuch finden oder eine Idee dazu haben "
+"wie wir es verbessern können, so würden wir uns freuen, von Ihnen zu hören! "
+"Machen Sie eine Meldung in "
+"<ulink url=\"http://jira.jboss.com/jira/browse/JBPAPP\">JIRA</ulink> zum "
+"Produkt: JBoss Enterprise Application Platform, Version: "
+"<replaceable><version></replaceable>, Komponente: <emphasis>Doc</"
+"emphasis>. Falls Sie einen Vorschlag zur Verbesserung der Dokumentation haben, "
+"versuchen Sie bitte so genau wie möglich zu sein. Falls Sie einen Fehler finden, "
+"informieren Sie uns bitte zur Nummer des Abschnitts und geben Sie einen Teil "
+"des umgebenden Texts an, damit wir diesen leichter finden."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,14 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-02-11T05:38:14\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"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Hibernate_Core_Reference_Guide.po
===================================================================
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Hibernate_Reference.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Hibernate_Reference.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Hibernate_Reference.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,29 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-02-11T05:38:14\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Revision_History.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Revision_History.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/Revision_History.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,311 @@
+# translation of Revision_History.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007, 2010 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Revision_History\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Revision History"
+msgstr "Ã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"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/author_group.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/author_group.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/author_group.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,149 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-02-11T05:38:14\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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/architecture.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/architecture.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/architecture.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,899 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr "Architektur"
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr "Ãbersicht"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The diagram below provides a high-level view of the Hibernate architecture:"
+msgstr "Eine (sehr) hohe Ansicht der Hibernate-Architektur:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We do not have the scope in this document to provide a more detailed view of "
+"all the runtime architectures available; Hibernate is flexible and supports "
+"several different approaches. We will, however, show the two extremes: "
+"\"minimal\" architecture and \"comprehensive\" architecture."
+msgstr ""
+"Wir würden gerne eine detaillierte Ansicht der Runtime-Architektur zeigen, "
+"jedoch ist Hibernate leider flexibel und unterstützt mehrere "
+"Vorgehensweisen. Daher erläutern wir hier die beiden Extreme. Bei der "
+"\"abgespeckten\" Architektur liefert die Anwendung ihre eigenen JDBC-"
+"Verbindungen und verwaltet ihre eigenen Transaktionen. Diese Vorgehensweise "
+"verwendet einen minimalen Teilsatz der APIs von Hibernate:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This next diagram illustrates how Hibernate utilizes database and "
+"configuration data to provide persistence services, and persistent objects, "
+"to the application."
+msgstr ""
+"Dieses Diagram zeigt, wie Hibernate die Datenbank und die "
+"Konfigurationsdaten verwendet, um Persistenzdienste (und persistente "
+"Objekte) für die Anwendung zu liefern."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The \"minimal\" architecture has the application provide its own JDBC "
+"connections and manage its own transactions. This approach uses a minimal "
+"subset of Hibernate's APIs:"
+msgstr ""
+"Wir würden gerne eine detaillierte Ansicht der Runtime-Architektur zeigen, "
+"jedoch ist Hibernate leider flexibel und unterstützt mehrere "
+"Vorgehensweisen. Daher erläutern wir hier die beiden Extreme. Bei der "
+"\"abgespeckten\" Architektur liefert die Anwendung ihre eigenen JDBC-"
+"Verbindungen und verwaltet ihre eigenen Transaktionen. Diese Vorgehensweise "
+"verwendet einen minimalen Teilsatz der APIs von Hibernate:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The \"comprehensive\" architecture abstracts the application away from the "
+"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
+msgstr ""
+"Die \"vollständige\" Architektur zieht die Anwendung von den zu Grunde "
+"liegenden JDBC/JTA APIs ab, so dass Hibernate sich um Details kümmern kann."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr ""
+"Nachfolgend sehen Sie einige Definitionen von Objekten innerhalb der "
+"Diagramme:"
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A threadsafe, immutable cache of compiled mappings for a single database. A "
+"factory for <literal>Session</literal> and a client of "
+"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> can "
+"hold an optional (second-level) cache of data that is reusable between "
+"transactions at a process, or cluster, level."
+msgstr ""
+"Ein thread-sicheres (unveränderliches) Cache kompilierter Mappings für eine "
+"einzelne Datenbank. Eine Factory für <literal>Session</literal> und ein "
+"Client von <literal>ConnectionProvider</literal>. Kann über ein optionales "
+"Datencache (zweite Ebene) verfügen, das zwischen Transaktionen "
+"wiederverwendet werden kann, sei es auf Prozess- oder auch auf Cluster-Ebene."
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr "Session (<literal>org.hibernate.Session</literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A single-threaded, short-lived object representing a conversation between "
+"the application and the persistent store. It wraps a JDBC connection and is "
+"a factory for <literal>Transaction</literal>. <literal>Session</literal> "
+"holds a mandatory first-level cache of persistent objects that are used when "
+"navigating the object graph or looking up objects by identifier."
+msgstr ""
+"Ein aus einem Thread bestehendes, kurzlebiges Objekt, dass einen Dialog "
+"zwischen der Anwendung und dem persistenten Speicher repräsentiert. Wrappt "
+"eine JDBC-Verbindung. Factory für <literal>Transaction</literal>. Enthält "
+"einen obligatorischen Cachespeicher persistenter Objekte (auf erster Ebene), "
+"die bei der Navigation des Objektgraphs oder bei der Suche nach Objekten "
+"durch den Bezeichner verwendet werden."
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr "Persistente Objekte und Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Short-lived, single threaded objects containing persistent state and "
+"business function. These can be ordinary JavaBeans/POJOs. They are "
+"associated with exactly one <literal>Session</literal>. Once the "
+"<literal>Session</literal> is closed, they will be detached and free to use "
+"in any application layer (for example, directly as data transfer objects to "
+"and from presentation)."
+msgstr ""
+"Kurzlebige, aus einem Thread bestehende Objekte, die persistenten Status und "
+"Unternehmensfunktionen beinhalten. Dabei kann es sich um gewöhnliche "
+"JavaBeans/POJOs handeln. Ihre Besonderheit besteht darin, dass sie zum "
+"aktuellen Zeitpunkt mit (genau einer) <literal>Session</literal> verbunden "
+"sind. Sobald die <literal>Session</literal> geschlossen wird, lösen sie sich "
+"und können innerhalb jeder Anwendungsschicht (etwa als direkte "
+"Datentransferobjekte einer Präsentation) verwendet werden."
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr "Temporäre und abgesetzte Objekte und Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Instances of persistent classes that are not currently associated with a "
+"<literal>Session</literal>. They may have been instantiated by the "
+"application and not yet persisted, or they may have been instantiated by a "
+"closed <literal>Session</literal>."
+msgstr ""
+"Instanzen persistenter Klassen, die zum aktuellen Zeitpunkt mit keiner "
+"<literal>Session</literal> verbunden sind. Sie können von der Anwendung "
+"instanziiert worden und (noch) nicht persistiert oder von einer "
+"geschlossenen <literal>Session</literal> instanziiert worden sein."
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "Transaktion (<literal>org.hibernate.Transaction</literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"(Optional) A single-threaded, short-lived object used by the application to "
+"specify atomic units of work. It abstracts the application from the "
+"underlying JDBC, JTA or CORBA transaction. A <literal>Session</literal> "
+"might span several <literal>Transaction</literal>s in some cases. However, "
+"transaction demarcation, either using the underlying API or "
+"<literal>Transaction</literal>, is never optional."
+msgstr ""
+"(Optional) Ein aus einem Thread bestehendes, kurzlebiges Objekt, das von der "
+"Anwendung zur Bestimmung elementarer Arbeitseinheiten verwendet wird. "
+"Abstrahiert die Anwendung von der zu Grunde liegenden JDBC-, JTA- oder CORBA-"
+"Transaktion. Eine <literal>Session</literal> kann manchmal mehrere "
+"<literal>Transaction</literal>s umfassen. Transaktionsabgrenzung, ob unter "
+"Verwendung der zu Grunde liegenden API oder <literal>Transaction</literal>, "
+"ist jedoch nie optional!"
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
+"literal>)"
+msgstr ""
+"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
+"literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"(Optional) A factory for, and pool of, JDBC connections. It abstracts the "
+"application from underlying <literal>Datasource</literal> or "
+"<literal>DriverManager</literal>. It is not exposed to application, but it "
+"can be extended and/or implemented by the developer."
+msgstr ""
+"(Optional) Eine Factory für (und ein Pool von) JDBC-Verbindungen. "
+"Abstrahiert die Anwendung von der zu Grunde liegenden <literal>Datasource</"
+"literal> oder <literal>DriverManager</literal>. Nicht der Anwendung "
+"ausgesetzt, kann jedoch vom Entwickler erweitert/implementiert werden."
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr ""
+"TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"(Optional) A factory for <literal>Transaction</literal> instances. It is not "
+"exposed to the application, but it can be extended and/or implemented by the "
+"developer."
+msgstr ""
+"(Optional) Eine Factory für <literal>Transaction</literal>-Instanzen. Nicht "
+"der Anwendung ausgesetzt, kann jedoch durch den Entwickler erweitert/"
+"implementiert werden."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr "Erweiterungsschnittstellen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate offers a range of optional extension interfaces you can implement "
+"to customize the behavior of your persistence layer. See the API "
+"documentation for details."
+msgstr ""
+"Hibernate bietet zahlreiche optionale Erweiterungsschnittstellen zur "
+"Implemetierung an, mit denen Sie das Verhalten Ihrer Persistenzschicht Ihren "
+"individuellen Wünschen anpassen können. Weitere Informationen finden Sie in "
+"der API-Dokumentation."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Given a \"minimal\" architecture, the application bypasses the "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> and/or "
+"<literal>ConnectionProvider</literal> APIs to communicate with JTA or JDBC "
+"directly."
+msgstr ""
+"Bei einer \"abgespeckten\" Architektur umgeht die Anwendung "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> und/"
+"oder <literal>ConnectionProvider</literal> APIs kommunizieren direkt mit JTA "
+"oder JDBC."
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr "Instanzstatus"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of a persistent class can be in one of three different states. "
+"These states are defined in relation to a <emphasis>persistence context</"
+"emphasis>. The Hibernate <literal>Session</literal> object is the "
+"persistence context. The three different states are as follows:"
+msgstr ""
+"Der Status der Instanz einer persistenten Klasse kann drei Formen haben, die "
+"unter Berücksichtigung eines <emphasis>Persistenzkontexts</emphasis> (sog. "
+"\"Persistence Context\") definiert sind. Das Hibernate <literal>Session</"
+"literal>-Objekt ist der Persistenzkontext:"
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr "transient"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The instance is not associated with any persistence context. It has no "
+"persistent identity or primary key value."
+msgstr ""
+"Die Instanz ist nicht (und war auch nie) mit einem Persistenzkontext "
+"assoziiert. Sie besitzt keine persistente Identität (Wert des primären "
+"Kernbegriffs)."
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr "persistent"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The instance is currently associated with a persistence context. It has a "
+"persistent identity (primary key value) and can have a corresponding row in "
+"the database. For a particular persistence context, Hibernate "
+"<emphasis>guarantees</emphasis> that persistent identity is equivalent to "
+"Java identity in relation to the in-memory location of the object."
+msgstr ""
+"Die Instanz wird zum aktuellen Zeitpunkt mit einem Persistenzkontext "
+"assoziiert. Sie besitzt eine persistente Identität (Wert des primären "
+"Kernbegriffs) und möglicherweise eine korrespondierende Reihe in der "
+"Datenbank. Für einen bestimmten Persistenzkontext <emphasis>garantiert</"
+"emphasis> Hibernate, dass die persistente Identität äquivalent zur Java "
+"Identität (Speicherstelle des Objekts) ist."
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr "detached (\"abgesetzt\")"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The instance was once associated with a persistence context, but that "
+"context was closed, or the instance was serialized to another process. It "
+"has a persistent identity and can have a corresponding row in the database. "
+"For detached instances, Hibernate does not guarantee the relationship "
+"between persistent identity and Java identity."
+msgstr ""
+"Die Instanz war vormals mit einem Persistenzkontext assoziiert, aber der "
+"Kontext wurde geschlossen oder die Instanz in einem anderen Vorgang "
+"serialisiert. Sie besitzt eine persistente Identität und möglicherweise eine "
+"korrespondierende Reihe in der Datenbank. Für Instanzen im abgesetzten "
+"Status (\"detached\") garantiert Hibernate keine Verbindung zwischen "
+"persistenter Identität und Java-Identität."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr "JMX-Integration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"JMX is the J2EE standard for the management of Java components. Hibernate "
+"can be managed via a JMX standard service. AN MBean implementation is "
+"provided in the distribution: <literal>org.hibernate.jmx.HibernateService</"
+"literal>."
+msgstr ""
+"JMX ist der J2EE-Standard für das Management von Java-Komponenten. Hibernate "
+"kann mittels eines JMX-Standardservice verwaltet werden. In der Distribution "
+"wird ein MBean in <literal>org.hibernate.jmx.HibernateService</literal> "
+"bereitgestellt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For an example of how to deploy Hibernate as a JMX service on the JBoss "
+"Application Server, please see the JBoss User Guide. JBoss AS also provides "
+"these benefits if you deploy using JMX:"
+msgstr ""
+"Ein Beispiel wie Hibernate als ein JMX-Dienst auf dem JBoss "
+"Applikationsserver ausgeführt wird, finden Sie im JBoss Benutzerhandbuch. "
+"Auf dem JBoss AS genieÃen Sie die gleichen Vorteile, wenn Sie JMX verwenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Session Management</emphasis>: the Hibernate <literal>Session</"
+"literal>'s life cycle can be automatically bound to the scope of a JTA "
+"transaction. This means that you no longer have to manually open and close "
+"the <literal>Session</literal>; this becomes the job of a JBoss EJB "
+"interceptor. You also do not have to worry about transaction demarcation in "
+"your code (if you would like to write a portable persistence layer use the "
+"optional Hibernate <literal>Transaction</literal> API for this). You call "
+"the <literal>HibernateContext</literal> to access a <literal>Session</"
+"literal>."
+msgstr ""
+"<emphasis>Session Management:</emphasis> Der Lebenszyklus der Hibernate "
+"<literal>Session</literal> kann automatisch an den Gültigkeitsbereich einer "
+"JTA-Transaktion gebunden werden. Das bedeutet, dass Sie die "
+"<literal>Session</literal> nicht mehr manuell öffnen und schlieÃen müssen, "
+"da diese Aufgabe von einem JBoss EJB-Interzeptor übernommen wird. Sie müssen "
+"sich auch nicht um die Transaktionsabgrenzung in Ihrem Code kümmern (auÃer "
+"natürlich Sie möchten eine übertragbare Persistenzschicht schreiben, in "
+"welchem Fall Sie die optionale Hibernate <literal>Transaction</literal>-API "
+"verwenden). Sie rufen den <literal>HibernateContext</literal> auf, um auf "
+"eine <literal>Session</literal> zuzugreifen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>HAR deployment</emphasis>: the Hibernate JMX service is deployed "
+"using a JBoss service deployment descriptor in an EAR and/or SAR file, as it "
+"supports all the usual configuration options of a Hibernate "
+"<literal>SessionFactory</literal>. However, you still need to name all your "
+"mapping files in the deployment descriptor. If you use the optional HAR "
+"deployment, JBoss will automatically detect all mapping files in your HAR "
+"file."
+msgstr ""
+"<emphasis>HAR-Deployment:</emphasis> In der Regel führen Sie den Hibernate "
+"JMX-Dienst unter Verwendung eines JBoss Service Deployment-Deskriptors (in "
+"einer EAR- und/oder SAR-Datei) aus. Dabei werden die üblichen "
+"Konfigurationsoptionen einer Hibernate <literal>SessionFactory</literal> "
+"unterstützt. Sie müssen jedoch noch alle Ihre Mapping-Dateien im Deployment-"
+"Deskriptor benennen. Falls Sie sich für die Benutzung des optionalen HAR-"
+"Deployments entscheiden, wird JBoss automatisch sämtliche Mapping-Dateien in "
+"Ihrer HAR-Datei auffinden."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
+msgstr ""
+"Weitere Informationen zu diesen Optionen finden Sie im JBoss AS "
+"Benutzerhandbuch."
+
+#. Tag: para
+#, 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 ""
+"Ein weiteres, als JMX-Dienst verfügbares Feature sind Runtime Hibernate "
+"Statistiken, siehe <xref linkend=\"configuration-optional-statistics\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr "JCA-Support"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate can also be configured as a JCA connector. Please see the website "
+"for more information. Please note, however, that at this stage Hibernate JCA "
+"support is under development."
+msgstr ""
+"Hibernate kann auch als ein JCA-Konnektor konfiguriert werden. Weitere "
+"Informationen dazu finden Sie auf der Website. Bitte beachten Sie, dass der "
+"Hibernate JCA-Support noch als experimentell gilt."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Contextual sessions"
+msgstr "Kontextbezogene Sessions"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Most applications using Hibernate need some form of \"contextual\" session, "
+"where a given session is in effect throughout the scope of a given context. "
+"However, across applications the definition of what constitutes a context is "
+"typically different; different contexts define different scopes to the "
+"notion of current. Applications using Hibernate prior to version 3.0 tended "
+"to utilize either home-grown <literal>ThreadLocal</literal>-based contextual "
+"sessions, helper classes such as <literal>HibernateUtil</literal>, or "
+"utilized third-party frameworks, such as Spring or Pico, which provided "
+"proxy/interception-based contextual sessions."
+msgstr ""
+"Die meisten Hibernate verwendenen Anwendungen benötigen irgendeine Form von "
+"\"kontextbezogenen\" Sessions (sog. \"contextual sessions\"), bei denen eine "
+"bestimmte Session innerhalb des gesamten Gültigkeitsbereichs eines "
+"bestimmten Kontextes gültig ist. Allerdings ist die Definition darüber, was "
+"einen Kontext ausmacht in der Regel unterschiedlich, und unterschiedliche "
+"Kontexte definieren unterschiedliche Gültigkeitsbereiche von aktuell. "
+"Anwendungen, die eine frühere Version als Hibernate 3.0 verwenden, neigen "
+"dazu Ihre eigenen <literal>ThreadLocal</literal>-basierten kontextbezogenen "
+"Sessions zu benutzen, Helferklassen wie <literal>HibernateUtil</literal> "
+"oder Rahmensysteme Dritter (wie Spring oder Pico), die Proxy/Interception-"
+"basierte kontextbezogene Sessions bereitstellen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
+"getCurrentSession()</literal> method. Initially, this assumed usage of "
+"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
+"transaction defined both the scope and context of a current session. Given "
+"the maturity of the numerous stand-alone <literal>JTA TransactionManager</"
+"literal> implementations, most, if not all, applications should be using "
+"<literal>JTA</literal> transaction management, whether or not they are "
+"deployed into a <literal>J2EE</literal> container. Based on that, the "
+"<literal>JTA</literal>-based contextual sessions are all you need to use."
+msgstr ""
+"Ab Version 3.0.1 verfügt Hibernate über eine <literal>SessionFactory."
+"getCurrentSession()</literal>-Methode. Ursprünglich wurde dabei vom Gebrauch "
+"der <literal>JTA</literal>-Transaktionen ausgegangen, bei denen die "
+"<literal>JTA</literal>-Transaktion sowohl den Gültigkeitsbereich als auch "
+"den Kontext einer aktuellen Session bestimmt. Das Hibernate-Team ist der "
+"Ansicht, dass in Anbetracht der zahlreichen selbständigen <literal>JTA "
+"TransactionManager</literal>-Implementierungen, die meisten (wenn nicht "
+"alle) Anwendungen das <literal>JTA</literal>-Transaktionsmanagement "
+"verwenden sollten - unabhängig davon, ob sie in einen <literal>J2EE</"
+"literal>-Container deployt werden oder nicht. Davon ausgehend sind die "
+"<literal>JTA</literal>-basierten, kontextbezogenen Sessions alles was Sie "
+"benötigen dürften."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, as of version 3.1, the processing behind <literal>SessionFactory."
+"getCurrentSession()</literal> is now pluggable. To that end, a new extension "
+"interface, <literal>org.hibernate.context.CurrentSessionContext</literal>, "
+"and a new configuration parameter, <literal>hibernate."
+"current_session_context_class</literal>, have been added to allow "
+"pluggability of the scope and context of defining current sessions."
+msgstr ""
+"Seit Version 3.1 ist die Bearbeitung hinter <literal>SessionFactory."
+"getCurrentSession()</literal> nun einbindbar. Eine neue "
+"Erweiterungsschnittstelle (<literal>org.hibernate.context."
+"CurrentSessionContext</literal>) sowie ein neuer Konfigurationsparameter "
+"(<literal>hibernate.current_session_context_class</literal>) kamen hinzu, um "
+"die Einbindbarkeit von dem die aktuelle Session definierenden "
+"Gültigkeitsbereich und Kontext zu ermöglichen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"See the Javadocs for the <literal>org.hibernate.context."
+"CurrentSessionContext</literal> interface for a detailed discussion of its "
+"contract. It defines a single method, <literal>currentSession()</literal>, "
+"by which the implementation is responsible for tracking the current "
+"contextual session. Out-of-the-box, Hibernate comes with three "
+"implementations of this interface:"
+msgstr ""
+"Weitere Informationen zu diesem Vertrag finden Sie in den Javadocs für das "
+"<literal>org.hibernate.context.CurrentSessionContext</literal>-Interface. Es "
+"wird eine einzelne Methode definiert <literal>currentSession()</literal>, "
+"mit der die Implementierung für die Verfolgung der aktuellen "
+"kontextbezogenen Session verantwortlich ist. Hibernate wird mit drei "
+"Implementierungen dieses Interface geliefert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.context.JTASessionContext</literal>: current sessions "
+"are tracked and scoped by a <literal>JTA</literal> transaction. The "
+"processing here is exactly the same as in the older JTA-only approach. See "
+"the Javadocs for details."
+msgstr ""
+"<literal>org.hibernate.context.JTASessionContext</literal> - aktuelle "
+"Sessions werden verfolgt und durch eine <literal>JTA</literal>-Transaktion "
+"begrenzt. Die Bearbeitung läuft hier genauso wie bei der älteren, "
+"ausschlieÃlich mit JTA arbeitenden Vorgehensweise. Weitere Informationen "
+"finden Sie in Javadocs."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.context.ThreadLocalSessionContext</literal>:current "
+"sessions are tracked by thread of execution. See the Javadocs for details."
+msgstr ""
+"<literal>org.hibernate.context.ThreadLocalSessionContext</literal> - "
+"aktuelle Sessions werden mittels Ausführungs-Thread verfolgt. Auch hierzu "
+"finden Sie weitere Informationen in Javadocs."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.context.ManagedSessionContext</literal>: current "
+"sessions are tracked by thread of execution. However, you are responsible to "
+"bind and unbind a <literal>Session</literal> instance with static methods on "
+"this class: it does not open, flush, or close a <literal>Session</literal>."
+msgstr ""
+"<literal>org.hibernate.context.ManagedSessionContext</literal> - aktuelle "
+"Sessions werden mittels Ausführungs-Thread verfolgt. Allerdings müssen Sie "
+"hier selbst eine <literal>Session</literal>-Instanz mit statischen Methoden "
+"an diese Klasse binden, eine <literal>Session</literal> wird nie geöffnet, "
+"geräumt oder geschlossen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first two implementations provide a \"one session - one database "
+"transaction\" programming model. This is 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 ""
+"Die ersten beiden Implementierungen bieten ein \"eine Session - eine "
+"Datenbanktransaktion\"-Programmiermodell, das auch als <emphasis>Session-per-"
+"Request</emphasis> (\"Session pro Anfrage\") bekannt ist und verwendet wird. "
+"Anfang und Ende einer Hibernate-Session werden durch die Dauer der "
+"Datenbanktransaktion bestimmt. Falls Sie eine progammatische "
+"Transaktionsabgrenzung in einfachem JSE ohne JTA verwenden, so empfehlen wir "
+"die Verwendung der Hibernate <literal>Transaction</literal>-API, um das zu "
+"Grunde liegende Transaktionssystem vor Ihrem Code zu verbergen. Falls Sie "
+"JTA verwenden, so benutzen Sie die JTA-Schnittstellen um Transaktionen "
+"abzugrenzen. Falls Sie einen EJB-Container ausführen, der CMT unterstützt, "
+"sind die Transaktionsrahmen deklarativ definiert, und Sie benötigen in Ihrem "
+"Code keine Transaktions- oder Sessionabgrenzungen. Weitere Informationen und "
+"Code-Beispiele finden Sie unter <xref linkend=\"transactions\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>hibernate.current_session_context_class</literal> configuration "
+"parameter defines which <literal>org.hibernate.context."
+"CurrentSessionContext</literal> implementation should be used. For backwards "
+"compatibility, if this configuration parameter is not set but a <literal>org."
+"hibernate.transaction.TransactionManagerLookup</literal> is configured, "
+"Hibernate will use the <literal>org.hibernate.context.JTASessionContext</"
+"literal>. Typically, the value of this parameter would just name the "
+"implementation class to use. For the three out-of-the-box implementations, "
+"however, there are three corresponding short names: \"jta\", \"thread\", and "
+"\"managed\"."
+msgstr ""
+"Der <literal>hibernate.current_session_context_class</literal> "
+"Konfigurationsparameter definiert, welche <literal>org.hibernate.context."
+"CurrentSessionContext</literal>-Implementierung verwendet wird. Bitte "
+"beachten Sie, dass für Abwärtskompatibilität - falls dieser "
+"Konfigurationsparameter nicht eingestellt, sondern <literal>org.hibernate."
+"transaction.TransactionManagerLookup</literal> konfiguriert ist - Hibernate "
+"<literal>org.hibernate.context.JTASessionContext</literal> verwendet. "
+"Normalerweise benennt der Wert dieses Parameters lediglich die zu "
+"verwendende Implementierungsklasse für die drei gelieferten "
+"Implementierungen, jedoch existieren drei entsprechende Kurznamen \"jta\", "
+"\"thread\" sowie \"managed\"."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/association_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/association_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/association_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1425 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr "Assoziations-Mappings"
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr "Einführung"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Assoziations-Mappings sind häufig die am schwierigsten einzustellenden "
+"Aspekte. In diesem Abschnitt gehen wir Schritt für Schritt die einzelnen "
+"Fälle durch, wobei wir zunächst auf unidirektionale Mappings eingehen, ehe "
+"wir mit bidirektionalen Fällen weitermachen. In sämtlichen Beispielen werden "
+"<literal>Person</literal> und <literal>Address</literal> verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Associations will be classified by multiplicity and whether or not they map "
+"to an intervening join table."
+msgstr ""
+"Wir klassifizieren Assoziationen danach, ob sie zu einer intervenierenden "
+"Verbundtabelle mappen sowie nach Multiplizität."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Nullbare Fremdschlüssel werden nicht als optimales Verfahren bei der "
+"herkömmlichen Datenmodellierung angesehen, daher verwenden wir in allen "
+"unseren Beispielen Fremdschlüssel die nicht Null sind. Das ist keine "
+"Anforderung von Hibernate und sämtliche Mappings funktionieren, wenn Sie die "
+"\"Nullability\"-Bedingungen aufheben."
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr "Unidirektionale Assoziationen"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Many-to-one"
+msgstr "many-to-one"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr ""
+"Eine <emphasis>unidirektionale \"Many-to-One\"-Assoziation</emphasis> ist "
+"der gängigste Typ unidirektionaler Assoziationen."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "One-to-one"
+msgstr "one-to-one"
+
+#. Tag: para
+#, 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 ""
+"Eine <emphasis>unidirektionale \"One-to-One\"-Assoziation an einem "
+"Fremdschlüssel</emphasis> ist fast identisch. Der einzige Unterschied "
+"besteht in der Spalte der eindeutigen Bedingung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a primary key</"
+"emphasis> usually uses a special id generator In this example, however, we "
+"have reversed the direction of the association:"
+msgstr ""
+"Eine <emphasis>unidirektionale \"One-to-One\"-Assoziation an einem "
+"Primärschlüssel</emphasis> verwendet in der Regel einen speziellen id-"
+"Generator. (Bitte beachten Sie, dass wir in diesem Beispiel die Richtung der "
+"Assoziation umgedreht haben)."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "One-to-many"
+msgstr "\"One-to-Many\""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Eine <emphasis>unidirektionale \"One-to-Many\"-Assoziation an einem "
+"Fremdschlüssel</emphasis> ist sehr ungewöhnlich und wird nicht empfohlen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr ""
+"Wir halten die Verwendung einer Verbundtabelle (sog. \"Join-Table\") bei "
+"dieser Art von Assoziation für besser."
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr "Unidirektionale Assoziationen mit Verbundtabellen"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Eine <emphasis>unidirektionale \"One-to-Many\"-Assoziation an einer "
+"Verbundtabelle</emphasis> ist vorzuziehen. Bitte beachten Sie, dass durch "
+"die Spezifizierung von <literal>unique=\"true\"</literal>, die Multiplizität "
+"von \"Many-to-Many\" zu \"One-to-Many\" geändert wurde."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association on a join table</"
+"emphasis> is common when the association is optional. For example:"
+msgstr ""
+"Eine <emphasis>unidirektionale \"Many-to-One\"-Assoziation an einer "
+"Verbundtabelle</emphasis> ist recht gängig, wenn es sich um eine optionale "
+"Assoziation handelt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"Eine <emphasis>unidirektionale \"One-to-One\"-Assoziation an einer "
+"Verbundtabelle</emphasis> ist zwar sehr ungewöhnlich, aber möglich."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Many-to-many"
+msgstr "\"Many-to-Many\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, here is an example of a <emphasis>unidirectional many-to-many "
+"association</emphasis>."
+msgstr ""
+"Es gibt jedoch auch eine <emphasis>unidirektionale \"Many-to-Many\"-"
+"Assoziation</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "Bidirektionale Assoziationen"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr "\"One-to-Many\" / \"Many-to-One\""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Eine <emphasis>bidirektionale \"Many-to-One\"-Assoziation</emphasis> ist der "
+"gängigste Assoziationstyp. (Die standardmäÃige \"Parent/Child\"-Beziehung)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you use a <literal>List</literal>, or other indexed collection, set the "
+"<literal>key</literal> column of the foreign key to <literal>not null</"
+"literal>. Hibernate will manage the association from the collections side to "
+"maintain the index of each element, making the other side virtually inverse "
+"by setting <literal>update=\"false\"</literal> and <literal>insert=\"false"
+"\"</literal>:"
+msgstr ""
+"Falls Sie eine <literal>List</literal> (oder eine andere indizierte "
+"Collection) verwenden, müssen Sie die <literal>key</literal>-Spalte des "
+"Fremdschlüssels auf <literal>not null</literal> setzen und Hibernate die "
+"Assoziation von Collection-Seite aus verwalten lassen, um den Index jeden "
+"Elements aufrechtzuerhalten (die andere Seite durch Einstellung von "
+"<literal>update=\"false\"</literal> und <literal>insert=\"false\"</literal> "
+"somit invertierend):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
+"important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal><key></literal> element of the collection mapping. Do not "
+"only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal><column></literal> element, but on the <literal><key></"
+"literal> element."
+msgstr ""
+"Es ist wichtig, <literal>not-null=\"true\"</literal> im <literal><key>"
+"</literal>-Element des Collection-Mappings zu definieren, falls die zu "
+"Grunde liegende Spalte des Fremdschlüssels <literal>NOT NULL</literal> ist. "
+"Deklarieren Sie nicht nur <literal>not-null=\"true\"</literal> für ein "
+"mögliches verschachteltes <literal><column></literal>-Element, sondern "
+"für das <literal><key></literal>-Element."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is common:"
+msgstr ""
+"Eine <emphasis>bidirektionale \"One-to-One\"-Assoziation an einem "
+"Fremdschlüssel</emphasis> ist recht gängig."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator:"
+msgstr ""
+"Eine <emphasis>bidirektionale \"One-to-One\"-Assoziation an einem "
+"Primärschlüssel</emphasis> verwendet einen speziellen id-Generator."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr "Bidirektionale Assoziationen mit Verbundtabellen"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Eine <emphasis>bidirektionale \"One-to-Many\"-Assoziation an einer "
+"Verbundtabelle</emphasis>. Bitte beachten Sie, dass <literal>inverse=\"true"
+"\"</literal> sich an beiden Enden der Assoziation, der Datenerfassung oder "
+"des \"Join\" befinden kann."
+
+#. Tag: title
+#, no-c-format
+msgid "one to one"
+msgstr "\"One-to-One\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"Eine <emphasis>bidirektionale \"One-to-One\"-Assoziation an einer "
+"Verbundtabelle</emphasis> ist zwar ungewöhnlich, aber möglich."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here is an example of a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
+msgstr ""
+"Desweiteren gibt es eine <emphasis>bidirektionale \"Many-to-Many\"-"
+"Assoziation</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr "Komplexere Assoziations-Mappings"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Komplexere Assoziationsverbünde sind <emphasis>sehr</emphasis> selten. "
+"Hibernate macht es möglich, auch komplexe Situationen durch Verwendung von "
+"im Mapping-Dokument eingebetteten SQL-Fragmenten zu berarbeiten. Wenn etwa "
+"eine Tabelle mit historischen Daten zu Kontoinformationen "
+"<literal>accountNumber</literal>, <literal>effectiveEndDate</literal> und "
+"<literal>effectiveStartDate</literal>-Spalten definiert, so lautet das "
+"Mapping wie folgt:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can then map an association to the <emphasis>current</emphasis> "
+"instance, the one with null <literal>effectiveEndDate</literal>, by using:"
+msgstr ""
+"AnschlieÃend kann eine Assoziation zur <emphasis>aktuellen</emphasis> "
+"Instanz gemappt werden (diejenige mit \"Null\" <literal>effectiveEndDate</"
+"literal>). Dies geschieht unter Verwendung von:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In a more complex example, imagine that the association between "
+"<literal>Employee</literal> and <literal>Organization</literal> is "
+"maintained in an <literal>Employment</literal> table full of historical "
+"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 ""
+"Bei einem komplexeren Beispiel könnte etwa die Assoziation zwischen "
+"<literal>Employee</literal> und <literal>Organization</literal> in einer "
+"<literal>Employment</literal>-Tabelle voll historischer Beschäftigungsdaten "
+"geführt werden. Eine Assoziation zum <emphasis>aktuellsten</emphasis> "
+"Arbeitgeber eines Beschäftigten (derjenige mit dem aktuellsten "
+"<literal>startDate</literal>) könnte folgendermaÃen gemappt werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This functionality allows a degree of creativity and flexibility, but it is "
+"more practical to handle these kinds of cases using HQL or a criteria query."
+msgstr ""
+"Diese Funktionalität erlaubt es Ihnen zwar kreativ zu sein, aber es ist in "
+"der Regel praktischer diese Fälle mittels HQL oder einer Kriterienanfrage zu "
+"behandeln."
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint \n"
+#~ " not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint\n"
+#~ " not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, \n"
+#~ " primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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\"/"
+#~ ">"
+
+#, fuzzy
+#~ 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 ""
+#~ "<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/basic_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/basic_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/basic_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,6283 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr "Grundlagen des O/R Mappings"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr "Mapping-Deklaration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Object/relational mappings are usually defined in an XML document. The "
+"mapping document is designed to be readable and hand-editable. The mapping "
+"language is Java-centric, meaning that mappings are constructed around "
+"persistent class declarations and not table declarations."
+msgstr ""
+"Objekt/relationale Mappings sind in der Regel in einem XML-Dokument "
+"definiert. Das Mapping-Dokument ist so angelegt, dass es lesbar und manuell "
+"veränderbar ist. Die Mapping-Sprache ist Java-zentrisch, d.h. Mappings sind "
+"um die Deklarationen persistenter Klassen und nicht um Tabellen-"
+"Deklarationen konstruiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please note that even though many Hibernate users choose to write the XML by "
+"hand, a number of tools exist to generate the mapping document. These "
+"include XDoclet, Middlegen and AndroMDA."
+msgstr ""
+"Bitte beachten Sie, dass - obwohl viele Benutzer von Hibernate XML manuell "
+"schreiben - es eine Reihe von Tools zur Generierung des Mapping-Dokuments "
+"gibt, darunter XDoclet, Middlegen und AndroMDA."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is an example mapping:"
+msgstr "Beginnen wir mit einem Beispiel-Mapping:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will now discuss the content of the mapping document. We will only "
+"describe, however, the document elements and attributes that are used by "
+"Hibernate at runtime. The mapping document also contains some extra optional "
+"attributes and elements that affect the database schemas exported by the "
+"schema export tool (for example, the <literal> not-null</literal> attribute)."
+msgstr ""
+"Wir gehen nun auf den Inhalt des Mapping-Dokuments ein. Es werden nur die "
+"von Hibernate zur Runtime verwendeten Elemente und Attribute des Dokuments "
+"erläutert. Das Mapping-Dokument enthält auÃerdem einige optionale Attribute "
+"und Elemente, die Einfluss auf die vom Schema-Export-Tool exportierten "
+"Datenbankschemas haben. (Zum Beispiel das <literal> not-null</literal>-"
+"Attribut)."
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr "Doctype"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All XML mappings should declare the doctype shown. The actual DTD can be "
+"found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/"
+"hibernate </literal>, or in <literal>hibernate3.jar</literal>. Hibernate "
+"will always look for the DTD in its classpath first. If you experience "
+"lookups of the DTD using an Internet connection, check the DTD declaration "
+"against the contents of your classpath."
+msgstr ""
+"Alle XML-Mappings sollten den gezeigten doctype deklarieren. Die "
+"tatsächliche Dokumenttyp-Definition (\"DTD\") kann in der URL oben, im "
+"Verzeichnis <literal>hibernate-x.x.x/src/org/hibernate </literal> oder in "
+"<literal>hibernate3.jar</literal> gefunden werden. Hibernate wird stets "
+"zuerst in seinem Klassenpfad nach der DTD suchen. Falls es bei Ihnen zu "
+"Suchläufen der DTD mittels einer Internetverbindung kommt, überprüfen Sie "
+"Ihre DTD-Deklaration hinsichtlich der Inhalte Ihres Klassenpfads."
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr "EntityResolver"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will first attempt to resolve DTDs in its classpath. It does this "
+"is by registering a custom <literal>org.xml.sax.EntityResolver</literal> "
+"implementation with the SAXReader it uses to read in the xml files. This "
+"custom <literal>EntityResolver</literal> recognizes two different systemId "
+"namespaces:"
+msgstr ""
+"Wie bereits erwähnt, wird Hibernate zuerst versuchen, DTDs in seinem "
+"Klassenpfad aufzulösen. Dies geschieht, indem eine anwenderdefinierte "
+"<literal>org.xml.sax.EntityResolver</literal>-Implementierung mit dem "
+"SAXReader, der zum Lesen der xml-Dateien verwendet wird, registriert wird. "
+"Dieser anwenderorientierte <literal>EntityResolver</literal> erkennt zwei "
+"verschiedene \"systemId\"-Namensräume."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"a <literal>hibernate namespace</literal> is recognized whenever the resolver "
+"encounters a systemId starting with <literal>http://hibernate.sourceforge."
+"net/</literal>. The resolver attempts to resolve these entities via the "
+"classloader which loaded the Hibernate classes."
+msgstr ""
+"ein <literal>hibernate namespace</literal> wird erkannt, sobald der "
+"\"Resolver\" (Auflöser) einer mit <literal>http://hibernate.sourceforge.net/"
+"</literal> beginnenden systemId begegnet. Der Resolver versucht diese "
+"Entities über den Klassenlader (sog. \"Classloader\"), der die Hibernate-"
+"Klassen geladen hat, aufzulösen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"a <literal>user namespace</literal> is recognized whenever the resolver "
+"encounters a systemId using a <literal>classpath://</literal> URL protocol. "
+"The resolver will attempt to resolve these entities via (1) the current "
+"thread context classloader and (2) the classloader which loaded the "
+"Hibernate classes."
+msgstr ""
+"ein <literal>user namespace</literal> wird erkannt, sobald der Resolver "
+"einem <literal>classpath://</literal> URL-Protokoll verwendenden systemId "
+"begegnet. Der Resolver wird versuchen, diese Entities über (1) den aktuellen "
+"Thread-Kontext-Klassenlader und (2) den Klassenlader, der die Hibernate-"
+"Klassen geladen hat, aufzulösen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr "Ein Beispiel der Verwendung des Benutzer-Namespacing:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>types.xml</literal> is a resource in the <literal>your."
+"domain</literal> package and contains a custom <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
+msgstr ""
+"Wo <literal>types.xml</literal> eine Ressource in im <literal>your.domain</"
+"literal> Paket ist und eine anwenderdefinierte <xref linkend=\"mapping-types-"
+"custom\"/>-Typedef enthält."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Hibernate-mapping"
+msgstr "hibernate-mapping"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This element has several optional attributes. The <literal>schema</literal> "
+"and <literal>catalog</literal> attributes specify that tables referred to in "
+"this mapping belong to the named schema and/or catalog. If they are "
+"specified, tablenames will be qualified by the given schema and catalog "
+"names. If they are missing, tablenames will be unqualified. The "
+"<literal>default-cascade</literal> attribute specifies what cascade style "
+"should be assumed for properties and collections that do not specify a "
+"<literal>cascade</literal> attribute. By default, the <literal>auto-import</"
+"literal> attribute allows you to use unqualified class names in the query "
+"language."
+msgstr ""
+"Dieses Element besitzt mehrere optionale Attribute. Die <literal>schema</"
+"literal> und <literal>catalog</literal>-Attribute spezifizieren, dass die in "
+"diesem Mapping aufgeführten Tabellen zum genannten Schema und/oder Katalog "
+"gehören. Falls bestimmt, werden Tabellennamen durch die gegebenen Schema- "
+"und Katalognamen definiert. Falls nicht vorhanden, so bleiben die "
+"Tabellennamen undefiniert. Das <literal>default-cascade</literal>-Attribut "
+"bestimmt, welcher Weitergabestil (sog. \"Cascade-Style\" für Properties und "
+"Collections angenommen werden sollte, die kein <literal>cascade</literal>-"
+"Attribut spezifizieren. Das <literal>auto-import</literal>-Attribut erlaubt "
+"die Verwendung undefinierter Klassennamen in der Abfragensprache in der "
+"Standardeinstellung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr "<literal>schema</literal> (optional): Der Name eines Datenbankschemas."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr ""
+"<literal>catalog</literal> (optional): Der Name eines Datenbankkatalogs."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>default-cascade</literal> (optional - defaults to <literal>none</"
+"literal>): a default cascade style."
+msgstr ""
+"<literal>default-cascade</literal> (optional - die Standardeinstellung "
+"lautet <literal>none</literal>): Ein standardmäÃiger Weitergabestil "
+"(\"Cascade-Style\")."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>default-access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate should use for accessing all properties. "
+"It can be a custom implementation of <literal>PropertyAccessor</literal>."
+msgstr ""
+"<literal>default-access</literal> (optional - der Standard ist "
+"<literal>property</literal>): Die Strategie, die Hibernate für den Zugriff "
+"auf alle Properties benutzen sollte. Kann eine anwenderdefinierte "
+"Implementierung von <literal>PropertyAccessor</literal> sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>default-lazy</literal> (optional - defaults to <literal>true</"
+"literal>): the default value for unspecified <literal>lazy</literal> "
+"attributes of class and collection mappings."
+msgstr ""
+"<literal>default-lazy</literal> (optional - die Standardeinstellung lautet "
+"<literal>true</literal>): Der Standardwert für nicht spezifizierte "
+"<literal>lazy</literal> Attribute von Klassen- und Collection-Mappings."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>auto-import</literal> (optional - defaults to <literal>true</"
+"literal>): specifies whether we can use unqualified class names of classes "
+"in this mapping in the query language."
+msgstr ""
+"<literal>auto-import</literal> (optional - die Standardeinstellung lautet "
+"<literal>true</literal>): Legt fest, ob in der Abfragensprache ein "
+"undefinierter Klassenname verwendet werden kann (von Klassen in diesem "
+"Mapping)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>package</literal> (optional): specifies a package prefix to use for "
+"unqualified class names in the mapping document."
+msgstr ""
+"<literal>package</literal> (optional): Spezifiziert einen Paket-Präfix, der "
+"für undefinierte Klassennamen im Mapping-Dokument angenommen werden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you have two persistent classes with the same unqualified name, you "
+"should set <literal>auto-import=\"false\"</literal>. An exception will "
+"result if you attempt to assign two classes to the same \"imported\" name."
+msgstr ""
+"Falls Sie zwei persistente Klassen mit demselben (undefinierten) Namen "
+"besitzen, sollten Sie die Einstellung <literal>auto-import=\"false\"</"
+"literal> vornehmen. Hibernate wird eine Ausnahme melden, wenn Sie versuchen, "
+"zwei Klassen demselben \"importierten\" Namen zuzuordnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>hibernate-mapping</literal> element allows you to nest several "
+"persistent <literal><class></literal> mappings, as shown above. It is, "
+"however, good practice (and expected by some tools) to map only a single "
+"persistent class, or a single class hierarchy, in one mapping file and name "
+"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
+"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
+"<literal>Animal.hbm.xml</literal>."
+msgstr ""
+"Bitte beachten Sie, dass das <literal>hibernate-mapping</literal>-Element es "
+"Ihnen ermöglicht, mehrere persistente <literal><class></literal>-"
+"Mappings (wie oben dargestellt) zu verschachteln. Es ist jedoch eine gute "
+"Angewohnheit (und wird von einigen Tools vorausgesetzt) nur eine einzelne "
+"persistente Klasse (oder eine Einzelklassenhierarchie) in einer Mapping-"
+"Datei zu mappen und diese nach der persistenten Superklasse zu benennen, z."
+"B. <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal> oder - "
+"falls Sie \"Inheritance\" (d.h. Vererbung) verwenden - <literal>Animal.hbm."
+"xml</literal>."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Class"
+msgstr "subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can declare a persistent class using the <literal>class</literal> "
+"element. For example:"
+msgstr ""
+"Sie können unter Verwendung des <literal>class</literal>-Elements eine "
+"persistente Klasse deklarieren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal> (optional): the fully qualified Java class name of "
+"the persistent class or interface. If this attribute is missing, it is "
+"assumed that the mapping is for a non-POJO entity."
+msgstr ""
+"<literal>name</literal> (optional): Der vollständige Java-Klassenname der "
+"persistenten Klasse (oder des Interface). Falls dieses Attribut fehlt, wird "
+"angenommen, dass es sich um das Mapping für eine nicht-POJO Entity handelt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>table</literal> (optional - defaults to the unqualified class "
+"name): the name of its database table."
+msgstr ""
+"<literal>table</literal> (optional - Standardeinstellung ist der "
+"undefinierte Klassenname): Der Name der Datenbanktabelle."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): a value that distinguishes individual subclasses that is used for "
+"polymorphic behavior. Acceptable values include <literal>null</literal> and "
+"<literal>not null</literal>."
+msgstr ""
+"<literal>discriminator-value</literal> (optional - Standard ist der "
+"Klassenname): Ein Wert, der zwischen individuellen Subklassen unterscheidet "
+"und für polymorphes Verhalten verwendet wird. Akzeptierte Werte sind "
+"<literal>null</literal> und <literal>not null</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
+"specifies that instances of the class are (not) mutable."
+msgstr ""
+"<literal>mutable</literal> (optional, Standardeinstellung <literal>true</"
+"literal>): Legt fest, dass die Instanzen der Klasse (nicht) variabel sind."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): overrides the schema name specified by "
+"the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>schema</literal> (optional): Setzt den vom Hauptverzeichnis "
+"<literal><hibernate-mapping></literal>-Element spezifizierten "
+"Schemanamen auÃer Kraft."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>catalog</literal> (optional): overrides the catalog name specified "
+"by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>catalog</literal> (optional): Setzt den vom Hauptverzeichnis (\"Root"
+"\") <literal><hibernate-mapping></literal>-Element spezifizierten "
+"Katalognamen auÃer Kraft."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies an interface to use for lazy "
+"initializing proxies. You can specify the name of the class itself."
+msgstr ""
+"<literal>proxy</literal> (optional): Bestimmt ein zu verwendendes Interface "
+"für die Initialisierung von Proxies nur bei Bedarf (sog. \"Lazy Initializing "
+"Proxies\"). Sie können den Namen der Klasse selbst festlegen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>dynamic-update</literal> (optional - defaults to <literal>false</"
+"literal>): specifies that <literal>UPDATE</literal> SQL should be generated "
+"at runtime and can contain only those columns whose values have changed."
+msgstr ""
+"<literal>dynamic-update</literal> (optional, Standardeinstellung "
+"<literal>false</literal>): Bestimmt, dass <literal>UPDATE</literal> SQL zur "
+"Runtime generiert wird und nur diejenigen Spalten enthalten soll, deren "
+"Werte sich geändert haben."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>dynamic-insert</literal> (optional - defaults to <literal>false</"
+"literal>): specifies that <literal>INSERT</literal> SQL should be generated "
+"at runtime and contain only the columns whose values are not null."
+msgstr ""
+"<literal>dynamic-insert</literal> (optional, Standardeinstellung "
+"<literal>false</literal>): Bestimmt, dass <literal>INSERT</literal> SQL zur "
+"Runtime generiert wird und nur diejenigen Spalten enthalten soll, deren "
+"Werte nicht \"Null\" sind."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>select-before-update</literal> (optional - defaults to "
+"<literal>false</literal>): specifies that Hibernate should <emphasis>never</"
+"emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that "
+"an object is actually modified. Only when a transient object has been "
+"associated with a new session using <literal>update()</literal>, will "
+"Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an "
+"<literal>UPDATE</literal> is actually required."
+msgstr ""
+"<literal>select-before-update</literal> (optional, Standardeinstellung "
+"<literal>false</literal>): Bestimmt, dass Hibernate <emphasis>nie</emphasis> "
+"ein SQL <literal>UPDATE</literal> durchführt, auÃer es ist ganz sicher, dass "
+"ein Objekt tatsächlich verändert wurde. In bestimmten Fällen (nur wenn ein "
+"transientes Objekt unter Verwendung von <literal>update()</literal> mit "
+"einer neuen Session in Verbindung gebracht wird), bedeutet dies, dass "
+"Hibernate ein extra SQL <literal>SELECT</literal> durchführen wird, um zu "
+"bestimmen, ob ein <literal>UPDATE</literal> tatsächlich erforderlich ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>polymorphism</literal> (optional - defaults to <literal>implicit</"
+"literal>): determines whether implicit or explicit query polymorphism is "
+"used."
+msgstr ""
+"<literal>polymorphism</literal> (optional, Standardeinstellung "
+"<literal>implicit</literal>): Bestimmt, ob implizite oder explizite "
+"Polymorphie für Anfragen verwendet wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>where</literal> (optional): specifies an arbitrary SQL "
+"<literal>WHERE</literal> condition to be used when retrieving objects of "
+"this class."
+msgstr ""
+"<literal>where</literal> (optional) legt eine beliebige SQL <literal>WHERE</"
+"literal>-Bedingung zur Verwendung beim Aufruf von Objekten dieser Klasse fest"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>persister</literal> (optional): specifies a custom "
+"<literal>ClassPersister</literal>."
+msgstr ""
+"<literal>persister</literal> (optional): Spezifiziert einen "
+"anwenderdefinierten <literal>ClassPersister</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): "
+"specifies a \"batch size\" for fetching instances of this class by "
+"identifier."
+msgstr ""
+"<literal>batch-size</literal> (optional, Standardeinstellung <literal>1</"
+"literal>) bestimmt eine StapelgröÃe (sog. \"Batch Size\") für den Abruf von "
+"Instanzen dieser Klasse durch den Bezeichner."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>version</"
+"literal>): determines the optimistic locking strategy."
+msgstr ""
+"<literal>optimistic-lock</literal> (optional, die Standardeinstellung lautet "
+"<literal>version</literal>): Bestimmt die Strategie für das optimistische "
+"Sperren (sog. \"Optimistic Locking\")."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional): lazy fetching can be disabled by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"<literal>lazy</literal> (optional): Mit der Einstellung <literal>lazy=\"false"
+"\"</literal> deaktivieren Sie \"Lazy Fetching\" (d.h. das Nachladen "
+"assoziierter Objekte bei Bedarf) vollständig."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional - defaults to the class name): "
+"Hibernate3 allows a class to be mapped multiple times, potentially to "
+"different tables. It also allows entity mappings that are represented by "
+"Maps or XML at the Java level. In these cases, you should provide an "
+"explicit arbitrary name for the entity. See <xref linkend=\"persistent-"
+"classes-dynamicmodels\" /> and <xref linkend=\"xml\" /> for more information."
+msgstr ""
+"<literal>entity-name</literal> (optional, Standardeinstellung ist der "
+"Klassenname): Hibernate3 ermöglicht das mehrfache Mappen einer Klasse "
+"(eventuell zu verschiedenen Tabellen) sowie durch Maps oder XML "
+"repräsentierte Entity-Mappings auf Java-Ebene. In diesen Fällen sollte Sie "
+"einen expliziten arbiträren Namen für die Entity bereitstellen. Unter <xref "
+"linkend=\"persistent-classes-dynamicmodels\"/> und <xref linkend=\"xml\"/> "
+"finden Sie weitere Information hierzu."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>check</literal> (optional): an SQL expression used to generate a "
+"multi-row <emphasis>check</emphasis> constraint for automatic schema "
+"generation."
+msgstr ""
+"<literal>check</literal> (optional): Ein SQL-Ausdruck wird verwendet, um "
+"eine <emphasis>Datenüberprüfungs</emphasis>bedingung mehrerer Reihen für die "
+"automatische Schemagenerierung zu erstellen. "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. "
+"On Oracle, for example, Hibernate can use the <literal>rowid</literal> extra "
+"column for fast updates once this option has been set to <literal>rowid</"
+"literal>. A ROWID is an implementation detail and represents the physical "
+"location of a stored tuple."
+msgstr ""
+"<literal>rowid</literal> (optional): Hibernate kann so genannte ROWIDs bei "
+"Datenbanken verwenden, die z.B. Oracle unterstützen. Hibernate kann die "
+"Extraspalte von<literal>rowid</literal> für schnelle Aktualisierungen "
+"verwenden, wenn Sie diese Option mit der Einstellung <literal>rowid</"
+"literal> wählen. Eine ROWID ist ein Implementierungsdetail und repräsentiert "
+"den realen Standort eines gespeicherten Tupel."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>subselect</literal> (optional): maps an immutable and read-only "
+"entity to a database subselect. This is useful if you want to have a view "
+"instead of a base table. See below for more information."
+msgstr ""
+"<literal>subselect</literal> (optional): Mappt eine unveränderbare und "
+"schreibgeschützte Entity zu einer Datenbankunterauswahl (sog. \"Database "
+"Subselect\"). Das ist von Nutzen, wenn Sie statt der Basistabelle eine "
+"Ansicht wünschen, aber nicht haben. Weitere Informationen finden Sie unten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>abstract</literal> (optional): is used to mark abstract "
+"superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal> (optional): Wird verwendet, um abstrakte "
+"Superklassen in <literal><union-subclass></literal>-Hierarchien zu "
+"kennzeichnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is acceptable for the named persistent class to be an interface. You can "
+"declare implementing classes of that interface using the <literal><"
+"subclass></literal> element. You can persist any <emphasis>static</"
+"emphasis> inner class. Specify the class name using the standard form i.e. "
+"<literal>e.g.Foo$Bar</literal>."
+msgstr ""
+"Es ist völlig in Ordnung, wenn es sich bei der benannten persistenten Klasse "
+"um ein Interface handelt. Sie würden in diesem Fall implemetierende Klassen "
+"dieses Interface unter Verwendung des <literal><subclass></literal>-"
+"Elements deklarieren. Sie können jegliche <emphasis>static</emphasis> innere "
+"Klassen (sog. \"inner class\") persistieren. Der Klassenname sollte unter "
+"Verwendung des Standardformulars d.h. <literal>eg.Foo$Bar</literal> "
+"spezifiziert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated "
+"or deleted by the application. This allows Hibernate to make some minor "
+"performance optimizations."
+msgstr ""
+"Unveränderliche Klassen, <literal>mutable=\"false\"</literal>, können durch "
+"die Anwendung nicht aktualisiert oder gelöscht werden. Dies ermöglicht "
+"Hibernate kleinere Optimierungen hinsichtlich der Performance."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The optional <literal>proxy</literal> attribute enables lazy initialization "
+"of persistent instances of the class. Hibernate will initially return CGLIB "
+"proxies that implement the named interface. The persistent object will load "
+"when a method of the proxy is invoked. See \"Initializing collections and "
+"proxies\" below."
+msgstr ""
+"Das optionale <literal>proxy</literal>-Attribut aktiviert die \"lazy "
+"Initialization\" persistenter Instanzen der Klasse. Hibernate wird anfangs "
+"mit CGLIB-Proxies reagieren, die das benannte Interface implementieren. Das "
+"eigentliche persistente Objekt wird geladen, wenn eine Methode des Proxy "
+"aufgerufen wird. Sehen Sie dazu \"Proxies für die Lazy Initialization\" "
+"unten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Implicit</emphasis> polymorphism means that instances of the class "
+"will be returned by a query that names any superclass or implemented "
+"interface or class, and that instances of any subclass of the class will be "
+"returned by a query that names the class itself. <emphasis>Explicit</"
+"emphasis> polymorphism means that class instances will be returned only by "
+"queries that explicitly name that class. Queries that name the class will "
+"return only instances of subclasses mapped inside this <literal><class>"
+"</literal> declaration as a <literal><subclass></literal> or "
+"<literal><joined-subclass></literal>. For most purposes, the default "
+"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
+"polymorphism is useful when two different classes are mapped to the same "
+"table This allows a \"lightweight\" class that contains a subset of the "
+"table columns."
+msgstr ""
+"<emphasis>Implicit</emphasis>-Polymorphie bedeutet, dass die Instanzen der "
+"Klasse von einer Anfrage beantwortet werden, die eine Superklasse, ein "
+"implementiertes Interface oder die Klasse zurücksendet und die Instanzen "
+"einer beliebigen Subklasse der betreffenden Klasse von einer die Klasse "
+"selbst nennenden Anfrage zurückgeschickt werden. <emphasis>Explizite</"
+"emphasis> Polymorphie bedeutet, dass die Instanzen der Klasse nur von "
+"Anfragen zurückgeschickt werden, die die Klasse explizit nennen und nur auf "
+"Instanzen, die innerhalb dieser <literal><class></literal> Deklaration "
+"als <literal><subclass></literal> oder <literal><joined-subclass>"
+"</literal> gemappt sind, reagiert wird. In den meisten Fällen ist die "
+"Standardeinstellung <literal>polymorphism=\"implicit\"</literal> angemessen. "
+"Explizite Polymorphie ist insbesondere dann von Nutzen, wenn zwei "
+"verschiedene Klassen ein Mapping zu derselben Tabelle besitzen (es bietet "
+"sich dadurch die Möglichkeit der Erstellung einer \"abgespeckten\" und alle "
+"Tabellenspalten als Teilsatz enthaltenden Klasse)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>persister</literal> attribute lets you customize the "
+"persistence strategy used for the class. You can, for example, specify your "
+"own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, "
+"or you can even provide a completely new implementation of the interface "
+"<literal>org.hibernate.persister.ClassPersister</literal> that implements, "
+"for example, persistence via stored procedure calls, serialization to flat "
+"files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for "
+"a simple example of \"persistence\" to a <literal>Hashtable</literal>."
+msgstr ""
+"Das <literal>persister</literal>-Attribut erlaubt die Anpassung der für die "
+"Klasse zu verwendenden Persistenzstrategie. Sie können zum Beispiel Ihre "
+"eigene Subklasse von <literal>org.hibernate.persister.EntityPersister</"
+"literal> bestimmen oder sogar eine vollständig neue Implementierung des "
+"Interface <literal>org.hibernate.persister.ClassPersister</literal> "
+"bereitsstellen, das z.B. mittels gespeicherter Prozeduraufrufe, "
+"Serialisierung verknüpfungsloser (zweidimensionaler Dateien (sog. \"flat "
+"Files\") oder LDAP Persistenz implementiert. Siehe <literal>org.hibernate."
+"test.CustomPersister</literal> für ein einfaches Beispiel (von \"Persistenz"
+"\" zu einer <literal>Hashtable</literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> "
+"settings are not inherited by subclasses, so they can also be specified on "
+"the <literal><subclass></literal> or <literal><joined-subclass></"
+"literal> elements. Although these settings can increase performance in some "
+"cases, they can actually decrease performance in others."
+msgstr ""
+"Bitte beachten Sie, dass die <literal>dynamic-update</literal> und "
+"<literal>dynamic-insert</literal> Einstellungen nicht an die Subklassen "
+"vererbt werden und daher auch in den <literal><subclass></literal> "
+"oder <literal><joined-subclass></literal>-Elementen spezifiziert "
+"werden können. Diese Einstellungen können die Performance in einigen Fällen "
+"verbessern, in anderen Fällen jedoch auch verschlechtern. Verwenden Sie sie "
+"daher umsichtig."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use of <literal>select-before-update</literal> will usually decrease "
+"performance. It is useful to prevent a database update trigger being called "
+"unnecessarily if you reattach a graph of detached instances to a "
+"<literal>Session</literal>."
+msgstr ""
+"Die Verwendung von <literal>select-before-update</literal> wird die "
+"Performance in der Regel verschlechtern. Es ist sehr hilfreich, um den "
+"Aufruf eines Datenbankaktualisierungs-Triggers abzufangen, wenn Sie einen "
+"Graph abgesetzter Instanzen wieder an eine <literal>Session</literal> binden "
+"möchten."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you enable <literal>dynamic-update</literal>, you will have a choice of "
+"optimistic locking strategies:"
+msgstr ""
+"Wenn Sie <literal>dynamic-update</literal> aktivieren, haben Sie die Wahl "
+"zwischen verschiedenen Strategien für das optimistische Sperren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr "<literal>version</literal> Prüfung der Version-/Zeitstempel-Spalten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>dirty</literal>: check the changed columns, allowing some "
+"concurrent updates"
+msgstr ""
+"<literal>dirty</literal> Prüfung der veränderten Spalten, Möglichkeit "
+"einiger simultaner Aktualisierungen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr "<literal>none</literal> verwendet kein optimistisches Sperren"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is <emphasis>strongly</emphasis> recommended that you use version/"
+"timestamp columns for optimistic locking with Hibernate. This strategy "
+"optimizes performance and correctly handles modifications made to detached "
+"instances (i.e. when <literal>Session.merge()</literal> is used)."
+msgstr ""
+"Wir empfehlen <emphasis>sehr</emphasis> dringend die Verwendung von Version-/"
+"Zeitstempel-Spalten für das optimistische Sperren mit Hibernate. Im Hinblick "
+"auf die Performance handelt es sich dabei um die beste Strategie, und es ist "
+"auch die einzige Strategie, die Veränderungen an abgesetzten Instanzen "
+"korrekt bearbeitet (d.h. wenn <literal>Session.merge()</literal> verwendet "
+"wird)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is no difference between a view and a base table for a Hibernate "
+"mapping. This is transparent at the database level, although some DBMS do "
+"not support views properly, especially with updates. Sometimes you want to "
+"use a view, but you cannot create one in the database (i.e. with a legacy "
+"schema). In this case, you can map an immutable and read-only entity to a "
+"given SQL subselect expression:"
+msgstr ""
+"Es gibt keinen Unterschied zwischen einer Ansicht und einer Basistabelle für "
+"ein Hibernate Mapping, und wie erwartet ist dies auf Datenbankebene "
+"transparent (bitte beachten Sie, dass einige DBMS Ansichten nicht korrekt "
+"unterstützen, insbesondere im Hinblick auf Aktualisierungen). Manchmal "
+"möchten Sie zwar eine Ansicht verwenden, jedoch wird diese in der Datenbank "
+"nicht erstellt (d.h. mit einem \"Legacy Schema\"). In diesem Fall können Sie "
+"eine unveränderbare und schreibgeschützte Entity zu einem gegebenen SQL "
+"Subselect-Ausdruck mappen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Declare the tables to synchronize this entity with, ensuring that auto-flush "
+"happens correctly and that queries against the derived entity do not return "
+"stale data. The <literal><subselect></literal> is available both as an "
+"attribute and a nested mapping element."
+msgstr ""
+"Deklarieren Sie die Tabellen mit denen diese Entity synchronisiert werden "
+"soll und stellen Sie sicher, dass \"Auto-Flush\" ordnungsgemäà abläuft und "
+"Anfragen an die abgeleitete Entity keine alten Daten wiedergeben. "
+"<literal><subselect></literal> ist sowohl als Attribut als auch als "
+"verschachteltes Mapping-Element verfügbar."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "id"
+msgstr "uuid"
+
+#. 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><id></"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"Gemappte Klassen <emphasis>müssen</emphasis> die Spalte des Primärschlüssels "
+"der Datenbanktabelle deklarieren. Die meisten Klassen werden auÃerdem eine "
+"Property nach Art von JavaBeans besitzen, die den eindeutigen Bezeichner "
+"einer Instanz enthält. Das <literal><id></literal>-Element definiert "
+"das Mapping von der Property zur Spalte des Primärschlüssels."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal> (optional): the name of the identifier property."
+msgstr "<literal>name</literal> (optional): Name der Bezeichner-Property."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgstr ""
+"<literal>type</literal> (optional): Ein Name, der den Hibernate-Typ anzeigt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the primary key column."
+msgstr ""
+"<literal>column</literal> (optional - Standardeinstellung ist der Property-"
+"Name): Der Name der Primärschlüsselspalte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" "
+"value): an identifier property value that indicates an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session."
+msgstr ""
+"<literal>unsaved-value</literal> (optional - Standardeinstellung ist ein "
+"\"sinnvoller\" Wert): Ein Wert der Bezeichner-Property, der anzeigt, dass "
+"eine Instanz neu instanziiert (ungespeichert) ist und der sie von "
+"abgesetzten Instanzen einer vorangegangenen Session unterscheidet, die "
+"gespeichert oder geladen wurden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate should use for accessing the property "
+"value."
+msgstr ""
+"<literal>access</literal> (optional - Standardeinstellung ist "
+"<literal>property</literal>): Die Strategie, die Hibernate für den Zugriff "
+"auf den Property-Wert verwenden soll."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>name</literal> attribute is missing, it is assumed that the "
+"class has no identifier property."
+msgstr ""
+"Falls das <literal>name</literal>-Attribut fehlt, wird davon ausgegangen, "
+"dass die Klasse keine Bezeichner-Property besitzt."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>unsaved-value</literal> attribute is almost never needed in "
+"Hibernate3."
+msgstr ""
+"Das <literal>unsaved-value</literal>-Attribut wird in Hibernate3 fast nie "
+"benötigt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is an alternative <literal><composite-id></literal> declaration "
+"that allows access to legacy data with composite keys. Its use is strongly "
+"discouraged for anything else."
+msgstr ""
+"Es existiert eine alternative <literal><composite-id></literal>-"
+"Deklaration, die Zugriff auf Stammdaten mit zusammengesetzten Schlüsseln "
+"(sog. \"composite keys\") erlaubt. Wir empfehlen dringend, diese "
+"ausschlieÃlich hierfür zur verwenden."
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr "Programmgenerator"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><generator></literal> child element names a Java "
+"class used to generate unique identifiers for instances of the persistent "
+"class. If any parameters are required to configure or initialize the "
+"generator instance, they are passed using the <literal><param></"
+"literal> element."
+msgstr ""
+"Das optionale <literal><generator></literal>-Unterelement benennt eine "
+"Java-Klasse, die zur Generierung eindeutiger Bezeichner für Instanzen der "
+"persistenten Klasse verwendet werden. Falls Parameter zur Konfiguration oder "
+"Initialisierung der Generatorinstanz benötigt werden, werden Sie unter "
+"Verwendung des <literal><param></literal>-Elements weitergeleitet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All generators implement the interface <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. This is a very simple interface. Some "
+"applications can choose to provide their own specialized implementations, "
+"however, Hibernate provides a range of built-in implementations. The "
+"shortcut names for the built-in generators are as follows:"
+msgstr ""
+"Alle Generatoren implementieren das Interface <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. Es handelt sich dabei um ein sehr einfaches "
+"Interface; manche Anwendungen stellen ein eigenes, spezialisiertes Interface "
+"bereit. Hiberante bietet jedoch eine Reihe eingebauter Implementierungen. "
+"Für die eingebauten Generatoren existieren abgekürzte Namen:"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. 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 ""
+"generiert Bezeichner des Typs <literal>long</literal>, <literal>short</"
+"literal> oder <literal>int</literal>, die nur eindeutig sind, wenn kein "
+"anderer Vorgang Daten derselben Tabelle hinzufügt. <emphasis>Nicht in einem "
+"Cluster zu verwenden.</emphasis>"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>id-type</literal>: Der Bezeichnertyp."
+
+#. 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 ""
+"unterstützt die Identitätsspalten in DB2, MySQL, MS SQL Server, Sybase und "
+"HypersonicSQL. Der zurückgesendete Bezeichner ist vom Typ <literal>long</"
+"literal>, <literal>short</literal> oder <literal>int</literal>."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. 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 ""
+"verwendet eine Sequenz in DB2, PostgreSQL, Oracle, SAP DB, McKoi oder einen "
+"Generator in Interbase. Der zurückgeschickte Bezeichner ist vom Typ "
+"<literal>long</literal>, <literal>short</literal> oder <literal>int</literal>"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. 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 ""
+"verwendet einen hi/lo Algorithmus um effizient Bezeichner des Typs "
+"<literal>long</literal>, <literal>short</literal> oder <literal>int</"
+"literal> zu generieren, bei gegebener Tabelle und Spalte "
+"(Standardeinstellung lautet <literal>hibernate_unique_key</literal> bzw. "
+"<literal>next_hi</literal>) als Quelle der hi-Werte. Der hi/lo-Algorithmus "
+"generiert Bezeichner, die für eine bestimmte Datenbank eindeutig sind."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. 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 ""
+"verwendet einen hi/lo-Algorithmus um effizient Bezeichner des Typs "
+"<literal>long</literal>, <literal>short</literal> oder <literal>int</"
+"literal> zu generieren, bei einer vorgegebenen und benannten "
+"Datenbanksequenz."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>id</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"uses a 128-bit UUID algorithm to generate identifiers of type string that "
+"are unique within a network (the IP address is used). The UUID is encoded as "
+"a string of 32 hexadecimal digits in length."
+msgstr ""
+"verwendet einen 128-bit UUID-Algorithmus, um Bezeichner des String-Typs "
+"(Zeichenkettentyp) zu generieren, die innerhalb eines Netzwerks eindeutig "
+"sind (die IP-Adresse wird verwendet). Der UUID (Universally Unique "
+"Identifier) ist als Zeichenkette hexadezimaler Ziffern von 32 Zeichen Länge "
+"verschlüsselt."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>id</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr ""
+"verwendet einen von der Datenbank generierten GUID-String auf dem MS SQL "
+"Server und MySQL."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"selects <literal>identity</literal>, <literal>sequence</literal> or "
+"<literal>hilo</literal> depending upon the capabilities of the underlying "
+"database."
+msgstr ""
+"wählt <literal>identity</literal>, <literal>sequence</literal> oder "
+"<literal>hilo</literal> je nach Leistungsfähigkeit der zu Grunde liegenden "
+"Datenbank."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"lets the application assign an identifier to the object before <literal>save"
+"()</literal> is called. This is the default strategy if no <literal><"
+"generator></literal> element is specified."
+msgstr ""
+"lässt die Anwendung dem Objekt einen Bezeichner zuordnen ehe <literal>save()"
+"</literal> aufgerufen wird. Falls kein <literal><generator></literal>-"
+"Element festgelegt ist, so ist dies die Standardstrategie."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"retrieves a primary key, assigned by a database trigger, by selecting the "
+"row by some unique key and retrieving the primary key value."
+msgstr ""
+"ruft von einem Datenbank-Trigger zugeordnete Primärschlüssel auf, indem die "
+"Reihe durch einen eindeutigen Schlüssel ausgewählt und der Wert des "
+"Primärschlüssels abgefragt wird."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"uses the identifier of another associated object. It is usually used in "
+"conjunction with a <literal><one-to-one></literal> primary key "
+"association."
+msgstr ""
+"verwendet den Bezeichner eines anderen zugehörigen Objekts. In der Regel in "
+"Verbindung mit einer <literal><one-to-one></literal>-Assoziation des "
+"Primärschlüssels verwendet."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "sequence-identity"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"a specialized sequence generation strategy that utilizes a database sequence "
+"for the actual value generation, but combines this with JDBC3 "
+"getGeneratedKeys to return the generated identifier value as part of the "
+"insert statement execution. This strategy is only supported on Oracle 10g "
+"drivers targeted for JDK 1.4. Comments on these insert statements are "
+"disabled due to a bug in the Oracle drivers."
+msgstr ""
+"eine spezialisierte Sequenzgenerierungsstrategie, die eine Datenbanksequenz "
+"zu Generierung der tatsächlichen Werte verwendet. Dabei kombiniert sie diese "
+"mit JDBC3 getGeneratedKeys, um den generierten Bezeichnerwert als Teil der "
+"Ausführung der Einfügungsanweisung zurückzusenden. Diese Strategie wird bis "
+"jetzt nur von auf JDK 1.4 ausgerichteten Oracle 10g Treibern unterstützt. "
+"Bitte beachten Sie, dass Kommentare in diesen Einfügungsanweisungen aufgrund "
+"eines Bugs innerhalb der Oracle Treiber deaktiviert sind."
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr "Hi/lo-Algorithmus"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>hilo</literal> and <literal>seqhilo</literal> generators "
+"provide two alternate implementations of the hi/lo algorithm. The first "
+"implementation requires a \"special\" database table to hold the next "
+"available \"hi\" value. Where supported, the second uses an Oracle-style "
+"sequence."
+msgstr ""
+"Die <literal>hilo</literal> und <literal>seqhilo</literal>-Generatoren "
+"stellen zwei alternierende Implementierungen des hi/lo-Algorithmus bereit, "
+"einer bevorzugten Vorgehensweise bei der Bezeichnergenerierung. Die erste "
+"Implementierung erfordert eine \"spezielle\" Datenbanktabelle, die den "
+"nächstverfügbaren \"hi\"-Wert enthält. Die zweite verwendet eine Sequenz "
+"nach Oracle-Art (falls unterstützt)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, you cannot use <literal>hilo</literal> when supplying your "
+"own <literal>Connection</literal> to Hibernate. When Hibernate uses an "
+"application server datasource to obtain connections enlisted with JTA, you "
+"must configure the <literal>hibernate.transaction.manager_lookup_class</"
+"literal>."
+msgstr ""
+"Leider können Sie <literal>hilo</literal> nicht verwenden, wenn Sie Ihre "
+"eigene <literal>Connection</literal> für Hibernate bereitstellen. Wenn "
+"Hibernate eine Datenquelle des Applikationsservers verwendet, um mit JTA "
+"gelistete Verbindungen zu erhalten, müssen Sie die <literal>hibernate."
+"transaction.manager_lookup_class</literal> korrekt konfigurieren."
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr "UUID-Algorithmus"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The UUID contains: IP address, startup time of the JVM that is accurate to a "
+"quarter second, system time and a counter value that is unique within the "
+"JVM. It is not possible to obtain a MAC address or memory address from Java "
+"code, so this is the best option without using JNI."
+msgstr ""
+"Der UUID enthält: IP-Adresse, Startup-Zeit der JVM (bis auf eine "
+"Viertelsekunde genau), Systemzeit und Zählerwert (innerhalb der JVM "
+"eindeutig). Es ist nicht möglich, aus Java-Code eine MAC-Adresse oder "
+"Speicheradresse zu erhalten, so dass es sich dabei um die bestmögliche "
+"Option ohne Verwendung von JNI handelt."
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr "Identitätsspalten und Sequenzen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), "
+"you can use <literal>identity</literal> key generation. For databases that "
+"support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you "
+"can use <literal>sequence</literal> style key generation. Both of these "
+"strategies require two SQL queries to insert a new object. For example:"
+msgstr ""
+"Für Datenbanken, die Identitätsspalten unterstützen (DB2, MySQL, Sybase, MS "
+"SQL), können Sie <literal>identity</literal>-Schlüsselgenerierung verwenden. "
+"Für Datenbanken, die Sequenzen unterstützen (DB2, Oracle, PostgreSQL, "
+"Interbase, McKoi, SAP DB) können Sie Schlüsselgenerierung nach "
+"<literal>sequence</literal>-Art verwenden. Bei beiden Strategien muss ein "
+"neues Objekt durch zwei SQL-Anfragen eingefügt werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For cross-platform development, the <literal>native</literal> strategy will, "
+"depending on the capabilities of the underlying database, choose from the "
+"<literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</"
+"literal> strategies."
+msgstr ""
+"Für die plattformübergreifende Entwicklung wählt die <literal>native</"
+"literal> Strategie unter den <literal>identity</literal>, <literal>sequence</"
+"literal> und <literal>hilo</literal>-Strategien je nach Leistungsfähigkeit "
+"der zu Grunde liegenden Datenbank die entsprechende aus."
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr "Zugeordnete Bezeichner"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want the application to assign identifiers, as opposed to having "
+"Hibernate generate them, you can use the <literal>assigned</literal> "
+"generator. This special generator uses the identifier value already assigned "
+"to the object's identifier property. The generator is used when the primary "
+"key is a natural key instead of a surrogate key. This is the default "
+"behavior if you do not specify a <literal><generator></literal> "
+"element."
+msgstr ""
+"Falls die Anwendung Bezeichner zuordnen soll (statt deren Generierung durch "
+"Hibernate), so können Sie den <literal>assigned</literal>-Generator "
+"verwenden. Dieser spezielle Generator wird den der Bezeichner-Property des "
+"Objekts bereits zugeordneten Bezeichnerwert verwenden. Dieser Generator "
+"kommt zum Einsatz, wenn es sich beim Primärschlüssel um einen natürlichen "
+"statt einen Surrogatschlüssel handelt. Dieses ist das Standardverhalten, "
+"wenn Sie kein <literal><generator></literal>-Element festlegen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>assigned</literal> generator makes Hibernate use "
+"<literal>unsaved-value=\"undefined\"</literal>. This forces Hibernate to go "
+"to the database to determine if an instance is transient or detached, unless "
+"there is a version or timestamp property, or you define <literal>Interceptor."
+"isUnsaved()</literal>."
+msgstr ""
+"Bei Auswahl des <literal>assigned</literal>-Generators verwendet Hibernate "
+"<literal>unsaved-value=\"undefined\"</literal>, wodurch Hibernate in der "
+"Datenbank prüfen muss, ob eine Instanz transient oder abgesetzt ist, falls "
+"keine Version oder eine Zeitstempel-Property vorhanden sind oder Sie "
+"<literal>Interceptor.isUnsaved()</literal> definieren."
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr "Durch Trigger zugeordnete Primärschlüssel"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr "Nur für Legacy-Schemas (Hibernate generiert DDL nicht mit Triggern)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In the above example, there is a unique valued property named "
+"<literal>socialSecurityNumber</literal>. It is defined by the class, as a "
+"natural key and a surrogate key named <literal>person_id</literal>, whose "
+"value is generated by a trigger."
+msgstr ""
+"Im Beispiel oben ist eine eindeutige Property mit dem Namen "
+"<literal>socialSecurityNumber</literal> definiert durch die Klasse als ein "
+"natürlicher Schlüssel sowie einen Surrogatschlüssel mit Namen "
+"<literal>person_id</literal>, dessen Wert durch einen Trigger generiert wird."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Enhanced identifier generators"
+msgstr "Die \"Getter\"-Methode des Bezeichners"
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, 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> (optional - Standardeinstellung lautet "
+"<literal>class</literal>) der Name der Diskriminatorspalte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): the initial value to be retrieved from the sequence/table. In "
+"sequence creation terms, this is analogous to the clause typically named "
+"\"STARTS WITH\"."
+msgstr ""
+"<literal>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
+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
+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>inverse</literal> (optional - standardmäÃig <literal>false</"
+"literal>) kennzeichnen Sie diese Collection als das \"invertierte\" Ende "
+"einer biderektionalen Assoziation"
+
+#. Tag: para
+#, 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> (optional - Standardeinstellung lautet "
+"<literal>class</literal>) der Name der Diskriminatorspalte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimizer</literal> (optional - defaults to <literal>none</"
+"literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" /"
+">"
+msgstr ""
+"<literal>cascade</literal> (optional- die Standardeinstellung lautet "
+"<literal>none</literal>): der \"Cascade-Style\" (Weitergabestil)."
+
+#. 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 ""
+
+#. Tag: para
+#, 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> (optional - die Standardeinstellung lautet "
+"<literal>integer</literal>): Der Versionsnummerntyp."
+
+#. Tag: para
+#, 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> (optional - Standardeinstellung lautet "
+"<literal>class</literal>) der Name der Diskriminatorspalte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>segment_column_name</literal> (optional - defaults to "
+"<literal>sequence_name</literal>): the name of the column on the table that "
+"is used to hold the \"segment key\". This is the value which identifies "
+"which increment value to use."
+msgstr ""
+"<literal>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
+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>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
+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> (optional - Standardeinstellung lautet "
+"<literal>class</literal>) der Name der Diskriminatorspalte."
+
+#. Tag: para
+#, 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> (optional - die Standardeinstellung lautet "
+"<literal>integer</literal>): Der Versionsnummerntyp."
+
+#. Tag: para
+#, 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> (optional - die Standardeinstellung lautet "
+"<literal>integer</literal>): Der Versionsnummerntyp."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimizer</literal> (optional - defaults to <literal></literal>): "
+"See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr ""
+"<literal>cascade</literal> (optional- die Standardeinstellung lautet "
+"<literal>none</literal>): der \"Cascade-Style\" (Weitergabestil)."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Identifier generator optimization"
+msgstr "Die \"Getter\"-Methode des Bezeichners"
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr "composite-id"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A table with a composite key can be mapped with multiple properties of the "
+"class as identifier properties. The <literal><composite-id></literal> "
+"element accepts <literal><key-property></literal> property mappings "
+"and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr ""
+"Für eine Tabelle mit einem zusammengesetzten Schlüssel, können Sie mehrere "
+"Properties der Klasse als Bezeichner-Properties mappen. Das <literal><"
+"composite-id></literal>-Element akzeptiert <literal><key-property></"
+"literal>-Property-Mappings und <literal><key-many-to-one></literal>-"
+"Mappings als untergeordnete Elemente."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The persistent class <emphasis>must</emphasis> override <literal>equals()</"
+"literal> and <literal>hashCode()</literal> to implement composite identifier "
+"equality. It must also implement <literal>Serializable</literal>."
+msgstr ""
+"Ihre persistente Klasse <emphasis>muss</emphasis> sowohl <literal>equals()</"
+"literal> als auch <literal>hashCode()</literal> auÃer Kraft setzen, um die "
+"Gleichwertigkeit zusammengesetzter Bezeichner zu implementieren. Sie muss "
+"auÃerdem <literal>Serializable</literal> implementieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, this approach means that a persistent object is its own "
+"identifier. There is no convenient \"handle\" other than the object itself. "
+"You must instantiate an instance of the persistent class itself and populate "
+"its identifier properties before you can <literal>load()</literal> the "
+"persistent state associated with a composite key. We call this approach an "
+"<emphasis>embedded</emphasis> composite identifier, and discourage it for "
+"serious applications."
+msgstr ""
+"Leider bedeutet diese Vorgehensweise bei zusammengesetzten Bezeichnern, dass "
+"ein persistentes Objekt sein eigener Bezeichner ist. Es existiert keine "
+"praktische \"Handhabung\" auÃer dem Objekt selbst. Sie müssen eine Instanz "
+"der persistenten Klasse selbst instanziieren und deren Bezeichner-Properties "
+"auffüllen, ehe Sie mit <literal>load()</literal> den persistenten Status "
+"eines zugehörigen zusammengesetzten Schlüssels laden können. Diese "
+"Vorgehensweise gilt als <emphasis>eingebetteter</emphasis> (\"embedded\") "
+"zusammengesetzter Bezeichner und wird nicht für ernsthafte Anwendungen "
+"empfohlen."
+
+#. 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><"
+"composite-id></literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"Eine zweite Vorgehensweise trägt den Namen <emphasis>gemappter</emphasis> "
+"zusammengesetzter Bezeichner (sog. \"mapped composite identifier\"), wobei "
+"die innerhalb des <literal><composite-id></literal>-Elements genannten "
+"Bezeichner-Properties sowohl an der persistenten Klasse als auch einer "
+"separaten Bezeichnerklasse dupliziert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this example, both the composite identifier class, <literal>MedicareId</"
+"literal>, and the entity class itself have properties named "
+"<literal>medicareNumber</literal> and <literal>dependent</literal>. The "
+"identifier class must override <literal>equals()</literal> and "
+"<literal>hashCode()</literal> and implement <literal>Serializable</literal>. "
+"The main disadvantage of this approach is code duplication."
+msgstr ""
+"In diesem Beispiel besitzen sowohl die Klasse des zusammengesetzten "
+"Bezeichners <literal>MedicareId</literal> als auch die Entity-Klasse selbst "
+"Properties mit dem Namen <literal>medicareNumber</literal> und "
+"<literal>dependent</literal>. Die Bezeichnerklasse muss <literal>equals()</"
+"literal> und <literal>hashCode()</literal> auÃer Kraft setzen und "
+"<literal>Serializable</literal> implementieren. Der Nachteil dieser "
+"Vorgehensweise ist offensichtlich— Code-Duplizierung."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following attributes are used to specify a mapped composite identifier:"
+msgstr ""
+"Die folgenden Attribute werden verwendet, um einen gemappten "
+"zusammengesetzten Bezeichner zu bestimmen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mapped</literal> (optional - defaults to <literal>false</literal>): "
+"indicates that a mapped composite identifier is used, and that the contained "
+"property mappings refer to both the entity class and the composite "
+"identifier class."
+msgstr ""
+"<literal>mapped</literal> (optional, Standardeinstellung <literal>false</"
+"literal>): zeigt an, dass ein gemappter zusammengesetzter Bezeichner "
+"verwendet wird und die enthaltenen Property-Mappings auf die Entity-Klasse "
+"und die zusammengesetzte Bezeichnerklasse verweisen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (optional - but required for a mapped composite "
+"identifier): the class used as a composite identifier."
+msgstr ""
+"<literal>class</literal> (optional, für einen gemappten Bezeichner jedoch "
+"erforderlich): Die als zusammengesetzter Bezeichner verwendete Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will describe a third, even more convenient approach, where the composite "
+"identifier is implemented as a component class in <xref linkend=\"components-"
+"compositeid\" />. The attributes described below apply only to this "
+"alternative approach:"
+msgstr ""
+"AbschlieÃend erläutern wir einen dritte, noch praktischere Vorgehensweise, "
+"bei der der zusammengesetzte Bezeichner als Komponentenklasse in <xref "
+"linkend=\"components-compositeid\"/> implementiert wird. Die unten "
+"beschriebenen Attribute gelten nur für diese Vorgehensweise:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal> (optional - required for this approach): a property "
+"of component type that holds the composite identifier. Please see chapter 9 "
+"for more information."
+msgstr ""
+"<literal>name</literal> (optional, bei dieser Vorgehensweise erforderlich): "
+"Eine Property nach Komponententyp, die den zusammengesetzten Bezeichner "
+"enthält (siehe Kapitel 9)."
+
+#. Tag: para
+#, fuzzy, 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> (optional - Standardeinstellung ist "
+"<literal>property</literal>): Die Strategie, die Hibernate für den Zugriff "
+"auf den Property-Wert verwenden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): the component class used as a composite "
+"identifier. Please see the next section for more information."
+msgstr ""
+"<literal>class</literal> (optional - Standardeinstellung ist der durch die "
+"Reflexion bestimmte Property-Typ): Die als ein zusammengesetzter "
+"Bezeichnerverwendete Komponentenklasse (siehe nächster Abschnitt)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The third approach, an <emphasis>identifier component</emphasis>, is "
+"recommended for almost all applications."
+msgstr ""
+"Bei dieser dritten Vorhegensweise empfehlen wir eine "
+"<emphasis>Bezeichnerkomponente</emphasis> für fast alle Anwendungen."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Discriminator"
+msgstr "discriminator"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><discriminator></literal> element is required for "
+"polymorphic persistence using the table-per-class-hierarchy mapping "
+"strategy. It declares a discriminator column of the table. The discriminator "
+"column contains marker values that tell the persistence layer what subclass "
+"to instantiate for a particular row. A restricted set of types can be used: "
+"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
+"literal>, <literal>byte</literal>, <literal>short</literal>, "
+"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
+"literal>."
+msgstr ""
+"Das <literal><discriminator></literal>-Element wird für die polymorphe "
+"Persistenz unter Verwendung der Tabelle-pro-Klasse-Hierarchie (sog. \"table-"
+"per-class-hierarchy\") Mapping-Strategie benötigt und deklariert eine "
+"Diskriminatorspalte der Tabelle. Diese Diskriminatorspalte enthält "
+"Markierungswerte, die der Persistenzschicht mitteilen, welche Subklasse für "
+"eine bestimmte Reihe instanziiert werden soll. Ein beschränkter Typensatz "
+"kann hierfür verwendet werden: <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
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to <literal>class</literal>): "
+"the name of the discriminator column."
+msgstr ""
+"<literal>column</literal> (optional - Standardeinstellung lautet "
+"<literal>class</literal>) der Name der Diskriminatorspalte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>type</literal> (optional - defaults to <literal>string</literal>): "
+"a name that indicates the Hibernate type"
+msgstr ""
+"<literal>type</literal> (optional - die Standardeinstellung lautet "
+"<literal>string</literal>) ein Name, der den Hibernate-Typ angibt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>force</literal> (optional - defaults to <literal>false</literal>): "
+"\"forces\" Hibernate to specify the allowed discriminator values, even when "
+"retrieving all instances of the root class."
+msgstr ""
+"<literal>force</literal> (optional - die Standardeinstellung lautet "
+"<literal>false</literal>) \"zwingt\" Hibernate dazu, die erlaubten "
+"Diskriminatorwerte beim Abruf aller Instanzen der Stammklasse zu "
+"spezifizieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
+"set this to <literal>false</literal> if your discriminator column is also "
+"part of a mapped composite identifier. It tells Hibernate not to include the "
+"column in SQL <literal>INSERTs</literal>."
+msgstr ""
+"<literal>insert</literal> (optional - die Standardeinstellung lautet "
+"<literal>true</literal>) wählen Sie hier die Einstellung <literal>false</"
+"literal>, falls Ihre Diskriminatortspalte auch Teil des zusammengesetzten "
+"Bezeichners ist. (Hibernate wird mitgeteilt, die Spalte nicht in SQL "
+"<literal>INSERT</literal>s mit einzuschlieÃen)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an arbitrary SQL expression that is "
+"executed when a type has to be evaluated. It allows content-based "
+"discrimination."
+msgstr ""
+"<literal>formula</literal> (optional) ein beliebiger SQL-Ausdruck, der "
+"ausgeführt wird, wenn ein Typ evaluiert werden muss. Erlaubt inhaltsbasierte "
+"Unterscheidung (sog. \"discrimination\")."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal><"
+"class></literal> and <literal><subclass></literal> elements."
+msgstr ""
+"Die tatsächlichen Werte der Diskriminatorspalte werden durch das "
+"<literal>discriminator-value</literal>-Attribut der <literal><class></"
+"literal> und <literal><subclass></literal>-Elemente spezifiziert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>force</literal> attribute is only useful if the table contains "
+"rows with \"extra\" discriminator values that are not mapped to a persistent "
+"class. This will not usually be the case."
+msgstr ""
+"Das <literal>force</literal>-Attribut ist (nur) von Nutzen, wenn die Tabelle "
+"eine Reihe mit \"zusätzlichen\" Diskriminatorwerten enthält, die nicht zu "
+"einer persistenten Klasse gemappt sind. Dies ist in der Regel jedoch nicht "
+"der Fall."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>formula</literal> attribute allows you to declare an arbitrary "
+"SQL expression that will be used to evaluate the type of a row. For example:"
+msgstr ""
+"Mit dem <literal>formula</literal>-Attribut können Sie einen beliebigen SQL-"
+"Ausdruck deklarieren, der dann zur Evaluierung des Reihentyps verwendet wird:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Version (optional)"
+msgstr "version (optional)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><version></literal> element is optional and indicates "
+"that the table contains versioned data. This is particularly useful if you "
+"plan to use <emphasis>long transactions</emphasis>. See below for more "
+"information:"
+msgstr ""
+"Das <literal><version></literal>-Element ist optional und zeigt an, "
+"dass die Tabelle versionierte Daten enthält. Das ist insbesondere dann "
+"nützlich, wenn Sie vorhaben, <emphasis>lange Transaktionen</emphasis> zu "
+"verwenden (siehe unten)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the column holding the version number."
+msgstr ""
+"<literal>column</literal> (optional - Standardeinstellung ist der Property-"
+"Name): Der Name der Spalte, die die Versionsnummer enthält."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the name of a property of the persistent class."
+msgstr ""
+"<literal>name</literal>: Der Name einer Property der persistenten Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>type</literal> (optional - defaults to <literal>integer</literal>): "
+"the type of the version number."
+msgstr ""
+"<literal>type</literal> (optional - die Standardeinstellung lautet "
+"<literal>integer</literal>): Der Versionsnummerntyp."
+
+#. Tag: para
+#, fuzzy, 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> (optional - Standardeinstellung ist "
+"<literal>property</literal>): Die Strategie, die Hibernate für den Zugriff "
+"auf den Property-Wert verwenden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
+"literal>): a version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. <literal>Undefined</literal> "
+"specifies that the identifier property value should be used."
+msgstr ""
+"<literal>unsaved-value</literal> (optional - die Standardeinstellung lautet "
+"<literal>undefined</literal>): Ein Property-Wert der Version, der anzeigt, "
+"dass eine Instanz neu instanziiert wurde (ungespeichert) und diese von "
+"abgesetzten Instanzen, die in einer vorhergehenden Session bereits "
+"gespeichert oder geladen wurden, unterscheidet. (<literal>undefined</"
+"literal> legt fest, dass der Property-Wert des Bezeichners verwendet werden "
+"sollte)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this version property value is generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (optional - die Standardeinstellung lautet "
+"<literal>never</literal>): Legt fest, dass der Property-Wert dieser Version "
+"von der Datenbank generiert wird. Siehe dazu auch die Erläuterungen in <xref "
+"linkend=\"mapping-generated\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
+"specifies whether the version column should be included in SQL insert "
+"statements. It can be set to <literal>false</literal> if the database column "
+"is defined with a default value of <literal>0</literal>."
+msgstr ""
+"<literal>insert</literal> (optional - die Standardeinstellung lautet "
+"<literal>true</literal>): Legt fest, ob die Versionsspalte in die SQL "
+"Einfügungsanweisungen eingeschlossen werden soll. Die Einstellung kann "
+"<literal>false</literal> lauten, wenn (und nur in diesem Fall) die "
+"Datenbankspalte mit dem Standardwert <literal>0</literal> definiert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Version numbers can be of Hibernate type <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> or <literal>calendar</literal>."
+msgstr ""
+"Die Versionsnummern können vom Hibernate-Typ <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> oder <literal>calendar</literal> sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A version or timestamp property should never be null for a detached "
+"instance. Hibernate will detect any instance with a null version or "
+"timestamp as transient, irrespective of what other <literal>unsaved-value</"
+"literal> strategies are specified. <emphasis>Declaring a nullable version or "
+"timestamp property is an easy way to avoid problems with transitive "
+"reattachment in Hibernate. It is especially useful for people using assigned "
+"identifiers or composite keys</emphasis>."
+msgstr ""
+"Eine Versions- oder Zeitstempel-Property sollte für abgesetzte Instanzen "
+"niemals Null sein, damit Hibernate Instanzen mit Null-Version oder -"
+"Zeitstempel als transient entdeckt, ganz unabhängig davon, welche anderen "
+"<literal>unsaved-value</literal>-Strategien festgelegt sind. <emphasis>Die "
+"Deklaration einer nullbaren Version oder Zeitstempel-Property ist eine "
+"einfache Art, Probleme mit transitiver Wiederanbindung in Hibernate zu "
+"vermeiden; besonders nützlich ist dies für Personen, die zugeteilte "
+"Bezeichner oder zusammengesetzte Schlüssel verwenden!</emphasis>"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Timestamp (optional)"
+msgstr "Zeitstempel (optional)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The optional <literal><timestamp></literal> element indicates that the "
+"table contains timestamped data. This provides an alternative to versioning. "
+"Timestamps are a less safe implementation of optimistic locking. However, "
+"sometimes the application might use the timestamps in other ways."
+msgstr ""
+"Das optionale <literal><timestamp></literal>-Element zeigt an, dass "
+"die Tabelle Daten mit Zeitstempel enthält. Dies ist als Alternative zur "
+"Versionierung gedacht. Zeitstempel sind generell eine weniger sichere "
+"Implementierung des optimistischen Sperrens. Jedoch wird die Anwendung die "
+"Zeitstempel manchmal auf andere Weise benutzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of a column holding the timestamp."
+msgstr ""
+"<literal>column</literal> (optional - die Standardeinstellung ist der "
+"Property-Name): Der Name einer Spalte, die den Zeitstempel enthält."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the name of a JavaBeans style property of Java type "
+"<literal>Date</literal> or <literal>Timestamp</literal> of the persistent "
+"class."
+msgstr ""
+"<literal>name</literal>: Der Name einer Property im JavaBeans-Stil von Java-"
+"Typ <literal>Date</literal> oder <literal>Timestamp</literal> der "
+"persistenten Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>null</"
+"literal>): a version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. <literal>Undefined</literal> "
+"specifies that the identifier property value should be used."
+msgstr ""
+"<literal>unsaved-value</literal> (optional - die Standardeinstellung lautet "
+"<literal>null</literal>): Ein Property-Wert der Version, der anzeigt, dass "
+"eine Instanz neu instanziiert ungespeichert) wurde und sie von abgesetzten "
+"Instanzen unterscheidet, die bereits in einer vorangegangenen Session "
+"gespeichert oder geladen wurden. (<literal>undefined</literal> bestimmt, "
+"dass der Property-Wert des Identifiers verwendet werden soll.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>source</literal> (optional - defaults to <literal>vm</literal>): "
+"Where should Hibernate retrieve the timestamp value from? From the database, "
+"or from the current JVM? Database-based timestamps incur an overhead because "
+"Hibernate must hit the database in order to determine the \"next value\". It "
+"is safer to use in clustered environments. Not all <literal>Dialects</"
+"literal> are known to support the retrieval of the database's current "
+"timestamp. Others may also be unsafe for usage in locking due to lack of "
+"precision (Oracle 8, for example)."
+msgstr ""
+"<literal>source</literal> (optional - die Standardeinstellung lautet "
+"<literal>vm</literal>): Wo soll Hibernate den Wert des Zeitstempels abrufen? "
+"Von der Datenbank oder von der aktuellen JVM? Auf der Datenbank basierende "
+"Zeitstempel können zu einem Overhead führen, da Hibernate auf die Datenbank "
+"zugreifen muss, um den \"nächsten Wert\" zu bestimmen. In geclusterten "
+"Umgebungen ist dies sicherer. Bitte beachten Sie, dass nicht alle "
+"<literal>Dialect</literal>s den Abruf des aktuellen Zeitstempels von der "
+"Datenbank unterstützen, während andere möglicherweise aufgrund mangelnder "
+"Genauigkeit nicht beim Sperren verwendet werden sollten (zum Beispiel Oracle "
+"8)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this timestamp property value is actually "
+"generated by the database. See the discussion of <link linkend=\"mapping-"
+"generated\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (optional - die Standardeinstellung lautet "
+"<literal>never</literal>): Bestimmt, dass der Property-Wert dieses "
+"Zeitstempels tatsächlich durch die Datenbank generiert wird. Siehe dazu auch "
+"die Erläuterungen unter <xref linkend=\"mapping-generated\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal><Timestamp></literal> is equivalent to <literal><version "
+"type=\"timestamp\"></literal>. And <literal><timestamp source=\"db"
+"\"></literal> is equivalent to <literal><version type=\"dbtimestamp"
+"\"></literal>"
+msgstr ""
+"Bitte beachten Sie, dass <literal><timestamp></literal> äquivalent zu "
+"<literal><version type=\"timestamp\"></literal> und <literal><"
+"timestamp source=\"db\"></literal> äquivalent zu <literal><version "
+"type=\"dbtimestamp\"></literal> ist"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Property"
+msgstr "property"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><property></literal> element declares a persistent "
+"JavaBean style property of the class."
+msgstr ""
+"Das <literal><property></literal>-Element deklariert eine persistente "
+"Property der Klasse nach Art von JavaBean."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>name</literal>: the name of the property, with an initial lowercase "
+"letter."
+msgstr ""
+"<literal>name</literal>: Der Name der Property mit klein geschriebenem "
+"Anfangsbuchstaben."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the mapped database table column. This can also be specified by "
+"nested <literal><column></literal> element(s)."
+msgstr ""
+"<literal>column</literal> (optional - Standardeinstellung ist der Property-"
+"Name): Der Name der gemappten Tabellenspalte der Datenbank. Dies kann auch "
+"durch verschachtelte <literal><column></literal>-Element(e) "
+"spezifiziert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update, insert</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that the mapped columns should be included in SQL "
+"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
+"Setting both to <literal>false</literal> allows a pure \"derived\" property "
+"whose value is initialized from some other property that maps to the same "
+"column(s), or by a trigger or other application."
+msgstr ""
+"<literal>update, insert</literal> (optional - die Standardeinstellung lautet "
+"<literal>true</literal>): Legt fest, dass die gemappten Spalten in SQL "
+"<literal>UPDATE</literal> und/oder <literal>INSERT</literal>-Anweisungen "
+"eingeschlossen sein sollten. Die Einstellung beider auf <literal>false</"
+"literal> gestattet eine reine \"abgeleitete\" Property, deren Wert von einer "
+"anderen Property, die zu derselben/denselben Spalte(n) mappt oder durch "
+"einen Trigger in einer anderen Anwendung, initialisiert wird."
+
+#. 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> (optional): ein SQL-Ausdruck, der den Wert für "
+"eine <emphasis>errechnete</emphasis> Property definiert. Errechnete "
+"Properties besitzen kein eigenes Spalten-Mapping."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
+"specifies that this property should be fetched lazily when the instance "
+"variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr ""
+"<literal>lazy</literal> (optional - die Standardeinstellung lautet "
+"<literal>false</literal>): Legt fest, dass diese Property mittels \"Lazy "
+"Fetching\" (d.h. Nachladen assoziierter Objekte bei Bedarf) abgerufen werden "
+"soll, wenn erstmals auf die Instanzvariable zugegriffen wird (erfordert "
+"Build-time Bytecode Instrumentierung)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): enables the DDL generation of a unique "
+"constraint for the columns. Also, allow this to be the target of a "
+"<literal>property-ref</literal>."
+msgstr ""
+"<literal>unique</literal> (optional): Aktiviert die DDL-Generierung einer "
+"eindeutigen Bedingung für die Spalten. Dies kann auch das Ziel (sog. \"target"
+"\") einer <literal>property-ref</literal> sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): enables the DDL generation of a "
+"nullability constraint for the columns."
+msgstr ""
+"<literal>not-null</literal> (optional): Aktiviert die DDL-Generierung einer "
+"\"Nullability\"-Bedingung für die Spalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to this property do or do not require "
+"acquisition of the optimistic lock. In other words, it determines if a "
+"version increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (optional - die Standardeinstellung "
+"lautet <literal>true</literal>): Legt fest, ob Aktualisierungen (\"Updates"
+"\") dieser Property die Erfassung einer optimistischen Sperre benötigen oder "
+"nicht. Mit anderen Worten, es wird bestimmt, ob eine Erhöhung der Version "
+"stattfinden soll, wenn die Inhalte dieser Property sich verändert haben (man "
+"sagt sie sein dann \"dirty\")."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this property value is actually generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (optional - die Standardeinstellung lautet "
+"<literal>never</literal>): Legt fest, dass dieser Property-Wert tatsächlich "
+"durch die Datenbank generiert ist. Siehe dazu auch die Erläuterungen unter "
+"<xref linkend=\"mapping-generated\"/>."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr "<emphasis>typename</emphasis> könnte sein:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The name of a Hibernate basic type: <literal>integer, string, character, "
+"date, timestamp, float, binary, serializable, object, blob</literal> etc."
+msgstr ""
+"Der Name eines Hibernate Grundtyps (z.B. <literal>integer, string, "
+"character, date, timestamp, float, binary, serializable, object, blob</"
+"literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The name of a Java class with a default basic type: <literal>int, float, "
+"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
+"literal> etc."
+msgstr ""
+"Der Name einer Java-Klasse mit einem Grundtyp als Standard (z.B. "
+"<literal>int, float, char, java.lang.String, java.util.Date, java.lang."
+"Integer, java.sql.Clob</literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr "Der Name einer serialisierbaren Java-Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
+"literal> etc."
+msgstr ""
+"Der Klassenname eines anwenderdefinierten Typs (z.B. <literal>com.illflow."
+"type.MyCustomType</literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you do not specify a type, Hibernate will use reflection upon the named "
+"property and guess the correct Hibernate type. Hibernate will attempt to "
+"interpret the name of the return class of the property getter using, in "
+"order, rules 2, 3, and 4. In certain cases you will need the <literal>type</"
+"literal> attribute. For example, to distinguish between <literal>Hibernate."
+"DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a "
+"custom type."
+msgstr ""
+"Falls Sie keinen Typ festlegen, so wird Hibernate mittels Reflexion an der "
+"genannten Property versuchen, den korrekten Typ zu ermitteln. Hibernate wird "
+"dabei versuchen, den Namen der Rückgabeklasse des Property-\"Getters\" unter "
+"Verwendung der Regeln 2, 3, 4 (in dieser Reihenfolge) zu ermitteln. Das "
+"reicht jedoch nicht immer. In bestimmten Fällen wird nach wie vor das "
+"<literal>type</literal>-Attribut benötigt. (Um zum Beispiel zwischen "
+"<literal>Hibernate.DATE</literal> und <literal>Hibernate.TIMESTAMP</literal> "
+"zu unterscheiden oder einen anwenderdefinierten Typ zu bestimmen)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>access</literal> attribute allows you to control how Hibernate "
+"accesses the property at runtime. By default, Hibernate will call the "
+"property get/set pair. If you specify <literal>access=\"field\"</literal>, "
+"Hibernate will bypass the get/set pair and access the field directly using "
+"reflection. You can specify your own strategy for property access by naming "
+"a class that implements the interface <literal>org.hibernate.property."
+"PropertyAccessor</literal>."
+msgstr ""
+"Das <literal>access</literal>-Attribut ermöglicht Ihnen die Kontrolle "
+"darüber, wie Hibernate zur Runtime auf die Property zugreift. In der "
+"Standardeinstellung wird Hibernate das Get/Set-Paar der Property aufrufen. "
+"Wenn Sie aber <literal>access=\"field\"</literal> festlegen, so wird "
+"Hibernate das Get/Set-Paar umgehen und mittels Reflexion direkt auf das Feld "
+"zugreifen. Sie können Ihre eigene Strategie für den Zugriff auf Properties "
+"festlegen, indem Sie eine Klasse festlegen, die das Interface <literal>org."
+"hibernate.property.PropertyAccessor</literal> implementiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A powerful feature is derived properties. These properties are by definition "
+"read-only. The property value is computed at load time. You declare the "
+"computation as an SQL expression. This then translates to a <literal>SELECT</"
+"literal> clause subquery in the SQL query that loads an instance:"
+msgstr ""
+"Ein besonders leistungsstarkes Feature sind abgeleitete Properties. Diese "
+"Properties sind definitionsgemäà schreibgeschützt, und ihr Wert wird zum "
+"Zeitpunkt des Ladens errechnet. Sie deklarieren die Berechnung als einen SQL-"
+"Ausdruck, was in eine <literal>SELECT</literal>-Klausel Unteranfrage in der "
+"eine Instanz ladenden SQL-Anfrage übersetzt wird:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can reference the entity table by not declaring an alias on a particular "
+"column. This would be <literal>customerId</literal> in the given example. "
+"You can also use the nested <literal><formula></literal> mapping "
+"element if you do not want to use the attribute."
+msgstr ""
+"Bitte beachten Sie, dass Sie auf die eigene Tabelle der Entities verweisen "
+"können, indem Sie keinen Alias einer bestimmten Spalte deklarieren "
+"(<literal>customerId</literal> in dem gegebenen Beispiel). Bitte beachten "
+"Sie auÃerdem, dass Sie das verschachtelte <literal><formula></literal> "
+"Mapping-Element statt des Attributs verwenden können."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Many-to-one"
+msgstr "many-to-one"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An ordinary association to another persistent class is declared using a "
+"<literal>many-to-one</literal> element. The relational model is a many-to-"
+"one association; a foreign key in one table is referencing the primary key "
+"column(s) of the target table."
+msgstr ""
+"Eine reguläre Assoziation zu einer anderen persistenten Klasse wird unter "
+"Verwendung eines <literal>many-to-one</literal>-Elements deklariert. Das "
+"relationale Modell ist eine \"Many-to-One\"-Assoziation: Der Fremdschlüssel "
+"in einer Tabelle verweist auf die Spalte(n) des Primärschlüssels der "
+"Zieltabelle."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr "<literal>name</literal>: Der Name der Property."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the foreign key column. "
+"This can also be specified by nested <literal><column></literal> "
+"element(s)."
+msgstr ""
+"<literal>column</literal> (optional): Der Spaltenname des Fremdschlüssels. "
+"Kann auch durch verschachtelte <literal><column></literal>-Element(e) "
+"spezifiziert werden."
+
+#. Tag: para
+#, fuzzy, 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> (optional - Standard ist der durch die Reflexion "
+"bestimmte Property-Typ): Der Name der assoziierten Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional): specifies which operations should be "
+"cascaded from the parent object to the associated object."
+msgstr ""
+"<literal>cascade</literal> (optional) legt fest, welche Vorgänge vom "
+"übergeordneten Objekt an das assoziierte Objekt weitergegeben werden sollen."
+
+#. Tag: para
+#, fuzzy, 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> (optional - die Standardeinstellung lautet "
+"<literal>select</literal>): Wählt zwischen \"Outer-Join-Fetching\" oder "
+"sequentiellem \"Select-Fetching\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update, insert</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that the mapped columns should be included in SQL "
+"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
+"Setting both to <literal>false</literal> allows a pure \"derived\" "
+"association whose value is initialized from another property that maps to "
+"the same column(s), or by a trigger or other application."
+msgstr ""
+"<literal>update, insert</literal> (optional - die Standardeinstellung lautet "
+"<literal>true</literal>) legt fest, dass die gemappten Spalten in SQL "
+"<literal>UPDATE</literal> und/oder <literal>INSERT</literal>-Anweisungen "
+"eingeschlossen werden sollten. Wählt man bei beiden die Einstellung "
+"<literal>false</literal>, so ist eine reine, \"abgeleitete\" Assoziation "
+"möglich, deren Wert aus einer anderen Property, die zu derselben/denselben "
+"Spalte(n) mappt oder durch einen Trigger oder eine andere Anwendung "
+"initialisiert wird, möglich."
+
+#. 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>: (optional) Der Name einer Property der "
+"assoziierten Klasse die mit diesem Fremdschlüssel verbunden ist. Falls nicht "
+"festgelegt, so wird der Primärschlüssel der assoziierten Klasse verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): enables the DDL generation of a unique "
+"constraint for the foreign-key column. By allowing this to be the target of "
+"a <literal>property-ref</literal>, you can make the association multiplicity "
+"one-to-one."
+msgstr ""
+"<literal>unique</literal> (optional): Aktiviert die DDL-Generierung einer "
+"eindeutigen Bedingung für die Spalte des Fremdschlüssels. Kann auch das Ziel "
+"einer <literal>property-ref</literal> sein. Dadurch ist die "
+"Assoziationsmultiplizität \"one-to-one\" effektiv."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): enables the DDL generation of a "
+"nullability constraint for the foreign key columns."
+msgstr ""
+"<literal>not-null</literal> (optional): Aktiviert die DDL-Generierung einer "
+"\"Nullability\"-Bedingung für die Fremdschlüsselspalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
+"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
+"\"</literal> specifies that the property should be fetched lazily when the "
+"instance variable is first accessed. This requires build-time bytecode "
+"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
+"association will always be eagerly fetched."
+msgstr ""
+"<literal>lazy</literal> (optional - die Standardeinstellung lautet "
+"<literal>proxy</literal>): In der Standardeinstellung werden \"Single-Point"
+"\"-Assoziationen geproxied. <literal>lazy=\"no-proxy\"</literal> bestimmt, "
+"dass für die Property \"lazy Fetching\" gilt (d.h. assoziierte Objekte "
+"werden bei Bedarf nachgeladen), wenn erstmals auf die Instanzvariable "
+"zugegriffen wird (erfordert Build-time Bytecode Instrumentierung). "
+"<literal>lazy=\"false\"</literal> bestimmt, dass für die Assoziation stets "
+"\"eager Fetching\" gilt (d.h. zusammengefasstes Laden von Objekt und "
+"assoziierten Objekten mit Verbundoperationen)."
+
+#. 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> (optional - standardmäÃig <literal>exception</"
+"literal>): Bestimmt, wie Fremdschlüssel, die auf fehlende Reihen verweisen, "
+"behandelt werden. Mit <literal>ignore</literal> wird eine fehlende Reihe als "
+"Null-Assoziation angesehen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional): the entity name of the associated "
+"class."
+msgstr ""
+"<literal>entity-name</literal> (optional): Der Entity-Name der assoziierten "
+"Klasse."
+
+#. 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> (optional): Ein SQL-Ausdruck, der den Wert für "
+"einen <emphasis>errechneten</emphasis> Fremdschlüssel definiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Setting a value of the <literal>cascade</literal> attribute to any "
+"meaningful value other than <literal>none</literal> will propagate certain "
+"operations to the associated object. The meaningful values are divided into "
+"three categories. First, basic operations, which include: <literal>persist, "
+"merge, delete, save-update, evict, replicate, lock and refresh</literal>; "
+"second, special values: <literal>delete-orphan</literal>; and third,"
+"<literal>all</literal> comma-separated combinations of operation names: "
+"<literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,"
+"delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\" /> "
+"for a full explanation. Note that single valued, many-to-one and one-to-one, "
+"associations do not support orphan delete."
+msgstr ""
+"Wird der Wert des <literal>cascade</literal>-Attributs auf einen anderen "
+"sinnvollen Wert als <literal>none</literal> gesetzt, so pflanzen sich "
+"bestimmte Vorgänge zum zugehörigen Objekt fort. Zu den sinnvollen Werten "
+"gehören Hibernates Grundvorgänge <literal>persist, merge, delete, save-"
+"update, evict, replicate, lock, refresh</literal>, die Sonderwerte "
+"<literal>delete-orphan</literal> und <literal>all</literal> sowie durch "
+"Komma getrennte Kombinationen von Vorgangsnamen, zum Beispiel "
+"<literal>cascade=\"persist,merge,evict\"</literal> oder <literal>cascade="
+"\"all,delete-orphan\"</literal>. Eine vollständige Erläuterung hierzu finden "
+"Sie unter <xref linkend=\"objectstate-transitive\"/>. Bitte beachten Sie, "
+"dass einwertige Assoziationen (Many-to-One und One-to-One Assoziationen) "
+"\"Orphan Delete\" nicht unterstützen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgstr ""
+"Eine typische <literal>many-to-one</literal>-Deklaration sieht so "
+"unkompliziert wie die Folgende aus:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>property-ref</literal> attribute should only be used for "
+"mapping legacy data where a foreign key refers to a unique key of the "
+"associated table other than the primary key. This is a complicated and "
+"confusing relational model. For example, if the <literal>Product</literal> "
+"class had a unique serial number that is not the primary key. The "
+"<literal>unique</literal> attribute controls Hibernate's DDL generation with "
+"the SchemaExport tool."
+msgstr ""
+"Das <literal>property-ref</literal>-Attribut sollte nur für das Mapping von "
+"Stammdaten verwendet werden, in denen ein Fremdschlüssel auf einen "
+"eindeutigen Schlüssel der assoziierten Tabelle verweist, der nicht der "
+"Primärschlüssel ist. Es handelt sich dabei um ein nicht besonders "
+"ansehnliches relationales Modell. Nehmen wir zum Beispiel an, dass die "
+"<literal>Product</literal>-Klasse eine eindeutige Seriennummer besitzt, die "
+"nicht der Primärschlüssel ist. (Das <literal>unique</literal>-Attribut "
+"steuert Hibernates DDL-Generierung mittels dem SchemaExport-Tool)."
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr ""
+"Dann könnte das Mapping für <literal>OrderItem</literal> folgendes verwenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This is not encouraged, however."
+msgstr "Allerdings wird dies nicht empfohlen."
+
+#. 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><"
+"properties></literal> element."
+msgstr ""
+"Wenn der eindeutige Schlüssel, auf den verwiesen wird, mehrere Properties "
+"der zugehörigen Entity enthält, so sollten die Properties, auf die verwiesen "
+"wird, in einem benannten <literal><properties></literal>-Element "
+"gemappt werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the referenced unique key is the property of a component, you can specify "
+"a property path:"
+msgstr ""
+"Falls der eindeutige Schlüssel, auf den verwiesen wird, die Property einer "
+"Komponente ist, so können Sie einen Property-Pfad festlegen:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "One-to-one"
+msgstr "one-to-one"
+
+#. 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 ""
+"Eine \"One-to-One\"-Assoziation mit einer anderen persistenten Klasse wird "
+"unter Verwendung eines <literal>one-to-one</literal>-Elements deklariert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>constrained</literal> (optional): specifies that a foreign key "
+"constraint on the primary key of the mapped table and references the table "
+"of the associated class. This option affects the order in which <literal>save"
+"()</literal> and <literal>delete()</literal> are cascaded, and determines "
+"whether the association can be proxied. It is also used by the schema export "
+"tool."
+msgstr ""
+"<literal>constrained</literal> (optional) legt fest, dass eine "
+"Fremdschlüsselbedingung auf dem Primärschlüssel der gemappten Tabelle auf "
+"die Tabelle der assoziierten Klasse verweist. Diese Option hat Einfluss auf "
+"die Reihenfolge in der <literal>save()</literal> und <literal>delete()</"
+"literal> aufeinander folgen und bestimmt, ob die Assoziation geproxied "
+"werden kann (wird auch vom Schema-Export-Tool verwendet)."
+
+#. 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 the primary key of this class. If not "
+"specified, the primary key of the associated class is used."
+msgstr ""
+"<literal>property-ref</literal>: (optional) Der Name einer Property der "
+"assoziierten Klasse, die mit dem Primärschlüssel dieser Klasse verbunden "
+"ist. Falls nicht anders festgelegt, so wird der Primärschlüssel der "
+"assoziierten Klasse verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): almost all one-to-one associations "
+"map to the primary key of the owning entity. If this is not the case, you "
+"can specify another column, columns or expression to join on using an SQL "
+"formula. See <literal>org.hibernate.test.onetooneformula</literal> for an "
+"example."
+msgstr ""
+"<literal>formula</literal> (optional): Fast alle \"One-to-One\" -"
+"Assoziationen mappen zum Primärschlüssel der Entity, die sie besitzt. Im "
+"seltenen Falle, dass dem nicht so ist, können Sie festlegen, dass sich eine "
+"andere Spalte, Spalten oder Ausdruck unter Verwendung einer SQL-Formel "
+"verbinden. (Siehe zum Beispiel <literal>org.hibernate.test.onetooneformula</"
+"literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
+"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
+"\"</literal> specifies that the property should be fetched lazily when the "
+"instance variable is first accessed. It requires build-time bytecode "
+"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
+"association will always be eagerly fetched. <emphasis>Note that if "
+"<literal>constrained=\"false\"</literal>, proxying is impossible and "
+"Hibernate will eagerly fetch the association</emphasis>."
+msgstr ""
+"<literal>lazy</literal> (optional - die Standardeinstellung lautet "
+"<literal>proxy</literal>): In der Standardeinstellung werden \"Single-Point"
+"\"-Assoziationen geproxied. <literal>lazy=\"no-proxy\"</literal> legt fest, "
+"dass für die Property \"lazy Fetching\" gilt (d.h. assoziierte Objekte "
+"werden bei Bedarf nachgeladen), wenn erstmals auf die Instanzvariable "
+"zugegriffen wird (erfordert Build-time Bytecode Instrumentierung). "
+"<literal>lazy=\"false\"</literal> legt fest, dass für die Assoziation stets "
+"\"eager Fetching\" gilt (d.h. zusammengefasstes Laden von Objekt und "
+"assoziierten Objekten mit Verbundoperationen).<emphasis>Bitte beachten Sie, "
+"dass bei <literal>constrained=\"false\"</literal> das Erstellen von Proxies "
+"nicht möglich ist und Hibernate bei der Assoziation \"eager Fetching\" "
+"anwendet!</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr "Es existieren zwei Arten von \"One-to-One\"-Assoziation:"
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr "Assoziationen des Primärschlüssels"
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr "Assoziationen eines eindeutigen Fremdschlüssels"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Primary key associations do not need an extra table column. If two rows are "
+"related by the association, then the two table rows share the same primary "
+"key value. To relate two objects by a primary key association, ensure that "
+"they are assigned the same identifier value."
+msgstr ""
+"Assoziationen von Primärschlüsseln benötigen keine Extra-Tabellenspalte. "
+"Wenn zwei Reihen durch die Assoziation verbunden sind, dann teilen die "
+"beiden Tabellenspalten denselben Primärschlüsselwert. Falls Sie also "
+"wünschen, dass zwei Objekte mittels Assoziation des Primärschlüssels "
+"verbunden werden, müssen Sie sicherstellen, dass ihnen derselbe "
+"Bezeichnerwert zugeschrieben wird!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For a primary key association, add the following mappings to "
+"<literal>Employee</literal> and <literal>Person</literal> respectively:"
+msgstr ""
+"Für eine Assoziation des Primärschlüssels fügen Sie die folgenden Mappings "
+"zu <literal>Employee</literal> beziehungsweise <literal>Person</literal> "
+"hinzu."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Ensure that the primary keys of the related rows in the PERSON and EMPLOYEE "
+"tables are equal. You use a special Hibernate identifier generation strategy "
+"called <literal>foreign</literal>:"
+msgstr ""
+"Nun muss sicher gestellt werden, dass die Primärschlüssel verbundener Reihen "
+"in den PERSON- und EMPLOYEE-Tabellen gleich sind. Dabei kommt eine besondere "
+"Strategie namens <literal>foreign</literal> für die Generierung des "
+"Bezeichners durch Hibernate zum Einsatz:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A newly saved instance of <literal>Person</literal> is assigned the same "
+"primary key value as the <literal>Employee</literal> instance referred with "
+"the <literal>employee</literal> property of that <literal>Person</literal>."
+msgstr ""
+"Einer neu gespeicherten Instanz von <literal>Person</literal> wird dann "
+"derselbe Wert des Primärschlüssels zugeschrieben wie der <literal>Employee</"
+"literal>-Instanz, die mit der <literal>employee</literal>-Property dieser "
+"<literal>Person</literal> referenziert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, a foreign key with a unique constraint, from "
+"<literal>Employee</literal> to <literal>Person</literal>, can be expressed "
+"as:"
+msgstr ""
+"Alternativ kann ein Fremdschlüssel mit eindeutiger Bedingung von "
+"<literal>Employee</literal> zu <literal>Person</literal> wie folgt "
+"ausgedrückt werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This association can be made bidirectional by adding the following to the "
+"<literal>Person</literal> mapping:"
+msgstr ""
+"Und diese Assoziation kann durch Hinzufügen des Folgenden zum "
+"<literal>Person</literal>-Mapping bidirektional gemacht werden:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Natural-id"
+msgstr "natural-id"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Although we recommend the use of surrogate keys as primary keys, you should "
+"try to identify natural keys for all entities. A natural key is a property "
+"or combination of properties that is unique and non-null. It is also "
+"immutable. Map the properties of the natural key inside the <literal><"
+"natural-id></literal> element. Hibernate will generate the necessary "
+"unique key and nullability constraints and, as a result, your mapping will "
+"be more self-documenting."
+msgstr ""
+"Obwohl wir die Verwendung von Surrogatschlüsseln als Primärschlüssel "
+"empfehlen, sollten Sie nach wie vor versuchen natürliche Schlüssel für alle "
+"Entities zu identifizieren. Ein natürlicher Schlüssel ist eine Property oder "
+"Kombination von Properties die eindeutig und ungleich Null ist. Falls sie "
+"auÃerdem unveränderbar ist, umso besser. Mappen Sie die Properties des "
+"natürlichen Schlüssels innerhalb des <literal><natural-id></literal>-"
+"Elements. Hibernate generiert den nötigen eindeutigen Schlüssel sowie "
+"\"Nullability\"-Bedingungen, und Ihr Mapping wird selbst-dokumentierender."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the natural key properties of the "
+"entity."
+msgstr ""
+"Wir empfehlen dringend die Implementierung von <literal>equals()</literal> "
+"und <literal>hashCode()</literal>, um die Properties des natürlischen "
+"Schlüssels der Entity zu vergleichen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This mapping is not intended for use with entities that have natural primary "
+"keys."
+msgstr ""
+"Dieses Mapping ist nicht für die Verwendung mit Entities mit natürlichen "
+"Primärschlüsseln vorgesehen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>false</"
+"literal>): by default, natural identifier properties are assumed to be "
+"immutable (constant)."
+msgstr ""
+"<literal>mutable</literal> (optional, die Standardeinstellung lautet "
+"<literal>false</literal>): In der Standardeinstellung wird davon "
+"ausgegangen, dass die natürlichen Bezeichner-Properties unveränderbar "
+"(konstant) sind."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Component and dynamic-component"
+msgstr "component, dynamic-component"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><component></literal> element maps properties of a child "
+"object to columns of the table of a parent class. Components can, in turn, "
+"declare their own properties, components or collections. See the \"Component"
+"\" examples below:"
+msgstr ""
+"Das <literal><component></literal>-Element mappt die Properties eines "
+"untergeordneten Objekts zu den Spalten der Tabelle der übergeordneten "
+"Klasse. Komponenten wiederum können ihre eigenen Properties, Komponenten "
+"oder \"Collections\" deklarieren. Siehe \"Komponenten\" unten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): the name of the component (child) class."
+msgstr ""
+"<literal>class</literal> (optional - Standardeinstellung ist der durch "
+"Reflexion bestimmte Property-Typ): Der Name der (untergeordneten) "
+"Komponentenklasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal>: do the mapped columns appear in SQL "
+"<literal>INSERTs</literal>?"
+msgstr ""
+"<literal>insert</literal>: Erscheinen die gemappten Spalten in SQL "
+"<literal>INSERT</literal>s?"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update</literal>: do the mapped columns appear in SQL "
+"<literal>UPDATEs</literal>?"
+msgstr ""
+"<literal>update</literal>: Erscheinen die gemappten Spalten in SQL "
+"<literal>UPDATE</literal>s?"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
+"specifies that this component should be fetched lazily when the instance "
+"variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr ""
+"<literal>lazy</literal> (optional - die Standardeinstellung lautet "
+"<literal>false</literal>): Legt fest, dass für diese Komponente \"lazy "
+"Fetching\" gilt, wenn erstmals auf die Instanzvariable zugegriffen wird "
+"(erfordert Build-time Bytecode Instrumentierung)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to this component either do or do not "
+"require acquisition of the optimistic lock. It determines if a version "
+"increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (optional - die Standardeinstellung "
+"lautet <literal>true</literal>): Legt fest, ob Aktualisierungen dieser "
+"Komponente die Erfassung einer optimistischen Sperre benötigen oder nicht. "
+"Mit anderen Worten, es wird bestimmt, ob eine Erhöhung der Version "
+"stattfinden soll, wenn die Inhalte dieser Property sich verändert haben (man "
+"sagt sie sein dann \"dirty\")."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional - defaults to <literal>false</literal>): "
+"specifies that a unique constraint exists upon all mapped columns of the "
+"component."
+msgstr ""
+"<literal>unique</literal> (optional - die Standardeinstellung lautet "
+"<literal>false</literal>): Bestimmt, dass eine eindeutige Bedingung an allen "
+"gemappten Spalten der Komponente existiert."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The child <literal><property></literal> tags map properties of the "
+"child class to table columns."
+msgstr ""
+"Die untergeordneten <literal><property></literal>-Tags mappen "
+"Properties der untergeordneten Klasse zu den Spalten der Tabelle."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"Das <literal><component></literal>-Element ermöglicht ein <literal><"
+"parent></literal>-Subelement, das eine Property der Komponentenklasse als "
+"Rückreferenz zur enthaltenden Entity mappt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><dynamic-component></literal> element allows a "
+"<literal>Map</literal> to be mapped as a component, where the property names "
+"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
+"more information."
+msgstr ""
+"Das <literal><dynamic-component></literal>-Element erlaubt es einer "
+"<literal>Map</literal> als Komponente gemappt zu werden, wenn die Namen der "
+"Properties auf Schlüssel der Map verweisen, siehe <xref linkend=\"components-"
+"dynamic\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "Properties"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><properties></literal> element allows the definition of a "
+"named, logical grouping of the properties of a class. The most important use "
+"of the construct is that it allows a combination of properties to be the "
+"target of a <literal>property-ref</literal>. It is also a convenient way to "
+"define a multi-column unique constraint. For example:"
+msgstr ""
+"Das <literal><properties></literal>-Element erlaubt die Definition "
+"einer benannten, logischen Gruppierung der Properties einer Klasse. Der "
+"wichtigste Aspekt des Konstrukts ist, dass es die Verwendung einer Gruppe "
+"von Properties als Ziel einer <literal>property-ref</literal> ermöglicht. Es "
+"bietet auÃerdem eine gute Möglichkeit, eine eindeutige Mehrspalten-Bedingung "
+"zu definieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the logical name of the grouping. It is "
+"<emphasis>not</emphasis> an actual property name."
+msgstr ""
+"<literal>name</literal>: Der logische Name der Gruppierung - <emphasis>kein</"
+"emphasis> tatsächlicher Property-Name."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to these properties either do or do not "
+"require acquisition of the optimistic lock. It determines if a version "
+"increment should occur when these properties are dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (optional - die Standardeinstellung "
+"lautet <literal>true</literal>): Legt fest, ob Aktualisierungen dieser "
+"Properties die Erfassung einer optimistischen Sperre benötigen oder nicht. "
+"Mit anderen Worten, es wird bestimmt, ob eine Erhöhung der Version "
+"stattfinden soll, wenn die Inhalte dieser Properties sich verändert haben "
+"(man sagt sie seien dann \"dirty\")."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For example, if we have the following <literal><properties></literal> "
+"mapping:"
+msgstr ""
+"Nehmen wir etwa das folgende <literal><properties></literal>-Mapping:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You might have some legacy data association that refers to this unique key "
+"of the <literal>Person</literal> table, instead of to the primary key:"
+msgstr ""
+"Und wir könnten eine Stammdatenassoziation haben, die auf diesen eindeutigen "
+"Schlüssel der <literal>Person</literal>-Tabelle verweist, statt auf den "
+"Primärschlüssel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The use of this outside the context of mapping legacy data is not "
+"recommended."
+msgstr ""
+"AuÃerhalb vom Kontext des Mappens von Stammdaten wird diese Vorgehensweise "
+"jedoch nicht empfohlen."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Subclass"
+msgstr "subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Polymorphic persistence requires the declaration of each subclass of the "
+"root persistent class. For the table-per-class-hierarchy mapping strategy, "
+"the <literal><subclass></literal> declaration is used. For example:"
+msgstr ""
+"SchlieÃlich erfordert die polymorphe Persistenz die Deklaration jeder "
+"Subklasse der persistenten Stammklasse. Für die Tabelle-pro-Klasse-"
+"Hierarchie (sog. \"table-per-class-hierarchy\") Mapping-Strategie wird die "
+"<literal><subclass></literal>-Deklaration verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr "<literal>name</literal>: Der vollständige Klassenname der Subklasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): a value that distinguishes individual subclasses."
+msgstr ""
+"<literal>discriminator-value</literal> (optional - die Standardeinstellung "
+"ist der Klassenname): Ein Wert, der einzelne Subklassen unterscheidet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface used for "
+"lazy initializing proxies."
+msgstr ""
+"<literal>proxy</literal> (optional): Bestimmt eine Klasse oder ein "
+"Interface, die/das für die Initialisierung von Proxies bei Bedarf (sog. "
+"\"lazy initializing proxies\") verwendet werden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
+"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr ""
+"<literal>lazy</literal> (optional, die Standardeinstellung lautet "
+"<literal>true</literal>): Die Einstellung <literal>lazy=\"false\"</literal> "
+"deaktiviert die Verwendung von \"Lazy Fetching\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Each subclass declares its own persistent properties and subclasses. "
+"<literal><version></literal> and <literal><id></literal> "
+"properties are assumed to be inherited from the root class. Each subclass in "
+"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
+"this is not specified, the fully qualified Java class name is used."
+msgstr ""
+"Jede Subklasse sollte ihre eigenen persistenten Properties und Subklassen "
+"deklarieren. Die <literal><version></literal> und <literal><id></"
+"literal>-Properties werden als von der Stammklasse vererbt vorausgesetzt. "
+"Jede Subklasse einer Hierarchie muss einen eindeutigen "
+"<literal>discriminator-value</literal> definieren. Ist keiner festgelegt, so "
+"wird der vollständige Java Klassenname verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
+msgstr ""
+"Informationen zu Vererbungsmappings (\"sog. \"inheritance mappings\") finden "
+"Sie unter <xref linkend=\"inheritance\"/>."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Joined-subclass"
+msgstr "joined-subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Each subclass can also be mapped to its own table. This is called the table-"
+"per-subclass mapping strategy. An inherited state is retrieved by joining "
+"with the table of the superclass. To do this you use the <literal><joined-"
+"subclass></literal> element. For example:"
+msgstr ""
+"Alternativ kann jede Subklasse zu ihrer eigenen Tabelle gemappt werden (sog. "
+"\"Table-per-Subclass\" Mapping-Strategie). Der vererbte Status wird durch "
+"Verbindung mit der Tabelle der Superklasse abgerufen. Es wird das "
+"<literal><joined-subclass></literal>-Element verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr "<literal>table</literal>: Der Name der Subklassentabelle."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface to use "
+"for lazy initializing proxies."
+msgstr ""
+"<literal>proxy</literal> (optional): Bestimmt eine Klasse oder ein "
+"Interface, die/das für die Initialisierung von Proxies bei Bedarf (sog. "
+"\"lazy initializing proxies\") verwendet werden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional, defaults to <literal>true</literal>): "
+"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr ""
+"<literal>lazy</literal> (optional, die Standardeinstellung lautet "
+"<literal>true</literal>): Die Einstellung <literal>lazy=\"false\"</literal> "
+"deaktiviert die Verwendung von \"Lazy Fetching\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A discriminator column is not required for this mapping strategy. Each "
+"subclass must, however, declare a table column holding the object identifier "
+"using the <literal><key></literal> element. The mapping at the start "
+"of the chapter would then be re-written as:"
+msgstr ""
+"Bei dieser Mapping-Strategie ist keine Diskriminatortabelle erforderlich. "
+"Jede Subklasse muss jedoch unter Verwendung des <literal><key></"
+"literal>-Elements eine Tabellenspalte deklarieren, die den Objektbezeichner "
+"enthält. Das Mapping vom Kapitelbeginn würde dann wie folgt umgeschrieben:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Union-subclass"
+msgstr "union-subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A third option is to map only the concrete classes of an inheritance "
+"hierarchy to tables. This is called the table-per-concrete-class strategy. "
+"Each table defines all persistent states of the class, including the "
+"inherited state. In Hibernate, it is not necessary to explicitly map such "
+"inheritance hierarchies. You can map each class with a separate <literal><"
+"class></literal> declaration. However, if you wish use polymorphic "
+"associations (e.g. an association to the superclass of your hierarchy), you "
+"need to use the <literal><union-subclass></literal> mapping. For "
+"example:"
+msgstr ""
+"Eine dritte Möglichkeit besteht darin, nur die konkreten Klassen einer "
+"Vererbungshierarchie zu Tabellen zu mappen (sog. \"table-per-concrete-class"
+"\"-Strategie), bei der jede Tabelle jeden persistenten Status "
+"(einschlieÃlich vererbter) definiert. In Hibernate ist es absolut nicht "
+"notwendig solche Vererbungshierarchien explizit zu mappen. Sie können "
+"einfach jede Klasse mit einer separaten <literal><class></literal>-"
+"Deklaration mappen. Falls Sie jedoch polymorphe Assoziationen verwenden "
+"wollen (z.B. eine Assoziation zur Superklasse Ihrer Hierarchie), so müssen "
+"Sie das <literal><union-subclass></literal>-Mapping verwenden."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"No discriminator column or key column is required for this mapping strategy."
+msgstr ""
+"Für diese Mapping-Strategie ist keine Diskriminatorspalte oder "
+"Schlüsselspalte erforderlich."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Join"
+msgstr "join"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Using the <literal><join></literal> element, it is possible to map "
+"properties of one class to several tables that have a one-to-one "
+"relationship. For example:"
+msgstr ""
+"Mittels des <literal><join></literal>-Elements können Properties einer "
+"Klasse zu mehreren Tabellen gemappt werden, wenn eine 1-zu-1 Beziehung "
+"zwischen den Tabellen besteht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr "<literal>table</literal>: Der Name der verbundenen Tabelle."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
+"if set to <literal>join</literal>, the default, Hibernate will use an inner "
+"join to retrieve a <literal><join></literal> defined by a class or its "
+"superclasses. It will use an outer join for a <literal><join></"
+"literal> defined by a subclass. If set to <literal>select</literal> then "
+"Hibernate will use a sequential select for a <literal><join></literal> "
+"defined on a subclass. This will be issued only if a row represents an "
+"instance of the subclass. Inner joins will still be used to retrieve a "
+"<literal><join></literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal> (optional - die Standardeinstellung lautet "
+"<literal>join</literal>): Falls im Standard auf <literal>join</literal> "
+"eingestellt, so verwendet Hibernate einen inneren Verbund (sog. \"inner join"
+"\"), um einen durch eine Klasse oder deren Superklasse definierten "
+"<literal><join></literal> und einen äuÃeren Verbund (sog. \"outer join"
+"\") für einen durch eine Subklasse definierten <literal><join></"
+"literal> abzurufen. Bei der Einstellung <literal>select</literal> verwendet "
+"Hibernate eine sequentielle Auswahl für einen an einer Subklasse definierten "
+"<literal><join></literal>, welcher nur herausgegeben wird, wenn "
+"festgestellt wird, dass eine Reihe eine Instanz der Subklasse repräsentiert. "
+"Innere Verbünde werden nach wie vor verwendet, um einen durch eine Klasse "
+"oder deren Superklasse definierten <literal><join></literal> abzurufen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</"
+"literal>): if enabled, Hibernate will not insert or update the properties "
+"defined by this join."
+msgstr ""
+"<literal>inverse</literal> (optional - die Standardeinstellung lautet "
+"<literal>false</literal>): Falls aktiviert, wird Hibernate nicht versuchen, "
+"die durch diese Verknüpfung definierten Properties einzufügen oder zu "
+"aktualisieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optional</literal> (optional - defaults to <literal>false</"
+"literal>): if enabled, Hibernate will insert a row only if the properties "
+"defined by this join are non-null. It will always use an outer join to "
+"retrieve the properties."
+msgstr ""
+"<literal>optional</literal> (optional - die Standardeinstellung lautet "
+"<literal>false</literal>): Falls aktiviert, wird Hibernate nur dann eine "
+"Reihe einfügen, wenn die durch diese Verknüpfung definierten Properties "
+"ungleich Null sind. Es wird auÃerdem stets einen äuÃeren Verbund beim Abruf "
+"der Properties verwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For example, address information for a person can be mapped to a separate "
+"table while preserving value type semantics for all properties:"
+msgstr ""
+"Die Adressinformationen einer Person können zum Beispiel zu einer separaten "
+"Tabelle gemappt werden (unter Berücksichtigung der Semantik der Wertetypen "
+"aller Properties):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This feature is often only useful for legacy data models. We recommend fewer "
+"tables than classes and a fine-grained domain model. However, it is useful "
+"for switching between inheritance mapping strategies in a single hierarchy, "
+"as explained later."
+msgstr ""
+"Dieses Feature ist bei Stammdatenmodellen oft sehr nützlich, wir empfehlen "
+"weniger Tabellen als Klassen sowie ein feinstufiges Domainmodell. Es ist "
+"jedoch von Nutzen, wenn zwischen Mapping-Strategien der Vererbung in einer "
+"einzelnen Hierarchie gewechselt wird. Wir gehen später noch näher darauf ein."
+
+#. Tag: title
+#, no-c-format
+msgid "Key"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><key></literal> element has featured a few times within "
+"this guide. It appears anywhere the parent mapping element defines a join to "
+"a new table that references the primary key of the original table. It also "
+"defines the foreign key in the joined table:"
+msgstr ""
+"Das <literal><key></literal>-Element ist nun bereits öfter "
+"aufgetreten. Es erscheint überall dort, wo das übergeordnete Mapping-Element "
+"die Verknüpfung zu einer neuen Tabelle definiert. Es definiert den "
+"Fremdschlüssel in der verknüpften Tabelle, der auf den Primärschlüssel der "
+"Originaltabelle verweist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>on-delete</literal> (optional - defaults to <literal>noaction</"
+"literal>): specifies whether the foreign key constraint has database-level "
+"cascade delete enabled."
+msgstr ""
+"<literal>on-delete</literal> (optional, die Standardeinstellung lautet "
+"<literal>noaction</literal>): Legt fest, ob die Bedingung für den "
+"Fremdschlüssel auf Datenbankebene \"cascade delete\" aktiviert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>property-ref</literal> (optional): specifies that the foreign key "
+"refers to columns that are not the primary key of the original table. It is "
+"provided for legacy data."
+msgstr ""
+"<literal>property-ref</literal> (optional): Legt fest, dass der "
+"Fremdschlüssel auf Spalten verweist, die nicht der Primärschlüssel der "
+"Originaltabelle sind (für existierende Daten, sog. \"Legacy Data\")."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): specifies that the foreign key "
+"columns are not nullable. This is implied whenever the foreign key is also "
+"part of the primary key."
+msgstr ""
+"<literal>not-null</literal> (optional): Legt fest, dass die Spalten des "
+"Fremdschlüssels nicht nullbar (\"nullable\") sind (wird immer dann "
+"vorausgesetzt, wenn der Fremdschlüssel auch Teil des Primärschlüssels ist)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update</literal> (optional): specifies that the foreign key should "
+"never be updated. This is implied whenever the foreign key is also part of "
+"the primary key."
+msgstr ""
+"<literal>update</literal> (optional): Legt fest, dass der Fremdschlüssel "
+"niemals aktualisiert werden soll (wird immer dann vorausgesetzt, wenn der "
+"Fremdschlüssel auch Teil des Primärschlüssels ist)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): specifies that the foreign key should "
+"have a unique constraint. This is implied whenever the foreign key is also "
+"the primary key."
+msgstr ""
+"<literal>unique</literal> (optional): Legt fest, dass der Fremdschlüssel "
+"eine eindeutige Bedingung haben soll (wird immer dann vorausgesetzt, wenn "
+"der Fremdschlüssel auch der Primärschlüssel ist)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For systems where delete performance is important, we recommend that all "
+"keys should be defined <literal>on-delete=\"cascade\"</literal>. Hibernate "
+"uses a database-level <literal>ON CASCADE DELETE</literal> constraint, "
+"instead of many individual <literal>DELETE</literal> statements. Be aware "
+"that this feature bypasses Hibernate's usual optimistic locking strategy for "
+"versioned data."
+msgstr ""
+"Wir empfehlen, dass für Systeme bei denen \"Delete Performance\" wichtig "
+"ist, alle Schlüssel als <literal>on-delete=\"cascade\"</literal> definiert "
+"werden und Hibernate eine Bedingung der Datenbankebene <literal>ON CASCADE "
+"DELETE</literal> statt einzelner <literal>DELETE</literal>-Anweisungen "
+"verwendet. Bitte beachten Sie, dass dieses Feature Hibernates reguläre "
+"Strategie für optimistisches Sperren für versionierte Daten umgeht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>not-null</literal> and <literal>update</literal> attributes are "
+"useful when mapping a unidirectional one-to-many association. If you map a "
+"unidirectional one-to-many association to a non-nullable foreign key, you "
+"<emphasis>must</emphasis> declare the key column using <literal><key not-"
+"null=\"true\"></literal>."
+msgstr ""
+"Die <literal>not-null</literal> und <literal>update</literal>-Attribute sind "
+"insbesondere beim Mappen einer unidirektionalen \"One-to-Many\"-Assoziation "
+"hilfreich. Falls Sie eine unidirektionale \"One-to-Many\" zu einem nicht-"
+"nullbaren Fremdschlüssel mappen, so<emphasis>müssen</emphasis> Sie die "
+"Spalte des Schlüssels unter Verwendung von <literal><key not-null=\"true"
+"\"></literal> deklarieren."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Column and formula elements"
+msgstr "Spalten- und Formel-Elemente"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Mapping elements which accept a <literal>column</literal> attribute will "
+"alternatively accept a <literal><column></literal> subelement. "
+"Likewise, <literal><formula></literal> is an alternative to the "
+"<literal>formula</literal> attribute. For example:"
+msgstr ""
+"Jedes Mapping-Element das ein <literal>column</literal>-Attribut akzeptiert, "
+"akzeptiert alternativ auch ein <literal><column></literal>-Subelement. "
+"Ebenso ist <literal><formula></literal> eine Alternative zum "
+"<literal>formula</literal>-Attribut."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most of the attributes on <literal>column</literal> provide a means of "
+"tailoring the DDL during automatic schema generation. The <literal>read</"
+"literal> and <literal>write</literal> attributes allow you to specify custom "
+"SQL that Hibernate will use to access the column's value. For more on this, "
+"see the discussion of <link linkend=\"mapping-column-read-and-write\">column "
+"read and write expressions</link>."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>column</literal> and <literal>formula</literal> elements can "
+"even be combined within the same property or association mapping to express, "
+"for example, exotic join conditions."
+msgstr ""
+"Die <literal>column</literal> und <literal>formula</literal>-Attribute "
+"können sogar innerhalb desselben auszudrückenden Property- oder "
+"Assoziationsmappings kombiniert werden, zum Beispiel ausgefallene "
+"Verbundbedingungen."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Import"
+msgstr "import"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your application has two persistent classes with the same name, and you "
+"do not want to specify the fully qualified package name in Hibernate "
+"queries, classes can be \"imported\" explicitly, rather than relying upon "
+"<literal>auto-import=\"true\"</literal>. You can also import classes and "
+"interfaces that are not explicitly mapped:"
+msgstr ""
+"Nehmen wir an, Ihre Anwendung besitzt zwei persistente Klassen mit demselben "
+"Namen, und Sie wollen nicht den vollständigen (Paket-) Namen in Hibernate "
+"Anfragen spezifizieren. Klassen können explizit \"importiert\" werden, statt "
+"auf <literal>auto-import=\"true\"</literal> angewiesen zu sein. Sie können "
+"sogar Klassen und Interfaces importieren, die nicht explizit gemappt sind."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr ""
+"<literal>class</literal>: Der vollständige Klassenname einer Java-Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>rename</literal> (optional - defaults to the unqualified class "
+"name): a name that can be used in the query language."
+msgstr ""
+"<literal>rename</literal> (optional - die Standardeinstellung ist der nicht "
+"definierte Klassenname): Ein Name, der in der Anfragensprache verwendet "
+"werden kann."
+
+#. Tag: title
+#, no-c-format
+msgid "Any"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is one more type of property mapping. The <literal><any></"
+"literal> mapping element defines a polymorphic association to classes from "
+"multiple tables. This type of mapping requires more than one column. The "
+"first column contains the type of the associated entity. The remaining "
+"columns contain the identifier. It is impossible to specify a foreign key "
+"constraint for this kind of association. This is not the usual way of "
+"mapping polymorphic associations and you should use this only in special "
+"cases. For example, for audit logs, user session data, etc."
+msgstr ""
+"Es gibt noch einen weiteren Typ von Property-Mapping. Das <literal><"
+"any></literal> Mapping-Element definiert eine polymorphe Assoziation zu "
+"Klassen mehrerer Tabellen. Diese Art von Mapping erfordert immer mehr als "
+"eine Spalte. Die erste Spalte enthält den Typ der zugehörigen Entity. Die "
+"übrigen Spalten enthalten den Bezeichner. Es ist unmöglich, eine Bedingung "
+"für den Fremdschlüssel für diese Art von Assoziation festzulegen, daher ist "
+"dies nicht als reguläre Art des Mappings (polymorpher) Assoziationen "
+"gedacht. Sie sollten diesen Typ von Mapping nur in ganz besonderen Fällen "
+"anwenden (z.B. für Ãberprüfungsprotokolle, Daten der Benutzersession usw.)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>meta-type</literal> attribute allows the application to specify "
+"a custom type that maps database column values to persistent classes that "
+"have identifier properties of the type specified by <literal>id-type</"
+"literal>. You must specify the mapping from values of the meta-type to class "
+"names."
+msgstr ""
+"Das <literal>meta-type</literal>-Attribut ermöglicht es der Anwendung einen "
+"anwenderdefinierten Typ festzulegen, der die Werte der Datenbankspalte zu "
+"persistenten Klassen mit durch <literal>id-type</literal> bestimmte "
+"Bezeichner-Properties mappt. Das Mapping muss aus Werten des Meta-Typs zu "
+"Klassennamen bestimmt werden."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr "<literal>id-type</literal>: Der Bezeichnertyp."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>meta-type</literal> (optional - defaults to <literal>string</"
+"literal>): any type that is allowed for a discriminator mapping."
+msgstr ""
+"<literal>meta-type</literal> (optional - die Standardeinstellung lautet "
+"<literal>string</literal>): Jeder Typ, der für ein Diskriminator-Mapping "
+"gestattet ist."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
+"the cascade style."
+msgstr ""
+"<literal>cascade</literal> (optional- die Standardeinstellung lautet "
+"<literal>none</literal>): der \"Cascade-Style\" (Weitergabestil)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to this property either do or do not "
+"require acquisition of the optimistic lock. It defines whether a version "
+"increment should occur if this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (optional - die Standardeinstellung "
+"lautet <literal>true</literal>): Legt fest, ob Aktualisierungen dieser "
+"Property die Erfassung einer optimistischen Sperre benötigen oder nicht. Mit "
+"anderen Worten, es wird bestimmt ob eine Erhöhung der Version stattfinden "
+"soll, wenn die Inhalte dieser Property sich verändert haben."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Hibernate types"
+msgstr "Hibernate-Typen"
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr "Entities und Werte"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In relation to the persistence service, Java language-level objects are "
+"classified into two groups:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>entity</emphasis> exists independently of any other objects "
+"holding references to the entity. Contrast this with the usual Java model, "
+"where an unreferenced object is garbage collected. Entities must be "
+"explicitly saved and deleted. Saves and deletions, however, can be "
+"<emphasis>cascaded</emphasis> from a parent entity to its children. This is "
+"different from the ODMG model of object persistence by reachability and "
+"corresponds more closely to how application objects are usually used in "
+"large systems. Entities support circular and shared references. They can "
+"also be versioned."
+msgstr ""
+"Eine <emphasis>Entity</emphasis> existiert unabhängig von anderen Objekten, "
+"die Verweise zu der Entity enthalten. Das steht im Gegensatz zu dem üblichen "
+"Java-Modell bei dem ein unreferenziertes Objekt aus dem Speicher bereinigt "
+"wird. Entities müssen explizit gespeichert und gelöscht werden (ausgenommen, "
+"dass Speicherungen und Löschungen von einer übergeordneten Entity an die ihr "
+"untergeordneten Entities <emphasis>weitergegeben</emphasis> werden können). "
+"Das unterscheidet sich vom ODMG-Modell der Objektpersistenz durch "
+"Erreichbarkeit - und entspricht eher der Weise, in der Anwendungsobjekte in "
+"der Regel in groÃen Systemen verwendet werden. Entities unterstützen "
+"zirkulare und geteilte Verweise. Sie können auch versioniert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An entity's persistent state consists of references to other entities and "
+"instances of <emphasis>value</emphasis> types. Values are primitives: "
+"collections (not what is inside a collection), components and certain "
+"immutable objects. Unlike entities, values in particular collections and "
+"components, <emphasis>are</emphasis> persisted and deleted by reachability. "
+"Since value objects and primitives are persisted and deleted along with "
+"their containing entity, they cannot be independently versioned. Values have "
+"no independent identity, so they cannot be shared by two entities or "
+"collections."
+msgstr ""
+"Der persistente Zustand einer Entity besteht aus Verweisen auf andere "
+"Entities sowie Instanzen des <emphasis>Werte</emphasis>typs. Werte sind "
+"\"Primitives\", Collections (nicht, was innerhalb einer Collection ist), "
+"Komponenten und bestimmte unveränderliche Objekte. Ungleich Entities "
+"<emphasis>werden </emphasis> Werte (insbesondere Collections und "
+"Komponenten) persistiert und nach Erreichbarkeit gelöscht. Da Wertobjekte "
+"(und \"Primitives\") mit der sie enthaltenden Entity persistiert und "
+"gelöscht werden, können sie nicht unabhängig versioniert werden. Werte "
+"besitzen keine unabhängige Identität und können daher nicht von zwei "
+"Entities oder Collections geteilt werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Until now, we have been using the term \"persistent class\" to refer to "
+"entities. We will continue to do that. Not all user-defined classes with a "
+"persistent state, however, are entities. A <emphasis>component</emphasis> is "
+"a user-defined class with value semantics. A Java property of type "
+"<literal>java.lang.String</literal> also has value semantics. Given this "
+"definition, all types (classes) provided by the JDK have value type "
+"semantics in Java, while user-defined types can be mapped with entity or "
+"value type semantics. This decision is up to the application developer. An "
+"entity class in a domain model will normally have shared references to a "
+"single instance of that class, while composition or aggregation usually "
+"translates to a value type."
+msgstr ""
+"Bis jetzt wurde der Begriff \"persistente Klasse\" im Zusammenhang mit "
+"Entities verwendet, was auch weiterhin der Fall sein wird. Streng genommen "
+"sind jedoch nicht alle benutzerdefinierten Klassen mit persistentem Status "
+"Entities. Eine <emphasis>Komponente</emphasis> ist eine benutzerdefinierte "
+"Klasse mit Wertsemantik. Eine Java-Property des Typs <literal>java.lang."
+"String</literal> besitzt ebenfalls Wertsemantik. Angesichts dieser "
+"Definition kann man sagen, dass alle von der JDK bereitgestellten Typen "
+"(Klassen) in Java über Wertetyp-Semantik verfügen, während "
+"benutzerdefinierte Typen mit Entity- oder Wertetyp-Semantik gemappt werden "
+"können. Die Entscheidung bleibt hierbei dem Entwickler der Anwendung "
+"überlassen. Eine gute Idee für eine Entity-Klasse in einem Domain-Modell "
+"sind geteilte Verweise auf eine einzelne Instanz der Klasse, während "
+"Komposition oder Aggregation in der Regel für einen Wertetyp geeignet sind. "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr ""
+"Beide Konzepte werden innerhalb der Dokumentation noch wiederholt "
+"aufgegriffen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The challenge is to map the Java type system, and the developers' definition "
+"of entities and value types, to the SQL/database type system. The bridge "
+"between both systems is provided by Hibernate. For entities, <literal><"
+"class></literal>, <literal><subclass></literal> and so on are used. "
+"For value types we use <literal><property></literal>, <literal><"
+"component></literal>etc., that usually have a <literal>type</literal> "
+"attribute. The value of this attribute is the name of a Hibernate "
+"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
+"for standard JDK value types out of the box. You can write your own mapping "
+"types and implement your own custom conversion strategies."
+msgstr ""
+"Die Herausforderung besteht darin, das System des Java-Typs (und die "
+"Definitionen von Entities und Wertetypen der Entwickler) zu einem System des "
+"SQL/Datenbanktyps zu mappen. Die Brücke zwischen beiden Systemen wird von "
+"Hibernate bereitgestellt: Für Entities werden <literal><class></"
+"literal>, <literal><subclass></literal> usw. verwendet. Für Wertetypen "
+"werden <literal><property></literal>, <literal><component></"
+"literal>, usw. - in der Regel mit einem <literal>type</literal>-Attribut - "
+"verwendet. Der Wert dieses Attributs ist der Name eines Hibernate "
+"<emphasis>Mapping-Typs</emphasis>. Hibernate bietet viele Mappings (für "
+"Standard JDK Wertetypen). Sie können auch eigene Mapping-Typen erstellen und "
+"auch Ihre eigenen angepassten Datenkonvertierungsstrategien implementieren. "
+"Darauf gehen wir später noch ein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"With the exception of collections, all built-in Hibernate types support null "
+"semantics."
+msgstr ""
+"Alle eingebauten Hibernate-Typen auÃer \"Collections\" unterstützen Null-"
+"Semantik (sog. \"null semantics\"."
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr "Grundlegende Wertetypen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
+"categorized into the following:"
+msgstr ""
+"Die eingebauten, <emphasis>grundlegenden Mapping-Typen</emphasis> können im "
+"Wesentlichen wie folgt kategorisiert werden"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"<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
+#, 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 ""
+"Typen-Mappings von Java-\"Primitives\" oder \"Wrapper-Klassen\" zu passenden "
+"(Anbieter-spezifischen) SQL-Spaltentypen. <literal>boolean, yes_no</literal> "
+"und <literal>true_false</literal> sind alternative Verschlüsselungen für "
+"einen Java <literal>boolean</literal> oder <literal>java.lang.Boolean</"
+"literal>."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. 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 ""
+"Ein \"Type-Mapping\" von <literal>java.lang.String</literal> zu "
+"<literal>VARCHAR</literal> (oder Oracle <literal>VARCHAR2</literal>)."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "date, time, timestamp"
+
+#. 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 ""
+"Type-Mappings von <literal>java.util.Date</literal> und dessen Subklassen zu "
+"SQL-Typen <literal>DATE</literal>, <literal>TIME</literal> und "
+"<literal>TIMESTAMP</literal> (oder äquivalent)."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "calendar, calendar_date"
+
+#. 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 ""
+"Type-Mappings von <literal>java.util.Calendar</literal> zu SQL-Typen "
+"<literal>TIMESTAMP</literal> und <literal>DATE</literal> (oder äquivalent)."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "big_decimal, big_integer"
+
+#. 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 ""
+"Type-Mappings von <literal>java.math.BigDecimal</literal> und <literal>java."
+"math.BigInteger</literal> zu <literal>NUMERIC</literal> (oder Oracle "
+"<literal>NUMBER</literal>)."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "locale, timezone, currency"
+
+#. 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 ""
+"Type-Mappings von <literal>java.util.Locale</literal>, <literal>java.util."
+"TimeZone</literal> und <literal>java.util.Currency</literal> "
+"zu<literal>VARCHAR</literal> (oder Oracle <literal>VARCHAR2</literal>). "
+"Instanzen von <literal>Locale</literal> und <literal>Currency</literal> "
+"werden zu ihren ISO-Codes gemappt. Instanzen von <literal>TimeZone</literal> "
+"werden zu ihrer <literal>ID</literal> gemappt."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. 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 ""
+"Ein Type-Mapping von <literal>java.lang.Class</literal> zu <literal>VARCHAR</"
+"literal> (oder Oracle <literal>VARCHAR2</literal>). Eine <literal>Class</"
+"literal> wird zu ihrem vollständigen Namen gemappt."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr "Mappt Byte-Arrays zum zugehörigen SQL-Binärtyp."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>name</literal>: Der Property-Name."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
+"literal> type."
+msgstr ""
+"Mappt lange Java-Strings zum SQL <literal>CLOB</literal> oder <literal>TEXT</"
+"literal>-Typ."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Maps serializable Java types to an appropriate SQL binary type. You can also "
+"indicate the Hibernate type <literal>serializable</literal> with the name of "
+"a serializable Java class or interface that does not default to a basic type."
+msgstr ""
+"Mappt serialisierbare Java-Typen zu einem zugehörigen SQL-Binärtyp. Sie "
+"können auch den Hibernate-Typ <literal>serializable</literal> mit dem Namen "
+"einer serialisierbaren Java-Klasse oder einem Interface (das in der "
+"Standardeinstellung kein Grundtyp ist) anzeigen."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>all</literal> Prüfung aller Spalten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and "
+"<literal>java.sql.Blob</literal>. These types can be inconvenient for some "
+"applications, since the blob or clob object cannot be reused outside of a "
+"transaction. Driver support is patchy and inconsistent."
+msgstr ""
+"Typen-Mappings für dieJDBC-Klassen <literal>java.sql.Clob</literal> und "
+"<literal>java.sql.Blob</literal>. Diese Typen können sich für manche "
+"Anwendungen als unpraktisch erweisen, da das \"blob\" oder \"clob\"-Objekt "
+"nicht auÃerhalb einer Transaktion wiederverwendet werden darf. (Auch der "
+"Treiber-Support ist lückenhaft und uneinheitlich)."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"<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
+#, fuzzy, no-c-format
+msgid ""
+"Type mappings for what are considered mutable Java types. This is where "
+"Hibernate makes certain optimizations appropriate only for immutable Java "
+"types, and the application treats the object as immutable. For example, you "
+"should not call <literal>Date.setTime()</literal> for an instance mapped as "
+"<literal>imm_timestamp</literal>. To change the value of the property, and "
+"have that change made persistent, the application must assign a new, "
+"nonidentical, object to the property."
+msgstr ""
+"Typen-Mappings für in der Regel als veränderlich angesehene Java-Typen, "
+"wobei Hibernate bestimmte und nur für unveränderliche Java-Typen passende "
+"Optimierungen vornimmt und die Anwendung das Objekt als unveränderlich "
+"behandelt. Sie sollten zum Beispiel nicht <literal>Date.setTime()</literal> "
+"für eine als <literal>imm_timestamp</literal> gemappte Instanz aufrufen. Um "
+"den Wert der Property zu verändern und diese Ãnderung persistent zu machen, "
+"muss die Anwendung der Property ein neues (nicht identisches) Objekt "
+"zuordnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Unique identifiers of entities and collections can be of any basic type "
+"except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</"
+"literal>. Composite identifiers are also allowed. See below for more "
+"information."
+msgstr ""
+"Eindeutige Bezeichner von Entities und Collections können jeden Grundtyp "
+"auÃer <literal>binary</literal>, <literal>blob</literal> und <literal>clob</"
+"literal> besitzen. (Zusammengesetzte Bezeichner sind ebenfalls möglich, "
+"siehe unten)."
+
+#. 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 ""
+"Die grundlegenden Wertetypen haben entsprechende <literal>Type</literal>-"
+"Konstanten, die auf <literal>org.hibernate.Hibernate</literal> definiert "
+"sind. So repräsentiert <literal>Hibernate.STRING</literal> zum Beispiel den "
+"<literal>string</literal>-Typ."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr "Angepasste Wertetypen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is relatively easy for developers to create their own value types. For "
+"example, you might want to persist properties of type <literal>java.lang."
+"BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does "
+"not provide a built-in type for this. Custom types are not limited to "
+"mapping a property, or collection element, to a single table column. So, for "
+"example, you might have a Java property <literal>getName()</literal>/"
+"<literal>setName()</literal> of type <literal>java.lang.String</literal> "
+"that is persisted to the columns <literal>FIRST_NAME</literal>, "
+"<literal>INITIAL</literal>, <literal>SURNAME</literal>."
+msgstr ""
+"Es ist relativ einfach für Entwickler, ihre eigenen Wertetypen zu erstellen. "
+"Sie könnten zum Beispiel die Properties vom Typ <literal>java.lang."
+"BigInteger</literal> zu <literal>VARCHAR</literal>-Spalten persistieren. "
+"Hibernate bietet hierfür keinen eingebauten Typ. Aber angepasste "
+"(anwenderdefinierte) Typen beschränken sich nicht auf das Mappen einer "
+"Property (oder eines Collection-Elements) zu einer einzelnen Tabellenspalte. "
+"So könnten Sie zum Beispiel eine Java-Property <literal>getName()</literal>/"
+"<literal>setName()</literal> des Typs <literal>java.lang.String</literal> "
+"haben, die zu den Spalten <literal>FIRST_NAME</literal>, <literal>INITIAL</"
+"literal>, <literal>SURNAME</literal> persistiert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To implement a custom type, implement either <literal>org.hibernate."
+"UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and "
+"declare properties using the fully qualified classname of the type. View "
+"<literal>org.hibernate.test.DoubleStringType</literal> to see the kind of "
+"things that are possible."
+msgstr ""
+"Um einen angepassten Typ zu implementieren, implementieren Sie entweder "
+"<literal>org.hibernate.UserType</literal> oder <literal>org.hibernate."
+"CompositeUserType</literal> und deklarieren Sie Properties unter Verwendung "
+"des vollständigen Klassennamens des Typs. Unter <literal>org.hibernate.test."
+"DoubleStringType</literal> finden Sie die unterschiedlichen Möglichkeiten, "
+"die es dabei gibt."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Notice the use of <literal><column></literal> tags to map a property "
+"to multiple columns."
+msgstr ""
+"Beachten Sie die Verwendung von <literal><column></literal>-Tags beim "
+"Mappen einer Property zu mehreren Spalten."
+
+#. 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 ""
+"Die <literal>CompositeUserType</literal>, <literal>EnhancedUserType</"
+"literal>, <literal>UserCollectionType</literal> und "
+"<literal>UserVersionType</literal> Interfaces unterstützen auch speziellere "
+"Einsatzmöglichkeiten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even supply parameters to a <literal>UserType</literal> in the "
+"mapping file. To do this, your <literal>UserType</literal> must implement "
+"the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. "
+"To supply parameters to your custom type, you can use the <literal><"
+"type></literal> element in your mapping files."
+msgstr ""
+"Sie können sogar Parameter für einen <literal>UserType</literal> in der "
+"Mappingdatei bereitstellen. Dazu muss Ihr <literal>UserType</literal> das "
+"<literal>org.hibernate.usertype.ParameterizedType</literal>-Interface "
+"implementieren. Um Parameter für Ihren angepassten Typ bereitzustellen "
+"können Sie das <literal><type></literal>-Element in Ihren "
+"Mappingdateien verwenden."
+
+#. 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 ""
+"Der <literal>UserType</literal> kann jetzt den Wert für den Parameter mit "
+"Namen <literal>default</literal> von dem an ihn geleiteten "
+"<literal>Properties</literal>-Objekt abrufen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you regularly use a certain <literal>UserType</literal>, it is useful to "
+"define a shorter name for it. You can do this using the <literal><"
+"typedef></literal> element. Typedefs assign a name to a custom type, and "
+"can also contain a list of default parameter values if the type is "
+"parameterized."
+msgstr ""
+"Wenn Sie einen bestimmten <literal>UserType</literal> sehr oft verwenden, so "
+"kann es nützlich sein, wenn Sie einen kürzeren Namen für ihn definieren. Um "
+"das zu tun verwenden Sie das <literal><typedef></literal>-Element. "
+"\"Typedefs\" ordnen einem angepassten Typ einen Namen zu und können auÃerdem "
+"eine Liste standardmäÃiger Parameterwerte enthalten, wenn der Typ "
+"parametriert wird."
+
+#. 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 ""
+"Es ist auch möglich, die in einer \"typedef\" bereitgestellten Parameter von "
+"Fall zu Fall unter Verwendung der Typ-Parameter des Property-Mappings auÃer "
+"Kraft zu setzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though Hibernate's rich range of built-in types and support for "
+"components means you will rarely need to use a custom type, it is considered "
+"good practice to use custom types for non-entity classes that occur "
+"frequently in your application. For example, a <literal>MonetaryAmount</"
+"literal> class is a good candidate for a <literal>CompositeUserType</"
+"literal>, even though it could be mapped as a component. One reason for this "
+"is abstraction. With a custom type, your mapping documents would be "
+"protected against changes to the way monetary values are represented."
+msgstr ""
+"Obwohl die breit gefächerte Palette eingebauter Typen und Support bedeutet, "
+"dass Sie einen angepassten Typ nur sehr selten werden benutzen "
+"<emphasis>müssen</emphasis>, so ist es dennoch eine gute Angewohnheit "
+"angepasste Typen für in Ihrer Anwendung häufig vorkommende (nicht-Entity) "
+"Klassen zu verwenden. So ist zum Beispiel eine <literal>MonetaryAmount</"
+"literal>-Klasse ein guter Kandidat für einen <literal>CompositeUserType</"
+"literal>, obwohl sie leicht als eine Komponente gemappt werden könnte. Ein "
+"Grund hierfür ist Abstraktion. Mit einem angepassten Typ wären Ihre Mapping-"
+"Dokumente in Zukunft gegen mögliche Veränderungen in der Art, in der Ihre "
+"Geldwerte repräsentiert werden, gesichert."
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr "Das mehrfache Mappen einer Klasse"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to provide more than one mapping for a particular persistent "
+"class. In this case, you must specify an <emphasis>entity name</emphasis> to "
+"disambiguate between instances of the two mapped entities. By default, the "
+"entity name is the same as the class name. Hibernate lets you specify the "
+"entity name when working with persistent objects, when writing queries, or "
+"when mapping associations to the named entity."
+msgstr ""
+"Es ist möglich, mehr als ein Mapping für eine bestimmte persistente Klasse "
+"bereitzustellen. In diesem Fall müssen Sie einen <emphasis>Entity-Namen</"
+"emphasis> bereitstellen, um die Instanzen der beiden gemappten Entities "
+"eindeutig zu machen. (In der Standardeinstellung ist der Entity-Name "
+"derselbe wie der Klassenname). Hibernate lässt Sie den Entity-Namen "
+"festlegen, wenn Sie mit persistenten Objekten arbeiten, wenn Sie Anfragen "
+"schreiben oder Assoziationen zu der genannten Entity mappen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Associations are now specified using <literal>entity-name</literal> instead "
+"of <literal>class</literal>."
+msgstr ""
+"Beachten Sie, wie Assoziationen nun unter Verwendung von <literal>entity-"
+"name</literal> statt <literal>class</literal> spezifiziert werden."
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr "SQL angeführte Bezeichner"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can force Hibernate to quote an identifier in the generated SQL by "
+"enclosing the table or column name in backticks in the mapping document. "
+"Hibernate will use the correct quotation style for the SQL <literal>Dialect</"
+"literal>. This is usually double quotes, but the SQL Server uses brackets "
+"and MySQL uses backticks."
+msgstr ""
+"Sie können Hibernate dazu zwingen, einen Bezeichner in der generierten SQL "
+"anzugeben, indem Sie den Tabellen- oder Spaltennamen innerhalb des Mapping-"
+"Dokuments in Backtick-Zeichen einschlieÃen. Hibernate wird den korrekten "
+"\"Quotation-Style\" für den SQL <literal>Dialect</literal> verwenden (in der "
+"Regel doppelte Anführungszeichen, aber Klammern für SQL-Server und Backticks "
+"für MySQL)."
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr "Metadata-Alternativen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"XML does not suit all users so there are some alternative ways to define O/R "
+"mapping metadata in Hibernate."
+msgstr ""
+"XML ist nicht jedermanns Sache, daher gibt es auch alternative Möglichkeiten "
+"O/R Mapping Metadaten in Hibernate zu definieren."
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr "Die Verwendung von XDoclet-Markup"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Many Hibernate users prefer to embed mapping information directly in "
+"sourcecode using XDoclet <literal>@hibernate.tags</literal>. We do not cover "
+"this approach in this reference guide since it is considered part of "
+"XDoclet. However, we include the following example of the <literal>Cat</"
+"literal> class with XDoclet mappings:"
+msgstr ""
+"Viele Benutzer von Hibernate ziehen es vor, Mapping-Informationen unter "
+"Verwendung von XDoclet <literal>@hibernate.tags</literal> direkt im "
+"Quellcode einzubetten. Diese Vorgehensweise wird hier nicht behandelt, da es "
+"sich ausschlieÃlich um einen Teil von XDoclet handelt. Allerdings zeigen wir "
+"das nachfolgende Beispiel der <literal>Cat</literal>-Klasse mit XDoclet-"
+"Mappings."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr ""
+"Weitere Beispiele zu XDoclet und Hibernate finden Sie auf der Hibernate "
+"Website."
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr "Die Verwendung von JDK 5.0 Annotationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"JDK 5.0 introduced XDoclet-style annotations at the language level that are "
+"type-safe and checked at compile time. This mechanism is more powerful than "
+"XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, "
+"for example, supports auto-completion and syntax highlighting of JDK 5.0 "
+"annotations. The new revision of the EJB specification (JSR-220) uses JDK "
+"5.0 annotations as the primary metadata mechanism for entity beans. "
+"Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the "
+"persistence API). Support for mapping metadata is available via the "
+"<emphasis>Hibernate Annotations</emphasis> package as a separate download. "
+"Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
+msgstr ""
+"JDK 5.0 hat Annotationen im XDoclet-Stil auf der Sprachebene vorgestellt, "
+"die typensicher und zum Zeitpunkt der Kompilierung geprüft sind. Dieser "
+"Mechanismus ist leistungsstärker als XDoclet-Annotationen und bietet "
+"besseren Support durch Tools und IDEs . IntelliJ IDEA zum Beispiel "
+"unterstützt Auto-Vervollständigung und Syntax-Hervorhebungen von JDK 5.0 "
+"Annotationen. Die neue Revision der EJB-Spezifikation (JSR-220) verwendet "
+"JDK 5.0 Annotationen als primären Metadata-Mechanismus für Entity-Beans. "
+"Hibernate3 implementiert den <literal>EntityManager</literal> von JSR-220 "
+"(das Persistenz-API), Support für Mapping-Metadata ist mittels des "
+"<emphasis>Hibernate Annotations</emphasis>-Pakets als separater Download "
+"verfügbar. Sowohl EJB3 (JSR-220) und Hibernate3 Metadata werden unterstützt."
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr ""
+"Nachfolgend sehen Sie ein Beispiel für eine als EJB Entity-Bean annotierte "
+"POJO-Klasse:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Support for JDK 5.0 Annotations (and JSR-220) is currently under "
+"development. Please refer to the Hibernate Annotations module for more "
+"details."
+msgstr ""
+"Bitte beachten Sie, dass am Support für JDK 5.0 Annotationen (und JSR-220) "
+"noch gearbeitet wird und dieser noch nicht vollständig verfügbar ist. "
+"Weitere Einzelheiten entnehmen Sie bitte dem Hibernate Annotationsmodul."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Generated properties"
+msgstr "Generierte Properties"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Generated properties are properties that have their values generated by the "
+"database. Typically, Hibernate applications needed to <literal>refresh</"
+"literal> objects that contain any properties for which the database was "
+"generating values. Marking properties as generated, however, lets the "
+"application delegate this responsibility to Hibernate. When Hibernate issues "
+"an SQL INSERT or UPDATE for an entity that has defined generated properties, "
+"it immediately issues a select afterwards to retrieve the generated values."
+msgstr ""
+"Bei generierten Properties handelt es sich um Properties, deren Wert durch "
+"die Datenbank generiert wird. In der Regel mussten Hibernate-Anwendungen "
+"Objekte <literal>refresh</literal> (auffrischen), die Properties enthalten, "
+"für die die Datenbank Werte generierte. Werden die Properties jedoch als "
+"generiert gekennzeichnet, so delegiert die Anwendung diese Zuständigkeit an "
+"Hibernate. Jedes Mal wenn Hibernate ein SQL INSERT oder UPDATE für eine "
+"Entity mit als generiert definierten Properties herausgibt, gibt es ein "
+"\"select afterwards\" (Hinterher-Auswahl) heraus, um die generierten Werte "
+"abzufragen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Properties marked as generated must additionally be non-insertable and non-"
+"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"and <link linkend=\"mapping-declaration-property\">simple properties</link>, "
+"can be marked as generated."
+msgstr ""
+"Als generiert gekennzeichnete Properties müssen zusätzlich auch nicht "
+"einfügbar und nicht aktualisierbar sein (d.h. \"non-insertable\" bzw. \"non-"
+"updateable\"). Nur <xref linkend=\"mapping-declaration-version\"/>-"
+"Versionen, <xref linkend=\"mapping-declaration-timestamp\"/>-Zeitstempel und "
+"einfache <xref linkend=\"mapping-declaration-property\"/>-Properties können "
+"als generiert gekennzeichnet sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>never</literal> (the default): the given property value is not "
+"generated within the database."
+msgstr ""
+"<literal>never</literal> (the default) - bedeutet, dass der gegebene "
+"Property-Wert nicht innerhalb der Datenbank generiert wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal>: the given property value is generated on insert, "
+"but is not regenerated on subsequent updates. Properties like created-date "
+"fall into this category. Even though <link linkend=\"mapping-declaration-"
+"version\">version</link> and <link linkend=\"mapping-declaration-timestamp"
+"\">timestamp</link> properties can be marked as generated, this option is "
+"not available."
+msgstr ""
+"<literal>insert</literal> - besagt, dass der gegebene Property-Wert bei der "
+"Einfügung generiert wird, jedoch bei nachfolgenden Aktualisierungen nicht "
+"aufgefrischt wird. Dinge wie Erstelldatum fallen zum Beispiel in diese "
+"Kategorie. Bitte beachten Sie, dass <xref linkend=\"mapping-declaration-"
+"version\"/>-Version und <xref linkend=\"mapping-declaration-timestamp\"/>-"
+"Zeitstempel-Properties zwar als generiert gekennzeichnet werden können, "
+"diese Option dort jedoch nicht existiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>always</literal>: the property value is generated both on insert "
+"and on update."
+msgstr ""
+"<literal>always</literal> - besagt, dass der Property-Wert sowohl bei der "
+"Einfügung als auch bei der Aktualisierung generiert wird."
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows you to customize the SQL it uses to read and write the "
+"values of columns mapped to <link linkend=\"mapping-declaration-property"
+"\">simple properties</link>. For example, if your database provides a set of "
+"data encryption functions, you can invoke them for individual columns like "
+"this: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate applies the custom expressions automatically whenever the property "
+"is referenced in a query. This functionality is similar to a derived-"
+"property <literal>formula</literal> with two differences:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The property is backed by one or more columns that are exported as part of "
+"automatic schema generation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>write</literal> expression, if specified, must contain exactly "
+"one '?' placeholder for the value."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Auxiliary database objects"
+msgstr "Datenbankhilfsobjekte"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Auxiliary database objects allow for the CREATE and DROP of arbitrary "
+"database objects. In conjunction with Hibernate's schema evolution tools, "
+"they have the ability to fully define a user schema within the Hibernate "
+"mapping files. Although designed specifically for creating and dropping "
+"things like triggers or stored procedures, any SQL command that can be run "
+"via a <literal>java.sql.Statement.execute()</literal> method is valid (for "
+"example, ALTERs, INSERTS, etc.). There are essentially two modes for "
+"defining auxiliary database objects:"
+msgstr ""
+"Erlaubt CREATE und DROP beliebiger Datenbankobjekte in Verbindung mit "
+"Hibernates Schema-Evolution-Tools, um die Möglichkeit der vollständigen "
+"Definition des Benutzerschemas innerhalb der Hibernate Mapping-Dateien zu "
+"bieten. Obwohl speziell für die Erstellung und das \"Dropping\" von Triggern "
+"oder gespeicherten Vorgängen entwickelt, kann eigentlich so ziemlich jeder "
+"SQL-Befehl mittels der <literal>java.sql.Statement.execute()</literal>-"
+"Methode ausgeführt werden und ist hier gültig (ALTERs, INSERTS, usw). Es "
+"gibt im Wesentlichen zwei Modi der Definition von Datenbankhilfsobjekten..."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands in the "
+"mapping file:"
+msgstr ""
+"Die erste Methode ist die explizite Auflistung der CREATE- und DROP-Befehle "
+"in der Mapping-Datei:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The second mode is to supply a custom class that constructs the CREATE and "
+"DROP commands. This custom class must implement the <literal>org.hibernate."
+"mapping.AuxiliaryDatabaseObject</literal> interface."
+msgstr ""
+"Die zweite Methode ist die Bereitstellung einer angepassten Klasse, die "
+"weiÃ, wie CREATE- und DROP-Befehle erstellt werden. Diese angepasste Klasse "
+"muss das <literal>org.hibernate.mapping.AuxiliaryDatabaseObject</literal>-"
+"Interface implementieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Additionally, these database objects can be optionally scoped so that they "
+"only apply when certain dialects are used."
+msgstr ""
+"Zusätzlich können diese Datenbankobjekte wahlweise so abgegrenzt werden, "
+"dass Sie nur in Kraft treten, wenn bestimmte Dialekte verwendet werden."
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>\n"
+#~ "[...]\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ " />"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+#~ " <param name=\"table\">uid_table</param>\n"
+#~ " <param name=\"column\">next_hi_value_column</"
+#~ "param>\n"
+#~ " </generator>\n"
+#~ "</id>"
+
+#~ msgid "increment"
+#~ msgstr "increment"
+
+#~ msgid "identity"
+#~ msgstr "identity"
+
+#~ msgid "sequence"
+#~ msgstr "sequence"
+
+#~ msgid "hilo"
+#~ msgstr "hilo"
+
+#~ msgid "seqhilo"
+#~ msgstr "seqhilo"
+
+#~ msgid "guid"
+#~ msgstr "guid"
+
+#~ msgid "native"
+#~ msgstr "native"
+
+#~ msgid "assigned"
+#~ msgstr "assigned"
+
+#~ msgid "select"
+#~ msgstr "select"
+
+#~ msgid "foreign"
+#~ msgstr "foreign"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">person_id_sequence</"
+#~ "param>\n"
+#~ " </generator>\n"
+#~ "</id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
+#~ "\"0\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0"
+#~ "\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"select\">\n"
+#~ " <param name=\"key\">socialSecurityNumber</"
+#~ "param>\n"
+#~ " </generator>\n"
+#~ "</id>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<discriminator\n"
+#~ " column=\"discriminator_column\"\n"
+#~ " type=\"discriminator_type\"\n"
+#~ " force=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary sql expression\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>]]>"
+#~ msgstr ""
+#~ "<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<property\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " type=\"typename\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " generated=\"never|insert|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<property name=\"totalPrice\"\n"
+#~ " formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, "
+#~ "Product p\n"
+#~ " WHERE li.productId = p.productId\n"
+#~ " AND li.customerId = customerId\n"
+#~ " AND li.orderNumber = orderNumber )\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<many-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column="
+#~ "\"PRODUCT_ID\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
+#~ "column=\"SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"serialNumber\" unique=\"true\" type=\"string\" column="
+#~ "\"SERIAL_NUMBER\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" "
+#~ "column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" property-ref=\"serialNumber\" column="
+#~ "\"PRODUCT_SERIAL_NUMBER\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" class=\"Person\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained="
+#~ "\"true\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID"
+#~ "\" unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref="
+#~ "\"person\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name\"employee\" class=\"Employee\" property-ref=\"person"
+#~ "\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>]]>"
+#~ msgstr ""
+#~ "<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<component\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>]]>"
+#~ msgstr ""
+#~ "<component \n"
+#~ " name=\"propertyName\" \n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<properties\n"
+#~ " name=\"logicalName\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>]]>"
+#~ msgstr ""
+#~ "<properties \n"
+#~ " name=\"logicalName\" \n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ "\n"
+#~ " ...\n"
+#~ " <properties name=\"name\"\n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ " ...\n"
+#~ " <properties name=\"name\" \n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\"\n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" \n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>]]>"
+#~ msgstr ""
+#~ "<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>]]>"
+#~ msgstr ""
+#~ "<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>]]>"
+#~ msgstr ""
+#~ "<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ "\n"
+#~ " <key ... />\n"
+#~ "\n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ " \n"
+#~ " <key ... />\n"
+#~ " \n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ...]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ..."
+
+#, fuzzy
+#~ msgid "<title>Key</title>"
+#~ msgstr "<title>key</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>]]>"
+#~ msgstr ""
+#~ "<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<formula>SQL expression</formula>]]>"
+#~ msgstr "<formula>SQL expression</formula>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
+#~ msgstr "<import class=\"java.lang.Object\" rename=\"Universe\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<title>Any</title>"
+#~ msgstr "<title>any</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>"
+
+#~ msgid "string"
+#~ msgstr "string"
+
+#, fuzzy
+#~ msgid "class"
+#~ msgstr "subclass"
+
+#~ msgid "binary"
+#~ msgstr "binary"
+
+#~ msgid "text"
+#~ msgstr "text"
+
+#~ msgid "serializable"
+#~ msgstr "serializable"
+
+#~ msgid "clob, blob"
+#~ msgstr "clob, blob"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\" name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>]]>"
+#~ msgstr ""
+#~ "<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" "
+#~ "name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
+#~ msgstr "<property name=\"priority\" type=\"default_zero\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\"\n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\"\n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\"\n"
+#~ " column=\"currentContractId\"\n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Contract\" table=\"Contracts\" \n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\" \n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\" \n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\" \n"
+#~ " column=\"currentContractId\" \n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/"
+#~ "></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class="
+#~ "\"assigned\"/></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9iDialect\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle10gDialect\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9Dialect\"/"
+#~ ">\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.OracleDialect\"/"
+#~ ">\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/batch.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/batch.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/batch.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,984 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr "Batch-Verarbeitung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A naive approach to inserting 100,000 rows in the database using Hibernate "
+"might look like this:"
+msgstr ""
+"Eine unkomplizierte Einfügung von 100.000 Reihen in die Datenbank mittels "
+"Hibernate könnte wie folgt aussehen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This would fall over with an <literal>OutOfMemoryException</literal> "
+"somewhere around the 50,000th row. That is because Hibernate caches all the "
+"newly inserted <literal>Customer</literal> instances in the session-level "
+"cache. In this chapter we will show you how to avoid this problem."
+msgstr ""
+"Dies würde mit der Ausnahme <literal>OutOfMemoryException</literal> irgendwo "
+"um die 50.000ste Reihe herum kippen, da Hibernate alle neu eingefügten "
+"<literal>Customer</literal>-Instanzen im Cache der Session-Ebene speichert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you are undertaking batch processing you will need to enable the use of "
+"JDBC batching. This is absolutely essential if you want to achieve optimal "
+"performance. Set the JDBC batch size to a reasonable number (10-50, for "
+"example):"
+msgstr ""
+"In diesem Kapitel wollen wir Ihnen zeigen, wie dieses Problem vermieden "
+"werden kann. Zunächst jedoch muss bei der Verwendung von Batch-Verarbeitung "
+"(auch: Stapelverarbeitung) die Einstellung \"JDBC-Batching\" aktiviert sein, "
+"falls eine zufriedenstellende Leistung erzielt werden soll. Die GröÃe des "
+"JDBC-Batch (m.a.W. die StapelgröÃe) sollte dabei sinnvoll gewählt sein (z.B. "
+"10-50):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate disables insert batching at the JDBC level transparently if you "
+"use an <literal>identity</literal> identifier generator."
+msgstr ""
+"Bitte beachten Sie, dass Hibernate das Einfügungs-Batching auf JDBC-Ebene "
+"transparent deaktiviert, falls Sie einen <literal>identiy</literal> "
+"Bezeichner-Generator verwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also do this kind of work in a process where interaction with the "
+"second-level cache is completely disabled:"
+msgstr ""
+"Sie können diesen Vorgang auch durchführen, wenn das Cache der zweiten Ebene "
+"vollständig deaktiviert ist:"
+
+#. 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 ""
+"Dies ist jedoch nicht unbedingt erforderlich, da der <literal>CacheMode</"
+"literal> so eingestellt werden kann, dass die Interaktion mit dem Cache der "
+"zweiten Ebene deaktiviert ist."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr "Batch-Einfügungen (\"Batch-Inserts\")"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When making new objects persistent <literal>flush()</literal> and then "
+"<literal>clear()</literal> the session regularly in order to control the "
+"size of the first-level cache."
+msgstr ""
+"Werden neue Objekte persistent gemacht, so muss in der Session regelmäÃig "
+"<literal>flush()</literal> und anschlieÃend <literal>clear()</literal> "
+"erfolgen, um die GröÃe des Caches der ersten Ebene zu kontrollieren."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr "Batch-Aktualisierungen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For retrieving and updating data, the same ideas apply. In addition, you "
+"need to use <literal>scroll()</literal> to take advantage of server-side "
+"cursors for queries that return many rows of data."
+msgstr ""
+"Beim Abruf und der Aktualisierung von Daten gilt dasselbe. Desweiteren "
+"müssen Sie hier <literal>scroll()</literal> verwenden, um für Anfragen, die "
+"mit zahlreichen Datenreihen reagieren, die Vorteile des Cursors auf "
+"Serverseite auszunutzen."
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr "Das Interface der StatelessSession"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, Hibernate provides a command-oriented API that can be used "
+"for streaming data to and from the database in the form of detached objects. "
+"A <literal>StatelessSession</literal> has no persistence context associated "
+"with it and does not provide many of the higher-level life cycle semantics. "
+"In particular, a stateless session does not implement a first-level cache "
+"nor interact with any second-level or query cache. It does not implement "
+"transactional write-behind or automatic dirty checking. Operations performed "
+"using a stateless session never cascade to associated instances. Collections "
+"are ignored by a stateless session. Operations performed via a stateless "
+"session bypass Hibernate's event model and interceptors. Due to the lack of "
+"a first-level cache, Stateless sessions are vulnerable to data aliasing "
+"effects. A stateless session is a lower-level abstraction that is much "
+"closer to the underlying JDBC."
+msgstr ""
+"Alternativ bietet Hibernate ein befehlsorientiertes API, das in Form von "
+"abgesetzten Objekten für das Streaming von Daten von und zur Datenbank "
+"verwendet werden kann. Eine <literal>StatelessSession</literal> verfügt "
+"nicht über einen mit ihr assozierten Persistenzkontext und bietet nicht viel "
+"von der Lebenszyklus-Semantik der höheren Ebene. Insbesondere implementiert "
+"eine \"stateless Session\" weder ein Cache auf erster Ebene noch interagiert "
+"sie mit irgendeinem Anfragen-Cache oder Cache der zweiten Ebene. Es werden "
+"weder transaktionales Hinterher-Speichern noch automatisches \"Dirty-Checking"
+"\" (auf vorherigen Zugriff) implementiert. Vorgänge, die unter Verwendung "
+"einer stateless Session erfolgen, werden nie an zugehörige Instanzen "
+"weitergeleitet. Collections werden von einer stateless Session ebenfalls "
+"übergangen. Vorgänge, die unter Verwendung einer stateless Session erfolgen, "
+"umgehen auÃerdem Hibernates Ereignismodell und Interzeptoren. Es kann in "
+"stateless Sessions auÃerdem zu Datenverfälschungen (sog. \"Data Aliasing\") "
+"kommen, da ein Cache auf erster Ebene fehlt. Eine stateless Session ist eine "
+"Abstraktion auf niedrigerer Ebene, wesentlich näher an der zu Grunde "
+"liegenden JDBC."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this code example, the <literal>Customer</literal> instances returned by "
+"the query are immediately detached. They are never associated with any "
+"persistence context."
+msgstr ""
+"Bitte beachten Sie, dass in diesem Code-Beispiel die durch die Anfrage "
+"erstellten <literal>Customer</literal>-Instanzen sofort abgesetzt werden. "
+"Sie werden zu keinem Zeitpunkt mit einem Persistenzkontext assoziiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>insert(), update()</literal> and <literal>delete()</literal> "
+"operations defined by the <literal>StatelessSession</literal> interface are "
+"considered to be direct database row-level operations. They result in the "
+"immediate execution of a SQL <literal>INSERT, UPDATE</literal> or "
+"<literal>DELETE</literal> respectively. They have different semantics to the "
+"<literal>save(), saveOrUpdate()</literal> and <literal>delete()</literal> "
+"operations defined by the <literal>Session</literal> interface."
+msgstr ""
+"Die vom <literal>StatelessSession</literal>-Interface definierten "
+"<literal>insert(), update()</literal> und <literal>delete()</literal> "
+"Vorgänge werden als direkte Datenbankvorgänge auf Reihenebene angesehen, die "
+"eine sofortige Ausführung einer SQL <literal>INSERT, UPDATE</literal> bzw. "
+"<literal>DELETE</literal> mit sich bringen. Sie besitzen daher eine andere "
+"Semantik als <literal>save(), saveOrUpdate()</literal> und <literal>delete()"
+"</literal>-Vorgänge, die durch das <literal>Session</literal>-Interface "
+"definiert werden."
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+msgstr "Vorgänge im DML-Stil"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As already discussed, automatic and transparent object/relational mapping is "
+"concerned with the management of the object state. The object state is "
+"available in memory. This means that manipulating data directly in the "
+"database (using the SQL <literal>Data Manipulation Language</literal> (DML) "
+"the statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, "
+"<literal>DELETE</literal>) will not affect in-memory state. However, "
+"Hibernate provides methods for bulk SQL-style DML statement execution that "
+"is performed through the Hibernate Query Language (<link linkend=\"queryhql"
+"\">HQL</link>)."
+msgstr ""
+"Wie bereits erläutert, hängt das automatische und transparente "
+"objektrelationale Mapping mit dem Management des Objektstatus zusammen. Das "
+"bedeutet, dass der Objektstatus im Speicher verfügbar ist, weswegen (unter "
+"Verwendung der SQL <literal>Data Manipulation Language</literal> (DML) "
+"Anweisungen: <literal>INSERT</literal>, <literal>UPDATE</literal>, "
+"<literal>DELETE</literal>) Daten direkt in der Datenbank den gespeicherten "
+"Status nicht manipulieren.Hibernate bietet jedoch Methoden für die "
+"Massenausführung von DML-Anweisungen im SQL-Stil, was durch die Hibernate "
+"Query Language (<xref linkend=\"queryhql\"/>) erfolgt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
+"literal> statements is: <literal>( UPDATE | DELETE ) FROM? EntityName (WHERE "
+"where_conditions)?</literal>."
+msgstr ""
+"Die Pseudo-Syntax für <literal>UPDATE</literal> und <literal>DELETE</"
+"literal>-Anweisungen lautet: <literal>( UPDATE | DELETE ) FROM? EntityName "
+"(WHERE where_conditions)?</literal>. Hierzu einige wichtige Punkte:"
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr "In der \"from\"-Klausel, ist der \"FROM\"-Schlüsselbegriff optional"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There can only be a single entity named in the from-clause. It can, however, "
+"be aliased. If the entity name is aliased, then any property references must "
+"be qualified using that alias. If the entity name is not aliased, then it is "
+"illegal for any property references to be qualified."
+msgstr ""
+"In der \"from\"-Klausel kann nur eine einzelne Entity genannt werden; sie "
+"kann optional auch einen Alias-Namen tragen. Falls der Name der Entity ein "
+"Alias ist, müssen sämtliche Property-Verweise unter Verwendung dieses Alias "
+"qualifiziert sein. Ist dies nicht der Fall, so ist es unzulässig Property-"
+"Verweise zu qualifizieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
+"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
+"the where-clause, where the subqueries themselves may contain joins."
+msgstr ""
+"Kein <xref linkend=\"queryhql-joins-forms\"/> (weder implizit noch explizit) "
+"kann in einer Massen-HQL-Anfrage spezifiziert werden. Unteranfragen (sog. "
+"\"Subqueries\") können in der \"where\"-Klausel verwendet werden; die "
+"Unteranfragen selbst können Verbünde (sog. \"Joins\") enthalten."
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr "Die \"where\"-Klausel ist ebenfalls optional."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As an example, to execute an HQL <literal>UPDATE</literal>, use the "
+"<literal>Query.executeUpdate()</literal> method. The method is named for "
+"those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</"
+"literal>:"
+msgstr ""
+"Um zum Beispiel HQL <literal>UPDATE</literal> auszuführen, verwenden Sie die "
+"<literal>Query.executeUpdate()</literal>-Methode (die Methode wird für "
+"diejenigen genannt, die mit JDBCs <literal>PreparedStatement.executeUpdate()"
+"</literal>) vertraut sind:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
+"statements, by default, do not effect the <link linkend=\"mapping-"
+"declaration-version\">version</link> or the <link linkend=\"mapping-"
+"declaration-timestamp\">timestamp</link> property values for the affected "
+"entities. However, you can force Hibernate to reset the <literal>version</"
+"literal> or <literal>timestamp</literal> property values through the use of "
+"a <literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
+msgstr ""
+"HQL <literal>UPDATE</literal>-Anweisungen haben standardmäÃig keinen "
+"Einfluss auf die <xref linkend=\"mapping-declaration-version\"/>-Version "
+"oder die <xref linkend=\"mapping-declaration-timestamp\"/>-Zeitstempel-"
+"Property-Werte der betreffenden Entities; dies erfolgt in Ãbereinstimmung "
+"mit der EJB3-Spezifikation. Sie können Hibernate jedoch zwingen, die "
+"<literal>version</literal> oder <literal>timestamp</literal> Property-Werte "
+"ordnungsgemäà zurückzusetzen, indem Sie ein <literal>versioned update</"
+"literal> verwenden. Dies geschieht durch Hinzufügen des <literal>VERSIONED</"
+"literal>-Schlüsselbegriffs hinter dem <literal>UPDATE</literal>-"
+"Schlüsselbegriff."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Custom version types, <literal>org.hibernate.usertype.UserVersionType</"
+"literal>, are not allowed in conjunction with a <literal>update versioned</"
+"literal> statement."
+msgstr ""
+"Bitte beachten Sie, dass angepasste Versionstypen (<literal>org.hibernate."
+"usertype.UserVersionType</literal>) nicht in Verbindung mit einer "
+"<literal>update versioned</literal>-Anweisung erlaubt sind."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To execute an HQL <literal>DELETE</literal>, use the same <literal>Query."
+"executeUpdate()</literal> method:"
+msgstr ""
+"Um HQL <literal>DELETE</literal>auszuführen, verwenden Sie dieselbe "
+"<literal>Query.executeUpdate()</literal>-Methode:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
+"()</literal> method indicates the number of entities effected by the "
+"operation. This may or may not correlate to the number of rows effected in "
+"the database. An HQL bulk operation might result in multiple actual SQL "
+"statements being executed (for joined-subclass, for example). The returned "
+"number indicates the number of actual entities affected by the statement. "
+"Going back to the example of joined-subclass, a delete against one of the "
+"subclasses may actually result in deletes against not just the table to "
+"which that subclass is mapped, but also the \"root\" table and potentially "
+"joined-subclass tables further down the inheritance hierarchy."
+msgstr ""
+"Der durch die <literal>Query.executeUpdate()</literal>-Methode erhaltene "
+"<literal>int</literal>-Wert gibt die Anzahl der durch den Vorgang "
+"betroffenen Entities an. Beachten Sie, dass dies mit der Anzahl der "
+"betroffenen Datenbankreihen korrelieren kann oder auch nicht. Ein HQL-"
+"Massenvorgang kann in der Ausführung mehrerer tatsächlicher SQL-Anweisungen "
+"resultieren, etwa für verbundene Subklassen. Die erhaltene Zahl gibt die "
+"Anzahl tatsächlicher Entities an, die von der Anweisung betroffen sind. Um "
+"auf das Beispiel der verbundenen Subklassen zurückzukommen - eine der "
+"Subklassen betreffende Löschung kann zu Löschungen nicht nur der Tabelle, zu "
+"der diese Subklasse gemappt ist, sondern auch zur \"Root\"-Tabelle und "
+"möglicherweise verbundenen Subklassentabellen führen, die in der "
+"Vererbungshierarchie weiter unten angesiedelt sind."
+
+#. 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 ""
+"Die Pseudo-Syntax für <literal>INSERT</literal>-Anweisungen lautet: "
+"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
+"Hierzu einige wichtige Punkte:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
+"INTO ... VALUES ... form."
+msgstr ""
+"Nur INSERT INTO ... SELECT ... wird unterstützt, nicht jedoch INSERT "
+"INTO ... VALUES ...."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The properties_list is analogous to the <literal>column specification</"
+"literal> in the SQL <literal>INSERT</literal> statement. For entities "
+"involved in mapped inheritance, only properties directly defined on that "
+"given class-level can be used in the properties_list. Superclass properties "
+"are not allowed and subclass properties do not make sense. In other words, "
+"<literal>INSERT</literal> statements are inherently non-polymorphic."
+msgstr ""
+"Die properties_list ist analog zur <literal>column speficiation</literal> in "
+"der SQL <literal>INSERT</literal>-Anweisung. Für in gemappte Vererbung "
+"involvierte Entities können nur Properties verwendet werden, die direkt auf "
+"dieser bestimmten Klassenebene in der properties_list definiert sind. "
+"Superklassen-Properties sind nicht gestattet und Subklassen-Properties "
+"machen keinen Sinn. Mit anderen Worten <literal>INSERT</literal>-Anweisungen "
+"sind inhärent nicht-polymorph."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"select_statement can be any valid HQL select query, with the caveat that the "
+"return types must match the types expected by the insert. Currently, this is "
+"checked during query compilation rather than allowing the check to relegate "
+"to the database. This might, however, cause problems between Hibernate "
+"<literal>Type</literal>s which are <emphasis>equivalent</emphasis> as "
+"opposed to <emphasis>equal</emphasis>. This might cause issues with "
+"mismatches between a property defined as a <literal>org.hibernate.type."
+"DateType</literal> and a property defined as a <literal>org.hibernate.type."
+"TimestampType</literal>, even though the database might not make a "
+"distinction or might be able to handle the conversion."
+msgstr ""
+"Ein select_statement kann jede gültige HQL-Auswahlanfrage sein, mit dem "
+"Vorbehalt, dass Rückmeldungstypen mit den durch die Einfügung erwarteten "
+"Typen übereinstimmen müssen. Derzeit wird dies während der "
+"Anfragenkompilierung statt beim Rückverweis auf die Datenbank geprüft. Bitte "
+"beachten Sie, dass dies zu Problemen zwischen Hibernate <literal>Type</"
+"literal>en, die <emphasis>äquivalent</emphasis> und nicht <emphasis>gleich</"
+"emphasis> sind, führen kann. Es kann dadurch zu Fehlzuordnungen zwischen "
+"einer als <literal>org.hibernate.type.DateType</literal> definierten "
+"Property und einer als <literal>org.hibernate.type.TimestampType</literal> "
+"definierten Property kommen, selbst wenn die Datenbank keine Unterscheidung "
+"macht oder die Konversion durchführen könnte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For the id property, the insert statement gives you two options. You can "
+"either explicitly specify the id property in the properties_list, in which "
+"case its value is taken from the corresponding select expression, or omit it "
+"from the properties_list, in which case a generated value is used. This "
+"latter option is only available when using id generators that operate in the "
+"database; attempting to use this option with any \"in memory\" type "
+"generators will cause an exception during parsing. For the purposes of this "
+"discussion, in-database generators are considered to be <literal>org."
+"hibernate.id.SequenceGenerator</literal> (and its subclasses) and any "
+"implementers of <literal>org.hibernate.id.PostInsertIdentifierGenerator</"
+"literal>. The most notable exception here is <literal>org.hibernate.id."
+"TableHiLoGenerator</literal>, which cannot be used because it does not "
+"expose a selectable way to get its values."
+msgstr ""
+"Bei der id-Property bietet die Einfügungsanweisung zwei Möglichkeiten. Sie "
+"können die Property entweder explizit in der properties_list festlegen (in "
+"diesem Fall wird deren Wert vom zugehörigen Auswahlausdruck genommen) oder "
+"sie aus von der properties_list löschen (in diesem Fall wird ein generierter "
+"Wert verwendet). Diese letztere Option ist nur verfügbar, wenn innerhalb der "
+"Datenbank operierende id-Generatoren verwendet werden. Der Versuch diese "
+"Option mit jeglichen \"in memory\"-Typen zu verwenden führt während des "
+"Parsens zu einer Ausnahmemeldung. Bitte beachten Sie, dass in diesem "
+"Zusammenhang Generatoren innerhalb der Datenbank als <literal>org.hibernate."
+"id.SequenceGenerator</literal> (und dessen Subklassen) sowie jegliche "
+"Implementierungen von <literal>org.hibernate.id."
+"PostInsertIdentifierGenerator</literal> angesehen werden. Die wohl "
+"wichtigste Ausnahme ist hier <literal>org.hibernate.id.TableHiLoGenerator</"
+"literal>, der nicht gewählt werden kann, da er keine wählbare Weise bietet, "
+"um an seine Werte zu gelangen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For properties mapped as either <literal>version</literal> or "
+"<literal>timestamp</literal>, the insert statement gives you two options. "
+"You can either specify the property in the properties_list, in which case "
+"its value is taken from the corresponding select expressions, or omit it "
+"from the properties_list, in which case the <literal>seed value</literal> "
+"defined by the <literal>org.hibernate.type.VersionType</literal> is used."
+msgstr ""
+"Für entweder als <literal>version</literal> oder <literal>timestamp</"
+"literal> gemappte Properties bietet die Einfügungsanweisung zwei Optionen. "
+"Sie können die Property entweder explizit in der properties_list festlegen "
+"(in diesem Fall wird deren Wert vom zugehörigen Auswahlausdruck genommen) "
+"oder sie aus von der properties_list löschen (in diesem Fall wird der durch "
+"<literal>org.hibernate.type.VersionType</literal> definierte <literal>seed "
+"value</literal> verwendet)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following is an example of an HQL <literal>INSERT</literal> statement "
+"execution:"
+msgstr ""
+"Ein Beispiel für die Ausführung einer HQL <literal>INSERT</literal>-"
+"Anweisung:"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+#~ msgstr "hibernate.jdbc.batch_size 20"
+
+#, fuzzy
+#~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#~ msgstr "hibernate.cache.use_second_level_cache false"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 \n"
+#~ " c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/best_practices.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/best_practices.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/best_practices.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,708 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr "Optimale Verfahren"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"Write fine-grained classes and map them using <literal><component></"
+"literal>:"
+msgstr ""
+"Schreiben Sie feinstufige Klassen, und Mappen Sie diese mittels <literal><"
+"component></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use an <literal>Address</literal> class to encapsulate <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal>. This encourages code reuse and simplifies "
+"refactoring."
+msgstr ""
+"Verwenden Sie eine <literal>Address</literal>-Klasse, um <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal> einzukapseln. Das unterstützt die "
+"Wiederverwendung des Code und vereinfacht die Erhöhung der "
+"Bedienerfreundlichkeit."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr "Deklarieren Sie Bezeichner-Properties an persistenten Klassen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate makes identifier properties optional. There are a range of reasons "
+"why you should use them. We recommend that identifiers be 'synthetic', that "
+"is, generated with no business meaning."
+msgstr ""
+"Hibernate macht Bezeichner-Properties optional. Es gibt eine Reihe von "
+"Gründen, warum Sie diese verwenden sollten. Wir empfehlen \"synthetische\" "
+"Bezeichner (generiert, mit keiner Unternehmensbedeutung)."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Identify natural keys:"
+msgstr "Identifizierung natürlicher Schlüssel."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Identify natural keys for all entities, and map them using <literal><"
+"natural-id></literal>. Implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the properties that make up the "
+"natural key."
+msgstr ""
+"Bestimmen Sie natürliche Schlüssel für alle Entities, und mappen Sie diese "
+"mittels <literal><natural-id></literal>. Implementieren Sie "
+"<literal>equals()</literal> und <literal>hashCode()</literal>, um die "
+"Properties, aus denen der natürliche Schlüssel besteht, zu vergleichen."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr "Platzieren Sie jedes Klassen-Mapping in dessen eigener Datei."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Verwenden Sie kein einzelnes, monolithisches Mapping-Dokument. Mappen Sie "
+"<literal>com.eg.Foo</literal> in der Datei <literal>com/eg/Foo.hbm.xml</"
+"literal>. Das ist insbesondere in einer Team-Umgebung sinnvoll."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Load mappings as resources:"
+msgstr "Laden Sie die Mappings als Ressourcen."
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr "Deployen Sie die Mappings gemeinsam mit den Klassen, die sie mappen."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr "Ziehen Sie die Externalisierung von Anfragenstrings in Erwägung."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das ist eine gute Vorgehensweise, wenn Ihre Anfragen nicht-ANSI-Standard SQL "
+"Funktionen aufrufen. Die Externalisierung der Anfragenstrings zu Mapping-"
+"Dateien macht die Anwendung übertragbarer."
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr "Verwenden Sie \"bind\"-Variablen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Wie in JDBC ersetzen Sie nicht konstante Werte immer durch \"?\". Verwenden "
+"Sie nie String-Manipulation, um einen nicht konstanten Wert in einer Anfrage "
+"zu binden! Viel besser ist es, benannte Parameter in Anfragen zu benutzen."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr "Managen Sie nicht Ihre eigenen JDBC-Verbindungen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate allows the application to manage JDBC connections, but his "
+"approach should be considered a last-resort. If you cannot use the built-in "
+"connection providers, consider providing your own implementation of "
+"<literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+"Hibernate lässt die Anwendung die JDBC-Verbindungen verwalten. Diese "
+"Vorgehensweise sollte als letzter Ausweg angesehen werden. Falls Sie die "
+"eingebauten Verbindungs-Provider nicht benutzen können, sollten Sie Ihre "
+"eigene Implementierung von <literal>org.hibernate.connection."
+"ConnectionProvider</literal> in Erwägung ziehen."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Consider using a custom type:"
+msgstr "Verwenden Sie einen angepassten Typ."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Nehmen wir an Sie haben einen Java-Typ, etwa aus irgendeiner Bibliothek, der "
+"persistiert werden muss aber keine Zugänge bietet, die notwendig sind, um "
+"ihn als Komponente zu mappen. Sie sollten die Implementierung von "
+"<literal>org.hibernate.UserType</literal> in Betracht ziehen. Diese "
+"Vorgehensweise befreit den Anwendungscode von der Implementierung von "
+"Transformationen zu / von einem Hibernate-Typ."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr "Verwenden Sie handkodiertes JDBC in Engpässen (\"Bottlenecks\")."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In performance-critical areas of the system, some kinds of operations might "
+"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
+"faster. Please wait until you <emphasis>know</emphasis> something is a "
+"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
+"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
+"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
+"way you can still use the same transaction strategy and underlying "
+"connection provider."
+msgstr ""
+"In Teilen des Systems, bei denen die Performance besonders wichtig ist, "
+"profitieren einige Vorgänge von der direkten JDBC. Aber bitte, warten Sie "
+"bis Sie <emphasis>wissen</emphasis>, dass es sich um einen Engpass handelt. "
+"Und gehen Sie nicht davon aus, dass direkte JDBC unbedingt schneller ist. "
+"Falls Sie direkte JDBC verwenden müssen, kann es sinnvoll sein, eine "
+"Hibernate <literal>Session</literal> zu öffnen und diese JDBC-Verbindung zu "
+"benutzen. Auf diese Weise können Sie nach wie vor diesselbe "
+"Transaktionsstrategie und den zu Grunde liegenden Verbindungsprovider "
+"verwenden."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr "Die <literal>Session</literal>-Räumung verstehen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Von Zeit zu Zeit synchronisiert die Session ihren persistenten Status mit "
+"der Datenbank. Findet dies zu oft statt, so wird die Performance "
+"beeinträchtigt. Manchmal können durch Deaktivierung der automatischen "
+"Räumung (sog. \"Flushing\") oder sogar durch Ãnderung der "
+"Anfragenreihenfolge und anderer Vorgänge innerhalb einer bestimmten "
+"Transaktion unnötige Räumungen minimiert werden."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr ""
+"Bei einer Drei-Schichten-Architektur (sog. \"three-tiered-architecture\") "
+"empfiehlt sich die Verwendung abgesetzter Objekte."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Bei Verwendung einer Servlet-/Session-Bean-Architektur können Sie im Session-"
+"Bean geladene persistente Objekte in die und aus der Servlet-/JSP-Schicht "
+"weitergeben. Verwenden Sie eine neue Session, um jede Anfrage zu warten. "
+"Verwenden Sie <literal>Session.merge()</literal> oder <literal>Session."
+"saveOrUpdate()</literal> zur Synchronisation von Objekten mit der Datenbank."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr ""
+"In einer Zwei-Schichten-Architektur (sog. \"two tiered architecture\") "
+"empfiehlt sich die Verwendung von langen Persistenz-Kontexten."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Für die beste Skalierbarkeit sollten Datenbanktransaktionen so kurz wie "
+"möglich sein. Allerdings ist es oft notwendig, lang laufende "
+"<emphasis>Anwendungstransaktionen</emphasis> zu implementieren, aus "
+"Benutzersicht eine einzelne Arbeitseinheit. Eine Anwendungstransaktion kann "
+"mehrere Client Anfragen-/Antwortenzyklen umfassen. Es ist üblich, abgesetzte "
+"Objekte zur Implemetierung von Anwendungstransaktionen zu verwenden. Eine "
+"insbesondere für die Zwei-Schichten-Architektur passende Alternative ist die "
+"Instandhaltung eines einzelnen offenen Persistenzkontakts (Session) während "
+"des gesamten Lebenszyklus der Anwendungstransaktion. Am Ende jeder Anfrage "
+"wird die JDBC-Verbindung dann unterbrochen und zu Beginn der darauf "
+"folgenden Anfrage erneut aufgestellt. Eine einzelne Session sollte nie über "
+"mehr als eine Anwendungstransaktion hinweg geteilt werden, da Sie sonst mit "
+"veralteten Daten arbeiten."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr "Behandeln Sie Ausnahmen nicht als wiederherstellbar."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Dies ist eher eine notwendige Vorgehensweise als das \"beste\" Verfahren. "
+"Wird eine Ausnahme gemeldet, führen Sie einen Rollback der "
+"<literal>Transaction</literal> durch und schlieÃen Sie die <literal>Session</"
+"literal>. Falls Sie dies nicht tun, kann Hibernate nicht garantieren, dass "
+"der gespeicherte Status tatsächlich den persistenten Status repräsentiert. "
+"Als Sonderfall hierbei verwenden Sie nicht <literal>Session.load()</literal> "
+"um zu bestimmen, ob eine Instanz des gegebenen Bezeichners in der Datenbank "
+"existiert, verwenden Sie statt dessen <literal>Session.get()</literal> oder "
+"eine Anfrage."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr "\"Lazy Fetching\" für Assoziationen ist vorzuziehen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Verwenden Sie \"eager Fetching\" sparsam. Verwenden Sie Proxies und \"lazy "
+"Collections\" für die meisten Assoziationen zu Klassen, die aller "
+"Wahrscheinlichkeit nach eher nicht vollständig im Cache der zweiten Ebene "
+"aufbewahrt werden. Für Assoziationen zu gecachten Klassen, bei denen eine "
+"sehr hohe Wahrscheinlichkeit eines Cache-Treffers besteht, deaktivieren Sie "
+"\"eager Fetching\" explizit mittels <literal>lazy=\"false\"</literal>. Wenn "
+"ein \"Join-Fetching\" (Verbundabruf) in einem bestimmten Fall passend ist, "
+"verwenden Sie eine Anfrage mit einem <literal>left join fetch</literal>."
+
+#. Tag: term
+#, fuzzy, 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 ""
+"Verwenden Sie das <emphasis>offene Session in Ansicht</emphasis>-Muster oder "
+"eine <emphasis>Assembly Phase</emphasis>, um Probleme mit nicht abgerufenen "
+"Daten zu vermeiden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
+"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
+"purposes: first, they work around the problem that entity beans are not "
+"serializable; second, they implicitly define an assembly phase where all "
+"data to be used by the view is fetched and marshalled into the DTOs before "
+"returning control to the presentation tier. Hibernate eliminates the first "
+"purpose. Unless you are prepared to hold the persistence context (the "
+"session) open across the view rendering process, you will still need an "
+"assembly phase. Think of your business methods as having a strict contract "
+"with the presentation tier about what data is available in the detached "
+"objects. This is not a limitation of Hibernate. It is a fundamental "
+"requirement of safe transactional data access."
+msgstr ""
+"Hibernate nimmt dem Entwickler das Schreiben langwieriger "
+"<emphasis>Datentransferobjekte </emphasis> (DTO) ab. In einer herkömmlichen "
+"EJB-Architektur dienen DTOs zwei Zwecken: Zunächst einmal umgehen sie das "
+"Problem, dass Entity-Beans nicht serialisierbar sind, und zweitens "
+"definieren sie implizit eine Programmumwandlungsphase wenn alle von der "
+"Ansicht zu verwendenden Daten abgerufen und in die DTOs geleitet werden, ehe "
+"die Steuerung zur Präsentationsschicht zurückkehrt. Hibernate eleminiert den "
+"ersten Zweck. Sie benötigen jedoch nach wie vor eine "
+"Programmumwandlungsphase (stellen Sie sich vor, dass Ihre "
+"Unternehmensmethoden einen strengen Vertrag mit der Präsentationsschicht "
+"bezüglich der in den abgesetzten Daten verfügbaren Daten besitzen), auÃer "
+"Sie sind bereit den Persistenzkontext (die Session) während des gesamten "
+"Renderingvorgangs der Ansicht geöffnet zu lassen. Es handelt sich hierbei "
+"nicht um eine Einschränkung von Hibernate! Es handelt sich um eine "
+"grundlegende Voraussetzung für den sicheren Zugriff auf transaktionale Daten."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr ""
+"Ziehen Sie die Abstraktion Ihrer Business-Logik von Hibernate in Erwägung."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Verbergen Sie den (Hibernate) Datenzugriffscode hinter einem Interface. "
+"Verbinden Sie <emphasis>DAO</emphasis> und <emphasis>Thread Local Session</"
+"emphasis>-Modell. Sie können sogar über einige mit handkodiertem JDBC "
+"verfügen, die mittels eines <literal>UserType</literal> mit Hibernate "
+"assoziiert sind. (Dieser Ratschlag gilt für \"ausreichend groÃe\" "
+"Anwendungen; er ist unpassend für eine Anwendung mit fünf Tabellen!)"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr "Verwenden Sie keine exotischen Assoziationsmappings."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Gute Anwendungsfälle für echte \"Many-to-Many\"-Assoziationen sind selten. "
+"In den meisten Fällen benötigen Sie zusätzliche Informationen, die in der "
+"Verbindungstabelle (\"Link Table) gespeichert sind. In diesem Fall ist es "
+"besser zwei \"One-to-Many\"-Assoziationen zu einer dazwischen liegenden Link-"
+"Klasse zu verwenden. Genau genommen sind wir der Ansicht, dass die meisten "
+"Assoziationen \"One-to-Many\" und \"Many-to-One\" sind, und Sie sollten "
+"andere Assoziationsstile mit Vorsicht einsetzen und sich stets fragen, ob "
+"diese tatsächlich unvermeidbar sind."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr "Geben Sie bidirektionalen Assoziationen den Vorzug."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Unidirectional associations are more difficult to query. In a large "
+"application, almost all associations must be navigable in both directions in "
+"queries."
+msgstr ""
+"Unidirektionale Assoziationen sind schwieriger abzufragen. In einer groÃen "
+"Anwendung müssen fast alle Assoziationen bei Anfragen nach beiden Richtungen "
+"navigierbar sein."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/bibliography.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/bibliography.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/bibliography.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/collection_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/collection_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/collection_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2333 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Collection mapping"
+msgstr "Collection-Mappings"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr "Persistente Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate requires that persistent collection-valued fields be declared as "
+"an interface type. For example:"
+msgstr ""
+"In Hibernate müssen persistente Collection-wertige Felder als Interface-Typ "
+"deklariert werden, zum Beispiel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The actual interface might be <literal>java.util.Set</literal>, "
+"<literal>java.util.Collection</literal>, <literal>java.util.List</literal>, "
+"<literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, "
+"<literal>java.util.SortedMap</literal> or anything you like (\"anything you "
+"like\" means you will have to write an implementation of <literal>org."
+"hibernate.usertype.UserCollectionType</literal>.)"
+msgstr ""
+"Das tatsächliche Interface könnte <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> oder ... was immer Sie möchten sein! "
+"(Wobei \"was immer Sie möchten\" bedeutet, dass Sie eine Implementierung von "
+"<literal>org.hibernate.usertype.UserCollectionType</literal> werden "
+"schreiben müssen)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Notice how the instance variable was initialized with an instance of "
+"<literal>HashSet</literal>. This is the best way to initialize collection "
+"valued properties of newly instantiated (non-persistent) instances. When you "
+"make the instance persistent, by calling <literal>persist()</literal> for "
+"example, Hibernate will actually replace the <literal>HashSet</literal> with "
+"an instance of Hibernate's own implementation of <literal>Set</literal>. Be "
+"aware of the following errors:"
+msgstr ""
+"Beachten Sie, wie wir die Instanzvariable mit einer Instanz von "
+"<literal>HashSet</literal> initialisiert haben. Dieses ist die beste Art, "
+"neu initialisierte (nicht-persistente) Collection-wertige Properties zu "
+"instanziieren. Wenn Sie - etwa durch Aufruf von <literal>persist()</literal> "
+"- die Instanz persistent machen, so wird Hibernate das <literal>HashSet</"
+"literal> durch eine Instanz seiner eigenen Implementierung von <literal>Set</"
+"literal> ersetzen. Achten Sie auf mögliche Fehler wie den folgenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The persistent collections injected by Hibernate behave like "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> or <literal>ArrayList</literal>, "
+"depending on the interface type."
+msgstr ""
+"Je nach Interface-Typ verhalten sich die von Hibernate eingespeisten "
+"Collections wie <literal>HashMap</literal>, <literal>HashSet</literal>, "
+"<literal>TreeMap</literal>, <literal>TreeSet</literal> oder "
+"<literal>ArrayList</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Collections instances have the usual behavior of value types. They are "
+"automatically persisted when referenced by a persistent object and are "
+"automatically deleted when unreferenced. If a collection is passed from one "
+"persistent object to another, its elements might be moved from one table to "
+"another. Two entities cannot share a reference to the same collection "
+"instance. Due to the underlying relational model, collection-valued "
+"properties do not support null value semantics. Hibernate does not "
+"distinguish between a null collection reference and an empty collection."
+msgstr ""
+"Instanzen von Collections folgen dem Verhalten von Wertetypen. Sie werden "
+"automatisch persistent gemacht, wenn durch ein persistentes Objekt auf sie "
+"verwiesen wird und gelöscht, wenn kein Verweis auf sie existiert. Falls eine "
+"Collection von einem persistenten Objekt an ein anderes weitergegeben wird, "
+"so ist es möglich, dass deren Elemente von einer Tabelle zu einer anderen "
+"Tabelle verschoben werden. Zwei Entities können sich keinen Verweis zu "
+"derselben Instanz einer Collection teilen. Wegen des zu Grunde liegenden "
+"relationalen Modells unterstützen Collection-wertige Properties keine "
+"Nullwert-Semantik. Hibernate unterscheidet nicht zwischen einem Null-"
+"Collection-Verweis und einer leeren Collection."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use persistent collections the same way you use ordinary Java collections. "
+"However, please ensure you understand the semantics of bidirectional "
+"associations (these are discussed later)."
+msgstr ""
+"Sie werden mit all dem jedoch meist wenig zu tun haben. Verwenden Sie "
+"persistente Collections genau so, wie sie reguläre Java-Collections "
+"verwenden würden. Stellen Sie aber sicher, dass Sie die Semantik "
+"bidirektionaler Assoziationen verstehen (wir gehen später noch näher darauf "
+"ein)."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr "Collection-Mappings"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are quite a range of mappings that can be generated for collections "
+"that cover many common relational models. We suggest you experiment with the "
+"schema generation tool so that you understand how various mapping "
+"declarations translate to database tables."
+msgstr ""
+"Es gibt eine ganze Reihe von Mappings, die für Collections generiert werden "
+"können und die zahlreiche gängige relationale Modelle abdecken. Es ist "
+"wahrscheinlich sinnvoll, wenn Sie mit dem Tool zur Schemagenerierung "
+"experimentieren, um zu sehen, wie die verschiedenen Mapping-Deklarationen "
+"bei Datenbanktabellen umgesetzt werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The Hibernate mapping element used for mapping a collection depends upon the "
+"type of interface. For example, a <literal><set></literal> element is "
+"used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"Das Hibernate Mapping-Element, das für das Mapping einer Collection "
+"verwendet wird, hängt vom Typ des Interface ab. Zum Beispiel wird ein "
+"<literal><set></literal>-Element für Mapping-Properties des Typs "
+"<literal>Set</literal> verwendet."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Apart from <literal><set></literal>, there is also <literal><"
+"list></literal>, <literal><map></literal>, <literal><bag></"
+"literal>, <literal><array></literal> and <literal><primitive-"
+"array></literal> mapping elements. The <literal><map></literal> "
+"element is representative:"
+msgstr ""
+"Neben <literal><set></literal> gibt es auch <literal><list></"
+"literal>, <literal><map></literal>, <literal><bag></literal>, "
+"<literal><array></literal> und <literal><primitive-array></"
+"literal> Mapping-Elemente. Das <literal><map></literal>-Element ist "
+"charakteristisch:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr "<literal>name</literal> der Property-Name der Collection"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>table</literal> (optional - defaults to property name): the name of "
+"the collection table. It is not used for one-to-many associations."
+msgstr ""
+"<literal>table</literal> (optional - standardmäÃig der Property-Name) der "
+"Name der Collection-Tabelle (wird nicht für \"One-to-Many\"-Assoziationen "
+"verwendet)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): the name of a table schema to override "
+"the schema declared on the root element"
+msgstr ""
+"<literal>schema</literal> (optional) der Name eines Tabellenschemas, der das "
+"im Stammelement deklarierte Schema auÃer Kraft setzt"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
+"disables lazy fetching and specifies that the association is always eagerly "
+"fetched. It can also be used to enable \"extra-lazy\" fetching where most "
+"operations do not initialize the collection. This is suitable for large "
+"collections."
+msgstr ""
+"<literal>lazy</literal> (optional - standardmäÃig <literal>true</literal>) "
+"kann verwendet werden, um das \"lazy Fetching\" (d.h. das Nachladen "
+"assoziierter Objekte bei Bedarf) zu deaktivieren und zu bestimmen, dass auf "
+"die Assoziation stets mittels \"eager Fetching\" (d.h. zusammengefasstem "
+"Laden von Objekt und assoziierten Objekten mit Verbundoperationen) "
+"zugegriffen wird. Ebenfalls zur Aktivierung von \"extra-lazy\" Fetching "
+"verwendet, bei dem die meisten Vorgänge die Collection nicht initialisieren "
+"(passend für sehr groÃe Collections)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</"
+"literal>): marks this collection as the \"inverse\" end of a bidirectional "
+"association."
+msgstr ""
+"<literal>inverse</literal> (optional - standardmäÃig <literal>false</"
+"literal>) kennzeichnen Sie diese Collection als das \"invertierte\" Ende "
+"einer biderektionalen Assoziation"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional - defaults to <literal>none</literal>): "
+"enables operations to cascade to child entities."
+msgstr ""
+"<literal>cascade</literal> (optional - standardmäÃig <literal>none</"
+"literal>) aktiviert Vorgänge zur Weitergabe an untergeordnete Entities (sog. "
+"\"child entities\")"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>sort</literal> (optional): specifies a sorted collection with "
+"<literal>natural</literal> sort order or a given comparator class."
+msgstr ""
+"<literal>sort</literal> (optional) bestimmt eine sortierte Collection mit "
+"<literal>natural</literal> Sortierordnung oder eine bestimmte Klasse von "
+"Vergleichsprogramm"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>order-by</literal> (optional, JDK1.4 only): specifies a table "
+"column or columns that define the iteration order of the <literal>Map</"
+"literal>, <literal>Set</literal> or bag, together with an optional "
+"<literal>asc</literal> or <literal>desc</literal>."
+msgstr ""
+"<literal>order-by</literal> (optional, nur JDK1.4) bestimmt eine (oder "
+"mehrere) Tabellenspalte(n), die die Iterationsreihenfolge von <literal>Map</"
+"literal>, <literal>Set</literal> oder \"Bag\" (d.h. Duplikate, Multimenge) "
+"mit einem optionalen <literal>asc</literal> oder <literal>desc</literal> "
+"definieren"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>where</literal> (optional): specifies an arbitrary SQL "
+"<literal>WHERE</literal> condition that is used when retrieving or removing "
+"the collection. This is useful if the collection needs to contain only a "
+"subset of the available data."
+msgstr ""
+"<literal>where</literal> (optional) bestimmt eine arbiträre SQL "
+"<literal>WHERE</literal>-Bedingung, die bei der Abfrage oder Entfernung der "
+"Collection verwendet werden soll (besonders dann nützlich, wenn die "
+"Collection nur einen Untersatz der verfügbaren Daten enthalten soll)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional, defaults to <literal>select</literal>): "
+"chooses between outer-join fetching, fetching by sequential select, and "
+"fetching by sequential subselect."
+msgstr ""
+"<literal>fetch</literal> (optional, standardmäÃig <literal>select</literal>) "
+"Wählen Sie zwischen \"Outer-Join\"-Abruf (d.h. äuÃerem Verbund), Abruf nach "
+"sequentieller Auswahl und Fetching nach sequentieller Unterauswahl."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>batch-size</literal> (optional, defaults to <literal>1</literal>): "
+"specifies a \"batch size\" for lazily fetching instances of this collection."
+msgstr ""
+"<literal>batch-size</literal> (optional, standardmäÃig <literal>1</literal>) "
+"bestimmt eine \"Batch-GröÃe\" für das \"lazy Fetching\" von Instanzen dieser "
+"Collection."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate uses for accessing the collection property "
+"value."
+msgstr ""
+"<literal>access</literal> (optional - standardmäÃig <literal>property</"
+"literal>): Die von Hibernate zu verwendende Strategie für den Zugriff auf "
+"den Property-Wert der Collection."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that changes to the state of the collection results in "
+"increments of the owning entity's version. For one-to-many associations you "
+"may want to disable this setting."
+msgstr ""
+"<literal>optimistic-lock</literal> (optional - standardmäÃig <literal>true</"
+"literal>): Bestimmt die Statusänderungen der Collection-Ergebnisse in "
+"Versionserhöhung der besitzenden Entity. (Bei \"One-to-Many\"-Assoziationen "
+"ist es oftmals sinnvoll, diese Einstellung zu deaktivieren)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
+"a value of <literal>false</literal> specifies that the elements of the "
+"collection never change. This allows for minor performance optimization in "
+"some cases."
+msgstr ""
+"<literal>mutable</literal> (optional - standardmäÃig <literal>true</"
+"literal>): Ein Wert von <literal>false</literal> bestimmt, dass die Elemente "
+"der Collection sich niemals ändern (in manchen Fällen eine leichte "
+"Optimierung der Performance)."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr "Collection-Fremdschlüssel"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Collection instances are distinguished in the database by the foreign key of "
+"the entity that owns the collection. This foreign key is referred to as the "
+"<emphasis>collection key column</emphasis>, or columns, of the collection "
+"table. The collection key column is mapped by the <literal><key></"
+"literal> element."
+msgstr ""
+"Die Instanzen der Collection werden in der Datenbank durch den "
+"Fremdschlüssel der Entity, zu der die Collection gehört, unterschieden. "
+"Dieser Fremdschlüssel wird als <emphasis>Schlüsselspalte der Collection</"
+"emphasis> (oder Spalten) der Collection-Tabelle bezeichnet. Die "
+"Schlüsselspalte der Collection wird durch das <literal><key></literal>-"
+"Element gemappt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There can be a nullability constraint on the foreign key column. For most "
+"collections, this is implied. For unidirectional one-to-many associations, "
+"the foreign key column is nullable by default, so you may need to specify "
+"<literal>not-null=\"true\"</literal>."
+msgstr ""
+"Es ist möglich, dass eine \"Nullability\"-Bedingung an der Spalte des "
+"Fremdschlüssels existiert. Für die meisten Collections wird dies "
+"vorausgesetzt. Bei unidirektionalen \"One-to-Many\"-Assoziationen ist die "
+"Spalte des Fremdschlüssels standardmäÃig \"nullbar\", weswegen es möglich "
+"ist, dass Sie <literal>not-null=\"true\"</literal> festlegen müssen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgstr ""
+"Die Bedingung für den Fremdschlüssel kann <literal>ON DELETE CASCADE</"
+"literal> verwenden."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See the previous chapter for a full definition of the <literal><key></"
+"literal> element."
+msgstr ""
+"Die vollständige Definition des <literal><key></literal>-Elements "
+"finden Sie im vorangegangenen Kapitel."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr "Collection-Elemente"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Collections can contain almost any other Hibernate type, including: basic "
+"types, custom types, components and references to other entities. This is an "
+"important distinction. An object in a collection might be handled with "
+"\"value\" semantics (its life cycle fully depends on the collection owner), "
+"or it might be a reference to another entity with its own life cycle. In the "
+"latter case, only the \"link\" between the two objects is considered to be a "
+"state held by the collection."
+msgstr ""
+"Collections können fast jeden beliebigen anderen Hibernate-Typ enthalten, "
+"einschlieÃlich sämtlicher Grundtypen, angepasster Typen, Komponenten und "
+"natürlich Referenzen zu anderen Entities. Das ist ein wichtiger Unterschied: "
+"Ein Objekt einer Collection könnte mit \"Wert\"semantik bearbeitet werden "
+"(sein Lebenszyklus hängt vollständig vom Besitzer der Collection ab) oder es "
+"könnte ein Verweis auf eine andere Entity mit ihrem eigenen Lebenszyklus "
+"sein. Im letzteren Fall wird nur die \"Verbindung\" zwischen den beiden "
+"Objekten als von der Collection gehaltener Status angesehen."
+
+#. 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><element></"
+"literal> or <literal><composite-element></literal>, or in the case of "
+"entity references, with <literal><one-to-many></literal> or "
+"<literal><many-to-many></literal>. The first two map elements with "
+"value semantics, the next two are used to map entity associations."
+msgstr ""
+"Der enthaltene Typ wird als <emphasis>Typ von Collection-Element</emphasis> "
+"bezeichnet. Collection-Elemente werden durch <literal><element></"
+"literal> oder <literal><composite-element></literal> - oder im Fall "
+"von Entity-Verweisen - durch <literal><one-to-many></literal> oder "
+"<literal><many-to-many></literal> gemappt. Die ersten beiden Elemente "
+"mappen mit Wertsemantik, die beiden folgenden werden für das Mappen von "
+"Entity-Assoziationen verwendet."
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr "Indizierte Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All collection mappings, except those with set and bag semantics, need an "
+"<emphasis>index column</emphasis> in the collection table. An index column "
+"is a column that maps to an array index, or <literal>List</literal> index, "
+"or <literal>Map</literal> key. The index of a <literal>Map</literal> may be "
+"of any basic type, mapped with <literal><map-key></literal>. It can be "
+"an entity reference mapped with <literal><map-key-many-to-many></"
+"literal>, or it can be a composite type mapped with <literal><composite-"
+"map-key></literal>. The index of an array or list is always of type "
+"<literal>integer</literal> and is mapped using the <literal><list-"
+"index></literal> element. The mapped column contains sequential integers "
+"that are numbered from zero by default."
+msgstr ""
+"Alle Collection-Mappings - auÃer denen mit \"Set\"- und \"Bag\"-Semantik - "
+"benötigen eine <emphasis>Indexspalte</emphasis> in der Collection-Tabelle. "
+"Es handelt sich dabei um eine Spalte, die zu einem Verzeichnis von "
+"Datenelementen, <literal>List</literal>-Verzeichnis oder <literal>Map</"
+"literal>-Schlüssel mappt. Der Index einer <literal>Map</literal> kann jeden "
+"Grundtyp besitzen, der mit <literal><map-key></literal> gemappt ist. "
+"Es kann ein mit <literal><map-key-many-to-many></literal> gemappter "
+"Entity-Verweis oder ein mit <literal><composite-map-key></literal> "
+"gemappter zusammengesetzter Typ sein. Der Index eines Datenelements oder "
+"einer Liste ist immer vom Typ her <literal>integer</literal> und wird "
+"mittels <literal><list-index></literal>-Element gemappt. Die gemappte "
+"Spalte enthält sequenzielle ganze Zahlen (im Standard ab Null "
+"durchnummeriert)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column_name</literal> (required): the name of the column holding "
+"the collection index values."
+msgstr ""
+"<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
+
+#. Tag: para
+#, 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> (optional - standardmäÃig <literal>none</"
+"literal>) aktiviert Vorgänge zur Weitergabe an untergeordnete Entities (sog. "
+"\"child entities\")"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the column holding the "
+"collection index values."
+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
+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
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr ""
+"<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
+
+#. 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>schema</literal> (optional) der Name eines Tabellenschemas, der das "
+"im Stammelement deklarierte Schema auÃer Kraft setzt"
+
+#. 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>schema</literal> (optional) der Name eines Tabellenschemas, der das "
+"im Stammelement deklarierte Schema auÃer Kraft setzt"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (required): the entity class used as the map key."
+msgstr ""
+"<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
+
+#. 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><bag></emphasis>. A bag does not retain its order "
+"when it is retrieved from the database, but it can be optionally sorted or "
+"ordered."
+msgstr ""
+"Falls Ihre Tabelle keine Indexspalte besitzt und Sie nach wie vor "
+"<literal>List</literal> als Property-Typ verwenden wollen, so sollten Sie "
+"die Property als eine <emphasis><Bag></emphasis> mappen. Eine \"Bag\" "
+"bewahrt ihre Reihenfolge beim Abruf aus der Datenbank nicht, kann aber "
+"optional sortiert oder geordnet werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of values and many-to-many associations"
+msgstr "Collections von Werten und \"Many-to-Many\"-Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Any collection of values or many-to-many associations requires a dedicated "
+"<emphasis>collection table</emphasis> with a foreign key column or columns, "
+"<emphasis>collection element column</emphasis> or columns, and possibly an "
+"index column or columns."
+msgstr ""
+"Jede Collection von Werten oder \"Many-to-Many\"-Assoziation erfordert eine "
+"zugeordnete <emphasis>Collection-Tabelle</emphasis> mit einer oder mehreren "
+"Fremdschlüsselspalten, <emphasis>Collection-Element-Spalte(n)</emphasis> "
+"oder möglicherweise einer oder mehreren Indexspalte(n)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For a collection of values use the <literal><element></literal> tag. "
+"For example:"
+msgstr ""
+"Für eine Collection von Werten wird das <literal><element></literal>-"
+"Tag verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the column holding the "
+"collection element values."
+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
+msgid ""
+"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
+"element."
+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
+msgid "<literal>type</literal> (required): the type of the collection element."
+msgstr ""
+"<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>many-to-many association</emphasis> is specified using the "
+"<literal><many-to-many></literal> element."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the element foreign key "
+"column."
+msgstr ""
+"<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
+
+#. Tag: para
+#, 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
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr ""
+"<literal>class</literal> (erforderlich): Der Name der zugehörigen Klasse."
+
+#. 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><many-to-many></"
+"literal> nested element."
+msgstr ""
+
+#. 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 ""
+
+#. 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> (optional - standardmäÃig <literal>exception</"
+"literal>): Bestimmt, wie gespeicherte Bezeichner (sog. \"Identifier\"), die "
+"auf fehlende Reihen verweisen, behandelt werden. Mit <literal>ignore</"
+"literal> wird eine fehlende Reihe als Null-Assoziation angesehen."
+
+#. 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 ""
+"<literal>entity-name</literal> (optional): Der Entity-Name der zugehörigen "
+"Klasse als Alternative zu <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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some examples."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A set of strings:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A bag containing integers with an iteration order determined by the "
+"<literal>order-by</literal> attribute:"
+msgstr ""
+"Eine ganze Zahlen enthaltende \"Bag\" (mit einer durch das <literal>order-"
+"by</literal>-Attribut bestimmten Reihenfolge):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "An array of entities, in this case, a many-to-many association:"
+msgstr ""
+"Ein Datenelement von Entities - in diesem Fall eine \"Many-to-Many\"-"
+"Assoziation:"
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "Eine Map von String-Indexen zu Daten:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr ""
+"Eine List von Komponenten (wird im nachfolgenden Kapitel näher erläutert):"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "\"One-to-Many\"-Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>one-to-many association</emphasis> links the tables of two "
+"classes via a foreign key with no intervening collection table. This mapping "
+"loses certain semantics of normal Java collections:"
+msgstr ""
+"Eine <emphasis>\"One-to-Many\"-Assoziation</emphasis> verbindet die Tabellen "
+"zweier Klassen mittels des Fremdschlüssels ohne eine intervenierende "
+"Collection-Tabelle. Dieses Mapping verliert bestimmte Teile der Semantik "
+"regulärer Java-Collections:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of the contained entity class cannot belong to more than one "
+"instance of the collection."
+msgstr ""
+"Eine Instanz der enthaltenen Entity-Klasse kann nicht zu mehr als einer "
+"Instanz der Collection gehören"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of the contained entity class cannot appear at more than one "
+"value of the collection index."
+msgstr ""
+"Eine Instanz der enthaltenen Entity-Klasse kann nicht an mehr als einem Wert "
+"des Collection-Index erscheinen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An association from <literal>Product</literal> to <literal>Part</literal> "
+"requires the existence of a foreign key column and possibly an index column "
+"to the <literal>Part</literal> table. A <literal><one-to-many></"
+"literal> tag indicates that this is a one-to-many association."
+msgstr ""
+"Eine Assoziation von <literal>Product</literal> zu <literal>Part</literal> "
+"macht die Existenz einer Spalte mit Fremdschlüssel und möglicherweise einer "
+"Indexspalte zur <literal>Part</literal>-Tabelle erforderlich. Ein "
+"<literal><one-to-many></literal>-Tag zeigt an, dass dies eine \"One-to-"
+"Many\"-Assoziation ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-found</literal> (optional - defaults to <literal>exception</"
+"literal>): specifies how cached identifiers that reference missing rows will "
+"be handled. <literal>ignore</literal> will treat a missing row as a null "
+"association."
+msgstr ""
+"<literal>not-found</literal> (optional - standardmäÃig <literal>exception</"
+"literal>): Bestimmt, wie gespeicherte Bezeichner (sog. \"Identifier\"), die "
+"auf fehlende Reihen verweisen, behandelt werden. Mit <literal>ignore</"
+"literal> wird eine fehlende Reihe als Null-Assoziation angesehen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><one-to-many></literal> element does not need to declare "
+"any columns. Nor is it necessary to specify the <literal>table</literal> "
+"name anywhere."
+msgstr ""
+"Beachten Sie, dass das <literal><one-to-many></literal>-Element keine "
+"Spalten deklarieren muss. Es ist auÃerdem nicht nötig, den <literal>table</"
+"literal>-Namen irgendwo zu bestimmen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the foreign key column of a <literal><one-to-many></literal> "
+"association is declared <literal>NOT NULL</literal>, you must declare the "
+"<literal><key></literal> mapping <literal>not-null=\"true\"</literal> "
+"or <emphasis>use a bidirectional association</emphasis> with the collection "
+"mapping marked <literal>inverse=\"true\"</literal>. See the discussion of "
+"bidirectional associations later in this chapter for more information."
+msgstr ""
+"<emphasis>Sehr wichtig:</emphasis> Falls die Fremdschlüsselspalte einer "
+"<literal><one-to-many></literal>-Assoziation als <literal>NOT NULL</"
+"literal> deklariert ist, müssen Sie beim <literal><key></literal>-"
+"Mapping <literal>not-null=\"true\"</literal> deklarieren oder <emphasis>eine "
+"bidirektionale Assoziation</emphasis> mit als <literal>inverse=\"true\"</"
+"literal> gekennzeichnetem Collection-Mapping verwenden. Wir gehen später in "
+"diesem Kapitel noch näher auf bidirektionale Assoziationen ein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following example shows a map of <literal>Part</literal> entities by "
+"name, where <literal>partName</literal> is a persistent property of "
+"<literal>Part</literal>. Notice the use of a formula-based index:"
+msgstr ""
+"Dieses Beispiel zeigt die Map von <literal>Part</literal>-Entities nach Name "
+"(wobei <literal>partName</literal> eine persistente Property von "
+"<literal>Part</literal>) ist. Beachten Sie die Verwendung eines "
+"formelbasierten Index."
+
+#. Tag: title
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr "Fortgeschrittene Collection-Mappings"
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr "Sortierte Collections"
+
+#. 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 unterstützt <literal>java.util.SortedMap</literal> und "
+"<literal>java.util.SortedSet</literal> implementierende Collections. Sie "
+"müssen ein Vergleichsprogramm in der Mapping-Datei bestimmen:"
+
+#. 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 ""
+"Erlaubte Werte für das <literal>sort</literal>-Attribut sind "
+"<literal>unsorted</literal>, <literal>natural</literal> und der Name einer "
+"Klassenimplementierung <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 ""
+"Sortierte Collections verhalten sich tatsächlich wie <literal>java.util."
+"TreeSet</literal> oder <literal>java.util.TreeMap</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want the database itself to order the collection elements, use the "
+"<literal>order-by</literal> attribute of <literal>set</literal>, "
+"<literal>bag</literal> or <literal>map</literal> mappings. This solution is "
+"only available under JDK 1.4 or higher and is implemented using "
+"<literal>LinkedHashSet</literal> or <literal>LinkedHashMap</literal>. This "
+"performs the ordering in the SQL query and not in the memory."
+msgstr ""
+"Falls Sie wollen, dass die Datenbank selbst die Elemente der Collection "
+"ordnet, verwenden Sie das <literal>order-by</literal>-Attribut von "
+"<literal>set</literal>, <literal>bag</literal> oder <literal>map</literal>-"
+"Mappings. Diese Lösung ist nur bei JDK 1.4 oder späteren Versionen verfügbar "
+"(sie wird unter <literal>LinkedHashSet</literal> oder "
+"<literal>LinkedHashMap</literal> implementiert). Dadurch wird die Anordnung "
+"in der SQL-Anfrage - nicht im Speicher - durchgeführt."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The value of the <literal>order-by</literal> attribute is an SQL ordering, "
+"not an HQL ordering."
+msgstr ""
+"Beachten Sie, dass der Wert des <literal>order-by</literal>-Attributs eine "
+"SQL-Anordnung, keine HQL-Anordnung ist!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Associations can even be sorted by arbitrary criteria at runtime using a "
+"collection <literal>filter()</literal>:"
+msgstr ""
+"Assoziationen können zur Runtime mittels Collection <literal>filter()</"
+"literal> sogar nach beliebigen Kriterien sortiert werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "Bidirektionale Assoziationen"
+
+#. 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 ""
+"Eine <emphasis>bidirektionale Assoziation</emphasis> erlaubt die Navigation "
+"von beiden \"Enden\" der Assoziation. Es werden zwei Arten bidirektionaler "
+"Assoziationen unterstützt:"
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr "\"One-to-Many\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr ""
+"an einem Ende von \"Set\"- oder \"Bag\"-wertig, am anderen Ende einwertig"
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr "\"Many-to-Many\""
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr "an beiden Enden \"Set\"- oder \"Bag\"-wertig"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can specify a bidirectional many-to-many association by mapping two many-"
+"to-many associations to the same database table and declaring one end as "
+"<emphasis>inverse</emphasis>. You cannot select an indexed collection."
+msgstr ""
+"Sie können eine bidirektionale \"Many-to-Many\"-Assoziation ganz einfach "
+"festlegen, indem Sie zwei \"Many-to-Many\"-Assoziationen zur selben "
+"Datenbanktabelle mappen und ein Ende als <emphasis>invertiert</emphasis> "
+"deklarieren (welches bleibt Ihnen überlassen, es kann jedoch keine "
+"indizierte Collection sein)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here is an example of a bidirectional many-to-many association that "
+"illustrates how each category can have many items and each item can be in "
+"many categories:"
+msgstr ""
+"Nachfolgend sehen Sie ein Beispiel für eine bidirektionale \"Many-to-Many\"-"
+"Assoziation. Jede Kategorie kann viele Posten besitzen und jeder Posten kann "
+"sich in vielen Kategorien befinden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Changes made only to the inverse end of the association are <emphasis>not</"
+"emphasis> persisted. This means that Hibernate has two representations in "
+"memory for every bidirectional association: one link from A to B and another "
+"link from B to A. This is easier to understand if you think about the Java "
+"object model and how a many-to-many relationship in Javais created:"
+msgstr ""
+"Ãnderungen können nur am invertierten Ende der Assoziation gemacht werden "
+"und sind <emphasis>nicht</emphasis> persistiert. Das bedeutet, dass "
+"Hibernate zwei Darstellungen jeder bidirektionalen Assoziation im Speicher "
+"besitzt - eine Verbindung von A zu B und eine weitere Verbindung von B zu A. "
+"Dies ist leichter zu verstehen, wenn man an das Objektmodell von Java denkt "
+"und daran, wie in Java eine \"Many-to-Many\"-Beziehung erstellt wird:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The non-inverse side is used to save the in-memory representation to the "
+"database."
+msgstr ""
+"Die nicht-invertierte Seite wird dazu benutzt, die gespeicherte Darstellung "
+"in der Datenbank zu speichern."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can define a bidirectional one-to-many association by mapping a one-to-"
+"many association to the same table column(s) as a many-to-one association "
+"and declaring the many-valued end <literal>inverse=\"true\"</literal>."
+msgstr ""
+"Sie können eine bidirektionale \"One-to-Many\"-Assoziation definieren, indem "
+"Sie eine \"One-to-Many\"-Assoziation zu derselben (oder denselben) "
+"Tabellenspalte(n) wie eine \"Many-to-One\"-Assoziation mappen und für das "
+"mehrwertige Ende <literal>inverse=\"true\"</literal> deklarieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Mapping one end of an association with <literal>inverse=\"true\"</literal> "
+"does not affect the operation of cascades as these are orthogonal concepts."
+msgstr ""
+"Das Mappen eines der Enden einer Assoziation mit <literal>inverse=\"true\"</"
+"literal> hat keinen Einfluss auf die Weitergabevorgänge (sog. \"Cascades\"), "
+"es handelt sich um orthogonale Konzepte!"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr "Bidirektionale Assoziationen mit indizierten Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A bidirectional association where one end is represented as a <literal><"
+"list></literal> or <literal><map></literal>, requires special "
+"consideration. If there is a property of the child class that maps to the "
+"index column you can use <literal>inverse=\"true\"</literal> on the "
+"collection mapping:"
+msgstr ""
+"Eine bidirektionale Assoziation, bei der ein Ende als <literal><list></"
+"literal> oder <literal><map></literal> dargestellt ist, erfordert "
+"besondere Beachtung. Falls eine Property der untergeordneten Klasse (sog. "
+"\"child class\") existiert, die zur Indexspalte mappt, dann gibt es keine "
+"Probleme und wir können mit der Verwendung von <literal>inverse=\"true\"</"
+"literal> beim Collection-Mapping fortfahren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If there is no such property on the child class, the association cannot be "
+"considered truly bidirectional. That is, there is information available at "
+"one end of the association that is not available at the other end. In this "
+"case, you cannot map the collection <literal>inverse=\"true\"</literal>. "
+"Instead, you could use the following mapping:"
+msgstr ""
+"Falls aber an der untergeordneten Klasse keine solche Property vorhanden "
+"ist, so kann man sich die Assoziation nicht als wahrhaft bidirektional "
+"vorstellen (es sind Informationen an einem Ende vorhanden, die am anderen "
+"Ende nicht verfügbar sind). In diesem Fall können wir die Collection nicht "
+"<literal>inverse=\"true\"</literal> mappen. Statt dessen empfehlen wir "
+"folgendes Mapping:"
+
+#. Tag: para
+#, 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 ""
+"Bitte beachten Sie, dass bei diesem Mapping das Collection-wertige Ende der "
+"Assoziation für Aktualisierungen am Fremdschlüssel verantwortlich ist. TODO: "
+"Führt dies zu unnötigen Aktualisierungsanweisungen? "
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr "Dreifache Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are three possible approaches to mapping a ternary association. One "
+"approach is to use a <literal>Map</literal> with an association as its index:"
+msgstr ""
+"Es gibt drei mögliche Arten eine dreifache Assoziation zu mappen. Eine davon "
+"ist die Verwendung von <literal>Map</literal> mit einer Assoziation als "
+"deren Index:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A second approach is to remodel the association as an entity class. This is "
+"the most common approach."
+msgstr ""
+"Ein zweiter Weg ist es, die Assoziation einfach als eine Entity-Klasse zu "
+"gestalten. Das ist die am häufigsten gewählte Herangehensweise."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A final alternative is to use composite elements, which will be discussed "
+"later."
+msgstr ""
+"Die dritte und letzte Variante besteht in der Verwendung zusammengesetzter "
+"Elemente, auf die wir zu einem späteren Zeitpunkt näher eingehen werden."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr "Die Verwendung einer <idbag>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The majority of the many-to-many associations and collections of values "
+"shown previously all map to tables with composite keys, even though it has "
+"been have suggested that entities should have synthetic identifiers "
+"(surrogate keys). A pure association table does not seem to benefit much "
+"from a surrogate key, although a collection of composite values "
+"<emphasis>might</emphasis>. It is for this reason that Hibernate provides a "
+"feature that allows you to map many-to-many associations and collections of "
+"values to a table with a surrogate key."
+msgstr ""
+"Falls Sie unsere Ansicht teilen und ebenfalls der Meinung sind, dass "
+"zusammengesetzte Schlüssel keine gute Sache sind und Entities synthetische "
+"Bezeichner (Surrogatschlüssel) besitzen sollten, dann werden Sie es "
+"wahrscheinlich seltsam finden, dass die bis jetzt von uns gezeigten \"Many-"
+"to-Many\"-Assoziationen und Wert-Collections zu Tabellen mit "
+"zusammengesetzten Schlüsseln mappen! Nun, über diesen Punkt lässt sich "
+"streiten. Einer reinen Assoziationstabelle scheint ein Surrogatschlüssel "
+"(obwohl eine Collection zusammengesetzter Werte das <emphasis>könnte</"
+"emphasis>) nicht viel zu bringen. Trotzdem bietet Hibernate ein Feature, das "
+"es Ihnen ermöglicht, \"Many-to-Many\"-Assoziationen und Wert-Collections zu "
+"einer Tabelle mit einem Surrogatschlüssel zu mappen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><idbag></literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+"Das <literal><idbag></literal>-Element lässt Sie eine <literal>List</"
+"literal> (oder <literal>Collection</literal>) mit \"Bag\"-Semantik mappen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An <literal><idbag></literal> has a synthetic id generator, just like "
+"an entity class. A different surrogate key is assigned to each collection "
+"row. Hibernate does not, however, provide any mechanism for discovering the "
+"surrogate key value of a particular row."
+msgstr ""
+"Wie Sie sehen hat <literal><idbag></literal> einen synthetischen id-"
+"Generator, ganz wie eine Entity-Klasse! Ein anderer Surrogatschlüssel wird "
+"jeder Reihe der Collection zugeordnet. Hibernate bietet jedoch keinen "
+"Mechanismus, um den Wert eines Surrogatschlüssels für eine bestimmte Reihe "
+"herauszufinden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The update performance of an <literal><idbag></literal> supersedes a "
+"regular <literal><bag></literal>. Hibernate can locate individual rows "
+"efficiently and update or delete them individually, similar to a list, map "
+"or set."
+msgstr ""
+"Beachten Sie, dass die Aktualiserungsperformance einer <literal><idbag>"
+"</literal> <emphasis>wesentlich</emphasis> besser als eine reguläre "
+"<literal><bag></literal> ist! Hibernate kann auf effiziente Weise "
+"einzelne Reihen lokalisieren und sie individuell aktualisieren oder löschen, "
+"ganz wie bei einer Liste, einer Map oder einem Set."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal><idbag></literal> "
+"collection identifiers."
+msgstr ""
+"In der aktuellen Implementierung wird die <literal>native</literal> "
+"Bezeichnergenerierungsstrategie nicht für <literal><idbag></literal> "
+"Collection-Bezeichner unterstützt."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr "Collection-Beispiele"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This section covers collection examples."
+msgstr "Collection-Beispiele"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
+msgstr ""
+"Der folgende Code würde verwendet, um ein neues <literal>Child</literal> "
+"hinzuzufügen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If each child has, at most, one parent, the most natural mapping is a one-to-"
+"many association:"
+msgstr ""
+"besitzt eine Collection von <literal>Child</literal>-Instanzen. Wenn jedes "
+"\"child\" (untergeordnet) höchstens einen \"parent\" (übergeordnet) besitzt, "
+"so ist das natürlichste Mapping eine \"One-to-Many\"-Assoziation:"
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr "Das mappt zu den folgenden Tabellendefinitionen:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-"
+"many association:"
+msgstr ""
+"Falls der \"parent\" <emphasis>erforderlich</emphasis> ist, verwenden Sie "
+"eine bidirektionale \"One-to-Many\"-Assoziation:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "Beachten Sie die <literal>NOT NULL</literal>-Bedingung:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, if this association must be unidirectional you can declare "
+"the <literal>NOT NULL</literal> constraint on the <literal><key></"
+"literal> mapping:"
+msgstr ""
+"Andernfalls - falls Sie absolut darauf bestehen, dass diese Assoziation "
+"unidirektional ist - können Sie die <literal>NOT NULL</literal>-Bedingung am "
+"<literal><key></literal>-Mapping deklarieren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"On the other hand, if a child has multiple parents, a many-to-many "
+"association is appropriate:"
+msgstr ""
+"Wenn jedoch ein \"child\" mehrere \"parents\" besitzen kann, ist die \"Many-"
+"to-Many\"-Assoziation passender:"
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+msgstr "Tabellendefinitionen:"
+
+#. Tag: para
+#, 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 ""
+"Weitere Beispiele und eine vollständige Abhandlung des Mappings der \"parent/"
+"child\"-Beziehung finden Sie unter <xref linkend=\"example-parentchild\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Even more complex association mappings are covered in the next chapter."
+msgstr ""
+"Es sind sogar noch weitaus exotischere Assoziations-Mappings möglich, die "
+"wir im nächsten Kapitel ausführen."
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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!"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+#~ msgstr "<key column=\"productSerialNumber\" not-null=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
+#~ msgstr "<key column=\"productSerialNumber\" on-delete=\"cascade\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ " />"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this."
+#~ "name\" ).list();]]>"
+#~ msgstr ""
+#~ "sortedUsers = s.createFilter( group.getUsers(), \"order by this.name\" )."
+#~ "list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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=\"CATEGORY_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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/component_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/component_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/component_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1073 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr "Komponenten-Mapping"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The notion of a <emphasis>component</emphasis> is re-used in several "
+"different contexts and purposes throughout Hibernate."
+msgstr ""
+"Der Begriff der <emphasis>Komponente</emphasis> wird in Hibernate in "
+"verschiedenen Kontexten und zu unterschiedlichen Zwecken aufgegriffen."
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr "Abhängige Objekte"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A component is a contained object that is persisted as a value type and not "
+"an entity reference. The term \"component\" refers to the object-oriented "
+"notion of composition and not to architecture-level components. For example, "
+"you can model a person like this:"
+msgstr ""
+"Bei einer Komponente handelt es sich um ein enthaltenes Objekt, das als "
+"Wertetyp, nicht als Entity-Referenz persistiert ist. Der Begriff \"Komponente"
+"\" verweist auf den objektorientierten Aspekt der Zusammensetzung (nicht auf "
+"Komponenten der Architektur-Ebene). Sie könnten zum Beispiel folgendes "
+"Modell für eine Person erstellen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>Name</literal> can be persisted as a component of "
+"<literal>Person</literal>. <literal>Name</literal> defines getter and setter "
+"methods for its persistent properties, but it does not need to declare any "
+"interfaces or identifier properties."
+msgstr ""
+"Jetzt kann <literal>Name</literal> als Komponente von <literal>Person</"
+"literal> persistiert werden. Beachten Sie, dass <literal>Name</literal> \"Get"
+"\"- und \"Set\"-Methoden für persistente Properties definiert, aber keine "
+"Interfaces oder Bezeichner-Properties deklarieren muss."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr "Unser Hibernate Mapping würde wie folgt aussehen:"
+
+#. 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 ""
+"Die Personentabelle würde die Spalten <literal>pid</literal>, "
+"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
+"literal> und <literal>last</literal> besitzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Like value types, components do not support shared references. In other "
+"words, two persons could have the same name, but the two person objects "
+"would contain two independent name objects that were only \"the same\" by "
+"value. The null value semantics of a component are <emphasis>ad hoc</"
+"emphasis>. When reloading the containing object, Hibernate will assume that "
+"if all component columns are null, then the entire component is null. This "
+"is suitable for most purposes."
+msgstr ""
+"Wie alle Wertetypen unterstützen Komponenten keine geteilten Verweise (sog. "
+"\"shared references\"). Mit anderen Worten: Zwei Personen könnten denselben "
+"Namen besitzen, aber die beiden Personen-Objekte würden zwei unabhängige "
+"Namensobjekte besitzen, die nur hinsichtlich des Werts \"gleich\" sind. Die "
+"Nullwert-Semantik einer Komponente ist <emphasis>ad hoc</emphasis>. Wenn das "
+"enthaltene Objekt erneut geladen wird, geht Hibernate davon aus, dass die "
+"gesamte Komponente Null ist, wenn alle Spalten Null sind . Für die meisten "
+"Zwecke ist das in Ordnung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The properties of a component can be of any Hibernate type (collections, "
+"many-to-one associations, other components, etc). Nested components should "
+"<emphasis>not</emphasis> be considered an exotic usage. Hibernate is "
+"intended to support a fine-grained object model."
+msgstr ""
+"Die Properties einer Komponente können jeden Hibernate-Typ besitzen "
+"(Collections, \"Many-to-One\"-Assoziationen, andere Komponenten, usw). "
+"Verschachtelte Komponenten sollten <emphasis>nicht</emphasis> als exotisch "
+"angesehen werden - Hibernate ist dafür vorgesehen, ein sehr feinstufiges "
+"Objektmodell zu unterstützen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"Das <literal><component></literal>-Element ermöglicht ein <literal><"
+"parent></literal>-Subelement, das eine Property der Komponentenklasse als "
+"Rückreferenz zur enthaltenden Entity mappt."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr "Collections abhängiger Objekte"
+
+#. 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><element></literal> tag with a <literal><composite-"
+"element></literal> tag:"
+msgstr ""
+"Collections von Komponenten werden unterstützt (z.B. ein Datenelement vom "
+"Typ <literal>Name</literal>). Deklarieren Sie Ihre Collection von "
+"Komponenten, indem Sie das <literal><element></literal>-Tag durch ein "
+"<literal><composite-element></literal>-Tag ersetzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you define a <literal>Set</literal> of composite elements, it is "
+"important to implement <literal>equals()</literal> and <literal>hashCode()</"
+"literal> correctly."
+msgstr ""
+"Hinweis: Falls Sie ein <literal>Set</literal> zusammengesetzter Elemente "
+"deklarieren, ist es sehr wichtig, dass Sie <literal>equals()</literal> und "
+"<literal>hashCode()</literal> korrekt implementieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Composite elements can contain components but not collections. If your "
+"composite element contains components, use the <literal><nested-composite-"
+"element></literal> tag. This case is a collection of components which "
+"themselves have components. You may want to consider if a one-to-many "
+"association is more appropriate. Remodel the composite element as an entity, "
+"but be aware that even though the Java model is the same, the relational "
+"model and persistence semantics are still slightly different."
+msgstr ""
+"Zusammengesetzte Elemente können Komponenten, nicht jedoch Collections "
+"enthalten. Falls Ihr zusammengesetztes Element selbst Komponenten enthält, "
+"verwenden Sie das <literal><nested-composite-element></literal>-Tag. "
+"Es handelt sich dabei aber um einen recht exotischen Fall - eine Collection "
+"von Komponenten, die wiederum selbst über Komponenten verfügen. An dieser "
+"Stelle sollten Sie sich fragen, ob eine \"One-to-Many\"-Assoziation nicht "
+"sinnvoller ist. Versuchen Sie, das zusammengesetzte Element zu einer Entity "
+"zu machen - aber beachten Sie: Obwohl das Java-Modell dasselbe ist, gibt es "
+"doch gewisse Unterschiede hinsichtlich des relationalen Modells und der "
+"Persistenz-Semantik."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A composite element mapping does not support null-able properties if you are "
+"using a <literal><set></literal>. There is no separate primary key "
+"column in the composite element table. Hibernate uses each column's value to "
+"identify a record when deleting objects, which is not possible with null "
+"values. You have to either use only not-null properties in a composite-"
+"element or choose a <literal><list></literal>, <literal><map></"
+"literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr ""
+"Bitte beachten Sie, dass zusammengesetztes Element-Mapping keine nullbaren "
+"Properties unterstützt, wenn Sie ein <literal><set></literal> "
+"verwenden. Hibernate muss den Wert jeder Spalte verwenden, um einen "
+"Datensatz bei der Löschung von Objekten zu identifizieren (es existiert "
+"keine separate Primärschlüsselspalte in der Tabelle mit zusammengesetzten "
+"Elementen), was mit Nullwerten nicht möglich ist. Sie müssen entweder "
+"ausschlieÃlich Properties, die nicht Null sind, in einem zusammengesetzten "
+"Element verwenden oder <literal><list></literal>, <literal><map>"
+"</literal>, <literal><bag></literal> oder <literal><idbag></"
+"literal> wählen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal><many-to-one></literal> element. This mapping allows you to "
+"map extra columns of a many-to-many association table to the composite "
+"element class. The following is a many-to-many association from "
+"<literal>Order</literal> to <literal>Item</literal>, where "
+"<literal>purchaseDate</literal>, <literal>price</literal> and "
+"<literal>quantity</literal> are properties of the association:"
+msgstr ""
+"Um einen besonderen Fall von zusammengesetztem Element handelt es sich bei "
+"einem zusammengesetzten Element mit verschachteltem <literal><many-to-"
+"one></literal>-Element. Ein solches Mapping erlaubt es Ihnen, Extra-"
+"Spalten einer \"Many-to-Many\"-Assoziationstabelle zu einer "
+"zusammengesetzten Elementklasse zu mappen. Nachfolgend sehen Sie eine \"Many-"
+"to-Many\"-Assoziation von <literal>Order</literal> zu <literal>Item</"
+"literal> wo <literal>purchaseDate</literal>, <literal>price</literal> und "
+"<literal>quantity</literal> Properties der Assoziation sind:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There cannot be a reference to the purchase on the other side for "
+"bidirectional association navigation. Components are value types and do not "
+"allow shared references. A single <literal>Purchase</literal> can be in the "
+"set of an <literal>Order</literal>, but it cannot be referenced by the "
+"<literal>Item</literal> at the same time."
+msgstr ""
+"Natürlich kann kein Verweis zum Kauf (\"Purchase\") auf der anderen Seite "
+"für eine bidirektionale Assoziationsnavigation existieren. Vergessen Sie "
+"nicht, dass es sich bei Komponenten um Wertetypen handelt und diese keine "
+"geteilten Verweise erlauben. Ein einzelner <literal>Purchase</literal> kann "
+"sich im Satz einer <literal>Order</literal> befinden, aber kann nicht zur "
+"gleichen Zeit durch den <literal>Item</literal> referenziert werden."
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr "Sogar dreifache (oder vierfache, usw.) Assoziationen sind möglich:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Composite elements can appear in queries using the same syntax as "
+"associations to other entities."
+msgstr ""
+"Zusammengesetzte Elemente können in Anfragen vorkommen und verwenden "
+"dieselbe Syntax wie Assoziationen zu anderen Entities."
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr "Komponenten als Map-Indizes"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><composite-map-key></literal> element allows you to map a "
+"component class as the key of a <literal>Map</literal>. Ensure that you "
+"override <literal>hashCode()</literal> and <literal>equals()</literal> "
+"correctly on the component class."
+msgstr ""
+"Das <literal><composite-map-key></literal>-Element lässt Sie eine "
+"Komponentenklasse als Schlüssel einer <literal>Map</literal> mappen. "
+"Vergewissern Sie sich, dass Sie <literal>hashCode()</literal> und "
+"<literal>equals()</literal> in der Komponentenklasse ordnungsgemäà auÃer "
+"Kraft setzen."
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr "Komponenten als zusammengesetzte Bezeichner"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can use a component as an identifier of an entity class. Your component "
+"class must satisfy certain requirements:"
+msgstr ""
+"Sie können eine Komponente als Bezeichner einer Entity-Klasse verwenden. "
+"Ihre Komponentenklasse muss folgende Anforderungen erfüllen:"
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr "Es muss <literal>java.io.Serializable</literal> implementieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It must re-implement <literal>equals()</literal> and <literal>hashCode()</"
+"literal> consistently with the database's notion of composite key equality."
+msgstr ""
+"Es muss <literal>equals()</literal> und <literal>hashCode()</literal> re-"
+"implementieren, konsistent mit dem Datenbankbegriff der Gleichheit der "
+"zusammengesetzten Schlüssel (sog. \"composite key equality\")."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In Hibernate3, although the second requirement is not an absolutely hard "
+"requirement of Hibernate, it is recommended."
+msgstr ""
+"Hinweis: In Hibernate3 ist die zweite Anforderung nicht absolut zwingend. "
+"Dennoch sollten Sie sich daran halten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You cannot use an <literal>IdentifierGenerator</literal> to generate "
+"composite keys. Instead the application must assign its own identifiers."
+msgstr ""
+"Sie können keinen <literal>IdentifierGenerator</literal> verwenden, um "
+"zusammengesetzte Schlüssel zu generieren. Statt dessen muss die Anwendung "
+"Ihre eigenen Bezeichner zuordnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use the <literal><composite-id></literal> tag, with nested "
+"<literal><key-property></literal> elements, in place of the usual "
+"<literal><id></literal> declaration. For example, the "
+"<literal>OrderLine</literal> class has a primary key that depends upon the "
+"(composite) primary key of <literal>Order</literal>."
+msgstr ""
+"Verwenden Sie das <literal><composite-id></literal>-Tag (mit "
+"verschachtelten <literal><key-property></literal>-Elementen) anstelle "
+"der üblichen <literal><id></literal>-Deklaration. Zum Beispiel besitzt "
+"die <literal>OrderLine</literal>-Klasse einen Primärschlüssel, der vom "
+"(zusammengesetzten) Primärschlüssel von <literal>Order</literal> abhängt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Any foreign keys referencing the <literal>OrderLine</literal> table are now "
+"composite. Declare this in your mappings for other classes. An association "
+"to <literal>OrderLine</literal> is mapped like this:"
+msgstr ""
+"Nun sind alle Fremdschlüssel, die auf die <literal>OrderLine</literal>-"
+"Tabelle verweisen, ebenfalls zusammengesetzt. Sie müssen dies in Ihren "
+"Mappings für andere Klassen deklarieren. Eine Assoziation zu "
+"<literal>OrderLine</literal> würde wie folgt gemappt:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>column</literal> element is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>column</"
+"literal> element just gives more declaration options, which are mostly "
+"useful when utilizing <literal>hbm2ddl</literal>"
+msgstr ""
+"(Beachten Sie, dass das <literal><column></literal>-Tag überall eine "
+"Alternative zum <literal>column</literal>-Attribut darstellt)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>many-to-many</literal> association to <literal>OrderLine</"
+"literal> also uses the composite foreign key:"
+msgstr ""
+"Eine <literal>many-to-many</literal>-Assoziation zu <literal>OrderLine</"
+"literal> verwendet ebenfalls den zusammengesetzten Fremdschlüssel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
+"would use:"
+msgstr ""
+"Die Collection von <literal>OrderLine</literal>s in <literal>Order</literal> "
+"würde Folgendes verwenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr ""
+"(Das <literal><one-to-many></literal>-Element deklariert wie üblich "
+"keine Spalten)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
+msgstr ""
+"Falls <literal>OrderLine</literal> selbst eine Collection besitzt, so "
+"besitzt es auch einen zusammengesetzten Fremdschlüssel."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr "Dynamische Komponenten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr "Sie können sogar eine Property vom Typ <literal>Map</literal> mappen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The semantics of a <literal><dynamic-component></literal> mapping are "
+"identical to <literal><component></literal>. The advantage of this "
+"kind of mapping is the ability to determine the actual properties of the "
+"bean at deployment time just by editing the mapping document. Runtime "
+"manipulation of the mapping document is also possible, using a DOM parser. "
+"You can also access, and change, Hibernate's configuration-time metamodel "
+"via the <literal>Configuration</literal> object."
+msgstr ""
+"Die Semantik eines <literal><dynamic-component></literal>-Mappings ist "
+"identisch mit <literal><component></literal>. Der Vorteil dieser Art "
+"des Mappings besteht in der Möglichkeit, die tatsächlichen Properties des "
+"Beans zum Zeitpunkt des Deployments zu bestimmen, indem das Mapping-Dokument "
+"editiert wird. Eine Runtime-Manipulation des Mapping-Dokuments ist mit einem "
+"DOM-Parser ebenfalls möglich. Besser noch: Sie können mittels "
+"<literal>Configuration</literal>-Objekt auf das Konfigurationszeit-"
+"Metamodell von Hibernate zugreifen (und es verändern)."
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <composite-element class=\"eg.Name\"> <!-- class attribute "
+#~ "required -->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </composite-element>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.Purchase\">\n"
+#~ " <property name=\"purchaseDate\"/>\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- "
+#~ "class attribute is optional -->\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/"
+#~ ">\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key "
+#~ "type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>]]>"
+#~ msgstr ""
+#~ "<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/configuration.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/configuration.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/configuration.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,3228 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr "Konfiguration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate is designed to operate in many different environments and, as "
+"such, there is a broad range of configuration parameters. Fortunately, most "
+"have sensible default values and Hibernate is distributed with an example "
+"<literal>hibernate.properties</literal> file in <literal>etc/</literal> that "
+"displays the various options. Simply put the example file in your classpath "
+"and customize it to suit your needs."
+msgstr ""
+"Da Hibernate für die Benutzung in zahlreichen verschiedenen Umgebungen "
+"entwickelt wurde, existiert eine hohe Anzahl von Konfigurationsparametern. "
+"Glücklicherweise besitzen die meisten vernünftige Standardwerte, und "
+"Hibernate wird mit der Beispieldatei<literal>hibernate.properties</literal> "
+"in <literal>etc/</literal> geliefert, die die verschiedenen Möglichkeiten "
+"darstellt. Legen Sie die Beispieldatei einfach in Ihrem Klassenpfad ab, und "
+"passen Sie sie an."
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr "Programmatische Konfiguration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of <classname>org.hibernate.cfg.Configuration</classname> "
+"represents an entire set of mappings of an application's Java types to an "
+"SQL database. The <classname>org.hibernate.cfg.Configuration</classname> is "
+"used to build an immutable <interfacename>org.hibernate.SessionFactory</"
+"interfacename>. The mappings are compiled from various XML mapping files."
+msgstr ""
+"Eine Instanz von <literal>org.hibernate.cfg.Configuration</literal> "
+"repräsentiert einen vollständigen Satz der Mappings von Java-Typen einer "
+"Anwendung zu einer SQL-Datenbank. Die <literal>Configuration</literal> wird "
+"benutzt, um eine (unveränderbare) <literal>SessionFactory</literal> zu "
+"bauen. Die Mappings werden aus verschiedenen XML-Mapping-Dateien kompiliert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can obtain a <classname>org.hibernate.cfg.Configuration</classname> "
+"instance by instantiating it directly and specifying XML mapping documents. "
+"If the mapping files are in the classpath, use <literal>addResource()</"
+"literal>. For example:"
+msgstr ""
+"Sie erhalten eine <literal>Configuration</literal>-Instanz, indem Sie diese "
+"direkt instanziieren und XML Mapping-Dokumente spezifizieren. Falls die "
+"Mapping-Dateien sich im Klassenpfad befinden, verwenden Sie "
+"<literal>addResource()</literal>:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An alternative way is to specify the mapped class and allow Hibernate to "
+"find the mapping document for you:"
+msgstr ""
+"Eine andere (und manchmal bessere) Weise, die gemappte Klasse zu "
+"spezifizieren ist es, Hibernate das Mapping-Dokument finden zu lassen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will then search for mapping files named <filename>/org/hibernate/"
+"auction/Item.hbm.xml</filename> and <filename>/org/hibernate/auction/Bid.hbm."
+"xml</filename> in the classpath. This approach eliminates any hardcoded "
+"filenames."
+msgstr ""
+"Hibernate sucht dann im Klassenpfad nach Mapping-Dateien mit dem Namen "
+"<literal>/org/hibernate/auction/Item.hbm.xml</literal> und <literal>/org/"
+"hibernate/auction/Bid.hbm.xml</literal>. Diese Vorgehensweise eleminiert "
+"jegliche festcodierten Dateinamen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
+"specify configuration properties. For example:"
+msgstr ""
+"Eine <literal>Configuration</literal> erlaubt es Ihnen auch, "
+"Konfigurationseigenschaften zu bestimmen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. Some "
+"alternative options include:"
+msgstr ""
+"Das ist nicht die einzige Möglichkeit Konfigurationseigenschaften an "
+"Hibernate weiterzugeben. Die verschiedenen Optionen beinhalten:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Pass an instance of <classname>java.util.Properties</classname> to "
+"<literal>Configuration.setProperties()</literal>."
+msgstr ""
+"Geben Sie eine Instanz von <literal>java.util.Properties</literal> an "
+"<literal>Configuration.setProperties()</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Place a file named <filename>hibernate.properties</filename> in a root "
+"directory of the classpath."
+msgstr ""
+"Legen Sie <literal>hibernate.properties</literal> in ein Stammverzeichnis "
+"des Klassenpfads."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Set <literal>System</literal> properties using <literal>java -"
+"Dproperty=value</literal>."
+msgstr ""
+"Stellen Sie die <literal>System</literal>-Properties mittels <literal>java -"
+"Dproperty=value</literal> ein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Include <literal><property></literal> elements in <literal>hibernate."
+"cfg.xml</literal> (this is discussed later)."
+msgstr ""
+"Nehmen Sie <literal><property></literal>-Elemente in "
+"<literal>hibernate.cfg.xml</literal> auf (dies wird später noch näher "
+"erläutert)."
+
+#. Tag: para
+#, 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
+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 ""
+"Die <literal>Configuration</literal> ist als Objekt für den Zeitpunkt des "
+"Startup gedacht und kann nach Erstellung einer <literal>SessionFactory</"
+"literal> verworfen werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr "Erstellung einer SessionFactory"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When all mappings have been parsed by the <classname>org.hibernate.cfg."
+"Configuration</classname>, the application must obtain a factory for "
+"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
+"is intended to be shared by all application threads:"
+msgstr ""
+"Wenn alle Mappings von der <literal>Configuration</literal> analysiert "
+"(\"geparst\") wurden, muss die Anwendung eine Factory für die "
+"<literal>Session</literal>-Instanzen erstellen. Diese Factory wird von allen "
+"Anwendungsthreads geteilt:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does allow your application to instantiate more than one "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
+"if you are using more than one database."
+msgstr ""
+"Mit Hibernate kann Ihre Anwendung mehr als eine <literal>SessionFactory</"
+"literal> instanziieren. Das ist insbesondere dann von Nutzen, wenn Sie mehr "
+"als eine Datenbank verwenden."
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr "JDBC-Verbindungen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is advisable to have the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> create and pool JDBC connections for you. If you take this "
+"approach, opening a <interfacename>org.hibernate.Session</interfacename> is "
+"as simple as:"
+msgstr ""
+"In der Regel soll die <literal>SessionFactory</literal> JDBC-Verbindungen "
+"für Sie erstellen und zusammenfassen. Wenn Sie diese Vorgehensweise wählen, "
+"so ist das Eröffnen einer <literal>Session</literal> ganz einfach:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Once you start a task that requires access to the database, a JDBC "
+"connection will be obtained from the pool."
+msgstr ""
+"Sobald Sie etwas ausführen, dass den Zugriff auf die Datenbank erfordert, "
+"wird eine JDBC-Verbindung aus dem Pool bereitgestellt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Before you can do this, you first need to pass some JDBC connection "
+"properties to Hibernate. All Hibernate property names and semantics are "
+"defined on the class <classname>org.hibernate.cfg.Environment</classname>. "
+"The most important settings for JDBC connection configuration are outlined "
+"below."
+msgstr ""
+"Für diesen Teil der Arbeit müssen einige der Properties der JDBC-Verbindung "
+"an Hibernate weitergegeben werden. Namen und Semantik der Hibernate "
+"Properties sind in der Klasse <literal>org.hibernate.cfg.Environment</"
+"literal> definiert. Nachfolgend werden die wichtigsten Einstellungen für die "
+"Konfiguration der JDBC-Verbindungen erläutert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will obtain and pool connections using <classname>java.sql."
+"DriverManager</classname> if you set the following properties:"
+msgstr ""
+"Hibernate bezieht (und poolt) Verbindungen unter Verwendung von "
+"<literal>java.sql.DriverManager</literal>, wenn Sie die folgenden Properties "
+"einstellen:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr "Hibernate JDBC-Properties"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr "Property-Name"
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr "Zweck"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "hibernate.connection.driver_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "jdbc-Treiberklasse"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr "hibernate.connection.url"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr "jdbc-Treiberklasse"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr "hibernate.connection.username"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "<emphasis>Datenbankbenutzer</emphasis> (optional)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr "hibernate.connection.password"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr "<emphasis>Passwort des Datenbankbenutzers</emphasis> (optional)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "hibernate.connection.pool_size"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "maximale Anzahl gepoolter Verbindungen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate's own connection pooling algorithm is, however, quite rudimentary. "
+"It is intended to help you get started and is <emphasis>not intended for use "
+"in a production system</emphasis>, or even for performance testing. You "
+"should use a third party pool for best performance and stability. Just "
+"replace the <property>hibernate.connection.pool_size</property> property "
+"with connection pool specific settings. This will turn off Hibernate's "
+"internal pool. For example, you might like to use c3p0."
+msgstr ""
+"Hibernates eigener Pooling-Algorithmus für Verbindungen ist recht "
+"rudimentär. Er soll Ihnen beim Start helfen und ist <emphasis>nicht für den "
+"Gebrauch in einem Produktionssystem</emphasis> oder gar für die "
+"Funktionsprüfung vorgesehen. Für die beste Performance und Stabilität "
+"sollten Sie den Pool einer dritten Partei verwenden. Ersetzen Sie einfach "
+"die <literal>hibernate.connection.pool_size</literal>-Property mit den "
+"spezifischen Einstellungen für den Verbindungspool. Dadurch wird Hibernates "
+"interner Pool ausgeschaltet. Sie können zum Beispiel C3P0 verwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"C3P0 is an open source JDBC connection pool distributed along with Hibernate "
+"in the <filename>lib</filename> directory. Hibernate will use its "
+"<classname>org.hibernate.connection.C3P0ConnectionProvider</classname> for "
+"connection pooling if you set <property>hibernate.c3p0.*</property> "
+"properties. If you would like to use Proxool, refer to the packaged "
+"<filename>hibernate.properties</filename> and the Hibernate web site for "
+"more information."
+msgstr ""
+"Bei C3P0 handelt es sich um einen Open Source JDBC-Verbindungspool, der mit "
+"Hibernate im <literal>lib</literal>-Verzeichnis vertrieben wird. Hibernate "
+"verwendet seinen <literal>C3P0ConnectionProvider</literal> für das Poolen "
+"von Verbindungen, wenn Sie die <literal>hibernate.c3p0.*</literal>-"
+"Properties einstellen. Falls Sie Proxool verwenden möchten, dann finden Sie "
+"weitere Informationen im <literal>hibernate.properties</literal>-Paket sowie "
+"auf der Hibernate Website."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following is an example <filename>hibernate.properties</filename> file "
+"for c3p0:"
+msgstr ""
+"Hier sehen Sie das Beispiel einer <literal>hibernate.properties</literal>-"
+"Datei für C3P0:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For use inside an application server, you should almost always configure "
+"Hibernate to obtain connections from an application server "
+"<interfacename>javax.sql.Datasource</interfacename> registered in JNDI. You "
+"will need to set at least one of the following properties:"
+msgstr ""
+"Für den Gebrauch innerhalb eines Applikationsservers sollten Sie Hibernate "
+"fast immer so konfigurieren, dass es Verbindungen von einer "
+"Applikationsserver <literal>Datasource</literal>, die in JNDI registriert "
+"ist, erhält. Sie werden mindestens eine der folgenden Properties einstellen "
+"müssen:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr "Properties der Hibernate Datenquelle (\"Datasource\")"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "hibernate.connection.datasource"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "<emphasis>Datenbankbenutzer</emphasis> (optional)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "hibernate.jndi.url"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr "<emphasis>URL des JNDI-Providers</emphasis> (optional)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "hibernate.jndi.class"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
+"<emphasis>Klasse der JNDI-<literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr "<emphasis>Datenbankbenutzer</emphasis> (optional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr "<emphasis>Passwort des Datenbankbenutzers</emphasis> (optional)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here is an example <filename>hibernate.properties</filename> file for an "
+"application server provided JNDI datasource:"
+msgstr ""
+"Hier sehen Sie das Beispiel einer <literal>hibernate.properties</literal>-"
+"Datei für eine vom Applikationsserver bereitgestellte JNDI-Datenquelle:"
+
+#. 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 ""
+"Von einer JNDI-Datenquelle erhaltene JDBC-Verbindungen nehmen automatisch an "
+"den vom Container verwalteten Transaktionen des Applikationsservers teil."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Arbitrary connection properties can be given by prepending "
+"\"<literal>hibernate.connection</literal>\" to the connection property name. "
+"For example, you can specify a <property>charSet</property> connection "
+"property using <property>hibernate.connection.charSet</property>."
+msgstr ""
+"Beliebige Verbindungs-Properties können durch Voranstellen von "
+"\"<literal>hibernate.connnection</literal>\" vor den Property-Namen gegeben "
+"werden. Sie können zum Beispiel ein <literal>charSet</literal> durch "
+"Verwendung von <literal>hibernate.connection.charSet</literal> bestimmen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can define your own plugin strategy for obtaining JDBC connections by "
+"implementing the interface <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename>, and specifying your custom "
+"implementation via the <property>hibernate.connection.provider_class</"
+"property> property."
+msgstr ""
+"Sie können Ihre eigene Plugin-Strategie für den Erhalt von JDBC-Verbindungen "
+"durch Implementierung des Interface <literal>org.hibernate.connection."
+"ConnectionProvider</literal> definieren. Mit der Einstellung von "
+"<literal>hibernate.connection.provider_class</literal> können Sie auÃerdem "
+"Ihre eigene anwenderdefinierte Implementierung wählen."
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr "Optionale Properties der Konfiguration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are a number of other properties that control the behavior of "
+"Hibernate at runtime. All are optional and have reasonable default values."
+msgstr ""
+"Es gibt noch eine Reihe anderer Properties, die das Verhalten von Hibernate "
+"zur Runtime (Laufzeit) steuern. Alle sind optional und besitzen sinnvolle "
+"Standardwerte."
+
+#. 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."
+msgstr ""
+"<emphasis>Warnung: Einige dieser Properties betreffen ausschlieÃlich die "
+"\"Systemebene\".</emphasis> Properties der Systemebene können nur mittels "
+"<literal>java -Dproperty=value</literal> oder <literal>hibernate.properties</"
+"literal> eingestellt werden. Sie dürfen <emphasis>nicht</emphasis> mittels "
+"der anderen, oben beschriebenen Techniken eingestellt werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr "Konfigurationseigenschaften von Hibernate"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr "hibernate.dialect"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</"
+"classname> which allows Hibernate to generate SQL optimized for a particular "
+"relational database."
+msgstr ""
+"Der Klassenname eines Hibernate <literal>Dialect</literal>, der es Hibernate "
+"ermöglicht, für eine bestimmte relationale Datenbank optimiertes SQL zu "
+"generieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
+"Dialect</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</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 ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr "hibernate.show_sql"
+
+#. Tag: entry
+#, 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 ""
+"Schreiben Sie alle SQL-Anweisungen in die Konsole. Es handelt sich dabei um "
+"eine Alternative für die Einstellung der Protokollkategorie <literal>org."
+"hibernate.SQL</literal> auf <literal>debug</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | "
+"<literal>false</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr "hibernate.format_sql"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr "SQL in Protokoll und Konsole lesbar ausgeben."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr "hibernate.default_schema"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr ""
+"Definieren Sie unbenannte Tabellennamen mit dem gegebenen Schema/"
+"Tabellenraum in generiertem SQL."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr "<emphasis role=\"strong\">eg.</emphasis><literal>SCHEMA_NAME</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "hibernate.default_catalog"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr ""
+"Definieren Sie unbenannte Tabellennamen mit dem vorgegebenen Katalog in der "
+"generierten SQL."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>CATALOG_NAME</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "hibernate.session_factory_name"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.SessionFactory</interfacename> will be "
+"automatically bound to this name in JNDI after it has been created."
+msgstr ""
+"Die <literal>SessionFactory</literal> wird automatisch an diesen Namen in "
+"JNDI gebunden, nachdem sie erstellt wurde."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>jndi/composite/name</"
+"literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "hibernate.max_fetch_depth"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets a maximum \"depth\" for the outer join fetch tree for single-ended "
+"associations (one-to-one, many-to-one). A <literal>0</literal> disables "
+"default outer join fetching."
+msgstr ""
+"Stellen Sie eine maximale \"Tiefe\" für den Outer-Join-Fetching-Baum für "
+"einendige (\"single-ended\") Assoziationen (\"One-to-One\", \"Many-to-One"
+"\"). Eine <literal>0</literal> deaktiviert das standardmäÃige Outer-Join-"
+"Fetching."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
+"<literal>0</literal> and <literal>3</literal>"
+msgstr ""
+"<emphasis role=\"strong\">z.B.</emphasis> empfohlene Werte zwischen "
+"<literal>0</literal> und <literal>3</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "hibernate.default_batch_fetch_size"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr ""
+"Stellen Sie eine StandardgröÃe für den Hibernate Stapelabruf (sog. \"Batch-"
+"Fetching\") von Assoziationen ein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
+msgstr ""
+"<emphasis role=\"strong\">z.B.</emphasis> empfohlene Werte <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "hibernate.default_entity_mode"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>"
+msgstr ""
+"Wählen Sie einen Standardmodus für die Entity-Repräsentation für alle aus "
+"dieser <literal>SessionFactory</literal> geöffneten Sessions."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+msgstr ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr "hibernate.order_updates"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Forces Hibernate to order SQL updates by the primary key value of the items "
+"being updated. This will result in fewer transaction deadlocks in highly "
+"concurrent systems."
+msgstr ""
+"Zwingt Hibernate dazu, SQL-Updates vom primären Kernbegriff der "
+"aktualisierten Posten anzufordern. Dies hat eine Verringerung der Anzahl von "
+"Transaktionssperren in simultan laufenden Systemen zur Folge."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "hibernate.generate_statistics"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+"Falls aktiviert, so sammelt Hibernate Statistiken, die bei der "
+"Feinabstimmung der Performance von Nutzen sind. "
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "hibernate.use_identifer_rollback"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
+msgstr ""
+"Falls aktiviert, so werden die generierten Bezeichner-Properties auf die "
+"Standardwerte zurückgesetzt, wenn Objekte gelöscht werden."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "hibernate.use_sql_comments"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If turned on, Hibernate will generate comments inside the SQL, for easier "
+"debugging, defaults to <literal>false</literal>."
+msgstr ""
+"Falls eingeschaltet, generiert Hibernate Kommentare innerhalb der SQL, für "
+"eine vereinfachte Fehlersuche. Die Standardeinstellung lautet "
+"<literal>false</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr "Hibernate JDBC- und Connection-Properties"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "hibernate.jdbc.fetch_size"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"Ein Wert ungleich Null bestimmt die Anzahl der JDBC-Datensätze, den so "
+"genannten \"Fetch Size\" (ruft <literal>Statement.setFetchSize()</literal> "
+"auf)."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "hibernate.jdbc.batch_size"
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr ""
+"Ein Wert von ungleich Null aktiviert die Verwendung von JDBC2-"
+"Stapelaktualisierungen (sog. \"Batch Updates\") durch Hibernate."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
+"<literal>5</literal> and <literal>30</literal>"
+msgstr ""
+"<emphasis role=\"strong\">z.B.</emphasis> empfohlene Werte zwischen "
+"<literal>5</literal> und <literal>30</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "hibernate.jdbc.batch_versioned_data"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Set this property to <literal>true</literal> if your JDBC driver returns "
+"correct row counts from <literal>executeBatch()</literal>. Iit is usually "
+"safe to turn this option on. Hibernate will then use batched DML for "
+"automatically versioned data. Defaults to <literal>false</literal>."
+msgstr ""
+"Setzen Sie diese Property auf <literal>true</literal>, falls Ihr JDBC-"
+"Treiber korrekte Reihenzählungen von <literal>executeBatch()</literal> "
+"zurückschickt (es ist in der Regel sicher, diese Option zu aktivieren). "
+"Hibernate verwendet dann gestapelte DML für automatisch versionierte Daten. "
+"Die Standardeinstellung lautet hier <literal>false</literal>."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "hibernate.jdbc.factory_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Most applications will not need this configuration property."
+msgstr ""
+"Wählen Sie einen anwenderdefinierten <literal>Batcher</literal>. Die meisten "
+"Anwendungen benötigen diese Konfigurationseigenschaft nicht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>classname.of.Batcher</"
+"literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "hibernate.jdbc.use_scrollable_resultset"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
+"only necessary when using user-supplied JDBC connections. Hibernate uses "
+"connection metadata otherwise."
+msgstr ""
+"Aktiviert den Gebrauch von JDBC2 scrollbaren Ergebnissätzen (sog. "
+"\"scrollable resultsets\") durch Hibernate. Diese Property ist nur bei der "
+"Verwendung von Benutzer-gelieferten JDBC-Verbindungen notwendig, Hibernate "
+"verwendet Metadaten der Verbindung(en) anders."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "hibernate.jdbc.use_streams_for_binary"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Use streams when writing/reading <literal>binary</literal> or "
+"<literal>serializable</literal> types to/from JDBC. <emphasis>*system-level "
+"property*</emphasis>"
+msgstr ""
+"Verwendet Datenströme (\"Streams\") beim Schreiben/Lesen von "
+"<literal>binary</literal> oder <literal>serializable</literal> Typen in/aus "
+"JDBC (Property der Systemebene)."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "hibernate.jdbc.use_get_generated_keys"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> "
+"to retrieve natively generated keys after insert. Requires JDBC3+ driver and "
+"JRE1.4+, set to false if your driver has problems with the Hibernate "
+"identifier generators. By default, it tries to determine the driver "
+"capabilities using connection metadata."
+msgstr ""
+"Aktiviert den Gebrauch von JDBC3 <literal>PreparedStatement.getGeneratedKeys"
+"()</literal> um nach Einfügung nativ generierte Schlüssel abzurufen. "
+"Erfordert einen JDBC3+ Treiber und JRE1.4+. Setzen Sie es auf \"false\", "
+"falls Ihr Treiber Probleme mit den Hibernate Bezeichner-Generatoren hat. In "
+"der Standardeinstellung wird versucht unter Verwendung der Verbindungs-"
+"Metadaten die Treiberfähigkeiten zu bestimmen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
+msgstr "<emphasis role=\"strong\">eg.</emphasis><literal>true|false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "hibernate.connection.provider_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a custom <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> which provides JDBC connections to "
+"Hibernate."
+msgstr ""
+"Der Klassenname eines anwenderdefinierten <literal>ConnectionProvider</"
+"literal> der Hibernate JDBC-Verbindungen bereitstellt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>classname.of."
+"ConnectionProvider</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "hibernate.connection.isolation"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets the JDBC transaction isolation level. Check <interfacename>java.sql."
+"Connection</interfacename> for meaningful values, but note that most "
+"databases do not support all isolation levels and some define additional, "
+"non-standard isolations."
+msgstr ""
+"Stellen Sie die Isolationsebene für JDBC-Transaktion ein. Ãberprüfen Sie "
+"<literal>java.sql.Connection</literal> nach sinnvollen Werten, aber beachten "
+"Sie, dass die meisten Datenbanken nicht alle Isolationsebenen unterstützen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
+msgstr "<emphasis role=\"strong\">eg.</emphasis><literal>1, 2, 4, 8</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "hibernate.connection.autocommit"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr ""
+"Aktiviert \"autocommit\" für JDBC gepoolte Verbindungen (nicht empfohlen)."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "hibernate.connection.release_mode"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Specifies when Hibernate should release JDBC connections. By default, a JDBC "
+"connection is held until the session is explicitly closed or disconnected. "
+"For an application server JTA datasource, use <literal>after_statement</"
+"literal> to aggressively release connections after every JDBC call. For a "
+"non-JTA connection, it often makes sense to release the connection at the "
+"end of each transaction, by using <literal>after_transaction</literal>. "
+"<literal>auto</literal> will choose <literal>after_statement</literal> for "
+"the JTA and CMT transaction strategies and <literal>after_transaction</"
+"literal> for the JDBC transaction strategy."
+msgstr ""
+"Legen Sie fest, wann Hibernate JDBC-Verbindungen freigibt. In der "
+"Standardeinstellung wird eine JDBC-Verbindung gehalten bis die Session "
+"ausdrücklich geschlossen oder die Verbindung getrennt wird. Für eine "
+"Applikationsserver JTA-Datenquelle sollten Sie <literal>after_statement</"
+"literal> verwenden, um Verbindungen nach jedem JDBC-Aufruf aktiv "
+"freizugeben. Für eine nicht-JTA-Verbindung ist es oft sinnvoll, die "
+"Verbindung am Ende jeder Transaktion mittels <literal>after_transaction</"
+"literal> freizugeben. <literal>auto</literal> wählt "
+"<literal>after_statement</literal> für die JTA- und CMT-"
+"Transaktionsstrategien und <literal>after_transaction</literal> für die JDBC-"
+"Transaktionsstrategie."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) "
+"| <literal>on_close</literal> | <literal>after_transaction</literal> | "
+"<literal>after_statement</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>auto</literal> (default) | "
+"<literal>on_close</literal> | <literal>after_transaction</literal> | "
+"<literal>after_statement</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This setting only affects <literal>Session</literal>s returned from "
+"<literal>SessionFactory.openSession</literal>. For <literal>Session</"
+"literal>s obtained through <literal>SessionFactory.getCurrentSession</"
+"literal>, the <literal>CurrentSessionContext</literal> implementation "
+"configured for use controls the connection release mode for those "
+"<literal>Session</literal>s. See <xref linkend=\"architecture-current-session"
+"\" />"
+msgstr ""
+"Bitte beachten Sie, dass diese Einstellung nur <literal>Session</literal>s "
+"betrifft, die von der <literal>SessionFactory.openSession</literal> "
+"zurückgeführt werden. Für durch <literal>SessionFactory.getCurrentSession</"
+"literal> erhaltene <literal>Session</literal>s steuert die für den Gebrauch "
+"konfigurierte <literal>CurrentSessionContext</literal>-Implementierung den "
+"Freigabemodus dieser <literal>Session</literal>s. Siehe <xref linkend="
+"\"architecture-current-session\"/>."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+msgstr "hibernate.connection.<propertyName>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Pass the JDBC property <emphasis><propertyName></emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
+"Geben Sie die JDBC-Property <literal>propertyName</literal> an den "
+"<literal>DriverManager.getConnection()</literal>."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr ""
+"wie System-Properties mit <literal>-D</literal><emphasis><property></"
+"emphasis>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Pass the property <emphasis><propertyName></emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
+"Geben Sie die Property <literal>propertyName</literal> an die JNDI "
+"<literal>InitialContextFactory</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr "Hibernate Cache-Properties"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "hibernate.cache.provider_class"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr ""
+"Der Klassenname eines anwenderdefinierten <literal>CacheProvider</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>classname.of.CacheProvider</"
+"literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "hibernate.cache.use_minimal_puts"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Optimizes second-level cache operation to minimize writes, at the cost of "
+"more frequent reads. This setting is most useful for clustered caches and, "
+"in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr ""
+"Optimieren Sie den Betrieb des Cachespeichers auf der zweiten Ebene, um "
+"\"Writes\" auf Kosten häufigerer \"Reads\" zu minimieren. Diese Einstellung "
+"ist vor allem für geclusterte Caches sinnvoll und ist bei Hibernate3 "
+"standardmäÃig für geclusterte Cache-Implementierungen aktiviert."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "hibernate.cache.use_query_cache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables the query cache. Individual queries still have to be set cachable."
+msgstr ""
+"Aktivieren Sie das Anfragen-Cache, Einzelanfragen müssen nach wie vor als "
+"speicherbar eingestellt sein."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "hibernate.cache.use_second_level_cache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Can be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal><cache></literal> "
+"mapping."
+msgstr ""
+"Kann verwendet werden, um ein Cache der zweiten Ebene vollständig zu "
+"deaktivieren, das für Klassen mit einem <literal><cache></literal>-"
+"Mapping standardmäÃig aktiviert ist."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "hibernate.cache.query_cache_factory"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <literal>QueryCache</literal> interface, defaults "
+"to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+"Der Klassenname eines anwenderdefinierten <literal>QueryCache</literal>-"
+"Interface, Standard ist das eingebaute <literal>StandardQueryCache</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>classname.of.QueryCache</"
+"literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "hibernate.cache.region_prefix"
+
+#. Tag: entry
+#, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr "Ein für Cache-Bereiche der zweiten Ebene zu verwendender Präfix."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+msgstr "<emphasis role=\"strong\">eg.</emphasis><literal>prefix</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "hibernate.cache.use_structured_entries"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
+msgstr ""
+"Bringt Hibernate dazu, Daten im Cachespeicher der zweiten Ebene in einer für "
+"den Benutzer freundlicheren Art zu speichern."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr "Hibernate Transaktions-Properties"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "hibernate.transaction.factory_class"
+
+#. Tag: entry
+#, 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 ""
+"Der Klassenname einer <literal>TransactionFactory</literal>, der mit der "
+"Hibernate <literal>Transaction</literal> API "
+"(Anwenderprogrammierschnittstelle) zu verwenden ist (standardmäÃig "
+"<literal>JDBCTransactionFactory</literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>classname.of."
+"TransactionFactory</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "jta.UserTransaction"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
+"JTA <literal>UserTransaction</literal> from the application server."
+msgstr ""
+"Ein von der <literal>JTATransactionFactory</literal> zum Erhalt der JTA "
+"<literal>UserTransaction</literal> vom Applikationsserver verwendeter JNDI-"
+"Name."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr "hibernate.transaction.manager_lookup_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a <literal>TransactionManagerLookup</literal>. It is "
+"required when JVM-level caching is enabled or when using hilo generator in a "
+"JTA environment."
+msgstr ""
+"Der Klassenname eines <literal>TransactionManagerLookup</literal> - "
+"erforderlich, wenn das Caching auf JVM-Ebene aktiviert ist oder wenn in "
+"einer JTA-Umgebung ein Hilo-Generator verwendet wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>classname.of."
+"TransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr "hibernate.transaction.flush_before_completion"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, the session will be automatically flushed during the before "
+"completion phase of the transaction. Built-in and automatic session context "
+"management is preferred, see <xref linkend=\"architecture-current-session\" /"
+">."
+msgstr ""
+"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\"/>."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr "hibernate.transaction.auto_close_session"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, the session will be automatically closed during the after "
+"completion phase of the transaction. Built-in and automatic session context "
+"management is preferred, see <xref linkend=\"architecture-current-session\" /"
+">."
+msgstr ""
+"Falls aktiviert, wird die Session während der Nachabschlussphase automatisch "
+"geschlossen. Eingebautes, automatisches Session-Kontextmanagement wird "
+"bevorzugt, siehe <xref linkend=\"architecture-current-session\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr "Verschiedene Properties"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr "hibernate.current_session_context_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Supply a custom strategy for the scoping of the \"current\" "
+"<literal>Session</literal>. See <xref linkend=\"architecture-current-session"
+"\" /> for more information about the built-in strategies."
+msgstr ""
+"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\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "hibernate.query.factory_class"
+
+#. Tag: entry
+#, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr "Wählt die Implemetierung des HQL-Parsers (Analysealgorithmus)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "hibernate.query.substitutions"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Is used to map from tokens in Hibernate queries to SQL tokens (tokens might "
+"be function or literal names, for example)."
+msgstr ""
+"Mapping von \"Tokens\" in Hibernate-Anfragen zu SQL-Tokens (Tokens können z."
+"B. Funktions- oder Literalnamen sein)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "hibernate.hbm2ddl.auto"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Automatically validates or exports schema DDL to the database when the "
+"<literal>SessionFactory</literal> is created. With <literal>create-drop</"
+"literal>, the database schema will be dropped when the "
+"<literal>SessionFactory</literal> is closed explicitly."
+msgstr ""
+"Automatische Validierung oder Export der Schema-DDL zur Datenbank, wenn die "
+"<literal>SessionFactory</literal> erstellt wird. Mit <literal>create-drop</"
+"literal> wird das Datenbankschema eingestellt, wenn die "
+"<literal>SessionFactory</literal> explizit geschlossen wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr "hibernate.cglib.use_reflection_optimizer"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables the use of CGLIB instead of runtime reflection (System-level "
+"property). Reflection can sometimes be useful when troubleshooting. "
+"Hibernate always requires CGLIB even if you turn off the optimizer. You "
+"cannot set this property in <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+"Aktiviert die Benutzung von CGLIB anstelle von \"Runtime-Reflection"
+"\" (Property der Systemebene). Reflection kann bei der Fehlersuche von "
+"Nutzen sein. Bitte beachten Sie, dass Hibernate immer CGLIB benötigt, selbst "
+"wenn der Optimierer ausgeschaltet ist. Diese Property kann nicht in "
+"<literal>hibernate.cfg.xml</literal> eingestellt werden."
+
+#. Tag: title
+#, no-c-format
+msgid "SQL Dialects"
+msgstr "SQL-Dialekte"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Always set the <literal>hibernate.dialect</literal> property to the correct "
+"<literal>org.hibernate.dialect.Dialect</literal> subclass for your database. "
+"If you specify a dialect, Hibernate will use sensible defaults for some of "
+"the other properties listed above. This means that you will not have to "
+"specify them manually."
+msgstr ""
+"Die <literal>hibernate.dialect</literal>-Property sollte stets auf die "
+"richtige <literal>org.hibernate.dialect.Dialect</literal>-Subklasse für Ihre "
+"Datenbank eingestellt sein. Falls Sie einen Dialekt festlegen, so verwendet "
+"Hibernate vernünftige Standardeinstellungen für einige der anderen oben "
+"aufgeführten Properties, so dass Ihnen deren manuelle Einstellung erspart "
+"bleibt."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr "Hibernate SQL-Dialekte (<literal>hibernate.dialect</literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr "RDBMS"
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialekt"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "org.hibernate.dialect.DB2Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr "DB2 AS/400"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "org.hibernate.dialect.DB2400Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr "DB2 OS390"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "org.hibernate.dialect.DB2390Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "org.hibernate.dialect.PostgreSQLDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr "MySQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "org.hibernate.dialect.MySQLDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr "MySQL mit InnoDB"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr "MySQL mit MyISAM"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr "Oracle (alle Versionen)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "org.hibernate.dialect.OracleDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 9i"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "org.hibernate.dialect.OracleDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 10g"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "org.hibernate.dialect.OracleDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr "Sybase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "org.hibernate.dialect.SybaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr "Sybase Anywhere"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr "Microsoft SQL-Server"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "org.hibernate.dialect.SQLServerDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr "SAP DB"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "org.hibernate.dialect.SAPDBDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr "Informix"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "org.hibernate.dialect.InformixDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr "HypersonicSQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "org.hibernate.dialect.HSQLDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr "Ingres"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "org.hibernate.dialect.IngresDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr "Progress"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "org.hibernate.dialect.ProgressDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr "Mckoi SQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "org.hibernate.dialect.MckoiDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr "Interbase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "org.hibernate.dialect.InterbaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr "Pointbase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "org.hibernate.dialect.PointbaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr "FrontBase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "org.hibernate.dialect.FrontbaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr "Firebird"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "org.hibernate.dialect.FirebirdDialect"
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr "\"Outer-Join-Fetching\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your database supports ANSI, Oracle or Sybase style outer joins, "
+"<emphasis>outer join fetching</emphasis> will often increase performance by "
+"limiting the number of round trips to and from the database. This is, "
+"however, at the cost of possibly more work performed by the database itself. "
+"Outer join fetching allows a whole graph of objects connected by many-to-"
+"one, one-to-many, many-to-many and one-to-one associations to be retrieved "
+"in a single SQL <literal>SELECT</literal>."
+msgstr ""
+"Falls Ihre Datenbank \"Outer-Joins\" (äuÃere Verbünde) nach Art von ANSI, "
+"Oracle oder Sybase unterstützt, so wird so genanntes <emphasis>Outer Join "
+"Fetching</emphasis> oftmals die Performance verbessern, indem es die Anzahl "
+"der Hin- und Rücksendungen zu und von der Datenbank reduziert (wobei dann "
+"möglicherweise von der Datenbank selbst mehr Arbeit übernommen wird). "
+"\"Outer-Join-Fetching\" erlaubt es, einen kompletten Graph von Objekten "
+"mittels \"Many-to-One\"-, \"One-to-Many\"-, \"Many-to-Many\"- und \"One-to-"
+"One\"-Assoziationen in einer einzelnen SQL <literal>SELECT</literal> "
+"aufzurufen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Outer join fetching can be disabled <emphasis>globally</emphasis> by setting "
+"the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</"
+"literal>. A setting of <literal>1</literal> or higher enables outer join "
+"fetching for one-to-one and many-to-one associations that have been mapped "
+"with <literal>fetch=\"join\"</literal>."
+msgstr ""
+"\"Outer-Join-Fetching\" kann <emphasis>allgemeingültig</emphasis> "
+"deaktiviert werden, wenn man die Property <literal>hibernate."
+"max_fetch_depth</literal> auf <literal>0</literal> setzt. Eine Einstellung "
+"von <literal>1</literal> oder mehr aktiviert Outer-Join-Fetching für mit "
+"<literal>fetch=\"join\"</literal> gemappte \"One-to-One\"- und \"Many-to-One"
+"\"-Assoziationen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr ""
+"Weitere Informationen finden Sie unter <xref linkend=\"performance-fetching"
+"\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr "Binäre Datenströme "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Oracle limits the size of <literal>byte</literal> arrays that can be passed "
+"to and/or from its JDBC driver. If you wish to use large instances of "
+"<literal>binary</literal> or <literal>serializable</literal> type, you "
+"should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
+"<emphasis>This is a system-level setting only.</emphasis>"
+msgstr ""
+"Oracle begrenzt die GröÃe von <literal>byte</literal>-Arrays, die zu/von "
+"seinem JDBC-Treiber geleitet werden können. Falls Sie groÃe Instanzen des "
+"<literal>binary</literal> oder <literal>serializable</literal>-Typs "
+"verwenden wollen, sollten Sie <literal>hibernate.jdbc."
+"use_streams_for_binary</literal> aktivieren. <emphasis>Diese Einstellung "
+"gilt ausschlieÃlich für die Systemebene.</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr "Zweite Ebene und Anfragen-Cache"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The properties prefixed by <literal>hibernate.cache</literal> allow you to "
+"use a process or cluster scoped second-level cache system with Hibernate. "
+"See the <xref linkend=\"performance-cache\" /> for more information."
+msgstr ""
+"Die Properties mit dem Präfix <literal>hibernate.cache</literal> erlauben "
+"die Verwendung eines prozess- oder clusterbegrenzten Cache-Systems der "
+"zweiten Ebene. Weitere Informationen dazu finden Sie unter <xref linkend="
+"\"performance-cache\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr "\"Query Language Substitution\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can define new Hibernate query tokens using <literal>hibernate.query."
+"substitutions</literal>. For example:"
+msgstr ""
+"Sie können neue Hibernate Anfrage-\"Tokens\" mittels <literal>hibernate."
+"query.substitutions</literal> definieren. Zum Beispiel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This would cause the tokens <literal>true</literal> and <literal>false</"
+"literal> to be translated to integer literals in the generated SQL."
+msgstr ""
+"würde eine Ãbersetzung der Tokens <literal>true</literal> und "
+"<literal>false</literal> in ganzzahlige Literale in der generierten SQL mit "
+"sich bringen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr ""
+"ermöglicht Ihnen die Umbenennung der SQL <literal>LOWER</literal>-Funktion."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr "Die Hibernate Statistik"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you enable <literal>hibernate.generate_statistics</literal>, Hibernate "
+"exposes a number of metrics that are useful when tuning a running system via "
+"<literal>SessionFactory.getStatistics()</literal>. Hibernate can even be "
+"configured to expose these statistics via JMX. Read the Javadoc of the "
+"interfaces in <literal>org.hibernate.stats</literal> for more information."
+msgstr ""
+"Ist <literal>hibernate.generate_statistics</literal> aktiviert, so stellt "
+"Hibernate mittels <literal>SessionFactory.getStatistics()</literal> eine "
+"Reihe von Metriken aus, die bei der Abstimmung eines laufenden Systems "
+"hilfreich sind. Hibernate kann sogar so konfiguriert werden, dass es via JMX "
+"diese Statistik darstellt. Weitere Informationen dazu finden Sie im Javadoc "
+"der Interfaces <literal>org.hibernate.stats</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr "Protokollierung"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you familiarize yourself with Hibernate's log "
+"messages. A lot of work has been put into making the Hibernate log as "
+"detailed as possible, without making it unreadable. It is an essential "
+"troubleshooting device. The most interesting log categories are the "
+"following:"
+msgstr ""
+"Wir empfehlen Ihnen dringend, sich mit den Protokollnachrichten von "
+"Hibernate vertraut zu machen. Es wurde viel Arbeit investiert, um das "
+"Protokoll von Hibernate möglichst detailliert zu gestalten und gleichzeitig "
+"dessen Lesbarkeit zu erhalten. Es ist eine bedeutende Hilfe bei der "
+"Fehlerbehebung. Die wichtigsten Protokollkategorien lauten:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr "Die Protokollkategorien von Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr "Kategorie"
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr "Funktion"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "org.hibernate.SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr "Protokollierung aller SQL DML-Anweisungen bei deren Ausführung"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "org.hibernate.type"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr "Protokollierung aller JDBC-Parameter"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr "org.hibernate.tool.hbm2ddl"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr "Protokollierung aller SQL DDL-Anweisungen bei deren Ausführung"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "org.hibernate.pretty"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log the state of all entities (max 20 entities) associated with the session "
+"at flush time"
+msgstr ""
+"Protokollierung des Status aller Entities (max. 20 Entities) die zum "
+"Räumungzeitpunkt mit der Session assoziiert werden."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "org.hibernate.cache"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr "Protokollierung aller Cache-Vorgänge der zweiten Ebene"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr "org.hibernate.transaction"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr "Protokollierung von transaktionsbezogenen Vorgänge"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "org.hibernate.jdbc"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr "Protokollierung sämtlicher JDBC-Ressourcen-Erfassungen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr "org.hibernate.hql.ast.AST"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr "Protokollierung von HQL und SQL ASTs während Abfragen-Parsing"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "org.hibernate.secure"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr "Protokollierung aller JAAS-Authentifizierungsanfragen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "JNDI-gebundene SessionFactory"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Log everything. This is a lot of information but it is useful for "
+"troubleshooting"
+msgstr ""
+"Vollständige Protokollierung (sehr viele Informationen, aber sehr hilfreich "
+"bei der Fehlerbehebung)"
+
+#. 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 ""
+"Bei der Entwicklung von Anwendungen mit Hibernate sollten Sie fast "
+"ausschlieÃlich mit der aktivierten <literal>debug</literal>-Einstellung für "
+"die Kategorie <literal>org.hibernate.SQL</literal> arbeiten oder alternativ "
+"mit der aktivierten Property <literal>hibernate.show_sql</literal>."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. 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 ""
+"Das Interface <literal>org.hibernate.cfg.NamingStrategy</literal> ermöglicht "
+"es Ihnen einen Namensgebungsstandard (sog. \"naming standard\") für "
+"Datenbankobjekte und Schema-Elemente zu bestimmen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can provide rules for automatically generating database identifiers from "
+"Java identifiers or for processing \"logical\" column and table names given "
+"in the mapping file into \"physical\" table and column names. This feature "
+"helps reduce the verbosity of the mapping document, eliminating repetitive "
+"noise (<literal>TBL_</literal> prefixes, for example). The default strategy "
+"used by Hibernate is quite minimal."
+msgstr ""
+"Sie können Regeln für die automatische Generierung von Datenbank-Bezeichnern "
+"aus Java-Bezeichnern oder für die Bearbeitung von gegebenen \"logischen\" "
+"Spalten- und Tabellennamen der Mapping-Datei in \"physische\" Tabellen- und "
+"Spaltennamen entwerfen. Dieses Feature kann bei der Reduktion der Verbosität "
+"des Mapping-Dokuments helfen, indem es die unnötige, sich wiederholende "
+"Ausgabe von Daten eleminiert (zum Beispiel <literal>TBL_</literal> Präfixe). "
+"Die von Hibernate verwendete Standardstrategie ist recht minimal."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can specify a different strategy by calling <literal>Configuration."
+"setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+"Mit dem Aufruf <literal>Configuration.setNamingStrategy()</literal> können "
+"Sie eine andere Strategie festlegen, ehe Sie Mappings hinzufügen:"
+
+#. 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 ""
+"Bei <literal>org.hibernate.cfg.ImprovedNamingStrategy</literal> handelt es "
+"sich um eine eingebaute Strategie, die beim Startpunkt einiger Anwendungen "
+"von Nutzen sein kann."
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr "XML-Konfigurationsdatei"
+
+#. 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 ""
+"Eine andere Konfigurationsmöglichkeit ist die Spezifizierung einer "
+"vollständigen Konfigurationsdatei mit dem Namen <literal>hibernate.cfg.xml</"
+"literal>. Diese Datei kann als Ersatz für die <literal>hibernate.properties</"
+"literal>-Datei dienen oder - falls beide vorhanden sind - Properties auÃer "
+"Kraft setzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The XML configuration file is by default expected to be in the root of your "
+"<literal>CLASSPATH</literal>. Here is an example:"
+msgstr ""
+"Die XML-Konfigurationsdatei ist in der Standardeinstellung in der Regel im "
+"Stammverzeichnis Ihres <literal>CLASSPATH</literal>. Nachfolgend sehen Sie "
+"ein Beispiel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The advantage of this approach is the externalization of the mapping file "
+"names to configuration. The <literal>hibernate.cfg.xml</literal> is also "
+"more convenient once you have to tune the Hibernate cache. It is your choice "
+"to use either <literal>hibernate.properties</literal> or <literal>hibernate."
+"cfg.xml</literal>. Both are equivalent, except for the above mentioned "
+"benefits of using the XML syntax."
+msgstr ""
+"Wie Sie sehen, liegt der Vorteil dieser Herangehensweise in der "
+"Externalisierung der Mapping-Dateinamen zu Konfiguration. AuÃerdem ist "
+"<literal>hibernate.cfg.xml</literal> praktisch für die Abstimmung des "
+"Hibernate Cachespeichers. Bitte beachten Sie, dass Sie die Auswahl zwischen "
+"der Verwendung von <literal>hibernate.properties</literal> oder "
+"<literal>hibernate.cfg.xml</literal> haben. Diese sind abgesehen vom "
+"bereitserwähnten Vorteil durch die Benutzung der XML-Syntax gleichwertig."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr ""
+"Mit der XML-Konfiguration wird der Start von Hibernate dann ganz einfach mit"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr "Die Wahl einer anderen XML-Konfigurationsdatei erfolgt mittels"
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr "Integration des J2EE-Applikationsservers"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr ""
+"Hibernate besitzt die folgenden Intergrationspunkte für die J2EE "
+"Infrastruktur:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC "
+"connections managed by the container and provided through JNDI. Usually, a "
+"JTA compatible <literal>TransactionManager</literal> and a "
+"<literal>ResourceManager</literal> take care of transaction management "
+"(CMT), especially distributed transaction handling across several "
+"datasources. You can also demarcate transaction boundaries programmatically "
+"(BMT), or you might want to use the optional Hibernate <literal>Transaction</"
+"literal> API for this to keep your code portable."
+msgstr ""
+"<emphasis>Containerverwaltete Datenquellen</emphasis>: Hibernate kann vom "
+"Container verwaltete und von JNDI bereitgestellte JDBC-Verbindungen "
+"verwenden. In der Regel besorgen ein JTA-kompatibler "
+"<literal>TransactionManager</literal> und ein <literal>ResourceManager</"
+"literal> das Transaktionsmanagement (CMT), insbesondere die verteilte "
+"Transaktionsbearbeitung über mehrere Datenquellen hinweg. Natürlich können "
+"Sie auch befehlsorientiert die Transaktionsbereiche abgrenzen (BMT) oder das "
+"optionale Hibernate <literal>Transaction</literal>-API hierfür verwenden, um "
+"Ihren Code übertragbar zu halten."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
+"<literal>SessionFactory</literal> to JNDI after startup."
+msgstr ""
+"<emphasis>Automatisches JNDI-Binding</emphasis>: Hibernate kann seine "
+"<literal>SessionFactory</literal> nach dem Startup an JNDI binden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</"
+"literal> can be automatically bound to the scope of JTA transactions. Simply "
+"lookup the <literal>SessionFactory</literal> from JNDI and get the current "
+"<literal>Session</literal>. Let Hibernate manage flushing and closing the "
+"<literal>Session</literal> when your JTA transaction completes. Transaction "
+"demarcation is either declarative (CMT) or programmatic (BMT/"
+"UserTransaction)."
+msgstr ""
+"<emphasis>JTA-Session-Binding:</emphasis> Die Hibernate <literal>Session</"
+"literal> kann automatisch an den Gültigkeitsbereich von JTA-Transaktionen "
+"gebunden werden. Suchen Sie einfach die <literal>SessionFactory</literal> "
+"aus JNDI heraus, und holen Sie die aktuelle <literal>Session</literal>. "
+"Hibernate übernimmt die Räumung und SchlieÃung der <literal>Session</"
+"literal>, wenn Ihre JTA-Transaktion vollständig ist. Die "
+"Transaktionsabgrenzung ist entweder deklarativ (CMT) oder befehlsorientiert "
+"(BMT/UserTransaction)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>JMX deployment:</emphasis> if you have a JMX capable application "
+"server (e.g. JBoss AS), you can choose to deploy Hibernate as a managed "
+"MBean. This saves you the one line startup code to build your "
+"<literal>SessionFactory</literal> from a <literal>Configuration</literal>. "
+"The container will startup your <literal>HibernateService</literal> and also "
+"take care of service dependencies (datasource has to be available before "
+"Hibernate starts, etc)."
+msgstr ""
+"<emphasis>JMX-Deployment:</emphasis> Falls Sie einen JMX-fähigen "
+"Applikationsserver besitzen (z.B. JBoss AS), können Sie Hibernate als "
+"gemanagtes MBean ausführen. Das erspart Ihnen den einzeiligen Startup-Code, "
+"um Ihre <literal>SessionFactory</literal> aus einer <literal>Configuration</"
+"literal> zu bauen. Der Container startet Ihren <literal>HibernateService</"
+"literal> und kümmert sich im Idealfall auch um abhängige Dienste "
+"(Datenquelle muss vor dem Hibernate Start verfügbar sein usw.). "
+
+#. 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 ""
+"Je nach Ihrer Umgebung müssen Sie möglicherweise die Konfigurationsoption "
+"<literal>hibernate.connection.aggressive_release</literal> auf \"true\" "
+"setzen, falls Ihr Server \"Connection Containment\"-Ausnahmen (d.h. "
+"Verbindungseinschränkungen) anzeigt."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr "Konfiguration der Transaktionsstrategie"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The Hibernate <literal>Session</literal> API is independent of any "
+"transaction demarcation system in your architecture. If you let Hibernate "
+"use JDBC directly through a connection pool, you can begin and end your "
+"transactions by calling the JDBC API. If you run in a J2EE application "
+"server, you might want to use bean-managed transactions and call the JTA API "
+"and <literal>UserTransaction</literal> when needed."
+msgstr ""
+"Das Hibernate <literal>Session</literal> API ist unabhängig vom "
+"Transaktionsabgrenzungssystem Ihrer Architektur. Wenn Hibernate durch den "
+"Verbindungspool JDBC direkt verwendet, können Sie Transaktionen mit Aufruf "
+"des JDBC-API starten und beenden. Falls Sie einen J2EE-Applikationsserver "
+"verwenden, ist es möglicherweise sinnvoll, von Beans gemanagte Transaktionen "
+"zu verwenden und das JTA-API und <literal>UserTransaction</literal> bei "
+"Bedarf aufzurufen."
+
+#. 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 ""
+"Um Ihren Code zwischen diesen beiden (und anderen) Umgebungen übertragbar zu "
+"halten, empfehlen wir das optionale Hibernate <literal>Transaction</literal>-"
+"API, welches das zu Grunde liegende System wrappt und verbirgt. Sie müssen "
+"eine Factory-Klasse für <literal>Transaction</literal>-Instanzen bestimmen, "
+"indem Sie die Hibernate Konfigurationseigenschaft <literal>hibernate."
+"transaction.factory_class</literal> einstellen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr "Es existieren drei Standard-Auswahlmöglichkeiten (eingebaut):"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "org.hibernate.transaction.JDBCTransactionFactory"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr "delegiert an die Datenbank (JDBC) Transaktionen (default)"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "org.hibernate.transaction.JTATransactionFactory"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"delegates to container-managed transactions if an existing transaction is "
+"underway in this context (for example, EJB session bean method). Otherwise, "
+"a new transaction is started and bean-managed transactions are used."
+msgstr ""
+"delegiert an die containerverwaltete Transaktion, falls eine bestehende "
+"Transaktion in diesem Kontext läuft (z.B. EJB Session-Bean-Methode). "
+"Andernfalls wird eine neue Transaktion gestartet und von einem Bean "
+"gemanagte Transaktionen werden verwendet."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "org.hibernate.transaction.CMTTransactionFactory"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr "delegiert an containerverwaltete JTA-Transaktionen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also define your own transaction strategies (for a CORBA transaction "
+"service, for example)."
+msgstr ""
+"Sie können auch Ihre eigenen Transaktionsstrategien definieren (z.B. für "
+"einen CORBA-Transaktionsdienst)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Some features in Hibernate (i.e., the second level cache, Contextual "
+"Sessions with JTA, etc.) require access to the JTA "
+"<literal>TransactionManager</literal> in a managed environment. In an "
+"application server, since J2EE does not standardize a single mechanism, you "
+"have to specify how Hibernate should obtain a reference to the "
+"<literal>TransactionManager</literal>:"
+msgstr ""
+"Einige Features in Hibernate (etwa das Cache der zweiten Ebene, "
+"kontextbezogene Sessions mit JTA usw.) erfordern Zugriff auf den JTA "
+"<literal>TransactionManager</literal> in einer gemanagten Umgebung. In einem "
+"Applikationsserver müssen Sie festlegen, wie Hibernate einen Verweis an den "
+"<literal>TransactionManager</literal> erhält, da J2EE keinen einzelnen "
+"Mechanismus standardisiert:"
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr "JTA-TransactionManagers"
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr "Transaction-Factory"
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr "Applikationsserver"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr "JBoss"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr "Weblogic"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr "WebSphere"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr "WebSphere 6"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr "Orion"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr "Resin"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr "JOTM"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr "JOnAS"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr "JRun4"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr "Borland ES"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr "JNDI-gebundene SessionFactory"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the "
+"lookup function of the factory and create new <literal>Session</literal>s. "
+"This is not, however, related to a JNDI bound <literal>Datasource</literal>; "
+"both simply use the same registry."
+msgstr ""
+"Eine JNDI-gebundene Hibernate <literal>SessionFactory</literal> kann die "
+"Suche nach der Factory und die Erstellung neuer <literal>Session</literal>s "
+"vereinfachen. Bitte beachten Sie, dass dies nichts mit einer JNDI-gebundenen "
+"<literal>Datasource</literal> zu tun hat, die beiden verwenden lediglich "
+"diesselbe Registry!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you wish to have the <literal>SessionFactory</literal> bound to a JNDI "
+"namespace, specify a name (e.g. <literal>java:hibernate/SessionFactory</"
+"literal>) using the property <literal>hibernate.session_factory_name</"
+"literal>. If this property is omitted, the <literal>SessionFactory</literal> "
+"will not be bound to JNDI. This is especially useful in environments with a "
+"read-only JNDI default implementation (in Tomcat, for example)."
+msgstr ""
+"Falls Sie möchten, dass die <literal>SessionFactory</literal> an einen JNDI-"
+"Namensraum gebunden wird, legen Sie unter Verwendung der Property "
+"<literal>hibernate.session_factory_name</literal> einen Namen fest (z.B. "
+"<literal>java:hibernate/SessionFactory</literal>). Falls diese Property "
+"weggelassen wird, so wird die <literal>SessionFactory</literal> nicht an "
+"JNDI gebunden. (Das ist insbesondere in Umgebungen mit einer "
+"schreibgeschützten \"read-only\" JNDI-Standardimplementierung - wie etwa "
+"Tomcat - hilfreich)."
+
+#. 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 ""
+"Beim Binden der <literal>SessionFactory</literal> an JNDI, wird Hibernate "
+"die Werte von <literal>hibernate.jndi.url</literal>, <literal>hibernate.jndi."
+"class</literal> verwenden, um einen Anfangskontext zu initiieren. Werden "
+"diese nicht festgelegt, so wird der Standard <literal>InitialContext</"
+"literal> verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will automatically place the <literal>SessionFactory</literal> in "
+"JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means "
+"you will have this call in some startup code, or utility class in your "
+"application, unless you use JMX deployment with the "
+"<literal>HibernateService</literal> (this is discussed later in greater "
+"detail)."
+msgstr ""
+"Hibernate wird die <literal>SessionFactory</literal> in JNDI platzieren, "
+"nachdem Sie <literal>cfg.buildSessionFactory()</literal> aufrufen. Das "
+"bedeutet, dass Sie diesen Aufruf zumindest in einem Startup-Code (oder einer "
+"Dienstprogrammklasse) Ihrer Anwendung haben, auÃer Sie verwenden JMX-"
+"Deployment mit <literal>HibernateService</literal> (wird später erläutert)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other "
+"class, you can obtain the <literal>SessionFactory</literal> using a JNDI "
+"lookup."
+msgstr ""
+"Falls Sie eine JNDI <literal>SessionFactory</literal> verwenden, kann ein "
+"EJB oder eine andere Klasse mittels eines JNDI-Suchlaufs die "
+"<literal>SessionFactory</literal> erhalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you bind the <literal>SessionFactory</literal> to "
+"JNDI in a managed environment and use a <literal>static</literal> singleton "
+"otherwise. To shield your application code from these details, we also "
+"recommend to hide the actual lookup code for a <literal>SessionFactory</"
+"literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory"
+"()</literal>. Note that such a class is also a convenient way to startup "
+"Hibernate—see chapter 1."
+msgstr ""
+"Wir empfehlen, dass Sie die <literal>SessionFactory</literal> in einer "
+"gemanagten Umgebung an JNDI binden und andernfalls einen <literal>static</"
+"literal> Singleton verwenden. Um Ihren Applikationscode vor diesen Details "
+"abzuschirmen, empfehlen wir auÃerdem, dass Sie den tatsächlichen Code des "
+"Suchlaufs (\"Lookup-Code\") für eine <literal>SessionFactory</literal> in "
+"einer Helferklasse wie etwa <literal>HibernateUtil.getSessionFactory()</"
+"literal> verbergen. Bitte beachten Sie auch, dass eine solche Klasse "
+"auÃerdem eine praktische Weise ist, Hibernate - zu starten. Siehe dazu "
+"Kapitel 1."
+
+#. Tag: title
+#, no-c-format
+msgid "Current Session context management with JTA"
+msgstr "Aktuelles Management des Sessionkontexts mit JTA"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The easiest way to handle <literal>Sessions</literal> and transactions is "
+"Hibernate's automatic \"current\" <literal>Session</literal> management. For "
+"a discussion of contextual sessions see <xref linkend=\"architecture-current-"
+"session\" />. Using the <literal>\"jta\"</literal> session context, if there "
+"is no Hibernate <literal>Session</literal> associated with the current JTA "
+"transaction, one will be started and associated with that JTA transaction "
+"the first time you call <literal>sessionFactory.getCurrentSession()</"
+"literal>. The <literal>Session</literal>s retrieved via "
+"<literal>getCurrentSession()</literal> in the<literal>\"jta\"</literal> "
+"context are set to automatically flush before the transaction completes, "
+"close after the transaction completes, and aggressively release JDBC "
+"connections after each statement. This allows the <literal>Session</"
+"literal>s to be managed by the life cycle of the JTA transaction to which it "
+"is associated, keeping user code clean of such management concerns. Your "
+"code can either use JTA programmatically through <literal>UserTransaction</"
+"literal>, or (recommended for portable code) use the Hibernate "
+"<literal>Transaction</literal> API to set transaction boundaries. If you run "
+"in an EJB container, declarative transaction demarcation with CMT is "
+"preferred."
+msgstr ""
+"Die einfachste Art <literal>Session</literal>s und Transaktionen zu "
+"bearbeiten ist mit Hibernates automatischem Management der \"aktuellen\" "
+"<literal>Session</literal>. Siehe dazu auch die Erläuterungen unter <xref "
+"linkend=\"architecture-current-session\"/>. Unter Verwendung des <literal>"
+"\"jta\"</literal> Sessionkontexts wird, falls keine Hibernate "
+"<literal>Session</literal> mit der aktuellen JTA-Transaktion assoziiert "
+"wird, beim erstmaligen Aufruf von <literal>sessionFactory.getCurrentSession()"
+"</literal>, eine gestartet. Die mittels <literal>getCurrentSession()</"
+"literal> im <literal>\"jta\"</literal>-Kontext abgerufenen <literal>Session</"
+"literal>s werden automatisch geräumt ehe die Transaktion beendet wird, "
+"geschlossen nachdem die Transaktion beendet ist und aktive JDBC-Verbindungen "
+"nach jeder Anweisung freigegeben. Das ermöglicht es den <literal>Session</"
+"literal>s durch den Lebenszyklus der mit ihr assoziierten JTA-Transaktion "
+"verwaltet zu werden, so dass der Benutzercode nicht mit Management-Inhalten "
+"belastet wird. Ihr Code kann JTA entweder befehlsorientiert durch "
+"<literal>UserTransaction</literal> oder (für übertragbaren Code empfohlen) "
+"das Hibernate <literal>Transaction</literal>-API verwenden, um die "
+"Transaktionsbereiche zu setzen. Falls Sie einen EJB-Container betreiben, so "
+"ist die deklarative Transaktionsabgrenzung mit CMT zu bevorzugen."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr "JMX-Deployment"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The line <literal>cfg.buildSessionFactory()</literal> still has to be "
+"executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You "
+"can do this either in a <literal>static</literal> initializer block, like "
+"the one in <literal>HibernateUtil</literal>, or you can deploy Hibernate as "
+"a <emphasis>managed service</emphasis>."
+msgstr ""
+"Die Zeile <literal>cfg.buildSessionFactory()</literal> muss nach wie vor "
+"irgendwo ausgeführt werden, um die <literal>SessionFactory</literal> in JNDI "
+"zu bringen. Dies kann entweder in einem <literal>static</literal> "
+"Initialisierungsprogrammsblock (wie denjenigem in <literal>HibernateUtil</"
+"literal>) oder durch Deployment von Hibernate als <emphasis>managed service</"
+"emphasis> erfolgen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</"
+"literal> for deployment on an application server with JMX capabilities, such "
+"as JBoss AS. The actual deployment and configuration is vendor-specific. "
+"Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
+msgstr ""
+"Hibernate wird mit einem <literal>org.hibernate.jmx.HibernateService</"
+"literal> für das Deployment in einem JMX-fähigen Applikationsserver wie etwa "
+"JBoss AS geliefert. Deployment und Konfiguration sind dabei "
+"anbieterspezifisch. Nachfolgend sehen Sie ein Beispiel für <literal>jboss-"
+"service.xml</literal> for JBoss 4.0.x:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This file is deployed in a directory called <literal>META-INF</literal> and "
+"packaged in a JAR file with the extension <literal>.sar</literal> (service "
+"archive). You also need to package Hibernate, its required third-party "
+"libraries, your compiled persistent classes, as well as your mapping files "
+"in the same archive. Your enterprise beans (usually session beans) can be "
+"kept in their own JAR file, but you can include this EJB JAR file in the "
+"main service archive to get a single (hot-)deployable unit. Consult the "
+"JBoss AS documentation for more information about JMX service and EJB "
+"deployment."
+msgstr ""
+"Diese Datei wird in einem Verzeichnis namens <literal>META-INF</literal> "
+"ausgeführt und in einer JAR-Datei mit der Erweiterung <literal>.sar</"
+"literal> (Dienstarchiv). Sie müssen auÃerdem Hibernate, dessen erforderliche "
+"Bibliotheken Dritter Parteien, Ihre kompilierten persistenten Klassen sowie "
+"Ihre Mapping-Dateien im selben Archiv verpacken. Ihre Enterprise-Beans (in "
+"der Regel Session-Beans) können sich in deren eigener JAR-Datei befinden, "
+"jedoch muss diese EJB JAR-Datei im Hauptdienstarchiv sein, um eine einzelne "
+"\"(hot-)deploybare\" Einheit zu erhalten. Weitere Informationen zum JMX-"
+"Dienst und EJB-Deployment finden Sie in der JBoss AS Dokumentation."
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");]]>"
+#~ msgstr ""
+#~ "Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);"
+
+#, fuzzy
+#~ 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 ""
+#~ "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\");"
+
+#, fuzzy
+#~ msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+#~ msgstr "SessionFactory sessions = cfg.buildSessionFactory();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
+#~ ">"
+#~ msgstr "Session session = sessions.openSession(); // open a new Session"
+
+#~ msgid "database user"
+#~ msgstr "Datenbankbenutzer"
+
+#~ msgid "database user password"
+#~ msgstr "Datenbankbenutzer-Passwort"
+
+#, fuzzy
+#~ 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 ""
+#~ "hibernate.connection.driver_class = org.postgresql.Driver\n"
+#~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+#~ "hibernate.connection.username = myuser\n"
+#~ "hibernate.connection.password = secret\n"
+#~ "hibernate.c3p0.min_size=5\n"
+#~ "hibernate.c3p0.max_size=20\n"
+#~ "hibernate.c3p0.timeout=1800\n"
+#~ "hibernate.c3p0.max_statements=50\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect"
+
+#~ msgid "datasource JNDI name"
+#~ msgstr "JNDI-Name der Datenquelle"
+
+#, fuzzy
+#~ 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 ""
+#~ "hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+#~ "hibernate.transaction.factory_class = \\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ "hibernate.transaction.manager_lookup_class = \\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect"
+
+#~ msgid "<entry>DB2</entry>"
+#~ msgstr "<entry>DB2</entry>"
+
+#~ msgid "hibernate.query.substitutions true=1, false=0"
+#~ msgstr "hibernate.query.substitutions true=1, false=0"
+
+#~ msgid "hibernate.query.substitutions toLowercase=LOWER"
+#~ msgstr "hibernate.query.substitutions toLowercase=LOWER"
+
+#~ msgid "org.hibernate"
+#~ msgstr "org.hibernate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
+#~ "buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "SessionFactory sf = new Configuration().configure().buildSessionFactory();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/events.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/events.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/events.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,843 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr "Interzeptoren und Ereignisse"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Es ist oftmals von Nutzen, wenn die Anwendung auf bestimmte, innerhalb "
+"Hibernates ablaufende Ereignisse (\"Events\") reagiert. Es ermöglicht die "
+"Implementierung bestimmter Arten auswählbarer Funktionalitäten sowie eine "
+"Erweiterung der Funktionalität von Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors"
+msgstr "Interzeptoren"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das <literal>Interceptor</literal>-Interface bietet die Möglichkeit von "
+"Callbacks der Session an die Anwendung, wodurch letztere die Properties "
+"eines persistenten Objekts vorweg prüfen und/oder verändern kann, ehe dieses "
+"gespeichert, aktualisiert, gelöscht oder geladen wird. Eine mögliche "
+"Anwendung hierfür ist etwa das Auditing von Informationen. Zum Beispiel "
+"setzt der folgende <literal>Interceptor</literal> automatisch "
+"<literal>createTimestamp</literal>, wenn ein <literal>Auditable</literal> "
+"erstellt wird und aktualisiert die <literal>lastUpdateTimestamp</literal>-"
+"Property, wenn ein <literal>Auditable</literal> aktualisiert wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can either implement <literal>Interceptor</literal> directly or extend "
+"<literal>EmptyInterceptor</literal>."
+msgstr ""
+"Sie können <literal>Interceptor</literal> entweder direkt implementieren "
+"oder (besser) <literal>EmptyInterceptor</literal> erweitern."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"Es existieren zwei Arten von Interzeptoren: Für die <literal>Session</"
+"literal> zuständige und für die <literal>SessionFactory</literal> zuständige."
+
+#. Tag: para
+#, 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 ""
+"Ein für die <literal>Session</literal> zuständiger Interzeptor wird beim "
+"Ãffnen einer Session unter Verwendung einer der überlasteten SessionFactory."
+"openSession()-Methoden spezifiziert, die einen <literal>Interceptor</"
+"literal> akzeptieren."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Ein für die <literal>SessionFactory</literal> zuständiger Interzeptor wird "
+"mit dem <literal>Configuration</literal>-Objekt vor dem Bau der "
+"<literal>SessionFactory</literal> erfasst. In diesem Fall wird der "
+"gelieferte Interzeptor bei allen von dieser <literal>SessionFactory</"
+"literal> geöffneten Sessions angewendet, auÃer bei einer Session wird "
+"explizit der zu verwendende Interzeptor genannt. Für die "
+"<literal>SessionFactory</literal> zuständige Interzeptoren müssen "
+"threadsicher sein und dürfen keinen Session-spezifischen Status speichern, "
+"da mehrere Sessions diesen Interzeptor (möglicherweise) gleichzeitig "
+"verwenden."
+
+#. Tag: title
+#, no-c-format
+msgid "Event system"
+msgstr "Ereignissystem"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Falls Sie auf bestimmte Ereignisse in Ihrer Persistenzschicht reagieren "
+"müssen, können Sie die Hibernate3 <emphasis>Ereignis</emphasis>-Architektur "
+"verwenden. Das Ereignissystem kann zusätzlich oder aber als Ersatz für "
+"Interzeptoren verwendet werden."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Im Wesentlichen korrelieren alle Methoden des <literal>Session</literal>-"
+"Interface mit einem Ereignis. Es gibt ein <literal>LoadEvent</literal>, ein "
+"<literal>FlushEvent</literal>, usw. (in der XML-Konfigurationsdatei DTD oder "
+"dem <literal>org.hibernate.event</literal>-Paket finden Sie die vollständige "
+"Liste aller definierten Ereignistypen). Wenn eine Anfrage einer dieser "
+"Methoden erfolgt, so generiert die Hibernate <literal>Session</literal> ein "
+"zugehöriges Ereignis und gibt es an die für diesen Typ konfigurierten "
+"\"Event-Listener\" weiter. Diese Listener implementieren dieselbe "
+"Bearbeitung, die diese Methoden stets hervorbringen. Es steht Ihnen jedoch "
+"frei, ein angepasstes Listener-Interface zu implementieren (d.h. "
+"<literal>LoadEvent</literal> wird durch die erfasste Implementierung des "
+"<literal>LoadEventListener</literal>-Interface bearbeitet), in welchem Fall "
+"die Implementierung für die Bearbeitung sämtlicher durch die "
+"<literal>Session</literal> erfolgender <literal>load()</literal>-Anfragen "
+"verantwortlich wäre."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die Listener sollten effektiv als Singletons angesehen werden, was bedeutet, "
+"dass sie zwischen Anfragen geteilt werden und daher keinen Status als "
+"Instanzvariable speichern sollten."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Ein angepasster Listener sollte das passende Interface für das Ereignis, das "
+"bearbeitet werden und/oder einer der Bedienungsgrundklassen erweitern soll, "
+"implementieren (oder sogar die ausgezeichneten standardmäÃigen Ereignis-"
+"Listener, die von Hibernate verwendet und für diesen Zweck als nicht-final "
+"deklariert sind). Angepasste Listener können entweder programmatisch durch "
+"das <literal>Configuration</literal>-Objekt oder in der Hibernate "
+"Konfigurations-XML (deklarative Konfiguration durch die Properties-Datei "
+"wird nicht unterstützt) erfasst werden. Nachfolgend sehen Sie ein Beispiel "
+"für einen angepassten \"Load-Event-Listener\":"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"Sie benötigen auÃerdem einen Konfigurationseintrag, der Hibernate mitteilt, "
+"dass der Listener zusätzlich zum Standard-Listener verwendet werden soll:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr "Statt dessen können Sie dies programmatisch erfassen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal><listener/></literal> elements, each "
+"reference will result in a separate instance of that class. If you need to "
+"share listener instances between listener types you must use the "
+"programmatic registration approach."
+msgstr ""
+"Deklarativ erfasste Listener können keine Instanzen teilen. Falls derselbe "
+"Klassenname in mehreren <literal><listener/></literal>-Elementen "
+"verwendet wird, so wird jeder Verweis in einer separaten Instanz dieser "
+"Klasse resultieren. Falls Sie die Möglichkeit des Teilens von Listener-"
+"Instanzen zwischen Listener-Typen benötigen, müssen Sie die programmatische "
+"Erfassung nutzen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Warum jedoch ein Interface implementieren und während der Konfiguration den "
+"spezifischen Typ definieren? Nun, eine Listener-Implementierung könnte "
+"mehrere Event-Listener Interfaces implementieren. Definiert man den Typ "
+"zusätzlich während der Erfassung, ist es einfacher angepasste Listener "
+"während der Konfiguration an- und auszuschalten."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr "Deklarative Sicherheit in Hibernate "
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Für gewöhnlich wird die deklarative Sicherheit in Hibernate Anwendungen "
+"durch eine Fassadenschicht geregelt. Jetzt ermöglicht Hibernate3 die "
+"Genehmigung bestimmter Vorgänge via JACC sowie die Authorisierung via JAAS. "
+"Es handelt sich dabei um eine optionale Funktionalität, die auf der Ereignis-"
+"Architektur (sog. \"Event-Architecture\") aufgebaut ist."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"Zunächst einmal müssen die betreffenden Event-Listener konfiguriert werden, "
+"damit die Verwendung der JAAS Authorisierung aktiviert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
+"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
+"></event></literal> when there is exactly one listener for a "
+"particular event type."
+msgstr ""
+"Beachten Sie, dass <literal><listener type=\"...\" class=\"...\"/></"
+"literal> lediglich ein Kürzel für <literal><event type=\"...\"><"
+"listener class=\"...\"/></event></literal> ist, wenn genau ein "
+"Listener für einen bestimmten Ereignistyp existiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
+"permissions to roles:"
+msgstr ""
+"AnschlieÃend, und immer noch in <literal>hibernate.cfg.xml</literal>, binden "
+"Sie die Genehmigungen (sog. \"permissions\") an die Rollen:"
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr "Die Rollennamen sind die von Ihrem JACC-Anbieter verstandenen Rollen."
+
+#, fuzzy
+#~ 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 ""
+#~ "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,\n"
+#~ " \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#~ msgstr "Session session = sf.openSession( new AuditInterceptor() );"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+#~ msgstr "new Configuration().setInterceptor( new AuditInterceptor() );"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+#~ msgstr ""
+#~ "<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,read"
+#~ "\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_mappings.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_mappings.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_mappings.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1556 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr "Beispiel: Verschiedene Mappings"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr "Diese Kapitel erläutern komplexere Assoziations-Mappings."
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr "Arbeitgeber/Arbeitnehmer"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das folgende Modell der Beziehung zwischen <literal>Employer</literal> "
+"(Arbeitgeber) und <literal>Employee</literal> (Arbeitnehmer) verwendet eine "
+"tatsächliche Entity-Klasse (<literal>Employment</literal>) zur "
+"Repräsentation der Assoziation. Das geschieht, weil für die beiden selben "
+"beteiligten Parteien mehr als ein Beschäftigungszeitraum existieren kann. "
+"Komponenten werden als Modell für Geldwerte und Arbeitnehmernamen benutzt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr "Nachfolgend sehen Sie ein mögliches Mapping-Dokument:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr ""
+"Und hier sehen Sie das durch <literal>SchemaExport</literal> generierte "
+"Tabellenschema."
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr "Autor/Werk"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Betrachten Sie das folgende Modell der Beziehungen zwischen <literal>Work</"
+"literal>, <literal>Author</literal> und <literal>Person</literal>. Wir "
+"repräsentieren die Beziehung zwischen <literal>Work</literal> und "
+"<literal>Author</literal> als eine \"Many-to-Many\"-Assoziation. Wir "
+"entscheiden uns dafür, die Beziehung zwischen <literal>Author</literal> und "
+"<literal>Person</literal> als \"One-to-One\"-Assoziation zu wählen. Eine "
+"weitere Möglichkeit wäre die Erweiterung von <literal>Person</literal> durch "
+"<literal>Author</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr ""
+"Das folgende Mapping-Dokument repräsentiert diese Beziehungen auf korrekte "
+"Weise:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are four tables in this mapping: <literal>works</literal>, "
+"<literal>authors</literal> and <literal>persons</literal> hold work, author "
+"and person data respectively. <literal>author_work</literal> is an "
+"association table linking authors to works. Here is the table schema, as "
+"generated by <literal>SchemaExport</literal>:"
+msgstr ""
+"Dieses Mapping enthält vier Tabellen. <literal>works</literal>, "
+"<literal>authors</literal> und <literal>persons</literal> enthalten Daten zu "
+"Werk, Autor und Person. Bei <literal>author_work</literal> handelt es sich "
+"um eine Assoziationstabelle, die Autoren mit Werken verbindet. Nachfolgend "
+"sehen Sie das durch <literal>SchemaExport</literal> generierte "
+"Tabellenschema."
+
+#. Tag: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr "Kunde/Bestellung/Produkt"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Betrachten wir nun ein Modell der Beziehungen zwischen <literal>Customer</"
+"literal>, <literal>Order</literal> und <literal>LineItem</literal> sowie "
+"<literal>Product</literal>. Zwischen <literal>Customer</literal> und "
+"<literal>Order</literal> existiert eine \"One-to-Many\"-Assoziation, wie "
+"aber sollen <literal>Order</literal> / <literal>LineItem</literal> / "
+"<literal>Product</literal> repräsentiert werden? Wir entscheiden uns hier "
+"für das Mappen von <literal>LineItem</literal> als eine Assoziationsklasse, "
+"die die \"Many-to-Many\"-Assoziation zwischen <literal>Order</literal> und "
+"<literal>Product</literal> repräsentiert. In Hibernate wird dies als "
+"\"Composite Element\" (d.h. als \"zusammengesetztes Element\") bezeichnet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The mapping document will look like this:"
+msgstr "Das Mapping-Dokument:"
+
+#. Tag: para
+#, 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 ""
+"<literal>customers</literal>, <literal>orders</literal>, "
+"<literal>line_items</literal> und <literal>products</literal> enthalten "
+"Kunde, Bestellung, Bestellungsbelegzeile und Produktdaten. "
+"<literal>line_items</literal> fungiert auch als Assoziationstabelle, die "
+"Bestellungen mit Produkten verbindet."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr "Verschiedene Beispiele von Mappings"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Diese Beispiele wurden der Hibernate Testfolge entnommen. Sie finden dort "
+"auch viele weitere nützliche Beispiele. Schauen Sie einfach in den "
+"<literal>test</literal>-Ordner der Hibernate Distribution."
+
+#. Tag: title
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr "Typisierte \"One-to-One\"-Assoziation"
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr "Beispiel für einen zusammengesetzten Schlüssel"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr ""
+"\"Many-to-Many\" mit geteiltem Attribut des zusammengesetzten Schlüssels"
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr "Inhaltsbasierte Diskriminierung"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr "Assoziationen bei wechselnden Schlüsseln"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_parentchild.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_parentchild.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_parentchild.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,895 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr "Beispiel: \"Parent/Child\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One of the first things that new users want to do with Hibernate is to model "
+"a parent/child type relationship. There are two different approaches to "
+"this. The most convenient approach, especially for new users, is to model "
+"both <literal>Parent</literal> and <literal>Child</literal> as entity "
+"classes with a <literal><one-to-many></literal> association from "
+"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
+"approach is to declare the <literal>Child</literal> as a <literal><"
+"composite-element></literal>. The default semantics of a one-to-many "
+"association in Hibernate are much less close to the usual semantics of a "
+"parent/child relationship than those of a composite element mapping. We will "
+"explain how to use a <emphasis>bidirectional one-to-many association with "
+"cascades</emphasis> to model a parent/child relationship efficiently and "
+"elegantly."
+msgstr ""
+"Eine der ersten Sachen, die neue Benutzer mit Hibernate versuchen, ist es "
+"eine Beziehung nach \"Parent\"/\"Child\"-Typ zu bilden. Es gibt dabei zwei "
+"verschiedene Herangehensweisen. Aus verschiedenen Gründen empfiehlt es sich "
+"gerade für neue Benutzer sowohl <literal>Parent</literal> als auch "
+"<literal>Child</literal> als Entity-Klassen mit einer <literal><one-to-"
+"many></literal>-Assoziation von <literal>Parent</literal> zu "
+"<literal>Child</literal> zu modellieren. (Alternativ kann das "
+"<literal>Child</literal> als ein <literal><composite-element></"
+"literal> deklariert werden). Nun zeigt sich, dass die Standard-Semantik "
+"einer \"One-to-Many\"-Assoziation (in Hibernate) der üblichen Semantik einer "
+"\"Parent\" / \"Child\"-Beziehung weniger ähnlich als die eines "
+"zusammengesetzten Element-Mappings ist. Wir werden erläutern, wie eine "
+"<emphasis>bidirektionale \"One-to-Many\"-Assoziation mit Weitergabe</"
+"emphasis> zu einer \"Parent\" / \"Child\"-Beziehung effizient und elegant "
+"modelliert wird. Es ist überhaupt nicht schwierig!"
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr "Eine Anmerkung zu Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate collections are considered to be a logical part of their owning "
+"entity and not of the contained entities. Be aware that this is a critical "
+"distinction that has the following consequences:"
+msgstr ""
+"Hibernate Collections werden als logischer Teil der sie besitzenden Entity "
+"angesehen - niemals der enthaltenen Entities. Dies ist eine kritische "
+"Unterscheidung! Es hat die folgenden Konsequenzen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When you remove/add an object from/to a collection, the version number of "
+"the collection owner is incremented."
+msgstr ""
+"Wird ein Objekt aus einer Collection entfernt oder zu einer Collection "
+"hinzugefügt, so erhöht sich die Versionsnummer des Collection-Besitzers."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If an object that was removed from a collection is an instance of a value "
+"type (e.g. a composite element), that object will cease to be persistent and "
+"its state will be completely removed from the database. Likewise, adding a "
+"value type instance to the collection will cause its state to be immediately "
+"persistent."
+msgstr ""
+"Falls es sich bei einem aus einer Collection entfernten Objekt um eine "
+"Instanz mit Wertetyp handelt (z.B. ein zusammengesetzes Element), so ist "
+"dieses Objekt nicht länger persistent und der Status wird vollständig aus "
+"der Datenbank entfernt. Ebenso wird eine Wertetyp-Instanz automatisch "
+"persistiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Conversely, if an entity is removed from a collection (a one-to-many or many-"
+"to-many association), it will not be deleted by default. This behavior is "
+"completely consistent; a change to the internal state of another entity "
+"should not cause the associated entity to vanish. Likewise, adding an entity "
+"to a collection does not cause that entity to become persistent, by default."
+msgstr ""
+"Wird eine Entity hingegen aus einer Collection entfernt (eine \"One-to-Many"
+"\" oder \"Many-to-Many\"-Assoziation), so wird es in der Standardeinstellung "
+"nicht gelöscht. Dieses Verhalten ist völlig konsistent - eine Ãnderung am "
+"internen Status einer anderen Entity sollte nicht dazu führen, dass die "
+"zugehörige Entity verschwindet! Ebenso führt das Hinzufügen einer Entity "
+"nicht standardmäÃig zu deren Persistierung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Adding an entity to a collection, by default, merely creates a link between "
+"the two entities. Removing the entity will remove the link. This is "
+"appropriate for all sorts of cases. However, it is not appropriate in the "
+"case of a parent/child relationship. In this case, the life of the child is "
+"bound to the life cycle of the parent."
+msgstr ""
+"Statt dessen wird in der Standardeinstellung durch das Hinzufügen einer "
+"Entity zu einer Collection eine Verbindung zwischen den zwei Entities "
+"hergestellt, bei deren Entfernung hingegen die Verbindung gelöst. Das passt "
+"für alle Arten von Fällen sehr gut. Lediglich im Falle einer \"Parent\"/"
+"\"Child\"- Beziehung ist es überhaupt nicht passend, da der Lebenszyklus des "
+"\"Child\" an den des \"Parent\" gebunden ist."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr "Bidirektionales \"One-to-Many\""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we start with a simple <literal><one-to-many></literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+"Gehen wir einmal davon aus, wir wollten mit einer einfachen <literal><one-"
+"to-many></literal>-Assoziation von <literal>Parent</literal> zu "
+"<literal>Child</literal> beginnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "If we were to execute the following code:"
+msgstr "Würden wir den folgenden Code ausführen"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr "so würde Hibernate zwei SQL-Anweisungen herausgeben:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+"ein <literal>INSERT</literal>, um den Datensatz für <literal>c</literal> zu "
+"erstellen"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
+"<literal>c</literal>"
+msgstr ""
+"ein <literal>UPDATE</literal>, um die Verbindung von <literal>p</literal> "
+"zu<literal>c</literal> zu erstellen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is not only inefficient, but also violates any <literal>NOT NULL</"
+"literal> constraint on the <literal>parent_id</literal> column. You can fix "
+"the nullability constraint violation by specifying <literal>not-null=\"true"
+"\"</literal> in the collection mapping:"
+msgstr ""
+"Das ist nicht nur ineffizient, sondern verletzt auch jedwede <literal>NOT "
+"NULL</literal>-Bedingung an der <literal>parent_id</literal>-Spalte. Die "
+"Verletzung der \"Nullability\"-Bedingung lässt sich durch das Setzen von "
+"<literal>not-null=\"true\"</literal> im Collection-Mapping lösen:"
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr "Dieses ist jedoch nicht die empfohlene Lösung:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The underlying cause of this behavior is that the link (the foreign key "
+"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
+"literal> is not considered part of the state of the <literal>Child</literal> "
+"object and is therefore not created in the <literal>INSERT</literal>. The "
+"solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+"Die zu Grunde liegende Ursache für dieses Verhalten besteht darin, dass das "
+"Link (der Fremdschlüssel <literal>parent_id</literal>) von <literal>p</"
+"literal> zu <literal>c</literal> nicht als Teil des Status des "
+"<literal>Child</literal>-Objekts angesehen wird und daher nicht im "
+"<literal>INSERT</literal> erstellt werden kann. Die Lösung besteht also "
+"darin, das Link zu einem Teil des <literal>Child</literal>-Mappings zu "
+"machen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You also need to add the <literal>parent</literal> property to the "
+"<literal>Child</literal> class."
+msgstr ""
+"(Wir werden auÃerdem die <literal>parent</literal>-Property zur "
+"<literal>Child</literal>-Klasse hinzufügen müssen)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now that the <literal>Child</literal> entity is managing the state of the "
+"link, we tell the collection not to update the link. We use the "
+"<literal>inverse</literal> attribute to do this:"
+msgstr ""
+"Da nun die <literal>Child</literal>-Entity den Status der Verbindung managt, "
+"muss die Collection die Verbindung nicht mehr aktualisieren. Um der "
+"Collection dies mitzuteilen verwenden wir das <literal>inverse</literal>-"
+"Attribut."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr ""
+"Der folgende Code würde verwendet, um ein neues <literal>Child</literal> "
+"hinzuzufügen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr "Und jetzt würde nur ein SQL <literal>INSERT</literal> herausgegeben!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You could also create an <literal>addChild()</literal> method of "
+"<literal>Parent</literal>."
+msgstr ""
+"Um das Ganze etwas kompakter zu gestalten würden wir eine <literal>addChild()"
+"</literal>-Method von <literal>Parent</literal> erstellen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The code to add a <literal>Child</literal> looks like this:"
+msgstr ""
+"Nun sieht der Code für das Hinzufügen eines <literal>Child</literal> wie "
+"folgt aus"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Cascading life cycle"
+msgstr "Lebenszyklus der Weitergabe (\"Cascading\")"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can address the frustrations of the explicit call to <literal>save()</"
+"literal> by using cascades."
+msgstr ""
+"Der explizite Aufruf <literal>save()</literal> ist nach wie vor nicht ideal. "
+"Wir gehen dieses Problem mittels Kaskade (sog. \"Cascades\") an."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This simplifies the code above to:"
+msgstr "Dies vereinfacht den vorherigen Code zu"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Similarly, we do not need to iterate over the children when saving or "
+"deleting a <literal>Parent</literal>. The following removes <literal>p</"
+"literal> and all its children from the database."
+msgstr ""
+"Auch müssen wir es bei den untergeordneten Objekten (\"children\") nicht "
+"wiederholen, wenn wir einen <literal>Parent</literal> speichern oder "
+"löschen. Nachfolgendes entfernt <literal>p</literal> und sämtliche von "
+"dessen untergeordneten Objekten aus der Datenbank."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "However, the following code:"
+msgstr "Dieser Code jedoch"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"will not remove <literal>c</literal> from the database. In this case, it "
+"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
+"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
+"</literal> the <literal>Child</literal>."
+msgstr ""
+"entfernt <literal>c</literal> nicht aus der Datenbank; lediglich die "
+"Verbindung zu <literal>p</literal> wird gelöst (und eine Verletzung der "
+"<literal>NOT NULL</literal>-Bedingung erfolgt in diesem Fall). Sie müssen "
+"für das <literal>Child</literal> explizit <literal>delete()</literal> "
+"festlegen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In our case, a <literal>Child</literal> cannot exist without its parent. So "
+"if we remove a <literal>Child</literal> from the collection, we do want it "
+"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
+"\"</literal>."
+msgstr ""
+"In unserem Fall kann jedoch ein <literal>Child</literal> ohne den "
+"übergeordneten \"Parent\" eigentlich nicht existieren. Wenn wir also ein "
+"<literal>Child</literal> aus der Collection entfernen, so wollen wir dieses "
+"tatsächlich löschen. Dafür müssen wir <literal>cascade=\"all-delete-orphan"
+"\"</literal> verwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though the collection mapping specifies <literal>inverse=\"true\"</"
+"literal>, cascades are still processed by iterating the collection elements. "
+"If you need an object be saved, deleted or updated by cascade, you must add "
+"it to the collection. It is not enough to simply call <literal>setParent()</"
+"literal>."
+msgstr ""
+"Hinweis: Selbst wenn das Collection-Mapping <literal>inverse=\"true\"</"
+"literal> spezifiziert, werden Weitergaben nach wie vor durch Wiederholung "
+"der Collection-Elemente bearbeitet. Falls Sie also ein Objekt durch "
+"Weitergabe speichern, löschen oder aktualisieren möchten, müssen Sie es der "
+"Collection hinzufügen. Ein einfacher Aufruf von <literal>setParent()</"
+"literal> reicht in diesem Fall nicht aus."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr "Kaskaden und ungespeicherter Wert"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
+"literal>, made some changes in a UI action and wanted to persist these "
+"changes in a new session by calling <literal>update()</literal>. The "
+"<literal>Parent</literal> will contain a collection of children and, since "
+"the cascading update is enabled, Hibernate needs to know which children are "
+"newly instantiated and which represent existing rows in the database. We "
+"will also assume that both <literal>Parent</literal> and <literal>Child</"
+"literal> have generated identifier properties of type <literal>Long</"
+"literal>. Hibernate will use the identifier and version/timestamp property "
+"value to determine which of the children are new. (See <xref linkend="
+"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
+"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
+"emphasis>"
+msgstr ""
+"Gehen wir einmal davon aus, wir hätten einen <literal>Parent</literal> in "
+"einer <literal>Session</literal> hochgeladen, einige Ãnderungen in einer UI-"
+"Aktion vorgenommen und wollten diese Ãnderungen in einer neuen Session durch "
+"Aufruf von <literal>update()</literal> persistieren. Der <literal>Parent</"
+"literal> wird eine Collection von untergeordneten Objekten (den \"children"
+"\") enthalten, und da die Kaskade aktiviert ist, muss Hibernate wissen, "
+"welche \"Children\" neu instanziiert sind und welche bestehende Reihen in "
+"der Datenbank repräsentieren. Nehmen wir an, dass sowohl <literal>Parent</"
+"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>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>:"
+msgstr ""
+"Der folgende Code aktualisiert <literal>parent</literal> und <literal>child</"
+"literal> und fügt <literal>newChild</literal> hinzu."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This may be suitable for the case of a generated identifier, but what about "
+"assigned identifiers and composite identifiers? This is more difficult, "
+"since Hibernate cannot use the identifier property to distinguish between a "
+"newly instantiated object, with an identifier assigned by the user, and an "
+"object loaded in a previous session. In this case, Hibernate will either use "
+"the timestamp or version property, or will actually query the second-level "
+"cache or, worst case, the database, to see if the row exists."
+msgstr ""
+"Nun, all das funktioniert hervorragend im Falle eines generierten "
+"Bezeichners, aber was ist mit zugeordneten Bezeichnern und zusammengesetzten "
+"Bezeichnern? Das ist schwieriger, da Hibernate hier nicht die Bezeichner-"
+"Property zur Unterscheidung zwischen einem neu instantiierten Objekt (mit "
+"einem durch den Benutzer zugeordneten Bezeichner) und einem in einer "
+"früheren Session geladenen Objekt verwenden kann. In diesem Fall verwendet "
+"Hibernate entweder den Zeitstempel oder die Versions-Property oder fragt "
+"beim Speicher der zweiten Ebene an. Schlimmstenfalls prüft es in der "
+"Datenbank, ob die Reihe existiert."
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr "Zusammenfassung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The sections we have just covered can be a bit confusing. However, in "
+"practice, it all works out nicely. Most Hibernate applications use the "
+"parent/child pattern in many places."
+msgstr ""
+"Das sind eine Menge an Informationen, die zu Beginn vielleicht etwas "
+"verwirrend erscheinen. In der Praxis jedoch funktioniert das alles sehr gut. "
+"Die meisten Hibernate-Anwendungen verwenden die \"Parent/Child\"-Vorlage bei "
+"vielen Gelegenheiten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We mentioned an alternative in the first paragraph. None of the above issues "
+"exist in the case of <literal><composite-element></literal> mappings, "
+"which have exactly the semantics of a parent/child relationship. "
+"Unfortunately, there are two big limitations with composite element classes: "
+"composite elements cannot own collections and they should not be the child "
+"of any entity other than the unique parent."
+msgstr ""
+"Im ersten Abschnitt haben wir eine Alternative erwähnt. Keines der gennaten "
+"Probleme existiert im Fall von <literal><composite-element></literal>-"
+"Mappings, die dieselbe Semantik wie eine \"Parent/Child\"-Beziehung "
+"besitzen. Leider bestehen zwei groÃe Einschränkungen bei zusammengesetzten "
+"Elementklassen: Zusammengesetzte Elemente können keine Collections besitzen "
+"und sie sollten nicht das untergeordnete Objekt (\"Child\") irgendeiner "
+"Entity auÃer dem eindeutigen, übergeordneten Objekt (\"Parent\") sein."
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "session.delete(p);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "session.delete(p);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
+#~ "\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_weblog.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_weblog.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/example_weblog.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1135 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr "Beispiel: Web-Log Anwendung"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "Persistente Klassen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The persistent classes here represent a weblog and an item posted in a "
+"weblog. They are to be modelled as a standard parent/child relationship, but "
+"we will use an ordered bag, instead of a set:"
+msgstr ""
+"Die persistenten Klassen repräsentieren einen Web-Log und einen in einem Web-"
+"Log untergebrachten Posten. Sie sollen als Standard \"Parent/Child\"-"
+"Beziehung modelliert werden, jedoch verwenden wir eine geordnete \"Bag\" "
+"anstelle eines \"Sets\"."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr "Hibernate-Mappings"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr "Die XML-Mappings sollten nun ziemlich überschaubar sein."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr "Hibernate-Code"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes using Hibernate:"
+msgstr ""
+"Die folgende Klasse zeigt einige Dinge auf, die unter Verwendung von "
+"Hibernate mit diesen Klassen durchgeführt werden können."
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/filters.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/filters.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/filters.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,608 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr "Das Filtern von Daten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 provides an innovative new approach to handling data with "
+"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
+"named, parameterized filter that can be enabled or disabled for a particular "
+"Hibernate session."
+msgstr ""
+"Hibernate3 bietet eine innovative, neue Möglichkeit des Umgangs mit Daten "
+"mittels \"Sichtbarkeits\"regeln. Bei einem <emphasis>Hibernate Filter</"
+"emphasis> handelt es sich um einen allgemeingültig benannten, "
+"parametrisierten Filter, der für eine bestimmte Hibernate Session aktiviert "
+"oder deaktiviert werden kann."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate filters"
+msgstr "Hibernate Filter"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 has the ability to pre-define filter criteria and attach those "
+"filters at both a class level and a collection level. A filter criteria "
+"allows you to define a restriction clause similar to the existing \"where\" "
+"attribute available on the class and various collection elements. These "
+"filter conditions, however, can be parameterized. The application can then "
+"decide at runtime whether certain filters should be enabled and what their "
+"parameter values should be. Filters can be used like database views, but "
+"they are parameterized inside the application."
+msgstr ""
+"Hibernate3 bietet die zusätzliche Möglichkeit, Filterkriterien im Vorfeld zu "
+"definieren und diese Filter sowohl einer Klasse als auch einer Collection-"
+"Ebene zuzufügen. Ein Filterkriterium ist die Möglichkeit eine "
+"Einschränkungsklausel zu definieren, die dem bestehenden \"where\"-Attribut "
+"an der Klasse sowie an verschiedenen Collection-Elementen sehr ähnlich ist. "
+"Der Unterschied besteht darin, dass diese Filterbedingungen parametrisiert "
+"werden können. Die Anwendung kann zur Runtime die Entscheidung darüber "
+"treffen, ob die vorgegebenen Filter aktiviert werden und wie deren Parameter "
+"lauten sollen. Filter können wie Datenbankansichten verwendet , jedoch "
+"innerhalb der Anwendung parametrisiert werden."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal><"
+"filter-def/></literal> element within a <literal><hibernate-mapping/"
+"></literal> element:"
+msgstr ""
+"Um Filter zu benutzen müssen diese zunächst definiert und anschlieÃend den "
+"betreffenden Mapping-Elementen zugefügt werden. Um einen Filter zu "
+"definieren, verwenden Sie das <literal><filter-def/></literal>-Element "
+"innerhalb eines <literal><hibernate-mapping/></literal>-Elements:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr "AnschlieÃend kann dieser Filter einer Klasse zugefügt werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Or, to a collection:"
+msgstr "oder einer Collection:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr "oder gar beiden (oder mehreren von beiden) gleichzeitig."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, and <literal>disableFilter(String filterName)</literal>. By "
+"default, filters are <emphasis>not</emphasis> enabled for a given session. "
+"Filters must be enabled through use of the <literal>Session.enableFilter()</"
+"literal> method, which returns an instance of the <literal>Filter</literal> "
+"interface. If you used the simple filter defined above, it would look like "
+"this:"
+msgstr ""
+"Die Methoden an <literal>Session</literal> sind: <literal>enableFilter"
+"(String filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal> und <literal>disableFilter(String filterName)</literal>. "
+"StandardmäÃig werden Filter <emphasis>nicht</emphasis> für eine vorgegebene "
+"Session verwendet, sondern müssen mittels der <literal>Session.enabledFilter"
+"()</literal>-Methode, die eine Instanz des <literal>Filter</literal>-"
+"Interface wiedergibt, explizit aktiviert werden. Die Verwendung des oben "
+"definierten, einfachen Filters würde wie folgt aussehen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Methods on the org.hibernate.Filter interface do allow the method-chaining "
+"common to much of Hibernate."
+msgstr ""
+"Bitte beachten Sie, dass Methoden am org.hibernate.Filter-Interface "
+"Methodenverkettung - wie in den meisten Teilen von Hibernate üblich - "
+"erlauben."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following is a full example, using temporal data with an effective "
+"record date pattern:"
+msgstr ""
+"Nachfolgend sehen Sie ein vollständiges Beispiel unter Verwendung temporaler "
+"Daten mit effektivem Datumsformat für den Datensatz:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In order to ensure that you are provided with currently effective records, "
+"enable the filter on the session prior to retrieving employee data:"
+msgstr ""
+"AnschlieÃend aktivieren Sie einfach den Filter an der Session vor dem Abruf "
+"der Angestelltendaten um sicherzustellen, dass Sie stets die aktuell "
+"wirksamen Datensätze erhalten:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though a salary constraint was mentioned explicitly on the results in "
+"the above HQL, because of the enabled filter, the query will return only "
+"currently active employees who have a salary greater than one million "
+"dollars."
+msgstr ""
+"In der vorherigen HQL antwortet die Anfrage wegen des aktivierten Filters "
+"nur mit aktuell aktiven Angestellten, deren Gehalt höher als eine Million "
+"Dollar ist, obwohl lediglich eine Gehaltsbedingung formuliert wurde."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to use filters with outer joining, either through HQL or load "
+"fetching, be careful of the direction of the condition expression. It is "
+"safest to set this up for left outer joining. Place the parameter first "
+"followed by the column name(s) after the operator."
+msgstr ""
+"Hinweis: Falls Sie vorhaben, Filter mit \"outer-Joining\" zu verwenden "
+"(entweder durch HQL oder Load-Abruf) achten Sie auf die Richtung des "
+"Bedingungsausdrucks. Am sichersten ist es, das Ganze für \"left-outer-Joining"
+"\" einzurichten. Generell sollte der Parameter zuerst gesetzt werden und "
+"anschlieÃend der (die) Spaltenname(n) nach dem Operator."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After being defined, a filter might be attached to multiple entities and/or "
+"collections each with its own condition. This can be problematic when the "
+"conditions are the same each time. Using <literal><filter-def/></"
+"literal> allows you to definine a default condition, either as an attribute "
+"or CDATA:"
+msgstr ""
+"Nachdem ein Filter definiert wurde, kann er mehreren Entities und/oder "
+"Collections mit jeweils eigener Bedingung hinzugefügt werden. Das kann eine "
+"langweilige Aufgabe sein, wenn die Bedingungen stets dieselben sind. Daher "
+"erlaubt <literal><filter-def/></literal> die Definition einer "
+"Standardbedingung als Attribut oder als CDATA:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This default condition will be used whenever the filter is attached to "
+"something without specifying a condition. This means you can give a specific "
+"condition as part of the attachment of the filter that overrides the default "
+"condition in that particular case."
+msgstr ""
+"Diese Standardbedingung wird dann verwendet, wenn der Filter zu etwas "
+"hinzugefügt wird, ohne dass eine Bedingung spezifiziert wird. Bitte beachten "
+"Sie, dass dies bedeutet, dass Sie eine spezielle Bedingung als Teil des "
+"Filteranhangs festlegen können, die die Standardbedingung in diesem "
+"bestimmten Fall auÃer Kraft setzt."
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+#~ msgstr ""
+#~ "<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+#~ msgstr ""
+#~ "session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-"
+#~ "value\");"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "Session session = ...;\n"
+#~ "session.enabledFilter(\"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();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+#~ msgstr ""
+#~ "<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/inheritance_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/inheritance_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/inheritance_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1215 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Inheritance mapping"
+msgstr "Vererbungsmapping"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "The three strategies"
+msgstr "Die drei Strategien"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr ""
+"Hibernate unterstützt drei grundlegende Mapping-Strategien der Vererbung:"
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr "\"Tabelle-pro-Klasse\"-Hierarchie"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "table per subclass"
+msgstr "\"Tabelle-pro-Subklasse\""
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr "\"Tabelle-pro-konkrete-Klasse\""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In addition, Hibernate supports a fourth, slightly different kind of "
+"polymorphism:"
+msgstr ""
+"Desweiteren unterstützt Hibernate eine vierte, etwas andere Art der "
+"Polymorphie:"
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr "implizite Polymorphie"
+
+#. Tag: para
+#, fuzzy, 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><subclass></literal>, "
+"<literal><joined-subclass></literal> and <literal><union-"
+"subclass></literal> mappings under the same root <literal><class></"
+"literal> element. It is possible to mix together the table per hierarchy and "
+"table per subclass strategies under the the same <literal><class></"
+"literal> element, by combining the <literal><subclass></literal> and "
+"<literal><join></literal> elements (see below for an example)."
+msgstr ""
+"Es ist möglich, unterschiedliche Mapping-Strategien für verschiedene Zweige "
+"derselben Vererbungshierarchie zu verwenden und diese anschlieÃend implizite "
+"Polymorphie verwenden zu lassen, um über die gesamte Hierarchie hinweg "
+"Polymorphie zu erreichen. Es ist bei Hibernate jedoch nicht möglich "
+"<literal><subclass></literal> und <literal><joined-subclass></"
+"literal> und <literal><union-subclass></literal> Mappings unter "
+"demselben Stamm <literal><class></literal>-Element zu mischen. Es ist "
+"aber möglich die Tabelle-pro-Hierarchie (sog. \"table per hierarchy\") und "
+"Tabelle-pro-Subklasse (sog. \"table per subclass\") Strategien unter "
+"demselben <literal><class></literal>-Element durch Kombination der "
+"<literal><subclass></literal> und <literal><join></literal>-"
+"Elemente zu mischen (siehe unten)."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Es ist möglich, <literal>subclass</literal>, <literal>union-subclass</"
+"literal> und <literal>joined-subclass</literal> Mappings in verschiedenen "
+"Mapping-Dokumenten direkt unterhalb des <literal>hibernate-mapping</literal> "
+"zu definieren. Dadurch kann eine Klassenhierarchie ganz einfach durch "
+"Hinzufügen einer neuen Mapping-Datei erweitert werden. Sie müssen ein "
+"<literal>extends</literal>-Attribut im Subklassen-Mapping bestimmen, das "
+"eine zuvor gemappte Superklasse benennt. Hinweis: In der Vergangenheit "
+"machte dieses Feature die Anordnung der Mapping-Dokumente wichtig. Seit "
+"Hibernate3 ist die Anordnung der Mapping-Dateien nicht mehr relevant, wenn "
+"der \"extends\"-Schlüsselbegriff verwendet wird. Die Anordnung innerhalb "
+"einer einzelnen Mapping-Datei muss nach wie vor als Superklasse vor "
+"Subklasse definiert werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr "\"Tabelle-pro-Klasse\"-Hierarchie"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Nehmen wir an, wir hätten ein Interface <literal>Payment</literal> mit den "
+"\"Implementoren\" <literal>CreditCardPayment</literal>, "
+"<literal>CashPayment</literal>, <literal>ChequePayment</literal>. Die "
+"\"Tabelle-pro-Klasse\"-Hierarchie würde wie folgt aussehen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Exactly one table is required. There is a limitation of this mapping "
+"strategy: columns declared by the subclasses, such as <literal>CCTYPE</"
+"literal>, cannot have <literal>NOT NULL</literal> constraints."
+msgstr ""
+"Es wird genau eine Tabelle benötigt. Es gilt jedoch eine groÃe Einschränkung "
+"bei dieser Mapping-Strategie: Durch Subklassen deklarierte Spalten wie "
+"<literal>CCTYPE</literal>, dürfen keine <literal>NOT NULL</literal>-"
+"Bedingungen besitzen."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass"
+msgstr "\"Tabelle-pro-Subklasse\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr "Das Mapping einer \"Tabelle-pro-Subklasse\" würde wie folgt aussehen:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Vier Tabellen werden benötigt. Die drei Subklassentabellen besitzen "
+"Assoziationen des Primärschlüssels zur Superklassentabelle (das relationale "
+"Modell ist also genau genommen eine \"One-to-One\"-Assoziation)."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr "\"Tabelle-pro-Subklasse\", unter Verwendung eines Diskriminators"
+
+#. Tag: para
+#, fuzzy, 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><subclass></literal> and "
+"<literal><join></literal>, as follows:"
+msgstr ""
+"Bitte beachten Sie, dass Hibernates Implementierung von \"Tabelle-pro-"
+"Subklasse\" keine Diskriminatorspalte erfordert. Andere objekt/relationale "
+"Mapper verwenden eine andere Implementierung von \"Tabelle-pro-Subklasse\", "
+"die eine Art Diskriminatorspalte in der Superklassentabelle benötigt. Die "
+"von Hibernate benutzte Variante ist zwar hinsichtlich ihrer Implementierung "
+"komplexer, aber von einem relationalen Gesichtspunkt aus betrachtet "
+"korrekter. Falls Sie eine Diskriminatorspalte mit der \"Tabelle-pro-Subklasse"
+"\"-Strategie verwenden möchten, können Sie den Gebrauch von <literal><"
+"subclass></literal> und <literal><join></literal> wie folgt "
+"kombinieren:"
+
+#. Tag: para
+#, 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 ""
+"Durch die optionale <literal>fetch=\"select\"</literal>-Deklaration ruft "
+"Hibernate die <literal>ChequePayment</literal>-Subklassendaten unter "
+"Verwendung eines äuÃeren Verbunds (sog. \"outer Join\") bei Anfragen an die "
+"Superklasse nicht auf."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr ""
+"Das Mischen der \"Tabelle-pro-Klasse\"-Hierarchie mit \"Tabelle-pro-Subklasse"
+"\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even mix the table per hierarchy and table per subclass strategies "
+"using the following approach:"
+msgstr ""
+"Sie können sogar die \"Tabelle-pro-Klasse\"-Hierarchie mit \"Tabelle-pro-"
+"Subklasse\" mischen, indem Sie wie folgt vorgehen:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For any of these mapping strategies, a polymorphic association to the root "
+"<literal>Payment</literal> class is mapped using <literal><many-to-one>"
+"</literal>."
+msgstr ""
+"Bei allen diesen Mapping-Strategien wird eine polymorphe Assoziation zur "
+"Stamm-<literal>Payment</literal>-Klasse mittels <literal><many-to-one>"
+"</literal> gemappt."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr "\"Tabelle-pro-konkrete-Klasse\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are two ways we can map the table per concrete class strategy. First, "
+"you can use <literal><union-subclass></literal>."
+msgstr ""
+"Das Mappen der \"Tabelle-pro-konkrete-Klasse\"-Strategie kann auf zwei Arten "
+"erfolgen. Bei der ersten wird <literal><union-subclass></literal> "
+"verwendet."
+
+#. Tag: para
+#, 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 ""
+"Drei Tabellen sind für die Subklassen involviert. Jede Tabelle definiert "
+"Spalten für alle Properties der Klasse, einschlieÃlich vererbter Properties."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die Einschränkung bei dieser Vorgehensweise liegt darin, dass bei einer an "
+"die Superklasse gemappten Property der Spaltenname für alle "
+"Subklassentabellen gleich sein muss. (In zukünftigen Versionen von Hibernate "
+"wird dies möglicherweise anders sein). Die Identitätsgeneratorstrategie ist "
+"bei der Vererbung von Union-Subklassen nicht erlaubt, der Startparameter des "
+"Primärschlüssels (sog. \"primary key seed\") muss auf sämtlichen vereinten "
+"Subklassen einer Hierarchie geteilt werden."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Falls Ihre Superklasse abstrakt ist, mappen Sie sie mit <literal>abstract="
+"\"true\"</literal>. Falls sie nicht abstrakt ist, wird natürlich eine "
+"zusätzliche Tabelle (Standard ist <literal>PAYMENT</literal> im vorherigen "
+"Beispiel) benötigt, um Instanzen der Superklasse zu enthalten."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr ""
+"\"Tabelle-pro-konkrete-Klasse\" unter Verwendung impliziter Polymorphie"
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr "Alternativ kann implizite Polymorphie angewendet werden:"
+
+#. Tag: para
+#, 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>[ <!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> "
+"declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Der Nachteil bei dieser Vorgehensweise liegt darin, dass Hibernate keine SQL "
+"<literal>UNION</literal>s bei der Ausführung polymorpher Anfragen generiert."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For this mapping strategy, a polymorphic association to <literal>Payment</"
+"literal> is usually mapped using <literal><any></literal>."
+msgstr ""
+"Bei dieser Mapping-Strategie wird in der Regel eine polymorphe Assoziation "
+"zu <literal>Payment</literal> mittels <literal><any></literal> gemappt."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr "Das Mischen impliziter Polymorphie mit anderen Vererbungsmappings"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Since the subclasses are each mapped in their own <literal><class></"
+"literal> element, and since <literal>Payment</literal> is just an "
+"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 ""
+"Ein weiterer Aspekt ist bei diesem Mapping bemerkenswert. Da die Subklassen "
+"jeweils in ihrem eigenen <literal><class></literal>-Element gemappt "
+"sind (und da es sich bei <literal>Payment</literal> lediglich um ein "
+"Interface handelt), könnte jede der Subklassen ganz einfach Teil einer "
+"anderen Vererbungshierarchie sein! (Und es können nach wie vor polymorphe "
+"Anfragen am <literal>Payment</literal>-Interface erfolgen)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Once again, <literal>Payment</literal> is not mentioned explicitly. If we "
+"execute a query against the <literal>Payment</literal> interface, for "
+"example <literal>from Payment</literal>, Hibernate automatically returns "
+"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 ""
+"Erneut erwähnen wir <literal>Payment</literal> nicht explizit. Wird eine "
+"Anfrage am <literal>Payment</literal>-Interface ausgeführt - z.B. "
+"<literal>from Payment</literal> - so reagiert Hibernate automatisch mit "
+"Instanzen von <literal>CreditCardPayment</literal> (und dessen Subklassen, "
+"da diese ebenfalls <literal>Payment</literal> implementieren), "
+"<literal>CashPayment</literal> und <literal>ChequePayment</literal>, nicht "
+"aber mit Instanzen von <literal>NonelectronicTransaction</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Limitations"
+msgstr "Einschränkungen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are limitations to the \"implicit polymorphism\" approach to the table "
+"per concrete-class mapping strategy. There are somewhat less restrictive "
+"limitations to <literal><union-subclass></literal> mappings."
+msgstr ""
+"Es existieren bestimmte Einschränkungen bei der Vorgehensweise mittels "
+"\"impliziter Polymorphie\" bei der \"Tabelle-pro-konkrete-Klasse\" Mapping-"
+"Strategie. Die Einschränkungen bei <literal><union-subclass></literal>-"
+"Mappings sind wesentlich weniger restriktiv."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table shows the limitations of table per concrete-class "
+"mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+"Die folgende Tabelle zeigt die Einschränkungen der \"Tabelle-pro-konkrete-"
+"Klasse\"-Mappings und der impliziten Polymorphie in Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr "Features von Vererbungsmappings"
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr "Vererbungsstrategie"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr "Polymorphes \"Many-to-Many\""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr "Polymorphes \"One-to-One\""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr "Polymorphes \"One-to-Many\""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr "Polymorphes \"Many-to-Many\""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr "Polymorphes <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Polymorphe Anfragen"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr "Polymorphe Verknüpfungen "
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Outer join fetching"
+msgstr "\"Outer-Join-Fetching\""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "table per class-hierarchy"
+msgstr "\"Tabelle-pro-Klasse\"-Hierarchie"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr "<Many-to-One>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr "<One-to-One>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr "<One-to-Many>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr "<Many-to-Many>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr "s.get(Payment.class, id)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr "Polymorphes <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr "von Order o join o.payment p"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr "Tabelle-pro-konkrete-Klasse (Union-Subklasse)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+msgstr ""
+"<literal><one-to-many></literal> (nur für <literal>inverse=\"true\"</"
+"literal>)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr "Tabelle pro konkrete Klasse (implizite Polymorphie)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><any></literal>"
+msgstr "Polymorphes <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr "<many-to-any>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+msgstr ""
+"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
+
+#, fuzzy
+#~ msgid "table per class-heirarchy"
+#~ msgstr "\"Tabelle-pro-Klasse\"-Hierarchie"
+
+#, fuzzy
+#~ msgid "Polymorphic many-to-one: <code><any></code>"
+#~ msgstr "Polymorphes \"Many-to-One\""
+
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "<para>\"Tabelle-pro-Subklasse\"</para>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ " <hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value="
+#~ "\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-"
+#~ "value=\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class="
+#~ "\"Payment\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/"
+#~ ">\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN"
+#~ "\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "<entry>Tabelle-pro-Subklasse</entry>"
+
+#~ msgid "from Payment p"
+#~ msgstr "von Payment p"
+
+#~ msgid "supported"
+#~ msgstr "unterstützt"
+
+#~ msgid "<any>"
+#~ msgstr "<any>"
+
+#~ msgid "not supported"
+#~ msgstr "nicht unterstützt"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/performance.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/performance.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/performance.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2976 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr "Verbesserung der Performance"
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr "Abrufstrategien"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate uses a <emphasis>fetching strategy</emphasis> to retrieve "
+"associated objects if the application needs to navigate the association. "
+"Fetch strategies can be declared in the O/R mapping metadata, or over-ridden "
+"by a particular HQL or <literal>Criteria</literal> query."
+msgstr ""
+"Eine <emphasis>Abrufstrategie</emphasis> (sog. \"Fetching Strategy\") ist "
+"die Abrufstrategie, die Hibernate beim Abruf assoziierter Objekte verwendet, "
+"wenn die Anwendung die Assoziation navigieren muss. Abrufstrategien können "
+"in den O/R Mapping-Metadaten deklariert werden oder durch eine bestimmte HQL "
+"oder <literal>Criteria</literal>-Anfrage auÃer Kraft gesetzt werden."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr "Hibernate3 definiert die folgenden Abrufstrategien:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Join fetching</emphasis>: Hibernate retrieves the associated "
+"instance or collection in the same <literal>SELECT</literal>, using an "
+"<literal>OUTER JOIN</literal>."
+msgstr ""
+"<emphasis>\"Join Fetching\"</emphasis> - Hibernate ruft unter Verwendung von "
+"<literal>OUTER JOIN</literal> die zugehörige Instanz oder Collection im "
+"selben <literal>SELECT</literal> auf."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Select fetching</emphasis>: a second <literal>SELECT</literal> is "
+"used to retrieve the associated entity or collection. Unless you explicitly "
+"disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this "
+"second select will only be executed when you access the association."
+msgstr ""
+"<emphasis>\"Select Fetching\"</emphasis> - ein zweites <literal>SELECT</"
+"literal> wird für den Abruf der assoziierten Entity oder Collection "
+"verwendet. Falls Sie nicht explizit das \"lazy Fetching\" (d.h. das "
+"Nachladen assoziierter Objekte bei Bedarf) durch Spezifizierung von "
+"<literal>lazy=\"false\"</literal> deaktivieren, wird dieses zweite \"Select"
+"\" nur ausgeführt, wenn Sie tatsächlich auf die Assoziation zugreifen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Subselect fetching</emphasis>: a second <literal>SELECT</literal> "
+"is used to retrieve the associated collections for all entities retrieved in "
+"a previous query or fetch. Unless you explicitly disable lazy fetching by "
+"specifying <literal>lazy=\"false\"</literal>, this second select will only "
+"be executed when you access the association."
+msgstr ""
+"<emphasis>\"Subselect Fetching\"</emphasis> - ein zweites <literal>SELECT</"
+"literal> wird verwendet, um die assoziierten Collections für alle in einer "
+"vorausgegangenen Anfrage oder Abruf erhaltenen Entities abzurufen. Falls Sie "
+"\"lazy Fetching\" nicht durch <literal>lazy=\"false\"</literal> explizit "
+"deaktivieren, wird dieses zweite \"Select\" nur ausgeführt, wenn Sie "
+"tatsächlich auf die Assoziation zugreifen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Batch fetching</emphasis>: an optimization strategy for select "
+"fetching. Hibernate retrieves a batch of entity instances or collections in "
+"a single <literal>SELECT</literal> by specifying a list of primary or "
+"foreign keys."
+msgstr ""
+"<emphasis>Stapelabruf</emphasis> (sog. \"Batch Fetching\") - eine "
+"Optimierungsstrategie für die Abrufauswahl - Hibernate ruft einen Stapel von "
+"Entity-Instanzen oder Collections in einem einzelnen <literal>SELECT</"
+"literal> ab, indem es eine Liste von Primärschlüsseln oder Fremdschlüsseln "
+"bestimmt."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr "Hibernate unterscheidet auÃerdem zwischen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Immediate fetching</emphasis>: an association, collection or "
+"attribute is fetched immediately when the owner is loaded."
+msgstr ""
+"<emphasis>\"Immediate Fetching\"</emphasis> (d.h. sofortiger Abruf) - eine "
+"Assoziation, Collection oder Attribut werden beim Laden des Eigentümers "
+"sofort abgerufen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Lazy collection fetching</emphasis>: a collection is fetched when "
+"the application invokes an operation upon that collection. This is the "
+"default for collections."
+msgstr ""
+"<emphasis>\"Lazy Collection Fetching\"</emphasis> - eine Collection wird "
+"abgerufen, wenn die Anwendung einen Vorgang an dieser Collection aufruft. "
+"(Das ist die Standardeinstellung für Collections)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>\"Extra-lazy\" collection fetching</emphasis>: individual elements "
+"of the collection are accessed from the database as needed. Hibernate tries "
+"not to fetch the whole collection into memory unless absolutely needed. It "
+"is suitable for large collections."
+msgstr ""
+"<emphasis>\"Extra-lazy Collection Fetching\"</emphasis> - auf einzelne "
+"Elemente der Collection wird je nach Bedarf in der Datenbank zugegriffen. "
+"Hibernate versucht, nicht die gesamte Collection in den Speicher aufzurufen, "
+"auÃer es ist unbedingt nötig (besonders geeignet für sehr groÃe Collections)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Proxy fetching</emphasis>: a single-valued association is fetched "
+"when a method other than the identifier getter is invoked upon the "
+"associated object."
+msgstr ""
+"<emphasis>\"Proxy Fetching\"</emphasis> (d.h. Proxy-Abruf) - eine einwertige "
+"Assoziation wird abgerufen, wenn eine andere Methode als Bezeichner-\"Getter"
+"\" am zugehörigen Objekt aufgerufen wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>\"No-proxy\" fetching</emphasis>: a single-valued association is "
+"fetched when the instance variable is accessed. Compared to proxy fetching, "
+"this approach is less lazy; the association is fetched even when only the "
+"identifier is accessed. It is also more transparent, since no proxy is "
+"visible to the application. This approach requires buildtime bytecode "
+"instrumentation and is rarely necessary."
+msgstr ""
+"<emphasis>\"No-Proxy-Fetching\"</emphasis> - eine einwertige Assoziation "
+"wird abgerufen, wenn auf die Instanzvariable zugegriffen wird. Im Vergleich "
+"zu Proxy-Fetching, ist diese Herangehensweise weniger \"lazy\" (die "
+"Assoziation wird sogar abgerufen wenn nur auf den Bezeichner zugegriffen "
+"wird), jedoch transparenter, da für die Anwendung kein Proxy sichtbar ist. "
+"Diese Vorgehensweise erfordert Buildtime Bytecode Instrumentierung und wird "
+"selten benötigt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Lazy attribute fetching</emphasis>: an attribute or single valued "
+"association is fetched when the instance variable is accessed. This approach "
+"requires buildtime bytecode instrumentation and is rarely necessary."
+msgstr ""
+"<emphasis>\"Lazy Attribute Fetching</emphasis> - ein Attribut oder eine "
+"einwertige Assoziation werden abgerufen, wenn auf die Instanzvariable "
+"zugegriffen wird. Diese Vorgehensweise erfordert Buildtime Bytecode "
+"Instrumentierung und wird selten benötigt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We have two orthogonal notions here: <emphasis>when</emphasis> is the "
+"association fetched and <emphasis>how</emphasis> is it fetched. It is "
+"important that you do not confuse them. We use <literal>fetch</literal> to "
+"tune performance. We can use <literal>lazy</literal> to define a contract "
+"for what data is always available in any detached instance of a particular "
+"class."
+msgstr ""
+"Es gibt hier zwei orthogonale Begriffe: <emphasis>Wann</emphasis> die "
+"Assoziation abgerufen wird und <emphasis>wie</emphasis> sie abgerufen wird "
+"(welche SQL verwendet wird). Verwechseln Sie diese nicht! Wir verwenden "
+"<literal>fetch</literal>, um die Performance abzustimmen. Wir können "
+"<literal>lazy</literal> verwenden, um ein Interface (sog. \"contract\") "
+"darüber zu definieren, welche Daten in sämtlichen abgesetzten Instanzen "
+"einer bestimmten Klasse stets verfügbar sind."
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr "Der Umgang mit \"lazy\"-Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By default, Hibernate3 uses lazy select fetching for collections and lazy "
+"proxy fetching for single-valued associations. These defaults make sense for "
+"most associations in the majority of applications."
+msgstr ""
+"In der Standardeinstellung verwendet Hibernate3 \"lazy\" Auswahlabruf für "
+"Collections und \"lazy\" Proxy-Abruf für einwertige Assoziationen. Diese "
+"Standardeinstellung ist für nahezu alle Assoziationen in den meisten "
+"Anwendungen sinnvoll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you set <literal>hibernate.default_batch_fetch_size</literal>, Hibernate "
+"will use the batch fetch optimization for lazy fetching. This optimization "
+"can also be enabled at a more granular level."
+msgstr ""
+"<emphasis>Hinweis:</emphasis> Wenn Sie <literal>hibernate."
+"default_batch_fetch_size</literal> setzen, so verwendet Hibernate die "
+"Stapelabrufoptimierung für \"lazy\" Fetching (diese Optimierung kann auch "
+"auf feinkörnigerer Ebene aktiviert werden)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please be aware that access to a lazy association outside of the context of "
+"an open Hibernate session will result in an exception. For example:"
+msgstr ""
+"Jedoch stellt sich beim \"lazy\" Fetching ein Problem, dessen Sie sich "
+"bewusst sein sollten: Der Zugriff auf eine \"lazy\" Assoziation auÃerhalb "
+"des Kontexts einer geöffneten Hibernate Session führt zu einer "
+"Ausnahmemeldung. Zum Beispiel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Since the permissions collection was not initialized when the "
+"<literal>Session</literal> was closed, the collection will not be able to "
+"load its state. <emphasis>Hibernate does not support lazy initialization for "
+"detached objects</emphasis>. This can be fixed by moving the code that reads "
+"from the collection to just before the transaction is committed."
+msgstr ""
+"Da die \"Permissions\"-Collection nicht initialisiert war als die "
+"<literal>Session</literal> geschlossen wurde, wird die Collection den Status "
+"nicht laden können. <emphasis>Hibernate unterstützt keine \"lazy\" "
+"Initialisierung für abgesetzte Objekte</emphasis>. Die Lösung besteht darin, "
+"den Code, der die Collection liest, erst unmittelbar ehe die Transaktion "
+"festgeschrieben wird, zu bewegen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, you can use a non-lazy collection or association, by "
+"specifying <literal>lazy=\"false\"</literal> for the association mapping. "
+"However, it is intended that lazy initialization be used for almost all "
+"collections and associations. If you define too many non-lazy associations "
+"in your object model, Hibernate will fetch the entire database into memory "
+"in every transaction."
+msgstr ""
+"Alternativ könnten Sie eine nicht-\"lazy\" Collection oder Assoziation "
+"verwenden, indem Sie <literal>lazy=\"false\"</literal> für das "
+"Assoziationsmapping festlegen. Es ist jedoch vorgesehen, dass \"lazy\" "
+"Initialisierung für fast alle Collections und Assoziationen verwendet wird. "
+"Wenn Sie in Ihrem Objektmodell zu viele nicht-\"lazy\" Assoziationen "
+"definieren, wird Hibernate am Ende für jede Transaktion die gesamte "
+"Datenbank in den Speicher abrufen müssen!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"On the other hand, you can use join fetching, which is non-lazy by nature, "
+"instead of select fetching in a particular transaction. We will now explain "
+"how to customize the fetching strategy. In Hibernate3, the mechanisms for "
+"choosing a fetch strategy are identical for single-valued associations and "
+"collections."
+msgstr ""
+"Andererseits wollen wir oft \"Join\"-Fetching (das von Natur aus nicht \"lazy"
+"\" ist) anstelle des Auswahlabrufs (sog. \"Select-Fetching\") in einer "
+"bestimmten Transaktion verwenden. Wir wollen nun einen Blick darauf werfen, "
+"wie eine Abrufstrategie individuell angepasst werden kann. In Hibernate3 ist "
+"der Mechanismus zur Auswahl einer Abrufstrategie für einwertige "
+"Assoziationen und Collections identisch."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr "Abstimmung von Abrufstrategien"
+
+#. 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 ""
+"Der Auswahlabruf - \"Select Fetching\" (Standard) ist extrem anfällig für N"
+"+1 Auswahlprobleme, weswegen sich die Aktivierung von \"Join-Fetching\" im "
+"Mapping-Dokument empfiehlt:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> strategy defined in the mapping document "
+"affects:"
+msgstr ""
+"Die im Mapping-Dokument definierte <literal>fetch</literal>-Strategie hat "
+"Auswirkungen auf:"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
+msgstr "Abruf mittels <literal>get()</literal> oder <literal>load()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval that happens implicitly when an association is navigated"
+msgstr "einem impliziten Abruf, der beim Navigieren der Assoziation erfolgt"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr "<literal>Criteria</literal>-Anfragen"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr "HQL-Anfragen, wenn <literal>subselect</literal>-Abruf verwendet wird"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Irrespective of the fetching strategy you use, the defined non-lazy graph is "
+"guaranteed to be loaded into memory. This might, however, result in several "
+"immediate selects being used to execute a particular HQL query."
+msgstr ""
+"Unabhängig davon, welche Abrufstrategie Sie verwenden wird das definierte "
+"nicht-\"lazy\" Diagramm garantiert im Speicher geladen. Bitte beachten Sie, "
+"dass dies zur Verwendung von mehreren unmittelbaren \"Selects\" bei der "
+"Ausführung einer bestimmten HQL-Anfrage führen kann."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Usually, the mapping document is not used to customize fetching. Instead, we "
+"keep the default behavior, and override it for a particular transaction, "
+"using <literal>left join fetch</literal> in HQL. This tells Hibernate to "
+"fetch the association eagerly in the first select, using an outer join. In "
+"the <literal>Criteria</literal> query API, you would use "
+"<literal>setFetchMode(FetchMode.JOIN)</literal>."
+msgstr ""
+"Normalerweise wird das Mapping-Dokument nicht für die Anpassung des Abrufs "
+"verwendet. Stattdessen behalten wir das Standardverhalten und setzen es "
+"mittels <literal>left join fetch</literal> in HQL für eine bestimmte "
+"Transaktion auÃer Kraft. Dadurch setzt Hibernate bei der Assoziation im "
+"ersten \"Select\" unter Verwendung eines \"outer Join\" \"eager Fetching\" "
+"ein. Im <literal>Criteria</literal>-Anfragen API, würden Sie "
+"<literal>setFetchMode(FetchMode.JOIN)</literal> benutzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to change the fetching strategy used by <literal>get()</literal> "
+"or <literal>load()</literal>, you can use a <literal>Criteria</literal> "
+"query. For example:"
+msgstr ""
+"Falls Sie die verwendete Abrufstrategie irgendwann ändern möchten, so können "
+"Sie dies durch <literal>get()</literal> oder <literal>load()</literal> tun, "
+"verwenden Sie einfach eine <literal>Criteria</literal>-Anfrage, zum Beispiel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
+"\"."
+msgstr ""
+"(Das ist Hibernates Ãquivalent zu dem, was einige ORM-Lösungen als Abrufplan "
+"oder \"Fetch Plan\" bezeichnen)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
+msgstr ""
+"Eine ganz andere Art Probleme mit N+1 \"Selects\" zu vermeiden, ist die "
+"Verwendung des Cachespeichers der zweiten Ebene."
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr "Einendige Assoziationsproxies"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Lazy fetching for collections is implemented using Hibernate's own "
+"implementation of persistent collections. However, a different mechanism is "
+"needed for lazy behavior in single-ended associations. The target entity of "
+"the association must be proxied. Hibernate implements lazy initializing "
+"proxies for persistent objects using runtime bytecode enhancement which is "
+"accessed via the CGLIB library."
+msgstr ""
+"\"Lazy-Fetching\" für Collections wird unter Verwendung von Hibernates "
+"eigener Implementierung von persistenten Klassen implementiert. Für \"lazy-"
+"Fetching\" in einendigen Assoziationen wird jedoch ein anderer Mechanismus "
+"benötigt. Die Ziel-Entity der Assoziation muss geproxied werden. Hibernate "
+"implementiert \"lazy\" Initialisierungsproxies für persistente Objekte unter "
+"Verwendung von Runtime Bytecode-Steigerung (durch die hervorragende CGLIB-"
+"Bibliothek)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"At startup, Hibernate3 generates proxies by default for all persistent "
+"classes and uses them to enable lazy fetching of <literal>many-to-one</"
+"literal> and <literal>one-to-one</literal> associations."
+msgstr ""
+"Im Standard generiert Hibernate3 Proxies (beim Startup) für alle "
+"persistenten Klassen und verwendet diese, um das \"lazy-Fetching\" von "
+"<literal>many-to-one</literal> und <literal>one-to-one</literal>-"
+"Assoziationen zu aktivieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The mapping file may declare an interface to use as the proxy interface for "
+"that class, with the <literal>proxy</literal> attribute. By default, "
+"Hibernate uses a subclass of the class. <emphasis>The proxied class must "
+"implement a default constructor with at least package visibility. This "
+"constructor is recommended for all persistent classes</emphasis>."
+msgstr ""
+"Die Mapping-Datei kann mit dem <literal>proxy</literal>-Attribut ein als "
+"Proxy-Interface zu verwendendes Interface deklarieren. In der "
+"Standardeinstellung verwendet Hibernate eine Subklasse der Klasse. "
+"<emphasis>Beachten Sie, das die geproxiete Klasse einen Standard-Konstruktor "
+"mit mindestens Paket-Sichtbarkeit implementieren muss. Wir empfehlen diesen "
+"Konstruktor für alle persistenten Klassen!</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are potential problems to note when extending this approach to "
+"polymorphic classes.For example:"
+msgstr ""
+"Es gibt einige Fallstricke, derer man sich bewusst sein sollte, wenn man "
+"diese Vorgehensweise zum Beispiel auf polymorphe Klassen ausweitet."
+
+#. 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 ""
+"Zunächst einmal werden Instanzen von <literal>Cat</literal> hinsichtlich "
+"ihres Datentyps niemals in <literal>DomesticCat</literal> konvertierbar "
+"sein, selbst wenn die zu Grunde liegende Instanz eine Instanz von "
+"<literal>DomesticCat</literal> ist:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr "Zweitens ist es möglich, Proxy <literal>==</literal> zu brechen."
+
+#. 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 ""
+"Allerdings ist die Situation nicht so schlimm wie sie aussieht. Obwohl wir "
+"jetzt zwei Verweise auf verschiedene Proxy-Objekte besitzen, so bleibt die "
+"zu Grunde liegende Instanz nach wie vor dasselbe Objekt:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Third, you cannot use a CGLIB proxy for a <literal>final</literal> class or "
+"a class with any <literal>final</literal> methods."
+msgstr ""
+"Drittens können Sie kein CGLIB-Proxy für eine <literal>final</literal>-"
+"Klasse oder eine Klasse mit einer <literal>final</literal>-Methode verwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, if your persistent object acquires any resources upon instantiation "
+"(e.g. in initializers or default constructor), then those resources will "
+"also be acquired by the proxy. The proxy class is an actual subclass of the "
+"persistent class."
+msgstr ""
+"Wenn Ihr persistentes Objekt bei der Instantiierung Ressourcen erhält (z.B. "
+"Initialisierungsprogramme oder den Standard-Konstruktor), so erhält auch das "
+"Proxy diese Ressourcen. Die Proxy-Klasse ist eine Subklasse der persistenten "
+"Klasse."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"These problems are all due to fundamental limitations in Java's single "
+"inheritance model. To avoid these problems your persistent classes must each "
+"implement an interface that declares its business methods. You should "
+"specify these interfaces in the mapping file where <literal>CatImpl</"
+"literal> implements the interface <literal>Cat</literal> and "
+"<literal>DomesticCatImpl</literal> implements the interface "
+"<literal>DomesticCat</literal>. For example:"
+msgstr ""
+"Diese Probleme wurzeln in fundamentalen Einschränkungen des "
+"Einzelvererbungsmodells in Java. Falls Sie diese Probleme umgehen möchten, "
+"muss jede Ihrer persistenten Klassen ein Interface implementieren, das seine "
+"Business-Methoden deklariert. Diese Interfaces sollten Sie z.B. in der "
+"Mapping-Datei spezifizieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Then proxies for instances of <literal>Cat</literal> and "
+"<literal>DomesticCat</literal> can be returned by <literal>load()</literal> "
+"or <literal>iterate()</literal>."
+msgstr ""
+"Zunächst einmal werden Instanzen von <literal>Cat</literal> hinsichtlich "
+"ihres Datentyps niemals in <literal>DomesticCat</literal> konvertierbar "
+"sein, selbst wenn die zu Grunde liegende Instanz eine Instanz von "
+"<literal>DomesticCat</literal> ist:"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr "<literal>full join</literal> (in der Regel nicht sehr nützlich)"
+
+#. 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 ""
+"Beziehungen werden ebenfalls \"lazy\" initialisiert. Das bedeutet, dass Sie "
+"sämtliche Properties als Typ <literal>Cat</literal>, nicht <literal>CatImpl</"
+"literal> deklarieren müssen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgstr ""
+"Bestimmte Vorgänge benötigen <emphasis>keine</emphasis> Proxy-Initialisierung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>equals()</literal>: if the persistent class does not override "
+"<literal>equals()</literal>"
+msgstr ""
+"<literal>equals()</literal>, falls die persistente Klasse <literal>equals()</"
+"literal> nicht auÃer Kraft setzt"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>hashCode()</literal>: if the persistent class does not override "
+"<literal>hashCode()</literal>"
+msgstr ""
+"<literal>hashCode()</literal>, falls die persistente Klasse <literal>hashCode"
+"()</literal> nicht auÃer Kraft setzt"
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr "Die \"Getter\"-Methode des Bezeichners"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate will detect persistent classes that override <literal>equals()</"
+"literal> or <literal>hashCode()</literal>."
+msgstr ""
+"Hibernate erkennt persistente Klassen, die <literal>equals()</literal> oder "
+"<literal>hashCode()</literal> auÃer Kraft setzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default "
+"<literal>lazy=\"proxy\"</literal>, you can avoid problems associated with "
+"typecasting. However, buildtime bytecode instrumentation is required, and "
+"all operations will result in immediate proxy initialization."
+msgstr ""
+"Durch Auswahl von <literal>lazy=\"no-proxy\"</literal> anstelle des "
+"standardmäÃigen <literal>lazy=\"proxy\"</literal>, lassen sich mit der Typ-"
+"Umwandlung zusammenhängende Probleme vermeiden. Es wird jedoch \"Buildtime "
+"Bytecode\"-Instrumentierung benötigt und sämtliche Vorgänge führen zu einer "
+"unmittelbaren Proxy-Initialisierung."
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr "Initialisierung von Collections und Proxies"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>LazyInitializationException</literal> will be thrown by Hibernate "
+"if an uninitialized collection or proxy is accessed outside of the scope of "
+"the <literal>Session</literal>, i.e., when the entity owning the collection "
+"or having the reference to the proxy is in the detached state."
+msgstr ""
+"Eine <literal>LazyInitializationException</literal>-Ausnahme wird durch "
+"Hibernate gemeldet, wenn auf eine nicht initialisierte Collection oder Proxy "
+"auÃerhalb des Gültigkeitsbereichs der <literal>Session</literal> zugegriffen "
+"wird, d.h. wenn die Entity, die die Collection besitzt oder einen Verweis "
+"auf das Proxy hat, sich in abgesetztem Status befindet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes a proxy or collection needs to be initialized before closing the "
+"<literal>Session</literal>. You can force initialization by calling "
+"<literal>cat.getSex()</literal> or <literal>cat.getKittens().size()</"
+"literal>, for example. However, this can be confusing to readers of the code "
+"and it is not convenient for generic code."
+msgstr ""
+"In manchen Fällen muss sichergestellt werden, dass ein Proxy oder eine "
+"Collection initialisiert ist, ehe die <literal>Session</literal> geschlossen "
+"wird. Natürlich kann die Initialisierung durch Aufruf von <literal>cat.getSex"
+"()</literal> oder <literal>cat.getKittens().size()</literal> immer auch "
+"erzwungen werden. Allerdings ist das recht verwirrend für Leser des Codes "
+"und nicht praktisch für generischen Code."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The static methods <literal>Hibernate.initialize()</literal> and "
+"<literal>Hibernate.isInitialized()</literal>, provide the application with a "
+"convenient way of working with lazily initialized collections or proxies. "
+"<literal>Hibernate.initialize(cat)</literal> will force the initialization "
+"of a proxy, <literal>cat</literal>, as long as its <literal>Session</"
+"literal> is still open. <literal>Hibernate.initialize( cat.getKittens() )</"
+"literal> has a similar effect for the collection of kittens."
+msgstr ""
+"Die statischen Methoden <literal>Hibernate.initialize()</literal> und "
+"<literal>Hibernate.isInitialized()</literal> liefern der Anwendung eine "
+"praktische Art mit nach \"lazy\" Art initialisierten Collections oder "
+"Proxies umzugehen. <literal>Hibernate.initialize(cat)</literal> erzwingt die "
+"Initialisierung einesProxy, <literal>cat</literal> solange dessen "
+"<literal>Session</literal> noch geöffnet ist. <literal>Hibernate.initialize"
+"( cat.getKittens() )</literal> hat eine ähnliche Wirkung auf die Collection "
+"von \"kittens\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Another option is to keep the <literal>Session</literal> open until all "
+"required collections and proxies have been loaded. In some application "
+"architectures, particularly where the code that accesses data using "
+"Hibernate, and the code that uses it are in different application layers or "
+"different physical processes, it can be a problem to ensure that the "
+"<literal>Session</literal> is open when a collection is initialized. There "
+"are two basic ways to deal with this issue:"
+msgstr ""
+"Eine weitere Möglichkeit ist es, die <literal>Session</literal> geöffnet zu "
+"halten, bis alle benötigten Collections und Proxies geladen sind. In einigen "
+"Anwendungsarchitekturen - insbesondere wenn der Code unter Verwendung von "
+"Hibernate auf Daten zugreift und der diese benutzende Code sich in "
+"unterschiedlichen Anwendungsschichten oder verschiedenen physikalischen "
+"Prozessen befindet, kann es problematisch sein sicherzustellen, dass die "
+"<literal>Session</literal> bei der Initialisierung der Collection geöffnet "
+"ist. Es gibt zwei einfache Wege, damit umzugehen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In a web-based application, a servlet filter can be used to close the "
+"<literal>Session</literal> only at the end of a user request, once the "
+"rendering of the view is complete (the <emphasis>Open Session in View</"
+"emphasis> pattern). Of course, this places heavy demands on the correctness "
+"of the exception handling of your application infrastructure. It is vitally "
+"important that the <literal>Session</literal> is closed and the transaction "
+"ended before returning to the user, even when an exception occurs during "
+"rendering of the view. See the Hibernate Wiki for examples of this \"Open "
+"Session in View\" pattern."
+msgstr ""
+"In einer Web-basierten Anwendung kann die <literal>Session</literal> nur am "
+"Ende der Benutzeranfrage und nachdem das Rendering der Ansicht (das "
+"<emphasis>Offene Session in Ansicht</emphasis>-Modell) abgeschlossen ist, "
+"mittels eines Servlet-Filters geschlossen werden. Natürlich stellt dies "
+"groÃe Anforderungen auf den ordnungsgemäÃen Umgang mit Ausnahmen Ihrer "
+"Anwendungsinfrastruktur. Es ist von maÃgeblicher Bedeutung, dass die "
+"<literal>Session</literal> geschlossen und die Transaktion beendet ist, ehe "
+"zum Benutzer zurückgekehrt wird, selbst wenn während des Renderings der "
+"Ansicht eine Ausnahme gemeldet wird. Beispiele für dieses \"Offene Session "
+"in Ansicht\"-Modell finden Sie im Hibernate Wiki."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In an application with a separate business tier, the business logic must "
+"\"prepare\" all collections that the web tier needs before returning. This "
+"means that the business tier should load all the data and return all the "
+"data already initialized to the presentation/web tier that is required for a "
+"particular use case. Usually, the application calls <literal>Hibernate."
+"initialize()</literal> for each collection that will be needed in the web "
+"tier (this call must occur before the session is closed) or retrieves the "
+"collection eagerly using a Hibernate query with a <literal>FETCH</literal> "
+"clause or a <literal>FetchMode.JOIN</literal> in <literal>Criteria</"
+"literal>. This is usually easier if you adopt the <emphasis>Command</"
+"emphasis> pattern instead of a <emphasis>Session Facade</emphasis>."
+msgstr ""
+"In einer Anwendung mit separatem Business-\"Tier\" muss die Business-Logik "
+"alle Collections auf deren Verwendung durch den Web-\"Tier\" vor der "
+"Rückkehr \"vorbereiten\". Das bedeutet, dass der Business-Tier sämtliche "
+"Daten laden und alle bereits initialisierten Daten an den Präsentations-/Web-"
+"Tier, der in einem bestimmten Fall benötigt wird, wiedergeben muss. In der "
+"Regel erfolgt durch die Anwendung der Aufruf <literal>Hibernate.initialize()"
+"</literal> für jede Collection, die im Web-Tier benötigt werden wird (dieser "
+"Aufruf muss erfolgen, ehe die Session geschlossen wird) oder die Collection "
+"wird nach \"eager\"-Art mittels einer Hibernate Anfrage mit einer "
+"<literal>FETCH</literal>-Klausel oder <literal>FetchMode.JOIN</literal> in "
+"<literal>Criteria</literal> abgerufen. Dies ist in der Regel einfacher, wenn "
+"Sie das <emphasis>Command</emphasis>-Modell anstelle einer <emphasis>Session "
+"Fassade</emphasis> einsetzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also attach a previously loaded object to a new <literal>Session</"
+"literal> with <literal>merge()</literal> or <literal>lock()</literal> before "
+"accessing uninitialized collections or other proxies. Hibernate does not, "
+"and certainly <emphasis>should</emphasis> not, do this automatically since "
+"it would introduce impromptu transaction semantics."
+msgstr ""
+"Sie können auch zuvor geladene Objekte mittels <literal>merge()</literal> or "
+"<literal>lock()</literal> an eine neue <literal>Session</literal> anhängen, "
+"ehe Sie auf nicht initialisierte Collections (oder andere Proxies) "
+"zugreifen. Hibernate tut dies nicht von selbst und <emphasis>sollte</"
+"emphasis> es auch nicht automatisch tun, da es dadurch zu Ad-hoc-"
+"Transaktionssemantik käme!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes you do not want to initialize a large collection, but still need "
+"some information about it, like its size, for example, or a subset of the "
+"data."
+msgstr ""
+"Manchmal möchten Sie eine groÃe Collection nicht initialisieren, aber "
+"benötigen dennoch Informationen (etwa deren GröÃe) oder einen Untersatz der "
+"Daten."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can use a collection filter to get the size of a collection without "
+"initializing it:"
+msgstr ""
+"Sie können einen Collection-Filter verwenden, um die GröÃe der Collection zu "
+"ermitteln ohne diese zu initialisieren:"
+
+#. 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 ""
+"Die <literal>createFilter()</literal>-Methode wird auÃerdem benutzt, um "
+"effizient Untersätze einer Collection abzurufen, ohne die gesamte Collection "
+"zu initialisieren:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr "Die Verwendung von Stapelabruf (\"Batch-Fetching\")"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Using batch fetching, Hibernate can load several uninitialized proxies if "
+"one proxy is accessed. Batch fetching is an optimization of the lazy select "
+"fetching strategy. There are two ways you can configure batch fetching: on "
+"the class level and the collection level."
+msgstr ""
+"Hibernate kann den Stapelabruf effizient nutzen, d.h. Hibernate kann mehrere "
+"nicht initialisierte Proxies laden, wenn auf einen Proxy zugegriffen wird "
+"(oder Collections). Beim Stapelabruf handelt es sich um eine Optimierung der "
+"\"lazy\" Auswahlabruf-Strategie (\"Select-Fetching\"). Es gibt zwei Arten, "
+"auf die sich der Stapelabruf abstimmen lässt: Auf der Klassen- sowie auf der "
+"Collection-Ebene."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Batch fetching for classes/entities is easier to understand. Consider the "
+"following example: at runtime you have 25 <literal>Cat</literal> instances "
+"loaded in a <literal>Session</literal>, and each <literal>Cat</literal> has "
+"a reference to its <literal>owner</literal>, a <literal>Person</literal>. "
+"The <literal>Person</literal> class is mapped with a proxy, <literal>lazy="
+"\"true\"</literal>. If you now iterate through all cats and call "
+"<literal>getOwner()</literal> on each, Hibernate will, by default, execute "
+"25 <literal>SELECT</literal> statements to retrieve the proxied owners. You "
+"can tune this behavior by specifying a <literal>batch-size</literal> in the "
+"mapping of <literal>Person</literal>:"
+msgstr ""
+"Der Stapelabruf für Klassen/Entities ist leichter zu verstehen. Stellen Sie "
+"sich vor, Sie hätten zur Runtime folgende Situation: Sie haben 25 "
+"<literal>Cat</literal>-Instanzen in einer <literal>Session</literal> "
+"geladen, jede <literal>Cat</literal> besitzt eine Referenz zu ihrem "
+"<literal>owner</literal>, einer <literal>Person</literal>. Die "
+"<literal>Person</literal>-Klasse ist mit einem Proxy <literal>lazy=\"true\"</"
+"literal> gemappt. Falls Sie nun über alle \"Cats\" hinweg iterieren und für "
+"jede <literal>getOwner()</literal> aufrufen, so wird Hibernate in der "
+"Standardeinstellung 25 <literal>SELECT</literal>-Anweisungen ausführen, um "
+"die geproxieten Besitzer zu erhalten. Sie können dieses Verhalten durch "
+"Bestimmung eines <literal>batch-size</literal> im Mapping von "
+"<literal>Person</literal> festlegen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgstr ""
+"Hibernate führt nun nur drei Anfragen aus, das Muster lautet 10, 10, 5."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also enable batch fetching of collections. For example, if each "
+"<literal>Person</literal> has a lazy collection of <literal>Cat</literal>s, "
+"and 10 persons are currently loaded in the <literal>Session</literal>, "
+"iterating through all persons will generate 10 <literal>SELECT</literal>s, "
+"one for every call to <literal>getCats()</literal>. If you enable batch "
+"fetching for the <literal>cats</literal> collection in the mapping of "
+"<literal>Person</literal>, Hibernate can pre-fetch collections:"
+msgstr ""
+"Sie können auch den Stapelabruf für Collections aktivieren. Wenn zum "
+"Beispiel jede <literal>Person</literal> eine \"lazy\" Collection von "
+"<literal>Cat</literal>s besitzt und zum aktuellen Zeitpunkt 10 Personen in "
+"der <literal>Sesssion</literal> geladen sind, so wird die Iterierung über "
+"alle Personen 10 <literal>SELECT</literal>s generieren, eines für jeden "
+"Aufruf von <literal>getCats()</literal>. Falls Sie den Stapelabruf für die "
+"<literal>cats</literal>-Collection im Mapping von <literal>Person</literal> "
+"aktivieren, kann Hibernate Collections vorab abrufen:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Bei einem <literal>batch-size</literal> von 8, lädt Hibernate 3, 3, 3, 1 "
+"Collections in vier <literal>SELECT</literal>s. Auch hier hängt der Wert des "
+"Attributs von der zu erwartenden Anzahl nicht initialisierter Collections in "
+"einer bestimmten <literal>Session</literal> ab."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Batch fetching of collections is particularly useful if you have a nested "
+"tree of items, i.e. the typical bill-of-materials pattern. However, a "
+"<emphasis>nested set</emphasis> or a <emphasis>materialized path</emphasis> "
+"might be a better option for read-mostly trees."
+msgstr ""
+"Der Stapelabruf von Collections ist besonders hilfreich, wenn Sie einen "
+"verschachtelten Baum von Posten besitzen, d.h. das typische \"Bill-of-"
+"Materials\"-Modell. (Obwohl ein <emphasis>verschachtelter Satz</emphasis> "
+"oder ein <emphasis>realisierter Pfad</emphasis> eine möglicherweise bessere "
+"Option für \"read-mostly\"-Bäume ist)."
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr "Die Verwendung von \"Subselect-Fetching\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If one lazy collection or single-valued proxy has to be fetched, Hibernate "
+"will load all of them, re-running the original query in a subselect. This "
+"works in the same way as batch-fetching but without the piecemeal loading."
+msgstr ""
+"Falls eine \"lazy\" Collection oder ein einwertiges Proxy abgerufen werden "
+"muss, so lädt Hibernate alle und führt die ursprüngliche Anfrage in einer "
+"Unterauswahl (\"Subselect\") erneut aus. Das funktioniert auf diesselbe "
+"Weise wie Stapelabruf, ohne das stückweise Laden."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Fetch profiles"
+msgstr "Abrufstrategien"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another way to affect the fetching strategy for loading associated objects "
+"is through something called a fetch profile, which is a named configuration "
+"associated with the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> but enabled, by name, on the <interfacename>org.hibernate."
+"Session</interfacename>. Once enabled on a <interfacename>org.hibernate."
+"Session</interfacename>, the fetch profile wull be in affect for that "
+"<interfacename>org.hibernate.Session</interfacename> until it is explicitly "
+"disabled."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"So what does that mean? Well lets explain that by way of an example. Say we "
+"have the following mappings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now normally when you get a reference to a particular customer, that "
+"customer's set of orders will be lazy meaning we will not yet have loaded "
+"those orders from the database. Normally this is a good thing. Now lets say "
+"that you have a certain use case where it is more efficient to load the "
+"customer and their orders together. One way certainly is to use \"dynamic "
+"fetching\" strategies via an HQL or criteria queries. But another option is "
+"to use a fetch profile to achieve that. Just add the following to your "
+"mapping:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now the following code will actually load both the customer <emphasis>and "
+"their orders</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Currently only join style fetch profiles are supported, but they plan is to "
+"support additional styles. See <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr "Die Verwendung von \"Lazy-Property-Fetching\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 supports the lazy fetching of individual properties. This "
+"optimization technique is also known as <emphasis>fetch groups</emphasis>. "
+"Please note that this is mostly a marketing feature; optimizing row reads is "
+"much more important than optimization of column reads. However, only loading "
+"some properties of a class could be useful in extreme cases. For example, "
+"when legacy tables have hundreds of columns and the data model cannot be "
+"improved."
+msgstr ""
+"Hibernate3 unterstützt das \"lazy\" Fetching einzelner Properties. Diese "
+"Optimierungstechnik ist auch unter dem Namen <emphasis>Abrufgruppen</"
+"emphasis> (sog. Fetch Groups\") bekannt. Bitte beachten Sie, dass es sich "
+"hierbei meist um ein Marketing-Feature handelt, da in der Praxis die "
+"Optimierung des Lesens von Reihen wesentlich wichtiger ist als die "
+"Optimierung des Lesens von Spalten. Jedoch kann es in manchen Fällen "
+"nützlich sein, einige Properties einer Klasse zu laden, wenn Stammtabellen "
+"hunderte von Spalten besitzen und das Datenmodell nicht verbessert werden "
+"kann."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To enable lazy property loading, set the <literal>lazy</literal> attribute "
+"on your particular property mappings:"
+msgstr ""
+"Um das \"lazy\" Laden von Properties zu aktivieren, setzen Sie das "
+"<literal>lazy</literal>-Attribut auf Ihr bestimmtes Property-Mapping:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Lazy property loading requires buildtime bytecode instrumentation. If your "
+"persistent classes are not enhanced, Hibernate will ignore lazy property "
+"settings and return to immediate fetching."
+msgstr ""
+"Das \"lazy\" Property Laden erfordert Buildtime-Bytecode Instrumentierung! "
+"Falls Ihre persistenten Klassen nicht erweitert sind, so übergeht Hibernate "
+"stillschweigend die \"lazy\" Property-Einstellungen und verwendet erneut "
+"unmittelbaren Abruf (sog. \"immediate Fetching\")."
+
+#. Tag: para
+#, no-c-format
+msgid "For bytecode instrumentation, use the following Ant task:"
+msgstr "Für die Bytecode-Instrumentierung verwenden Sie folgende Ant-Funktion:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A different way of avoiding unnecessary column reads, at least for read-only "
+"transactions, is to use the projection features of HQL or Criteria queries. "
+"This avoids the need for buildtime bytecode processing and is certainly a "
+"preferred solution."
+msgstr ""
+"Eine andere (möglicherweise bessere) Art der Vermeidung unnötigen Lesens von "
+"Spalten besteht zumindest bei \"read-only\" (schreibgeschützten) "
+"Transaktionen in der Verwendung der Projektionsfeatures von HQL- oder "
+"Kriterienanfragen. Dadurch wird Buildtime Bytecode-Verarbeitung vermieden, "
+"und dies ist daher die bevorzugte Lösung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can force the usual eager fetching of properties using <literal>fetch "
+"all properties</literal> in HQL."
+msgstr ""
+"Mittels <literal>fetch all properties</literal> in HQL können Sie das "
+"übliche \"eager Fetching\" von Properties erzwingen."
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr "Das Cache der zweiten Ebene"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A Hibernate <literal>Session</literal> is a transaction-level cache of "
+"persistent data. It is possible to configure a cluster or JVM-level "
+"(<literal>SessionFactory</literal>-level) cache on a class-by-class and "
+"collection-by-collection basis. You can even plug in a clustered cache. Be "
+"aware that caches are not aware of changes made to the persistent store by "
+"another application. They can, however, be configured to regularly expire "
+"cached data."
+msgstr ""
+"Bei einer Hibernate <literal>Session</literal> handelt es sich um ein Cache "
+"persistenter Daten auf Transaktionsebene. Es ist möglich, auf Klasse-nach-"
+"Klasse und Collection-nach-Collection-Basis ein Cache auf Cluster- oder JVM-"
+"Ebene zu konfigurieren (<literal>SessionFactory</literal>-Ebene). Sie können "
+"sogar in ein geclustertes Cache einbinden. Lassen Sie jedoch Vorsicht "
+"walten. Caches sind nie über Ãnderungen durch eine andere Anwendung im "
+"persistenten Speicher informiert (obwohl sie so konfiguriert werden können, "
+"dass gecachte Daten in regelmäÃigen Abständen gelöscht werden)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You have the option to tell Hibernate which caching implementation to use by "
+"specifying the name of a class that implements <literal>org.hibernate.cache."
+"CacheProvider</literal> using the property <literal>hibernate.cache."
+"provider_class</literal>. Hibernate is bundled with a number of built-in "
+"integrations with the open-source cache providers that are listed below. You "
+"can also implement your own and plug it in as outlined above. Note that "
+"versions prior to 3.2 use EhCache as the default cache provider."
+msgstr ""
+"Sie haben die Möglichkeit Hibernate mitzuteilen, welche Caching-"
+"Implementierung es verwenden soll, indem Sie den Namen der Klasse bestimmen, "
+"die <literal>org.hibernate.cache.CacheProvider</literal> unter Verwendung "
+"der Property <literal>hibernate.cache.provider_class</literal> "
+"implementiert. Hibernate kommt gebündelt mit einer Reihe eingebauter "
+"Integrationen mit Open Source Cache-Providern (unten aufgeführt); Sie können "
+"zusätzlich Ihren eigenen implementieren und diesen wie oben beschrieben "
+"einbinden. Bitte beachten Sie, dass Versionen, die älter sind als 3.2 "
+"standardmäÃig EhCache als Standard-Cache-Provider verwenden, dies ist seit "
+"3.2 jedoch nicht mehr der Fall."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr "Cache-Provider"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr "Cache"
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr "Provider-Klasse"
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr "Typ"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr "Cluster-sicher"
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr "Anfragen-Cache unterstützt"
+
+#. Tag: entry
+#, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr "Hash-Tabelle (nicht für den Produktionsgebrauch vorgesehen)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "org.hibernate.cache.HashtableCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr "Speicher"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "EHCache"
+msgstr "EHCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "org.hibernate.cache.EhCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr "Speicher, Disk"
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr "OSCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "org.hibernate.cache.OSCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr "SwarmCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "org.hibernate.cache.SwarmCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr "geclustert (ip multicast)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr "ja (geclusterte AuÃerkraftsetzung)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr "JBoss TreeCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "org.hibernate.cache.TreeCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr "geclustert (ip multicast), transaktional"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr "ja (Replikation)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr "ja (clock sync req.)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "JBoss Cache 2"
+msgstr "JBoss TreeCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr "org.hibernate.transaction.JDBCTransactionFactory"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr "ja (geclusterte AuÃerkraftsetzung)"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr "Cache-Mappings"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><cache></literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"Das <literal><cache></literal>-Element des Mappings einer Klasse oder "
+"Collection besitzt folgende Form:"
+
+#. 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> (erforderlich) bestimmt die Caching-Strategie: "
+"<literal>transactional</literal>, <literal>read-write</literal>, "
+"<literal>nonstrict-read-write</literal> oder <literal>read-only</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>region</literal> (optional: defaults to the class or collection "
+"role name): specifies the name of the second level cache region"
+msgstr ""
+"<literal>region</literal> (optional, im Standard der Rollenname von Klasse "
+"oder Collection) bestimmt den Namen des Cache-Bereichs der zweiten Ebene"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>include</literal> (optional: defaults to <literal>all</literal>) "
+"<literal>non-lazy</literal>: specifies that properties of the entity mapped "
+"with <literal>lazy=\"true\"</literal> cannot be cached when attribute-level "
+"lazy fetching is enabled"
+msgstr ""
+"<literal>include</literal> (optional, standardmäÃig <literal>all</literal>) "
+"<literal>non-lazy</literal> bestimmt, dass Properties der mit <literal>lazy="
+"\"true\"</literal> gemappten Entity nicht gecacht werden können, wenn auf "
+"Attributebene \"lazy Fetching\" aktiviert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, you can specify <literal><class-cache></literal> and "
+"<literal><collection-cache></literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"Alternativ (vorzugsweise?) können Sie <literal><class-cache></literal> "
+"und <literal><collection-cache></literal>-Elemente in "
+"<literal>hibernate.cfg.xml</literal> bestimmen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>usage</literal> attribute specifies a <emphasis>cache "
+"concurrency strategy</emphasis>."
+msgstr ""
+"Das <literal>usage</literal>-Attribut bestimmt eine <emphasis>Cache-"
+"Nebenläufigkeitsstrategie</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr "Strategie: \"read only\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your application needs to read, but not modify, instances of a persistent "
+"class, a <literal>read-only</literal> cache can be used. This is the "
+"simplest and optimal performing strategy. It is even safe for use in a "
+"cluster."
+msgstr ""
+"Falls Ihre Anwendungen Instanzen einer persistenten Klasse lesen, aber nie "
+"modifizieren muss, kann ein <literal>read-only</literal>-Cache verwendet "
+"werden. Das ist die einfachste und leistungsfähigste Strategie. Sie ist "
+"sogar bei der Anwendung in einem Cluster völlig sicher."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr "Strategie: \"read/write\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the application needs to update data, a <literal>read-write</literal> "
+"cache might be appropriate. This cache strategy should never be used if "
+"serializable transaction isolation level is required. If the cache is used "
+"in a JTA environment, you must specify the property <literal>hibernate."
+"transaction.manager_lookup_class</literal> and naming a strategy for "
+"obtaining the JTA <literal>TransactionManager</literal>. In other "
+"environments, you should ensure that the transaction is completed when "
+"<literal>Session.close()</literal> or <literal>Session.disconnect()</"
+"literal> is called. If you want to use this strategy in a cluster, you "
+"should ensure that the underlying cache implementation supports locking. The "
+"built-in cache providers <emphasis>do not</emphasis> support locking."
+msgstr ""
+"Falls die Anwendung Daten aktualisieren muss, so ist ein <literal>read-"
+"write</literal>-Cache eine geeignete Wahl. Diese Cache-Strategie sollte "
+"jedoch nie dann benutzt werden, wenn eine serialisierbare "
+"Transaktionsisolationsebene benötigt wird. Falls das Cache in einer JTA-"
+"Umgebung verwendet wird, müssen Sie die Property <literal>hibernate."
+"transaction.manager_lookup_class</literal> bestimmen und eine Strategie für "
+"die Abfrage des JTA <literal>TransactionManager</literal> benennen. In "
+"anderen Umgebungen sollten Sie sicherstellen, dass die Transaktion beendet "
+"ist, wenn <literal>Session.close()</literal> oder <literal>Session.disconnect"
+"()</literal> aufgerufen wird. Falls Sie diese Strategie in einem Cluster "
+"benutzen möchten, sollten Sie sicherstellen, dass die zu Grunde liegende "
+"Cache-Implementierung \"Locking\" (Sperren) unterstützt. Die eingebauten "
+"Cache-Provider tun dies <emphasis>nicht</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr "Strategie: \"nonstrict read/write\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the application only occasionally needs to update data (i.e. if it is "
+"extremely unlikely that two transactions would try to update the same item "
+"simultaneously), and strict transaction isolation is not required, a "
+"<literal>nonstrict-read-write</literal> cache might be appropriate. If the "
+"cache is used in a JTA environment, you must specify <literal>hibernate."
+"transaction.manager_lookup_class</literal>. In other environments, you "
+"should ensure that the transaction is completed when <literal>Session.close()"
+"</literal> or <literal>Session.disconnect()</literal> is called."
+msgstr ""
+"Falls die Anwendung nur von Zeit zu Zeit Daten aktualisieren muss (d.h. wenn "
+"es sehr unwahrscheinlich ist, dass zwei Transaktionen denselben Posten "
+"gleichzeitig zu aktualisieren versuchen würden) und keine strenge "
+"Transaktionsisolation erforderlich ist, so kann ein <literal>nonstrict-read-"
+"write</literal>-Cache eine passende Wahl sein. Wird das Cache in einer JTA-"
+"Umgebung verwendet, so müssen Sie die <literal>hibernate.transaction."
+"manager_lookup_class</literal> festlegen. In anderen Umgebungen sollten Sie "
+"sicherstellen, dass die Transaktion abgeschlossen ist, wenn <literal>Session."
+"close()</literal> oder <literal>Session.disconnect()</literal> aufgerufen "
+"wird."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr "Strategie: transaktional"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>transactional</literal> cache strategy provides support for "
+"fully transactional cache providers such as JBoss TreeCache. Such a cache "
+"can only be used in a JTA environment and you must specify "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
+msgstr ""
+"Die <literal>transactional</literal> Cache-Strategie liefert Support für "
+"vollständig transaktionale Cache-Provider wie etwa JBoss TreeCache. Ein "
+"solches Cache kann nur in einer JTA-Umgebung verwendet werden, und Sie "
+"müssen <literal>hibernate.transaction.manager_lookup_class</literal> "
+"bestimmen."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr "Cache-Nebenläufigkeitsstrategie-Support"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies."
+msgstr ""
+"Keiner der Cache-Provider unterstützt alle Cache-Nebenläufigkeitsstrategien. "
+"Die folgende Tabelle zeigt, welche Provider mit welchen "
+"Nebenläufigkeitsstrategien kompatibel sind."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table shows which providers are compatible with which "
+"concurrency strategies."
+msgstr ""
+"Keiner der Cache-Provider unterstützt alle Cache-Nebenläufigkeitsstrategien. "
+"Die folgende Tabelle zeigt, welche Provider mit welchen "
+"Nebenläufigkeitsstrategien kompatibel sind."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Concurrency Strategy Support"
+msgstr "Cache-Nebenläufigkeitsstrategie-Support"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr "read-only"
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr "nonstrict-read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr "read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr "transactional"
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr "Management der Caches"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Whenever you pass an object to <literal>save()</literal>, <literal>update()</"
+"literal> or <literal>saveOrUpdate()</literal>, and whenever you retrieve an "
+"object using <literal>load()</literal>, <literal>get()</literal>, "
+"<literal>list()</literal>, <literal>iterate()</literal> or <literal>scroll()"
+"</literal>, that object is added to the internal cache of the "
+"<literal>Session</literal>."
+msgstr ""
+"Jedesmal wenn ein Objekt an <literal>save()</literal>, <literal>update()</"
+"literal> oder <literal>saveOrUpdate()</literal> weitergegeben wird und Sie "
+"ein Objekt unter Verwendung von <literal>load()</literal>, <literal>get()</"
+"literal>, <literal>list()</literal>, <literal>iterate()</literal> oder "
+"<literal>scroll()</literal> abrufen, wird das Objekt dem internen Cache der "
+"<literal>Session</literal> hinzugefügt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When <literal>flush()</literal> is subsequently called, the state of that "
+"object will be synchronized with the database. If you do not want this "
+"synchronization to occur, or if you are processing a huge number of objects "
+"and need to manage memory efficiently, the <literal>evict()</literal> method "
+"can be used to remove the object and its collections from the first-level "
+"cache."
+msgstr ""
+"Wenn anschlieÃend <literal>flush()</literal> aufgerufen wird, wird der "
+"Status des Objekts mit der Datenbank synchronisiert. Falls Sie nicht "
+"möchten, dass diese Synchronisierung stattfindet oder falls Sie eine riesige "
+"Anzahl von Objekten bearbeiten und effizient mit dem Speicher haushalten "
+"müssen, so können mittels der <literal>evict()</literal>-Methode das Objekt "
+"und dessen Collections aus dem Cache der ersten Ebene entfernt werden."
+
+#. 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 ""
+"Die <literal>Session</literal> bietet auÃerdem eine <literal>contains()</"
+"literal>-Methode um zu bestimmen, ob eine Instanz zu dem Session-Cache "
+"gehört."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To evict all objects from the session cache, call <literal>Session.clear()</"
+"literal>"
+msgstr ""
+"Um sämtliche Objekte vollständig aus dem Session-Cache zu entfernen, "
+"verwenden Sie <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 ""
+"Für das Cache der zweiten Ebene gibt es in der <literal>SessionFactory</"
+"literal> definierte Methoden, um den gecachten Status einer Instanz, "
+"gesamten Klasse, Collection-Instanz oder der gesamten Collection-Rolle zu "
+"räumen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>CacheMode</literal> controls how a particular session interacts "
+"with the second-level cache:"
+msgstr ""
+"Mit <literal>CacheMode</literal> wird gesteuert, wie eine bestimmte Session "
+"mit dem Cache der zweiten Ebene interagiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
+msgstr ""
+"<literal>CacheMode.NORMAL</literal> - liest Posten aus dem und schreibt "
+"Posten in das Cache der zweiten Ebene"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.GET</literal>: will read items from the second-level "
+"cache. Do not write to the second-level cache except when updating data"
+msgstr ""
+"<literal>CacheMode.GET</literal> - liest Posten aus dem Cache der zweiten "
+"Ebene, schreibt jedoch nichts in das Cache der zweiten Ebene auÃer bei "
+"Aktualisierung der Daten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.PUT</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache"
+msgstr ""
+"<literal>CacheMode.PUT</literal> - schreibt Posten in das Cache der zweiten "
+"Ebene, aber liest nicht aus dem Cache der zweiten Ebene"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.REFRESH</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache. Bypass the effect of "
+"<literal>hibernate.cache.use_minimal_puts</literal> forcing a refresh of the "
+"second-level cache for all items read from the database"
+msgstr ""
+"<literal>CacheMode.REFRESH</literal> - schreibt Posten in das Cache der "
+"zweiten Ebene, aber liest nicht aus dem Cache der zweiten Ebene, umgeht die "
+"Wirkung von <literal>hibernate.cache.use_minimal_puts</literal> und erzwingt "
+"ein erneutes Laden des Cache der zweiten Ebene für alle aus der Datenbank "
+"gelesenen Objekte."
+
+#. 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 ""
+"Um die Inhalte eines Cache der zweiten Ebene oder eines Cache-Bereichs zu "
+"durchsuchen, verwenden Sie die <literal>Statistics</literal>-API:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You will need to enable statistics and, optionally, force Hibernate to keep "
+"the cache entries in a more readable format:"
+msgstr ""
+"Sie werden die Statistik aktivieren müssen und können optional Hibernate "
+"zwingen, Cache-Eingaben in einem lesbaren Format zu halten:"
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr "Das Anfragen-Cache"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Query result sets can also be cached. This is only useful for queries that "
+"are run frequently with the same parameters."
+msgstr ""
+"Ergebnissätze von Anfragen können ebenfalls gecacht werden. Das ist jedoch "
+"nur für Anfragen, die oft und mit denselben Parametern laufen, sinnvoll. Um "
+"das Anfragen-Cache zu benutzen, müssen Sie es zuerst aktivieren:"
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Caching of query results introduces some overhead in terms of your "
+"applications normal transactional processing. For example, if you cache "
+"results of a query against Person Hibernate will need to keep track of when "
+"those results should be invalidated because changes have been committed "
+"against Person. That, coupled with the fact that most applications simply "
+"gain no benefit from caching query results, leads Hibernate to disable "
+"caching of query results by default. To use query caching, you will first "
+"need to enable the query cache:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the "
+"cached query results"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding "
+"timestamps of the most recent updates to queryable tables. These are used to "
+"validate the results as they are served from the query cache."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you configure your underlying cache implementation to use expiry or "
+"timeouts is is very important that the cache timeout of the underlying cache "
+"region for the UpdateTimestampsCache be set to a higher value than the "
+"timeouts of any of the query caches. In fact, we recommend that the the "
+"UpdateTimestampsCache region not be configured for expiry at all. Note, in "
+"particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As mentioned above, most queries do not benefit from caching or their "
+"results. So by default, individual queries are not cached even after "
+"enabling query caching. To enable results caching for a particular query, "
+"call <literal>org.hibernate.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 ""
+"Bei den meisten Anfragen ist Caching von keinem groÃen Nutzen, daher werden "
+"Anfragen in der Standardeinstellung nicht gecacht. Um Caching zu aktivieren "
+"rufen Sie <literal>Query.setCacheable(true)</literal> auf. Dieser Aufruf "
+"ermöglicht es der Anfrage nach bestehenden Cache-Ergebnissen zu suchen oder "
+"ihre Ergebnisse dem Cache hinzuzufügen, wenn sie ausgeführt wird."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query cache does not cache the state of the actual entities in the "
+"cache; it caches only identifier values and results of value type. For this "
+"reaso, the query cache should always be used in conjunction with the second-"
+"level cache for those entities expected to be cached as part of a query "
+"result cache (just as with collection caching)."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Query cache regions"
+msgstr "Anfragen-Cache unterstützt"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you require fine-grained control over query cache expiration policies, "
+"you can specify a named cache region for a particular query by calling "
+"<literal>Query.setCacheRegion()</literal>."
+msgstr ""
+"Falls Sie eine feinstufige Steuerung der Fälligkeitsrichtlinien benötigen, "
+"können Sie einen benannten Cache-Bereich für eine bestimmte Anfrage "
+"festlegen, indem Sie <literal>Query.setCacheRegion()</literal> aufrufen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to force the query cache to refresh one of its regions "
+"(disregard any cached results it finds there) you can use <literal>org."
+"hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction "
+"with the region you have defined for the given query, Hibernate will "
+"selectively force the results cached in that particular region to be "
+"refreshed. This is particularly useful in cases where underlying data may "
+"have been updated via a separate process and is a far more efficient "
+"alternative to bulk eviction of the region via <literal>org.hibernate."
+"SessionFactory.evictQueries()</literal>."
+msgstr ""
+"Falls die Anfrage ein erneutes Laden des Cache-Bereichs der Anfrage "
+"erzwingen soll, so rufen Sie <literal>Query.setCacheMode(CacheMode.REFRESH)</"
+"literal> auf. Das ist besonders in Fällen von Nutzen, wenn die zu Grunde "
+"liegenden Daten mittels eines separaten Vorgangs (d.h. nicht durch Hibernate "
+"modifiziert) aktualisiert wurden. Dadurch ist es der Anwendung möglich, "
+"selektiv bestimmte Ergenissätze der Anfrage neu zu laden. Das ist eine "
+"effizientere Alternative als die Räumung eines Cache-Bereichs der Anfrage "
+"durch <literal>SessionFactory.evictQueries()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr "Die Perfomance der Collection verstehen"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr "Taxonomie"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr "Hibernate unterscheidet drei Grundtypen von Collections:"
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr "Collections von Werten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "one-to-many associations"
+msgstr "\"One-to-Many\"-Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "many-to-many associations"
+msgstr "\"Many-to-Many\"-Assoziationen"
+
+#. 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 ""
+"Diese Klassifizierung unterscheidet die verschiedenen Tabellen- und "
+"Fremdschlüsselbeziehungen, aber sagt so gut wie nichts über das relationale "
+"Modell aus. Um die relationale Struktur und Performance-Eigenschaften "
+"vollständig zu verstehen, müssen wir die Struktur des von Hibernate zur "
+"Aktualisierung und Löschung von Reihen der Collection verwendeten "
+"Primärschlüssels berücksichtigen. Das legt die folgende Klassifizierung nahe:"
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr "indizierte Collections"
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr "Sets"
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr "Bags"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal><key></literal> and <literal><index></"
+"literal> columns. In this case, collection updates are extremely efficient. "
+"The primary key can be efficiently indexed and a particular row can be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"Alle indizierten Collections (Maps, Listen, Arrays) besitzen einen "
+"Primärschlüssel, der aus den <literal><key></literal> und <literal><"
+"index></literal>-Spalten besteht. In diesem Fall sind Aktualisierungen "
+"der Collection sehr effizient - der Primärschlüssel kann effizient indiziert "
+"werden und eine bestimmte Reihe kann effizient lokalisiert werden, wenn "
+"Hibernate diese zu aktualisieren oder löschen versucht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal><key></literal> and "
+"element columns. This can be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields, as "
+"the database may not be able to index a complex primary key as efficiently. "
+"However, for one-to-many or many-to-many associations, particularly in the "
+"case of synthetic identifiers, it is likely to be just as efficient. If you "
+"want <literal>SchemaExport</literal> to actually create the primary key of a "
+"<literal><set></literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"Sets besitzen einen Primärschlüssel, der aus <literal><key></literal> "
+"und Elementspalten besteht. Das kann für einige Typen von Collection-Element "
+"weniger effizient sein, insbesondere im Fall von zusammengesetzten Elementen "
+"oder groÃem Text oder Binärfeldern ist es möglich, dass die Datenbank einen "
+"komplexen Primärschlüssel nicht so effizient indizieren kann. Andererseits "
+"kann für \"One-to-Many\" und \"Many-to-Many\"-Assoziationen - insbesondere "
+"bei synthetischem Bezeichner - dieselbe Effizienz existieren."
+"(Nebenbemerkung: Falls <literal>SchemaExport</literal> tatsächlich den "
+"Primärschlüssel eines <literal><set></literal> für Sie erstellen soll, "
+"so müssen Sie alle Spalten als <literal>not-null=\"true\"</literal> "
+"deklarieren)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal><idbag></literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"<literal><idbag></literal>-Mappings definieren einen "
+"Surrogatschlüssel, so dass sie sich immer sehr effizient aktualisieren "
+"lassen. Genau genommen, ist das der beste Fall."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Bags are the worst case since they permit duplicate element values and, as "
+"they have no index column, no primary key can be defined. Hibernate has no "
+"way of distinguishing between duplicate rows. Hibernate resolves this "
+"problem by completely removing in a single <literal>DELETE</literal> and "
+"recreating the collection whenever it changes. This can be inefficient."
+msgstr ""
+"Mit den Bags verhält es sich am schwierigsten. Da eine Bag doppelte "
+"Elementwerte gestattet und keine Indexspalte besitzt, kann kein "
+"Primärschlüssel definiert werden. Hibernate hat keine Möglichkeit, doppelte "
+"Reihen zu unterscheiden. Hibernate löst dieses Problem, indem es die "
+"Collection bei jeder Ãnderung vollständig entfernt (in einem einzelnen "
+"<literal>DELETE</literal>) und erneut herstellt. Das kann jedoch sehr "
+"ineffizient sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For a one-to-many association, the \"primary key\" may not be the physical "
+"primary key of the database table. Even in this case, the above "
+"classification is still useful. It reflects how Hibernate \"locates\" "
+"individual rows of the collection."
+msgstr ""
+"Bitte beachten Sie, dass für eine \"One-to-Many\"-Assoziation der "
+"\"Primärschlüssel\" möglicherweise nicht der physische Primärschlüssel der "
+"Datenbanktabelle ist - aber selbst in diesem Fall ist die vorherige "
+"Klassifizierung noch sinnvoll. (Sie spiegelt nach wie vor wider, wie "
+"Hibernate einzelne Reihen der Collection \"lokalisiert\")."
+
+#. Tag: title
+#, no-c-format
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
+msgstr ""
+"Listen, Maps, \"idbags\" und Sets sind die am effizientesten zu "
+"aktualisierenden Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"From the discussion above, it should be clear that indexed collections and "
+"sets allow the most efficient operation in terms of adding, removing and "
+"updating elements."
+msgstr ""
+"Die vorangegangene Erläuterung zeigt deutlich, dass indizierte Collections "
+"und (in der Regel) Sets hinsichtlich des Hinzufügens, Entfernens und "
+"Aktualisierens von Reihen die effizientesten Vorgänge erlauben."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is, arguably, one more advantage that indexed collections have over "
+"sets for many-to-many associations or collections of values. Because of the "
+"structure of a <literal>Set</literal>, Hibernate does not <literal>UPDATE</"
+"literal> a row when an element is \"changed\". Changes to a <literal>Set</"
+"literal> always work via <literal>INSERT</literal> and <literal>DELETE</"
+"literal> of individual rows. Once again, this consideration does not apply "
+"to one-to-many associations."
+msgstr ""
+"Es gibt wohl einen weiteren Vorteil, den indizierte Collections vor Sets für "
+"\"Many-to-Many\"-Assoziationen oder Collections von Werten besitzen. "
+"Aufgrund der Struktur eines <literal>Set</literal>, führt Hibernate nie ein "
+"<literal>UPDATE</literal> einer Reihe durch, wenn ein Element \"verändert\" "
+"ist. Ãnderungen an einem <literal>Set</literal> laufen immer mittels "
+"<literal>INSERT</literal> und <literal>DELETE</literal> (einzelner Reihen) "
+"ab. Auch hier gilt diese Ãberlegung nicht für \"One-to-Many\"-Assoziationen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After observing that arrays cannot be lazy, you can conclude that lists, "
+"maps and idbags are the most performant (non-inverse) collection types, with "
+"sets not far behind. You can expect sets to be the most common kind of "
+"collection in Hibernate applications. This is because the \"set\" semantics "
+"are most natural in the relational model."
+msgstr ""
+"Nachdem wir gesehen haben, dass Arrays nicht \"lazy\" sein können würden wir "
+"schlieÃen, dass Listen, Maps und \"idbags\" die performantesten (nicht-"
+"inversen) Collection-Typen gefolgt von Sets sind. Sets sind erwartungsgemäà "
+"die gängigsten Arten von Collections in Hibernate Anwendungen. Der Grund "
+"hierfür liegt in der Tatsache, dass die \"Set\"-Semantik im relationalen "
+"Modell die natürlichste ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, in well-designed Hibernate domain models, most collections are in "
+"fact one-to-many associations with <literal>inverse=\"true\"</literal>. For "
+"these associations, the update is handled by the many-to-one end of the "
+"association, and so considerations of collection update performance simply "
+"do not apply."
+msgstr ""
+"In guten Hibernate Domain-Modellen sehen wir jedoch, dass es sich bei den "
+"meisten Collections um \"One-to-Many\"-Assoziationen mit <literal>inverse="
+"\"true\"</literal> handelt. Für diese Assoziationen wird die Aktualisierung "
+"vom \"Many-to-One\"-Ende der Assoziation bearbeitet, so dass Ãberlegungen "
+"hinsichtlich der Performance der Collection-Aktualisierung nicht gelten."
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr "Bags und Listen sind die effizientesten invertierten Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is a particular case, however, in which bags, and also lists, are much "
+"more performant than sets. For a collection with <literal>inverse=\"true\"</"
+"literal>, the standard bidirectional one-to-many relationship idiom, for "
+"example, we can add elements to a bag or list without needing to initialize "
+"(fetch) the bag elements. This is because, unlike a <literal>set</literal>, "
+"<literal>Collection.add()</literal> or <literal>Collection.addAll()</"
+"literal> must always return true for a bag or <literal>List</literal>. This "
+"can make the following common code much faster:"
+msgstr ""
+"Ehe Sie jetzt \"Bags\" für immer verwerfen sollten wir erwähnen, dass ein "
+"spezieller Fall existiert, in dem \"Bags\" (und ebenso Listen) wesentlich "
+"performanter als Sets sind. Für eine Collection mit <literal>inverse=\"true"
+"\"</literal> (z.B. das standardmäÃige bidirektionale Idiom einer \"One-to-"
+"Many\"-Beziehung) können wir einer \"Bag\" oder Liste Elemente hinzufügen, "
+"ohne die Elemente der \"Bag\" initialisieren (abrufen) zu müssen! Das kommt "
+"daher, dass <literal>Collection.add()</literal> oder <literal>Collection."
+"addAll()</literal> stets mit \"true\" für eine \"Bag\" oder <literal>List</"
+"literal> reagieren müssen (anders als bei einem <literal>Set</literal>). "
+"Dadurch kann der folgende Code wesentlich schneller werden."
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr "\"One-Shot-Löschung\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Deleting collection elements one by one can sometimes be extremely "
+"inefficient. Hibernate knows not to do that in the case of an newly-empty "
+"collection (if you called <literal>list.clear()</literal>, for example). In "
+"this case, Hibernate will issue a single <literal>DELETE</literal>."
+msgstr ""
+"In manchen Fällen kann das einzelne Löschen von Elementen einer Collection "
+"sehr ineffizient sein. Hibernate weiÃ, was im Fall einer neu-geleerten "
+"Collection zu tun ist (falls Sie etwa <literal>list.clear()</literal> "
+"aufgerufen haben). Hibernate gibt dann ein einzelnes <literal>DELETE</"
+"literal> heraus, und wir sind fertig!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Suppose you added a single element to a collection of size twenty and then "
+"remove two elements. Hibernate will issue one <literal>INSERT</literal> "
+"statement and two <literal>DELETE</literal> statements, unless the "
+"collection is a bag. This is certainly desirable."
+msgstr ""
+"Nehmen wir an, wir fügen ein einzelnes Element einer Collection von 20 hinzu "
+"und wollten dann zwei Elemente entfernen. Hibernate gibt in diesem Fall eine "
+"<literal>INSERT</literal>-Anweisung und zwei <literal>DELETE</literal>-"
+"Anweisungen heraus (auÃer es handelt sich bei der Collection um eine \"Bag"
+"\"). Das ist auf jeden Fall wünschenswert."
+
+#. 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 ""
+"Nehmen wir jedoch an wir entfernen 18 Elemente, lieÃen also zwei übrig und "
+"fügten dann drei weitere hinzu. In diesem Fall gibt es zwei mögliche "
+"Vorgehensweisen:"
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr ""
+"die 18 Reihen eine nach der anderen löschen und anschlieÃend drei Reihen "
+"einfügen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"remove the whole collection in one SQL <literal>DELETE</literal> and insert "
+"all five current elements one by one"
+msgstr ""
+"die gesamte Collection entfernen (in einem SQL <literal>DELETE</literal>) "
+"und die fünf aktuellen Elemente (einzeln) einfügen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate cannot know that the second option is probably quicker. It would "
+"probably be undesirable for Hibernate to be that intuitive as such behavior "
+"might confuse database triggers, etc."
+msgstr ""
+"Hibernate weià nicht, dass die zweite Option in diesem Fall die "
+"wahrscheinlich schnellere ist. (Und es ist auch zweifelhaft, ob es gut wäre "
+"wenn Hibernate dies wüsste, da ein solches Verhalten Datenbank-Trigger "
+"verwirren könnte usw.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Fortunately, you can force this behavior (i.e. the second strategy) at any "
+"time by discarding (i.e. dereferencing) the original collection and "
+"returning a newly instantiated collection with all the current elements."
+msgstr ""
+"Glücklicherweise können Sie dieses Verhalten jederzeit durchsetzen (d.h. die "
+"zweite Option), indem Sie etwa die ursprüngliche Collection verwerfen und "
+"dann eine neu instantiierte Collection mit allen aktuellen Elementen "
+"wiedergeben. Das kann sich von Zeit zu Zeit als sehr hilfreich und "
+"leistungsfähig erweisen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"Natürlich gilt das \"One-Shot-Delete\" nicht für als <literal>inverse=\"true"
+"\"</literal> gemappte Collections."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr "Leistungsüberwachung"
+
+#. 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 ""
+"Optimierungen machen ohne Ãberwachung und Zugriff auf Performanzzahlen wenig "
+"Sinn. Hibernate liefert eine ganze Bandbreite von Zahlen zu seinen internen "
+"Vorgängen. Statistiken sind in Hibernate über die <literal>SessionFactory</"
+"literal> verfügbar."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr "Die Ãberwachung einer SessionFactory"
+
+#. 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 ""
+"Sie können auf zwei Arten auf <literal>SessionFactory</literal>-Metriken "
+"zugreifen. Die erste Möglichkeit ist es, <literal>sessionFactory."
+"getStatistics()</literal> aufzurufen und die <literal>Statistics</literal> "
+"selbst zu lesen und anzuzeigen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate can also use JMX to publish metrics if you enable the "
+"<literal>StatisticsService</literal> MBean. You can enable a single MBean "
+"for all your <literal>SessionFactory</literal> or one per factory. See the "
+"following code for minimalistic configuration examples:"
+msgstr ""
+"Hibernate kann auÃerdem JMX verwenden, um Metriken zu publizieren wenn Sie "
+"das <literal>StatisticsService</literal>-MBean aktivieren. Sie können ein "
+"einzelnes MBean für alle Ihre <literal>SessionFactory</literal>s oder aber "
+"eines pro Factory aktivieren. Sehen Sie sich den folgenden Code für "
+"minimalistische Konfigurationsbeispiele an:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can activate and deactivate the monitoring for a "
+"<literal>SessionFactory</literal>:"
+msgstr ""
+"Sie können die Ãberwachung für eine <literal>SessionFactory</literal> (de)"
+"aktivieren"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"at configuration time, set <literal>hibernate.generate_statistics</literal> "
+"to <literal>false</literal>"
+msgstr ""
+"zum Konfigurationszeitpunkt setzen Sie <literal>hibernate."
+"generate_statistics</literal> auf <literal>false</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> "
+"or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+msgstr ""
+"zur Runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</"
+"literal> oder <literal>hibernateStatsBean.setStatisticsEnabled(true)</"
+"literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Statistics can be reset programmatically using the <literal>clear()</"
+"literal> method. A summary can be sent to a logger (info level) using the "
+"<literal>logSummary()</literal> method."
+msgstr ""
+"Statistiken können programmatisch mit der <literal>clear()</literal>-Methode "
+"zurückgesetzt werden. Eine Zusammenfassung kann unter Verwendung der "
+"<literal>logSummary()</literal>-Methode auch an einen Logger (Info-Level) "
+"geschickt werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr "Metriken"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate provides a number of metrics, from basic information to more "
+"specialized information that is only relevant in certain scenarios. All "
+"available counters are described in the <literal>Statistics</literal> "
+"interface API, in three categories:"
+msgstr ""
+"Hibernate liefert eine Reihe von Metriken, die von ganz basalen bis sehr "
+"speziellen und ganz bestimmte Szenarios betreffenden reichen. Alle "
+"verfügbaren Zähler sind im <literal>Statistics</literal>-Interface API, in "
+"drei Kategorien beschrieben:"
+
+#. 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 ""
+"Mit dem allgemeinen <literal>Session</literal>-Gebrauch zusammenhängende "
+"Metriken wie etwa die Anzahl geöffneter Sessions, abgerufener JDBC-"
+"Verbindungen usw."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Metrics related to the entities, collections, queries, and caches as a whole "
+"(aka global metrics)."
+msgstr ""
+"Mit Entities, Collections, Anfragen und Caches insgesamt zusammenhängende "
+"Metriken (auch als allgemeingültige Metriken bekannt, sog. \"global metrics"
+"\")"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Detailed metrics related to a particular entity, collection, query or cache "
+"region."
+msgstr ""
+"Detaillierte Metriken, die sich auf eine bestimmte Entity, Collection, "
+"Anfrage oder Cache-Region beziehen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For example, you can check the cache hit, miss, and put ratio of entities, "
+"collections and queries, and the average time a query needs. Be aware that "
+"the number of milliseconds is subject to approximation in Java. Hibernate is "
+"tied to the JVM precision and on some platforms this might only be accurate "
+"to 10 seconds."
+msgstr ""
+"Sie können zum Beispiel Cache-Treffer und Nicht-Treffer, das Verhältnis von "
+"Entities, Collections und Anfragen und die durchschnittliche Dauer bis zur "
+"Rückmeldung prüfen. Bitte berücksichtigen Sie, dass es sich bei der Anzahl "
+"von Millisekunden in Java um eine Näherungswert handelt. Hibernate ist an "
+"die Genauigkeit der JVM gebunden und auf manchen Plattformen kann das nur "
+"auf 10 Sekunden genau sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Simple getters are used to access the global metrics (i.e. not tied to a "
+"particular entity, collection, cache region, etc.). You can access the "
+"metrics of a particular entity, collection or cache region through its name, "
+"and through its HQL or SQL representation for queries. Please refer to the "
+"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal>, and <literal>QueryStatistics</"
+"literal> API Javadoc for more information. The following code is a simple "
+"example:"
+msgstr ""
+"Einfache \"Getters\" werden für den Zugriff auf allgemeine Metriken (d.h. "
+"nicht an eine bestimmte Entity, Collection, Cache-Bereich usw.) verwendet. "
+"Sie können auf die Metriken einer bestimmten Entity, Collection oder Cache-"
+"Bereichs über dessen Namen und über dessen HQL- oder SQL-Repräsentation für "
+"Anfragen zugreifen. Weitere Informationen finden Sie im <literal>Statistics</"
+"literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal> und <literal>QueryStatistics</"
+"literal> API-Javadoc. Der folgende Code zeigt ein einfaches Beispiel:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can work on all entities, collections, queries and region caches, by "
+"retrieving the list of names of entities, collections, queries and region "
+"caches using the following methods: <literal>getQueries()</literal>, "
+"<literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</"
+"literal>, and <literal>getSecondLevelCacheRegionNames()</literal>."
+msgstr ""
+"Um an sämtlichen Entities, Collections, Anfragen und Cache-Bereichen zu "
+"arbeiten, können Sie die Namensliste der Entities, Collections, Anfragen und "
+"Cache-Bereiche abrufen, indem Sie die folgenden Methoden verwenden: "
+"<literal>getQueries()</literal>, <literal>getEntityNames()</literal>, "
+"<literal>getCollectionRoleNames()</literal> und "
+"<literal>getSecondLevelCacheRegionNames()</literal>."
+
+#, fuzzy
+#~ 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 ""
+#~ "Durch diese Einstellung werden zwei neue Cache-Bereiche erstellt - einer, "
+#~ "der die gecachten Ergebnissätze der Anfrage enthält (<literal>org."
+#~ "hibernate.cache.StandardQueryCache</literal>), und ein zweiter, der die "
+#~ "Zeitstempel der letzten Aktualisierungen der anfragbaren Tabellen enthält "
+#~ "(<literal>org.hibernate.cache.UpdateTimestampsCache</literal>). Bitte "
+#~ "beachten Sie, dass das Anfragen-Cache nicht den Status der tatsächlichen "
+#~ "Entities im Ergebnissatz cacht, sondern lediglich Bezeichnerwerte und "
+#~ "Ergebnisse vom Wertetyp. Das Anfragen-Cache sollte daher stets in "
+#~ "Verbindung mit dem Cache der zweiten Ebene verwendet werden."
+
+#, fuzzy
+#~ 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 ""
+#~ "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!"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set]]>"
+#~ msgstr ""
+#~ "<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
+#~ msgstr "<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0]]>"
+#~ msgstr ""
+#~ "cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+#~ "Iterator iter = session.iterate(\"from CatImpl as cat where cat."
+#~ "name='fritz'\");\n"
+#~ "Cat fritz = (Cat) iter.next();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" )."
+#~ "list().get(0) ).intValue()]]>"
+#~ msgstr ""
+#~ "( (Integer) s.createFilter( collection, \"select count(*)\" ).list().get"
+#~ "(0) ).intValue()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+#~ "setMaxResults(10).list();]]>"
+#~ msgstr ""
+#~ "s.createFilter( lazyCollection, \"\").setFirstResult(0).setMaxResults(10)."
+#~ "list();"
+
+#, fuzzy
+#~ msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+#~ msgstr "<class name=\"Person\" batch-size=\"10\">...</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<target name=\"instrument\" depends=\"compile\">\n"
+#~ " <taskdef name=\"instrument\" classname=\"org.hibernate.tool."
+#~ "instrument.InstrumentTask\">\n"
+#~ " <classpath path=\"${jar.path}\"/>\n"
+#~ " <classpath path=\"${classes.dir}\"/>\n"
+#~ " <classpath refid=\"lib.class.path\"/>\n"
+#~ " </taskdef>\n"
+#~ "\n"
+#~ " <instrument verbose=\"true\">\n"
+#~ " <fileset dir=\"${testclasses.dir}/org/hibernate/auction/"
+#~ "model\">\n"
+#~ " <include name=\"*.class\"/>\n"
+#~ " </fileset>\n"
+#~ " </instrument>\n"
+#~ "</target>"
+
+#~ msgid "<entry>yes</entry>"
+#~ msgstr "<entry>Ja</entry>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<class name=\"eg.Cat\" .... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"kittens\" ... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();]]>"
+#~ msgstr ""
+#~ "Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true]]>"
+#~ msgstr ""
+#~ "hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true"
+
+#, fuzzy
+#~ msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
+#~ msgstr "hibernate.cache.use_query_cache true"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "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\" );"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/persistent_classes.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/persistent_classes.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/persistent_classes.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1368 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "Persistente Klassen"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Unter persistenten Klassen versteht man diejenigen Klassen in einer "
+"Anwendung, die die Entities des Unternehmensproblems (z.B. Kunde und "
+"Bestellung in einer E-Commerce Applikation) implementieren. Nicht alle "
+"Instanzen einer persistenten Klasse werden als im persistenten Status "
+"befindlich angesehen - eine Instanz kann statt dessen auch kurzlebig "
+"(\"transient\") oder abgesetzt (\"detached\") sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate works best if these classes follow some simple rules, also known "
+"as the Plain Old Java Object (POJO) programming model. However, none of "
+"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
+"about the nature of your persistent objects. You can express a domain model "
+"in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr ""
+"Hibernate funktioniert am besten, wenn diese Klassen einigen einfachen "
+"Regeln folgen, die auch als \"Plain Old Java Object\" (POJO) "
+"Programmiermodell bekannt sind. Keine dieser Regeln sind jedoch feste "
+"Anforderungen. Tatsächlich setzt Hibernate3 sehr wenig hinsichtlich des "
+"Charakters Ihrer persistenten Objekte voraus. Sie können ein Domain-Modell "
+"auf andere Weise ausdrücken: Zum Beispiel unter Verwendung von <literal>Map</"
+"literal>-Instanzen-Trees."
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr "Ein einfaches POJO-Beispiel"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Most Java applications require a persistent class representing felines. For "
+"example:"
+msgstr ""
+"Die meisten Java-Anwendungen erfordern eine persistente Klasse, die Katzen "
+"(\"felines\") repräsentiert."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The four main rules of persistent classes are explored in more detail in the "
+"following sections."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr "Implementierung eines \"No-Argument\"-Konstruktors"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
+"must have a default constructor (which can be non-public) so that Hibernate "
+"can instantiate them using <literal>Constructor.newInstance()</literal>. It "
+"is recommended that you have a default constructor with at least "
+"<emphasis>package</emphasis> visibility for runtime proxy generation in "
+"Hibernate."
+msgstr ""
+"<literal>Cat</literal> besitzt einen \"No-Argument\"-Konstruktor. Alle "
+"persistenten Klassen müssen über einen Standard-Konstruktor verfügen (der "
+"nicht-öffentlich sein darf) damit Hibernate sie unter Verwendung von "
+"<literal>Constructor.newInstance()</literal> instantiieren kann. Wir "
+"empfehlen dringend den Einsatz eines Standard-Konstruktors, der zumindest "
+"<emphasis>Paket</emphasis>-Sichtbarkeit für die Proxy-Generierung zur "
+"Runtime in Hibernate besitzt."
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr "Bereitstellung einer Bezeichner-Property (optional)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> has a property called <literal>id</literal>. This "
+"property maps to the primary key column of a database table. The property "
+"might have been called anything, and its type might have been any primitive "
+"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
+"<literal>java.util.Date</literal>. If your legacy database table has "
+"composite keys, you can use a user-defined class with properties of these "
+"types (see the section on composite identifiers later in the chapter.)"
+msgstr ""
+"<literal>Cat</literal> besitzt eine Property mit Namen <literal>id</"
+"literal>. Diese Property mappt zur Spalte des Primärschlüssels der "
+"Datenbanktabelle. Die Property könnte auch einen beliebigen Namen tragen und "
+"könnte irgendeinen primitiven Typ besitzen, etwa einen primitiven \"Wrapper"
+"\"-Typ, <literal>java.lang.String</literal> oder <literal>java.util.Date</"
+"literal>. (Falls Ihre Legacy-Datenbanktabelle zusammengesetzte Schlüssel "
+"besitzt, können Sie sogar eine benutzerdefinierte Klasse mit Properties "
+"dieser Typen verwenden - wir gehen in einem späteren Abschnitt auf "
+"zusammengesetzte Bezeichner ein)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The identifier property is strictly optional. You can leave them off and let "
+"Hibernate keep track of object identifiers internally. We do not recommend "
+"this, however."
+msgstr ""
+"Die Bezeichner-Property ist völlig optional. Sie können sie ausgeschaltet "
+"lassen und Hibernate verfolgt die Objektbezeichner intern. Allerdings "
+"empfehlen wir diese Einstellung nicht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In fact, some functionality is available only to classes that declare an "
+"identifier property:"
+msgstr ""
+"Tatsächlich sind einige Funktionalitäten nur für Klassen mit deklarierter "
+"Bezeichner-Property verfügbar:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Transitive reattachment for detached objects (cascade update or cascade "
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr ""
+"Transitives Reattachment für abgesetzte Objekte (in Reihe erfolgende "
+"Aktualisierung oder in Reihe erfolgendes Zusammenfügen (auch: \"Cascade "
+"Update\" bzw. \"Cascade Merge\") - siehe"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "Session.saveOrUpdate()"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr "Session.merge()"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Wir empfehlen die Deklarierung konsistent benannter Bezeichner-Properties "
+"bei den persistenten Klassen. Ein nullbarer (\"nullable\" - d.h. nicht-"
+"primitiver) Typ ist ebenfalls zu bevorzugen."
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr "Bevorzugung nicht-finaler Klassen (optional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
+"the persistent class being either non-final, or the implementation of an "
+"interface that declares all public methods."
+msgstr ""
+"Ein zentrales Feature von Hibernate, <emphasis>Proxies</emphasis>, hängt "
+"davon ab, ob die persistente Klasse entweder nicht-final oder der alle "
+"Methoden als öffentlich erklärenden Implemetierung eines Interface."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Sie können <literal>final</literal>e Klassen, die kein Interface mit "
+"Hibernate implementieren, persistieren, aber Sie werden keine Proxies für "
+"das \"Lazy Fetching\" von Assoziationen (d.h. das Nachladen assoziierter "
+"Objekte bei Bedarf) verwenden können - was Ihre Optionen bei der "
+"Feinabstimmung der Performance einschränkt."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Sie sollten es vermeiden, <literal>public final</literal>-Methoden an den "
+"nicht-finalen Klassen zu deklarieren. Wenn Sie eine Klasse mit einer "
+"<literal>public final</literal>-Methode verwenden wollen, müssen Sie "
+"Proxying durch Setzen von <literal>lazy=\"false\"</literal> explizit "
+"deaktivieren."
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr ""
+"Zugriffsberechtigte und Mutatoren für persistente Felder deklarieren "
+"(optional)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> declares accessor methods for all its persistent "
+"fields. Many other ORM tools directly persist instance variables. It is "
+"better to provide an indirection between the relational schema and internal "
+"data structures of the class. By default, Hibernate persists JavaBeans style "
+"properties and recognizes method names of the form <literal>getFoo</"
+"literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If "
+"required, you can switch to direct field access for particular properties."
+msgstr ""
+"<literal>Cat</literal> deklariert die Zugriffsberechtigungsmethoden für alle "
+"seine persistenten Felder. Viele andere ORM-Tools persistieren "
+"Instanzvariablen direkt. Unserer Ansicht nach ist es besser, eine "
+"Indirektion zwischen dem relationalen Schema und internen Datenstrukturen "
+"der Klasse bereitzustellen. In der Standardeinstellung persistiert Hibernate "
+"Properties im JavaBeans-Stil und erkennt Methodennamen in der Form "
+"<literal>getFoo</literal>, <literal>isFoo</literal> und <literal>setFoo</"
+"literal>. Bei Bedarf können Sie für bestimmte Properties zu direktem "
+"Feldzugriff wechseln."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
+"persist a property with a default, <literal>protected</literal> or "
+"<literal>private</literal> get / set pair."
+msgstr ""
+"Properties müssen <emphasis>nicht</emphasis> als öffentlich deklariert "
+"werden - Hibernate kann eine Property als <literal>protected</literal> oder "
+"<literal>private</literal> \"Get\"-/ \"Set\"-Paar persistieren."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr "Implementierung der Vererbung"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Eine Subklasse muss ebenfalls die ersten und zweiten Regeln berücksichtigen. "
+"Sie erbt ihre Bezeichner-Property von der Superklasse <literal>Cat</literal>."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid ""
+"Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr ""
+"Sie müssen die <literal>equals()</literal> and <literal>hashCode()</literal>-"
+"Methoden auÃer Kraft setzen, falls Sie"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You have to override the <literal>equals()</literal> and <literal>hashCode()"
+"</literal> methods if you:"
+msgstr ""
+"Sie müssen die <literal>equals()</literal> and <literal>hashCode()</literal>-"
+"Methoden auÃer Kraft setzen, falls Sie"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"vorhaben, die Instanzen persistenter Klassen in einem <literal>Set</literal> "
+"unterzubringen (die empfohlene Art mehrwertige Assoziationen zu "
+"repräsentieren) <emphasis>und</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr "planen, den Wiederanbindung abgesetzter Instanzen zu verwenden"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate guarantees equivalence of persistent identity (database row) and "
+"Java identity only inside a particular session scope. When you mix instances "
+"retrieved in different sessions, you must implement <literal>equals()</"
+"literal> and <literal>hashCode()</literal> if you wish to have meaningful "
+"semantics for <literal>Set</literal>s."
+msgstr ""
+"Hibernate garantiert nur die Ãquivalenz der persistenten Identität "
+"(Datenbankreihe) und der Java-Identität innerhalb eines bestimmten "
+"Gültigkeitsbreichs einer Session. Sobald die Instanzen verschiedener "
+"Sessions zusammenkommen, müssen <literal>equals()</literal> und "
+"<literal>hashCode()</literal> implementiert werden, wenn wir uns eine "
+"aussagekräftige Semantik für <literal>Set</literal>s wünschen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The most obvious way is to implement <literal>equals()</literal>/"
+"<literal>hashCode()</literal> by comparing the identifier value of both "
+"objects. If the value is the same, both must be the same database row, "
+"because they are equal. If both are added to a <literal>Set</literal>, you "
+"will only have one element in the <literal>Set</literal>). Unfortunately, "
+"you cannot use that approach with generated identifiers. Hibernate will only "
+"assign identifier values to objects that are persistent; a newly created "
+"instance will not have any identifier value. Furthermore, if an instance is "
+"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
+"identifier value to the object. If <literal>equals()</literal> and "
+"<literal>hashCode()</literal> are based on the identifier value, the hash "
+"code would change, breaking the contract of the <literal>Set</literal>. See "
+"the Hibernate website for a full discussion of this problem. This is not a "
+"Hibernate issue, but normal Java semantics of object identity and equality."
+msgstr ""
+"Die offensichtlichste Weise <literal>equals()</literal>/<literal>hashCode()</"
+"literal> zu implementieren, ist mittels des Vergleichs des Bezeichnerwerts "
+"beider Objekte. Ist der Wert identisch, so müssen die beiden sich in "
+"derselben Datenbankreihe befinden und sind daher gleichwertig (werden beide "
+"einem <literal>Set</literal> hinzugefügt, so existiert lediglich ein Element "
+"im <literal>Set</literal>). Leider kann diese Vorgehensweise nicht bei "
+"generierten Bezeichnern verwendet werden! Hibernate ordnet nur persistenten "
+"Objekten Bezeichnerwerte zu, und eine neu erstellte Instanz wird keinen "
+"Bezeichnerwert besitzen! Desweiteren wird einer noch ungespeicherten "
+"Instanz, die Teil eines <literal>Set</literal> ist, bei Speicherung ein "
+"Bezeichnerwert zum Objekt zugeordnet. Falls <literal>equals()</literal> und "
+"<literal>hashCode()</literal> auf dem Bezeichnerwert basieren, so würde sich "
+"der Hash-Code ändern und dadurch das Interface (sog. \"contract\") des "
+"<literal>Set</literal> verletzen. Eine ausführliche Darstellung dieses "
+"Problems finden Sie auf der Website von Hibernate. Bitte beachten Sie, dass "
+"dies nicht auf Hibernate selbst zurückzuführen ist, sondern auf regulärer "
+"Java-Semantik hinsichtlich Objektidentität und Gleichheit basiert."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Wir empfehlen die Implementierung von <literal>equals()</literal> und "
+"<literal>hashCode()</literal> unter Verwendung von <emphasis>\"Business Key "
+"Equality\"</emphasis>. \"Business Key Equality\" bedeutet, dass die "
+"<literal>equals()</literal>-Methode nur die Properties, aus denen sich der "
+"\"Business Key\" zusammensetzt, miteinander vergleicht. Der Key (Schlüssel) "
+"identifiziert Ihre Instanz in der Realität (ein <emphasis>natürlicher</"
+"emphasis> Schlüsselkandidat bzw. \"Candidate Key\"):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A business key does not have to be as solid as a database primary key "
+"candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable "
+"or unique properties are usually good candidates for a business key."
+msgstr ""
+"Bitte beachten Sie, dass ein \"Business Key\" nicht so beständig wie ein "
+"Primärschlüsselkandidat der Datenbank sein muss (siehe <xref linkend="
+"\"transactions-basics-identity\"/>). Unveränderbare oder eindeutige "
+"Properties sind in der Regel eine gute Wahl für einen Business Key."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr "Dynamische Modelle"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
+msgstr ""
+"Bitte beachten Sie, dass die folgenden Features als experimentell gelten und "
+"sich in naher Zukunft ändern können."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Persistente Entities müssen zur Runtime nicht unbedingt als POJO-Klassen "
+"oder JavaBean-Objekte repräsentiert werden. Hibernate unterstützt auch "
+"dynamische Modelle (unter Verwendung von <literal>Map</literal>s von "
+"<literal>Map</literal>s zur Runtime) und die Repräsentation von Entities als "
+"DOM4J-Trees. Bei dieser Vorgehensweise schreiben Sie keine persistenten "
+"Klassen, sondern nur Mapping-Dateien."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By default, Hibernate works in normal POJO mode. You can set a default "
+"entity representation mode for a particular <literal>SessionFactory</"
+"literal> using the <literal>default_entity_mode</literal> configuration "
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr ""
+"In der Standardeinstellung arbeitet Hibernate im regulären POJO-Modus. Sie "
+"können einen Standard-Entity-Repräsentationsmodus für eine bestimmte "
+"<literal>SessionFactory</literal> unter Verwendung der "
+"<literal>default_entity_mode</literal>-Konfigurationsoption einstellen "
+"(siehe <xref linkend=\"configuration-optional-properties\"/>)."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das folgende Beispiel stellt die Repräsentation unter Verwendung von "
+"<literal>Map</literal>s dar. Zuerst muss in der Mapping-Datei ein "
+"<literal>entity-name</literal> anstelle von (oder zusätzlich zu) einem "
+"Klassennamen deklariert werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though associations are declared using target class names, the target "
+"type of associations can also be a dynamic entity instead of a POJO."
+msgstr ""
+"Bitte bachten Sie, dass der Zieltyp einer Assoziation auch eine dynamische "
+"Entity statt POJO sein kann, obwohl Assoziationen unter Verwendung von Ziel-"
+"Klassennamen deklariert werden."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Nachdem der Standard für den Entity-Modus auf <literal>dynamic-map</literal> "
+"für die <literal>SessionFactory</literal> gesetzt ist, können wir zur "
+"Runtime mit <literal>Map</literal>s von <literal>Map</literal>s arbeiten:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One of the main advantages of dynamic mapping is quick turnaround time for "
+"prototyping, without the need for entity class implementation. However, you "
+"lose compile-time type checking and will likely deal with many exceptions at "
+"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 ""
+"Die Vorteile des dynamischen Mappings liegen in der schnellen Durchlaufzeit "
+"für Musteranwendungsverfahren (sog. \"Turnaround-Time\" für \"Prototyping\") "
+"ohne die Notwendigkeit Entity-Klassen zu implementieren. Sie verlieren "
+"jedoch durch die Typ-Prüfung Kompilierungszeit, und es ist wahrscheinlich, "
+"dass es bei der Runtime zu zahlreichen Ausnahmemeldungen kommt. Dank des "
+"Mappings von Hibernate kann das Datenbankschema bequem vereinheitlicht und "
+"stabilisiert werden, so dass eine ordnungsgemäÃe Implementierung des Domain-"
+"Modells später problemlos hinzugefügt werden kann."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Entity representation modes can also be set on a per <literal>Session</"
+"literal> basis:"
+msgstr ""
+"Die Modi für die Entity Repräsentation können auch auf per <literal>Session</"
+"literal>-Basis eingestellt werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please note that the call to <literal>getSession()</literal> using an "
+"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
+"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
+"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 ""
+"Bitte beachten Sie, dass der Aufruf <literal>getSession()</literal> unter "
+"Verwendung von <literal>EntityMode</literal> am <literal>Session</literal>-"
+"API und nicht an der <literal>SessionFactory</literal> erfolgt. Auf diese "
+"Weise teilt sich die <literal>Session</literal> die zu Grunde liegende JDBC-"
+"Verbindung, die Transaktion und andere Kontextinformationen. Das bedeutet, "
+"dass Sie in der sekundären <literal>Session</literal> nicht <literal>flush()"
+"</literal> und <literal>close()</literal> aufrufen müssen und auch die "
+"Transaktion und Verbindung der primären Arbeitseinheit überlassen können."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"More information about the XML representation capabilities can be found in "
+"<xref linkend=\"xml\" />."
+msgstr ""
+"Weitere Informationen zum Leistungsvermögen der XML-Repräsentation finden "
+"Sie unter <xref linkend=\"xml\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr "Tuplizer"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing that knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the corresponding tuplizer knows how create the POJO "
+"through its constructor. It also knows how to access the POJO properties "
+"using the defined property accessors."
+msgstr ""
+"<literal>org.hibernate.tuple.Tuplizer</literal> und seine untergeordneten "
+"Schnittstellen sind angesichts des <literal>org.hibernate.EntityMode</"
+"literal> dieser Repräsentation für die Verwaltung eines bestimmten Teils der "
+"Datenrepräsentation verantwortlich. Wenn man sich einen bestimmten Teil von "
+"Daten als Datenstruktur vorstellt, so weià der \"Tuplizer\" wie eine solche "
+"Datenstruktur erstellt wird und wie Werte in eine solche extrahiert und "
+"eingeführt werden. Beim POJO Entity-Modus zum Beispiel weià der "
+"entsprechende Tuplizer wie POJO durch den Konstruktor erstellt wird und wie "
+"mittels definierter Property-Accessor-Methoden auf die POJO-Properties "
+"zugegriffen wird. Es existieren auf hoher Ebene zwei Typen von Tuplizern, "
+"die in den <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> und "
+"<literal>org.hibernate.tuple.component.ComponentTuplizer</literal> "
+"Interfaces repräsentiert sind. <literal>EntityTuplizer</literal>s sind für "
+"die Verwaltung der oben genannten Schnittstellen hinsichtlich der Entities "
+"verantwortlich, während <literal>ComponentTuplizer</literal>s dasselbe für "
+"Komponenten übernehmen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two high-level types of Tuplizers, represented by the <literal>org."
+"hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate."
+"tuple.component.ComponentTuplizer</literal> interfaces. "
+"<literal>EntityTuplizer</literal>s are responsible for managing the above "
+"mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Benutzer können auch ihre eigenen Tuplizer einbinden. Es ist möglich, dass "
+"Sie während des \"dynamic-map\" Entity-Modus eine andere Implementierung von "
+"<literal>java.util.Map</literal> als <literal>java.util.HashMap</literal> "
+"benötigen oder eine andere Strategie für die Proxy-Generierung definieren "
+"müssen als die im Standard vorgegebene. Beide würden durch die Definition "
+"einer anwenderdefinierten Tuplizer-Implementierung erzielt. Tuplizer-"
+"Definitionen sind der Entity oder dem Komponenten-Mapping hinzugefügt, die "
+"sie verwalten sollen. Sehen wir uns noch einmal das Beispiel unserer Kunden-"
+"Entity an:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "EntityNameResolvers"
+msgstr "EntityResolver"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"interface is a contract for resolving the entity name of a given entity "
+"instance. The interface defines a single method "
+"<methodname>resolveEntityName</methodname> which is passed the entity "
+"instance and is expected to return the appropriate entity name (null is "
+"allowed and would indicate that the resolver does not know how to resolve "
+"the entity name of the given entity instance). Generally speaking, an "
+"<interfacename>org.hibernate.EntityNameResolver</interfacename> is going to "
+"be most useful in the case of dynamic models. One example might be using "
+"proxied interfaces as your domain model. The hibernate test suite has an "
+"example of this exact style of usage under the <package>org.hibernate.test."
+"dynamicentity.tuplizer2</package>. Here is some of the code from that "
+"package for illustration."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
+"interfacename> users must either:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
+"method."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (which is the implementation class for <interfacename>org."
+"hibernate.SessionFactory</interfacename>) using the "
+"<methodname>registerEntityNameResolver</methodname> method."
+msgstr ""
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "}"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/portability.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/portability.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/portability.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,514 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#: portability.xml:31
+#, fuzzy, no-c-format
+msgid "Database Portability Considerations"
+msgstr "Abgrenzung von Datenbanktransaktionen"
+
+#. Tag: title
+#: portability.xml:34
+#, no-c-format
+msgid "Portability Basics"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:36
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:47
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialekt"
+
+#. Tag: para
+#: portability.xml:49
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:60
+#, no-c-format
+msgid "Dialect resolution"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:62
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:69
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:77
+#, no-c-format
+msgid ""
+"Starting with version 3.3, Hibernate has a fare more powerful way to "
+"automatically determine which dialect to should be used by relying on a "
+"series of delegates which implement the <interfacename>org.hibernate.dialect."
+"resolver.DialectResolver</interfacename> which defines only a single method:"
+"<programlisting role=\"JAVA\"><![CDATA[public Dialect resolveDialect"
+"(DatabaseMetaData metaData) throws JDBCConnectionException]]></"
+"programlisting>. The basic contract here is that if the resolver "
+"'understands' the given database metadata then it returns the corresponding "
+"Dialect; if not it returns null and the process continues to the next "
+"resolver. The signature also identifies <exceptionname>org.hibernate."
+"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
+"A JDBCConnectionException here is interpreted to imply a \"non transient"
+"\" (aka non-recoverable) connection problem and is used to indicate an "
+"immediate stop to resolution attempts. All other exceptions result in a "
+"warning and continuing on to the next resolver."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:90
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:103
+#, fuzzy, no-c-format
+msgid "Identifier generation"
+msgstr "Die \"Getter\"-Methode des Bezeichners"
+
+#. Tag: para
+#: portability.xml:105
+#, no-c-format
+msgid ""
+"When considering portability between databases, another important decision "
+"is selecting the identifier generation stratagy you want to use. Originally "
+"Hibernate provided the <emphasis>native</emphasis> generator for this "
+"purpose, which was intended to select between a <emphasis>sequence</"
+"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
+"strategy depending on the capability of the underlying database. However, an "
+"insidious implication of this approach comes about when targtetting some "
+"databases which support <emphasis>identity</emphasis> generation and some "
+"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
+"definition of an IDENTITY (or auto-increment) column to manage the "
+"identifier value; it is what is known as a post-insert generation strategy "
+"becauase the insert must actually happen before we can know the identifier "
+"value. Because Hibernate relies on this identifier value to uniquely "
+"reference entities within a persistence context it must then issue the "
+"insert immediately when the users requests the entitiy be associated with "
+"the session (like via save() e.g.) regardless of current transactional "
+"semantics. <note> <para> Hibernate was changed slightly once the implication "
+"of this was better understood so that the insert is delayed in cases where "
+"that is feasible. </para> </note> The underlying issue is that the actual "
+"semanctics of the application itself changes in these cases."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:130
+#, no-c-format
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way. <note> <para> There are "
+"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
+"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
+"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
+"listitem> </itemizedlist> </para> </note> The idea behind these generators "
+"is to port the actual semantics of the identifer value generation to the "
+"different databases. For example, the <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
+"databases which do not support sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#: portability.xml:159
+#, fuzzy, no-c-format
+msgid "Database functions"
+msgstr "Aggregierte Funktionen"
+
+#. Tag: para
+#: portability.xml:162
+#, no-c-format
+msgid ""
+"This is an area in Hibernate in need of improvement. In terms of portability "
+"concerns, this function handling currently works pretty well from HQL; "
+"however, it is quite lacking in all other aspects."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:169
+#, no-c-format
+msgid ""
+"SQL functions can be referenced in many ways by users. However, not all "
+"databases support the same set of functions. Hibernate, provides a means of "
+"mapping a <emphasis>logical</emphasis> function name to a delegate which "
+"knows how to render that particular function, perhaps even using a totally "
+"different physical function call."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:175
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:182
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:192
+#, no-c-format
+msgid "Type mappings"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:194
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+#~ msgstr "org.hibernate.cache.TreeCacheProvider"
+
+#, fuzzy
+#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+#~ msgstr "org.hibernate.cache.TreeCacheProvider"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/preface.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/preface.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/preface.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,137 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "Vorwort"
+
+#. 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 ""
+"Die Arbeit mit objektorientierter Software und einer relationalen Datenbank "
+"kann sich in Unternehmensumgebungen heutzutage als mühsam und zeitaufwendig "
+"erweisen. Bei Hibernate handelt es sich um ein objekt/relationales Mapping-"
+"Tool für Java Umgebungen. Der Begriff objekt/relationales Mapping (ORM) "
+"bezieht sich auf die Technik des Mappens einer Datenrepräsentation von einem "
+"Objektmodell zu einem relationalen Datenmodell mit SQL-basiertem Schema."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. It can also significantly reduce development time otherwise spent with manual data handling in SQL and JDBC."
+msgstr ""
+"Hibernate besorgt nicht nur das Mapping von Java-Klassen zu "
+"Datenbanktabellen (und von Java-Datentypen zu SQL-Datentypen ), sondern "
+"bietet auch Datenanfragen sowie Datenbeschaffungshilfen, mittels derer sich "
+"die Entwicklungszeit maÃgeblich senken lässt, da die manuelle "
+"Datenbearbeitung in SQL und JDBC entfällt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Hibernate's goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects."
+msgstr ""
+"Hibernate will dem Entwickler 95 Prozent der mit gängiger Datenpersistenz "
+"verbundenen Programmierarbeit abnehmen. Hibernate ist möglicherweise nicht "
+"die beste Lösung für datenzentrische Anwendungen, die nur gespeicherte "
+"Prozeduren zur Implementierung der Business Logik in die Datenbank "
+"verwenden, ist jedoch was objektorientierte Domain-Modelle und Business "
+"Logik im Java-basierten Mittel-Tier angeht am leistungsfähigsten. Hibernate "
+"kann Ihnen mit Sicherheit dabei helfen, den anbieterspezifischen SQL-Code zu "
+"entfernen oder einzukapseln und unterstützt Sie auch bei der gängigen "
+"Aufgabe der Ãbersetzung des Ergebnissatzes einer tabellarischen "
+"Repräsentation in ein Objektdiagramm."
+
+#. Tag: para
+#, no-c-format
+msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
+msgstr ""
+"Falls Ihnen Hibernate und Objekt/Relationales Mapping oder sogar Java neu "
+"sind, orientieren Sie sich bitte an folgenden Schritten:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step instructions. The source code for the tutorial is included in the distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr ""
+"Lesen Sie <xref linkend=\"tutorial\"/> für eine schrittweise Anleitung. Der "
+"Quellcode der Anleitung ist Teil der Distrubution im <literal>doc/reference/"
+"tutorial/</literal>-Verzeichnis."
+
+#. Tag: para
+#, no-c-format
+msgid "Read <xref linkend=\"architecture\" /> to understand the environments where Hibernate can be used."
+msgstr ""
+"Lesen Sie <xref linkend=\"architecture\"/>, um mehr über die Umgebungen zu "
+"erfahren, in denen Hibernate eingesetzt werden kann."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "View the <literal>eg/</literal> directory in the Hibernate distribution. It contains a simple standalone application. Copy your JDBC driver to the <literal>lib/</literal> directory and edit <literal>etc/hibernate.properties</literal>, specifying correct values for your database. From a command prompt in the distribution directory, type <literal>ant eg</literal> (using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr ""
+"Schauen Sie sich das <literal>eg/</literal>-Verzeichnis in der Hibernate "
+"Distribution an, es enthält eine einfache, selbständige Anwendung. Kopieren "
+"Sie Ihren JDBC-Treiber in das <literal>lib/</literal>-Verzeichnis und "
+"editieren Sie <literal>etc/hibernate.properties</literal>, indem Sie "
+"korrekte Werte für Ihre Datenbank spezifizieren. Von einer Kommandozeile im "
+"Distributionsverzeichnis tippen Sie <literal>ant eg</literal> (unter "
+"Verwendung von Ant) oder in Windows tippen Sie <literal>build eg</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Use this reference documentation as your primary source of information. Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need more help with application design, or if you prefer a step-by-step tutorial. Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr ""
+"Verwenden Sie diese Referenzdokumentation als Ihre primäre "
+"Informationsquelle. Weitere Informationen finden Sie auÃerdem unter "
+"<emphasis>Hibernate in Action</emphasis> (http://www.manning.com/bauer), "
+"falls Sie Hilfe bei Ihrem Anwendungsdesign benötigen oder eine Schritt-für-"
+"Schritt-Anleitung vorziehen. Eine herunterladbare Beispielanwendung von "
+"\"Hibernate in Action\" finden Sie auch unter http://caveatemptor.hibernate."
+"org."
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr ""
+"Antworten auf häufig gestellte Fragen (FAQs) finden Sie auf der Website von "
+"Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid "Links to third party demos, examples, and tutorials are maintained on the Hibernate website."
+msgstr ""
+"Auf der Hibernate Website befinden sich auch Demos, Beispiele und "
+"Anleitungen Dritter."
+
+#. 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 ""
+"Bei Fragen wenden Sie sich an das Benutzerforum, das mit der Hibernate "
+"Website verlinkt ist. Wir bieten auch ein JIRA-Problemverfolgungssystem für "
+"Fehlerberichte und Feature-Anfragen. Falls Sie an der Entwicklung von "
+"Hibernate interessiert sind, registrieren Sie sich bei der Mailing-Liste für "
+"Entwickler. Falls Sie diese Dokumentation in Ihre Sprache übersetzen "
+"möchten, setzen Sie sich mittels der Mailing-Liste für Entwickler mit uns in "
+"Verbindung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue tracking system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list."
+msgstr ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_criteria.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_criteria.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_criteria.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1186 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr "\"Criteria Queries\""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate features an intuitive, extensible criteria query API."
+msgstr "Hibernate besitzt eine intuitive, erweiterbare \"Criteria Query\"-API."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr "Das Erstellen einer Criteria-Instanz"
+
+#. 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 ""
+"Das Interface <literal>org.hibernate.Criteria</literal> repräsentiert eine "
+"Anfrage an eine bestimmte persistente Klasse. Bei der <literal>Session</"
+"literal> handelt es sich um eine Factory für <literal>Criteria</literal>-"
+"Instanzen."
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr "Den Ergebnissatz eingrenzen"
+
+#. 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 ""
+"Ein individuelles \"Query Criterion\" (Anfragenkriterium) ist eine Instanz "
+"des Interface <literal>org.hibernate.criterion.Criterion</literal>. Die "
+"Klasse <literal>org.hibernate.criterion.Restrictions</literal> definiert "
+"Factory-Methoden, um bestimmte eingebaute <literal>Criterion</literal>-Typen "
+"einzuholen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr "Einschränkungen können logisch gruppiert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are a range of built-in criterion types (<literal>Restrictions</"
+"literal> subclasses). One of the most useful allows you to specify SQL "
+"directly."
+msgstr ""
+"Es existiert eine ganze Reihe eingebauter \"Criterion\"-Typen "
+"(<literal>Restrictions</literal>-Subklassen), aber einer ist besonders "
+"hilfreich und ermöglicht es Ihnen, die SQL direkt zu spezifizieren."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
+"of the queried entity."
+msgstr ""
+"Der <literal>{alias}</literal>-Platzhalter wird durch den Reihen-Alias der "
+"angefragten Entity ersetzt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also obtain a criterion from a <literal>Property</literal> instance. "
+"You can create a <literal>Property</literal> by calling <literal>Property."
+"forName()</literal>:"
+msgstr ""
+"Eine andere Art an das Kriterium zu kommen ist über eine <literal>Property</"
+"literal>-Instanz. Sie können eine <literal>Property</literal> erstellen, "
+"indem Sie <literal>Property.forName()</literal> aufrufen."
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr "Die Ergebnisse ordnen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can order the results using <literal>org.hibernate.criterion.Order</"
+"literal>."
+msgstr ""
+"Sie können die Ergebnisse mit <literal>org.hibernate.criterion.Order</"
+"literal> ordnen."
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr "Assoziationen"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By navigating associations using <literal>createCriteria()</literal> you can "
+"specify constraints upon related entities:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The second <literal>createCriteria()</literal> returns a new instance of "
+"<literal>Criteria</literal> that refers to the elements of the "
+"<literal>kittens</literal> collection."
+msgstr ""
+"beachten Sie, dass das zweite <literal>createCriteria()</literal> mit einer "
+"neuen Instanz von <literal>Criteria</literal> reagiert, die auf die Elemente "
+"<literal>kittens</literal>-Collection verweist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is also an alternate form that is useful in certain circumstances:"
+msgstr "Die folgende Alternative ist unter bestimmten Umständen hilfreich."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"(<literal>createAlias()</literal> does not create a new instance of "
+"<literal>Criteria</literal>.)"
+msgstr ""
+"(<literal>createAlias()</literal> erstellt keine neue Instanz von "
+"<literal>Criteria</literal>.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The kittens collections held by the <literal>Cat</literal> instances "
+"returned by the previous two queries are <emphasis>not</emphasis> pre-"
+"filtered by the criteria. If you want to retrieve just the kittens that "
+"match the criteria, you must use a <literal>ResultTransformer</literal>."
+msgstr ""
+"Bitte beachten Sie, dass die in den <literal>Cat</literal>-Instanzen "
+"enthaltenen \"kittens\"-Collections, die von den vorherigen zwei Anfragen "
+"zurückgesendet wurden, <emphasis>nicht</emphasis> nicht durch die Kriterien "
+"vorgefiltert werden! Falls Sie nur die \"Kittens\" erhalten wollen, auf die "
+"die Kriterien zutreffen, so müssen Sie einen <literal>ResultTransformer</"
+"literal> verwenden."
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will return all of the <literal>Cat</literal>s with a mate whose name "
+"starts with \"good\" ordered by their mate's age, and all cats who do not "
+"have a mate. This is useful when there is a need to order or limit in the "
+"database prior to returning complex/large result sets, and removes many "
+"instances where multiple queries would have to be performed and the results "
+"unioned by java in memory."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Without this feature, first all of the cats without a mate would need to be "
+"loaded in one query."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A second query would need to retreive the cats with mates who's name started "
+"with \"good\" sorted by the mates age."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr "Dynamischer Assoziationsabruf"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"Sie können die Semantik für den Assoziationsabruf während der Runtime mit "
+"<literal>setFetchMode()</literal> spezifizieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This query will fetch both <literal>mate</literal> and <literal>kittens</"
+"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
+"more information."
+msgstr ""
+"Diese Anfrage ruft sowohl <literal>mate</literal> als auch <literal>kittens</"
+"literal> durch den äuÃeren Verbund (\"outer Join\") ab. Weitere "
+"Informationen finden Sie unter <xref linkend=\"performance-fetching\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr "Beispielanfragen"
+
+#. 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 ""
+"Mit der Klasse <literal>org.hibernate.criterion.Example</literal> können Sie "
+"ein Anfragenkriterium aus einer gegebenen Instanz zu konstruieren."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
+msgstr ""
+"Versions-Properties, Bezeichner und Assoziationen werden übergangen. In der "
+"Standardeinstellung werden auch Properties mit dem Wert Null ausgeschlossen."
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr ""
+"Sie können anpassen, wie das <literal>Example</literal> angewendet wird."
+
+#. Tag: para
+#, no-c-format
+msgid "You can even use examples to place criteria upon associated objects."
+msgstr ""
+"Sie können sogar Beispiele verwenden, um Kriterien auf assoziierte Objekte "
+"anzuwenden."
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr "Projektionen, Aggregation und Gruppierung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class <literal>org.hibernate.criterion.Projections</literal> is a "
+"factory for <literal>Projection</literal> instances. You can apply a "
+"projection to a query by calling <literal>setProjection()</literal>."
+msgstr ""
+"Bei der Klasse <literal>org.hibernate.criterion.Projections</literal> "
+"handelt es sich um eine Factory für <literal>Projection</literal>-Instanzen. "
+"Eine Projektion wird auf eine Anfrage angewendet, indem man "
+"<literal>setProjection()</literal> aufruft."
+
+#. 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 ""
+"In einer \"Criteria Query\" ist kein explizites \"gruppieren nach\" "
+"notwendig. Bestimmte Projektionstypen sind als "
+"<emphasis>Gruppierungsprojektionen definiert</emphasis>, die auch in der SQL "
+"<literal>group by</literal>-Klausel auftreten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An alias can be assigned to a projection so that the projected value can be "
+"referred to in restrictions or orderings. Here are two different ways to do "
+"this:"
+msgstr ""
+"Ein Alias kann auf Wunsch einer Projektion zugeordnet werden, so dass auf "
+"den projezierten Wert in Einschränkungen oder Anordnungen verwiesen werden "
+"kann. Es gibt zwei verschiedene Arten das zu tun:"
+
+#. 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 ""
+"Die <literal>alias()</literal> und <literal>as()</literal>-Methoden wrappen "
+"die Projektionsinstanzen in eine andere Alias-Instanz von "
+"<literal>Projection</literal>. Als Tastenkürzel können Sie einen Alias "
+"zuordnen, wenn Sie der Projektionsliste eine Projektion hinzufügen:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
+msgstr ""
+"Sie können auch <literal>Property.forName()</literal> verwenden, um "
+"Projektionen auszudrücken:"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr "Abgesetzte Anfragen und Unteranfragen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>DetachedCriteria</literal> class allows you to create a query "
+"outside the scope of a session and then execute it using an arbitrary "
+"<literal>Session</literal>."
+msgstr ""
+"Die <literal>DetachedCriteria</literal>-Klasse ermöglicht es Ihnen, eine "
+"Anfrage auÃerhalb des Gültigkeitsbereichs einer Session zu erstellen und sie "
+"später unter Verwendung einer arbiträren <literal>Session</literal> "
+"auszuführen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>DetachedCriteria</literal> can also be used to express a "
+"subquery. Criterion instances involving subqueries can be obtained via "
+"<literal>Subqueries</literal> or <literal>Property</literal>."
+msgstr ""
+"Ein <literal>DetachedCriteria</literal> kann auch dazu verwendet werden, "
+"eine Anfrage auszudrücken. Instanzen eines Kriteriums können mittels "
+"<literal>Subqueries</literal> oder <literal>Property</literal> erhalten "
+"werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr "Sogar korrelierende Unteranfragen sind möglich:"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr "Anfrage über natürlichen Bezeichner"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For most queries, including criteria queries, the query cache is not "
+"efficient because query cache invalidation occurs too frequently. However, "
+"there is a special kind of query where you can optimize the cache "
+"invalidation algorithm: lookups by a constant natural key. In some "
+"applications, this kind of query occurs frequently. The criteria API "
+"provides special provision for this use case."
+msgstr ""
+"Für die meisten Anfragen, einschlieÃlich \"Criteria Queries\", ist das "
+"Anfragen-Cache nicht sehr effizient, weil zu oft eine Aufhebung des Anfragen-"
+"Caches stattfindet. Es gibt jedoch eine besondere Art der Anfrage, bei der "
+"der Aufhebungsalgorithmus des Caches optimiert werden kann: Suchläufe nach "
+"einem konstanten natürlichen Schlüssel. In einigen Anwendungen kommt diese "
+"Art der Anfrage häufig vor. Die \"Criteria\"-API sorgt in diesem Fall "
+"speziell vor."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, map the natural key of your entity using <literal><natural-id></"
+"literal> and enable use of the second-level cache."
+msgstr ""
+"Als erstes sollten Sie den natürlichen Schlüssel Ihrer Entity unter "
+"Verwendung von <literal><natural-id></literal> mappen und die "
+"Verwendung des Caches der zweiten Ebene aktivieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"Bitte beachten Sie, dass diese Funktionalität nicht für die Verwendung mit "
+"Entities mit <emphasis>veränderlichen</emphasis> natürlichen Schlüsseln "
+"vorgesehen ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Once you have enabled the Hibernate query cache, the <literal>Restrictions."
+"naturalId()</literal> allows you to make use of the more efficient cache "
+"algorithm."
+msgstr ""
+"Nun ermöglicht uns <literal>Restrictions.naturalId()</literal> die "
+"Verwendung des effizienteren Cache-Algorithmus."
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgstr ""
+#~ "Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", Hibernate.STRING) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", \n"
+#~ " Hibernate.STRING) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat."
+#~ "class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
+#~ "class, \"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, "
+#~ "\"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeightForSex) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_hql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_hql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_hql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2672 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr "HQL: Die \"Hibernate Query Language\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate uses a powerful query language (HQL) that is similar in appearance "
+"to SQL. Compared with SQL, however, HQL is fully object-oriented and "
+"understands notions like inheritance, polymorphism and association."
+msgstr ""
+"Hibernate ist mit einer sehr leistungsfähigen Anfragensprache ausgestattet, "
+"die (mit Absicht) groÃe Ãhnlichkeit mit SQL besitzt. Aber lassen Sie sich "
+"nicht durch die Syntax täuschen; HQL ist rein objektorientiert und versteht "
+"Begriffe wie Vererbung, Polymorphismus und Assoziation."
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr "Beachtung der GroÃ- und Kleinschreibung"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Bei Anfragen ist die GroÃ- und Kleinschreibung irrelevant, auÃer es handelt "
+"sich um Namen von Java-Klassen und Properties. Daher ist <literal>SeLeCT</"
+"literal> dasselbe wie <literal>sELEct</literal> oder auch <literal>SELECT</"
+"literal>, jedoch ist <literal>org.hibernate.eg.FOO</literal> nicht gleich "
+"<literal>org.hibernate.eg.Foo</literal> und <literal>foo.barSet</literal> "
+"ist nicht <literal>foo.BARSET</literal>."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Dieses Handbuch verwendet Kleinbuchstaben für HQL-Schlüsselbegriffe. Einige "
+"Benutzer finden Anfragen, in denen die Schlüsselbegriffe in GroÃbuchstaben "
+"geschrieben sind zwar lesbarer, jedoch finden wir das innerhalb von Java-"
+"Code optisch nicht sehr ansprechend."
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr "Die \"from\"-Klausel"
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr "Die einfachste Form der Hibernate-Anfrage lautet:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"die einfach mit sämtlichen Instanzen der Klasse <literal>eg.Cat</literal> "
+"reagiert. In der Regel muss der Klassenname nicht definiert werden, da die "
+"Standardeinstellung <literal>auto-import</literal> lautet. Daher schreiben "
+"wir in den meisten Fällen nur:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to refer to the <literal>Cat</literal> in other parts of the query, "
+"you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Diese Anfrage ordnet den Alias <literal>cat</literal> den <literal>Cat</"
+"literal>-Instanzen zu, so dass wir diesen Alias später in der Anfrage "
+"verwendet können. Der <literal>as</literal>-Schlüsselbegriff ist optional; "
+"wir könnten auch schreiben:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
+"join."
+msgstr ""
+"Mehrere Klassen können erscheinen und zu einem kartesischen Produkt oder "
+"Kreuzverbund (sog. \"Cross-Join\") führen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Es ist generell ratsam, Anfragen-Aliasse unter Verwendung eines kleinen "
+"Anfangsbuchstabens zu beginnen, da dies den Namensgebungsstandards für "
+"lokale Variablen bei Java entspricht (z.B. <literal>domesticCat</literal>)."
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr "Assoziationen und Verbünde (\"Joins\")"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Man kann auch Aliasse assoziierten Entities oder sogar Elementen einer "
+"Collection von Werten mittels <literal>join</literal> zuordnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "Die unterstützten Verbundtypen wurden von ANSI SQL geborgt"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>full join</literal> (in der Regel nicht sehr nützlich)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr "right outer join"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr "<literal>full join</literal> (in der Regel nicht sehr nützlich)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> and "
+"<literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+"Die <literal>inner join</literal>, <literal>left outer join</literal> und "
+"<literal>right outer join</literal>-Konstrukte können abgekürzt werden."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You may supply extra join conditions using the HQL <literal>with</literal> "
+"keyword."
+msgstr ""
+"Sie können weitere Verbundbedingungen unter Verwendung des HQL-"
+"Schlüsselbegriffs <literal>with</literal> eingeben."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A \"fetch\" join allows associations or collections of values to be "
+"initialized along with their parent objects using a single select. This is "
+"particularly useful in the case of a collection. It effectively overrides "
+"the outer join and lazy declarations of the mapping file for associations "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
+"information."
+msgstr ""
+"Desweiteren ermöglicht ein \"Abruf\"-Join die Initialisierung von "
+"Assoziationen oder Collections von Werten samt deren übergeordneten Objekten "
+"unter Verwendung einer einzelnen Auswahl (sog. \"single select\"). Dies ist "
+"insbesondere im Zusammenhang mit Collections von Nutzen. Es setzt effektiv "
+"den \"Outer-Join\" (AuÃenverbund) und \"lazy\" Deklarationen der Mapping-"
+"Datei für Assoziationen und Collections auÃer Kraft. Weitere Informationen "
+"finden Sie auch unter <xref linkend=\"performance-fetching\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A fetch join does not usually need to assign an alias, because the "
+"associated objects should not be used in the <literal>where</literal> clause "
+"(or any other clause). The associated objects are also not returned directly "
+"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 ""
+"Ein Abruf-Join (sog. \"fetch join\") muss in der Regel keinen Alias "
+"zuordnen, weil die zugehörigen Objekte nicht in der <literal>where</literal>-"
+"Klausel (oder irgendeiner anderen Klausel) verwendet werden sollten. Die "
+"assoziierten Objekte werden auÃerdem nicht direkt in den Anfragenergebnissen "
+"wiedergegeben, sondern es wird via \"Parent\"-Objekt (d.h. dem "
+"übergeordneten Objekt) auf diese zugegriffen. Der einzige Grund aus dem wir "
+"einen Alias benötigen könnten ist, falls eine weitere Collection rekursiv "
+"abgerufen werden soll:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>fetch</literal> construct cannot be used in queries called "
+"using <literal>iterate()</literal> (though <literal>scroll()</literal> can "
+"be used). <literal>Fetch</literal> should be used together with "
+"<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 ""
+"Beachten Sie, dass das <literal>fetch</literal>-Konstrukt nicht in Anfragen "
+"verwendet werden kann, bei denen <literal>iterate()</literal> verwendet wird "
+"(obwohl <literal>scroll()</literal> verwendet werden kann). Auch sollte "
+"<literal>fetch</literal> nicht mit <literal>setMaxResults()</literal> oder "
+"<literal>setFirstResult()</literal> benutzt werden, da diese Vorgänge auf "
+"Ergebnisreihen basieren, die in der Regel Duplikate für den Collection-Abruf "
+"nach \"eager\"-Art (d.h. dem zusammengefassten Laden von Objekt und "
+"assoziierten Objekten mit Verbundoperationen) besitzen, und daher eine "
+"unerwartete Anzahl von Reihen liefern. Die Verwendung von <literal>fetch</"
+"literal> sollte auch in Verbindung mit einer ad hoc <literal>with</literal>-"
+"Bedingung vermieden werden. Es ist möglich, ein kartesisches Produkt zu "
+"erstellen, indem in einer Anfrage für mehr als eine Collection ein Join-"
+"Abruf erfolgt, achten Sie also in diesem Fall darauf. Ein Join-Abruf "
+"mehrerer Collection-Rollen führt manchmal zu unerwarteten Ergebnissen bei "
+"\"Bag\"-Mappings, achten Sie also darauf, wie Sie Ihre Anfragen in diesem "
+"Fall formulieren. <literal>full join fetch</literal> und <literal>right join "
+"fetch</literal> sind nicht von Bedeutung."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Falls Sie \"lazy\"-Fetching (d.h. das Nachladen assoziierter Objekte bei "
+"Bedarf) auf Property-Ebene verwenden (mit Bytecode Instrumentierung), so "
+"kann durchgesetzt werden, dass Hibernate die \"lazy\" Properties sofort (in "
+"der ersten Anfrage) mittels <literal>fetch all properties</literal> abruft."
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr "Formen der Verbundsyntax"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
+msgstr ""
+"HQL unterstützt zwei Arten von \"Association-Joining\": <literal>implicit</"
+"literal> und <literal>explicit</literal>."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die im vorherigen Abschnitt gezeigten Beispiele verwenden alle die "
+"<literal>explicit</literal>-Form, bei der der \"Join\"-Schlüsselbegriff "
+"explizit in der \"from\"-Klausel verwendet wird. Dieses ist die empfohlene "
+"Form."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+"Die <literal>implicit</literal>-Form verwendet den \"Join\"-Schlüsselbegriff "
+"nicht. Statt dessen sind die Assoziationen unter Verwendung von "
+"Punktnotation \"dereferenziert\". <literal>implicit</literal>-Joins können "
+"in jedem der HQL-Sätze erscheinen. <literal>implicit</literal>-Join-"
+"Ergebnisse resultieren in \"inner Joins\" in der sich ergebenden SQL-"
+"Anweisung."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Referring to identifier property"
+msgstr "Verweise auf die Bezeichner-Property"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr ""
+"Es gibt im Wesentlichen 2 Arten, um auf die Bezeichner-Property einer Entity "
+"zu verweisen:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die spezielle Property (Kleinbuchstaben) <literal>id</literal> kann "
+"verwendet werden, um auf die Bezeichner-Property einer Entity zu verweisen "
+"<emphasis> vorausgesetzt, dass diese Entity keine nicht-Bezeichner Property "
+"mit Namen id definiert </emphasis>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the entity defines a named identifier property, you can use that property "
+"name."
+msgstr ""
+"Falls die Entity eine benannte Bezeichner-Property definiert, können Sie "
+"diesen Property-Namen verwenden."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Verweise auf Properties von zusammengesetzten Bezeichnern folgen denselben "
+"Namensgebungsregeln. Falls die Entity eine nicht-Bezeichner Property namens "
+"id besitzt, so kann auf die Property des zusammengesetzten Bezeichners nur "
+"mittels deren definiertem Namen verwiesen werden; andernfalls kann die "
+"spezielle <literal>id</literal>-Property verwendet werden, um auf die "
+"Bezeichner-Property zu verweisen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Hinweis: Dies hat sich seit Version 3.2.2 maÃgeblich verändert. In früheren "
+"Versionen verwies <literal>id</literal><emphasis>immer</emphasis> auf die "
+"Bezeichner-Property, unabhängig vom tatsächlichen Namen. Eine Auswirkung "
+"dieser Entscheidung war, dass in Hibernate Anfragen nie auf nicht-Bezeichner "
+"Properties mit Namen <literal>id</literal> verwiesen werden konnte."
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr "Die \"select\"-Klausel"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die <literal>select</literal>-Klausel entscheidet, welche Objekte und "
+"Properties im Ergebnissatz der Anfrage erscheinen. Beachten Sie:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. You can express this query more compactly as:"
+msgstr ""
+"Die Anfrage wählt <literal>mate</literal>s anderer <literal>Cat</literal>s. "
+"Sie können diese Anfrage sogar noch kompakter ausdrücken:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Queries can return properties of any value type including properties of "
+"component type:"
+msgstr ""
+"Anfragen können Properties jeden Wertetyps, einschlieÃlich Properties des "
+"Komponententyps, wiedergeben:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Queries can return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>:"
+msgstr ""
+"Anfragen können mehrere Objekte und/oder Properties als Array vom Typ "
+"<literal>Object[]</literal> wiedergeben,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Or - assuming that the class <literal>Family</literal> has an appropriate "
+"constructor - as an actual typesafe Java object:"
+msgstr ""
+"in der Annahme, dass die Klasse <literal>Family</literal> einen "
+"entsprechenden Konstruktor besitzt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+"Unter Verwendung von <literal>as</literal> können Sie Aliasse gewählten "
+"Ausdrücken zuordnen:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal>:"
+msgstr ""
+"Das ist besonders in Verbindung mit <literal>select new map</literal> "
+"nützlich:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+"Diese Anfrage reagiert mit einer <literal>Map</literal> von Aliassen zu "
+"gewählten Werten."
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr "Aggregierte Funktionen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL queries can even return the results of aggregate functions on properties:"
+msgstr ""
+"HQL-Anfragen können sogar die Ergebnisse aggregierter Funktionen an "
+"Properties zurücksenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr "Die unterstützten aggregierten Funktionen sind "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "avg(...), sum(...), min(...), max(...)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "count(...), count(distinct ...), count(all...)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause:"
+msgstr ""
+"In der \"select\"-Klausel können Sie Rechenzeichen, Verkettung und "
+"anerkannte SQL-Funktionen verwenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords can be "
+"used and have the same semantics as in SQL."
+msgstr ""
+"Die <literal>distinct</literal> und <literal>all</literal>-Schlüsselbegriffe "
+"können verwendet werden und besitzen dieselbe Semantik wie in SQL."
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Polymorphe Anfragen"
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr "Eine Anfrage wie:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"reagiert nicht nur mit Instanzen von <literal>Cat</literal>, sondern auch "
+"Subklassen wie <literal>DomesticCat</literal>. Hibernate Anfragen können "
+"eine <emphasis>beliebige</emphasis> Java-Klasse oder Interface in der "
+"<literal>from</literal>-Klausel benennen. Die Anfrage reagiert mit Instanzen "
+"aller persistenten Klassen, die diese Klasse erweitern oder das Interface "
+"implementieren. Die folgende Anfrage würde mit allen persistenten Objekten "
+"reagieren:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+"Das Interface <literal>Named</literal> könnte durch verschiedene persistente "
+"Klassen implementiert werden:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Bitte beachten Sie, dass für die letzten beiden Anfragen mehr als ein SQL "
+"<literal>SELECT</literal> erforderlich ist. Das bedeutet, dass die "
+"<literal>order by</literal>-Klausel den gesamten Ergebnissatz nicht korrekt "
+"ordnet. (Es bedeutet auch, dass Sie diese Anfragen nicht mittels "
+"<literal>Query.scroll()</literal> aufrufen können)."
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr "Die \"where\"-Klausel"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die <literal>where</literal>-Klausel erlaubt es Ihnen, die Liste der "
+"erhaltenen Instanzen einzugrenzen. Falls kein Alias existiert, können Sie "
+"namentlich auf die Properties verweisen:"
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr ""
+"Falls ein Alias existiert, verwenden Sie einen vollständigen Property-Namen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr "reagiert mit Instanzen von 'Fritz' benannter <literal>Cat</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"sendet sämtliche Instanzen von <literal>Foo</literal> zurück, für die eine "
+"Instanz von <literal>bar</literal> mit einer <literal>date</literal>-"
+"Property existiert, die gleich der <literal>startDate</literal>-Property von "
+"<literal>Foo</literal> ist. Zusammengesetzte Pfadausdrücke machen die "
+"<literal>where</literal>-Klausel sehr leistungsfähig. Ziehen Sie folgendes "
+"in Betracht:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This query translates to an SQL query with a table (inner) join. For example:"
+msgstr ""
+"Diese Anfrage wird in eine SQL-Anfrage mit Tabellenverbund (inner join) "
+"übersetzt. Falls Sie etwas wie das nachfolgende schreiben würden"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr ""
+"so würden Sie eine Anfrage erhalten, die vier Tabellenverbünde (sog. \"table "
+"joins\") in SQL benötigen würde."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>=</literal> operator can be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+"Mit dem <literal>=</literal>-Operator können nicht nur Properties, sondern "
+"auch Instanzen verglichen werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> can be used to "
+"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
+"identifier-property\" /> for more information."
+msgstr ""
+"Die spezielle Property (Kleinbuchstaben) <literal>id</literal> kann "
+"verwendet werden, um auf den eindeutigen Bezeichner eines Objekts zu "
+"verweisen. Weitere Informationen finden Sie unter <xref linkend=\"queryhql-"
+"identifier-property\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr "Die zweite Anfrage ist effizient. Kein Tabellenverbund wird benötigt!"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Properties zusammengesetzter Bezeichner können ebenfalls verwendet werden. "
+"Nehmen wir an <literal>Person</literal> besitzt einen zusammengesetzten "
+"Bezeichner, der aus <literal>country</literal> und <literal>medicareNumber</"
+"literal> besteht. Auch in diesem Fall finden Sie weitere Informationen zu "
+"Verweisen auf Bezeichner-Properties unter <xref linkend=\"queryhql-"
+"identifier-property\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr "Erneut benötigt die zweite Anfrage keinen Tabellenverbund."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
+"regarding referencing identifier properties)"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Ebenso greift die spezielle Property <literal>class</literal> im Falle "
+"polymorpher Persistenz auf den Diskriminatorwert einer Instanz zu. Ein in "
+"der \"where\"-Klausel eingebetteter Java-Klassenname wird in seinen "
+"Diskriminatorwert übersetzt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also use components or composite user types, or properties of said "
+"component types. See <xref linkend=\"queryhql-components\" /> for more "
+"information."
+msgstr ""
+"Sie können auch Komponenten oder zusammengesetzte Benutzertypen der besagten "
+"Komponententypen verwenden. Weitere Informationen finden Sie unter <xref "
+"linkend=\"queryhql-components\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal> that allows you to express a join in the following "
+"way (where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal><any></literal>):"
+msgstr ""
+"Ein \"any\"-Typ hat die speziellen Properties <literal>id</literal> und "
+"<literal>class</literal>, wodurch ein Verbund auf folgende Weise ausgedrückt "
+"werden kann (wo <literal>AuditLog.item</literal> eine mit <literal><"
+"any></literal> gemappte Property ist)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>log.item.class</literal> and <literal>payment.class</literal> "
+"would refer to the values of completely different database columns in the "
+"above query."
+msgstr ""
+"Bitte beachten Sie, dass <literal>log.item.class</literal> und "
+"<literal>payment.class</literal> auf Werte völlig unterschiedlicher "
+"Datenbankspalten in der obigen Anfrage verweisen würden."
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr "Ausdrücke"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Expressions used in the <literal>where</literal> clause include the "
+"following:"
+msgstr ""
+"Die in der <literal>where</literal>-Klausel erlaubten Ausdrücke beinhalten "
+"die meisten Dinge, die in SQL geschrieben werden können:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr "mathematische Operatoren <literal>+, -, *, /</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
+"literal>"
+msgstr ""
+"binäre Vergleichsoperatoren <literal>=, >=, <=, <>, !=, like</"
+"literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr "logische Vorgänge <literal>and, or, not</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr "Runde Klammern <literal>( )</literal>, Gruppierung anzeigend"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+"\"Einfacher\" Fall <literal>case ... when ... then ... else ... end</"
+"literal>, und \"gesuchter\" Fall <literal>case when ... then ... else ... "
+"end</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
+"</literal>"
+msgstr ""
+"String-Verkettung <literal>...||...</literal> oder <literal>concat(...,...)</"
+"literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"and <literal>year(...)</literal>"
+msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>,"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
+"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
+"</literal>"
+msgstr ""
+"Jede Funktion oder Operator definiert durch EJB-QL 3.0: <literal>substring"
+"(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length"
+"(), mod()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr "<literal>coalesce()</literal> und <literal>nullif()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>str()</literal> for converting numeric or temporal values to a "
+"readable string"
+msgstr ""
+"<literal>str()</literal> zur Konvertierung numerischer oder temporärer Werte "
+"in einen lesbaren String"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cast(... as ...)</literal>, where the second argument is the name "
+"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
+"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
+"the underlying database"
+msgstr ""
+"<literal>cast(... as ...)</literal>, wo ein zweites Argument der Name eines "
+"Hibernate-Typs ist und <literal>extract(... from ...)</literal>, wenn ANSI "
+"<literal>cast()</literal> und <literal>extract()</literal> von der zu Grunde "
+"liegenden Datenbank unterstützt werden"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the HQL <literal>index()</literal> function, that applies to aliases of a "
+"joined indexed collection"
+msgstr ""
+"die HQL <literal>index()</literal>-Funktion, die für Aliasse eine "
+"verbundenen indizierten Collection gilt "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL functions that take collection-valued path expressions: <literal>size(), "
+"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
+"special <literal>elements()</literal> and <literal>indices</literal> "
+"functions that can be quantified using <literal>some, all, exists, any, in</"
+"literal>."
+msgstr ""
+"HQL-Funktionen, die Collection-wertige Pfadausdrücke annehmen: <literal>size"
+"(), minelement(), maxelement(), minindex(), maxindex()</literal> sowie die "
+"speziellen <literal>elements()</literal> und <literal>indices</literal>-"
+"Funktionen, die mittels <literal>some, all, exists, any, in</literal> "
+"gemessen werden können."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Jede von der Datenbank unterstützte SQL-Skalarfunktion wie <literal>sign()</"
+"literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, "
+"<literal>sin()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr "Positionelle Parameter im JDBC-Stil <literal>?</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"and <literal>:x1</literal>"
+msgstr ""
+"benannte Parameter <literal>:name</literal>, <literal>:start_date</literal>, "
+"<literal>:x1</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+"SQL-Literale <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+"Java <literal>public static final</literal>-Konstanten <literal>eg.Color."
+"TABBY</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr ""
+"<literal>in</literal> und <literal>between</literal> können wie folgt "
+"verwendet werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr "und die negierten Formen können geschrieben werden"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Similarly, <literal>is null</literal> and <literal>is not null</literal> can "
+"be used to test for null values."
+msgstr ""
+"Ebenso können <literal>is null</literal> und <literal>is not null</literal> "
+"verwendet werden, um auf Nullwerte zu prüfen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Booleans can be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+"Booleans können ganz einfach in Ausdrücken verwendet werden, indem man in "
+"der Hibernate Konfiguration HQL-Anfragesubstitutionen deklariert:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
+msgstr ""
+"Das ersetzt die Schlüsselbegriffe <literal>true</literal> und "
+"<literal>false</literal> durch die Literale <literal>1</literal> und "
+"<literal>0</literal> in der aus dieser HQL übersetzten SQL:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Sie können die GröÃe einer Collection mit der speziellen Property "
+"<literal>size</literal> oder der speziellen <literal>size()</literal>-"
+"Funktion überprüfen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Für indizierte Collections können Sie auf den minimalen und den maximalen "
+"Index verweisen, indem Sie die <literal>minindex</literal> und "
+"<literal>maxindex</literal>-Funktionen verwenden. Ãhnlich können Sie auch "
+"auf die minimalen und maximalen Elemente einer Collection des Grundtyps "
+"mittels <literal>minelement</literal> und <literal>maxelement</literal>-"
+"Funktionen verweisen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The SQL functions <literal>any, some, all, exists, in</literal> are "
+"supported when passed the element or index set of a collection "
+"(<literal>elements</literal> and <literal>indices</literal> functions) or "
+"the result of a subquery (see below):"
+msgstr ""
+"Die SQL-Funktionen <literal>any, some, all, exists, in</literal> werden "
+"unterstützt, wenn an den Element- oder Indexsatz einer Collection "
+"(<literal>elements</literal> und <literal>indices</literal>-Funktionen) oder "
+"das Ergebnis einer Unteranfrage gegeben (siehe unten)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that these constructs - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - can only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+"Bitte beachten Sie, dass folgende Konstrukte - <literal>size</literal>, "
+"<literal>elements</literal>, <literal>indices</literal>, <literal>minindex</"
+"literal>, <literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - in Hibernate3 nur in der \"where\"-Klausel "
+"verwendet werden können."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Elements of indexed collections (arrays, lists, and maps) can be referred to "
+"by index in a where clause only:"
+msgstr ""
+"Auf Elemente indizierter Collections (Arrays, Listen, Maps) kann durch den "
+"Index verwiesen werden (nur in der \"where\"-Klausel):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> can even be an arithmetic "
+"expression:"
+msgstr ""
+"Der Ausdruck innerhalb von <literal>[]</literal> kann sogar ein "
+"arithmetischer Ausdruck sein."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function for "
+"elements of a one-to-many association or collection of values."
+msgstr ""
+"HQL bietet auÃerdem die eingebaute <literal>index()</literal>-Funktion für "
+"Elemente einer \"One-to-Many\"-Assoziation oder einer Collection von Werten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr ""
+"Skalare SQL-Funktionen, die durch die zu Grunde liegende Datenbank "
+"unterstützt werden, können verwendet werden"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Consider how much longer and less readable the following query would be in "
+"SQL:"
+msgstr ""
+"Falls Sie jetzt noch nicht vom Sinn des Ganzen überzeugt sind, überlegen Sie "
+"einmal, um wie viel länger und um wie viel weniger lesbar die folgende "
+"Anfrage in SQL wäre:"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr "<emphasis>Tipp:</emphasis> etwas wie"
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr "Die Reihenfolge nach Klausel"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The list returned by a query can be ordered by any property of a returned "
+"class or components:"
+msgstr ""
+"Die Liste, mit der eine Anfrage reagiert, kann nach jeder Property der "
+"Klasse oder Komponenten geordnet sein:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+"Die optionalen <literal>asc</literal> oder <literal>desc</literal> zeigen "
+"die aufsteigende bzw. absteigende Reihenfolge an."
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr "Die Gruppe nach Klausel"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A query that returns aggregate values can be grouped by any property of a "
+"returned class or components:"
+msgstr ""
+"Eine Anfrage, die aggregierte Werte zurücksendet kann durch jede Property "
+"einer zurückgesendeten Klasse oder Komponenten gruppiert werden:"
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr "Eine <literal>having</literal>-Klausel ist ebenfalls gestattet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses if they are supported by "
+"the underlying database (i.e., not in MySQL)."
+msgstr ""
+"SQL-Funktionen und aggregierte Funktionen sind in den <literal>having</"
+"literal> und <literal>order by</literal>-Klauseln gestattet , wenn sie von "
+"der zu Grunde liegenden Datenbank unterstützt werden (z.B. nicht in MySQL)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Neither the <literal>group by</literal> clause nor the <literal>order by</"
+"literal> clause can contain arithmetic expressions. Hibernate also does not "
+"currently expand a grouped entity, so you cannot write <literal>group by "
+"cat</literal> if all properties of <literal>cat</literal> are non-"
+"aggregated. You have to list all non-aggregated properties explicitly."
+msgstr ""
+"Beachten Sie, dass weder die <literal>group by</literal>-Klausel noch die "
+"<literal>order by</literal>-Klausel arithmetische Ausdrücke enthalten "
+"dürfen. Beachten Sie auch, dass Hibernate zur Zeit keine gruppierte Entity "
+"ausklappt, das heiÃt, Sie können nicht <literal>group by cat</literal> "
+"schreiben, wenn sämtliche Properties von <literal>cat</literal> nicht "
+"aggregiert sind. Sie müssen alle nicht aggregierten Properties explizit "
+"auflisten."
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr "Unteranfragen"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For databases that support subselects, Hibernate supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+"Für Datenbanken, die Unterauswahlen unterstützen, unterstützt Hibernate "
+"innerhalb von Anfragen Unteranfragen. Eine Unteranfrage muss eingeklammert "
+"sein (oftmals durch einen SQL aggregierten Funktionsaufruf). Selbst "
+"korrelierende Unteranfragen (Unteranfragen, die auf einen Alias in der "
+"auÃerhalb liegenden Anfrage verweisen) sind gestattet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr ""
+"Beachten Sie, dass HQL-Unteranfragen nur in der Auswahl oder die \"where\"-"
+"Klausel auftreten können."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
+msgstr ""
+"Beachten Sie, dass Unteranfragen ebenfalls die <literal>row value "
+"constructor</literal>-Syntax nutzen können. Weitere Informationen finden Sie "
+"unter <xref linkend=\"queryhql-tuple\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr "HQL-Beispiele"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Anfragen in Hibernate können sehr leistungsfähig und recht komplex sein. "
+"Genau genommen ist die Leistungsfähigkeit eine von Hibernates gröÃten "
+"Stärken. Nachfolgend sehen Sie einige Beispielanfragen, ähnlich denen, die "
+"ich bei einem aktuellen Projekt verwendet habe. Bitte beachten Sie, dass die "
+"meisten Anfragen, die Sie werden schreiben müssen, wesentlich einfacher als "
+"diese sind!"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die folgende Anfrage reagiert mit der ID der Bestellung (sog. \"order id\"), "
+"der Anzahl von Posten und dem Gesamtwert der Bestellung für alle unbezahlten "
+"Bestellungen für einen bestimmten Kunden und dem gegebenen Mindestwert, "
+"wobei die Ergebnisse nach Gesamtwert geordnet wird. Bei der Bestimmung der "
+"Preise wird der aktuelle Katalog verwendet. Die sich ergebende SQL-Anfrage "
+"an <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
+"<literal>PRODUCT</literal>, <literal>CATALOG</literal> und <literal>PRICE</"
+"literal>-Tabellen besitzt vier innere Verbünde (\"inner joins\") und eine "
+"(unkorrelierte) Unterauswahl."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+"Monströs! Im wirklichen Leben bin ich kein groÃer Freund von Unteranfragen, "
+"daher sieht meine Anfrage eher wie folgt aus:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+"Die nächste Anfrage zählt die Anzahl von Zahlungen in jedem Status, wobei "
+"Zahlungen mit <literal>AWAITING_APPROVAL</literal>-Status, bei denen die "
+"aktuellste Statusänderung durch den Benutzer vorgenommen wurde, ausgenommen "
+"sind. Sie wird in eine SQL-Anfrage mit zwei inneren Verbünden und eine "
+"korrelierte Unterauswahl an die <literal>PAYMENT</literal>, "
+"<literal>PAYMENT_STATUS</literal> und <literal>PAYMENT_STATUS_CHANGE</"
+"literal>-Tabellen übersetzt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the <literal>statusChanges</literal> collection was mapped as a list, "
+"instead of a set, the query would have been much simpler to write."
+msgstr ""
+"Wäre die <literal>statusChanges</literal>-Collection als Liste statt als "
+"Satz (sog. \"set\") gemappt, so hätte sich die Anfrage einfacher schreiben "
+"lassen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+"Die nächste Anfrage verwendet die MS SQL Server <literal>isNull()</literal>-"
+"Funktion, um alle Konten und unbezahlten Zahlungen für the Organisation, zu "
+"der der aktuelle Benutzer gehört, wiederzugeben. Sie wird in eine SQL-"
+"Anfrage mit drei inneren Verbünden (\"inner Joins\"), einen äuÃeren Verbund "
+"(\"outer Join\") und eine Unterauswahl gegen die <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> und "
+"<literal>ORG_USER</literal>-Tabellen übersetzt."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+"Bei einigen Datenbanken würden wir die (korrelierende) Unterauswahl "
+"abschaffen müssen."
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr "\"Bulk\"-Aktualisierung und Löschen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
+"<literal>insert ... select ...</literal> statements. See <xref linkend="
+"\"batch-direct\" /> for more information."
+msgstr ""
+"HQL unterstützt nun <literal>update</literal>, <literal>delete</literal> und "
+"<literal>insert ... select ...</literal>-Anweisungen. Weitere Einzelheiten "
+"hierzu finden Sie unter <xref linkend=\"batch-direct\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr "Tipps & Tricks"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr ""
+"Sie können die Anzahl der Anfragenergebnisse zählen, ohne diese tatsächlich "
+"wiederzugeben:"
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+"Um ein Ergebnis nach der GröÃe einer Collection zu ordnen, verwenden Sie die "
+"folgende Anfrage:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+"Falls Ihre Datenbank Unterauswahlen unterstützt, können Sie eine Bedingung "
+"bezüglich der AuswahlgröÃe in der \"where\"-Klausel Ihrer Anfrage stellen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr ""
+"Falls Ihre Datenbank keine Unterauswahl unterstützt, verwenden Sie folgende "
+"Anfrage:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As this solution cannot return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+"Da dabei wegen des inneren Verbunds nicht mit einem <literal>User</literal> "
+"mit \"Null\" Nachrichten reagiert werden kann, ist die folgende Form "
+"ebenfalls hilfreich:"
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr ""
+"Properties eines JavaBean können an benannte Anfragenparameter gebunden "
+"werden:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections are pageable by using the <literal>Query</literal> interface "
+"with a filter:"
+msgstr ""
+"Collections sind unter Verwendung des <literal>Query</literal>-Interface mit "
+"einem Filter seitenwechselbar:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr ""
+"Collection-Elemente können mittels eines Anfragenfilters geordnet oder "
+"gruppiert werden:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr ""
+"Sie können die GröÃe einer Collection finden, ohne diese zu initialisieren:"
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr "Komponenten"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Komponenten können auf nahezu alle Arten verwendet werden, wie Wertetypen in "
+"HQL-Anfragen. Sie können in der <literal>select</literal>-Klausel auftreten:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"where the Person's name property is a component. Components can also be used "
+"in the <literal>where</literal> clause:"
+msgstr ""
+"wo die Namen-Property der Person eine Komponente ist. Komponenten können "
+"auch in der <literal>where</literal>-Klausel verwendet werden:"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr ""
+"Komponenten können auch in der <literal>order by</literal>-Klausel verwendet "
+"werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+msgstr ""
+"Ein weiterer gängiger Anwendungsbereich von Komponenten ist in <xref linkend="
+"\"queryhql-tuple\"/> \"Row-Value-Constructors\"."
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr "Die Syntax des \"Row-Value-Constructors\""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
+"syntax, sometimes referred to AS <literal>tuple</literal> syntax, even "
+"though the underlying database may not support that notion. Here, we are "
+"generally referring to multi-valued comparisons, typically associated with "
+"components. Consider an entity Person which defines a name component:"
+msgstr ""
+"HQL unterstützt die Verwendung der ANSI SQL <literal>row value constructor</"
+"literal>-Syntax (auch als <literal>tuple</literal>-Syntax bekannt), obwohl "
+"die zu Grunde liegende Datenbank diesen Begriff möglicherweise nicht "
+"unterstützt. Wir beziehen uns hier im Wesentlichen auf mehrwertige "
+"Vergleiche, in der Regel mit Komponenten assoziiert. Ziehen Sie eine Entity "
+"Person in Betracht, die eine Namenskomponente definiert:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das ist eine gültige Syntax, wenngleich etwas wortreich. Präziser lässt sich "
+"dies mittels der <literal>row value constructor</literal>-Syntax ausdrücken:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It can also be useful to specify this in the <literal>select</literal> "
+"clause:"
+msgstr ""
+"Es kann sich als nützlich erweisen, dies in der <literal>select</literal>-"
+"Klausel zu spezifizieren:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die Verwendung der <literal>row value constructor</literal>-Syntax kann "
+"auÃerdem bei der Verwendung von Unteranfragen hilfreich sein, die mit "
+"mehreren Werten verglichen werden müssen:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Bei der Entscheidung, ob Sie diese Syntax verwenden möchten, sollten Sie "
+"berücksichtigen, dass die Anfrage von der Anordnung der Komponenten Sub-"
+"Properties in Metadata abhängig sein wird."
+
+#, fuzzy
+#~ msgid "<![CDATA[from eg.Cat]]>"
+#~ 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"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat]]>"
+#~ msgstr "from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula, Parameter]]>"
+#~ msgstr "from Formula, Parameter"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula as form, Parameter as param]]>"
+#~ msgstr "from Formula as form, Parameter as param"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
+#~ msgstr "from Cat as cat left join cat.mate.kittens as kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula form full join form.parameter param]]>"
+#~ msgstr "from Formula form full join form.parameter param"
+
+#~ msgid "inner join"
+#~ msgstr "inner join"
+
+#~ msgid "left outer join"
+#~ 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"
+#~ " left join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " join cat.mate as mate\n"
+#~ " left join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Document fetch all properties order by name]]>"
+#~ msgstr "from Document fetch all properties order by name"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Document doc fetch all properties where lower(doc.name) "
+#~ "like '%cats%']]>"
+#~ msgstr ""
+#~ "from Document doc fetch all properties where lower(doc.name) like '%"
+#~ "cats%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
+#~ msgstr "from Cat as cat where cat.mate.name like '%s%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate]]>"
+#~ msgstr ""
+#~ "select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cat.mate from Cat cat]]>"
+#~ msgstr "select cat.mate from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%']]>"
+#~ msgstr ""
+#~ "select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
+#~ msgstr "select cust.name.firstName from Customer as cust"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, "
+#~ "count(*) as n )\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n )\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count"
+#~ "(cat)\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
+#~ "from Cat cat"
+
+#~ msgid "count(*)"
+#~ msgstr "count(*)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight]]>"
+#~ msgstr ""
+#~ "select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from "
+#~ "Person]]>"
+#~ msgstr "select firstName||' '||initial||' '||upper(lastName) from Person"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat]]>"
+#~ msgstr ""
+#~ "select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from java.lang.Object o]]>"
+#~ msgstr "from java.lang.Object o"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
+#~ msgstr "from Named n, Named m where n.name = m.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat where name='Fritz']]>"
+#~ msgstr "from Cat where name='Fritz'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+#~ msgstr "from Cat as cat where cat.name='Fritz'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date]]>"
+#~ msgstr ""
+#~ "select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
+#~ msgstr "from Cat cat where cat.mate.name is not null"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null]]>"
+#~ msgstr ""
+#~ "from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
+#~ msgstr "from Cat cat, Cat rival where cat.mate = rival.mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate]]>"
+#~ msgstr ""
+#~ "select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69]]>"
+#~ msgstr ""
+#~ "from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
+#~ msgstr "from Cat cat where cat.class = DomesticCat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id]]>"
+#~ msgstr ""
+#~ "from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name not between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', "
+#~ "'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
+#~ msgstr "from Cat cat where cat.alive = true"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
+#~ msgstr "from Cat cat where cat.kittens.size > 0"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
+#~ msgstr "from Cat cat where size(cat.kittens) > 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]"
+#~ ">"
+#~ msgstr "from Calendar cal where maxelement(cal.holidays) > current_date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
+#~ msgstr "from Order order where maxindex(order.items) > 100"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
+#~ msgstr "from Order order where minelement(order.items) > 10000"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)]]>"
+#~ msgstr ""
+#~ "select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)]]>"
+#~ msgstr ""
+#~ "select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
+#~ msgstr "from Cat cat where exists elements(cat.kittens)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
+#~ msgstr "from Player p where 3 > all elements(p.scores)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
+#~ msgstr "from Show show where 'fizard' in indices(show.acts)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
+#~ msgstr "from Order order where order.items[0].id = 1234"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar]]>"
+#~ msgstr ""
+#~ "select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5]]>"
+#~ msgstr ""
+#~ "select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
+#~ msgstr "from DomesticCat cat where upper(cat.name) like 'FRI%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)]]>"
+#~ msgstr ""
+#~ "select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust."
+#~ "current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )]]>"
+#~ msgstr ""
+#~ "SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate]]>"
+#~ msgstr ""
+#~ "from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id]]>"
+#~ msgstr ""
+#~ "select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc]]>"
+#~ msgstr ""
+#~ "select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat]]>"
+#~ msgstr ""
+#~ "select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :"
+#~ "currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <"
+#~ "> :currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue()]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
+#~ msgstr "from User usr where size(usr.messages) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:"
+#~ "name and foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name and "
+#~ "foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial "
+#~ "filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createFilter( collection, \"\" ); // the trivial filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection orderedCollection = s.filter( collection, \"order by "
+#~ "this.amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );]]>"
+#~ msgstr ""
+#~ "Collection orderedCollection = s.filter( collection, \"order by this."
+#~ "amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue();]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue();"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name from Person p]]>"
+#~ msgstr "select p.name from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name.first from Person p]]>"
+#~ msgstr "select p.name.first from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name = :name]]>"
+#~ msgstr "from from Person p where p.name = :name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name.first = :firstName]]>"
+#~ msgstr "from from Person p where p.name.first = :firstName"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name]]>"
+#~ msgstr "from from Person p order by p.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name.first]]>"
+#~ msgstr "from from Person p order by p.name.first"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name.first='John' and p.name."
+#~ "last='Jingleheimer-Schmidt']]>"
+#~ msgstr ""
+#~ "from Person p where p.name.first='John' and p.name.last='Jingleheimer-"
+#~ "Schmidt'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
+#~ msgstr "from Person p where p.name=('John', 'Jingleheimer-Schmidt')"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_sql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_sql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/query_sql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1933 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr "Native SQL"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also express queries in the native SQL dialect of your database. "
+"This is useful if you want to utilize database-specific features such as "
+"query hints or the <literal>CONNECT</literal> keyword in Oracle. It also "
+"provides a clean migration path from a direct SQL/JDBC based application to "
+"Hibernate."
+msgstr ""
+"Sie können Anfragen im nativen SQL-Dialekt Ihrer Datenbank ausdrücken. Das "
+"ist insbesondere dann von Nutzen, wenn Sie Datenbank-spezifische Features "
+"wie Anfragetipps oder den <literal>CONNECT</literal>-Schlüsselbegriff in "
+"Oracle verwenden wollen. AuÃerdem steht dadurch ein Migrationspfad von einer "
+"direkten, auf SQL/JDBC basierenden Anwendung zu Hibernate zur Verfügung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 allows you to specify handwritten SQL, including stored "
+"procedures, for all create, update, delete, and load operations."
+msgstr ""
+"Mit Hibernate3 können Sie per Hand geschriebene SQL (einschlieÃlich "
+"gespeicherter Prozeduren) für alle create, update, delete, und load Vorgänge "
+"festlegen."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Execution of native SQL queries is controlled via the <literal>SQLQuery</"
+"literal> interface, which is obtained by calling <literal>Session."
+"createSQLQuery()</literal>. The following sections describe how to use this "
+"API for querying."
+msgstr ""
+"Die Ausführung nativer SQL-Anfragen wird mittels <literal>SQLQuery</literal>-"
+"Interface gesteuert, das man durch Aufruf von <literal>Session.createSQLQuery"
+"()</literal> erhält. Nachfolgend erläutern wir die Verwendung dieser API für "
+"Anfragen."
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr "Skalare Anfragen"
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr ""
+"Die grundlegendste SQL-Anfrage erfolgt durch eine Liste von Skalaren "
+"(Werten)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"These will return a List of Object arrays (Object[]) with scalar values for "
+"each column in the CATS table. Hibernate will use ResultSetMetadata to "
+"deduce the actual order and types of the returned scalar values."
+msgstr ""
+"Beides reagiert mit einer Liste von Objekt-Datenelementen (Object[]) mit "
+"skalaren Werten für jede Spalte der CATS-Tabelle. Hibernate wird unter "
+"Verwendung von ResultSetMetadata die tatsächliche Anordnung und Typen der "
+"erhaltenen Skalarwerte ableiten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To avoid the overhead of using <literal>ResultSetMetadata</literal>, or "
+"simply to be more explicit in what is returned, one can use "
+"<literal>addScalar()</literal>:"
+msgstr ""
+"Um den Zusatz der Verwendung von <literal>ResultSetMetadata</literal> zu "
+"vermeiden oder einfach expliziter zu sein, können Sie <literal>addScalar()</"
+"literal> verwenden."
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr "Diese Anfrage spezifiziert:"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr "den SQL-Anfragen-String"
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr "die wiederzugebenden Spalten und Typen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This will return Object arrays, but now it will not use "
+"<literal>ResultSetMetadata</literal> but will instead explicitly get the ID, "
+"NAME and BIRTHDATE column as respectively a Long, String and a Short from "
+"the underlying resultset. This also means that only these three columns will "
+"be returned, even though the query is using <literal>*</literal> and could "
+"return more than the three listed columns."
+msgstr ""
+"Dadurch werden Objektreihen wiedergegeben, jedoch werden keine "
+"<literal>ResultSetMetdata</literal> verwendet, sondern es wird explizit die "
+"ID, NAME und BIRTHDATE Spalte als ein Long, String und ein Short vom zu "
+"Grunde liegenden Ergebnissatz (\"result set\") geholt. Das bedeutet auch, "
+"dass nur diese drei Spalten wiedergegeben werden, selbst wenn die Anfrage "
+"<literal>*</literal> verwendet und mehr als die drei gelisteten Spalten "
+"wiedergeben könnte."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
+msgstr ""
+"Es ist möglich, die Typeninformationen für alle oder einige der Skalare "
+"auszulassen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is essentially the same query as before, but now "
+"<literal>ResultSetMetaData</literal> is used to determine the type of NAME "
+"and BIRTHDATE, where as the type of ID is explicitly specified."
+msgstr ""
+"Es handelt sich im Wesentlichen um diesselbe Anfrage wie zuvor, auÃer dass "
+"jetzt <literal>ResultSetMetaData</literal> verwendet wurde, um den Typ von "
+"NAME und BIRTHDATE zu bestimmen, während der ID-Typ explizit spezifiziert "
+"wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"How the java.sql.Types returned from ResultSetMetaData is mapped to "
+"Hibernate types is controlled by the Dialect. If a specific type is not "
+"mapped, or does not result in the expected type, it is possible to customize "
+"it via calls to <literal>registerHibernateType</literal> in the Dialect."
+msgstr ""
+"Der Dialekt steuert, wie die java.sql.Typen, die von ResultSetMetaData "
+"erhalten werden, zu Hibernate Typen gemappt werden. Falls ein bestimmter Typ "
+"nicht gemappt ist oder nicht den erwarteten Typ hervorbringt, so ist es "
+"möglich, dies durch Anpassung an <literal>registerHibernateType</literal> im "
+"Dialekt anzupassen."
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr "Entity-Anfragen"
+
+#. 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 ""
+"Die Anfragen oben behandeln die erhaltenen Skalarwerte, wobei es sich dabei "
+"um die \"unbearbeiteten\" Werte von resultset handelt. Nachfolgend sehen "
+"Sie, wie Sie Entity-Objekte von einer nativen SQL-Anfrage mittels "
+"<literal>addEntity()</literal> erhalten."
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr "die von der Anfrage wiedergegebene Entity"
+
+#. 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 ""
+"Geht man davon aus, dass Cat als Klasse mit den Spalten ID, NAME und "
+"BIRTHDATE gemappt ist, werden die Anfragen oben beide mit einer Liste "
+"antworten, in der jedes Element eine Entity von Cat ist."
+
+#. 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 ""
+"Falls die Entity mit <literal>many-to-one</literal> zu einer anderen Entity "
+"gemappt ist, so ist dies ebenfalls erforderlich wenn die native Anfrage "
+"durchgeführt wird, da sonst eine Datenbank-spezifische \"Spalte nicht "
+"gefunden\"-Fehlermeldung (\"column not found\") erscheint. Die zusätzlichen "
+"Spalten werden bei Verwendung der * Notation automatisch wiedergegeben, aber "
+"wie im folgenden Beispiel für eine <literal>many-to-one</literal> zu "
+"<literal>Dog</literal> wollen wir lieber explizit sein:"
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr "Dies ermöglicht die ordnungsgemäÃe Funktion von cat.getDog()."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr "Umgang mit Assoziationen und Collections"
+
+#. 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 ""
+"Es ist möglich \"eager Join\" in <literal>Dog</literal> anzuwenden, um den "
+"Extra-Weg zur Datenbank zur Initialisierung des Proxy zu vermeiden. Dies "
+"geschieht mittels der <literal>addJoin()</literal>-Methode, die es Ihnen "
+"ermöglicht, eine Assoziation oder Collection zu verbinden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this example, the returned <literal>Cat</literal>'s will have their "
+"<literal>dog</literal> property fully initialized without any extra "
+"roundtrip to the database. Notice that you added an alias name (\"cat\") to "
+"be able to specify the target property path of the join. It is possible to "
+"do the same eager joining for collections, e.g. if the <literal>Cat</"
+"literal> had a one-to-many to <literal>Dog</literal> instead."
+msgstr ""
+"In diesem Beispiel ist die <literal>dog</literal>-Property der "
+"wiedergegebenen <literal>Cat</literal>'s voll initialisiert, ohne dass ein "
+"Extra-Weg zur Datenbank nötig ist. Beachten Sie, dass wir einen Alias-Namen "
+"(\"cat\") hinzugefügt haben, um den Pfad der Ziel-Property der Verbindung "
+"spezifizieren zu können. Es ist möglich, dasselbe für das \"eager Joining\" "
+"von Collections zu tun, z.B. wenn <literal>Cat</literal> satt dessen eine "
+"\"One-to-many\" zu <literal>Dog</literal> hätte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"At this stage you are reaching the limits of what is possible with native "
+"queries, without starting to enhance the sql queries to make them usable in "
+"Hibernate. Problems can arise when returning multiple entities of the same "
+"type or when the default alias/column names are not enough."
+msgstr ""
+"Wir erreichen nun den Punkt, an dem wir an die Grenzen dessen stoÃen, was "
+"mit nativen Anfragen möglich ist, ohne die sql-Anfragen weiterzuentwickeln, "
+"um sie in Hibernate verwendbar zu machen. Das Problem zeigt sich erstmals, "
+"wenn mehrere Entities desselben Typs auftauchen oder wenn die Standard "
+"Alias-/Spaltennamen nicht ausreichen."
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr "Wiedergabe mehrerer Entities"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Until now, the result set column names are assumed to be the same as the "
+"column names specified in the mapping document. This can be problematic for "
+"SQL queries that join multiple tables, since the same column names can "
+"appear in more than one table."
+msgstr ""
+"Bis jetzt wird angenommen, dass die Spaltennamen des Ergebnissatzes "
+"dieselben wie die im Mapping-Dokument spezifizierten Spaltennamen sind. Dies "
+"kann problematisch für SQL-Anfragen sein, die mehrere Tabellen verbinden, da "
+"dieselben Spaltennamen stets in mehr als einer Tabelle vorkommen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
+msgstr ""
+"Spalten Alias-Einspeisung wird bei der folgenden Anfrage benötigt (die aller "
+"Wahrscheinlichkeit nach fehlschlagen wird):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The query was intended to return two Cat instances per row: a cat and its "
+"mother. The query will, however, fail because there is a conflict of names; "
+"the instances are mapped to the same column names. Also, on some databases "
+"the returned column aliases will most likely be on the form \"c.ID\", \"c."
+"NAME\", etc. which are not equal to the columns specified in the mappings "
+"(\"ID\" and \"NAME\")."
+msgstr ""
+"Die Absicht dieser Anfrage ist es, das diese zwei Cat-Instanzen pro Reihe "
+"wiedergibt, einer \"Cat\" und deren \"Mother\". Dies wird fehlschlagen, da "
+"ein Namenskonflikt existiert, weil diese zu denselben Spaltennamen gemappt "
+"sind; in manchen Datenbanken haben die wiedergegebenen Spalten-Aliasse aller "
+"Wahrscheinlichkeit nach die Form \"c.ID\", \"c.NAME\", usw. die nicht "
+"dieselbe wie die in den Mappings (\"ID\" und \"NAME\") spezifizierten "
+"Spalten besitzt."
+
+#. Tag: para
+#, no-c-format
+msgid "The following form is not vulnerable to column name duplication:"
+msgstr ""
+"Die folgende Form ist nicht anfällig für die Duplizierung von Spaltennamen:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
+msgstr ""
+"der SQL Anfragen-String mit Platzhaltern für die durch Hibernate "
+"eingespeisten Aliasse"
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr "die von der Anfrage erhaltenen Entities"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The {cat.*} and {mother.*} notation used above is a shorthand for \"all "
+"properties\". Alternatively, you can list the columns explicitly, but even "
+"in this case Hibernate injects the SQL column aliases for each property. The "
+"placeholder for a column alias is just the property name qualified by the "
+"table alias. In the following example, you retrieve Cats and their mothers "
+"from a different table (cat_log) to the one declared in the mapping "
+"metadata. You can even use the property aliases in the where clause."
+msgstr ""
+"Die oben verwendete {cat.*} und {mother.*} Notation ist eine Kurzschrift für "
+"\"alle Properties\". Alternativ können Sie die Spalten direkt auflisten, "
+"wobei wir aber selbst in diesem Fall Hibernate die SQL Spalten-Aliasse für "
+"jede Property einspeisen lassen. Der Platzhalter für einen Spalten-Alias ist "
+"einfach der durch den Tabellen-Alias definierte Property-Name. Im folgenden "
+"Beispiel erhalten wir \"Cats\" und deren \"Mothers\" von einer anderen "
+"Tabelle (cat_log) als der in den Mapping-Metadata deklarierten. Beachten "
+"Sie, dass wir sogar die Property-Aliasse in der \"where\"-Klausel verwenden "
+"können, wenn wir das möchten."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr "Alias- und Property-Referenzen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In most cases the above alias injection is needed. For queries relating to "
+"more complex mappings, like composite properties, inheritance "
+"discriminators, collections etc., you can use specific aliases that allow "
+"Hibernate to inject the proper aliases."
+msgstr ""
+"In den meisten Fällen wird die obige Alias-Einspeisung benötigt, jedoch "
+"müssen für komplexere Mappings betreffende Anfragen wie zusammengesetzte "
+"Properties, Vererbungsdiskriminatoren, Collections usw. spezielle Aliasse "
+"verwendet werden, die es Hibernate erlauben, die korrekten Aliasse "
+"einzuspeisen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table shows the different ways you can use the alias "
+"injection. Please note that the alias names in the result are simply "
+"examples; each alias will have a unique and probably different name when "
+"used."
+msgstr ""
+"Die folgende Tabelle zeigt die verschiedenen Möglichkeiten wie die Alias-"
+"Einspeisung verwendet werden kann. Hinweis: Die Alias-Namen im Ergebnis sind "
+"Beispiele, jeder Alias wird bei seiner Anwendung einen eindeutigen und "
+"wahrscheinlich unterschiedlichen Namen besitzen."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr "Alias-Einspeisungsnamen"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "Beschreibung"
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr "Syntax"
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr "Beispiel"
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr "Eine einfache Property"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "{[aliasname].[propertyname]"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr "Eine zusammengesetzte Property"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgstr "{[aliasname].[componentname].[propertyname]}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
+"literal>"
+msgstr "CURRENCY als {item.amount.currency}, VALUE als {item.amount.value}"
+
+#. Tag: entry
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr "Diskriminator einer Entity"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr "Alle Properties einer Entity"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr "Ein Collection-Schlüssel"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr "Die id einer Collection"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr "Das Element einer Collection"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "{coll.element.*}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "{coll.element.*}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "property of the element in the collection"
+msgstr "Property des Elements in der Collection"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "{[aliasname].element.[propertyname]}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "{coll.element.*}"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr "Alle Properties des Elements in der Collection"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "{coll.element.*}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "{coll.element.*}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "All properties of the the collection"
+msgstr "Alle Properties der Collection"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "oder als eine <literal>List</literal>,"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr "Wiedergabe nicht gemanagter Entities"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to apply a ResultTransformer to native SQL queries, allowing "
+"it to return non-managed entities."
+msgstr ""
+"Es ist möglich, einen ResultTransformer (Ergebnistransformer) an nativen SQL-"
+"Anfragen anzuwenden, der die Wiedergabe nicht gemanagter Entities ermöglicht."
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr "ein Ergebnistransformer"
+
+#. 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 ""
+"Die Anfrage oben wird eine Liste von <literal>CatDTO</literal> wiedergeben, "
+"die instantiiert wurde und die Werte für NAME und BIRTHNAME in die "
+"entsprechenden Properties oder Felder eingespeist hat."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr "Umgang mit Vererbung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Native SQL queries which query for entities that are mapped as part of an "
+"inheritance must include all properties for the baseclass and all its "
+"subclasses."
+msgstr ""
+"Native SQL-Anfragen für Entities, die als Teil einer Vererbung gemappt sind, "
+"müssen sämtliche Properties für die Stammklasse und alle Subklassen "
+"enthalten."
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr "Parameter"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr ""
+"Native SQL-Anfragen unterstützen sowohl positionelle als auch benannte "
+"Parameter:"
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr "Benannte SQL-Anfragen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Named SQL queries can be defined in the mapping document and called in "
+"exactly the same way as a named HQL query. In this case, you do "
+"<emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
+msgstr ""
+"Benannte SQL-Anfragen können im Mapping-Dokument definiert und auf dieselbe "
+"Weise wie eine benannte HQL-Anfrage benannt werden. In diesem Fall muss "
+"<emphasis>nicht</emphasis> der Aufruf <literal>addEntity()</literal> "
+"erfolgen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><return-join></literal> element is use to join "
+"associations and the <literal><load-collection></literal> element is "
+"used to define queries which initialize collections,"
+msgstr ""
+"Die <literal><return-join></literal> und <literal><load-"
+"collection></literal>-Elemente werden verwendet, um Assoziationen zu "
+"verbinden bzw. Anfragen, die Collections definieren, zu initialisieren."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal><return-scalar></literal> "
+"element:"
+msgstr ""
+"Eine benannte SQL-Anfrage kann einen Skalarwert wiedergeben. Sie müssen "
+"unter Verwendung des <literal><return-scalar></literal>-Elements den "
+"Spalten-Alias und den Hibernate-Typ deklarieren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can externalize the resultset mapping information in a <literal><"
+"resultset></literal> element which will allow you to either reuse them "
+"across several named queries or through the <literal>setResultSetMapping()</"
+"literal> API."
+msgstr ""
+"Sie können die Mapping-Informationen des Ergebnissatzes (\"resultset\") in "
+"einem <literal><resultset></literal>-Element externalisieren, um diese "
+"entweder über mehrere benannte Anfragen hinweg oder durch die "
+"<literal>setResultSetMapping()</literal>-API wiederzuverwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can, alternatively, use the resultset mapping information in your hbm "
+"files directly in java code."
+msgstr ""
+"Alternativ können Sie Mapping-Informationen des Ergebnissatzes in Ihren hbm-"
+"Dateien direkt in Java Code verwenden."
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr ""
+"Die Verwendung der Return-Property zur expliziten Spezifizierung von "
+"Spalten-/Aliasnamen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can explicitly tell Hibernate what column aliases to use with "
+"<literal><return-property></literal>, instead of using the <literal>{}"
+"</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+"Mit <literal><return-property></literal> können Sie Hibernate explizit "
+"anweisen, welche Aliasse es verwenden soll, statt die <literal>{}</literal>-"
+"Syntax zu verwenden, bei der Hibernate seine eigenen Aliasse einspeist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal><return-property></literal> also works with multiple columns. "
+"This solves a limitation with the <literal>{}</literal>-syntax which cannot "
+"allow fine grained control of multi-column properties."
+msgstr ""
+"<literal><return-property></literal> funktioniert auch mit mehreren "
+"Spalten. Dies löst die Einschränkungen der <literal>{}</literal>-Syntax, die "
+"keine feinstufige Steuerung mehrspaltiger Properties erlaubt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this example <literal><return-property></literal> was used in "
+"combination with the <literal>{}</literal>-syntax for injection. This allows "
+"users to choose how they want to refer column and properties."
+msgstr ""
+"Bitte beachten Sie, dass wir in diesem Beispiel <literal><return-"
+"property></literal> in Verbindung mit der <literal>{}</literal>-Syntax "
+"für die Einspeisung verwendet haben. Dadurch ist es Benutzern möglich zu "
+"entscheiden, wie auf Spalten und Properties verwiesen werden soll."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your mapping has a discriminator you must use <literal><return-"
+"discriminator></literal> to specify the discriminator column."
+msgstr ""
+"Falls Ihr Mapping über einen Diskriminator verfügt, so müssen Sie "
+"<literal><return-discriminator></literal> verwenden, um die "
+"Diskriminator-Spalte festzulegen."
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr "Die Verwendung gespeicherter Prozeduren für Anfragen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 provides support for queries via stored procedures and functions. "
+"Most of the following documentation is equivalent for both. The stored "
+"procedure/function must return a resultset as the first out-parameter to be "
+"able to work with Hibernate. An example of such a stored function in Oracle "
+"9 and higher is as follows:"
+msgstr ""
+"Hibernate 3 bietet Support für Anfragen via gespeicherter Prozeduren und "
+"Funktionen. Die meisten Teile der nachfolgenden Dokumentation sind für beide "
+"gleich. Die gespeicherte Prozedur/Funktion muss einen Ergebnissatz als "
+"ersten \"out-Parameter\" wiedergeben, um mit Hibernate arbeiten zu können. "
+"Ein Beispiel für eine solche gespeicherte Funktion in Oracle 9 und späteren "
+"Versionen lautet wie folgt:"
+
+#. Tag: para
+#, no-c-format
+msgid "To use this query in Hibernate you need to map it via a named query."
+msgstr ""
+"Um diese Anfrage in Hibernate zu verwenden, müssen Sie sie durch eine "
+"benannte Anfrage mappen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Stored procedures currently only return scalars and entities. <literal><"
+"return-join></literal> and <literal><load-collection></literal> are "
+"not supported."
+msgstr ""
+"Bitte beachten Sie, dass gespeicherte Prozeduren gegenwärtig nur Skalare und "
+"Entities wiedergeben. <literal><return-join></literal> und "
+"<literal><load-collection></literal> werden nicht unterstützt."
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr "Regeln/Einschränkungen bei der Verwendung gespeicherter Prozeduren"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You cannot use stored procedures with Hibernate unless you follow some "
+"procedure/function rules. If they do not follow those rules they are not "
+"usable with Hibernate. If you still want to use these procedures you have to "
+"execute them via <literal>session.connection()</literal>. The rules are "
+"different for each database, since database vendors have different stored "
+"procedure semantics/syntax."
+msgstr ""
+"Um gespeicherte Prozeduren mit Hibernate zu verwenden, müssen die Prozeduren/"
+"Funktionen einigen Regeln folgen. Falls sie diese nicht berücksichtigen, "
+"können sie nicht mit Hibernate verwendet werden. Falls Sie diese Prozeduren "
+"dennoch benutzen wollen, so müssen Sie sie mittels <literal>session."
+"connection()</literal> ausführen. Die Regeln sind für jede Datenbank anders, "
+"da Datenbankanbieter jeweils über verschiedene gespeicherte Semantik/Syntax "
+"für Prozeduren verfügen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
+"setMaxResults()</literal>."
+msgstr ""
+"Gespeicherte Prozeduren können nicht mit <literal>setFirstResult()/"
+"setMaxResults()</literal> seitenweise umgespeichert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(<parameters>) }</literal> or <literal>{ ? = call procedureName(<"
+"parameters>}</literal>. Native call syntax is not supported."
+msgstr ""
+"Die empfohlen Form für den Aufruf ist Standard SQL92: <literal>{ ? = call "
+"functionName (<parameters>) }</literal> oder <literal>{ ? = call "
+"procedureName(<parameters>}</literal>. Native Aufrufsyntax wird nicht "
+"unterstützt."
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr "Für Oracle gelten die folgenden Regeln:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A function must return a result set. The first parameter of a procedure must "
+"be an <literal>OUT</literal> that returns a result set. This is done by "
+"using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle "
+"you need to define a <literal>REF CURSOR</literal> type. See Oracle "
+"literature for further information."
+msgstr ""
+"Eine Funktion muss mit einem Ergebnissatz (\"result set\") reagieren. Der "
+"erste Parameter einer Prozedur muss ein <literal>OUT</literal> sein, das "
+"einen Satz von Ergenissen liefert. Dies geschieht unter Verwendung eines "
+"<literal>SYS_REFCURSOR</literal>-Typs in Oracle 9 oder 10. In Oracle müssen "
+"Sie einen <literal>REF CURSOR</literal>-Typ definieren, siehe auch in "
+"Literatur zu Oracle."
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr "Für Sybase oder MS SQL Server gelten die folgenden Regeln:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The procedure must return a result set. Note that since these servers can "
+"return multiple result sets and update counts, Hibernate will iterate the "
+"results and take the first result that is a result set as its return value. "
+"Everything else will be discarded."
+msgstr ""
+"Eine Prozedur muss mit einem Ergebnissatz (\"result set\") reagieren. Bitte "
+"beachten Sie, dass - da diese Server mit mehreren Ergebnissätzen reagieren "
+"können/werden und Zählungen aktualisieren - Hibernate die Ergebnisse "
+"wiederholt und das erste Ergebnis als Wiedergabewert nimmt, das einen "
+"Ergebnissatz darstellt. Alles andere wird verworfen."
+
+#. 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 ""
+"Falls Sie <literal>SET NOCOUNT ON</literal> in Ihrer Prozedur aktivieren "
+"können, so würde sie wahrscheinlich effizienter. Dies ist jedoch keine "
+"Voraussetzung."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr ""
+"Anwenderspezifische SQL für \"create\" (erstellen), \"update"
+"\" (aktualisieren) und \"delete\" (löschen)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 can use custom SQL for create, update, and delete operations. The "
+"SQL can be overridden at the statement level or inidividual column level. "
+"This section describes statement overrides. For columns, see <xref linkend="
+"\"mapping-column-read-and-write\" />."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class and collection persisters in Hibernate already contain a set of "
+"configuration time generated strings (insertsql, deletesql, updatesql etc.). "
+"The mapping tags <literal><sql-insert></literal>, <literal><sql-"
+"delete></literal>, and <literal><sql-update></literal> override "
+"these strings:"
+msgstr ""
+"Hibernate3 kann angepasste SQL-Anweisungen für \"create\", \"update\", und "
+"\"delete\" Vorgänge verwenden. Die Klassen- und Collection-Persister in "
+"Hibernate enthalten bereits einen Satz von zur Konfigurationszeit "
+"generierten Strings (insertsql, deletesql, updatesql usw.). Die Mapping-Tags "
+"<literal><sql-insert></literal>, <literal><sql-delete></literal> "
+"und <literal><sql-update></literal> setzen diese Strings auÃer Kraft:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The SQL is directly executed in your database, so you can use any dialect "
+"you like. This will reduce the portability of your mapping if you use "
+"database specific SQL."
+msgstr ""
+"Die SQL wird direkt in Ihrer Datenbank ausgeführt, Sie können daher jeden "
+"beliebigen Dialekt verwenden. Dies wird natürlich die Ãbertragbarkeit Ihres "
+"Mappings reduzieren, wenn Sie Datenbank-spezifische SQL benutzen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures are supported if the <literal>callable</literal> attribute "
+"is set:"
+msgstr ""
+"Gespeicherte Prozeduren werden unterstützt, wenn das <literal>callable</"
+"literal>-Attribut wie folgt eingestellt ist:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The order of the positional parameters is vital, as they must be in the same "
+"sequence as Hibernate expects them."
+msgstr ""
+"Die Reihenfolge der positionellen Parameter ist gegenwärtig entscheidend, da "
+"sie dieselbe Sequenz besitzen müssen, wie Hibernate sie erwartet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can view the expected order by enabling debug logging for the "
+"<literal>org.hibernate.persister.entity</literal> level. With this level "
+"enabled, Hibernate will print out the static SQL that is used to create, "
+"update, delete etc. entities. To view the expected sequence, do not include "
+"your custom SQL in the mapping files, as this will override the Hibernate "
+"generated static SQL."
+msgstr ""
+"Sie können die erwartete Reihenfolge sehen, indem Sie Debug-Protokollierung "
+"für die<literal>org.hibernate.persister.entity</literal>-Ebene aktivieren. "
+"Wenn diese Ebene aktiviert ist, druckt Hibernate die statische SQL aus, die "
+"zur Erstellung, Aktualisierung, Löschung usw. von Entities verwendet wird. "
+"(Um die erwartete Sequenz zu sehen, denken Sie daran, Ihre angepasste SQL "
+"nicht in die Mapping-Dateien einzuschlieÃen, da diese die durch Hibernate "
+"generierte statische sql auÃer Kraft setzt)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The stored procedures are in most cases required to return the number of "
+"rows inserted, updated and deleted, as Hibernate has some runtime checks for "
+"the success of the statement. Hibernate always registers the first statement "
+"parameter as a numeric output parameter for the CUD operations:"
+msgstr ""
+"Die gespeicherten Prozeduren sind in den meisten Fällen (bzw. fast immer) "
+"für die Wiedergabe der Anzahl von eingefügten/aktualisierten/gelöschten "
+"Reihen erforderlich, da Hibernate einige Runtime-Ãberprüfungen hinsichtlich "
+"des Erfolgs der Anweisung durchführt. Hibernate registriert immer den ersten "
+"Anweisungsparameter als numerischen Ausgabeparameter für die CUD-Vorgänge:"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr "Angepasste SQL für das Laden"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also declare your own SQL (or HQL) queries for entity loading. As "
+"with inserts, updates, and deletes, this can be done at the individual "
+"column level as described in <xref linkend=\"mapping-column-read-and-write"
+"\" /> or at the statement level. Here is an example of a statement level "
+"override:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is just a named query declaration, as discussed earlier. You can "
+"reference this named query in a class mapping:"
+msgstr ""
+"Hier handelt es sich lediglich um eine Anfragendeklaration, wie zuvor "
+"erläutert. Sie können auf diese benannte Anfrage in einem Klassen-Mapping "
+"verweisen:"
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr "Das funktioniert sogar mit gespeicherten Prozeduren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr ""
+"Sie können sogar eine Anfrage für das Laden von Collections definieren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also define an entity loader that loads a collection by join "
+"fetching:"
+msgstr ""
+"Sie könnten sogar einen Entity-Loader definieren, der eine Collection "
+"mittels \"Join-Fetching\" lädt:"
+
+#, fuzzy
+#~ msgid ""
+#~ "You can also declare your own SQL (or HQL) queries for entity loading:"
+#~ msgstr ""
+#~ "Sie können auch Ihre eigenen SQL (oder HQL)-Anfragen für das Laden von "
+#~ "Entities deklarieren:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat."
+#~ "class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM "
+#~ "CATS\").addEntity(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS\")."
+#~ "addEntity(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, "
+#~ "D_ID, D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, D_NAME "
+#~ "FROM CATS c, DOGS d \n"
+#~ " WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, "
+#~ "CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, CAT_ID "
+#~ "FROM CATS c, DOGS d\n"
+#~ " WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE "
+#~ "c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE c."
+#~ "MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, "
+#~ "CATS m WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, CATS m "
+#~ "WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()"
+
+#, 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.*}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE "
+#~ "NAME like ?\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list(); ]]>"
+#~ msgstr ""
+#~ "Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like ?"
+#~ "\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/"
+#~ ">\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-"
+#~ "insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )"
+#~ "</sql-insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-"
+#~ "update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-"
+#~ "insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-"
+#~ "delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-"
+#~ "update>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</"
+#~ "sql-insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</"
+#~ "sql-delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}"
+#~ "</sql-update>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/"
+#~ ">\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/readonly.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/readonly.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/readonly.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1124 @@
+# Language de-DE translations for PACKAGE package.
+# Automatically generated, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-25 06:26+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: readonly.xml:33
+#, no-c-format
+msgid "Read-only entities"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:36
+#, no-c-format
+msgid ""
+"Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ "
+"from what you may have encountered elsewhere. Incorrect usage may cause "
+"unexpected results."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:43
+#, no-c-format
+msgid "When an entity is read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:48
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check the entity's simple properties or single-"
+"ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:54
+#, no-c-format
+msgid ""
+"Hibernate will not update simple properties or updatable single-ended "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:60
+#, no-c-format
+msgid ""
+"Hibernate will not update the version of the read-only entity if only simple "
+"properties or single-ended updatable associations are changed;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:69
+#, no-c-format
+msgid ""
+"In some ways, Hibernate treats read-only entities the same as entities that "
+"are not read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:75
+#, no-c-format
+msgid ""
+"Hibernate cascades operations to associations as defined in the entity "
+"mapping."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:81
+#, no-c-format
+msgid ""
+"Hibernate updates the version if the entity has a collection with changes "
+"that dirties the entity;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:87
+#, no-c-format
+msgid "A read-only entity can be deleted."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:94
+#, no-c-format
+msgid ""
+"Even if an entity is not read-only, its collection association can be "
+"affected if it contains a read-only entity."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:99
+#, no-c-format
+msgid ""
+"For details about the affect of read-only entities on different property and "
+"association types, see <xref linkend=\"readonly-proptypes\"/>."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:105
+#, no-c-format
+msgid "For details about how to make entities read-only, see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:110
+#, no-c-format
+msgid "Hibernate does some optimizing for read-only entities:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:115
+#, no-c-format
+msgid ""
+"It saves execution time by not dirty-checking simple properties or single-"
+"ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:121
+#, no-c-format
+msgid "It saves memory by deleting database snapshots."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:128
+#, no-c-format
+msgid "Making persistent entities read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:130
+#, no-c-format
+msgid ""
+"Only persistent entities can be made read-only. Transient and detached "
+"entities must be put in persistent state before they can be made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:136
+#, no-c-format
+msgid ""
+"Hibernate provides the following ways to make persistent entities read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:142
+#, no-c-format
+msgid ""
+"you can map an entity class as <emphasis>immutable</emphasis>; when an "
+"entity of an immutable class is made persistent, Hibernate automatically "
+"makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for "
+"details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:150
+#, no-c-format
+msgid ""
+"you can change a default so that entities loaded into the session by "
+"Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-"
+"loaddefault\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:157
+#, no-c-format
+msgid ""
+"you can make an HQL query or criteria read-only so that entities loaded when "
+"the query or criteria executes, scrolls, or iterates, are automatically made "
+"read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:165
+#, no-c-format
+msgid ""
+"you can make a persistent entity that is already in the in the session read-"
+"only; see <xref linkend=\"readonly-api-entity\"/> for details"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:174
+#, no-c-format
+msgid "Entities of immutable classes"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:176
+#, no-c-format
+msgid ""
+"When an entity instance of an immutable class is made persistent, Hibernate "
+"automatically makes it read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:180
+#, no-c-format
+msgid ""
+"An entity of an immutable class can created and deleted the same as an "
+"entity of a mutable class."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:185
+#, no-c-format
+msgid ""
+"Hibernate treats a persistent entity of an immutable class the same way as a "
+"read-only persistent entity of a mutable class. The only exception is that "
+"Hibernate will not allow an entity of an immutable class to be changed so it "
+"is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:196
+#, no-c-format
+msgid "Loading persistent entities as read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:199 readonly.xml:286
+#, no-c-format
+msgid "Entities of immutable classes are automatically loaded as read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:205
+#, no-c-format
+msgid ""
+"To change the default behavior so Hibernate loads entity instances of "
+"mutable classes into the session and automatically makes them read-only, "
+"call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:210
+#, no-c-format
+msgid "Session.setDefaultReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:212
+#, no-c-format
+msgid ""
+"To change the default back so entities loaded by Hibernate are not made read-"
+"only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:216
+#, no-c-format
+msgid "Session.setDefaultReadOnly( false );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:218
+#, no-c-format
+msgid "You can determine the current setting by calling:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:221
+#, no-c-format
+msgid "Session.isDefaultReadOnly();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:223
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, entities loaded by the "
+"following are automatically made read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:229
+#, no-c-format
+msgid "Session.load()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:234
+#, no-c-format
+msgid "Session.get()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:239
+#, no-c-format
+msgid "Session.merge()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:244
+#, no-c-format
+msgid ""
+"executing, scrolling, or iterating HQL queries and criteria; to override "
+"this setting for a particular HQL query or criteria see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:253
+#, no-c-format
+msgid "Changing this default has no effect on:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:258
+#, no-c-format
+msgid "persistent entities already in the session when the default was changed"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:264
+#, no-c-format
+msgid ""
+"persistent entities that are refreshed via Session.refresh(); a refreshed "
+"persistent entity will only be read-only if it was read-only before "
+"refreshing"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:272
+#, no-c-format
+msgid ""
+"persistent entities added by the application via Session.persist(), Session."
+"save(), and Session.update() Session.saveOrUpdate()"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:283
+#, no-c-format
+msgid "Loading read-only entities from an HQL query/criteria"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:292
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns false (the default) when an HQL query "
+"or criteria executes, then entities and proxies of mutable classes loaded by "
+"the query will not be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:299
+#, no-c-format
+msgid ""
+"You can override this behavior so that entities and proxies loaded by an HQL "
+"query or criteria are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:304
+#, no-c-format
+msgid "For an HQL query, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:307
+#, no-c-format
+msgid "Query.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:309
+#, no-c-format
+msgid ""
+"<literal>Query.setReadOnly( true )</literal> must be called before "
+"<literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, "
+"<literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:315
+#, no-c-format
+msgid "For an HQL criteria, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:318
+#, no-c-format
+msgid "Criteria.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:320
+#, no-c-format
+msgid ""
+"<literal>Criteria.setReadOnly( true )</literal> must be called before "
+"<literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</"
+"literal>, or <literal>Criteria.scroll()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:326
+#, no-c-format
+msgid ""
+"Entities and proxies that exist in the session before being returned by an "
+"HQL query or criteria are not affected."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:331
+#, no-c-format
+msgid ""
+"Uninitialized persistent collections returned by the query are not affected. "
+"Later, when the collection is initialized, entities loaded into the session "
+"will be read-only if Session.isDefaultReadOnly() returns true."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:338
+#, no-c-format
+msgid ""
+"Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria."
+"setReadOnly( true )</literal> works well when a single HQL query or criteria "
+"loads all the entities and intializes all the proxies and collections that "
+"the application needs to be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:346
+#, no-c-format
+msgid ""
+"When it is not possible to load and initialize all necessary entities in a "
+"single query or criteria, you can temporarily change the session default to "
+"load entities as read-only before the query is executed. Then you can "
+"explicitly initialize proxies and collections before restoring the session "
+"default."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:355
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+" \n"
+"setDefaultReadOnly( true );\n"
+"Contract contract = \n"
+" ( Contract ) session.createQuery(\n"
+" \"from Contract where customerName = 'Sherman'\" )\n"
+" .uniqueResult();\n"
+"Hibernate.initialize( contract.getPlan() );\n"
+"Hibernate.initialize( contract.getVariations() );\n"
+"Hibernate.initialize( contract.getNotes() );\n"
+"setDefaultReadOnly( false );\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:357
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, then you can use Query."
+"setReadOnly( false ) and Criteria.setReadOnly( false ) to override this "
+"session setting and load entities that are not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:367
+#, no-c-format
+msgid "Making a persistent entity read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:369
+#, no-c-format
+msgid ""
+"Persistent entities of immutable classes are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:375
+#, no-c-format
+msgid "To make a persistent entity or proxy read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:378
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, true)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:380
+#, no-c-format
+msgid ""
+"To change a read-only entity or proxy of a mutable class so it is no longer "
+"read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:384
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, false)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:387
+#, no-c-format
+msgid ""
+"When a read-only entity or proxy is changed so it is no longer read-only, "
+"Hibernate assumes that the current state of the read-only entity is "
+"consistent with its database representation. If this is not true, then any "
+"non-flushed changes made before or while the entity was read-only, will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:396
+#, no-c-format
+msgid ""
+"To throw away non-flushed changes and make the persistent entity consistent "
+"with its database representation, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:400
+#, no-c-format
+msgid "session.refresh( entity );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:402
+#, no-c-format
+msgid ""
+"To flush changes made before or while the entity was read-only and make the "
+"database representation consistent with the current state of the persistent "
+"entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:408
+#, no-c-format
+msgid ""
+"// evict the read-only entity so it is detached\n"
+"session.evict( entity );\n"
+"\n"
+"// make the detached entity (with the non-flushed changes) persistent\n"
+"session.update( entity );\n"
+"\n"
+"// now entity is no longer read-only and its changes can be flushed\n"
+"s.flush();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:413
+#, no-c-format
+msgid "Read-only affect on property type"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:415
+#, no-c-format
+msgid ""
+"The following table summarizes how different property types are affected by "
+"making an entity read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:421
+#, no-c-format
+msgid "Affect of read-only entity on property types"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:427
+#, no-c-format
+msgid "Property/Association Type"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:428
+#, no-c-format
+msgid "Changes flushed to DB?"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:433
+#, no-c-format
+msgid "Simple"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:435
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:439
+#, no-c-format
+msgid "<entry>no*</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:443
+#, no-c-format
+msgid "Unidirectional one-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:444
+#, no-c-format
+msgid "Unidirectional many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:445
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:451 readonly.xml:452
+#, no-c-format
+msgid "<para>no*</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:457
+#, no-c-format
+msgid "Unidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:458
+#, no-c-format
+msgid "Unidirectional many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:459
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:464 readonly.xml:465 readonly.xml:489
+#, no-c-format
+msgid "<para>yes</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:470
+#, no-c-format
+msgid "<para>Bidirectional one-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:471
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:475
+#, no-c-format
+msgid "only if the owning entity is not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:479
+#, no-c-format
+msgid "<para>Bidirectional one-to-many/many-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:480
+#, no-c-format
+msgid "inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:481
+#, no-c-format
+msgid "non-inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:482
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:488
+#, no-c-format
+msgid "only added/removed entities that are not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:494
+#, no-c-format
+msgid "<para>Bidirectional many-to-many</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:495
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:499
+#, no-c-format
+msgid "<entry>yes</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:505
+#, no-c-format
+msgid ""
+"* Behavior is different when the entity having the property/association is "
+"read-only, compared to when it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:511
+#, no-c-format
+msgid "Simple properties"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:513
+#, no-c-format
+msgid ""
+"When a persistent object is read-only, Hibernate does not dirty-check simple "
+"properties."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:518
+#, no-c-format
+msgid ""
+"Hibernate will not synchronize simple property state changes to the "
+"database. If you have automatic versioning, Hibernate will not increment the "
+"version if any simple properties change."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:524
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"// get a contract and make it read-only\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"\n"
+"// contract.getCustomerName() is \"Sherman\"\n"
+"contract.setCustomerName( \"Yogi\" );\n"
+"tx.commit();\n"
+"\n"
+"tx = session.beginTransaction();\n"
+"\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"// contract.getCustomerName() is still \"Sherman\"\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:529
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:532
+#, no-c-format
+msgid "Unidirectional one-to-one and many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:534
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-one and many-to-one associations in "
+"the same way when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:540
+#, no-c-format
+msgid ""
+"We use the term <emphasis>unidirectional single-ended association</emphasis> "
+"when referring to functionality that is common to unidirectional one-to-one "
+"and many-to-one associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:547
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check unidirectional single-ended associations when "
+"the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:552
+#, no-c-format
+msgid ""
+"If you change a read-only entity's reference to a unidirectional single-"
+"ended association to null, or to refer to a different entity, that change "
+"will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:560
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, then its references to unidirectional "
+"single-ended associations must be assigned when that entity is first "
+"created. Because the entity is automatically made read-only, these "
+"references can not be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:570
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to unidirectional single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:576
+#, no-c-format
+msgid ""
+"In the following examples, Contract has a unidirectional many-to-one "
+"association with Plan. Contract cascades save and update operations to the "
+"association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:582
+#, no-c-format
+msgid ""
+"The following shows that changing a read-only entity's many-to-one "
+"association reference to null has no effect on the entity's database "
+"representation."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:588
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and set its plan to null \n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"contract.setPlan( null );\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:590
+#, no-c-format
+msgid ""
+"The following shows that, even though an update to a read-only entity's many-"
+"to-one association has no affect on the entity's database representation, "
+"flush still cascades the save-update operation to the locally changed "
+"association."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:599
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and change to a new plan\n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"Plan newPlan = new Plan( \"new plan\"\n"
+"contract.setPlan( newPlan);\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"// newPlan is non-null because it was persisted when \n"
+"// the previous transaction was committed; \n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:604
+#, no-c-format
+msgid "Unidirectional one-to-many and many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:606
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-many and many-to-many associations "
+"owned by a read-only entity the same as when owned by an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:613
+#, no-c-format
+msgid ""
+"Hibernate dirty-checks unidirectional one-to-many and many-to-many "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:618
+#, no-c-format
+msgid ""
+"The collection can contain entities that are read-only, as well as entities "
+"that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:624
+#, no-c-format
+msgid ""
+"Entities can be added and removed from the collection; changes are flushed "
+"to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:629
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in the collection if they dirty the owning entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:640
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:643
+#, no-c-format
+msgid "<title>Bidirectional one-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:645
+#, no-c-format
+msgid "If a read-only entity owns a bidirectional one-to-one association:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:652
+#, no-c-format
+msgid "Hibernate does not dirty-check the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:657
+#, no-c-format
+msgid ""
+"updates that change the association reference to null or to refer to a "
+"different entity will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:664
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:673
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, and it owns a bidirectional one-to-"
+"one association, then its reference must be assigned when that entity is "
+"first created. Because the entity is automatically made read-only, these "
+"references cannot be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:683
+#, no-c-format
+msgid ""
+"When the owner is not read-only, Hibernate treats an association with a read-"
+"only entity the same as when the association is with an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:693
+#, no-c-format
+msgid "<title>Bidirectional one-to-many/many-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:695
+#, no-c-format
+msgid ""
+"A read-only entity has no impact on a bidirectional one-to-many/many-to-one "
+"association if:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:702
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using an inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:708
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using a non-inverse "
+"collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:714
+#, no-c-format
+msgid ""
+"the one-to-many side uses a non-inverse collection that contains the read-"
+"only entity"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:721
+#, no-c-format
+msgid "When the one-to-many side uses an inverse collection:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:727
+#, no-c-format
+msgid ""
+"a read-only entity can only be added to the collection when it is created;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:733
+#, no-c-format
+msgid ""
+"a read-only entity can only be removed from the collection by an orphan "
+"delete or by explicitly deleting the entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:744
+#, no-c-format
+msgid "<title>Bidirectional many-to-many</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:745
+#, no-c-format
+msgid ""
+"Hibernate treats bidirectional many-to-many associations owned by a read-"
+"only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:752
+#, no-c-format
+msgid "Hibernate dirty-checks bidirectional many-to-many associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:757
+#, no-c-format
+msgid ""
+"The collection on either side of the association can contain entities that "
+"are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:763
+#, no-c-format
+msgid ""
+"Entities are added and removed from both sides of the collection; changes "
+"are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:769
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in both sides of the collection if they dirty the entity owning the "
+"respective collections."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/session_api.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/session_api.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/session_api.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2576 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr "Das Arbeiten mit Objekten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate is a full object/relational mapping solution that not only shields "
+"the developer from the details of the underlying database management system, "
+"but also offers <emphasis>state management</emphasis> of objects. This is, "
+"contrary to the management of SQL <literal>statements</literal> in common "
+"JDBC/SQL persistence layers, a natural object-oriented view of persistence "
+"in Java applications."
+msgstr ""
+"Hibernate ist eine komplette objekt/relationale Mapping-Lösung, die dem "
+"Entwickler nicht nur Details des zu Grunde liegenden Datenbank-Management-"
+"Systems abnimmt, sondern auch die <emphasis>Statusverwaltung</emphasis> von "
+"Objekten bereit stellt. Dies ist im Gegensatz zur Verwaltung von SQL "
+"<literal>statements</literal> in gängigen JDBC/SQL-Persistenzschichten eine "
+"sehr natürliche, objektorientierte Ansicht der Persistenz in Java-"
+"Anwendungen."
+
+#. 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 ""
+"Mit anderen Worten - Hibernate Anwendungsentwickler sollten sich stets über "
+"den <emphasis>Status</emphasis> Ihrer Objekte Gedanken machen und nicht "
+"unbedingt über die Ausführung von SQL-Anweisungen. Dieser Teil wird von "
+"Hibernate übernommen und ist nur dann für den Anwendungsentwickler von "
+"Bedeutung, wenn die Performance des Systems eingestellt wird."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr "Statusarten von Hibernate Objekten"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr ""
+"Hibernate definiert und unterstützt die folgenden Arten des Objektstatus:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Transient</emphasis> - an object is transient if it has just been "
+"instantiated using the <literal>new</literal> operator, and it is not "
+"associated with a Hibernate <literal>Session</literal>. It has no persistent "
+"representation in the database and no identifier value has been assigned. "
+"Transient instances will be destroyed by the garbage collector if the "
+"application does not hold a reference anymore. Use the Hibernate "
+"<literal>Session</literal> to make an object persistent (and let Hibernate "
+"take care of the SQL statements that need to be executed for this "
+"transition)."
+msgstr ""
+"<emphasis>Transient</emphasis> - ein Objekt ist transient (vorübergehend), "
+"wenn es mittels des <literal>new</literal> Operator gerade instantiiert "
+"wurde und mit keiner Hibernate <literal>Session</literal> assoziiert wird. "
+"Es besitzt keine persistene (dauerhafte) Repräsentation in der Datenbank, "
+"und es wurde kein Identifier-Wert zugeordnet. Transiente Instanzen werden "
+"durch die Speicherbereinigung (sog. \"Garbage Collector\") gelöscht, wenn "
+"die Anwendung keine Referenz mehr hält. Verwenden Sie die Hibernate "
+"<literal>Session</literal>, um ein Objekt persistent zu machen (und "
+"überlassen Sie Hibernate die Ausführung der SQL-Anweisungen, die für diesen "
+"Wechsel nötig sind)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Persistent</emphasis> - a persistent instance has a representation "
+"in the database and an identifier value. It might just have been saved or "
+"loaded, however, it is by definition in the scope of a <literal>Session</"
+"literal>. Hibernate will detect any changes made to an object in persistent "
+"state and synchronize the state with the database when the unit of work "
+"completes. Developers do not execute manual <literal>UPDATE</literal> "
+"statements, or <literal>DELETE</literal> statements when an object should be "
+"made transient."
+msgstr ""
+"<emphasis>Persistent</emphasis> - eine persistente Instanz besitzt eine "
+"Repräsentation in der Datenbank sowie einen Bezeichnerwert. Sie könnte "
+"gerade gespeichert oder geladen worden sein, ist jedoch der Definition nach "
+"im Gültigkeitsbereich einer <literal>Session</literal>. Hibernate findet "
+"sämtliche Veränderungen, die sich an einem Objekt in persistentem Zustand "
+"ergeben haben und synchronisiert den Status mit der Datenbank, wenn die "
+"Arbeitseinheit abgeschlossen ist. Entwickler führen keine manuellen "
+"<literal>UPDATE</literal> oder <literal>DELETE</literal>-Anweisungen durch, "
+"wenn ein Objekt transient gemacht werden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Detached</emphasis> - a detached instance is an object that has "
+"been persistent, but its <literal>Session</literal> has been closed. The "
+"reference to the object is still valid, of course, and the detached instance "
+"might even be modified in this state. A detached instance can be reattached "
+"to a new <literal>Session</literal> at a later point in time, making it (and "
+"all the modifications) persistent again. This feature enables a programming "
+"model for long running units of work that require user think-time. We call "
+"them <emphasis>application transactions</emphasis>, i.e., a unit of work "
+"from the point of view of the user."
+msgstr ""
+"<emphasis>Detached</emphasis> - eine abgesetzte Instanz ist ein Objekt, das "
+"persistent war, dessen <literal>Session</literal> jedoch geschlossen wurde. "
+"Der Verweis zum Objekt besitzt natürlich nach wie vor Gültigkeit, und die "
+"abgesetzte Instanz kann sogar in diesem Status verändert werden. Eine "
+"abgesetzte Instanz kann einer neuen <literal>Session</literal> zu einem "
+"späteren Zeitpunkt wieder hinzugefügt werden, wodurch sie (mitsamt den "
+"Modifikationen) wieder persistent wird. Dieses Feature ermöglicht ein "
+"Programmiermodell für lange laufende Arbeitseinheiten, die Benutzer \"Think "
+"Time\" erfordern. Wir nennen diese <emphasis>Anwendungstransaktionen</"
+"emphasis> (sog. \"Application Transactions\"), d.h. eine Arbeitseinheit aus "
+"Sicht des Benutzers."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will now discuss the states and state transitions (and the Hibernate "
+"methods that trigger a transition) in more detail."
+msgstr ""
+"Wir gehen nun tiefer auf Status und Statuswechsel (sowie die Hibernate "
+"Methoden, die einen Wechsel auslösen) ein."
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr "Objekte persistent machen"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Neu instantiierte Instanzen einer persistenten Klasse werden von Hibernate "
+"als <emphasis>transient</emphasis> angesehen. Wir können eine transiente "
+"Instanz jedoch <emphasis>persistent</emphasis> machen, indem wir sie mit "
+"einer Session assoziieren:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If <literal>Cat</literal> has a generated identifier, the identifier is "
+"generated and assigned to the <literal>cat</literal> when <literal>save()</"
+"literal> is called. If <literal>Cat</literal> has an <literal>assigned</"
+"literal> identifier, or a composite key, the identifier should be assigned "
+"to the <literal>cat</literal> instance before calling <literal>save()</"
+"literal>. You can also use <literal>persist()</literal> instead of "
+"<literal>save()</literal>, with the semantics defined in the EJB3 early "
+"draft."
+msgstr ""
+"Wenn <literal>Cat</literal> einen generierten Bezeichner besitzt, so wird "
+"dieser generiert und <literal>cat</literal> zugeordnet, wenn der Aufruf "
+"<literal>save()</literal> erfolgt. Wenn <literal>Cat</literal> einen "
+"<literal>assigned</literal> Bezeichner oder einen zusammengesetzten "
+"Schlüssel besitzt, so sollte der Bezeichner der <literal>cat</literal> "
+"Instanz zugeordnet werden, ehe <literal>save()</literal> aufgerufen wird. "
+"Sie können auch <literal>persist()</literal> statt <literal>save()</literal> "
+"verwenden, mit der Semantik der frühen EJB3-Fassung."
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, you can assign the identifier using an overloaded version of "
+"<literal>save()</literal>."
+msgstr ""
+"Alternativ können Sie den Bezeichner unter Verwendung einer überladenen "
+"Version von <literal>save()</literal> zuordnen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the object you make persistent has associated objects (e.g. the "
+"<literal>kittens</literal> collection in the previous example), these "
+"objects can be made persistent in any order you like unless you have a "
+"<literal>NOT NULL</literal> constraint upon a foreign key column. There is "
+"never a risk of violating foreign key constraints. However, you might "
+"violate a <literal>NOT NULL</literal> constraint if you <literal>save()</"
+"literal> the objects in the wrong order."
+msgstr ""
+"Falls das von Ihnen persistent gemachte Objekt assoziierte Objekte besitzt "
+"(z.B. die <literal>kittens</literal>-Collection im vorherigen Beispiel), so "
+"können diese Objekte in beliebiger Reihenfolge persistent gemacht werden, so "
+"lange keine <literal>NOT NULL</literal>-Bedingung für eine "
+"Fremdschlüsselspalte existiert. Es besteht niemals das Risiko, dass "
+"Bedingungen für Fremdschlüssel verletzt werden. Allerdings kann eine "
+"<literal>NOT NULL</literal>-Bedingung verletzt werden, falls Sie mittels "
+"<literal>save()</literal> die Objekte in der falschen Reihenfolge speichern."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Usually you do not bother with this detail, as you will normally use "
+"Hibernate's <emphasis>transitive persistence</emphasis> feature to save the "
+"associated objects automatically. Then, even <literal>NOT NULL</literal> "
+"constraint violations do not occur - Hibernate will take care of everything. "
+"Transitive persistence is discussed later in this chapter."
+msgstr ""
+"In der Regel kümmern Sie sich nicht um dieses Detail, da Sie sehr "
+"wahrscheinlich Hibernates Feature für <emphasis>transitive Persistenz</"
+"emphasis> verwenden, um zugehörige Objekte automatisch zu speichern. "
+"Hibernate kümmert sich dann um alles, selbst wenn es nicht zu Verletzungen "
+"von <literal>NOT NULL</literal> Bedingungen kommt. Wir gehen später in "
+"diesem Kapitel noch näher auf transitive Persistenz ein."
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr "Das Laden eines Objekts"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>load()</literal> methods of <literal>Session</literal> provide "
+"a way of retrieving a persistent instance if you know its identifier. "
+"<literal>load()</literal> takes a class object and loads the state into a "
+"newly instantiated instance of that class in a persistent state."
+msgstr ""
+"Die <literal>load()</literal>-Methode von <literal>Session</literal> gibt "
+"Ihnen die Möglichkeit, eine persistente Instanz abzurufen, wenn Sie deren "
+"Bezeichner bereits kennen. <literal>load()</literal> nimmt ein Klassenobjekt "
+"und lädt den Status in eine neu instantiierte Instanz der Klasse, in "
+"persistentem Zustand."
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+msgstr "Alternativ können Sie den Status in eine beliebige Instanz laden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Be aware that <literal>load()</literal> will throw an unrecoverable "
+"exception if there is no matching database row. If the class is mapped with "
+"a proxy, <literal>load()</literal> just returns an uninitialized proxy and "
+"does not actually hit the database until you invoke a method of the proxy. "
+"This is useful if you wish to create an association to an object without "
+"actually loading it from the database. It also allows multiple instances to "
+"be loaded as a batch if <literal>batch-size</literal> is defined for the "
+"class mapping."
+msgstr ""
+"Bitte beachten Sie, dass <literal>load()</literal> zu einer nicht behebbaren "
+"Ausnahmemeldung führt, falls keine passende Datenbankreihe existiert. Falls "
+"die Klasse mit einem Proxy gemappt ist, so reagiert <literal>load()</"
+"literal> nur mit einem nicht initialisierten Proxy und erreicht die "
+"Datenbank nicht, ehe eine Methode des Proxy aufgerufen wurde. Dieses "
+"Verhalten ist sehr hilfreich, wenn Sie eine Assoziation zu einem Objekt "
+"herstellen möchten, ohne es aus der Datenbank zu laden. Auch das Laden "
+"mehrerer Instanzen als \"Batch\" (Stapel) ist möglich, wenn <literal>batch-"
+"size</literal> für das Klassen-Mapping definiert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you are not certain that a matching row exists, you should use the "
+"<literal>get()</literal> method which hits the database immediately and "
+"returns null if there is no matching row."
+msgstr ""
+"Falls Sie nicht sicher sind, ob eine passende Datenbankreihe existiert, so "
+"sollten Sie die <literal>get()</literal>-Methode anwenden, die direkt auf "
+"die Datenbank zugreift und mit einer Nullmeldung reagiert, falls keine "
+"passende Reihe existiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</"
+"literal>, using a <literal>LockMode</literal>. See the API documentation for "
+"more information."
+msgstr ""
+"Sie können sogar ein Objekt mittels SQL <literal>SELECT ... FOR UPDATE</"
+"literal> laden, indem Sie einen <literal>LockMode</literal> verwenden. Siehe "
+"dazu auch die API-Dokumentation."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Any associated instances or contained collections will <emphasis>not</"
+"emphasis> be selected <literal>FOR UPDATE</literal>, unless you decide to "
+"specify <literal>lock</literal> or <literal>all</literal> as a cascade style "
+"for the association."
+msgstr ""
+"Bitte beachten Sie, dass sämtliche assoziierten Instanzen oder enthaltenen "
+"Collections <emphasis>nicht</emphasis> für <literal>FOR UPDATE</literal> "
+"ausgewählt werden, auÃer Sie spezifizieren <literal>lock</literal> oder "
+"<literal>all</literal> als Aufeinanderschaltung der Assoziation (\"sog. "
+"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 ""
+"Es ist mittels der <literal>refresh()</literal>-Methode jederzeit möglich, "
+"ein Objekt und alle seine Collections erneut zu laden. Dies ist insbesondere "
+"dann von Nutzen, wenn Datenbank-Trigger zur Initialisierung der Objekt-"
+"Properties verwendet werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"How much does Hibernate load from the database and how many SQL "
+"<literal>SELECT</literal>s will it use? This depends on the "
+"<emphasis>fetching strategy</emphasis>. This is explained in <xref linkend="
+"\"performance-fetching\" />."
+msgstr ""
+"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."
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr "Anfragen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you do not know the identifiers of the objects you are looking for, you "
+"need a query. Hibernate supports an easy-to-use but powerful object oriented "
+"query language (HQL). For programmatic query creation, Hibernate supports a "
+"sophisticated Criteria and Example query feature (QBC and QBE). You can also "
+"express your query in the native SQL of your database, with optional support "
+"from Hibernate for result set conversion into objects."
+msgstr ""
+"Falls Sie die Bezeichner der Objekte, die Sie suchen nicht kennen, so "
+"benötigen Sie eine Anfrage. Hibernate unterstützt eine einfach zu "
+"verwendende doch leistungsfähige objektorientierte Anfragensprache (HQL). "
+"Für die befehlsorientierte Erstellung einer Anfrage unterstützt Hibernate "
+"ein technisch ausgefeiltes Feature für Kriterien- und Beispielanfragen (QBC "
+"and QBE). Sie können die Anfrage auch in der nativen SQL Ihrer Datenbank mit "
+"optionalem Support von Hibernate hinsichtlich der Konversion des "
+"Ergebnissatzes in die Objekte ausdrücken."
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr "Ausführen von Anfragen"
+
+#. 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 und native SQL-Anfragen werden durch eine Instanz von <literal>org."
+"hibernate.Query</literal> repräsentiert. Dieses Interface bietet Methoden "
+"zur Parameter-Bindung, Handhabung von Ergebnissätzen (sog. \"result sets\") "
+"und für das Ausführen der tatsächlichen Anfrage. Sie können mittels der "
+"<literal>Session</literal> immer eine <literal>Query</literal> erhalten:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A query is usually executed by invoking <literal>list()</literal>. The "
+"result of the query will be loaded completely into a collection in memory. "
+"Entity instances retrieved by a query are in a persistent state. The "
+"<literal>uniqueResult()</literal> method offers a shortcut if you know your "
+"query will only return a single object. Queries that make use of eager "
+"fetching of collections usually return duplicates of the root objects, but "
+"with their collections initialized. You can filter these duplicates through "
+"a <literal>Set</literal>."
+msgstr ""
+"Eine Anfrage wird in der Regel durch den Aufruf <literal>list()</literal> "
+"ausgeführt, und das Ergebnis der Anfrage wird vollständig in eine Collection "
+"des Speichers geladen. Die durch eine Anfrage erhaltenen Entity-Instanzen "
+"befinden sich in persistentem Zustand. Die <literal>uniqueResult()</literal>-"
+"Methode bietet ein Tastaturkürzel, wenn Sie wissen, dass Ihre Anfrage nur "
+"mit einem einzelnen Objekt reagiert. Bitte beachten Sie, dass Anfragen, die "
+"für Collections \"eager Fetching\" (d.h. zusammengefasstes Laden von Objekt "
+"und assoziierten Objekten mit Verbundoperationen) verwenden, in der Regel "
+"mit Doubletten der Stammobjekte (sog. \"Root Objects\") reagieren (deren "
+"Collections sind jedoch initialisiert). Sie können diese Doubletten mittels "
+"<literal>Set</literal> jedoch ganz einfach filtern."
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr "Iterationsergebnisse"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Occasionally, you might be able to achieve better performance by executing "
+"the query using the <literal>iterate()</literal> method. This will usually "
+"be the case if you expect that the actual entity instances returned by the "
+"query will already be in the session or second-level cache. If they are not "
+"already cached, <literal>iterate()</literal> will be slower than "
+"<literal>list()</literal> and might require many database hits for a simple "
+"query, usually <emphasis>1</emphasis> for the initial select which only "
+"returns identifiers, and <emphasis>n</emphasis> additional selects to "
+"initialize the actual instances."
+msgstr ""
+"Manchmal lässt sich die Performance verbessern, indem die Anfrage mittels "
+"<literal>iterate()</literal>-Methode ausgeführt wird. Dies wird in der Regel "
+"nur der Fall sein, wenn sich die zu erwartenden Instanzen der Entity, die "
+"auf die Anfrage reagieren, bereits in der Session oder dem Cache-Speicher "
+"der zweiten Ebene befinden. Wenn diese nicht bereits gecacht sind, so wird "
+"<literal>iterate()</literal> langsamer als <literal>list()</literal> sein "
+"und könnte zahlreiche Datenbanktreffer für eine einfache Anfrage benötigen - "
+"für gewöhnlich <emphasis>1</emphasis> für die ursprüngliche Auswahl, die "
+"lediglich mit den Bezeichnern reagiert und <emphasis>n</emphasis> "
+"zusätzliche Auswahlen zur Initialisierung der tatsächlichen Instanzen."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr "Anfragen, die mit Tupeln reagieren"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
+"as an array:"
+msgstr ""
+"Hibernate Anfragen reagieren manchmal mit Tupeln (d.h. einer Liste "
+"korrelierter Datenwerte), wobei jeder Tupel als Array wiedergegeben wird:"
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr "Skalare Ergebnisse"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Queries can specify a property of a class in the <literal>select</literal> "
+"clause. They can even call SQL aggregate functions. Properties or aggregates "
+"are considered \"scalar\" results and not entities in persistent state."
+msgstr ""
+"Anfragen können im <literal>select</literal>-Satzteil die Property einer "
+"Klasse spezifizieren. Sie können sogar SQL-Datengruppen-Funktionen aufrufen. "
+"Properties oder Datengruppen werden als \"skalare\" Ergebnisse angesehen "
+"(und nicht als Entities in persistentem Zustand)."
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr "Bind-Parameter"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Methods on <literal>Query</literal> are provided for binding values to named "
+"parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary "
+"to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters "
+"are identifiers of the form <literal>:name</literal> in the query string. "
+"The advantages of named parameters are as follows:"
+msgstr ""
+"Methoden an <literal>Query</literal> sind vorhanden, um Werte an benannte "
+"Parameter oder <literal>?</literal>-Parameter nach JDBC-Art zu binden. "
+"<emphasis>Im Gegensatz zu JDBC nummeriert Hibernate Parameter ab Null.</"
+"emphasis> Bei benannten Parametern handelt es sich um Bezeichner in der Form "
+"<literal>:name</literal> im Anfragenstring. Die Vorteile benannter Parameter "
+"sind:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
+msgstr ""
+"benannte Parameter sind unempfindlich im Bezug auf die Reihenfolge, in der "
+"sie im Anfragenstring erscheinen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr "sie können innerhalb derselben Anfrage mehrere Male vorkommen"
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr "sie dokumentieren sich selbst"
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr "Nummerierung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you need to specify bounds upon your result set, that is, the maximum "
+"number of rows you want to retrieve and/or the first row you want to "
+"retrieve, you can use methods of the <literal>Query</literal> interface:"
+msgstr ""
+"Falls Sie Grenzen an Ihrem Ergebnissatz spezifizieren müssen (die maximale "
+"Anzahl von Reihen, die Sie erhalten und / oder die erste Reihe, die Sie "
+"erhalten wollen), sollten Sie Methoden des <literal>Query</literal>-"
+"Interface verwenden:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate knows how to translate this limit query into the native SQL of "
+"your DBMS."
+msgstr ""
+"Hibernate weiÃ, wie die Grenzanfrage in die native SQL Ihres DBMS zu "
+"übersetzen ist."
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "Scrollbare Iteration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the "
+"<literal>Query</literal> interface can be used to obtain a "
+"<literal>ScrollableResults</literal> object that allows flexible navigation "
+"of the query results."
+msgstr ""
+"Falls Ihr JDBC-Treiber scrollbare <literal>ResultSet</literal>s unterstützt, "
+"kann das <literal>Query</literal>-Interface benutzt werden, um ein "
+"<literal>ScrollableResults</literal>-Objekt zu erhalten, das die flexible "
+"Navigation der Anfragenergebnisse ermöglicht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that an open database connection and cursor is required for this "
+"functionality. Use <literal>setMaxResult()</literal>/<literal>setFirstResult"
+"()</literal> if you need offline pagination functionality."
+msgstr ""
+"Bitte beachten Sie, dass eine offene Datenbankverbindung (und Cursor) für "
+"dies Funktionalität benötigt werden. Verwenden Sie <literal>setMaxResult()</"
+"literal>/<literal>setFirstResult()</literal>, falls Sie die offline "
+"Nummerierungsfunktionalität benötigen."
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr "Externalisierung benannter Anfragen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also define named queries in the mapping document. Remember to use a "
+"<literal>CDATA</literal> section if your query contains characters that "
+"could be interpreted as markup."
+msgstr ""
+"Sie können benannte Anfragen auch im Mapping-Dokument definieren. (Vergessen "
+"Sie nicht einen <literal>CDATA</literal>-Abschnitt zu verwenden, falls Ihre "
+"Anfrage Zeichen enthält, die als Markup interpretiert werden könnten)."
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr "Die Bindung und Ausführung der Parameter erfolgen befehlsorientiert:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The actual program code is independent of the query language that is used. "
+"You can also define native SQL queries in metadata, or migrate existing "
+"queries to Hibernate by placing them in mapping files."
+msgstr ""
+"Bitte beachten Sie, dass der tatsächliche Programmcode unabhängig von der "
+"verwendeten Anfragensprache ist. Sie können auch native SQL-Anfragen in "
+"Metadata definieren oder bestehende Anfragen zu Hibernate migrieren, indem "
+"Sie sie in Mapping-Dateien platzieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Also note that a query declaration inside a <literal><hibernate-"
+"mapping></literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal><class></literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+"Beachten Sie auÃerdem, dass eine Anfragendeklaration innerhalb eines "
+"<literal><hibernate-mapping></literal>-Elements einen "
+"allgemeingültigen, eindeutigen Namen für die Anfrage erfordert, während eine "
+"Anfragendeklaration innerhalb eines <literal><class></literal>-"
+"Elements dadurch automatisch eindeutig gemacht wird, dass der vollständige "
+"Name der Klasse, z.B. <literal>eg.Cat.ByNameAndMaximumWeight</literal> "
+"vorangestellt wird."
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr "Das Filtern von Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A collection <emphasis>filter</emphasis> is a special type of query that can "
+"be applied to a persistent collection or array. The query string can refer "
+"to <literal>this</literal>, meaning the current collection element."
+msgstr ""
+"Ein Collection <emphasis>filter</emphasis> ist eine spezielle Art der "
+"Anfrage, die an einer persistenten Collection oder einem Array angewendet "
+"werden kann. Der Anfragenstring kann auf <literal>this</literal> verweisen, "
+"womit das aktuelle Element der Collection gemeint ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The returned collection is considered a bag that is a copy of the given "
+"collection. The original collection is not modified. This is contrary to the "
+"implication of the name \"filter\", but consistent with expected behavior."
+msgstr ""
+"Die zurückgesendete Collection wird als \"Bag\" (Duplikat) angesehen, und es "
+"handelt sich um eine Kopie der vorgegebenen Collection. Die ursprüngliche "
+"Collection wird nicht verändert (dies steht im Gegensatz zur "
+"Schlussfolgerung den der Name \"Filter\" vermuten lässt, aber in Konsistenz "
+"mit dem erwarteten Verhalten)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Observe that filters do not require a <literal>from</literal> clause, "
+"although they can have one if required. Filters are not limited to returning "
+"the collection elements themselves."
+msgstr ""
+"Beachten Sie, dass Filter keinen <literal>from</literal>-Satzteil benötigen "
+"(jedoch bei Bedarf einen besitzen können). Filter sind nicht darauf "
+"beschränkt, die Elemente der Collection selbst wiederzugeben."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even an empty filter query is useful, e.g. to load a subset of elements in a "
+"large collection:"
+msgstr ""
+"Selbst eine Anfrage mit leerem Filter ist von Nutzen, wenn man etwa einen "
+"Untersatz von Elementen in einer riesigen Collection lädt."
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr "Kriterienanfragen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL is extremely powerful, but some developers prefer to build queries "
+"dynamically using an object-oriented API, rather than building query "
+"strings. Hibernate provides an intuitive <literal>Criteria</literal> query "
+"API for these cases:"
+msgstr ""
+"HQL ist sehr leistungsfähig, jedoch bevorzugen manche Entwickler den "
+"dynamischen Bau von Anfragen unter Verwendung einer objektorientierten API, "
+"statt des Erstellens von Anfragenstrings. Hibernate liefert für diese Fälle "
+"eine API für intuitive <literal>Criteria</literal>-Anfragen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Criteria</literal> and the associated <literal>Example</"
+"literal> API are discussed in more detail in <xref linkend=\"querycriteria"
+"\" />."
+msgstr ""
+"Die <literal>Criteria</literal> und die zugehörige <literal>Example</"
+"literal>-API werden unter <xref linkend=\"querycriteria\"/> näher erläutert."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr "Anfragen in nativer SQL"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can express a query in SQL, using <literal>createSQLQuery()</literal> "
+"and let Hibernate manage the mapping from result sets to objects. You can at "
+"any time call <literal>session.connection()</literal> and use the JDBC "
+"<literal>Connection</literal> directly. If you choose to use the Hibernate "
+"API, you must enclose SQL aliases in braces:"
+msgstr ""
+"Sie können eine Anfrage in SQL mittels <literal>createSQLQuery()</literal> "
+"ausdrücken und Hibernate das Mapping von den Ergebnissätzen zu den Objekten "
+"übernehmen lassen. Beachten Sie, dass Sie zu jedem Zeitpunkt "
+"<literal>session.connection()</literal> aufrufen und die JDBC "
+"<literal>Connection</literal> direkt benutzen können. Falls Sie die "
+"Hibernate API verwenden wollen, müssen Sie die SQL-Aliasse in Klammern mit "
+"einschlieÃen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"SQL queries can contain named and positional parameters, just like Hibernate "
+"queries. More information about native SQL queries in Hibernate can be found "
+"in <xref linkend=\"querysql\" />."
+msgstr ""
+"SQL-Anfragen können - wie auch Hibernate Anfragen - benannte und "
+"positionelle Parameter enthalten. Weitere Informationen zu nativen SQL-"
+"Anfragen in Hibernate finden Sie in <xref linkend=\"querysql\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr "Ãnderungen an persistenten Objekten vornehmen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Transactional persistent instances</emphasis> (i.e. objects "
+"loaded, saved, created or queried by the <literal>Session</literal>) can be "
+"manipulated by the application, and any changes to persistent state will be "
+"persisted when the <literal>Session</literal> is <emphasis>flushed</"
+"emphasis>. This is discussed later in this chapter. There is no need to call "
+"a particular method (like <literal>update()</literal>, which has a different "
+"purpose) to make your modifications persistent. The most straightforward way "
+"to update the state of an object is to <literal>load()</literal> it and then "
+"manipulate it directly while the <literal>Session</literal> is open:"
+msgstr ""
+"<emphasis>Transaktionale persistente Instanzen</emphasis> (d.h. durch die "
+"<literal>Session</literal> geladene, gespeicherte, erstellte oder angefragte "
+"Objekte) können durch die Anwendung verarbeitet werden und sämtliche "
+"Veränderungen am persistenten Status bleiben bestehen, wenn die "
+"<literal>Session</literal> <emphasis>geräumt</emphasis> wird (darauf gehen "
+"wir später in diesem Kapitel noch ein). Es muss keine bestimmte Methode "
+"aufgerufen werden (wie etwa <literal>update()</literal>, das einen anderen "
+"Zweck hat), um Ihre Ãnderungen persistent zu machen. Die einfachste Art der "
+"Statusaktualisierung eines Objektes ist daher das Laden mittels <literal>load"
+"()</literal> und dessen direkte Modifizierung während die <literal>Session</"
+"literal> geöffnet ist:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes this programming model is inefficient, as it requires in the same "
+"session both an SQL <literal>SELECT</literal> to load an object and an SQL "
+"<literal>UPDATE</literal> to persist its updated state. Hibernate offers an "
+"alternate approach by using detached instances."
+msgstr ""
+"Manchmal ist dieses Programmiermodell jedoch ineffizient, da es sowohl ein "
+"SQL <literal>SELECT</literal> (zum Laden eines Objekts) als auch ein SQL "
+"<literal>UPDATE</literal> (um den aktualisierten Status zu persistieren) "
+"innerhalb derselben Session erfordern würde. Daher bietet Hibernate mit der "
+"Verwendung abgesetzter Instanzen eine alternative Vorgehensweise."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not offer its own API for direct execution of "
+"<literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate "
+"is a <emphasis>state management</emphasis> service, you do not have to think "
+"in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for "
+"executing SQL statements, you can get a JDBC <literal>Connection</literal> "
+"at any time by calling <literal>session.connection()</literal>. Furthermore, "
+"the notion of mass operations conflicts with object/relational mapping for "
+"online transaction processing-oriented applications. Future versions of "
+"Hibernate can, however, provide special mass operation functions. See <xref "
+"linkend=\"batch\" /> for some possible batch operation tricks."
+msgstr ""
+"Bitte beachten Sie, dass Hibernate keine eigene API für die direkte "
+"Ausführung von <literal>UPDATE</literal> oder <literal>DELETE</literal>-"
+"Anweisungen besitzt. Bei Hibernate handelt es sich um einen Dienst zur "
+"<emphasis>Statusverwaltung</emphasis>, das heiÃt, Sie müssen bei seiner "
+"Benutzung nicht in <emphasis>Anweisungen</emphasis> denken. JDBC ist eine "
+"perfekte API für die Ausführung von SQL-Anweisungen, sie können jederzeit "
+"eine JDBC <literal>Connection</literal> durch Aufruf von <literal>session."
+"connection()</literal> erhalten. Desweiteren steht die Idee von "
+"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."
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr "Ãnderungen an abgesetzten Objekten"
+
+#. 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 ""
+"Zahlreiche Anwendungen müssen ein Objekt in einer Transaktion abrufen, "
+"dieses für Modifizierungen an die UI-Schicht schicken und die Ãnderungen "
+"anschlieÃend in einer neuen Transaktion speichern. Anwendungen, die diese "
+"Herangehensweise in einer Umgebung mit hoher Nebenläufigkeit (d.h. häufigem "
+"gleichzeitigen Zugriff) benutzen, verwenden in der Regel versionierte Daten, "
+"um die Isolation der \"langen\" Arbeitseinheit zu gewährleisten."
+
+#. 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 unterstützt dieses Modell, indem es mittels der <literal>Session."
+"update()</literal> oder <literal>Session.merge()</literal>-Methoden die "
+"Möglichkeit der Wiederanbindung abgesetzter Instanzen bietet:"
+
+#. 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 ""
+"Wäre <literal>Cat</literal> mit Bezeichner <literal>catId</literal> bereits "
+"durch <literal>secondSession</literal> geladen worden, wenn die Anwendung "
+"die Wiederanbindung durchzuführen versucht hätte, so wäre eine Ausnahme "
+"gemeldet worden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use <literal>update()</literal> if you are certain that the session does not "
+"contain an already persistent instance with the same identifier. Use "
+"<literal>merge()</literal> if you want to merge your modifications at any "
+"time without consideration of the state of the session. In other words, "
+"<literal>update()</literal> is usually the first method you would call in a "
+"fresh session, ensuring that the reattachment of your detached instances is "
+"the first operation that is executed."
+msgstr ""
+"Verwenden Sie <literal>update()</literal> falls Sie sicher sind, dass die "
+"Session nicht bereits eine persistente Instanz mit demselben Bezeichner "
+"besitzt und <literal>merge()</literal>, falls Sie Ihre Modifikationen zu "
+"einem beliebigen Zeitpunkt ohne Berücksichtigung des Sessionstatus mischen "
+"möchten. Mit anderen Worten ist <literal>update()</literal> in der Regel die "
+"erste Methode, die Sie in einer neuen Session aufrufen würden, um "
+"sicherzustellen, dass die Wiederanbindung Ihrer abgesetzten Instanzen der "
+"als erstes ausgeführte Vorgang ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The application should individually <literal>update()</literal> detached "
+"instances that are reachable from the given detached instance "
+"<emphasis>only</emphasis> if it wants their state to be updated. This can be "
+"automated using <emphasis>transitive persistence</emphasis>. See <xref "
+"linkend=\"objectstate-transitive\" /> for more information."
+msgstr ""
+"Die Anwendung sollte von der gegebenen abgesetzten Instanz aus erreichbare "
+"abgesetzte Instanzen einzeln mittels <literal>update()</literal> "
+"aktualisieren, jedoch <emphasis>nur</emphasis>, wenn auch deren Status "
+"aktualisiert werden soll. Dieser Vorgang kann selbstverständlich mittels "
+"<emphasis>transitiver Persistenz</emphasis> automatisiert werden, siehe "
+"<xref linkend=\"objectstate-transitive\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>lock()</literal> method also allows an application to "
+"reassociate an object with a new session. However, the detached instance has "
+"to be unmodified."
+msgstr ""
+"Die <literal>lock()</literal>-Methode ermöglicht es einer Anwendung "
+"ebenfalls, ein Objekt mit einer neuen Session zu re-assoziieren. Allerdings "
+"darf die abgesetzte Instanz in diesem Fall nicht verändert worden sein!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that <literal>lock()</literal> can be used with various "
+"<literal>LockMode</literal>s. See the API documentation and the chapter on "
+"transaction handling for more information. Reattachment is not the only "
+"usecase for <literal>lock()</literal>."
+msgstr ""
+"Beachten Sie, dass <literal>lock()</literal> mit verschiedenen "
+"<literal>LockMode</literal>s verwendet werden kann. Weitere Informationen "
+"dazu finden Sie in der API-Dokumentation und dem Kapitel zum \"Transaction "
+"Handling\". Die Wiederanbindung ist nicht der einzige Anwendungsfall für "
+"<literal>lock()</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\" />."
+msgstr ""
+"Andere Modelle für lange Arbeitseinheiten werden in <xref linkend="
+"\"transactions-optimistic\"/> erläutert."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr "Automatische Statuserkennung"
+
+#. 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 ""
+"Benutzer von Hibernate haben den Wunsch nach einer allgemeinen Methode "
+"geäuÃert, die entweder eine transiente Instanz durch Generierung eines neuen "
+"Bezeichners speichert oder die dem aktuellen Bezeichner zugehörigen "
+"abgesetzten Instanzen aktualisiert/erneut hinzufügt. Die "
+"<literal>saveOrUpdate()</literal>-Methode implementiert diese Funktionalität."
+
+#. 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 ""
+"Gebrauch und Semantik von <literal>saveOrUpdate()</literal> scheinen neue "
+"Benutzer manchmal zu überfordern. So lange Sie nicht versuchen, diese "
+"Instanzen von einer Session in einer neuen Session zu verwenden, sollten Sie "
+"<literal>update()</literal>, <literal>saveOrUpdate()</literal> oder "
+"<literal>merge()</literal> ohnehin nicht benutzen müssen. Manchmal kommen "
+"ganze Anwendungen ohne irgendeine dieser Methoden aus."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
+"used in the following scenario:"
+msgstr ""
+"In der Regel kommen <literal>update()</literal> oder <literal>saveOrUpdate()"
+"</literal> in folgenden Situationen zum Einsatz:"
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr "die Anwendung lädt ein Objekt in der ersten Session"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr "das Objekt wird an den UI-\"Tier\" weitergegeben"
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr "am Objekt werden einige Modifikationen vorgenommen"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr "das Objekt wird zurück an den \"Business-Logic-Tier\" geleitet"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
+msgstr ""
+"die Anwendung persistiert diese Modifikationen durch Aufruf von "
+"<literal>update()</literal> in einer zweiten Session"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr "<literal>saveOrUpdate()</literal> tut folgendes:"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr ""
+"falls das Objekt in dieser Session bereits persistent ist, geschieht nichts"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"falls ein anderes mit der Session assoziiertes Objekt denselben Bezeichner "
+"besitzt, wird eine Ausnahme gemeldet"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object has no identifier property, <literal>save()</literal> it"
+msgstr ""
+"falls das Objekt keine Bezeichner-Property besitzt, speichern Sie es mittels "
+"<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 ""
+"falls der Bezeichner des Objekts einen ihm zugeordneten Wert am neu "
+"instantiierten Objekt besitzt, speichern Sie mittels <literal>save()</"
+"literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"if the object is versioned by a <literal><version></literal> or "
+"<literal><timestamp></literal>, and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"falls das Objekt versioniert ist (durch <literal><version></literal> "
+"oder <literal><timestamp></literal>) und der Property-Wert der Version "
+"derselbe Wert wie der dem neu instantiierten Objekt zugeordnete ist, "
+"speichern Sie mittels <literal>save()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr ""
+"andernfalls aktualisieren Sie das Objekt mittels <literal>update()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr "und <literal>merge()</literal> ist völlig anders:"
+
+#. 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 ""
+"falls eine persistente Instanz mit demselben Bezeichner zum gegenwärtigen "
+"Zeitpunkt mit der Session assoziiert ist, so kopieren Sie den Status des "
+"vorgegebenen Objekts in die persistente Instanz"
+
+#. 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 ""
+"falls keine persistente Instanz zum gegenwärtigen Zeitpunkt mit der Session "
+"assoziiert wird, so versuchen Sie sie aus der Datenbank zu laden oder "
+"erstellen Sie eine neue persistente Instanz"
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr "die persistente Instanz wird zurückgeschickt"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
+msgstr ""
+"die vorgegebene Instanz wird nicht mit der Session assoziiert, sie bleibt "
+"abgesetzt"
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr "Das Löschen persistenter Objekte"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Session.delete()</literal> will remove an object's state from the "
+"database. Your application, however, can still hold a reference to a deleted "
+"object. It is best to think of <literal>delete()</literal> as making a "
+"persistent instance, transient."
+msgstr ""
+"Mit <literal>Session.delete()</literal> wird der Status eines Objekts aus "
+"der Datenbank gelöscht. Natürlich kann Ihre Anwendung nach wie vor einen "
+"Verweis auf ein gelöschtes Objekt beinhalten. Durch <literal>delete()</"
+"literal> wird eine persistente Instanz gewissermaÃen transient gemacht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can delete objects in any order, without risk of foreign key constraint "
+"violations. It is still possible to violate a <literal>NOT NULL</literal> "
+"constraint on a foreign key column by deleting objects in the wrong order, e."
+"g. if you delete the parent, but forget to delete the children."
+msgstr ""
+"Sie können Objekte in beliebiger Reihenfolge löschen, ohne sich Sorgen um "
+"die Verletzung von Fremdschlüsselbedingungen machen zu müssen. Es ist nach "
+"wie vor möglich, eine <literal>NOT NULL</literal>-Bedingung an der "
+"Fremdschlüsselspalte zu verletzen, indem Objekte in der falschen Reihenfolge "
+"gelöscht werden, z.B. wenn Sie das übergeordnete Objekt löschen, jedoch "
+"vergessen, dies mit den untergeordneten Objekten ebenfalls zu tun."
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr "Objektreplikation zwischen zwei verschiedenen Datenspeichern"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is sometimes useful to be able to take a graph of persistent instances "
+"and make them persistent in a different datastore, without regenerating "
+"identifier values."
+msgstr ""
+"Es ist hin und wieder von Nutzen ein Diagramm persistenter Instanzen nehmen "
+"zu können und diese in einem anderen Datenspeicher persistent machen zu "
+"können, ohne Bezeichnerwerte erneut generieren zu müssen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>ReplicationMode</literal> determines how <literal>replicate()</"
+"literal> will deal with conflicts with existing rows in the database:"
+msgstr ""
+"Der <literal>ReplicationMode</literal> bestimmt, wie <literal>replicate()</"
+"literal> mit Konflikten mit bestehenden Reihen in der Datenbank umgeht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is "
+"an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.IGNORE</literal> - ignoriert das Objekt, wenn "
+"bereits eine Datenbankreihe mit demselben Bezeichner existiert"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
+"database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.OVERWRITE</literal> - überschreibt eine bestehende "
+"Datenbankreihe mit demselben Bezeichner"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there "
+"is an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.EXCEPTION</literal> - meldet eine Ausnahme, falls "
+"eine Datenbankreihe mit demselben Bezeichner existiert"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its "
+"version number is earlier than the version number of the object, or ignore "
+"the object otherwise"
+msgstr ""
+"<literal>ReplicationMode.LATEST_VERSION</literal> - überschreibt die Reihe, "
+"falls deren Versionsnummer älter ist als die Versionsnummer des Objekts, "
+"oder ignoriert andernfalls das Objekt"
+
+#. 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 ""
+"Anwendungsfälle dieses Features beinhalten die Abstimmung von in "
+"verschiedenen Datenbankinstanzen eingegebenen Daten, das Upgrade von "
+"Systemkonfigurationsinformationen während Produkt-Upgrades, die Wiederholung "
+"von während nicht-ACID Transaktionen gemachten Ãnderungen und mehr."
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr "Das Räumen der Session"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes the <literal>Session</literal> will execute the SQL statements "
+"needed to synchronize the JDBC connection's state with the state of objects "
+"held in memory. This process, called <emphasis>flush</emphasis>, occurs by "
+"default at the following points:"
+msgstr ""
+"Von Zeit zu Zeit wird die <literal>Session</literal> die SQL-Anweisungen "
+"ausführen, die benötigt werden, um den Verbindungsstatus der JDBC mit dem "
+"Status der gespeicherten Objekte zu synchronisieren. Während dieses Vorgangs "
+"kommt es standardmäÃig an den folgenden Punkten zur <emphasis>Räumung</"
+"emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr "vor dem Ausführen einiger Anfragen"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "von <literal>org.hibernate.Transaction.commit()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr "von <literal>Session.flush()</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr "Die SQL-Anweisungen werden in der folgenden Reihenfolge herausgegeben"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"all entity insertions in the same order the corresponding objects were saved "
+"using <literal>Session.save()</literal>"
+msgstr ""
+"alle Entity-Einfügungen in derselben Reihenfolge der entsprechenden Objekte "
+"wurden mittels <literal>Session.save()</literal> gespeichert"
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr "alle Entity-Aktualisierungen"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr "alle Collection-Löschungen"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr ""
+"alle Löschungen, Aktualisierungen und Einfügungen von Elementen der "
+"Collection"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr "alle Einfügungen in Collections"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"all entity deletions in the same order the corresponding objects were "
+"deleted using <literal>Session.delete()</literal>"
+msgstr ""
+"alle Entity-Löschungen in derselben Reihenfolge, in der die entsprechenden "
+"Objekte gelöscht wurden unter Verwendung von <literal>Session.delete()</"
+"literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An exception is that objects using <literal>native</literal> ID generation "
+"are inserted when they are saved."
+msgstr ""
+"(Eine Ausnahme ist, dass Objekte, die <literal>native</literal> ID-"
+"Generierung verwenden, beim Speichern eingefügt werden)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Except when you explicitly <literal>flush()</literal>, there are absolutely "
+"no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> "
+"executes the JDBC calls, only the <emphasis>order</emphasis> in which they "
+"are executed. However, Hibernate does guarantee that the <literal>Query.list"
+"(..)</literal> will never return stale or incorrect data."
+msgstr ""
+"AuÃer wenn Sie explizit <literal>flush()</literal> einsetzen, gibt es "
+"keinerlei Garantien dafür, <emphasis>wann</emphasis> die <literal>Session</"
+"literal> die JDBC-Aufrufe ausführt, nur die <emphasis>Reihenfolge</emphasis> "
+"der Ausführung steht fest. Hibernate gewährleistet jedoch, dass die "
+"<literal>Query.list(..)</literal> niemals abgelaufene oder falsche Daten "
+"liefert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to change the default behavior so that flush occurs less "
+"frequently. The <literal>FlushMode</literal> class defines three different "
+"modes: only flush at commit time when the Hibernate <literal>Transaction</"
+"literal> API is used, flush automatically using the explained routine, or "
+"never flush unless <literal>flush()</literal> is called explicitly. The last "
+"mode is useful for long running units of work, where a <literal>Session</"
+"literal> is kept open and disconnected for a long time (see <xref linkend="
+"\"transactions-optimistic-longsession\" />)."
+msgstr ""
+"Es ist möglich das Verhalten in der Standardeinstellung so zu verändern, "
+"dass die Räumung seltener erfolgt.Die <literal>FlushMode</literal>-Klasse "
+"definiert drei verschiedene Modi: Nur zum Zeitpunkt des Festschreibens (sog. "
+"\"Commit-Time\") räumen (und nur wenn die Hibernate <literal>Transaction</"
+"literal> API verwendet wird), mittels der beschriebenen Routine automatisch "
+"räumen oder nie räumen, auÃer wenn der Aufruf <literal>flush()</literal> "
+"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\"/>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"During flush, an exception might occur (e.g. if a DML operation violates a "
+"constraint). Since handling exceptions involves some understanding of "
+"Hibernate's transactional behavior, we discuss it in <xref linkend="
+"\"transactions\" />."
+msgstr ""
+"Während der Räumung kann es zu einer Ausnahmemeldung kommen (wenn z.B. ein "
+"DML-Vorgang eine Bedingung verletzt). Da der Umgang mit Ausnahmen ein "
+"gewisses Verständnis für das transaktionale Verhalten in Hibernate "
+"voraussetzt, erläutern wir es in <xref linkend=\"transactions\"/>."
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr "Transitive Persistenz"
+
+#. 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 ""
+"Es ist recht mühselig, einzelne Objekte zu speichern, zu löschen und erneut "
+"hinzuzufügen, insbesondere dann, wenn man es mit einem Diagramm assoziierter "
+"Objekte zu tun hat. Ein gängiger Fall ist die Beziehung zwischen "
+"übergeordneten und untergeordneten Objekten (sog. \"parent/child\"-"
+"Beziehung). Sehen Sie sich das folgende Beispiel an:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the children in a parent/child relationship would be value typed (e.g. a "
+"collection of addresses or strings), their life cycle would depend on the "
+"parent and no further action would be required for convenient \"cascading\" "
+"of state changes. When the parent is saved, the value-typed child objects "
+"are saved and when the parent is deleted, the children will be deleted, etc. "
+"This works for operations such as the removal of a child from the "
+"collection. Since value-typed objects cannot have shared references, "
+"Hibernate will detect this and delete the child from the database."
+msgstr ""
+"Falls die untergeordneten Objekte (\"children\") in einer \"Parent/Child\"-"
+"Beziehung Wertetypen wären (z.B. eine Collection von Adressen oder Strings), "
+"so wäre ihr Lebenszyklus abhängig vom übergeordneten Objekt (\"Parent\"), "
+"und es wären keine weiteren MaÃnahmen nötig, um die Statusänderungen bequem "
+"weiterzugeben (sog. \"cascading\"). Wenn das übergeordnete Objekt "
+"gespeichert wird, so werden auch die untergeordneten Objekte gespeichert, "
+"wird ein übergeordnetes Objekt gelöscht, werden auch die untergeordneten "
+"Objekte gelöscht usw. Das funktioniert sogar für Vorgänge bei denen etwa ein "
+"untergeordnetes Objekt aus der Collection entfernt wird: Hibernate spürt "
+"dieses auf und da solche Objekte keine geteilten Verweise besitzen können, "
+"wird das untergeordnete Objekt aus der Datenbank gelöscht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now consider the same scenario with parent and child objects being entities, "
+"not value-types (e.g. categories and items, or parent and child cats). "
+"Entities have their own life cycle and support shared references. Removing "
+"an entity from the collection does not mean it can be deleted), and there is "
+"by default no cascading of state from one entity to any other associated "
+"entities. Hibernate does not implement <emphasis>persistence by "
+"reachability</emphasis> by default."
+msgstr ""
+"Stellen Sie sich nun dieselbe Situation vor, mit dem Unterschied, dass es "
+"sich bei übergeordneten und untergeordneten Objekten um Entities, nicht "
+"Wertetypen (z.B. Kategorien und Posten oder \"Parent\" und \"Child\"-Cats) "
+"handelt. Entities besitzen ihren eigenen Lebenszyklus, unterstützen geteilte "
+"Verweise (d.h. selbst wenn eine Entity aus der Collection entfernt wird, "
+"kann sie deswegen nicht gelöscht werden) und standardmäÃig existiert keine "
+"Statusweitergabe von einer Entity an eine andere zugehörige Entity. "
+"Hibernate implementiert standardmäÃig keine <emphasis>Persistenz durch "
+"Erreichbarkeit</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 ""
+"Für jeden Grundvorgang der Hibernate Session - einschlieÃlich "
+"<literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
+"evict(), replicate()</literal> - gibt es eine entsprechende Art der "
+"Weitergabe. Die Arten sind dem entsprechend <literal>create, merge, save-"
+"update, delete, lock, refresh, evict, replicate</literal> benannt. Falls Sie "
+"möchten, dass ein Vorgang entlang einer Assoziation weitergegeben wird, so "
+"müssen Sie dass im Mapping-Dokument angeben. Zum Beispiel wie folgt aussehen:"
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr ""
+"Die Arten der Weitergabe (sog. \"Cascade Styles\") können kombiniert werden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even use <literal>cascade=\"all\"</literal> to specify that "
+"<emphasis>all</emphasis> operations should be cascaded along the "
+"association. The default <literal>cascade=\"none\"</literal> specifies that "
+"no operations are to be cascaded."
+msgstr ""
+"Sie können sogar mittels <literal>cascade=\"all\"</literal> bestimmen, "
+"dass<emphasis>alle</emphasis> Vorgänge entlang der Assoziation weitergegeben "
+"werden. In der Standardeinstellung <literal>cascade=\"none\"</literal> ist "
+"festgelegt, dass keine Vorgänge weitergegeben werden."
+
+#. 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 ""
+"Eine besondere Art der Weitergabe namens <literal>delete-orphan</literal> "
+"gilt nur bei \"One-to-Many\"-Assoziationen und zeigt an, dass der "
+"<literal>delete()</literal>-Vorgang angewendet werden soll, wenn ein "
+"untergeordnetes Objekt aus der Assoziation entfernt wird."
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr "Empfehlungen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It does not usually make sense to enable cascade on a <literal><many-to-"
+"one></literal> or <literal><many-to-many></literal> association. "
+"Cascade is often useful for <literal><one-to-one></literal> and "
+"<literal><one-to-many></literal> associations."
+msgstr ""
+"Es macht in der Regel keinen Sinn, die Weitergabe bei einer <literal><"
+"many-to-one></literal> oder <literal><many-to-many></literal>-"
+"Assoziation zu aktivieren. Die Weitergabe ist oftmals für <literal><one-"
+"to-one></literal> und <literal><one-to-many></literal>-"
+"Assoziationen von Nutzen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Falls die Lebensdauer des untergeordneten Objekts an die Lebensdauer des "
+"übergeordneten Objekts gebunden ist, erklären Sie es zum <emphasis>"
+"\"Lifecycle Object\"</emphasis> indem Sie <literal>cascade=\"all,delete-"
+"orphan\"</literal> festlegen."
+
+#. 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 ""
+"Andernfalls wird keine Weitergabe benötigt. Wenn Sie jedoch glauben, dass "
+"Sie oft mit über- und untergeordneten Objekten in derselben Transaktion "
+"arbeiten werden und Sie sich etwas Tipparbeit sparen möchten, so können Sie "
+"<literal>cascade=\"persist,merge,save-update\"</literal> verwenden."
+
+#. 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 ""
+"Das Mappen einer Assoziation (entweder einer einwertigen Assoziation oder "
+"einer Collection) unter Verwendung von <literal>cascade=\"all\"</literal> "
+"kennzeichnet die Assoziation als zum <emphasis>Parent/Child</emphasis>-"
+"Beziehungstyp gehörig, bei dem Speichern/Aktualisieren/Löschen des "
+"übergeordneten Objekts zum Speichern/Aktualisieren/Löschen des "
+"untergeordneten Objekts (oder Objekte) führt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Furthermore, a mere reference to a child from a persistent parent will "
+"result in save/update of the child. This metaphor is incomplete, however. A "
+"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal><one-to-many></"
+"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
+"literal>. The precise semantics of cascading operations for a parent/child "
+"relationship are as follows:"
+msgstr ""
+"Desweiteren führt schon der Verweis eines übergeordneten Objektes auf ein "
+"untergeordnetes Objekt zur Speicherung/Aktualisierung des letzteren. Diese "
+"Metapher ist jedoch unvollständig. Ein untergeordnetes Objekt auf das nicht "
+"mehr durch das übergeordnete Objekt verwiesen wird, wird <emphasis>nicht</"
+"emphasis> automatisch gelöscht, auÃer im Fall einer <literal><one-to-"
+"many></literal>-Assoziation, die mit <literal>cascade=\"delete-orphan\"</"
+"literal> gemappt ist. Die exakte Sematik bei Weitergabevorgängen bei der "
+"\"Parent\"/\"Child\"-Beziehung lautet wie folgt:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If a parent is passed to <literal>persist()</literal>, all children are "
+"passed to <literal>persist()</literal>"
+msgstr ""
+"Falls für einen \"Parent\" <literal>persist()</literal> gilt, so gilt für "
+"sämtliche \"Children\" ebenfalls <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 ""
+"Falls für einen \"Parent\" <literal>merge()</literal> gilt, so gilt für "
+"sämtliche \"Children\" ebenfalls <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 ""
+"Falls für einen \"Parent\" <literal>save()</literal>, <literal>update()</"
+"literal> oder <literal>saveOrUpdate()</literal> gilt, so gilt für sämtliche "
+"\"Children\" ebenfalls <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 ""
+"Falls auf ein transientes oder abgesetztes \"Child\" durch einen "
+"persistenten \"Parent\" verwiesen wird, so gilt dafür <literal>saveOrUpdate()"
+"</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If a parent is deleted, all children are passed to <literal>delete()</"
+"literal>"
+msgstr ""
+"Falls ein \"Parent\" gelöscht wird, so gilt für alle \"Children\" "
+"<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 ""
+"Falls der Verweis auf ein \"Child\" von einem persistenten \"Parent\" "
+"entfällt, <emphasis>passiert nicht besonderes</emphasis> - die Anwendung "
+"sollte das \"Child\" explizit löschen falls nötig - auÃer es gilt "
+"<literal>cascade=\"delete-orphan\"</literal>, in welchem Fall das \"verwaiste"
+"\" Child gelöscht wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, note that cascading of operations can be applied to an object graph "
+"at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All "
+"operations, if enabled, are cascaded to associated entities reachable when "
+"the operation is executed. However, <literal>save-update</literal> and "
+"<literal>delete-orphan</literal> are transitive for all associated entities "
+"reachable during flush of the <literal>Session</literal>."
+msgstr ""
+"Beachten Sie auÃerdem, dass die Weitergabe von Vorgängen bei einem "
+"Objektdiagramm zum <emphasis>Zeitpunkt des Aufrufs</emphasis> oder "
+"<emphasis>zum Zeitpunkt der Räumung</emphasis> angewendet werden kann. Falls "
+"aktiviert werden alle Vorgänge an assoziierte Entities weitergegeben, die "
+"bei der Ausführung des Vorgangs erreichbar sind. Jedoch sind <literal>save-"
+"upate</literal> und <literal>delete-orphan</literal> für alle während der "
+"Räumung der <literal>Session</literal> erreichbaren, zugehörigen Entities "
+"transitiv."
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr "Die Verwendung von Metadata"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate requires a rich meta-level model of all entity and value types. "
+"This model can be useful to the application itself. For example, the "
+"application might use Hibernate's metadata to implement a \"smart\" deep-"
+"copy algorithm that understands which objects should be copied (eg. mutable "
+"value types) and which objects that should not (e.g. immutable value types "
+"and, possibly, associated entities)."
+msgstr ""
+"Hibernate benötigt von allen Entity und Wertetypen ein sehr umfassendes "
+"Modell auf Meta-Ebene. Von Zeit zu Zeit ist dieses Modell für die Anwendung "
+"selbst sehr hilfreich. Die Anwendung könnte zum Beispiel Hibernates "
+"Metadaten verwenden, um einen \"intelligenten\" Algorithmus der Detailkopie "
+"zu implementieren, der weiÃ, welche Objekte kopiert werden müssen (z.B. "
+"veränderliche Wertetypen) und welche nicht (z.B. unveränderliche Wertetypen "
+"und möglicherweise zugehörige Entities)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate exposes metadata via the <literal>ClassMetadata</literal> and "
+"<literal>CollectionMetadata</literal> interfaces and the <literal>Type</"
+"literal> hierarchy. Instances of the metadata interfaces can be obtained "
+"from the <literal>SessionFactory</literal>."
+msgstr ""
+"Hibernate legt Metadata mittels der <literal>ClassMetadata</literal> und "
+"<literal>CollectionMetadata</literal>-Interfaces und der <literal>Type</"
+"literal>-Hierarchie dar. Instanzen der Metadata-Interfaces sind durch die "
+"<literal>SessionFactory</literal> verfügbar."
+
+#, fuzzy
+#~ 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 ""
+#~ "DomesticCat fritz = new DomesticCat();\n"
+#~ "fritz.setColor(Color.GINGER);\n"
+#~ "fritz.setSex('M');\n"
+#~ "fritz.setName(\"Fritz\");\n"
+#~ "Long generatedId = (Long) sess.save(fritz);"
+
+#, fuzzy
+#~ 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 ""
+#~ "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) );"
+
+#, fuzzy
+#~ msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
+#~ msgstr "Cat fritz = (Cat) sess.load(Cat.class, generatedId);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[// you need to wrap primitive identifiers\n"
+#~ "long id = 1234;\n"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );]]>"
+#~ msgstr ""
+#~ "// you need to wrap primitive identifiers\n"
+#~ "long id = 1234;\n"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );"
+
+#, fuzzy
+#~ 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 ""
+#~ "Cat cat = new DomesticCat();\n"
+#~ "// load pk's state into cat\n"
+#~ "sess.load( cat, new Long(pkId) );\n"
+#~ "Set kittens = cat.getKittens();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
+#~ msgstr "Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);"
+
+#, fuzzy
+#~ 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 ""
+#~ "sess.save(cat);\n"
+#~ "sess.flush(); //force the SQL INSERT\n"
+#~ "sess.refresh(cat); //re-read the state (after the trigger executes)"
+
+#, fuzzy
+#~ 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 ""
+#~ "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());"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 = tuple[0];\n"
+#~ " Cat mother = tuple[1];\n"
+#~ " ....\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "//positional parameter\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
+#~ "q.setString(0, \"Izi\");\n"
+#~ "Iterator cats = q.iterate();"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "q.setFirstResult(20);\n"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "q.setFirstResult(20);\n"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>]]>"
+#~ msgstr ""
+#~ "<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "Collection blackKittens = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"where this.color = ?\")\n"
+#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+#~ " .list()\n"
+#~ ");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection tenKittens = session.createFilter(\n"
+#~ " mother.getKittens(), \"\")\n"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Collection tenKittens = session.createFilter(\n"
+#~ " mother.getKittens(), \"\")\n"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "Criteria crit = session.createCriteria(Cat.class);\n"
+#~ "crit.add( Expression.eq( \"color\", eg.Color.BLACK ) );\n"
+#~ "crit.setMaxResults(10);\n"
+#~ "List cats = crit.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT "
+#~ "{cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list();]]>"
+#~ msgstr ""
+#~ "List cats = session.createSQLQuery(\n"
+#~ " \"SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10\",\n"
+#~ " \"cat\",\n"
+#~ " Cat.class\n"
+#~ ").list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ " \"cat\",\n"
+#~ " Cat.class\n"
+#~ ").list()"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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);"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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)"
+
+#, fuzzy
+#~ msgid "<![CDATA[sess.delete(cat);]]>"
+#~ msgstr "sess.delete(cat);"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" cascade=\"persist\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/toolset_guide.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/toolset_guide.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/toolset_guide.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1469 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr "Toolset-Handbuch"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
+"plugins, commandline tools, and Ant tasks."
+msgstr ""
+"\"Roundtrip Engineering\" mit Hibernate ist mit einem Satz von Eclipse-"
+"Plugins, Befehlszeilen-Tools sowie Ant-Aufgaben möglich."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Die <emphasis>Hibernate Tools</emphasis> beinhalten gegenwärtig Plug-ins für "
+"die Eclipse-IDE sowie Ant-Aufgaben für invertiertes Engineering bestehender "
+"Datenbanken:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
+"files that supports auto-completion and syntax highlighting. It also "
+"supports semantic auto-completion for class names and property/field names, "
+"making it more versatile than a normal XML editor."
+msgstr ""
+"<emphasis>Mapping-Editor:</emphasis> Ein Editor für Hibernate XML-Mapping-"
+"Dateien, der Auto-Vervollständigung und Syntax-Markierung unterstützt. Er "
+"unterstützt auÃerdem semantische Auto-Vervollständigung für Klassennamen und "
+"Property-/Feldnamen, wodurch er vielseitiger als ein regulärer XML-Editor "
+"ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
+"addition to a tree overview of your console configurations, you are also "
+"provided with an interactive view of your persistent classes and their "
+"relationships. The console allows you to execute HQL queries against your "
+"database and browse the result directly in Eclipse."
+msgstr ""
+"<emphasis>Console:</emphasis> Die Konsole ist eine neue Ansicht in Eclipse. "
+"AuÃer einer Baumansicht Ihrer Konsolenkonfiguration können Sie auch eine "
+"interaktive Ansicht Ihrer persistenten Klassen sowie deren Beziehungen "
+"erhalten. Die Konsole ermöglicht es Ihnen, HQL-Anfragen an Ihrer Datenbank "
+"zu stellen und die Ergebnisse direkt in Eclipse zu durchsuchen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Development Wizards:</emphasis> several wizards are provided with "
+"the Hibernate Eclipse tools. You can use a wizard to quickly generate "
+"Hibernate configuration (cfg.xml) files, or to reverse engineer an existing "
+"database schema into POJO source files and Hibernate mapping files. The "
+"reverse engineering wizard supports customizable templates."
+msgstr ""
+"<emphasis>Development Wizards:</emphasis> Unter den Hibernate Eclipse Tools "
+"finden Sie auch mehrere Entwicklungs-Wizards. Sie können einen Wizard zur "
+"schnellen Generierung von Hibernate Konfigurationsdateien (cfg.xml) oder "
+"sogar zur vollständigen Invertierung eines bestehenden Datenbankschemas in "
+"POJO Quelldateien und Hibernate Mapping-Dateien verwenden. Der \"Reverse "
+"Engineering\"-Wizard unterstützt anwenderdefinierte Templates."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
+"documentation for more information."
+msgstr ""
+"Bitte entnehmen Sie dem Paket <emphasis>Hibernate Tools</emphasis> und der "
+"zugehörigen Dokumentation weitere Informationen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das Hibernate Hauptpaket kommt jedoch gebündelt mit einem integrierten Tool "
+"(es kann sogar direkt von \"innerhalb\" Hibernate aus verwendet werden): "
+"<emphasis>SchemaExport</emphasis> auch bekannt als <literal>hbm2ddl</"
+"literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr "Automatische Schema-Generierung"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"DDL kann mittels eines Hibernate Dienstprogramms aus Ihren Mapping-Dateien "
+"generiert werden. Das generierte Schema beinhaltet referentielle "
+"Integritätsbedingungen (Primär- und Fremdschlüssel) für Entity- und "
+"Collection-Tabellen. Tabellen und Reihungen (Sequenzen) werden auch für "
+"gemappte Bezeichnergeneratoren erstellt."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Sie <emphasis>müssen</emphasis> einen SQL-<literal>Dialect</literal> mittels "
+"der <literal>hibernate.dialect</literal>-Property bestimmen, wenn Sie dieses "
+"Tool verwenden, da DDL sehr anbieterspezifisch ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, you must customize your mapping files to improve the generated "
+"schema. The next section covers schema customization."
+msgstr ""
+"Zunächst passen Sie Ihre Mapping-Dateien an, um das generierte Schema zu "
+"verbessern."
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing the schema"
+msgstr "Anpassung des Schemas"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Zahlreiche Hibernate Mapping-Elemente definieren optionale Attribute mit "
+"Namen <literal>length</literal>, <literal>precision</literal> und "
+"<literal>scale</literal>. Mit diesem Atrribut können Sie Länge, Genauigkeit "
+"und Skalierung einer Reihe einstellen."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Einige Tags akzeptieren auch ein <literal>not-null</literal>-Attribut (für "
+"die Generierung einer <literal>NOT NULL</literal>-Bedingung an "
+"Tabellenspalten) sowie ein <literal>unique</literal>-Attribut (für die "
+"Generierung einer <literal>UNIQUE</literal>-Bedingung an Tabellenspalten)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>unique-key</literal> attribute can be used to group columns in a "
+"single, unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL. It is only used to group the "
+"columns in the mapping file."
+msgstr ""
+"Ein <literal>unique-key</literal>-Attribut kann ebenfalls benutzt werden, um "
+"Spalten in einer Bedingung mit einem einzelnen eindeutigen Kennbegriff zu "
+"gruppieren. Zur Zeit wird der spezifizierte Wert des <literal>unique-key</"
+"literal>-Attributs nicht <emphasis>nicht</emphasis> benutzt, um die "
+"Bedingung in der generierten DDL zu benutzen, sondern nur, um die Spalten in "
+"der Mapping-Datei zu gruppieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns can be "
+"grouped into the same index by simply specifying the same index name."
+msgstr ""
+"Ein <literal>index</literal>-Attribut legt den Namen eines Index fest, der "
+"unter Verwendung der gemappten Spalte(n) erstellt wird. Mehrere Spalten "
+"können in denselben Index gruppiert werden, indem einfach derselbe Indexname "
+"festgelegt wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>foreign-key</literal> attribute can be used to override the name "
+"of any generated foreign key constraint."
+msgstr ""
+"Ein <literal>foreign-key</literal>-Attribut kann verwendet werden, um den "
+"Namen einer generierten Bedingung des Fremdschlüssels auÃer Kraft zu setzen."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many mapping elements also accept a child <literal><column></literal> "
+"element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+"Zahlreiche Mapping-Elemente akzeptieren auch ein untergeordnetes "
+"<literal><column></literal>-Element. Das ist insbesondere für das "
+"Mappen von vielspaltigen Typen hilfreich:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>default</literal> attribute allows you to specify a default "
+"value for a column.You should assign the same value to the mapped property "
+"before saving a new instance of the mapped class."
+msgstr ""
+"Mit dem <literal>default</literal>-Attribut können Sie einen Standardwert "
+"für eine Spalte festlegen (Sie sollten denselben Wert einer gemappten "
+"Property zuordnen, ehe Sie eine neue Instanz der gemappten Klasse speichern)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>sql-type</literal> attribute allows the user to override the "
+"default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+"Das <literal>sql-type</literal>-Attribut ermöglicht die AuÃerkraftsetzung "
+"des Standard-Mappings eines Hibernate-Typs zum SQL-Datentyp."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>check</literal> attribute allows you to specify a check "
+"constraint."
+msgstr ""
+"Das <literal>check</literal>-Attribut ermöglicht es Ihnen, eine "
+"Prüfungsbedingung festzulegen."
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "Zusammenfassung"
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr "Attribut"
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr "Werte"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr "Bedeutung"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>length</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr "Zahl"
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr "Spaltenlänge"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr "Dezimale Genauigkeit der Spalte"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr "Dezimale Skalierung der Spalte"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr "legt fest, dass die Spalte nicht-nullbar sein soll"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr "bestimmt, dass die Spalte eine eindeutige Bedingung besitzt"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>index</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr "bestimmt den Namen eines (mehrspaltigen) Index"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr "bestimmt den Namen einer mehrspaltigen, eindeutigen Bedingung"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr "foreign_key_name"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"specifies the name of the foreign key constraint generated for an "
+"association, for a <literal><one-to-one></literal>, <literal><many-"
+"to-one></literal>, <literal><key></literal>, or <literal><many-"
+"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
+"literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+"legt den Namen einer Bedingung des Fremdschlüssels fest, der für eine "
+"Assoziation generiert wurde für ein <literal><one-to-one></literal>, "
+"<literal><many-to-one></literal>, <literal><key></literal> oder "
+"<literal><many-to-many></literal>-Mapping-Element. Bitte beachten Sie, "
+"dass <literal>inverse=\"true\"</literal>-Seiten beim <literal>SchemaExport</"
+"literal> nicht berücksichtigt werden."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"overrides the default column type (attribute of <literal><column></"
+"literal> element only)"
+msgstr ""
+"setzt den Standard-Spaltentyp auÃer Kraft (nur Attribut von <literal><"
+"column></literal>-Element)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>default</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr "SQL-Ausdruck"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr "bestimmt einen Standardwert für die Spalte"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>check</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr ""
+"erstellt eine SQL-Ãberprüfungsbedingung an entweder der Spalte oder der "
+"Tabelle"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><comment></literal> element allows you to specify "
+"comments for the generated schema."
+msgstr ""
+"Das <literal><comment></literal>-Element erlaubt die Bestimmung von "
+"Kommentaren für das generierte Schema."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This results in a <literal>comment on table</literal> or <literal>comment on "
+"column</literal> statement in the generated DDL where supported."
+msgstr ""
+"Dies führt zu einer <literal>comment on table</literal> oder "
+"<literal>comment on column</literal>-Anweisung in der generierten DDL (wenn "
+"unterstützt)."
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr "Start des Tools"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
+"and/or executes the DDL statements."
+msgstr ""
+"Das <literal>SchemaExport</literal>-Tool schreibt ein DDL-Skript um DDL-"
+"Anweisungen zu standardisieren und/oder auszuführen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaExport</literal> command "
+"line options"
+msgstr "<literal>SchemaExport</literal>-Befehlszeilenoptionen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</"
+"emphasis><literal>org.hibernate.tool.hbm2ddl.SchemaExport</"
+"literal><emphasis>options mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr "<literal>SchemaExport</literal>-Befehlszeilenoptionen"
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr "Option"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "Beschreibung"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "do not output the script to stdout"
+msgstr "Skript nicht an stdout ausgeben"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr "nur Tabellen droppen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr "nur Tabellen erstellen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "do not export to the database"
+msgstr "nicht in die Datenbank exportieren"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr "ddl-Skript an eine Datei ausgeben"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "--naming=eg.MyNamingStrategy"
+
+#. Tag: entry
+#, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr "Hibernate Konfiguration aus einer XML-Datei lesen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read database properties from a file"
+msgstr "Datenbank-Properties aus einer Datei lesen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr "generierte SQL sauber im Skript formatieren"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "wählen Sie eine <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr "einen Delimiter für das Zeilenende des Skripts setzen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr ""
+"Sie können sogar <literal>SchemaExport</literal> in Ihre Anwendung einbetten:"
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "Properties"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Database properties can be specified:"
+msgstr "Datenbank-Properties können bestimmt werden"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"as system properties with <literal>-D</literal><emphasis><property></"
+"emphasis>"
+msgstr ""
+"wie System-Properties mit <literal>-D</literal><emphasis><property></"
+"emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr ""
+"in einer benannten Properties-Datei mit <literal>--properties</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr "Die benötigten Properties sind:"
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr "SchemaExport-Connection-Properties"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr "Property-Name"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "hibernate.connection.driver_class"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr "jdbc-Treiberklasse"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr "jdbc url"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr "Datenbankbenutzer"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr "Benutzer-Passwort"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "in <literal>hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr "Dialekt"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr "Die Verwendung von Ant"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr ""
+"Sie können <literal>SchemaExport</literal> vom Ihrem Ant-Build-Skript "
+"aufrufen:"
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr "Inkrementelle Schema-Aktualisierungen"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das <literal>SchemaUpdate</literal>-Tool aktualisiert ein bestehendes Schema "
+"mit \"inkrementellen\" Ãnderungen. Bitte beachten Sie, das "
+"<literal>SchemaUpdate</literal> sehr vom JDBC-Metadaten-API abhängt und "
+"daher nicht mit allen JDBC-Treibern funktioniert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</"
+"emphasis><literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</"
+"literal><emphasis>options mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr "<literal>SchemaUpdate</literal>-Befehlszeilenoptionen"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "do not export the script to the database"
+msgstr "Skript nicht in die Datenbank exportieren"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr "eine <literal>.cfg.xml</literal>-Datei bestimmen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr ""
+"Sie können <literal>SchemaUpdate</literal> in Ihre Anwendung einbetten:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr "Die Verwendung von Ant bei inkrementellen Schema-Aktualisierungen"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr "Sie können <literal>SchemaUpdate</literal> vom Ant-Skript aufrufen:"
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr "Schema-Validierung"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"Das <literal>SchemaValidator</literal>-Tool validiert, ob das bestehende "
+"Datenbankschema zu Ihren Mapping-Dokumenten \"passt\". Beachten Sie, dass "
+"<literal>SchemaValidator</literal> sehr vom JDBC-Metadata-API abhängt und "
+"daher nicht mit allen JDBC-Treibern funktioniert. Dieses Tool ist beim "
+"Testen von groÃem Nutzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</"
+"emphasis><literal>org.hibernate.tool.hbm2ddl.SchemaValidator</"
+"literal><emphasis>options mapping_files</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr "<literal>SchemaValidator</literal>-Befehlszeilenoptionen"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr "<literal>SchemaValidator</literal>-Befehlszeilenoptionen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr ""
+"Sie können den <literal>SchemaValidator</literal> in Ihre Anwendung "
+"einbetten:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr "Die Verwendung von Ant zur Schema-Validierung"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
+msgstr ""
+"Sie können <literal>SchemaValidator</literal> vom Ant-Skript aus aufrufen:"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
+#~ msgstr "<property name=\"zip\" length=\"5\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
+#~ msgstr "<property name=\"balance\" precision=\"12\" scale=\"2\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key="
+#~ "\"OrgEmployeeId\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"org\" column=\"orgId\" unique-key=\"OrgEmployeeId"
+#~ "\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30"
+#~ "\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20"
+#~ "\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"30\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"20\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>"
+
+#~ msgid "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 "eindeutig"
+
+#~ msgid "index"
+#~ msgstr "index"
+
+#~ msgid "index_name"
+#~ msgstr "index_name"
+
+#~ msgid "unique-key"
+#~ msgstr "unique-key"
+
+#~ msgid "unique_key_name"
+#~ msgstr "unique_key_name"
+
+#~ msgid "foreign-key"
+#~ msgstr "foreign-key"
+
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "foreign-key"
+
+#~ msgid "sql-type"
+#~ msgstr "sql-type"
+
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "SQL-Spaltentyp"
+
+#~ msgid "default"
+#~ msgstr "default"
+
+#~ msgid "check"
+#~ msgstr "check"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>"
+
+#~ msgid "--quiet"
+#~ msgstr "--quiet"
+
+#~ msgid "--drop"
+#~ msgstr "--drop"
+
+#~ msgid "--create"
+#~ msgstr "--create"
+
+#~ 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"
+
+#~ msgid "--format"
+#~ msgstr "--format"
+
+#~ msgid "--delimiter=;"
+#~ msgstr "--delimiter=;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);"
+
+#, fuzzy
+#~ msgid "hibernate.connection.driver_class"
+#~ msgstr "hibernate.connection.url"
+
+#~ msgid "hibernate.connection.url"
+#~ msgstr "hibernate.connection.url"
+
+#~ msgid "hibernate.connection.username"
+#~ msgstr "hibernate.connection.username"
+
+#~ msgid "hibernate.connection.password"
+#~ msgstr "hibernate.connection.password"
+
+#~ msgid "hibernate.dialect"
+#~ msgstr "hibernate.dialect"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemavalidator>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/transactions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/transactions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/transactions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2444 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Transactions and Concurrency"
+msgstr "Transaktionen und Nebenläufigkeit"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The most important point about Hibernate and concurrency control is that it "
+"is easy to understand. Hibernate directly uses JDBC connections and JTA "
+"resources without adding any additional locking behavior. It is recommended "
+"that you spend some time with the JDBC, ANSI, and transaction isolation "
+"specification of your database management system."
+msgstr ""
+"Der wichtigste Aspekt von Hibernate und der Nebenläufigkeitskontrolle ist "
+"die Tatsache, dass es sehr leicht verständlich ist. Hibernate verwendet JDBC-"
+"Verbindungen und JTA-Ressourcen direkt und ohne Hinzufügen zusätzlichen "
+"Sperrverhaltens (sog. \"Locking\"). Wir empfehlen Ihnen, der JDBC-, ANSI- "
+"und Transaktionsisolation-Spezifikation Ihres Datenbankmanagementsystems "
+"etwas Zeit zu widmen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not lock objects in memory. Your application can expect the "
+"behavior as defined by the isolation level of your database transactions. "
+"Through <literal>Session</literal>, which is also a transaction-scoped "
+"cache, Hibernate provides repeatable reads for lookup by identifier and "
+"entity queries and not reporting queries that return scalar values."
+msgstr ""
+"Hibernate sichert keine Objekte im Speicher. Bei Ihrer Anwendung lässt sich "
+"das durch das Isolationsniveau Ihrer Datenbanktransaktionen definierte "
+"Verhalten erwarten. Bitte beachten Sie, dass dank der <literal>Session</"
+"literal>, die ebenfalls über ein durch die Transkation begrenztes Cache "
+"verfügt, Hibernate wiederholbares Lesen für Suchläufe nach Bezeichner- und "
+"Entity-Anfragen liefert (ohne Anzeige von Anfragen, die mit skalaren Werten "
+"reagieren)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In addition to versioning for automatic optimistic concurrency control, "
+"Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> "
+"syntax, a (minor) API for pessimistic locking of rows. Optimistic "
+"concurrency control and this API are discussed later in this chapter."
+msgstr ""
+"Neben der Versionierung für automatische optimistische "
+"Nebenläufigkeitskontrolle bietet Hibernate auch eine (kleinere) API für das "
+"pessimistische Sperren von Reihen unter Verwendung der <literal>SELECT FOR "
+"UPDATE</literal>-Syntax. Die optimistische Nebenläufigkeitskontrolle sowie "
+"die API werden später in diesem Kapitel noch erläutert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The discussion of concurrency control in Hibernate begins with the "
+"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal>, and <literal>Session</literal>, as well as database transactions "
+"and long conversations."
+msgstr ""
+"Wir beginnen das Thema der Nebenläufigkeitskontrolle in Hibernate mit der "
+"Granularität von <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal> und <literal>Session</literal> sowie Datenbanktransaktionen und "
+"langen Konversationen (sog. \"Conversations\")."
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr "Gültigkeitsbereiche von Session und Transaktion"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
+"object, intended to be shared by all application threads. It is created "
+"once, usually on application startup, from a <literal>Configuration</"
+"literal> instance."
+msgstr ""
+"Eine <literal>SessionFactory</literal> ist ein in der Erstellung teures, "
+"threadsicheres Objekt, das von allen Anwendungsthreads geteilt werden soll. "
+"Sie wird einmal - in der Regel beim Startup der Anwendung - aus einer "
+"<literal>Configuration</literal>-Instanz erstellt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
+"should be used once and then discarded for: a single request, a conversation "
+"or a single unit of work. A <literal>Session</literal> will not obtain a "
+"JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, "
+"unless it is needed. It will not consume any resources until used."
+msgstr ""
+"Eine <literal>Session</literal> ist ein in der Erstellung nicht teures, "
+"nicht threadsicheres Objekt, das für den einmaligen Gebrauch durch eine "
+"Anfrage, eine Konversation oder eine Arbeitseinheit vorgesehen ist und "
+"anschlieÃend verworfen wird. Eine <literal>Session</literal> erhält keine "
+"JDBC-<literal>Connection</literal> (oder eine <literal>Datasource</"
+"literal>), auÃer diese werden benötigt, d.h. sie benötigen bis zum Gebrauch "
+"keine Ressourcen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In order to reduce lock contention in the database, a database transaction "
+"has to be as short as possible. Long database transactions will prevent your "
+"application from scaling to a highly concurrent load. It is not recommended "
+"that you hold a database transaction open during user think time until the "
+"unit of work is complete."
+msgstr ""
+"Der Vollständigkeit halber sollten Sie sich auch Gedanken zu "
+"Datenbanktransaktionen machen. Eine Datenbanktransaktion sollte so kurz wie "
+"möglich sein, um Sperrkonkurrenz (sog. \"Lock Contention\") in der Datenbank "
+"zu reduzieren. Lange Datenbanktransaktionen behindern Ihre Anwendung bei der "
+"Skalierung stark nebenläufiger Loads. Es ist daher fast nie gut, eine "
+"Datenbank während der Benutzer \"Think Time\" offen zu halten, bis die "
+"Arbeitseinheit beendet ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What is the scope of a unit of work? Can a single Hibernate "
+"<literal>Session</literal> span several database transactions, or is this a "
+"one-to-one relationship of scopes? When should you open and close a "
+"<literal>Session</literal> and how do you demarcate the database transaction "
+"boundaries? These questions are addressed in the following sections."
+msgstr ""
+"Was ist der Gültigkeitsbereich einer Arbeitseinheit? Kann eine einzelne "
+"Hibernate <literal>Session</literal> mehrere Datenbanktransaktionen umfassen "
+"oder gilt eine \"one-to-one\"-Beziehung? Wann sollte eine <literal>Session</"
+"literal> geöffnet und geschlossen werden, und wie werden die Grenzen der "
+"Datenbanktransaktionen demarkiert?"
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+msgstr "Arbeitseinheit"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
+"not open and close a <literal>Session</literal> for every simple database "
+"call in a single thread. The same is true for database transactions. "
+"Database calls in an application are made using a planned sequence; they are "
+"grouped into atomic units of work. This also means that auto-commit after "
+"every single SQL statement is useless in an application as this mode is "
+"intended for ad-hoc SQL console work. Hibernate disables, or expects the "
+"application server to disable, auto-commit mode immediately. Database "
+"transactions are never optional. All communication with a database has to "
+"occur inside a transaction. Auto-commit behavior for reading data should be "
+"avoided, as many small transactions are unlikely to perform better than one "
+"clearly defined unit of work. The latter is also more maintainable and "
+"extensible."
+msgstr ""
+"Zunächst einmal sollten Sie nicht das Negativ-Entwurfsmuster "
+"<emphasis>Session-pro-Vorgang</emphasis> verwenden, d.h. öffnen und "
+"schlieÃen Sie eine <literal>Session</literal> nicht bei jedem einfachen "
+"Datenbankaufruf in einem einzelnen Thread! Natürlich gilt dasselbe für "
+"Datenbanktransaktionen. Datenbankaufrufe in einer Anwendung erfolgen durch "
+"eine geplante Sequenz, sie werden in atomare Arbeitseinheiten gruppiert. "
+"(Beachten Sie, dass dadurch auch Auto-Festschreibung (sog. \"Auto-Commit\") "
+"nach jeder einzelnen SQL-Anweisung in einer Anwendung nutzlos ist, dieser "
+"Modus ist für ad-hoc SQL-Konsolenarbeit vorgesehen. Hibernate deaktiviert - "
+"oder erwartet, dass dies der Applikationsserver tut - den Auto-"
+"Festschreibungsmodus sofort). Datenbanktransaktionen sind niemals optional, "
+"jede Kommunikation mit einer Datenbank muss innerhalb einer Transaktion "
+"erfolgen, unabhängig davon, ob Daten gelesen oder geschrieben werden. Wie "
+"beschrieben sollte das Auto-Festschreibungsverhalten beim Lesen von Daten "
+"vermieden werden, da viele kleinere Transaktionen aller Wahrscheinlichkeit "
+"nach weniger leistungsfähig sind als eine klar definierte Arbeitseinheit. "
+"Letztere lässt sich besser warten und ist erweiterbar."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The most common pattern in a multi-user client/server application is "
+"<emphasis>session-per-request</emphasis>. In this model, a request from the "
+"client is sent to the server, where the Hibernate persistence layer runs. A "
+"new Hibernate <literal>Session</literal> is opened, and all database "
+"operations are executed in this unit of work. On completion of the work, and "
+"once the response for the client has been prepared, the session is flushed "
+"and closed. Use a single database transaction to serve the clients request, "
+"starting and committing it when you open and close the <literal>Session</"
+"literal>. The relationship between the two is one-to-one and this model is a "
+"perfect fit for many applications."
+msgstr ""
+"Das gängigste Muster der Mehrbenutzer-Client/Server-Applikation ist "
+"<emphasis>Session-pro-Anfrage</emphasis>. Bei diesem Modell wird eine "
+"Anfrage des Client an den Server geschickt (wo die Hibernate "
+"Persistenzschicht läuft), eine neue Hibernate <literal>Session</literal> "
+"wird geöffnet und sämtliche Datenbankvorgänge werden in dieser "
+"Arbeitseinheit ausgeführt. Ist der Arbeitsvorgang abgeschlossen (und die "
+"Antwort für den Client vorbereitet), wird die Session geräumt und "
+"geschlossen. Sie würden auch eine einzelne Datenbanktransaktion für die "
+"Client-Anfrage verwenden, wobei diese beim Ãffnen und SchlieÃen der "
+"<literal>Session</literal> gestartet und festgeschrieben wird. Die Beziehung "
+"zwischen den beiden ist \"one-to-one\" (injektiv) und dieses Modell eignet "
+"sich perfekt für zahlreiche Anwendungen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The challenge lies in the implementation. Hibernate provides built-in "
+"management of the \"current session\" to simplify this pattern. Start a "
+"transaction when a server request has to be processed, and end the "
+"transaction before the response is sent to the client. Common solutions are "
+"<literal>ServletFilter</literal>, AOP interceptor with a pointcut on the "
+"service methods, or a proxy/interception container. An EJB container is a "
+"standardized way to implement cross-cutting aspects such as transaction "
+"demarcation on EJB session beans, declaratively with CMT. If you use "
+"programmatic transaction demarcation, for ease of use and code portability "
+"use the Hibernate <literal>Transaction</literal> API shown later in this "
+"chapter."
+msgstr ""
+"Die Herausforderung liegt in der Implementierung. Hibernate bietet ein "
+"eingebautes Management der \"aktuellen Session\", um dieses Muster zu "
+"vereinfachen. Sie müssen lediglich eine Transaktion starten, wenn eine "
+"Serveranfrage bearbeitet werden muss und die Transaktion beenden ehe die "
+"Antwort an den Client verschickt wird. Sie können dies auf beliebige Weise "
+"ausführen, gängige Lösungen sind <literal>ServletFilter</literal>, AOP-"
+"Interzeptor mit einem Pointcut an den Servicemethoden oder einem \"Proxy/"
+"Interception Container\". Ein EJB-Container ist eine standardisierte Art der "
+"Implementierung von Aspekten wie Transaktionsdemarkation an EJB Session-"
+"Beans, deklarativ mit CMT. Falls Sie sich für die Verwendung "
+"programmatischer Transaktionsdemarkation entscheiden, so ist die später in "
+"diesem Kapitel erläuterte Hibernate <literal>Transaction</literal>-API "
+"aufgrund von Benutzerfreundlichkeit und Codeübertragbarkeit zu bevorzugen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Your application code can access a \"current session\" to process the "
+"request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
+"You will always get a <literal>Session</literal> scoped to the current "
+"database transaction. This has to be configured for either resource-local or "
+"JTA environments, see <xref linkend=\"architecture-current-session\" />."
+msgstr ""
+"Ihr Anwendungscode kann auf eine \"aktuelle Session\" zugreifen, um die "
+"Anfrage zu bearbeiten, indem wann immer nötig einfach der Aufruf "
+"<literal>sessionFactory.getCurrentSession()</literal> erfolgt. Sie werden "
+"stets eine durch die aktuelle Datenbanktransaktion begrenzte "
+"<literal>Session</literal> erhalten. Dies muss entweder für \"Resource-local"
+"\" oder JTA-Umgebungen konfiguriert werden, siehe <xref linkend="
+"\"architecture-current-session\"/>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can extend the scope of a <literal>Session</literal> and database "
+"transaction until the \"view has been rendered\". This is especially useful "
+"in servlet applications that utilize a separate rendering phase after the "
+"request has been processed. Extending the database transaction until view "
+"rendering, is achieved by implementing your own interceptor. However, this "
+"will be difficult if you rely on EJBs with container-managed transactions. A "
+"transaction will be completed when an EJB method returns, before rendering "
+"of any view can start. See the Hibernate website and forum for tips and "
+"examples relating to this <emphasis>Open Session in View</emphasis> pattern."
+msgstr ""
+"Manchmal empfiehlt es sich, den Gültigkeitsbereich einer <literal>Session</"
+"literal> und Datenbanktransaktion zu erweitern bis die \"Ansicht gerendert "
+"wurde\". Das ist insbesondere bei Servlet-Anwendungen von Nutzen, die eine "
+"separate Rendering-Phase nach der Bearbeitung der Anfrage verwenden. Die "
+"Verlängerung der Datenbanktransaktion bis das Rendering der Ansicht "
+"abgeschlossen ist, ist ganz einfach, wenn Sie Ihren eigenen Interzeptor "
+"implementieren. Es ist jedoch nicht ganz einfach umzusetzen, wenn Sie auf "
+"EJBs mit Container-gemanagten Transaktionen angewiesen sind, da eine "
+"Transaktion abgeschlossen wird, wenn eine EJB-Methode wiedergegeben wird, "
+"ehe das Rendering einer Ansicht gestartet werden kann. Auf der Hibernate "
+"Website und im Forum finden Sie Tipps und Beispiele rund um dieses "
+"<emphasis>Offene Session in Ansicht</emphasis>-Muster."
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr "Lange Konversationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The session-per-request pattern is not the only way of designing units of "
+"work. Many business processes require a whole series of interactions with "
+"the user that are interleaved with database accesses. In web and enterprise "
+"applications, it is not acceptable for a database transaction to span a user "
+"interaction. Consider the following example:"
+msgstr ""
+"Das \"Session-pro-Anfrage\"-Muster ist nicht das einzige hilfreiche Konzept, "
+"das beim Design von Arbeitseinheiten verwendet werden kann. Zahlreiche "
+"Geschäftsvorgänge erfordern ganze Serien von Interaktionen, bei denen der "
+"Benutzer in Datenbankzugriffe involviert ist. In Web- und "
+"Unternehmensanwendungen ist es nicht akzeptabel, dass eine "
+"Datenbanktransaktion eine Benutzerinteraktion umfasst. Schauen Sie sich "
+"folgendes Beispiel an:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first screen of a dialog opens. The data seen by the user has been "
+"loaded in a particular <literal>Session</literal> and database transaction. "
+"The user is free to modify the objects."
+msgstr ""
+"Der erste Bildschirmdialog wird geöffnet und die für den Benutzer sichtbaren "
+"Daten werden in einer bestimmten <literal>Session</literal> und "
+"Datenbanktransaktion geladen. Der Benutzer kann Ãnderungen an den Objekten "
+"vornehmen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The user clicks \"Save\" after 5 minutes and expects their modifications to "
+"be made persistent. The user also expects that they were the only person "
+"editing this information and that no conflicting modification has occurred."
+msgstr ""
+"Der Benutzer klickt nach 5 Minuten auf \"Speichern\" (\"save\") und "
+"erwartet, dass die vorgenommenen Ãnderungen persistent gemacht wurden; er "
+"erwartet auÃerdem, die einzige Person zu sein, die Ãnderungen vornimmt und "
+"dass nicht die Möglichkeit widersprüchlicher Ãnderungen besteht."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"From the point of view of the user, we call this unit of work a long-running "
+"<emphasis>conversation</emphasis> or <emphasis>application transaction</"
+"emphasis>. There are many ways to implement this in your application."
+msgstr ""
+"Wir nennen diese Arbeitseinheit vom Standpunkt des Benutzers aus eine lange "
+"laufende <emphasis>Konversation</emphasis> (oder "
+"<emphasis>Anwendungstransaktion</emphasis>). Es gibt zahlreiche Arten, wie "
+"Sie dies in Ihrer Anwendung implementieren können."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A first naive implementation might keep the <literal>Session</literal> and "
+"database transaction open during user think time, with locks held in the "
+"database to prevent concurrent modification and to guarantee isolation and "
+"atomicity. This is an anti-pattern, since lock contention would not allow "
+"the application to scale with the number of concurrent users."
+msgstr ""
+"Eine erste, harmlose Implementierung könnte die <literal>Session</literal> "
+"und Datenbanktransaktion während der Benutzer \"Think Time\" offen halten, "
+"wobei Sperren einen Schutz vor gleichzeitigen Modifikationen liefern und "
+"eine Garantie für Isolation und Atomarität bieten. Dies ist natürlich ein "
+"Negativ-Entwurf, da Sperrkonkurrenz (sog. \"Lock Contention\") es der "
+"Anwendung nicht erlauben würde, die Anzahl gleichzeitiger Benutzer zu "
+"erhöhen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You have to use several database transactions to implement the conversation. "
+"In this case, maintaining isolation of business processes becomes the "
+"partial responsibility of the application tier. A single conversation "
+"usually spans several database transactions. It will be atomic if only one "
+"of these database transactions (the last one) stores the updated data. All "
+"others simply read data (for example, in a wizard-style dialog spanning "
+"several request/response cycles). This is easier to implement than it might "
+"sound, especially if you utilize some of Hibernate's features:"
+msgstr ""
+"Wir müssen ganz offensichtlich mehrere Datenbanktransaktionen verwenden, um "
+"die Konversation zu implementieren. In diesem Fall unterliegt die "
+"Aufrechterhaltung der Isolation von Business-Vorgängen zum Teil der "
+"Verantwortung des Applikations-Tiers. Eine einzelne Konversation umfasst in "
+"der Regel mehrere Datenbanktransaktionen. Sie wird atomar sein, falls eine "
+"dieser Datenbanktransaktionen (die letzte) die aktualisierten Daten "
+"speichert, alle anderen lesen einfach Daten (z.B. in einem \"Wizard-style "
+"Dialog\" der sich über mehrere Anfrage/Antworten-Zyklen erstreckt). Das ist "
+"einfacher zu implementieren als man meint, insbesondere dann, wenn Sie "
+"Hibernates Features nutzen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
+"optimistic concurrency control for you. It can automatically detect if a "
+"concurrent modification occurred during user think time. Check for this at "
+"the end of the conversation."
+msgstr ""
+"<emphasis>Automatische Versionierung</emphasis> - Hibernate kann eine "
+"automatische, optimistische Nebenläufigkeitskontrolle für Sie übernehmen und "
+"erkennt automatisch, ob während der Benutzer \"Think Time\" eine "
+"gleichzeitige Modifikation stattgefunden hat. In der Regel prüfen wir nur am "
+"Ende der Konversation."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Detached Objects</emphasis>: if you decide to use the "
+"<emphasis>session-per-request</emphasis> pattern, all loaded instances will "
+"be in the detached state during user think time. Hibernate allows you to "
+"reattach the objects and persist the modifications. The pattern is called "
+"<emphasis>session-per-request-with-detached-objects</emphasis>. Automatic "
+"versioning is used to isolate concurrent modifications."
+msgstr ""
+"<emphasis>Abgesetzte Objekte</emphasis> - Falls Sie das bereits dargestellte "
+"<emphasis>Session-pro-Anfrage </emphasis>-Muster verwenden, so befinden sich "
+"alle geladenen Instanzen während der Benutzer \"Think Time\" in abgesetztem "
+"Status. Hibernate ermöglicht die Wiederanbindung der Objekte sowie die "
+"Persistierung der Modifikationen, das Muster heiÃt <emphasis>Session-pro-"
+"Anfrage-mit-abgesetzten-Objekten</emphasis> (sog \"session-per-request-with-"
+"detached-objects\"). Automatische Versionierung wird zur Isolation "
+"gleichzeitiger Modifikationen verwendet."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
+"<literal>Session</literal> can be disconnected from the underlying JDBC "
+"connection after the database transaction has been committed and reconnected "
+"when a new client request occurs. This pattern is known as <emphasis>session-"
+"per-conversation</emphasis> and makes even reattachment unnecessary. "
+"Automatic versioning is used to isolate concurrent modifications and the "
+"<literal>Session</literal> will not be allowed to be flushed automatically, "
+"but explicitly."
+msgstr ""
+"<emphasis>Erweiterte (oder lange) Session</emphasis> - Die Hibernate "
+"<literal>Session</literal> kann von der zu Grunde liegenden JDBC-Verbindung "
+"gelöst werden, nachdem die Datenbanktransaktion festgeschrieben wurde. Eine "
+"erneute Verbindung kann dann bei einer neuen Client-Anfrage erfolgen. Dieses "
+"Muster ist unter dem Namen <emphasis>Session-pro-Konversation</emphasis> "
+"(sog. \"Session-per-Conversation\") bekannt und macht sogar die "
+"Wiederanbindung unnötig. Automatische Versionierung wird verwendet, um "
+"gleichzeitige Modifikationen zu isolieren, und die <literal>Session</"
+"literal> kann in der Regel nicht automatisch, sondern nur explizit, geräumt "
+"werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
+"<emphasis>session-per-conversation</emphasis> have advantages and "
+"disadvantages. These disadvantages are discussed later in this chapter in "
+"the context of optimistic concurrency control."
+msgstr ""
+"Sowohl <emphasis>Session-pro-Anfrage-mit-abgesetzten-Objekten</emphasis> als "
+"auch <emphasis>Session-pro-Konversation</emphasis> bieten Vor- und "
+"Nachteile. Diese werden später in diesem Kapitel im Zusammenhang mit "
+"optimistischer Nebenläufigkeitskontrolle erläutert."
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr "Die Berücksichtigung der Objektidentität"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An application can concurrently access the same persistent state in two "
+"different <literal>Session</literal>s. However, an instance of a persistent "
+"class is never shared between two <literal>Session</literal> instances. It "
+"is for this reason that there are two different notions of identity:"
+msgstr ""
+"Eine Anwendung kann gleichzeitig auf denselben persistenten Status in zwei "
+"verschiedenen <literal>Session</literal>s zugreifen. Jedoch kann die Instanz "
+"einer persistenten Klasse nie von zwei <literal>Session</literal>-Instanzen "
+"geteilt werden. Es gibt daher zwei unterschiedliche Begriffe von Identität "
+"(sog. \"Identity\"):"
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr "Datenbank-Identität"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "foo.getId().equals( bar.getId() )"
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr "JVM-Identität"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
+"literal> (i.e., in the scope of a <literal>Session</literal>), the two "
+"notions are equivalent and JVM identity for database identity is guaranteed "
+"by Hibernate. While the application might concurrently access the \"same"
+"\" (persistent identity) business object in two different sessions, the two "
+"instances will actually be \"different\" (JVM identity). Conflicts are "
+"resolved using an optimistic approach and automatic versioning at flush/"
+"commit time."
+msgstr ""
+"Dann sind für an zu einer <emphasis>bestimmten</emphasis> <literal>Session</"
+"literal> gehörenden Objekte (d.h. im Gültigkeitsbereich einer "
+"<literal>Session</literal>) die beiden Begriffe äquivalent, und die JVM-"
+"Identität für Datenbank-Identität wird von Hibernate garantiert. Während "
+"jedoch die Anwendung zeitgleich auf \"dasselbe\" (persistente Identität) "
+"Businessobjekt in zwei verschiedenen Sessions zugreifen kann, werden die "
+"beiden Instanzen tatsächlich \"unterschiedlich\" sein (JVM-Identität). "
+"Konflikte werden gelöst, indem zum Zeitpunkt des Räumens/Festschreibens "
+"(automatische Versionierung) eine optimistische Vorgehensweise verwendet "
+"wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This approach leaves Hibernate and the database to worry about concurrency. "
+"It also provides the best scalability, since guaranteeing identity in single-"
+"threaded units of work means that it does not need expensive locking or "
+"other means of synchronization. The application does not need to synchronize "
+"on any business object, as long as it maintains a single thread per "
+"<literal>Session</literal>. Within a <literal>Session</literal> the "
+"application can safely use <literal>==</literal> to compare objects."
+msgstr ""
+"Bei dieser Vorgehensweise kümmern sich Hibernate und die Datenbank um die "
+"Nebenläufigkeit. Dadurch bietet sich auch die beste Skalierbarkeit, da die "
+"Gewährleistung von Identität ein einthreadigen Arbeitseinheiten keine teuren "
+"Sperren oder andere SynchronisationsmaÃnahmen erfordert. Die Anwendung muss "
+"nie Synchronisierungen an Businessobjekten durchführen, so lange nur ein "
+"einzelner Thread pro <literal>Session</literal> existiert. Innerhalb einer "
+"<literal>Session</literal> kann die Anwendung ohne Probleme <literal>==</"
+"literal> verwenden, um Objekte zu vergleichen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"<literal>Session</literal> might produce unexpected results. This might "
+"occur even in some unexpected places. For example, if you put two detached "
+"instances into the same <literal>Set</literal>, both might have the same "
+"database identity (i.e., they represent the same row). JVM identity, "
+"however, is by definition not guaranteed for instances in a detached state. "
+"The developer has to override the <literal>equals()</literal> and "
+"<literal>hashCode()</literal> methods in persistent classes and implement "
+"their own notion of object equality. There is one caveat: never use the "
+"database identifier to implement equality. Use a business key that is a "
+"combination of unique, usually immutable, attributes. The database "
+"identifier will change if a transient object is made persistent. If the "
+"transient instance (usually together with detached instances) is held in a "
+"<literal>Set</literal>, changing the hashcode breaks the contract of the "
+"<literal>Set</literal>. Attributes for business keys do not have to be as "
+"stable as database primary keys; you only have to guarantee stability as "
+"long as the objects are in the same <literal>Set</literal>. See the "
+"Hibernate website for a more thorough discussion of this issue. Please note "
+"that this is not a Hibernate issue, but simply how Java object identity and "
+"equality has to be implemented."
+msgstr ""
+"Jedoch kann eine Anwendung, die <literal>==</literal> auÃerhalb einer "
+"<literal>Session</literal> verwendet, unerwartete Ergebnisse liefern. Dies "
+"kann auch an einigen unerwarteten Orten geschehen, etwa wenn Sie zwei "
+"abgesetzte Instanzen in demselben <literal>Set</literal> ablegen. Beide "
+"besitzen möglicherweise diesselbe Datenbank-Identität (d.h. sie "
+"repräsentieren diesselbe Reihe), aber die JVM-Identität wird der Definition "
+"nach nicht für Instanzen mit abgesetztem Status garantiert. Der Entwickler "
+"muss die <literal>equals()</literal> und <literal>hashCode()</literal>-"
+"Methoden in persistenten Klassen auÃer Kraft setzen und seinen eigenen "
+"Begriff von Objektgleichheit implementieren. Es existiert eine "
+"Einschränkung: Verwenden Sie niemals den Datenbank-Bezeichner zur "
+"Implementierung der Gleichheit, sondern verwenden Sie einen Business-"
+"Schlüssel, eine Kombination eindeutiger, in der Regel unveränderlicher "
+"Attribute. Der Datenbank-Bezeichner ändert sich, wenn ein transientes Objekt "
+"persistent gemacht wird. Wenn die transiente Instanz (normalerweise zusammen "
+"mit abgesetzten Instanzen) in einem <literal>Set</literal> gehalten wird, so "
+"findet bei Veränderung des Hashcodes ein Vertragsbruch des <literal>Set</"
+"literal> statt. Attribute für Business-Schlüssel müssen nicht so stabil wie "
+"Primärschlüssel der Datenbank sein, und Sie müssen lediglich die Stabilität "
+"garantieren während die Objekte sich im selben <literal>Set</literal> "
+"befinden. Weitere Informationen zu diesem Thema finden Sie auf der Hibernate-"
+"Website. Beachten Sie bitte auch, dass es sich hierbei nicht um eine "
+"Hibernate-Thematik, sondern Java Objekt-Identität und Gleichheit handelt."
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr "Gängige Probleme"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> "
+"or <emphasis>session-per-application</emphasis> (there are, however, rare "
+"exceptions to this rule). Some of the following issues might also arise "
+"within the recommended patterns, so ensure that you understand the "
+"implications before making a design decision:"
+msgstr ""
+"Verwenden Sie nie die Negativ-Entwurfsmuster <emphasis>Session-pro-Benutzer-"
+"Session</emphasis> (sog. \"Session-per-User-Session\") oder "
+"<emphasis>Session-pro-Anwendung</emphasis> (sog. \"Session-per-Application"
+"\"). Natürlich gibt es seltene Ausnahmen zu dieser Regel. Beachten Sie "
+"bitte, dass einige der folgenden Fälle auch bei den empfohlenen Mustern "
+"auftreten können, und vergewissern Sie sich, dass Sie mit den Implikationen "
+"vertraut sind, ehe Sie Entscheidungen hinsichtlich des Designs treffen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>Session</literal> is not thread-safe. Things that work "
+"concurrently, like HTTP requests, session beans, or Swing workers, will "
+"cause race conditions if a <literal>Session</literal> instance is shared. If "
+"you keep your Hibernate <literal>Session</literal> in your "
+"<literal>HttpSession</literal> (this is discussed later in the chapter), you "
+"should consider synchronizing access to your Http session. Otherwise, a user "
+"that clicks reload fast enough can use the same <literal>Session</literal> "
+"in two concurrently running threads."
+msgstr ""
+"Eine <literal>Session</literal> ist nicht threadsicher. Dinge, die "
+"gleichzeitig laufen sollen, wie etwa HTTP-Anfragen, Session-Beans oder Swing-"
+"Worker werden Race-Conditions auslösen, wenn eine <literal>Session</literal>-"
+"Instanz geteilt würde. Falls Sie Ihre Hibernate <literal>Session</literal> "
+"in Ihrer <literal>HttpSession</literal> behalten (wird später noch "
+"erläutert), sollten Sie in Erwägung ziehen, den Zugriff auf Ihre Http-"
+"Session zu synchronisieren. Anderfalls kann ein Benutzer der schnell genug "
+"auf \"erneut laden\" klickt diesselbe <literal>Session</literal> in in zwei "
+"gleichzeitig laufenden Threads benutzen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An exception thrown by Hibernate means you have to rollback your database "
+"transaction and close the <literal>Session</literal> immediately (this is "
+"discussed in more detail later in the chapter). If your <literal>Session</"
+"literal> is bound to the application, you have to stop the application. "
+"Rolling back the database transaction does not put your business objects "
+"back into the state they were at the start of the transaction. This means "
+"that the database state and the business objects will be out of sync. "
+"Usually this is not a problem, because exceptions are not recoverable and "
+"you will have to start over after rollback anyway."
+msgstr ""
+"Eine Ausnahmemeldung von Hibernate bedeutet, dass Sie Ihre "
+"Datenbanktransaktion wiederholen und die <literal>Session</literal> sofort "
+"schlieÃen müssen (dazu später mehr). Falls Ihre <literal>Session</literal> "
+"an die Anwendung gebunden ist, so müssen Sie die Anwendung stoppen. Das "
+"Wiederholen (sog. \"Rollback\") der Datenbanktransaktion bringt Ihre "
+"Business-Objekte nicht in deren Zustand zu Beginn der Transaktion zurück. "
+"Das bedeutet, dass der Datenbankzustand und die Business-Objekte nicht mehr "
+"synchron sind. In der Regel ist das kein Problem, da Ausnahmen nicht wieder "
+"herstellbar sind und Sie nach einem Rollback ohnehin wieder neu anfangen "
+"müssen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Session</literal> caches every object that is in a persistent "
+"state (watched and checked for dirty state by Hibernate). If you keep it "
+"open for a long time or simply load too much data, it will grow endlessly "
+"until you get an OutOfMemoryException. One solution is to call <literal>clear"
+"()</literal> and <literal>evict()</literal> to manage the <literal>Session</"
+"literal> cache, but you should consider a Stored Procedure if you need mass "
+"data operations. Some solutions are shown in <xref linkend=\"batch\" />. "
+"Keeping a <literal>Session</literal> open for the duration of a user session "
+"also means a higher probability of stale data."
+msgstr ""
+"Die <literal>Session</literal> speichert jedes Objekt, das sich in "
+"persistentem Status befindet (von Hibernate im Hinblick auf Zugriffe "
+"überwacht). Das bedeutet, dass es so lange weiterwächst, bis Sie eine "
+"\"OutOfMemoryException\"-Ausnahme erhalten, wenn Sie sie lange Zeit geöffnet "
+"halten oder einfach zu viele Daten laden. Eine Lösung hierfür besteht im "
+"Aufruf von <literal>clear()</literal> und <literal>evict()</literal>, um das "
+"<literal>Session</literal>-Cache zu managen, aber wahrscheinlich sollten Sie "
+"eine gespeicherte Prozedur (sog. \"stored procedure\") in Betracht ziehen, "
+"falls Sie Massendatenvorgänge benötigen. Einige Lösungen sind in <xref "
+"linkend=\"batch\"/> aufgeführt. Eine <literal>Session</literal> während der "
+"Dauer einer Benutzer-Session geöffnet zu halten, kann auch eine hohe "
+"Wahrscheinlichkeit veralteter Daten bedeuten."
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr "Abgrenzung von Datenbanktransaktionen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Database, or system, transaction boundaries are always necessary. No "
+"communication with the database can occur outside of a database transaction "
+"(this seems to confuse many developers who are used to the auto-commit "
+"mode). Always use clear transaction boundaries, even for read-only "
+"operations. Depending on your isolation level and database capabilities this "
+"might not be required, but there is no downside if you always demarcate "
+"transactions explicitly. Certainly, a single database transaction is going "
+"to perform better than many small transactions, even for reading data."
+msgstr ""
+"Datenbank- (oder System-) Transaktionsgrenzen sind immer notwendig. Es kann "
+"keine Kommunikation mit der Datenbank auÃerhalb einer Datenbanktransaktion "
+"erfolgen (das sorgt insbesondere bei Entwicklern, die den Auto-"
+"Festschreibungsmodus gewohnt sind, manchmal für Verwirrung). Verwenden Sie "
+"stets klare Transaktionsgrenzen, selbst bei schreibgeschützten Vorgängen. Je "
+"nach Isolationsebene und Leistungsfähigkeit der Datenbank ist dies "
+"vielleicht nicht nötig, aber es schadet nicht, wenn Sie Transaktionen immer "
+"explizit demarkieren. Eine einzelne Datenbanktransaktion wird in jedem Fall "
+"besser arbeiten als viele kleine Transaktionen, selbt beim ausschlieÃlichen "
+"Lesen von Daten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A Hibernate application can run in non-managed (i.e., standalone, simple "
+"Web- or Swing applications) and managed J2EE environments. In a non-managed "
+"environment, Hibernate is usually responsible for its own database "
+"connection pool. The application developer has to manually set transaction "
+"boundaries (begin, commit, or rollback database transactions) themselves. A "
+"managed environment usually provides container-managed transactions (CMT), "
+"with the transaction assembly defined declaratively (in deployment "
+"descriptors of EJB session beans, for example). Programmatic transaction "
+"demarcation is then no longer necessary."
+msgstr ""
+"Eine Hibernate Anwendung kann in nicht-gemanagten (d.h. selbstständigen, "
+"einfachen Web- oder Swing-Anwendungen) sowie gemanagten J2EE-Umgebungen "
+"laufen. Wenn in einer nicht-gemanagten Umgebung, so ist Hibernate "
+"normalerweise für seinen eigenen Datenbank Verbindungspool verantwortlich. "
+"Der Anwendungsentwickler muss manuell die Grenzen der Transaktion "
+"einstellen, mit anderen Worten die Datenbanktransaktion selbst beginnen, "
+"festschreiben oder wiederholen (d.h. einen Rollback vornehmen). Eine "
+"gemanagte Umgebung bietet normalerweise Container-gemanagte Transaktionen "
+"(CMT), wobei die Anordnung der Transaktion deklarativ zum Beispiel in den "
+"Deployment-Deskriptoren der EJB Session-Beans definiert wird. Eine "
+"programmatische Transaktionsdemarkation ist dann nicht länger notwendig."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, it is often desirable to keep your persistence layer portable "
+"between non-managed resource-local environments, and systems that can rely "
+"on JTA but use BMT instead of CMT. In both cases use programmatic "
+"transaction demarcation. Hibernate offers a wrapper API called "
+"<literal>Transaction</literal> that translates into the native transaction "
+"system of your deployment environment. This API is actually optional, but we "
+"strongly encourage its use unless you are in a CMT session bean."
+msgstr ""
+"Es ist jedoch oftmals wünschenswert die Persistenzschicht zwischen nicht "
+"gemanagten Ressourcen-lokalen Umgebungen und Systemen, die sich auf JTA "
+"stützen aber BMT statt CMT verwenden, übertragbar zu halten. In beiden "
+"Fällen würden Sie programmatische Transaktionsdemarkation benutzen. "
+"Hibernate bietet ein Wrapper-API mit Namen <literal>Transaction</literal> "
+"das in das native Transaktionssystem Ihrer Deployment-Umgebung übersetzt "
+"wird. Dieses API ist optional, jedoch empfehlen wir dringend dessen "
+"Verwendung, auÃer Sie befinden sich in einem CMT Session-Bean. "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr ""
+"In der Regel umfasst das Beenden einer <literal>Session</literal> vier "
+"eindeutige Phasen:"
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr "Räumen der Session"
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr "Festschreibung der Transaktion"
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr "SchlieÃen der Session"
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr "Bearbeitung von Ausnahmen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We discussed Flushing the session earlier, so we will now have a closer look "
+"at transaction demarcation and exception handling in both managed and non-"
+"managed environments."
+msgstr ""
+"Die Räumung einer Session wurde zuvor bereits erläutert - werfen wir nun "
+"einen genaueren Blick auf die Transaktionsdemarkation und den Umgang mit "
+"Ausnahmen in gemanagten und nicht gemanagten Umgebungen."
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr "Die nicht-gemanagte Umgebung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If a Hibernate persistence layer runs in a non-managed environment, database "
+"connections are usually handled by simple (i.e., non-DataSource) connection "
+"pools from which Hibernate obtains connections as needed. The session/"
+"transaction handling idiom looks like this:"
+msgstr ""
+"Falls eine Hibernate Persistenzschicht in einer nicht-gemanagten Umgebung "
+"läuft, werden Datenbankverbindungen in der Regel durch einfache "
+"Verbindungspools (d.h. nicht-DataSource) bearbeitet, von denen Hibernate "
+"nach Bedarf Verbindungen erhält. Das Session-/Transaktionsbearbeitungsidiom "
+"sieht wie folgt aus:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You do not have to <literal>flush()</literal> the <literal>Session</literal> "
+"explicitly: the call to <literal>commit()</literal> automatically triggers "
+"the synchronization depending on the <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> for the session. A call to <literal>close()</literal> "
+"marks the end of a session. The main implication of <literal>close()</"
+"literal> is that the JDBC connection will be relinquished by the session. "
+"This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+"Sie müssen keinen expliziten <literal>flush()</literal> der "
+"<literal>Session</literal> durchführen - der Aufruf <literal>commit()</"
+"literal> löst die Synchronisierung für die Session automatisch aus (je nach "
+"<xref linkend=\"objectstate-flushing\"/>). Der Aufruf <literal>close()</"
+"literal> markiert das Ende einer Session. Die Hauptauswirkung von "
+"<literal>close()</literal> ist, dass die JDBC-Verbindung von der Session "
+"aufgegeben wird. Dieser Java-Code ist übertragbar und funktioniert sowohl in "
+"nicht gemanagten als auch in JTA-Umgebungen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As outlined earlier, a much more flexible solution is Hibernate's built-in "
+"\"current session\" context management:"
+msgstr ""
+"Eine wesentlich flexiblere Lösung ist Hibernates integriertes "
+"Kontextmanagement für die \"aktuelle Session\" wie zuvor beschrieben:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You will not see these code snippets in a regular application; fatal "
+"(system) exceptions should always be caught at the \"top\". In other words, "
+"the code that executes Hibernate calls in the persistence layer, and the "
+"code that handles <literal>RuntimeException</literal> (and usually can only "
+"clean up and exit), are in different layers. The current context management "
+"by Hibernate can significantly simplify this design by accessing a "
+"<literal>SessionFactory</literal>. Exception handling is discussed later in "
+"this chapter."
+msgstr ""
+"Sie werden diese Codestücke aller Wahrscheinlichkeit in einer regulären "
+"Anwendung niemals sehen; fatale (System)-Ausnahmen sollten stets \"ganz oben"
+"\" aufgefangen werden. Mit anderen Worten: Der Code, der Hibernate Aufrufe "
+"(in der Persistenzschicht) ausführt und der Code, der die "
+"<literal>RuntimeException</literal> bearbeitet (und in der Regel nur "
+"reinigen und beenden kann) befinden sich in unterschiedlichen Schichten. Das "
+"aktuelle Kontextmanagement von Hibernate kann diesen Entwurf entscheidend "
+"vereinfachen, da Sie lediglich auf eine <literal>SessionFactory</literal> "
+"zugreifen müssen. Der Umgang mit Ausnahmen wird später in diesem Kapitel "
+"noch näher erläutert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
+"literal>, which is the default, and for the second example select <literal>"
+"\"thread\"</literal> as your <literal>hibernate."
+"current_session_context_class</literal>."
+msgstr ""
+"Bitte beachten Sie, dass Sie <literal>org.hibernate.transaction."
+"JDBCTransactionFactory</literal> (Standard) und für das zweite Beispiel "
+"<literal>\"thread\"</literal> als <literal>hibernate."
+"current_session_context_class</literal> wählen sollten."
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr "Die Verwendung von JTA"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your persistence layer runs in an application server (for example, behind "
+"EJB session beans), every datasource connection obtained by Hibernate will "
+"automatically be part of the global JTA transaction. You can also install a "
+"standalone JTA implementation and use it without EJB. Hibernate offers two "
+"strategies for JTA integration."
+msgstr ""
+"Falls Ihre Persistenzschicht in einem Applikationsserver läuft (z.B. hinter "
+"EJB Session-Beans), so wird jede durch Hibernate erlangte "
+"Datenquellenverbindung Teil der allgemeinen JTA-Transaktion. Sie können auch "
+"eine selbstsändige JTA-Implementierung installieren und diese ohne EJB "
+"verwenden. Hibernate bietet zwei Strategien für die JTA-Integration."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you use bean-managed transactions (BMT), Hibernate will tell the "
+"application server to start and end a BMT transaction if you use the "
+"<literal>Transaction</literal> API. The transaction management code is "
+"identical to the non-managed environment."
+msgstr ""
+"Falls Sie vom Bean gemanagte Transaktionen (BMT) benutzen, so teilt "
+"Hibernate dem Applikationsserver mit, dass eine BMT-Transaktion gestartet "
+"und beendet werden soll, wenn Sie eine <literal>Transaction</literal>-API "
+"verwenden. Der Transaktionsmanagement-Code ist also identisch mit der nicht-"
+"gemanagten Umgebung."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to use a transaction-bound <literal>Session</literal>, that is, "
+"the <literal>getCurrentSession()</literal> functionality for easy context "
+"propagation, use the JTA <literal>UserTransaction</literal> API directly:"
+msgstr ""
+"Falls Sie eine transaktionsgebundene <literal>Session</literal>, d.h. die "
+"<literal>getCurrentSession()</literal>-Funktionalität für einfache "
+"Kontextübertragung benutzen wollen, müssen Sie die JTA "
+"<literal>UserTransaction</literal>-API direkt verwenden:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"With CMT, transaction demarcation is completed in session bean deployment "
+"descriptors, not programmatically. The code is reduced to:"
+msgstr ""
+"Mit CMT erfolgt die Transaktionsdemarkation in Session-Bean-Deployment-"
+"Deskriptoren (und nicht programmatisch), weswegen der Code wie folgt "
+"reduziert ist:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In a CMT/EJB, even rollback happens automatically. An unhandled "
+"<literal>RuntimeException</literal> thrown by a session bean method tells "
+"the container to set the global transaction to rollback. <emphasis>You do "
+"not need to use the Hibernate <literal>Transaction</literal> API at all with "
+"BMT or CMT, and you get automatic propagation of the \"current\" Session "
+"bound to the transaction.</emphasis>"
+msgstr ""
+"In einem CMT/EJB erfolgt sogar der Rollback automatisch, da eine "
+"unbearbeitete<literal>RuntimeException</literal>, die durch eine Session-"
+"Bean-Methode gemeldet wird, dem Container mitteilt, dass er die allgemeine "
+"Transaktion auf Rollback setzen soll. <emphasis>Das bedeutet, dass Sie die "
+"Hibernate <literal>Transaction</literal>-API gar nicht mit BMT oder CMT "
+"verwenden müssen und Sie eine automatische Fortpflanzung der \"aktuellen\", "
+"an die Transaktion gebundenen Session erhalten.</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When configuring Hibernate's transaction factory, choose <literal>org."
+"hibernate.transaction.JTATransactionFactory</literal> if you use JTA "
+"directly (BMT), and <literal>org.hibernate.transaction."
+"CMTTransactionFactory</literal> in a CMT session bean. Remember to also set "
+"<literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that "
+"your <literal>hibernate.current_session_context_class</literal> is either "
+"unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
+msgstr ""
+"Bitte beachten Sie, dass Sie <literal>org.hibernate.transaction."
+"JTATransactionFactory</literal> wählen sollten, falls Sie JTA direkt (BMT) "
+"verwenden und <literal>org.hibernate.transaction.CMTTransactionFactory</"
+"literal> in einem CMT Session-Bean, wenn Sie Hibernates Transaction-Factory "
+"konfigurieren. Sie sollten auch daran denken <literal>hibernate.transaction."
+"manager_lookup_class</literal> einzustellen. Vergewissern Sie sich auÃerdem, "
+"dass <literal>hibernate.current_session_context_class</literal> entweder "
+"nicht gesetzt (rückwärtige Kompatibilität) oder auf <literal>\"jta\"</"
+"literal> gesetzt ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>getCurrentSession()</literal> operation has one downside in a "
+"JTA environment. There is one caveat to the use of <literal>after_statement</"
+"literal> connection release mode, which is then used by default. Due to a "
+"limitation of the JTA spec, it is not possible for Hibernate to "
+"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
+"<literal>Iterator</literal> instances returned by <literal>scroll()</"
+"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
+"release the underlying database cursor by calling <literal>ScrollableResults."
+"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly "
+"from a <literal>finally</literal> block. Most applications can easily avoid "
+"using <literal>scroll()</literal> or <literal>iterate()</literal> from the "
+"JTA or CMT code.)"
+msgstr ""
+"Der <literal>getCurrentSession()</literal>-Vorgang hat einen Nachteil in "
+"einer JTA-Umgebung. Es gibt eine Einschränkung hinsichtlich der Verwendung "
+"des <literal>after_statement</literal>-Verbindungsfreigabemodus, der dann im "
+"Standard benutzt wird. Aufgrund einer Beschränkung der JTA-Spezifikation, "
+"ist es Hibernate nicht möglich, ungeschlossene <literal>ScrollableResults</"
+"literal> oder <literal>Iterator</literal>-Instanzen, die durch "
+"<literal>scroll()</literal> oder <literal>iterate()</literal> erhalten "
+"wurden, automatisch zu bereinigen. Sie <emphasis>müssen</emphasis> den zu "
+"Grunde liegenden Datenbank-Cursor durch Aufruf von "
+"<literal>ScrollableResults.close()</literal> oder <literal>Hibernate.close"
+"(Iterator)</literal> explizit von einem <literal>finally</literal>-Block "
+"freigeben. (Natürlich können die meisten Anwendungen leicht die Verwendung "
+"von <literal>scroll()</literal> oder <literal>iterate()</literal> vom JTA- "
+"oder CMT-Code vermeiden)."
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr "Der Umgang mit Ausnahmen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the <literal>Session</literal> throws an exception, including any "
+"<literal>SQLException</literal>, immediately rollback the database "
+"transaction, call <literal>Session.close()</literal> and discard the "
+"<literal>Session</literal> instance. Certain methods of <literal>Session</"
+"literal> will <emphasis>not</emphasis> leave the session in a consistent "
+"state. No exception thrown by Hibernate can be treated as recoverable. "
+"Ensure that the <literal>Session</literal> will be closed by calling "
+"<literal>close()</literal> in a <literal>finally</literal> block."
+msgstr ""
+"Falls die <literal>Session</literal> eine Ausnahme meldet (einschlieÃlich "
+"<literal>SQLException</literal>), sollten Sie sofort einen Rollback der "
+"Datenbanktransaktion durchführen, <literal>Session.close()</literal> "
+"aufrufen und die <literal>Session</literal> verwerfen. Bestimmte Methoden "
+"von <literal>Session</literal> werden die Session <emphasis>nicht</emphasis> "
+"in konsistentem Zustand lassen. Keine von Hibernate gemeldete Ausnahme kann "
+"als wiederherstellbar betrachtet werden. Vergewissern Sie sich, dass die "
+"<literal>Session</literal> durch Aufruf von <literal>close()</literal> in "
+"einem <literal>finally</literal> Block geschlossen wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>HibernateException</literal>, which wraps most of the errors "
+"that can occur in a Hibernate persistence layer, is an unchecked exception. "
+"It was not in older versions of Hibernate. In our opinion, we should not "
+"force the application developer to catch an unrecoverable exception at a low "
+"layer. In most systems, unchecked and fatal exceptions are handled in one of "
+"the first frames of the method call stack (i.e., in higher layers) and "
+"either an error message is presented to the application user or some other "
+"appropriate action is taken. Note that Hibernate might also throw other "
+"unchecked exceptions that are not a <literal>HibernateException</literal>. "
+"These are not recoverable and appropriate action should be taken."
+msgstr ""
+"Bei der <literal>HibernateException</literal>, die die meisten Fehler "
+"abdeckt, die innerhalb einer Persistenzschicht Hibernates vorkommen können, "
+"handelt es sich um eine ungeprüfte Ausnahme (in älteren Versionen von "
+"Hibernate war sie das nicht). Unserer Ansicht nach sollte der "
+"Anwendungsentwickler nicht gezwungen sein, eine nicht wiederherstellbare "
+"Ausnahme in einer tiefen Schicht abzufangen. In den meisten Systemen werden "
+"ungeprüfte und schwere Ausnahmefehler in einem der ersten Rahmen des "
+"Methodenaufrufstapels bearbeitet (d.h. in höheren Schichten) und eine "
+"Fehlernachricht wird dem Anwendungsbenutzer gemeldet (oder eine andere "
+"passende Vorgehensweise wird unternommen). Bitte beachten Sie, dass "
+"Hibernate auch andere ungeprüfte Ausnahmen melden kann, bei denen es sich "
+"nicht um <literal>HibernateException</literal> handelt. Auch diese sind "
+"nicht wiederherstellbar, und es sollten die entsprechenden MaÃnahmen "
+"ergriffen werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
+"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
+"will attempt to convert the exception into a more meaningful subclass of "
+"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
+"literal> is always available via <literal>JDBCException.getCause()</"
+"literal>. Hibernate converts the <literal>SQLException</literal> into an "
+"appropriate <literal>JDBCException</literal> subclass using the "
+"<literal>SQLExceptionConverter</literal> attached to the "
+"<literal>SessionFactory</literal>. By default, the "
+"<literal>SQLExceptionConverter</literal> is defined by the configured "
+"dialect. However, it is also possible to plug in a custom implementation. "
+"See the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
+"class for details. The standard <literal>JDBCException</literal> subtypes "
+"are:"
+msgstr ""
+"Hibernate wrappt <literal>SQLException</literal>s, die während der "
+"Interaktion mit der Datenbank gemeldet werden in eine "
+"<literal>JDBCException</literal>. Hibernate wird auch versuchen, die "
+"Ausnahme in eine sinnvollere Subklasse von <literal>JDBCException</literal> "
+"zu konvertieren. Die zu Grunde liegende <literal>SQLException</literal> ist "
+"mittels <literal>JDBCException.getCause()</literal> immer verfügbar. "
+"Hibernate konvertiert die <literal>SQLException</literal> in eine "
+"entsprechende <literal>JDBCException</literal>-Subklasse, indem es den der "
+"<literal>SessionFactory</literal> zugehörigen "
+"<literal>SQLExceptionConverter</literal> verwendet. In der "
+"Standardeinstellung ist der <literal>SQLExceptionConverter</literal> durch "
+"den konfigurierten Dialekt definiert, es ist jedoch auch möglich, eine "
+"anwenderdefinierte Implementierung anzuschlieÃen (siehe Javadocs zu "
+"<literal>SQLExceptionConverterFactory</literal>-Klasse für Einzelheiten). "
+"Die Standard <literal>JDBCException</literal>-Untertypen sind:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>JDBCConnectionException</literal>: indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+"<literal>JDBCConnectionException</literal> - zeigt einen Fehler mit der zu "
+"Grunde liegenden JDBC-Kommunikation an."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+"<literal>SQLGrammarException</literal> - zeigt ein grammatisches oder "
+"syntaktisches Problem mit der herausgegebenen SQL an."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ConstraintViolationException</literal>: indicates some form of "
+"integrity constraint violation."
+msgstr ""
+"<literal>ConstraintViolationException</literal> - zeigt eine Form von "
+"Verletzung der Integritätsbedingung an."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
+"lock level necessary to perform the requested operation."
+msgstr ""
+"<literal>LockAcquisitionException</literal> - zeigt einen Fehler bei der "
+"Ermittlung der für den angefragten Vorgang erforderlichen Sperrebene (sog. "
+"\"Lock Level\") an."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>GenericJDBCException</literal>: a generic exception which did not "
+"fall into any of the other categories."
+msgstr ""
+"<literal>GenericJDBCException</literal> - eine generische Ausnahme, die "
+"unter keine der anderen Kategorien fällt."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr "Transaktions-Timeout"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An important feature provided by a managed environment like EJB, that is "
+"never provided for non-managed code, is transaction timeout. Transaction "
+"timeouts ensure that no misbehaving transaction can indefinitely tie up "
+"resources while returning no response to the user. Outside a managed (JTA) "
+"environment, Hibernate cannot fully provide this functionality. However, "
+"Hibernate can at least control data access operations, ensuring that "
+"database level deadlocks and queries with huge result sets are limited by a "
+"defined timeout. In a managed environment, Hibernate can delegate "
+"transaction timeout to JTA. This functionality is abstracted by the "
+"Hibernate <literal>Transaction</literal> object."
+msgstr ""
+"Ein sehr wichtiges Feature, das durch eine gemanagte Umgebung wie EJB "
+"geliefert wird und das für nicht-gemanagten Code nicht verfügbar ist, ist "
+"der Transaktions-Timeout. Transaktions-Timeouts stellen sicher, dass eine "
+"nicht ordnungsgemäà laufende Transaktion nicht endlos Ressources vergeuden "
+"kann, während der Benutzer auf Antwort wartet. AuÃerhalb einer gemanagten "
+"(JTA) Umgebung, kann Hibernate diese Funktionalität nicht in vollem Umfang "
+"gewährleisten. Jedoch kann Hibernate zumindest Datenzugriffsvorgänge steuern "
+"und sicherstellen, dass Deadlocks auf Datenbankebene und Anfragen mit sehr "
+"groÃen Ergebnissätzen durch einen definierten Timeout eingeschränkt werden. "
+"In einer gemanagten Umgebung kann Hibernate den Transaktions-Timeout an JTA "
+"übertragen. Diese Funktionalität wird durch das Hibernate "
+"<literal>Transaction</literal>-Objekt abstrahiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
+"transaction timeouts must be defined declaratively."
+msgstr ""
+"Beachten Sie, dass <literal>setTimeout()</literal> nicht in einem CMT-Bean "
+"aufgerufen werden kann, in dem Transaktions-Timeouts deklarativ definiert "
+"sein müssen."
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr "Optimistische Nebenläufigkeitskontrolle"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The only approach that is consistent with high concurrency and high "
+"scalability, is optimistic concurrency control with versioning. Version "
+"checking uses version numbers, or timestamps, to detect conflicting updates "
+"and to prevent lost updates. Hibernate provides three possible approaches to "
+"writing application code that uses optimistic concurrency. The use cases we "
+"discuss are in the context of long conversations, but version checking also "
+"has the benefit of preventing lost updates in single database transactions."
+msgstr ""
+"Die einzige, mit hoher Nebenläufigkeit und hoher Skalierbarkeit konsistente "
+"Vorgehensweise ist die optimistische Nebenläufigkeitskontrolle mit "
+"Versionierung. Die Versionsprüfung verwendet Versionsnummern oder "
+"Zeitstempel (sog. \"Timestamps\"), um widersprüchliche Aktualisierungen "
+"aufzuspüren (und um verlorenen Aktualisierungen vorzubeugen). Hibernate "
+"bietet drei mögliche Vorgehensweisen für das Schreiben eines "
+"Anwendungscodes, der optimistische Nebenläufigkeit verwendet. Die von uns "
+"dargestellten Anwendungsfälle sind für den Kontext langer Konversationen, "
+"jedoch bietet die Versionsprüfung auch den Vorteil bei einzelnen "
+"Datenbanktransaktionen verlorenen Aktualisierungen vorzubeugen."
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr "Kontrolle der Anwendungsversion"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In an implementation without much help from Hibernate, each interaction with "
+"the database occurs in a new <literal>Session</literal> and the developer is "
+"responsible for reloading all persistent instances from the database before "
+"manipulating them. The application is forced to carry out its own version "
+"checking to ensure conversation transaction isolation. This approach is the "
+"least efficient in terms of database access. It is the approach most similar "
+"to entity EJBs."
+msgstr ""
+"Bei einer Implementierung ohne groÃe Hilfe von Hibernate erfolgt jede "
+"Interaktion mit der Datenbank in einer neuen <literal>Session</literal>, und "
+"es ist die Verantwortung des Entwicklers alle persistenten Instanzen aus der "
+"Datenbank erneut zu laden ehe diese verändert werden. Durch diese "
+"Vorgehensweise wird die Anwendung dazu gezwungen, ihre eigene "
+"Versionsprüfung durchzuführen, um die Transaktionsisolation der Konversation "
+"sicherzustellen. Im Hinblick auf Datenbankzugriff ist diese Herangehensweise "
+"die am wenigsten effiziente, ähnelt jedoch am meisten den Entity-EJBs."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal><"
+"version></literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"Die <literal>version</literal>-Property wird unter Verwendung von "
+"<literal><version></literal> gemappt, und Hibernate wird diese während "
+"des Räumens automatisch inkrementieren, falls die Entity aufgrund eines "
+"Zugriffs als \"dirty\" erkannt wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you are operating in a low-data-concurrency environment, and do not "
+"require version checking, you can use this approach and skip the version "
+"check. In this case, <emphasis>last commit wins</emphasis> is the default "
+"strategy for long conversations. Be aware that this might confuse the users "
+"of the application, as they might experience lost updates without error "
+"messages or a chance to merge conflicting changes."
+msgstr ""
+"Falls Sie jedoch in einer Umgebung mit geringer Daten-Nebenläufigkeit "
+"arbeiten und keine Versionsprüfung benötigen, so können Sie diese "
+"Vorgehensweise verwenden und die Versionsprüfung einfach überspringen. In "
+"diesem Fall <emphasis>gilt die letzte Festschreibung</emphasis>, und dies "
+"ist die Standadrd-Strategie für lange Konversationen. Seien Sie sich der "
+"Tatsache bewusst, dass dies die Benutzer der Anwendung verwirren wird, da es "
+"zu verlorenen Aktualisierungen ohne Fehlermeldungen oder der Möglichkeit des "
+"Mischens widersprüchlicher Ãnderungen kommen kann."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Manual version checking is only feasible in trivial circumstances and not "
+"practical for most applications. Often not only single instances, but "
+"complete graphs of modified objects, have to be checked. Hibernate offers "
+"automatic version checking with either an extended <literal>Session</"
+"literal> or detached instances as the design paradigm."
+msgstr ""
+"Die manuelle Versionsprüfung ist nur unter sehr trivialen Umständen machbar "
+"und bei den meisten Anwendungen nicht brauchbar. Oft müssen nicht nur "
+"einzelne Instanzen, sondern vollständige Diagramme geänderter Objekte "
+"überprüft werden. Hibernate bietet eine automatische Versionsprüfung mittels "
+"entweder einer erweiterten <literal>Session</literal> oder abgesetzter "
+"Instanzen als Entwurfsmuster."
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr "Erweiterte Session und automatische Versionierung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A single <literal>Session</literal> instance and its persistent instances "
+"that are used for the whole conversation are known as <emphasis>session-per-"
+"conversation</emphasis>. Hibernate checks instance versions at flush time, "
+"throwing an exception if concurrent modification is detected. It is up to "
+"the developer to catch and handle this exception. Common options are the "
+"opportunity for the user to merge changes or to restart the business "
+"conversation with non-stale data."
+msgstr ""
+"Eine einzelne <literal>Session</literal>-Instanz und deren persistente "
+"Instanzen werden für die gesamte Konversation verwendet, was als "
+"<emphasis>Session-per-Konversation</emphasis> (sog. \"Session-per-"
+"Conversation\") bekannt ist. Hibernate prüft zum Zeitpunkt der Räumung die "
+"Versionen der Instanz und meldet eine Ausnahme wenn nebenläufige "
+"Modifikationen aufgespürt werden. Dem Entwickler bleibt das Auffinden und "
+"Bearbeiten dieser Ausnahme überlassen (gängige Optionen sind die Möglichkeit "
+"des Benutzers, Veränderungen zu mischen oder die Business-Konversation mit "
+"nicht veralteten Daten erneut zu starten)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Session</literal> is disconnected from any underlying JDBC "
+"connection when waiting for user interaction. This approach is the most "
+"efficient in terms of database access. The application does not version "
+"check or reattach detached instances, nor does it have to reload instances "
+"in every database transaction."
+msgstr ""
+"Die <literal>Session</literal> wird von einer zu Grunde liegenden JDBC-"
+"Verbindung gelöst, wenn Sie auf Benutzerinteraktion wartet. Hinsichtlich des "
+"Datenbankzugriffs ist diese Vorgehensweise die effizienteste. Die Anwendung "
+"muss sich weder um Versionsprüfung oder um die Wiederanbindung abgesetzter "
+"Instanzen, noch um das erneute Laden von Instanzen in jeder "
+"Datenbanktransaktion kümmern."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>foo</literal> object knows which <literal>Session</literal> it "
+"was loaded in. Beginning a new database transaction on an old session "
+"obtains a new connection and resumes the session. Committing a database "
+"transaction disconnects a session from the JDBC connection and returns the "
+"connection to the pool. After reconnection, to force a version check on data "
+"you are not updating, you can call <literal>Session.lock()</literal> with "
+"<literal>LockMode.READ</literal> on any objects that might have been updated "
+"by another transaction. You do not need to lock any data that you "
+"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
+"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
+"last database transaction cycle is allowed to actually persist all "
+"modifications made in this conversation. Only this last database transaction "
+"will include the <literal>flush()</literal> operation, and then "
+"<literal>close()</literal> the session to end the conversation."
+msgstr ""
+"Das <literal>foo</literal>-Objekt weià nach wie vor in welcher "
+"<literal>Session</literal> es geladen wurde. Beim Start einer neuen "
+"Datenbanktransaktion an einer alten Session wird eine neue Verbindung "
+"aufgebaut und die Session fortgesetzt. Das Festschreiben einer "
+"Datenbanktransaktion löst die Verbindung einer Session von der JDBC-"
+"Verbindung und sendet die Verbindung zurück an den Pool. Nach der erneuten "
+"Verbindung können Sie eine Versionsprüfung an nicht zu aktualisierenden "
+"Daten vornehmen, indem Sie <literal>Session.lock()</literal> mit "
+"<literal>LockMode.READ</literal> an sämtlichen Objekten aufrufen, die durch "
+"eine andere Transaktion hätten aktualisiert werden können. Sie müssen keine "
+"Daten sperren, die aktualisiert <emphasis>werden</emphasis>. Normalerweise "
+"würden Sie <literal>FlushMode.NEVER</literal> an einer erweiterten "
+"<literal>Session</literal> einstellen, damit nur der letzte Zyklus der "
+"Datenbanktransaktion sämtliche in der Konversation vorgenommene "
+"Modifikationen persistieren kann. Daher würde nur die letzte "
+"Datenbanktransaktion den <literal>flush()</literal>-Vorgang beinhalten und "
+"würde auch durch SchlieÃen der Session mittels <literal>close()</literal> "
+"die Konversation beenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This pattern is problematic if the <literal>Session</literal> is too big to "
+"be stored during user think time (for example, an <literal>HttpSession</"
+"literal> should be kept as small as possible). As the <literal>Session</"
+"literal> is also the first-level cache and contains all loaded objects, we "
+"can probably use this strategy only for a few request/response cycles. Use a "
+"<literal>Session</literal> only for a single conversation as it will soon "
+"have stale data."
+msgstr ""
+"Dieses Muster ist problematisch, wenn die <literal>Session</literal> zu groà "
+"ist, um während der Benutzer \"Think Time\" gespeichert zu werden; eine "
+"<literal>HttpSession</literal> etwa sollte so klein wie möglich gehalten "
+"werden. Da die <literal>Session</literal> auch der (obligatorische) "
+"Cachespeicher der ersten Ebene ist und sämtliche geladenen Objekte enthält, "
+"kann diese Strategie wahrscheinlich nur für ein paar Anfragen/Antworten-"
+"Zyklen verwendet werden. Sie sollten eine <literal>Session</literal> nur für "
+"eine einzelne Konversation verwenden, da diese recht bald veraltete Daten "
+"enthält."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Earlier versions of Hibernate required explicit disconnection and "
+"reconnection of a <literal>Session</literal>. These methods are deprecated, "
+"as beginning and ending a transaction has the same effect."
+msgstr ""
+"(Beachten Sie, dass frühere Versionen von Hibernate die explizite "
+"Verbindungsunterbrechung und erneute Verbindung einer <literal>Session</"
+"literal> erforderten. Diese Methoden wurden verworfen, da das Starten und "
+"Beenden einer Transaktion diesselbe Wirkung hat)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Keep the disconnected <literal>Session</literal> close to the persistence "
+"layer. Use an EJB stateful session bean to hold the <literal>Session</"
+"literal> in a three-tier environment. Do not transfer it to the web layer, "
+"or even serialize it to a separate tier, to store it in the "
+"<literal>HttpSession</literal>."
+msgstr ""
+"Sie sollten auÃerdem darauf achten, dass die unterbrochene <literal>Session</"
+"literal> nahe der Persistenschicht verbleibt. Mit anderen Worten, verwenden "
+"Sie ein EJB-\"Stateful-Session-Bean\", um die <literal>Session</literal> in "
+"einer Three-Tier-Umgebung zu halten und diese nicht in die Webschicht zu "
+"transferieren (oder sogar zu einem separaten Tier zu serialisieren) und in "
+"der <literal>HttpSession</literal> zu speichern."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The extended session pattern, or <emphasis>session-per-conversation</"
+"emphasis>, is more difficult to implement with automatic current session "
+"context management. You need to supply your own implementation of the "
+"<literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki "
+"for examples."
+msgstr ""
+"Das erweiterte Session-Muster oder <emphasis>Session-per-Konversation</"
+"emphasis> ist schwieriger mit automatischem Kontextmanagement der aktuellen "
+"Session zu implementieren. Sie müssen Ihre eigene Implementierung des "
+"<literal>CurrentSessionContext</literal> dafür bereitstellen, Beispiele "
+"finden Sie im Hibernate Wiki."
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr "Abgesetzte Objekte und automatische Versionierung"
+
+#. 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 ""
+"Jede Interaktion mit dem persistenten Speicher geschieht in einer neuen "
+"<literal>Session</literal>. Allerdings werden dieselben persistenten "
+"Instanzen für jede Interaktion mit der Datenbank wiederverwendet. Die "
+"Anwendung manipuliert den Status der abgesetzten Instanzen, die ursprünglich "
+"in einer anderen <literal>Session</literal> geladen wurden und fügt diese "
+"mittels <literal>Session.update()</literal>, <literal>Session.saveOrUpdate()"
+"</literal> oder <literal>Session.merge()</literal> erneut hinzu."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Again, Hibernate will check instance versions during flush, throwing an "
+"exception if conflicting updates occurred."
+msgstr ""
+"Auch hier prüft Hibernate die Versionen der Instanz während der Räumung und "
+"meldet eine Ausnahme, wenn widersprüchlich Aktualisierungen erfolgt sind."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also call <literal>lock()</literal> instead of <literal>update()</"
+"literal>, and use <literal>LockMode.READ</literal> (performing a version "
+"check and bypassing all caches) if you are sure that the object has not been "
+"modified."
+msgstr ""
+"Sie können auch <literal>lock()</literal> statt <literal>update()</literal> "
+"aufrufen und <literal>LockMode.READ</literal> verwenden (unter Umgehung "
+"aller Caches eine Versionsprüfung durchführend) falls Sie sicher sind, dass "
+"keine Ãnderungen am Objekt vorgenommen wurden."
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr "Anpassung der automatischen Versionierung "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can disable Hibernate's automatic version increment for particular "
+"properties and collections by setting the <literal>optimistic-lock</literal> "
+"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
+"increment versions if the property is dirty."
+msgstr ""
+"Sie können Hibernates automatische Versionserhöhung für bestimmte Properties "
+"und Collections deaktivieren, indem Sie das <literal>optimistic-lock</"
+"literal>-Mapping-Attribut auf <literal>false</literal> setzen. Hibernate "
+"wird dann selbst bei einem Zugriff auf die Property die Versionsnummer nicht "
+"mehr erhöhen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Legacy database schemas are often static and cannot be modified. Or, other "
+"applications might access the same database and will not know how to handle "
+"version numbers or even timestamps. In both cases, versioning cannot rely on "
+"a particular column in a table. To force a version check with a comparison "
+"of the state of all fields in a row but without a version or timestamp "
+"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal><class></literal> mapping. This conceptually only works if "
+"Hibernate can compare the old and the new state (i.e., if you use a single "
+"long <literal>Session</literal> and not session-per-request-with-detached-"
+"objects)."
+msgstr ""
+"Datenbankschemas von Stammdaten sind oftmals statisch und können nicht "
+"verändert werden. Oder andere Anwendungen könnten auf dieselbe Datenbank "
+"zugreifen und nicht wissen wie mit Versionsnummern und Zeitstempeln "
+"umzugehen ist. In beiden Fällen kann sich die Versionierung nicht auf eine "
+"bestimmte Tabellenspalte stützen. Um eine Versionsprüfung ohne Mapping der "
+"Versions- oder Zeitstempel-Property zu erzwingen und einen Statusvergleich "
+"sämtlicher Felder einer Reihe zu erhalten, stellen Sie <literal>optimistic-"
+"lock=\"all\"</literal> im <literal><class></literal>-Mapping ein. "
+"Bitte beachten Sie, dass dies nur funktioniert, wenn Hibernate den alten und "
+"neuen Status vergleichen kann, d.h. wenn Sie eine einzelne, lange "
+"<literal>Session</literal> und nicht Session-pro-Anfrage-mit-abgesetzten-"
+"Objekten (\"session-per-request-with-detached-objects\") verwenden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Concurrent modification can be permitted in instances where the changes that "
+"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
+"\"</literal> when mapping the <literal><class></literal>, Hibernate "
+"will only compare dirty fields during flush."
+msgstr ""
+"Manchmal kann eine gleichzeitige Modifikation gestattet werden, so lange die "
+"vorgenommenen Ãnderungen sich nicht überschneiden. Wenn Sie "
+"<literal>optimistic-lock=\"dirty\"</literal> beim Mappen der <literal><"
+"class></literal> einstellen, so wird Hibernate zum Zeitpunkt der Räumung "
+"nur Felder vergleichen, auf die zugegriffen wurde."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with a full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate may execute unnecessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal><class></literal> mapping, forcing Hibernate "
+"to <literal>SELECT</literal> the instance to ensure that changes did occur "
+"before updating the row."
+msgstr ""
+"In beiden Fällen, also mit erklärten Versions-/Zeitstempelspalten oder mit "
+"\"full/dirty\"-Feldvergleich, verwendet Hibernate eine einzelne "
+"<literal>UPDATE</literal>-Anweisung (mit entsprechender <literal>WHERE</"
+"literal>-Klausel) pro Entity, die die Versionsprüfung ausführen und die "
+"Informationen aktualisieren soll. Falls Sie transitive Persistenz anwenden, "
+"um die Wiederanbindung an assoziierte Entities weiterzugeben, ist es "
+"möglich, dass Hibernate unnötige Aktualisierungen durchführt. In der Regel "
+"ist das kein Problem, aber <emphasis>\"On-Update\"</emphasis>-Trigger in der "
+"Datenbank könnten ausgeführt werden, selbst wenn keine Ãnderungen an den "
+"abgesetzten Instanzen vorgenommen wurden. Sie können dieses Verhalten "
+"anpassen, indem Sie <literal>select-before-update=\"true\"</literal> im "
+"<literal><class></literal>-Mapping einstellen, so dass Hibernate "
+"<literal>SELECT</literal> für die Instanz einsetzen muss, damit "
+"sichergestellt wird, dass tatsächlich Ãnderungen vorgenommen wurden ehe die "
+"Reihe aktualisiert wird."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Pessimistic locking"
+msgstr "Pessimistisches Sperren"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is not intended that users spend much time worrying about locking "
+"strategies. It is usually enough to specify an isolation level for the JDBC "
+"connections and then simply let the database do all the work. However, "
+"advanced users may wish to obtain exclusive pessimistic locks or re-obtain "
+"locks at the start of a new transaction."
+msgstr ""
+"Der Benutzer sollte sich nicht viele Gedanken um Sperrstrategien machen "
+"müssen. In der Regel reicht es aus, eine Isolationsebene für die JDBC-"
+"Verbindungen zu bestimmen und dann der Datenbank die restliche Arbeit zu "
+"überlassen. Erfahrene Benutzer möchten manchmal exklusive pessimistische "
+"Sperren haben oder Sperren zu Beginn einer neuen Transaktion erneut erhalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will always use the locking mechanism of the database; it never "
+"lock objects in memory."
+msgstr ""
+"Hibernate wird stets den Sperrmechanismus der Datenbank verwenden und "
+"niemals Objekte im Speicher sperren!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>LockMode</literal> class defines the different lock levels that "
+"can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr ""
+"Die <literal>LockMode</literal>-Klasse definiert die unterschiedlichen "
+"Sperrebenen, die Hibernate erlangen kann. Eine Sperre wird durch die "
+"folgenden Mechanismen erlangt:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"<literal>LockMode.WRITE</literal> wird automatisch erlangt, wenn Hibernate "
+"eine Reihe aktualisiert oder einfügt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
+"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
+"support that syntax."
+msgstr ""
+"<literal>LockMode.UPGRADE</literal> wird durch explizite Benutzeranfrage "
+"mittels Verwendung von <literal>SELECT ... FOR UPDATE</literal> bei diese "
+"Syntax unterstützenden Datenbanken erhalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
+"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
+"Oracle."
+msgstr ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> wird durch explizite "
+"Benutzeranfrage mittels Verwendung von <literal>SELECT ... FOR UPDATE "
+"NOWAIT</literal> in Oracle erhalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
+"reads data under Repeatable Read or Serializable isolation level. It can be "
+"re-acquired by explicit user request."
+msgstr ""
+"<literal>LockMode.READ</literal> erfolgt automatisch, wenn Hibernate Daten "
+"unter \"Repeatable Read\" oder \"Serializable\" Isolationsebene liest. Kann "
+"durch explizite Benutzeranfrage erneut erhalten werden."
+
+#. 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> repräsentiert das Fehlen einer Sperre. Alle "
+"Objekte wechseln am Ende einer <literal>Transaction</literal> in diesen "
+"Sperrmodus. Objekte, die durch Aufruf von <literal>update()</literal> oder "
+"<literal>saveOrUpdate()</literal> der Session zugeordnet werden, starten "
+"ebenfalls in diesem Sperrmodus."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The \"explicit user request\" is expressed in one of the following ways:"
+msgstr ""
+"Die \"explizite Benutzeranfrage\" wird auf eine der folgenden Arten "
+"ausgedrückt:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
+"literal>."
+msgstr ""
+"Ein Aufruf an <literal>Session.load()</literal>, der einen "
+"<literal>LockMode</literal> bestimmt."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr "Ein Aufruf an <literal>Session.lock()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr "Ein Aufruf an <literal>Query.setLockMode()</literal>."
+
+#. 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 ""
+"Falls <literal>Session.load()</literal> mit <literal>UPGRADE</literal> oder "
+"<literal>UPGRADE_NOWAIT</literal> aufgerufen wird und das angefragte Objekt "
+"bis jetzt noch nicht durch die Session geladen wurde, so wird das Objekt "
+"unter Verwendung von <literal>SELECT ... FOR UPDATE</literal> geladen. Falls "
+"<literal>load()</literal> für ein bereits mit weniger restriktiver Sperre "
+"geladenes Objekt als das angefragte aufgerufen wird, so ruft Hibernate "
+"<literal>lock()</literal> für das Objekt auf."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Session.lock()</literal> performs a version number check if the "
+"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
+"or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</"
+"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
+"UPDATE</literal> is used."
+msgstr ""
+"<literal>Session.lock()</literal> führt eine Versionsnummernprüfung durch, "
+"falls der spezifizierte Sperrmodus <literal>READ</literal>, "
+"<literal>UPGRADE</literal> oder <literal>UPGRADE_NOWAIT</literal> lautet. "
+"(Im Fall von <literal>UPGRADE</literal> oder <literal>UPGRADE_NOWAIT</"
+"literal> wird <literal>SELECT ... FOR UPDATE</literal> verwendet)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the requested lock mode is not supported by the database, Hibernate uses "
+"an appropriate alternate mode instead of throwing an exception. This ensures "
+"that applications are portable."
+msgstr ""
+"Falls die Datenbank den gewünschten Sperrmodus nicht unterstützt, verwendet "
+"Hibernate einen entsprechenden Alternativmodus (statt eine Ausnahme zu "
+"melden). Dadurch wird gewährleistet, dass Anwendungen übertragbar sind."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Connection release modes"
+msgstr "Die Modi der Verbindungsfreigabe"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One of the legacies of Hibernate 2.x JDBC connection management meant that a "
+"<literal>Session</literal> would obtain a connection when it was first "
+"required and then maintain that connection until the session was closed. "
+"Hibernate 3.x introduced the notion of connection release modes that would "
+"instruct a session how to handle its JDBC connections. The following "
+"discussion is pertinent only to connections provided through a configured "
+"<literal>ConnectionProvider</literal>. User-supplied connections are outside "
+"the breadth of this discussion. The different release modes are identified "
+"by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</"
+"literal>:"
+msgstr ""
+"Das Legacy (2.x) Verhalten von Hibernate hinsichtlich der Verwaltung von "
+"JDBC-Verbindungen war, dass eine <literal>Session</literal> eine Verbindung "
+"dann erhalten würde, wenn diese das erste Mal gebraucht wurde und diese "
+"Verbindung dann bis zur SchlieÃung der Session gehalten wurde. Mit Hibernate "
+"3.x wurde der Begriff von Verbindungsfreigabe-Modi eingeführt, durch die "
+"einer Session mitgeteilt wird, wie ihre JDBC-Verbindungen zu handhaben sind. "
+"Bitte beachten Sie, dass die folgende Erörterung sich nur auf Verbindungen "
+"bezieht, die mittels <literal>ConnectionProvider</literal> konfiguriert "
+"sind; durch den Benutzer bereitgestellte Verbindungen liegen auÃerhalb der "
+"hier erläuterten Thematik. Die unterschiedlichen Freigabe-Modi werden durch "
+"die aufgezählten Werte von <literal>org.hibernate.ConnectionReleaseMode</"
+"literal> identifiziert:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
+"Hibernate session obtains a connection when it first needs to perform some "
+"JDBC access and maintains that connection until the session is closed."
+msgstr ""
+"<literal>ON_CLOSE</literal> - ist im Wesentlichen das oben beschriebene "
+"Legacy-Verhalten. Die Hibernate Session erhält eine Verbindung, wenn sie "
+"erstmals einen JDBC-Zugriff durchführen muss und hält diese Verbindung bis "
+"zur SchlieÃung der Session."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_TRANSACTION</literal>: releases connections after a "
+"<literal>org.hibernate.Transaction</literal> has been completed."
+msgstr ""
+"<literal>AFTER_TRANSACTION</literal> - teilt mit, dass Verbindungen nach "
+"Beendigung einer <literal>org.hibernate.Transaction</literal> freigegeben "
+"werden sollen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
+"releases connections after every statement execution. This aggressive "
+"releasing is skipped if that statement leaves open resources associated with "
+"the given session. Currently the only situation where this occurs is through "
+"the use of <literal>org.hibernate.ScrollableResults</literal>."
+msgstr ""
+"<literal>AFTER_STATEMENT</literal> (auch als \"aggressive release\" oder "
+"aggressive Freigabe bekannt) - teilt mit, dass Verbindungen nach Ausführung "
+"jeder einzelnen Anweisung freigegeben werden sollen. Diese Art der "
+"aggressiven Freigabe wird übersprungen, wenn die Anweisung offene Ressourcen "
+"zurücklässt, die mit der gegebenen Session assoziiert werden; momentan ist "
+"der einzige Fall, bei dem dies eintritt, mittels Verwendung von <literal>org."
+"hibernate.ScrollableResults</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The configuration parameter <literal>hibernate.connection.release_mode</"
+"literal> is used to specify which release mode to use. The possible values "
+"are as follows:"
+msgstr ""
+"Der Konfigurationsparameter <literal>hibernate.connection.release_mode</"
+"literal> bestimmt, welcher Freigabemodus verwendet werden soll. Folgende "
+"Werte sind möglich:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>auto</literal> (the default): this choice delegates to the release "
+"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
+"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
+"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
+"this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this "
+"default behavior as failures due to the value of this setting tend to "
+"indicate bugs and/or invalid assumptions in user code."
+msgstr ""
+"<literal>auto</literal> (Standard) - diese Auswahl delegiert zum "
+"Freigabemodus der durch die <literal>org.hibernate.transaction."
+"TransactionFactory.getDefaultReleaseMode()</literal>-Methode erhalten wird. "
+"Für JTATransactionFactory erhält man ConnectionReleaseMode.AFTER_STATEMENT; "
+"für JDBCTransactionFactory, erhält man ConnectionReleaseMode."
+"AFTER_TRANSACTION. Es ist nur in seltenen Fällen sinnvoll, dieses "
+"Standardverhalten zu ändern, da Fehler aufgrund des Wertes dieser "
+"Einstellung in der Regel Bugs und/oder ungültige Annahmen im Benutzercode "
+"anzeigen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
+"setting is left for backwards compatibility, but its use is discouraged."
+msgstr ""
+"<literal>on_close</literal> - setzt ConnectionReleaseMode.ON_CLOSE. Diese "
+"Einstellung wird zur rückwärtigen Kompatibilität verwendet, wird jedoch "
+"nicht empfohlen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>after_transaction</literal>: uses ConnectionReleaseMode."
+"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
+"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
+"considered to be in auto-commit mode, connections will be released as if the "
+"release mode were AFTER_STATEMENT."
+msgstr ""
+"<literal>after_transaction</literal> - setzt ConnectionReleaseMode."
+"AFTER_TRANSACTION. Diese Einstellung sollte nicht in JTA-Umgebungen "
+"verwendet werden. Beachten Sie auch, dass bei ConnectionReleaseMode."
+"AFTER_TRANSACTION, für eine als im Auto-Festschreibungsmodus befindlich "
+"angesehene Session Verbindungen freigegeben werden als ob der Freigabemodus "
+"AFTER_STATEMENT lauten würde."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>after_statement</literal>: uses ConnectionReleaseMode."
+"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
+"literal> is consulted to see if it supports this setting "
+"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
+"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
+"safe in environments where we can either re-acquire the same underlying JDBC "
+"connection each time you make a call into <literal>ConnectionProvider."
+"getConnection()</literal> or in auto-commit environments where it does not "
+"matter if we re-establish the same connection."
+msgstr ""
+"<literal>after_statement</literal> - setzt die Verwendung von "
+"ConnectionReleaseMode.AFTER_STATEMENT. AuÃerdem wird der konfigurierte "
+"<literal>ConnectionProvider</literal> abgefragt, um zu sehen ob diese "
+"Einstellung unterstützt wird (<literal>supportsAggressiveRelease()</"
+"literal>). Falls nicht, wird der Freigabemodus auf ConnectionReleaseMode."
+"AFTER_TRANSACTION zurückgesetzt. Diese Einstellung ist nur in Umgebungen "
+"sicher, in denen bei jedem Aufruf an den <literal>ConnectionProvider."
+"getConnection()</literal> auf dieselbe zu Grunde liegende JDBC-Verbindung "
+"zurückgegriffen werden kann oder in Auto-Festschreibungsumgebungen, bei "
+"denen es irrelevant ist, ob wir dieselbe Verbindung wieder erhalten."
+
+#~ msgid "foo==bar"
+#~ msgstr "foo==bar"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ..."
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/tutorial.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/tutorial.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/tutorial.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,3147 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The distribution contains another example application under the "
+"<filename>tutorial/eg</filename> project source directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr "Teil 1 - Die erste Hibernate Anwendung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For this example, we will set up a small database application that can store "
+"events we want to attend and information about the host(s) of these events."
+msgstr ""
+"Nehmen wir etwa an, wir bräuchten eine kleine Datenbank-Anwendung zur "
+"Speicherung von Veranstaltungen, an denen wir teilnehmen wollen sowie "
+"Informationen zu deren Organisatoren."
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is not a requirement to use Maven. If you wish to use something else to "
+"build this tutoial (such as Ant), the layout will remain the same. The only "
+"change is that you will need to manually account for all the needed "
+"dependencies. If you use something like <ulink url=\"http://ant.apache.org/"
+"ivy/\">Ivy</ulink> providing transitive dependency management you would "
+"still use the dependencies mentioned below. Otherwise, you'd need to grab "
+"<emphasis>all</emphasis> dependencies, both explicit and transitive, and add "
+"them to the project's classpath. If working from the Hibernate distribution "
+"bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts "
+"in the <filename>lib/required</filename> directory and all files from either "
+"the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/"
+"javassist</filename> directory; additionally you will need both the servlet-"
+"api jar and one of the slf4j logging backends."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr "Die erste Klasse"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next, we create a class that represents the event we want to store in the "
+"database; it is a simple JavaBean class with some properties:"
+msgstr ""
+"AnschlieÃend erstellen wir eine Klasse, die die Veranstaltung repräsentiert, "
+"die in der Datenbank gespeichert werden soll."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This class uses standard JavaBean naming conventions for property getter and "
+"setter methods, as well as private visibility for the fields. Although this "
+"is the recommended design, it is not required. Hibernate can also access "
+"fields directly, the benefit of accessor methods is robustness for "
+"refactoring."
+msgstr ""
+"Sie sehen, dass diese Klasse standardmäÃige JavaBean Namenskonventionen für "
+"Getter- und Setter-Methoden der Property sowie eigene Sichtbarkeit für die "
+"Felder verwendet. Dieses ist der empfohlene - nicht aber der vorgeschriebene "
+"- Entwurf. Hibernate kann auch direkt auf Felder zugreifen, wobei der "
+"Vorteil dieser Zugriffsmethoden in der Stabilität bei der Steigerung der "
+"Bedienerfreundlichkeit liegt. Der \"No-Argument\"-Konstruktor (d.h. der "
+"Konstruktor ohne Parameter) wird benötigt, um ein Objekt dieser Klasse durch "
+"Reflexion zu instanziieren."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>id</literal> property holds a unique identifier value for a "
+"particular event. All persistent entity classes (there are less important "
+"dependent classes as well) will need such an identifier property if we want "
+"to use the full feature set of Hibernate. In fact, most applications, "
+"especially web applications, need to distinguish objects by identifier, so "
+"you should consider this a feature rather than a limitation. However, we "
+"usually do not manipulate the identity of an object, hence the setter method "
+"should be private. Only Hibernate will assign identifiers when an object is "
+"saved. Hibernate can access public, private, and protected accessor methods, "
+"as well as public, private and protected fields directly. The choice is up "
+"to you and you can match it to fit your application design."
+msgstr ""
+"Die <literal>id</literal>-Property enthält einen eindeutigen \"Identifier\"-"
+"Wert (Bezeichnerwert) für eine bestimmte Veranstaltung. Alle persistenten "
+"Entity-Klassen (es existieren auÃerdem weniger wichtige abhängige Klassen) "
+"werden eine solche Bezeichner-Property benötigen, falls Sie sämtliche "
+"Features von Hibernate verwenden möchten. Die meisten Applikationen (und "
+"insbesondere Webanwendungen) müssen Objekte mittels Bezeichner "
+"unterscheiden, daher sollten Sie dies eher als zusätzliches Feature und "
+"nicht als Einschränkung ansehen. Allerdings wird die Identität eines Objekts "
+"in der Regel nicht verändert, weswegen die \"Setter\"-Methode nicht "
+"öffentlich sein sollte. AusschlieÃlich Hibernate wird bei der Speicherung "
+"eines Objekts Bezeichner zuweisen. Sie sehen also, dass Hibernate "
+"öffentliche, nicht-öffentliche und geschützte Zugriffsmethoden aufrufen "
+"kann. Die Entscheidung liegt ganz bei Ihnen, und Sie können die Wahl Ihren "
+"persönlichen Bedürfnissen anpassen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The no-argument constructor is a requirement for all persistent classes; "
+"Hibernate has to create objects for you, using Java Reflection. The "
+"constructor can be private, however package or public visibility is required "
+"for runtime proxy generation and efficient data retrieval without bytecode "
+"instrumentation."
+msgstr ""
+"Der \"No-Argument\"-Konstruktor (d.h. der Konstruktor ohne Parameter) ist "
+"eine Voraussetzung für alle persistenten Klassen. Hibernate erstellt unter "
+"Verwendung von Java Reflection diese Objekte für Sie. Der Konstruktor kann "
+"nicht-öffentlich sein, jedoch werden bei der Proxy-Generierung zur Runtime "
+"Sichtbarkeit der Pakete sowie effizienter Datenabruf ohne Bytecode-"
+"Instrumentierung benötigt."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr "Die Mapping-Datei"
+
+#. 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 muss darüber informiert werden, wie Objekte der persistenten "
+"Klasse geladen und gespeichert werden sollen. Hier wird die \"Mapping\"-"
+"Datei von Hibernate benötigt. Diese Datei informiert Hibernate darüber, auf "
+"welche Tabelle in der Datenbank zugegriffen werden soll und welche Spalten "
+"dieser Tabelle verwendet werden sollen."
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr "Die Grundstruktur einer Mapping-Datei sieht wie folgt aus:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate DTD is sophisticated. You can use it for auto-completion of XML "
+"mapping elements and attributes in your editor or IDE. Opening up the DTD "
+"file in your text editor is the easiest way to get an overview of all "
+"elements and attributes, and to view the defaults, as well as some comments. "
+"Hibernate will not load the DTD file from the web, but first look it up from "
+"the classpath of the application. The DTD file is included in "
+"<filename>hibernate-core.jar</filename> (it is also included in the "
+"<filename>hibernate3.jar</filename>, if using the distribution bundle)."
+msgstr ""
+"Bitte beachten Sie, dass Hibernate DTD technisch sehr ausgefeilt ist. Sie "
+"können es für Auto-Vervollständigung von XML-Mapping-Elementen und "
+"Attributen in Ihrem Editor oder IDE verwenden. Sie sollte die DTD-Datei in "
+"Ihrem Text-Editor öffnen - es ist die bequemste Art einen Ãberblick über "
+"alle Elemente und Attribute zu bekommen und die Standardeinstellungen sowie "
+"einige Kommentare zu sehen. Bitte beachten Sie, dass Hibernate die DTD-Datei "
+"nicht aus dem Web lädt, sondern sie vom Klassenpfad der Anwendung aufsucht. "
+"Die DTD-Datei ist im <literal>hibernate3.jar</literal> sowie im <literal>src/"
+"</literal>-Verzeichnis der Hibernate-Distribution enthalten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will omit the DTD declaration in future examples to shorten the code. It "
+"is, of course, not optional."
+msgstr ""
+"In zukünftigen Beispielen werden wir die DTD-Deklaration weglassen, um den "
+"Code zu verkürzen. Natürlich ist dies nicht optional."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Between the two <literal>hibernate-mapping</literal> tags, include a "
+"<literal>class</literal> element. All persistent entity classes (again, "
+"there might be dependent classes later on, which are not first-class "
+"entities) need a mapping to a table in the SQL database:"
+msgstr ""
+"Zwischen den beiden <literal>hibernate-mapping</literal>-Tags fügen Sie ein "
+"<literal>class</literal>-Element ein. Alle persistenten Entity-Klassen "
+"(wieder kann es später zu abhängigen Klassen kommen, die keine Entities der "
+"ersten Klasse sind) benötigen ein solches Mapping zu einer Tabelle in der "
+"SQL-Datenbank:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"So far we have told Hibernate how to persist and load object of class "
+"<literal>Event</literal> to the table <literal>EVENTS</literal>. Each "
+"instance is now represented by a row in that table. Now we can continue by "
+"mapping the unique identifier property to the tables primary key. As we do "
+"not want to care about handling this identifier, we configure Hibernate's "
+"identifier generation strategy for a surrogate primary key column:"
+msgstr ""
+"Mit den bisherigen Schritten haben wir Hibernate darüber informiert, wie ein "
+"Objekt der Klasse <literal>Event</literal> in die Tabelle <literal>EVENTS</"
+"literal> persistiert und geladen werden soll, wobei jede Instanz durch eine "
+"Reihe in dieser Tabelle repräsentiert wird. Wir fahren nun mit einem Mapping "
+"der eindeutigen Identifier-Property zum primären Kernbegriff (\"Primary Key"
+"\") der Tabelle fort. Damit wir uns in Zukunft nicht weiter um diesen "
+"Identifier kümmern müssen, konfigurieren wir auÃerdem die Identifier-"
+"Generierungsstrategie von Hibernate für eine Ersatzspalte des primären "
+"Kernbegriffs:"
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>native</literal> is no longer consider the best strategy in terms "
+"of portability. for further discussion, see <xref linkend=\"portability-idgen"
+"\" />"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Lastly, we need to tell Hibernate about the remaining entity class "
+"properties. By default, no properties of the class are considered persistent:"
+msgstr ""
+"Zuletzt nehmen wir Vereinbarungen für die persistenten Properties der Klasse "
+"in die Mapping-Datei auf. In der Standardeinstellung werden keine Properties "
+"der Klasse als persistent angesehen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Similar to the <literal>id</literal> element, the <literal>name</literal> "
+"attribute of the <literal>property</literal> element tells Hibernate which "
+"getter and setter methods to use. In this case, Hibernate will search for "
+"<literal>getDate()</literal>, <literal>setDate()</literal>, <literal>getTitle"
+"()</literal> and <literal>setTitle()</literal> methods."
+msgstr ""
+"Genau wie das <literal>id</literal>-Element informiert auch das "
+"<literal>name</literal>-Attribut des <literal>property</literal>-Elements "
+"Hibernate darüber, welche Getter- und Setter-Methoden verwendet werden "
+"sollen. In diesem Fall wird Hibernate also nach <literal>getDate()/setDate()"
+"</literal> sowie <literal>getTitle()/setTitle()</literal> suchen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Why does the <literal>date</literal> property mapping include the "
+"<literal>column</literal> attribute, but the <literal>title</literal> does "
+"not? Without the <literal>column</literal> attribute, Hibernate by default "
+"uses the property name as the column name. This works for <literal>title</"
+"literal>, however, <literal>date</literal> is a reserved keyword in most "
+"databases so you will need to map it to a different name."
+msgstr ""
+"Warum aber enthält das <literal>date</literal> Property-Mapping "
+"das<literal>column</literal>-Attribut, <literal>title</literal> jedoch "
+"nicht? Ohne das <literal>column</literal>-Attribut verwendet Hibernate "
+"standardmäÃig den Namen der Property als Spaltennamen. Dies funktioniert gut "
+"für <literal>title</literal>. Allerdings ist <literal>date</literal> in den "
+"meisten Datenbanken ein reservierter Schlüsselbegriff, so dass es besser zu "
+"einem anderen Namen gemappt werden sollte."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>title</literal> mapping also lacks a <literal>type</literal> "
+"attribute. The types declared and used in the mapping files are not Java "
+"data types; they are not SQL database types either. These types are called "
+"<emphasis>Hibernate mapping types</emphasis>, converters which can translate "
+"from Java to SQL data types and vice versa. Again, Hibernate will try to "
+"determine the correct conversion and mapping type itself if the "
+"<literal>type</literal> attribute is not present in the mapping. In some "
+"cases this automatic detection using Reflection on the Java class might not "
+"have the default you expect or need. This is the case with the "
+"<literal>date</literal> property. Hibernate cannot know if the property, "
+"which is of <literal>java.util.Date</literal>, should map to a SQL "
+"<literal>date</literal>, <literal>timestamp</literal>, or <literal>time</"
+"literal> column. Full date and time information is preserved by mapping the "
+"property with a <literal>timestamp</literal> converter."
+msgstr ""
+"Ebenfalls interessant ist die Tatsache, dass das <literal>title</literal>-"
+"Mapping ebenfalls über kein <literal>type</literal>-Attribut verfügt. Die "
+"von uns deklarierten und in den Mapping-Dateien verwendeten Typen sind "
+"nicht, wie man vielleicht erwarten würde, Java-Datentypen. Es handelt sich "
+"auch nicht um SQL-Datenbank-Typen. Diese Typen sind so genannte <emphasis>"
+"\"Hibernate Mapping-Typen\"</emphasis>, Konverter, die von Java in SQL-"
+"Datentypen und umgekehrt übersetzen können. Auch hier wird Hibernate selbst "
+"versuchen die Datenkonvertierung zu bestimmen, falls das <literal>type</"
+"literal>-Attribut im Mapping nicht vorhanden ist. In einigen Fällen hat "
+"diese automatische Erkennung (unter Verwendung von Reflection auf der Java-"
+"Klasse) möglicherweise nicht den \"Default\"-Wert, den Sie erwarten oder "
+"benötigen. Dies ist bei der <literal>date</literal>-Property der Fall. "
+"Hibernate weià nicht, ob die Property (die von <literal>java.util.Date</"
+"literal> ist) zu einer SQL <literal>date</literal>, einer "
+"<literal>timestamp</literal> oder einer <literal>time</literal>-Spalte "
+"mappen sollte. Vollständige Informationen zu Datum und Zeit werden durch das "
+"Mapping der Property mit einem <literal>timestamp</literal>-Konverter "
+"verwahrt."
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this mapping file as <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr "Die Konfiguration von Hibernate"
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will utilize the Maven exec plugin to launch the HSQLDB server by "
+"running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
+"Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see "
+"it start up and bind to a TCP/IP socket; this is where our application will "
+"connect later. If you want to start with a fresh database during this "
+"tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</"
+"filename> directory, and start HSQLDB again."
+msgstr ""
+"Erstellen Sie ein Verzeichnis mit dem Namen <literal>data</literal> im "
+"Stammverzeichnis des Entwicklungsverzeichnisses - hier wird HSQL DB seine "
+"Datendateien speichern. Starten Sie die Datenbank, indem Sie <literal>java -"
+"classpath ../lib/hsqldb.jar org.hsqldb.Server</literal> in diesem "
+"Datenverzeichnis ausführen. Sie sehen, wie sie hochfährt und auf ein TCP/IP-"
+"Socket anspricht, an dem sich die Anwendung später verbindet. Falls Sie "
+"während dieser Anleitung mit einer frischen Datenbank starten wollen, "
+"schlieÃen Sie HSQL DB (drücken Sie <literal>CTRL + C</literal> im Fenster), "
+"löschen Sie alle Dateien im <literal>data/</literal>-Verzeichnis und starten "
+"Sie HSQL DB erneut."
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The built-in Hibernate connection pool is in no way intended for production "
+"use. It lacks several features found on any decent connection pool."
+msgstr "Hash-Tabelle (nicht für den Produktionsgebrauch vorgesehen)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For Hibernate's configuration, we can use a simple <literal>hibernate."
+"properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</"
+"literal> file, or even complete programmatic setup. Most users prefer the "
+"XML configuration file:"
+msgstr ""
+"Für die Konfiguration von Hibernate können eine einfache <literal>hibernate."
+"properties</literal>-Datei, eine etwas differenziertere <literal>hibernate."
+"cfg.xml</literal>-Datei oder sogar ein kompletter programmorientierter "
+"Aufbau verwendet werden. Die meisten Benutzer bevorzugen die XML-"
+"Konfigurationsdatei:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
+"is a global factory responsible for a particular database. If you have "
+"several databases, for easier startup you should use several <literal><"
+"session-factory></literal> configurations in several configuration files."
+msgstr ""
+"Bitte beachten Sie, dass diese XML-Konfiguration eine andere DTD "
+"(Dokumenttyp-Definition) verwendet. Wir konfigurieren Hibernates "
+"<literal>SessionFactory</literal> - eine allgemeingültige und für eine "
+"bestimmte Datenbank verantwortliche Factory. Falls Sie mehrere Datenbanken "
+"besitzen, verwenden Sie mehrere <literal><session-factory></literal> "
+"Konfigurationen, üblicherweise in mehreren Konfigurationsdateien (für die "
+"einfachere Inbetriebnahme)."
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In most cases, Hibernate is able to properly determine which dialect to use. "
+"See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate's automatic session management for persistence contexts is "
+"particularly useful in this context. The <literal>hbm2ddl.auto</literal> "
+"option turns on automatic generation of database schemas directly into the "
+"database. This can also be turned off by removing the configuration option, "
+"or redirected to a file with the help of the <literal>SchemaExport</literal> "
+"Ant task. Finally, add the mapping file(s) for persistent classes to the "
+"configuration."
+msgstr ""
+"Die ersten vier <literal>property</literal>-Elemente enthalten die nötige "
+"Konfiguration für die JDBC-Verbindung. Das Dialekt <literal>property</"
+"literal>-Element legt die bestimmte SQL-Variante fest, die Hibernate "
+"generiert. Hibernates automatisches Session-Management für Persistenz-"
+"Kontexte wird sich hier als hilfreich erweisen. Die <literal>hbm2ddl.auto</"
+"literal>-Option schaltet die automatische Generierung von Datenbankschemas "
+"ein - direkt in die Datenbank. Dies lässt sich natürlich auch ausschalten "
+"(durch Entfernen der config-Option) oder mit Hilfe der "
+"<literal>SchemaExport</literal> Ant-Aufgabe an eine Datei umleiten. Zuletzt "
+"werden die Mapping-Datei(en) für persistente Klassen der Konfiguration "
+"hinzugefügt."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>hibernate.cfg.xml</filename> into the "
+"<filename>src/main/resources</filename> directory."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Building with Maven"
+msgstr "\"Builden\" mit Ant"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr "Inbetriebnahme und Helfer"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is time to load and store some <literal>Event</literal> objects, but "
+"first you have to complete the setup with some infrastructure code. You have "
+"to startup Hibernate by building a global <interfacename>org.hibernate."
+"SessionFactory</interfacename> object and storing it somewhere for easy "
+"access in application code. A <interfacename>org.hibernate.SessionFactory</"
+"interfacename> is used to obtain <interfacename>org.hibernate.Session</"
+"interfacename> instances. A <interfacename>org.hibernate.Session</"
+"interfacename> represents a single-threaded unit of work. The "
+"<interfacename>org.hibernate.SessionFactory</interfacename> is a thread-safe "
+"global object that is instantiated once."
+msgstr ""
+"Als nächstes werden einige <literal>Event</literal>-Objekte geladen und "
+"gespeichert, jedoch muss zuerst die Konfiguration mit einigen Infrastruktur-"
+"Codes (sog. \"Infrastructure Codes\") vervollständigt werden. Wir müssen "
+"Hibernate starten. Die Inbetriebnahme beinhaltet ein allgemeingültiges "
+"<literal>SessionFactory</literal>-Objekt, das an einer Stelle gespeichert "
+"wird, auf die im Applikationscode leicht zugegriffen werden kann. Eine "
+"<literal>SessionFactory</literal> kann neue <literal>Session</literal>s "
+"öffnen. Eine <literal>Session</literal> repräsentiert eine aus einem Thread "
+"bestehende Arbeitseinheit, eine <literal>SessionFactory</literal> ist ein "
+"threadsicheres, allgemeingültiges Objekt, das einmal instanziiert ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will create a <literal>HibernateUtil</literal> helper class that takes "
+"care of startup and makes accessing the <interfacename>org.hibernate."
+"SessionFactory</interfacename> more convenient."
+msgstr ""
+"Wir erstellen eine <literal>HibernateUtil</literal>-Helferklasse, die den "
+"Startup erledigt und einen bequemen Zugriff auf eine "
+"<literal>SessionFactory</literal> ermöglicht. Werfen wir einen Blick auf die "
+"Implementierung:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
+"HibernateUtil.java</filename>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This class not only produces the global <interfacename>org.hibernate."
+"SessionFactory</interfacename> reference in its static initializer; it also "
+"hides the fact that it uses a static singleton. We might just as well have "
+"looked up the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"reference from JNDI in an application server or any other location for that "
+"matter."
+msgstr ""
+"Diese Klasse produziert nicht nur die allgemeingültige "
+"<literal>SessionFactory</literal> in ihrem statischen Initialisierer (sog. "
+"\"Initializer\" - wird beim Laden der Klasse von der JVM aufgerufen), "
+"sondern verwendet auÃerdem ein statisches Singleton. Es kann auÃerdem die "
+"<literal>SessionFactory</literal> von JNDI in einem Applikationsserver "
+"aufsuchen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you give the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"a name in your configuration, Hibernate will try to bind it to JNDI under "
+"that name after it has been built. Another, better option is to use a JMX "
+"deployment and let the JMX-capable container instantiate and bind a "
+"<literal>HibernateService</literal> to JNDI. Such advanced options are "
+"discussed later."
+msgstr ""
+"Wenn Sie <literal>SessionFactory</literal> einen Namen in Ihrer "
+"Konfigurationsdatei geben, so wird Hibernate versuchen, diese nach dem Build-"
+"Prozess an JNDI zu binden. Um diesen Code komplett zu meiden, könnten Sie "
+"JMX-Deployment verwenden und den JMX-fähigen Container instanziieren sowie "
+"<literal>HibernateService</literal> an JNDI binden. Diese erweiterten "
+"Optionen werden in der Referenz-Dokumentation von Hibernate näher erläutert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You now need to configure a logging system. Hibernate uses commons logging "
+"and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer "
+"Log4j: copy <literal>log4j.properties</literal> from the Hibernate "
+"distribution in the <literal>etc/</literal> directory to your <literal>src</"
+"literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you "
+"prefer to have more verbose output than that provided in the example "
+"configuration, you can change the settings. By default, only the Hibernate "
+"startup message is shown on stdout."
+msgstr ""
+"Dies sollte problemlos kompilieren. Nun muss noch ein Protokollierungssystem "
+"(sog. \"Logging-System\") konfiguriert werden - Hibernate verwendet "
+"\"Commons-Logging\" und überlässt Ihnen die Wahl zwischen Log4j- und JDK 1.4-"
+"Logging. Die meisten Entwickler bevorzugen Log4j: Kopieren Sie "
+"<literal>log4j.properties</literal> aus der Hibernate-Distribution (es "
+"befindet sich im <literal>etc/</literal>-Verzeichnis) in Ihr <literal>src</"
+"literal>-Verzeichnis neben <literal>hibernate.cfg.xml</literal>. Schauen Sie "
+"sich die Beispielkonfiguration an, und ändern Sie die Einstellungen, wenn "
+"Sie eine aussagekräftigere Ausgabe wünschen. In der Standardeinstellung "
+"werden nur die Hibernate Startup-Nachrichten in stdout dargesellt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The tutorial infrastructure is complete and you are now ready to do some "
+"real work with Hibernate."
+msgstr ""
+"Die Infrastruktur der Anleitung ist nun vollständig - und wir können mit der "
+"Benutzung von Hibernate beginnen."
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr "Das Laden und Speichern von Objekten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We are now ready to start doing some real worjk with Hibernate. Let's start "
+"by writing an <literal>EventManager</literal> class with a <literal>main()</"
+"literal> method:"
+msgstr ""
+"Hibernate kann zum Laden und Speichern von Objekten verwendet werden. Eine "
+"<literal>EventManager</literal>-Klasse wird mit einer <literal>main()</"
+"literal>-Methode geschrieben:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</"
+"literal> object and handed it over to Hibernate. At that point, Hibernate "
+"takes care of the SQL and executes an <literal>INSERT</literal> on the "
+"database."
+msgstr ""
+"Erstellen Sie ein neues <literal>Event</literal>-Objekt, und übergeben Sie "
+"es Hibernate. Hibernate kümmert sich nun um SQL und führt <literal>INSERT</"
+"literal>s in der Datenbank aus. Werfen wir einen Blick auf den "
+"<literal>Session</literal>- und <literal>Transaction</literal>-Handling-Code "
+"ehe wir dies starten."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <interface>org.hibernate.Session</interface> is designed to represent a "
+"single unit of work (a single atmoic piece of work to be performed). For now "
+"we will keep things simple and assume a one-to-one granularity between a "
+"Hibernate <interface>org.hibernate.Session</interface> and a database "
+"transaction. To shield our code from the actual underlying transaction "
+"system we use the Hibernate <interfacename>org.hibernate.Transaction</"
+"interfacename> API. In this particular case we are using JDBC-based "
+"transactional semantics, but it could also run with JTA."
+msgstr ""
+"Bei einer <literal>Session</literal> handelt es sich um eine einzelne "
+"Arbeitseinheit. Im Augenblick wollen wir es einfach angehen und von einer "
+"\"One-to-One\"-Granularität zwischen einer Hibernate <literal>Session</"
+"literal> und einer Datenbanktransaktion ausgehen. Um den Code vom zu Grunde "
+"liegenden Transaktionssystem abzuschirmen (in diesem Falle schlichtes JDBC, "
+"allerdings könnte auch JTA eingesetzt werden) wird das <literal>Transaction</"
+"literal>-API (die Anwenderprogrammschnittstelle) verwendet, das in der "
+"Hibernate <literal>Session</literal> verfügbar ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
+"you can call it as many times and anywhere you like once you get hold of "
+"your <interfacename>org.hibernate.SessionFactory</interfacename>. The "
+"<literal>getCurrentSession()</literal> method always returns the \"current\" "
+"unit of work. Remember that we switched the configuration option for this "
+"mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg."
+"xml</filename>? Due to that setting, the context of a current unit of work "
+"is bound to the current Java thread that executes the application."
+msgstr ""
+"Was genau macht <literal>sessionFactory.getCurrentSession()</literal>? "
+"Zunächst einmal können Sie es so oft Sie möchten aufrufen, wenn Sie Ihre "
+"<literal>SessionFactory</literal> haben (dank <literal>HibernateUtil</"
+"literal>). Die <literal>getCurrentSession()</literal>-Methode antwortet "
+"stets mit der \"aktuellen\" Arbeitseinheit. Wie Sie sich sicherlich "
+"erinnern, haben wir die Konfigurationsoption für diesen Mechanismus in der "
+"<literal>hibernate.cfg.xml</literal> auf \"Thread\" umgestellt. Daher wird "
+"die aktuelle Arbeitseinheit an den aktuellen Java-Thread gebunden, der die "
+"Anwendung ausführt. Es muss jedoch noch der Gültigkeitsbereich (sog. \"Scope"
+"\") berücksichtigt werden, d.h. wann eine Arbeitseinheit beginnt und wann "
+"sie endet."
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <interface>org.hibernate.Session</interface> begins when the first call to "
+"<literal>getCurrentSession()</literal> is made for the current thread. It is "
+"then bound by Hibernate to the current thread. When the transaction ends, "
+"either through commit or rollback, Hibernate automatically unbinds the "
+"<interface>org.hibernate.Session</interface> from the thread and closes it "
+"for you. If you call <literal>getCurrentSession()</literal> again, you get a "
+"new <interface>org.hibernate.Session</interface> and can start a new unit of "
+"work."
+msgstr ""
+"Eine <literal>Session</literal> beginnt, wenn sie erstmals gebraucht wird, "
+"wenn der erste Aufruf an <literal>getCurrentSession()</literal> erfolgt. Sie "
+"wird dann durch Hibernate an den aktuellen Thread gebunden. Wenn die "
+"Transaktion endet - sei es durch festschreiben oder zurücksetzen - löst "
+"Hibernate automatisch die <literal>Session</literal> vom Thread und schlieÃt "
+"diese für Sie. Wenn Sie <literal>getCurrentSession()</literal> erneut "
+"aufrufen, so erhalten Sie eine neue <literal>Session</literal> und können "
+"mit einer neuen Arbeitseinheit beginnen. Dieses <emphasis>Thread-gebundene</"
+"emphasis> Programmiermodell ist die beliebteste Art der Benutzung von "
+"Hibernate, da es eine flexible Schichtung Ihres Codes erlaubt (der "
+"Transaktionsabgrenzungscode kann vom Datenzugriffscode getrennt werden; wir "
+"gehen darauf später in dieser Anleitung ein)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Related to the unit of work scope, should the Hibernate <interface>org."
+"hibernate.Session</interface> be used to execute one or several database "
+"operations? The above example uses one <interface>org.hibernate.Session</"
+"interface> for one operation. However this is pure coincidence; the example "
+"is just not complex enough to show any other approach. The scope of a "
+"Hibernate <interface>org.hibernate.Session</interface> is flexible but you "
+"should never design your application to use a new Hibernate <interface>org."
+"hibernate.Session</interface> for <emphasis>every</emphasis> database "
+"operation. Even though it is used in the following examples, consider "
+"<emphasis>session-per-operation</emphasis> an anti-pattern. A real web "
+"application is shown later in the tutorial which will help illustrate this."
+msgstr ""
+"Sollte die Hibernate <literal>Session</literal> hinsichtlich des "
+"Gültigkeitsbereichs der Arbeitseinheit dazu verwendet werden, einen oder "
+"mehrere Datenbankvorgänge auszuführen? Das vorherige Beispiel verwendet eine "
+"<literal>Session</literal> für einen Vorgang. Das war Zufall, da das "
+"Beispiel einfach nicht komplex genug war, um eine andere Vorgehensweise "
+"darzustellen. Der Gültigkeitsbereich einer Hibernate <literal>Session</"
+"literal> ist flexibel, jedoch sollten Sie Ihre Anwendung nie so auslegen, "
+"dass eine neue Hibernate <literal>Session</literal> für <emphasis>jeden</"
+"emphasis> Datenbankvorgang verwendet wird. Selbst wenn Sie es in den "
+"nachfolgenden (einfachen) Beispielen einige Male sehen, so betrachten Sie "
+"<emphasis>Session-per-Operation</emphasis> als Negativmuster (sog. \"Anti-"
+"Pattern\"). Eine echte (Web)-Anwendung wird zu einem späteren Zeitpunkt noch "
+"gezeigt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"See <xref linkend=\"transactions\" /> for more information about transaction "
+"handling and demarcation. The previous example also skipped any error "
+"handling and rollback."
+msgstr ""
+"Auf <xref linkend=\"transactions\"/> finden Sie weitere Informationen zum "
+"Umgang mit Transaktionen und Abgrenzung (Demarkation). Auch Fehlerbehandlung "
+"und Zurücksetzen wurden im vorherigen Beispiel weggelassen."
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You should see Hibernate starting up and, depending on your configuration, "
+"lots of log output. Towards the end, the following line will be displayed:"
+msgstr ""
+"Nach der Kompilierung sollten Sie den Start von Hibernate sehen sowie - je "
+"nach der von Ihnen verwendeten Konfiguration - eine Menge an "
+"Protokollausgaben. Am Ende sehen Sie die folgende Zeile:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr ""
+"Ein Beispiel für die Ausführung einer HQL <literal>INSERT</literal>-"
+"Anweisung:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr ""
+"Als nächstes sollen auch die gespeicherten Veranstaltungen gelistet werden, "
+"daher fügen wir eine Option zur Hauptmethode hinzu:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+msgstr ""
+"Eine neue <literal>listEvents() method</literal> wird ebenfalls hinzugefügt:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here, we are using a Hibernate Query Language (HQL) query to load all "
+"existing <literal>Event</literal> objects from the database. Hibernate will "
+"generate the appropriate SQL, send it to the database and populate "
+"<literal>Event</literal> objects with the data. You can create more complex "
+"queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
+msgstr ""
+"Mittels HQL-Anfrage (\"Hibernate Query Language\") werden alle bestehenden "
+"<literal>Event</literal>-Objekte aus der Datenbank geladen. Hibernate "
+"generiert die entsprechende SQL (\"Structured Query Language\"), schickt sie "
+"an die Datenbank und füllt die <literal>Event</literal>-Objekte mit den "
+"Daten. Natürlich können mit HQL auch komplexere Anfragen erstellt werden."
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr "Teil 2 - Mapping-Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"So far we have mapped a single persistent entity class to a table in "
+"isolation. Let's expand on that a bit and add some class associations. We "
+"will add people to the application and store a list of events in which they "
+"participate."
+msgstr ""
+"Bis jetzt haben wir eine persistente Entity-Klasse zu einer Tabelle gemappt. "
+"Nachfolgend werden wir - darauf aufbauend - einige Klassen-Assoziationen "
+"hinzufügen. Zuerst fügen wir der Anwendung Personen sowie eine Liste von "
+"Veranstaltungen, an denen diese teilnehmen, hinzu."
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr "Das Mappen der Personenklasse"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr "Der erste Teil der <literal>Person</literal>-Klasse ist einfach:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
+"domain/Person.java</filename>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr ""
+"AnschlieÃend fügen Sie dann das neue Mapping der Konfiguration von Hibernate "
+"hinzu:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Create an association between these two entities. Persons can participate in "
+"events, and events have participants. The design questions you have to deal "
+"with are: directionality, multiplicity, and collection behavior."
+msgstr ""
+"Als nächstes wird eine Assoziation zwischen diesen beiden Entities erstellt. "
+"Personen können an Veranstaltungen teilnehmen, und Veranstaltungen haben "
+"Teilnehmer. Die zu klärenden Frage des Aufbaus beinhaltet die der "
+"Richtungsabhängigkeit, Multiplizität und des Collection-Verhaltens."
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr "Eine unidirektionale \"Set\"-basierte Assoziation"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By adding a collection of events to the <literal>Person</literal> class, you "
+"can easily navigate to the events for a particular person, without executing "
+"an explicit query - by calling <literal>Person#getEvents</literal>. Multi-"
+"valued associations are represented in Hibernate by one of the Java "
+"Collection Framework contracts; here we choose a <interfacename>java.util."
+"Set</interfacename> because the collection will not contain duplicate "
+"elements and the ordering is not relevant to our examples:"
+msgstr ""
+"Wir fügen der <literal>Person</literal>-Klasse eine Auswahl an "
+"Veranstaltungen hinzu. Auf diese Weise können Sie bequem zu den "
+"Veranstaltungen für eine bestimmte Person navigieren, ohne eine "
+"ausdrückliche Anfrage auszuführen - durch Aufruf von <literal>aPerson."
+"getEvents()</literal>. Wir verwenden eine Java-Collection, ein <literal>Set</"
+"literal>, weil die Collection keine doppelten Elemente enthält und die "
+"Reihenfolge für uns nicht von Bedeutung ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Before mapping this association, let's consider the other side. We could "
+"just keep this unidirectional or create another collection on the "
+"<literal>Event</literal>, if we wanted to be able to navigate it from both "
+"directions. This is not necessary, from a functional perspective. You can "
+"always execute an explicit query to retrieve the participants for a "
+"particular event. This is a design choice left to you, but what is clear "
+"from this discussion is the multiplicity of the association: \"many\" valued "
+"on both sides is called a <emphasis>many-to-many</emphasis> association. "
+"Hence, we use Hibernate's many-to-many mapping:"
+msgstr ""
+"Ehe wir diese Assoziation mappen, müssen wir uns ein paar Gedanken machen. "
+"Natürlich könnten wir das Ganze unidirektional halten. Oder wir könnten eine "
+"andere Collection im <literal>Event</literal> erstellen, wenn wir "
+"bidirektional navigieren wollen, d.h. <literal>anEvent.getParticipants()</"
+"literal>. Von einer rein funktionalen Perspektive aus betrachtet ist das "
+"nicht notwendig.Sie könnten jederzeit eine ausdrückliche Anfrage ausführen, "
+"um die Teilnehmer an einer bestimmten Veranstaltung zu ermitteln. Die Wahl "
+"liegt hier ganz bei Ihnen. Was bei dieser Frage jedoch deutlich wird, ist "
+"die Multiplizität der Assoziation: Da auf beiden Seiten \"mehr\"wertig, "
+"nennen wir dies eine <emphasis>\"Many-to-Many\"</emphasis>-Assoziation. Wir "
+"verwenden daher Hibernates \"Many-to-Many\"-Mapping:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate supports a broad range of collection mappings, a <literal>set</"
+"literal> being most common. For a many-to-many association, or <emphasis>n:"
+"m</emphasis> entity relationship, an association table is required. Each row "
+"in this table represents a link between a person and an event. The table "
+"name is decalred using the <literal>table</literal> attribute of the "
+"<literal>set</literal> element. The identifier column name in the "
+"association, for the person side, is defined with the <literal>key</literal> "
+"element, the column name for the event's side with the <literal>column</"
+"literal> attribute of the <literal>many-to-many</literal>. You also have to "
+"tell Hibernate the class of the objects in your collection (the class on the "
+"other side of the collection of references)."
+msgstr ""
+"Hibernate unterstützt alle Arten von Collection Mappings, mit <literal><"
+"set></literal> als dem gängisten. Für eine \"Many-to-Many\"-Assoziation "
+"(oder <emphasis>n:m</emphasis>-Entity-Beziehung), wird eine "
+"Assoziationstabelle benötigt. Jede Reihe dieser Tabelle repräsentiert eine "
+"Verbindung zwischen einer Person und einer Veranstaltung. Der Tabellenname "
+"ist mit dem <literal>table</literal>-Attribut des <literal>set</literal>-"
+"Elements konfiguriert. Der Identifier-Spaltenname in der Assoziation für die "
+"Personenseite ist mit dem <literal><key></literal>-Element definiert, "
+"der Spaltenname für die Veranstaltungsseite mit dem <literal>column</"
+"literal>-Attribut von <literal><many-to-many></literal>. Sie müssen "
+"Hibernate auÃerdem die Klasse der Objekte Ihrer Collection mitteilen "
+"(korrekt: die Klasse auf der anderen Seite der Verweis-Collection)."
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr "Das Datenbankschema für dieses Mapping lautet daher:"
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr "Das Bearbeiten der Assoziation"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now we will bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
+msgstr ""
+"Nun werden einige Personen und Veranstaltungen in einer neuen Methode im "
+"<literal>EventManager</literal> vereint:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After loading a <literal>Person</literal> and an <literal>Event</literal>, "
+"simply modify the collection using the normal collection methods. There is "
+"no explicit call to <literal>update()</literal> or <literal>save()</"
+"literal>; Hibernate automatically detects that the collection has been "
+"modified and needs to be updated. This is called <emphasis>automatic dirty "
+"checking</emphasis>. You can also try it by modifying the name or the date "
+"property of any of your objects. As long as they are in "
+"<emphasis>persistent</emphasis> state, that is, bound to a particular "
+"Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate "
+"monitors any changes and executes SQL in a write-behind fashion. The process "
+"of synchronizing the memory state with the database, usually only at the end "
+"of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the "
+"unit of work ends with a commit, or rollback, of the database transaction."
+msgstr ""
+"Nach dem Laden einer <literal>Person</literal> und eines <literal>Event</"
+"literal> (Veranstaltung), modifizieren Sie einfach die Collection mittels "
+"der regulären Collection-Methoden. Wie Sie sehen, existiert kein expliziter "
+"Aufruf für <literal>update()</literal> oder <literal>save()</literal>, "
+"Hibernate stellt automatisch fest, dass die Collection verändert wurde und "
+"aktualisiert werden muss. Dieser Vorgang ist unter der Bezeichnung <emphasis>"
+"\"Automatic Dirty Checking\"</emphasis> (d.h. eine automatische "
+"Modifizierungsprüfung) bekannt, und Sie können ihn auch ausprobieren, indem "
+"Sie die Property des Namens oder des Datums eines Ihrer Objekte ändern. So "
+"lange deren Status <emphasis>persistent</emphasis> ist, d.h. an eine "
+"bestimmte Hibernate <literal>Session</literal> gebunden ist (d.h. sie wurden "
+"gerade geladen oder in einer Arbeitseinheit gespeichert), überwacht "
+"Hibernate sämtliche Ãnderungen und führt SQL mittels Hinterher-Speichern "
+"(sog. \"write-behind\") aus. Der Vorgang der Synchronisation des "
+"Speicherstatus mit der Datenbank - in der Regel am Ende einer Arbeitseinheit "
+"- heiÃt <emphasis>Flushing</emphasis>. In unserem Code endet die "
+"Arbeitseinheit mit dem Festschreiben (oder Zurücksetzen) der "
+"Datenbanktransaktion, wie in der <literal>thread</literal>-"
+"Konfigurationsoption für die <literal>CurrentSessionContext</literal>-Klasse "
+"definiert."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can load person and event in different units of work. Or you can modify "
+"an object outside of a <interfacename>org.hibernate.Session</interfacename>, "
+"when it is not in persistent state (if it was persistent before, this state "
+"is called <emphasis>detached</emphasis>). You can even modify a collection "
+"when it is detached:"
+msgstr ""
+"Natürlich können Sie Person und Veranstaltung in verschiedenen "
+"Arbeitseinheiten laden oder ein Objekt auÃerhalb einer <literal>Session</"
+"literal> modifizieren, wenn es sich nicht in einem persistenten Status "
+"befindet (falls es zuvor persistent war, so nennen wir diesen Status "
+"<emphasis>\"detached\"</emphasis> d.h. abgesetzt). Sie können eine "
+"Collection sogar modifizieren, wenn diese abgesetzt ist:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The call to <literal>update</literal> makes a detached object persistent "
+"again by binding it to a new unit of work, so any modifications you made to "
+"it while detached can be saved to the database. This includes any "
+"modifications (additions/deletions) you made to a collection of that entity "
+"object."
+msgstr ""
+"Der Aufruf <literal>update</literal> macht ein abgesetztes Objekt wieder "
+"persistent, man könnte auch sagen, dass es sich an eine neue Arbeitseinheit "
+"bindet. Alle von Ihnen in abgesetztem Zustand vorgenommenen Ãnderungen "
+"können in der Datenbank gespeichert werden. Dies beinhaltet auch jegliche "
+"Modifikationen (Hinzufügungen/Löschungen), die an der Collection dieses "
+"Entity-Objekts vorgenommen wurden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is not much use in our example, but it is an important concept you can "
+"incorporate into your own application. Complete this exercise by adding a "
+"new action to the main method of the <literal>EventManager</literal> and "
+"call it from the command line. If you need the identifiers of a person and "
+"an event - the <literal>save()</literal> method returns it (you might have "
+"to modify some of the previous methods to return that identifier):"
+msgstr ""
+"Zwar hat das nicht viel mit unserer aktuellen Situation zu tun, aber es "
+"handelt sich dennoch um ein wichtiges Konzept, das Sie in Ihrer eigenen "
+"Anwendung ausführen können. Für den Moment vervollständigen Sie bitte diese "
+"Ãbung durch Hinzufügen einer neuen Aktion zur Hauptmethode des "
+"<literal>EventManager</literal>, und rufen Sie sie über die Befehlszeile "
+"auf. Falls Sie die Identifier einer Person oder einer Veranstaltung "
+"benötigen - die <literal>save()</literal>-Methode gibt diese wieder (es kann "
+"sein, dass Sie einige der vorherigen Methoden ändern müssen, damit der "
+"Identifier wiedergegeben wird):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is an example of an association between two equally important classes : "
+"two entities. As mentioned earlier, there are other classes and types in a "
+"typical model, usually \"less important\". Some you have already seen, like "
+"an <literal>int</literal> or a <classname>java.lang.String</classname>. We "
+"call these classes <emphasis>value types</emphasis>, and their instances "
+"<emphasis>depend</emphasis> on a particular entity. Instances of these types "
+"do not have their own identity, nor are they shared between entities. Two "
+"persons do not reference the same <literal>firstname</literal> object, even "
+"if they have the same first name. Value types cannot only be found in the "
+"JDK , but you can also write dependent classes yourself such as an "
+"<literal>Address</literal> or <literal>MonetaryAmount</literal> class. In "
+"fact, in a Hibernate application all JDK classes are considered value types."
+msgstr ""
+"Dies war ein Beispiel für die Assoziation zweier gleich wichtiger Klassen, "
+"zweier Entities. Wie bereits erwähnt, existieren auch andere Klassen und "
+"Typen in einem typischen Modell, normalerweise \"weniger wichtige\". Einige "
+"sind Ihnen bereits bekannt, so etwa <literal>int</literal> oder ein "
+"<literal>String</literal>. Diese Klassen sind unter der Bezeichnung "
+"<emphasis>Werttypen</emphasis> (sog. \"value types\") bekannt und ihre "
+"Instanzen sind von einer bestimmten Entity <emphasis>abhängig</emphasis>. "
+"Instanzen dieser Typen haben keine eigene Identität und werden nicht von den "
+"Entities geteilt (zwei Personen verweisen nicht auf dasselbe "
+"<literal>firstname</literal>-Objekt, selbst wenn sie denselben Vornamen "
+"besitzen). Natürlich gibt es Werttypen nicht nur im JDK (genau genommen "
+"werden in einer Hibernate Anwendung alle JDK-Klassen als Werttypen "
+"angesehen), sondern Sie können abhängige Klassen auch selbst schreiben, wie "
+"z.B. <literal>Address</literal> oder <literal>MonetaryAmount</literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also design a collection of value types. This is conceptually "
+"different from a collection of references to other entities, but looks "
+"almost the same in Java."
+msgstr ""
+"Sie können auch eine Collection von Werttypen entwerfen. Dies unterscheidet "
+"sich konzeptionell sehr von einer Collection von Referenzen zu anderen "
+"Entities, sieht aber in Java fast genauso aus."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr "Collection von Werten"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr "Das Mapping dieses <literal>Set</literal>:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The difference compared with the earlier mapping is the use of the "
+"<literal>element</literal> part which tells Hibernate that the collection "
+"does not contain references to another entity, but is rather a collection "
+"whose elements are values types, here specifically of type <literal>string</"
+"literal>. The lowercase name tells you it is a Hibernate mapping type/"
+"converter. Again the <literal>table</literal> attribute of the <literal>set</"
+"literal> element determines the table name for the collection. The "
+"<literal>key</literal> element defines the foreign-key column name in the "
+"collection table. The <literal>column</literal> attribute in the "
+"<literal>element</literal> element defines the column name where the email "
+"address values will actually be stored."
+msgstr ""
+"Der Unterschied im Vergleich zu unserem früheren Mapping ist der "
+"<literal>element</literal>-Teil, der Hibernate mitteilt, dass die Collection "
+"keine Verweise zu einer anderen Entity enthält, sondern eine Collection von "
+"Elementen des <literal>String</literal>-Typs (die Schreibweise des Namens in "
+"Kleinbuchstaben zeigt an, dass es sich um einen Mapping-Typ/Converter von "
+"Hibernate handelt). Auch hier bestimmt das <literal>table</literal>-Attribut "
+"des <literal>set</literal>-Elements den Tabellennamen für die Collection. "
+"Das <literal>key</literal>-Element definiert den Spaltennamen des "
+"Fremdschlüssels in der Collection-Tabelle. Das <literal>column</literal>-"
+"Attribut im <literal>element</literal>-Element definiert den Spaltennamen in "
+"dem die <literal>String</literal>-Werte gespeichert werden."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is the updated schema:"
+msgstr "Werfen wir einen Blick auf das aktualisierte Schema:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can see that the primary key of the collection table is in fact a "
+"composite key that uses both columns. This also implies that there cannot be "
+"duplicate email addresses per person, which is exactly the semantics we need "
+"for a set in Java."
+msgstr ""
+"Sie sehen, dass der Primärschlüssel der Collection-Tabelle ein "
+"zusammengesetzter Schlüssel (sog. \"composite key\") ist, der beide Spalten "
+"verwendet. Dies beinhaltet auÃerdem, dass keine doppelten E-Mail-Addressen "
+"pro Person existieren können, was genau die für ein Set benötigte Semantik "
+"in Java ist."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can now try to add elements to this collection, just like we did before "
+"by linking persons and events. It is the same code in Java:"
+msgstr ""
+"Sie können nun versuchen, Elemente zu dieser Collection hinzuzufügen oder "
+"dieser zu entnehmen, genau wie wir es zuvor bei der Verbindung von Personen "
+"und Veranstaltungen getan haben. In Java ist es derselbe Code:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This time we did not use a <emphasis>fetch</emphasis> query to initialize "
+"the collection. Monitor the SQL log and try to optimize this with an eager "
+"fetch."
+msgstr ""
+"Dieses Mal haben wir keine <emphasis>\"Fetch\"</emphasis>-Anfrage verwendet, "
+"um die Collection zu initialisieren. Der Aufruf an die \"Getter\"-Methode "
+"wird eine zusätzliche Auswahl auslösen, um sie zu initialisieren, damit ein "
+"Element hinzugefügt werden kann. Beobachten Sie das SQL-Protokoll und "
+"versuchen Sie es durch \"eager Fetching\" (d.h. durch zusammengefasstes "
+"Laden von Objekt und assoziierten Objekten mit Verbundoperationen) zu "
+"optimieren."
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr "Bidirektionale Assoziationen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next you will map a bi-directional association. You will make the "
+"association between person and event work from both sides in Java. The "
+"database schema does not change, so you will still have many-to-many "
+"multiplicity."
+msgstr ""
+"Als nächstes mappen wir eine bidirektionale Assoziation, so dass die "
+"Assoziation zwischen zwischen Person und Veranstaltung in Java von beiden "
+"Seiten aus funktioniert.Das Datenbankschema verändert sich natürlich nicht, "
+"die \"Many-to-Many\"-Multiziplität bleibt weiterhin bestehen. Eine "
+"relationale Datenbank ist flexibler als eine Netzwerk-Programmiersprache und "
+"benötigt keine Navigationsrichtung - Daten können auf alle möglichen Arten "
+"eingesehen und aufgerufen werden."
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"class:"
+msgstr ""
+"Zuerst wird eine Collection von Teilnehmern der <literal>Event</literal> "
+"Veranstaltungsklasse hinzugefügt:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgstr ""
+"Nun mappen Sie auch diese Seite der Assoziation in <literal>Event.hbm.xml</"
+"literal>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"These are normal <literal>set</literal> mappings in both mapping documents. "
+"Notice that the column names in <literal>key</literal> and <literal>many-to-"
+"many</literal> swap in both mapping documents. The most important addition "
+"here is the <literal>inverse=\"true\"</literal> attribute in the "
+"<literal>set</literal> element of the <literal>Event</literal>'s collection "
+"mapping."
+msgstr ""
+"Wie Sie sehen handelt es sich um normale <literal>set</literal> Mappings in "
+"beiden Mapping-Dokumenten. Beachten Sie, dass die Spaltennamen in "
+"<literal>key</literal> und <literal>many-to-many</literal> in den beiden "
+"Mapping-Dokumenten vertauscht sind. Die wichtigste Hinzufügung hier ist das "
+"<literal>inverse=\"true\"</literal>-Attribut im <literal>set</literal>-"
+"Element des Collection-Mappings des<literal>Event</literal>s."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What this means is that Hibernate should take the other side, the "
+"<literal>Person</literal> class, when it needs to find out information about "
+"the link between the two. This will be a lot easier to understand once you "
+"see how the bi-directional link between our two entities is created."
+msgstr ""
+"Dies teilt Hibernate mit, dass es die andere Seite - die <literal>Person</"
+"literal>-Klasse - bei der Suche nach der Verbindung der beiden verwenden "
+"soll. Nachdem gezeigt wurde, wie die bidirektionale Verbindung zwischen den "
+"beiden Entities erstellt wird, wird das noch verständlicher."
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr "Die Bearbeitung bidirektionaler Verbindungen"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, keep in mind that Hibernate does not affect normal Java semantics. "
+"How did we create a link between a <literal>Person</literal> and an "
+"<literal>Event</literal> in the unidirectional example? You add an instance "
+"of <literal>Event</literal> to the collection of event references, of an "
+"instance of <literal>Person</literal>. If you want to make this link bi-"
+"directional, you have to do the same on the other side by adding a "
+"<literal>Person</literal> reference to the collection in an <literal>Event</"
+"literal>. This process of \"setting the link on both sides\" is absolutely "
+"necessary with bi-directional links."
+msgstr ""
+"Zunächst sollten wir uns vergegenwärtigen, dass Hibernate keinen Einfluss "
+"auf die normale Java-Semantik hat. Erinnern wir uns, wie wir eine Verbindung "
+"zwischen einer <literal>Person</literal> und einem <literal>Event</literal> "
+"(Veranstaltung) in dem unidirektionalen Beispiel hergestellt haben: Wir "
+"haben der Collection von Veranstaltungsreferenzen einer Instanz von "
+"<literal>Person</literal> eine <literal>Event</literal>-Instanz zugefügt. "
+"Wenn wir diese Verbindung bidirektional machen wollen, so müssen wir "
+"dasselbe auf der anderen Seite tun - also eine <literal>Person</literal>-"
+"Referenz zur Collection in einem <literal>Event</literal> hinzufügen. Dieses "
+"\"Setzen der Verbindung auf beiden Seiten\" ist essentiell, und Sie sollten "
+"nie vergessen es zu tun."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Many developers program defensively and create link management methods to "
+"correctly set both sides (for example, in <literal>Person</literal>):"
+msgstr ""
+"Zahlreiche Entwickler programmieren defensiv und erstellen eine Management-"
+"Methoden Verbindung, um beide Seiten korrekt einzustellen, z.B. in "
+"<literal>Person</literal>:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The get and set methods for the collection are now protected. This allows "
+"classes in the same package and subclasses to still access the methods, but "
+"prevents everybody else from altering the collections directly. Repeat the "
+"steps for the collection on the other side."
+msgstr ""
+"Beachten Sie, dass die \"Get\" und \"Set\"-Methoden für die Collection nun "
+"geschützt sind - die Klassen desselben Pakets und Unterklassen können nach "
+"wie vor auf die Methoden zugreifen, aber (fast) niemand sonst kann direkt "
+"Eingriffe an der Collection vornehmen. Es empfiehlt sich, dasselbe mit der "
+"Collection auf der anderen Seite zu tun."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What about the <literal>inverse</literal> mapping attribute? For you, and "
+"for Java, a bi-directional link is simply a matter of setting the references "
+"on both sides correctly. Hibernate, however, does not have enough "
+"information to correctly arrange SQL <literal>INSERT</literal> and "
+"<literal>UPDATE</literal> statements (to avoid constraint violations). "
+"Making one side of the association <literal>inverse</literal> tells "
+"Hibernate to consider it a <emphasis>mirror</emphasis> of the other side. "
+"That is all that is necessary for Hibernate to resolve any issues that arise "
+"when transforming a directional navigation model to a SQL database schema. "
+"The rules are straightforward: all bi-directional associations need one side "
+"as <literal>inverse</literal>. In a one-to-many association it has to be the "
+"many-side, and in many-to-many association you can select either side."
+msgstr ""
+"Wie steht es um das <literal>inverse</literal>-Mapping-Attribut? Für Sie wie "
+"auch für Java ist eine bidirektionale Verbindung lediglich eine Sache des "
+"korrekten Setzens der Referenzen auf beiden Seiten. Hibernate hingegen "
+"verfügt nicht über genügend Informationen, um SQL <literal>INSERT</literal> "
+"und <literal>UPDATE</literal>-Anweisungen (um Coderegelverletzungen bei den "
+"Randbedingung - sog. \"Constraint Violations\" - zu vermeiden) ordnungsgemäà "
+"aufzubauen, und benötigt etwas Hilfe bei der korrekten Bearbeitung von "
+"bidirektionalen Assoziationen. Ist eine Seite der Assoziation "
+"<literal>inverse</literal> so wird sie von Hibernate ignoriert, da es diese "
+"als einen <emphasis>Spiegel</emphasis> (\"Mirror\") der anderen Seite "
+"ansieht. Das ist alles, was nötig ist, damit Hibernate alle Eventualitäten "
+"bei der Transformation eines direktionalen Navigationsmodells in ein SQL "
+"Datenbankschema erfolgreich bearbeitet. Die zu beachtenden Regeln sind "
+"unkompliziert: Alle bidirektionalen Assoziationen benötigen eine "
+"<literal>inverse</literal> Seite. In einer \"One-to-Many\"-Assoziation muss "
+"das die \"Many\"-Seite, in einer \"Many-to-Many\"-Assoziation eine der "
+"beiden Seiten sein."
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr "Teil 3 - Die EventManager-Webanwendung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A Hibernate web application uses <literal>Session</literal> and "
+"<literal>Transaction</literal> almost like a standalone application. "
+"However, some common patterns are useful. You can now write an "
+"<literal>EventManagerServlet</literal>. This servlet can list all events "
+"stored in the database, and it provides an HTML form to enter new events."
+msgstr ""
+"Eine Hibernate Webanwendung verwendet <literal>Session</literal> und "
+"<literal>Transaction</literal> beinahe wie eine selbständige Applikation. "
+"Einige Muster sind jedoch hilfreich. Wir erstellen nun ein "
+"<literal>EventManagerServlet</literal>. Dieses Servlet kann alle in der "
+"Datenbank gespeicherten Veranstaltungen auflisten und bietet ein HTML-"
+"Formular, in das neue Veranstaltungen eingetragen werden können."
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr "Das Schreiben des Grundservlets"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First we need create our basic processing servlet. Since our servlet only "
+"handles HTTP <literal>GET</literal> requests, we will only implement the "
+"<literal>doGet()</literal> method:"
+msgstr ""
+"Das Servlet bearbeitet nur HTTP <literal>GET</literal>-Anfragen, daher wird "
+"die <literal>doGet()</literal>-Methode implementiert:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/"
+"EventManagerServlet.java</filename>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The pattern applied here is called <emphasis>session-per-request</emphasis>. "
+"When a request hits the servlet, a new Hibernate <literal>Session</literal> "
+"is opened through the first call to <literal>getCurrentSession()</literal> "
+"on the <literal>SessionFactory</literal>. A database transaction is then "
+"started. All data access occurs inside a transaction irrespective of whether "
+"the data is read or written. Do not use the auto-commit mode in applications."
+msgstr ""
+"Das hier verwendete Muster heiÃt <emphasis>Session-per-Request</emphasis> "
+"(\"Session pro Anfrage\"). Wenn eine Anfrage beim Servlet eingeht, so wird "
+"eine neue Hibernate <literal>Session</literal> mit der ersten Aufruf an "
+"<literal>getCurrentSession()</literal> an der <literal>SessionFactory</"
+"literal> geöffnet. AnschlieÃend wird eine Datenbanktransaktion gestartet "
+"— jeglicher Zugriff auf Daten muss innerhalb einer Transaktion "
+"stattfinden, unabhängig davon, ob Daten gelesen oder geschrieben werden (der "
+"Auto-Commit-Modus wird in Anwendungen nicht verwendet)."
+
+#. 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 ""
+"Verwenden Sie <emphasis>keine</emphasis> neue Hibernate <literal>Session</"
+"literal> für jeden Datenbankvorgang. Verwenden Sie eine Hibernate "
+"<literal>Session</literal>, die die gesamte Anfrage umfasst. Verwenden Sie "
+"<literal>getCurrentSession()</literal>, damit diese automatisch an den "
+"aktuellen Java-Thread gebunden wird."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next, the possible actions of the request are processed and the response "
+"HTML is rendered. We will get to that part soon."
+msgstr ""
+"Als nächstes werden die möglichen Aktionen der Anfrage bearbeitet und die "
+"HTML-Antwort gerendert. Dieser Teil wird in Kürze behandelt."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the unit of work ends when processing and rendering are complete. "
+"If any problems occurred during processing or rendering, an exception will "
+"be thrown and the database transaction rolled back. This completes the "
+"<literal>session-per-request</literal> pattern. Instead of the transaction "
+"demarcation code in every servlet, you could also write a servlet filter. "
+"See the Hibernate website and Wiki for more information about this pattern "
+"called <emphasis>Open Session in View</emphasis>. You will need it as soon "
+"as you consider rendering your view in JSP, not in a servlet."
+msgstr ""
+"Die Arbeitseinheit endet schlieÃlich, wenn Bearbeitung und Rendering "
+"abgeschlossen sind. Falls es während der Bearbeitung und des Rendering zu "
+"Problemen kommt, so wird eine Ausnahme gemeldet, und die "
+"Datenbanktransaktion wird wiederholt. Das<literal>session-per-request</"
+"literal>-Muster wird so vervollständigt. Statt des Demarkationscodes in "
+"jedem Servlet können Sie auch einen Servlet-Filter schreiben. Auf der "
+"Hibernate Webseite und Wiki finden Sie weitere Informationen zu diesem "
+"Muster mit dem Namen <emphasis>Open Session in View</emphasis>— "
+"(Ansicht der geöffneten Session) - Sie brauchen es, sobald Sie das Rendern "
+"Ihrer Ansicht in JSP in Erwägung ziehen, nicht in einem Servlet."
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr "Bearbeitung und Rendering"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now you can implement the processing of the request and the rendering of the "
+"page."
+msgstr ""
+"Implementieren wir nun die Anfragenbearbeitung und das Rendern der Seite."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This coding style, with a mix of Java and HTML, would not scale in a more "
+"complex application—keep in mind that we are only illustrating basic "
+"Hibernate concepts in this tutorial. The code prints an HTML header and a "
+"footer. Inside this page, an HTML form for event entry and a list of all "
+"events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
+msgstr ""
+"Vorausgesetzt dieser Codierungsstil mit einer Mischung aus Java und HTML "
+"würde in einer komplexeren Anwendung nicht skalieren — vergessen Sie "
+"nicht, dass wir nur die grundlegenden Konzepte von Hibernate in dieser "
+"Anleitung erläutern. Der Code druckt eine HTML-Kopf- und FuÃzeile. Innerhalb "
+"dieser Seite sind ein HTML-Formular für die Veranstaltungseingabe sowie eine "
+"Liste sämtlicher Veranstaltungen in der Datenbank gedruckt. Die erste "
+"Methode ist trivial und gibt nur HTML aus."
+
+#. 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 ""
+"Die <literal>listEvents()</literal> Methode verwendet die an den aktuellen "
+"Thread gebundene Hibernate <literal>Session</literal> bei der Ausführung "
+"einer Abfrage:"
+
+#. 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 ""
+"Zuletzt wird die <literal>store</literal>-Vorgang zur "
+"<literal>createAndStoreEvent()</literal>-Methode gesendet, die ebenfalls die "
+"<literal>Session</literal> des aktuellen Threads verwendet:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The servlet is now complete. A request to the servlet will be processed in a "
+"single <literal>Session</literal> and <literal>Transaction</literal>. As "
+"earlier in the standalone application, Hibernate can automatically bind "
+"these objects to the current thread of execution. This gives you the freedom "
+"to layer your code and access the <literal>SessionFactory</literal> in any "
+"way you like. Usually you would use a more sophisticated design and move the "
+"data access code into data access objects (the DAO pattern). See the "
+"Hibernate Wiki for more examples."
+msgstr ""
+"Das Servlet ist jetzt komplett. Eine Anfrage beim Servlet wird in einer "
+"einzelnen <literal>Session</literal> und <literal>Transaction</literal> "
+"bearbeitet. Wie zuvor in der selbständigen Anwendung kann Hibernate diese "
+"Objekte automatisch an den aktuellen Ausführungsthread binden. Das gibt "
+"Ihnen die Freiheit, Ihren Code zu schichten und in beliebiger Weise auf die "
+"<literal>SessionFactory</literal> zuzugreifen. In der Regel würden Sie ein "
+"differenzierteres Design verwenden und den Datenzugriffscode in die "
+"Datenzugriffsobjekte (das DAO-Muster) verlegen. Auf Hibernate Wiki finden "
+"Sie weitere Beispiele."
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr "Deployment und Test"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To build and deploy call <literal>mvn package</literal> in your project "
+"directory and copy the <filename>hibernate-tutorial.war</filename> file into "
+"your Tomcat <filename>webapps</filename> directory."
+msgstr ""
+"Um den <literal>ant war</literal>-Aufruf (\"call\") in Ihrem "
+"Projektverzeichnis zu bauen und auszuführen, kopieren Sie die "
+"<literal>hibernate-tutorial.war</literal>-Datei in Ihr Tomcat "
+"<literal>webapp</literal>-Verzeichnis. Falls Tomcat bei Ihnen nicht "
+"installiert ist, laden Sie es herunter, und folgen Sie den "
+"Installationsanweisungen. Sie müssen jedoch keine Konfigurationen von Tomcat "
+"ändern, um diese Anwendung auszuführen."
+
+#. 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 ""
+
+#. 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 ""
+"Wenn das Deployment erfolgt ist und Tomcat ausgeführt wird, greifen Sie "
+"mittels <literal>http://localhost:8080/hibernate-tutorial/eventmanager</"
+"literal> auf die Anwendung zu. Sehen Sie im Protokoll von Tomcat nach, ob "
+"Hibernate initialisiert wird, wenn die erste Anfrage bei Ihrem Servlet "
+"eingeht (das statische Initialisierungsprogramm in <literal>HibernateUtil</"
+"literal> wird aufgerufen), und prüfen Sie die detaillierte Ausgabe nach "
+"Ausnahmen."
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "Zusammenfassung"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This tutorial covered the basics of writing a simple standalone Hibernate "
+"application and a small web application. More tutorials are available from "
+"the Hibernate <ulink url=\"http://hibernate.org\">website</ulink>."
+msgstr ""
+"Diese Anleitung behandelt in Grundzügen die Erstellung einer einfachen "
+"selbständigen Hibernate-Applikation und einer kleinen Webanwendung."
+
+#, fuzzy
+#~ 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 ""
+#~ "package events;\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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>\n"
+#~ "[...]\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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\">create</property>\n"
+#~ "\n"
+#~ " <mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>"
+
+#, fuzzy
+#~ 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 ""
+#~ "package util;\n"
+#~ "\n"
+#~ "import org.hibernate.*;\n"
+#~ "import org.hibernate.cfg.*;\n"
+#~ "\n"
+#~ "public class HibernateUtil {\n"
+#~ "\n"
+#~ " private static final SessionFactory sessionFactory;\n"
+#~ "\n"
+#~ " static {\n"
+#~ " try {\n"
+#~ " // Create the SessionFactory from hibernate.cfg.xml\n"
+#~ " sessionFactory = new Configuration().configure()."
+#~ "buildSessionFactory();\n"
+#~ " } catch (Throwable ex) {\n"
+#~ " // Make sure you log the exception, as it might be swallowed\n"
+#~ " System.err.println(\"Initial SessionFactory creation failed."
+#~ "\" + ex);\n"
+#~ " throw new ExceptionInInitializerError(ex);\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ " public static SessionFactory getSessionFactory() {\n"
+#~ " return sessionFactory;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "package events;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "import util.HibernateUtil;\n"
+#~ "\n"
+#~ "public class EventManager {\n"
+#~ "\n"
+#~ " public static void main(String[] args) {\n"
+#~ " EventManager mgr = new EventManager();\n"
+#~ "\n"
+#~ " if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " }\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory().close();\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void createAndStoreEvent(String title, Date theDate) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " session.save(theEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, "
+#~ "EVENT_ID) values (?, ?, ?)]]>"
+#~ msgstr ""
+#~ "[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values "
+#~ "(?, ?, ?)"
+
+#, fuzzy
+#~ 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 ""
+#~ "if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ "}\n"
+#~ "else if (args[0].equals(\"list\")) {\n"
+#~ " List events = mgr.listEvents();\n"
+#~ " for (int i = 0; i < events.size(); i++) {\n"
+#~ " Event theEvent = (Event) events.get(i);\n"
+#~ " System.out.println(\"Event: \" + theEvent.getTitle() +\n"
+#~ " \" Time: \" + theEvent.getDate());\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private List listEvents() {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " List result = session.createQuery(\"from Event\").list();\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " return result;\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "package events;\n"
+#~ "\n"
+#~ "public class Person {\n"
+#~ "\n"
+#~ " private Long id;\n"
+#~ " private int age;\n"
+#~ " private String firstname;\n"
+#~ " private String lastname;\n"
+#~ "\n"
+#~ " public Person() {}\n"
+#~ "\n"
+#~ " // Accessor methods for all properties, private setter for 'id'\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>]]>"
+#~ msgstr ""
+#~ "<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ "\n"
+#~ " <set name=\"events\" table=\"PERSON_EVENT\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <many-to-many column=\"EVENT_ID\" class=\"events.Event\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | |\n"
+#~ " |_____________| |__________________| | PERSON |\n"
+#~ " | | | | |_____________|\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | |\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE |\n"
+#~ " |_____________| | FIRSTNAME |\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session\n"
+#~ " .createQuery(\"select p from Person p left join fetch p."
+#~ "events where p.id = :pid\")\n"
+#~ " .setParameter(\"pid\", personId)\n"
+#~ " .uniqueResult(); // Eager fetch the collection so we can use "
+#~ "it detached\n"
+#~ "\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " // End of first unit of work\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent); // aPerson (and its collection) is "
+#~ "detached\n"
+#~ "\n"
+#~ " // Begin second unit of work\n"
+#~ "\n"
+#~ " Session session2 = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session2.beginTransaction();\n"
+#~ "\n"
+#~ " session2.update(aPerson); // Reattachment of aPerson\n"
+#~ "\n"
+#~ " session2.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "private Set emailAddresses = new HashSet();\n"
+#~ "\n"
+#~ "public Set getEmailAddresses() {\n"
+#~ " return emailAddresses;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setEmailAddresses(Set emailAddresses) {\n"
+#~ " this.emailAddresses = emailAddresses;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[ <set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR"
+#~ "\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ " </set>]]>"
+#~ msgstr ""
+#~ "<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | | "
+#~ "___________________\n"
+#~ " |_____________| |__________________| | PERSON | "
+#~ "| |\n"
+#~ " | | | | |_____________| | "
+#~ "PERSON_EMAIL_ADDR |\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | "
+#~ "| |___________________|\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | "
+#~ "<--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE | | "
+#~ "*EMAIL_ADDR |\n"
+#~ " |_____________| | FIRSTNAME | |"
+#~ "___________________|\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addEmailToPerson(Long personId, String emailAddress) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ "\n"
+#~ " // The getEmailAddresses() might trigger a lazy load of the "
+#~ "collection\n"
+#~ " aPerson.getEmailAddresses().add(emailAddress);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private Set participants = new HashSet();\n"
+#~ "\n"
+#~ "public Set getParticipants() {\n"
+#~ " return participants;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setParticipants(Set participants) {\n"
+#~ " this.participants = participants;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[ <set name=\"participants\" table=\"PERSON_EVENT\" "
+#~ "inverse=\"true\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ " </set>]]>"
+#~ msgstr ""
+#~ "<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true"
+#~ "\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "protected void doGet(HttpServletRequest request,\n"
+#~ " HttpServletResponse response)\n"
+#~ " throws ServletException, IOException {\n"
+#~ "\n"
+#~ " SimpleDateFormat dateFormatter = new SimpleDateFormat(\"dd.MM.yyyy"
+#~ "\");\n"
+#~ "\n"
+#~ " try {\n"
+#~ " // Begin unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // Process request and render page...\n"
+#~ "\n"
+#~ " // End unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().commit();\n"
+#~ "\n"
+#~ " } catch (Exception ex) {\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().rollback();\n"
+#~ " throw new ServletException(ex);\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "// Write HTML header\n"
+#~ "PrintWriter out = response.getWriter();\n"
+#~ "out.println(\"<html><head><title>Event Manager</"
+#~ "title></head><body>\");\n"
+#~ "\n"
+#~ "// Handle actions\n"
+#~ "if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
+#~ "\n"
+#~ " String eventTitle = request.getParameter(\"eventTitle\");\n"
+#~ " String eventDate = request.getParameter(\"eventDate\");\n"
+#~ "\n"
+#~ " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
+#~ " out.println(\"<b><i>Please enter event title and date."
+#~ "</i></b>\");\n"
+#~ " } else {\n"
+#~ " createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n"
+#~ " out.println(\"<b><i>Added event.</i></b>"
+#~ "\");\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "// Print page\n"
+#~ "printEventForm(out);\n"
+#~ "listEvents(out, dateFormatter);\n"
+#~ "\n"
+#~ "// Write HTML footer\n"
+#~ "out.println(\"</body></html>\");\n"
+#~ "out.flush();\n"
+#~ "out.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void printEventForm(PrintWriter out) {\n"
+#~ " out.println(\"<h2>Add new event:</h2>\");\n"
+#~ " out.println(\"<form>\");\n"
+#~ " out.println(\"Title: <input name='eventTitle' length='50'/><"
+#~ "br/>\");\n"
+#~ " out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
+#~ "length='10'/><br/>\");\n"
+#~ " out.println(\"<input type='submit' name='action' value='store'/>"
+#~ "\");\n"
+#~ " out.println(\"</form>\");\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) "
+#~ "{\n"
+#~ "\n"
+#~ " List result = HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().createCriteria(Event.class).list"
+#~ "();\n"
+#~ " if (result.size() > 0) {\n"
+#~ " out.println(\"<h2>Events in database:</h2>\");\n"
+#~ " out.println(\"<table border='1'>\");\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<th>Event title</th>\");\n"
+#~ " out.println(\"<th>Event date</th>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " for (Iterator it = result.iterator(); it.hasNext();) {\n"
+#~ " Event event = (Event) it.next();\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<td>\" + event.getTitle() + \"</td>"
+#~ "\");\n"
+#~ " out.println(\"<td>\" + dateFormatter.format(event."
+#~ "getDate()) + \"</td>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " }\n"
+#~ " out.println(\"</table>\");\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "protected void createAndStoreEvent(String title, Date theDate) {\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().save(theEvent);\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun."
+#~ "com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>org.hibernate.tutorial.web.EventManagerServlet</"
+#~ "servlet-class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee\n"
+#~ " http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>events.EventManagerServlet</servlet-"
+#~ "class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/xml.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/xml.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/content/xml.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,822 @@
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# Language /mnt/hgfs/base/Hibernate/Reference translations for PACKAGE package.
+# Copyright (C) 2006, 2007 Free Software Foundation, Inc.
+# Automatically generated, 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2007-02-26 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <de at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+msgstr "XML-Mapping"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
+"currently under active development. </emphasis>"
+msgstr ""
+"Bitte beachten Sie, dass es sich hierbei um ein experimentelles Feature in "
+"Hibernate 3.0 handelt, an dem aktuell noch eine rege Entwicklungstätigkeit "
+"stattfindet."
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr "Das Arbeiten mit XML-Daten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate allows you to work with persistent XML data in much the same way "
+"you work with persistent POJOs. A parsed XML tree can be thought of as "
+"another way of representing the relational data at the object level, instead "
+"of POJOs."
+msgstr ""
+"Hibernate ermöglicht Ihnen die Arbeit mit persistenten XML-Daten auf "
+"ähnliche Weise wie dies bei persistenten POJOs der Fall ist. Man kann sich "
+"einen auf seine Syntax geprüften XML-Baum einfach als andere Weise der "
+"Repräsentation relationaler Daten auf Objektebene anstelle von POJOs "
+"vorstellen."
+
+#. 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 unterstützt dom4j als API zur Verarbeitung von XML-Bäumen. Sie "
+"können Anfragen, die dom4j-Bäume von der Datenbank abrufen, schreiben, wobei "
+"alle Modifikationen am Baum automatisch mit der Datenbank synchronisiert "
+"werden. Sie können sogar ein XML-Dokument unter Verwendung von dom4j auf die "
+"Syntax prüfen und mittels Hibernates Grundvorgängen: <literal>persist(), "
+"saveOrUpdate(), merge(), delete(), replicate()</literal> (\"Merging\" wird "
+"noch nicht unterstützt) in die Datenbank schreiben."
+
+#. 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 ""
+"Dieses Feature bietet zahlreiche Anwendungen einschlieÃlich des Imports/"
+"Exports von Daten, Externalisierung von Entity-Daten via JMS oder SOAP und "
+"XSLT-basiertem Reporting."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A single mapping can be used to simultaneously map properties of a class and "
+"nodes of an XML document to the database, or, if there is no class to map, "
+"it can be used to map just the XML."
+msgstr ""
+"Ein einzelnes Mapping kann für das gleichzeitige Mappen von Properties einer "
+"Klasse und Knoten (\"Nodes\") eines XML-Dokuments zu einer Datenbank "
+"verwendet werden. Falls keine zu mappende Klasse existiert, kann auch nur "
+"das XML gemappt werden."
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying XML and class mapping together"
+msgstr "Spezifizierung des gemeinsamen Mappens von XML und Klasse"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr "Hier ist ein Beispiel für das gleichzeitige Mappen eines POJO und XML:"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr "Spezifizierung des Mappens von nur XML"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr "Dieses ist ein Beispiel ohne POJO-Klasse:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This mapping allows you to access the data as a dom4j tree, or as a graph of "
+"property name/value pairs or java <literal>Map</literal>s. The property "
+"names are purely logical constructs that can be referred to in HQL queries."
+msgstr ""
+"Dieses Mapping erlaubt es Ihnen, auf Daten als dom4j-Baum oder als Graph von "
+"Property-Name/Wertepaaren zuzugreifen (Java <literal>Map</literal>s). Die "
+"Property-Namen sind rein logische Konstrukte, auf die in HQL-Anfragen "
+"verwiesen werden kann."
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr "XML-Mapping Metadaten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A range of Hibernate mapping elements accept the <literal>node</literal> "
+"attribute. This lets you specify the name of an XML attribute or element "
+"that holds the property or entity data. The format of the <literal>node</"
+"literal> attribute must be one of the following:"
+msgstr ""
+"Zahlreiche Hibernate Mapping-Elemente akzeptieren das <literal>node</"
+"literal>-Attribut. Mit diesem können Sie den Namen eines XML-Attributs oder "
+"Elements festlegen, das die Property oder Entity-Daten enthält. Das Format "
+"des <literal>node</literal>-Attributs muss wie folgt aussehen:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>\"element-name\"</literal>: map to the named XML element"
+msgstr "<literal>\"element-name\"</literal> - mappt zum benannten XML-Element"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
+msgstr ""
+"<literal>\"@attribute-name\"</literal> - mappt zum benannten XML-Attribut"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr "<literal>\".\"</literal> - mappt zum übergeordneten Element"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
+"attribute of the named element"
+msgstr ""
+"<literal>\"element-name/@attribute-name\"</literal> - mappt zum benannten "
+"Attribut des benannten Elements"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For collections and single valued associations, there is an additional "
+"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
+"literal>, the default, the XML tree for the associated entity (or collection "
+"of value type) will be embedded directly in the XML tree for the entity that "
+"owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, "
+"then only the referenced identifier value will appear in the XML for single "
+"point associations and collections will not appear at all."
+msgstr ""
+"Für Datenerfassung und einwertige Assoziationen gibt es ein zusätzliches "
+"<literal>embed-xml</literal>-Attribut. Falls <literal>embed-xml=\"true\"</"
+"literal> der Standard, so wird der XML-Baum für die zugehörige Entity (oder "
+"Collection vom Wertetyp) direkt im XML-Baum der Entity, zu der die "
+"Assoziation gehört, eingebettet. Im anderen Fall, falls <literal>embed-xml="
+"\"false\"</literal>, erscheint nur der referenzierte Bezeichnerwert in der "
+"XML für \"Single-Point\"-Assoziationen während Collections gar nicht "
+"erscheinen."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
+"associations, since XML does not deal well with circularity."
+msgstr ""
+"Sie sollten die Einstellung <literal>embed-xml=\"true\"</literal> nicht für "
+"zu viele Assoziationen anwenden, da XML Schwierigkeiten mit Zirkularität "
+"haben kann!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this case, the collection of account ids is embedded, but not the actual "
+"account data. The following HQL query:"
+msgstr ""
+"in diesem Fall haben wir die Collection von Konten-IDs einzubetten, nicht "
+"jedoch die eigentlichen Kontodaten. Die folgende HQL-Anfrage:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "would return datasets such as this:"
+msgstr "Würde Datensätze wie die Folgenden wiedergeben:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
+"many></literal> mapping, the data might look more like this:"
+msgstr ""
+"Wenn Sie die Einstellung <literal>embed-xml=\"true\"</literal> im "
+"<literal><one-to-many></literal>-Mapping vornehmen, so sehen die Daten "
+"eher wie folgt aus:"
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr "Manipulation von XML-Daten"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also re-read and update XML documents in the application. You can do "
+"this by obtaining a dom4j session:"
+msgstr ""
+"Wir wollen nun XML-Dokumente in der Anwendung nochmals lesen und "
+"aktualisieren. Dies erfolgt durch Erhalt einer dom4j-Session:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When implementing XML-based data import/export, it is useful to combine this "
+"feature with Hibernate's <literal>replicate()</literal> operation."
+msgstr ""
+"Es ist sehr hilfreich, dieses Feature mit Hibernates <literal>replicate()</"
+"literal>-Vorgang zu kombinieren, um XML-basierten Datenimport/-export zu "
+"implementieren."
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Customer c left join fetch c.accounts where c.lastName "
+#~ "like :lastName]]>"
+#~ msgstr ""
+#~ "from Customer c left join fetch c.accounts where c.lastName like :lastName"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " //change the customer name in the XML and database\n"
+#~ " Element name = customer.element(\"name\");\n"
+#~ " name.element(\"first-name\").setText(firstName);\n"
+#~ " name.element(\"initial\").setText(initial);\n"
+#~ " name.element(\"last-name\").setText(lastName);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Conventions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Conventions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Conventions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,301 @@
+# translation of Conventions.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Conventions\n"
+"POT-Creation-Date: 2009-12-11T05:07:40\n"
+"PO-Revision-Date: 2010-01-13 22:31+1100\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr "Dokumentkonventionen"
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr ""
+"Dieses Handbuch verwendet mehrere Konventionen, um bestimmte Wörter und Ausdrücke "
+"zu betonen und bestimmte Teile von Informationen hervorzuheben."
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr ""
+"In PDF- und Papierausgaben verwendet dieses Handbuch Schriftarten aus dem <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink>-Satz. "
+"Der \"Liberation Fonts\"-Satz wird auch in HTML-Editionen verwendet, wenn er auf Ihrem "
+"System installiert ist. Falls nicht, so werden alternative aber gleichwertige Schriftarten "
+"angezeigt. Hinweis: Red Hat Enterprise Linux 5 und spätere Versionen enthalten den "
+"\"Liberation Fonts\"-Satz an Schrifttypen standardmäÃig."
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr "Typografische Konventionen"
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr ""
+"Vier typografische Konventionen werden verwendet, um bestimmte Wörter und "
+"Ausdrücke hervorzuheben. Diese Konventionen und die Umstände, in denen sie "
+"angewendet werden, sind wie folgt."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr "<literal>Mono-spaced Bold</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr ""
+"Zur Betonung der Systemeingabe einschlieÃlich Shell-Befehle, Dateinamen "
+"und Pfaden verwendet. Auch zur Betonung von Tastenkappen und Tastenkombinationen "
+"verwendet. Zum Beispiel:"
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+"Um die Inhalte der Datei <filename>my_next_bestselling_novel</filename> in Ihrem "
+"aktuellen Arbeitsverzeichnis zu sehen, geben Sie den "
+"<command>cat my_next_bestselling_novel</command>-Befehl im Shell-Prompt ein, "
+"und drücken Sie <keycap>Enter</keycap>, um den Befehl auszuführen."
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr ""
+"Obiges enthält einen Dateinamen, einen Shell-Befehl und eine Tastenkappe, alle "
+"in einzeiligem Fettdruck und aufgrund des Kontexts leicht zu unterscheiden."
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr ""
+"Tastenkombinationen können von Tastenkappen durch den jeden Teil der Tastenkombination "
+"mit anderen Teilen verbindenden Bindestrich unterschieden werden. Zum Beispiel:"
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr "Drücken Sie <keycap>Enter</keycap>, um den Befehl auszuführen."
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr ""
+"Drücken Sie <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>, "
+"um ins erste virtuelle Terminal zu wechseln. Drücken Sie <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo>, "
+"um zu Ihrer X-Windows Session zurückzukehren."
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr ""
+"Der erste Abschnitt markiert die zu drückende Tastenkappe. Der zweite markiert zwei "
+"Tastenkombinationen (jede ein Satz von drei Tastenkappen, wobei jeder Satz simultan "
+"gedrückt wird)."
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr ""
+"Wird Quellcode erläutert, so erscheinen Klassenname, Methoden, Funktionen, "
+"Variablennamen und wiedergegebene Werte, die in einem Abschnitt wie oben "
+"erwähnt werden in <literal>mono-spaced bold</literal> (einzeiligem Fettdruck). "
+"Zum Beispiel:"
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr ""
+"Datei-bezogene Klassen beinhalten <classname>filesystem</classname> für Dateisysteme, <classname>file</classname> für Dateien und <classname>dir</classname> "
+"für Verzeichnisse. Jede Klasse besitzt ihren eigenen assoziierten Satz an Genehmigungen. "
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr "<application>Proportional Bold</application>"
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr ""
+"Dies kennzeichnet Wörter oder Ausdrücke, auf die man in einem System trifft, darunter "
+"Namen von Anwendungen; Dialog-Box Text; benannte Optionsschaltflächen; "
+"Menütitel und Untermenü-Titel. Zum Beispiel:"
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr "Wählen Sie <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> aus dem Hauptmenü-Balken, um <application>Mouse Preferences</application> zu starten. Im <guilabel>Buttons</guilabel>-Reiter, klicken Sie das <guilabel>Left-handed mouse</guilabel>-Kontrollkästchen, und klicken Sie <guibutton>Close</guibutton>, um die Schaltfläche der Primärmaus von links nach rechts umzustellen (wodurch die Maus für Linkshänder nutzbar wird)."
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr ""
+"Um ein Sonderzeichen in eine <application>gedit</application>-Datei einzufügen, "
+"wählen Sie <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> aus dem Hauptmenübalken. AnschlieÃend wählen Sie <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> aus dem <application>Character Map</application>-Menübalken, geben SIe den Namen des Sonderzeichens im <guilabel>Search</guilabel>-Feld ein und klicken Sie auf <guibutton>Next</guibutton>. Das von Ihnen gesuchte Zeichen wird in der <guilabel>Character Table</guilabel> hervorgehoben. "
+"Doppelklicken Sie auf dieses hervorgehobene Zeichen, um es im <guilabel>Text to copy</guilabel>-Feld zu platzieren und klicken Sie auf die <guibutton>Copy</guibutton>-Schaltfläche. Wechseln Sie zurück in Ihr Dokument, und wählen Sie <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> aus dem <application>gedit</application>-Menübalken."
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr ""
+"Der obige Text enthält Anwendungsnamen; System-weite Menünamen und Posten; "
+"Anwendungsspezifische Menünamen sowie innerhalb eines GUI-Interface vorkommende "
+"Schaltflächen und Text, allesamt in proportinalem Fettdruck und leicht vom "
+"Kontext zu unterscheiden."
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr ""
+"<command><replaceable>Mono-spaced Bold Italic</replaceable></command> "
+"oder <application><replaceable>Proportional Bold Italic</replaceable></application>"
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr ""
+"Ob \"mono-spaced bold\" oder \"proportional bold\", Kursivschrift steht für ersetzbaren "
+"oder variablen Text. Kursivschrift denotiert Text, den Sie nicht wörtlich eingeben oder "
+"angezeigten Text, der sich je nach Umständen ändert. Zum Beispiel:"
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr ""
+"Um eine Verbindung mit einer Remote-Maschine mittels ssh herzustellen, "
+"geben Sie <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> "
+"in einem Shell-Prompt ein. Ist die Remote-Maschine <filename>example.com</filename> "
+"und Ihr Benutzername an dieser Maschine ist \"john\", so geben Sie "
+"<command>ssh john at example.com</command> ein."
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr ""
+"Der <command>mount -o remount <replaceable>file-system</replaceable></command>-Befehl "
+"hängt das benannte Dateisystem wieder ein. Um zum Beispiel das "
+"<filename>/home</filename>-Dateisystem wieder einzuhängen, lautet der Befehl "
+"<command>mount -o remount /home</command>."
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr ""
+"Um die Version eines aktuell installierten Pakets einzusehen, verwenden Sie den "
+"<command>rpm -q <replaceable>package</replaceable></command>-Befehl. "
+"Er gibt das Ergebnis wie folgt wieder: <command><replaceable>package-version-release</replaceable></command>."
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr ""
+"Beachten Sie die Wörter in kursivem Fettdruck oben — username, domain.name, file-system, package, version und release. Bei jedem Wort handelt es sich um einen Platzhalter für entweder "
+"durch Sie bei Eingabe eines Befehls geschriebenen Text oder für vom System angezeigten "
+"Text."
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr ""
+"AuÃer dem Standardgebrauch zur Darestellung des Titels einer Arbeit, wird "
+"Kursivschrift bei der erstmaligen Erwähnung eines neuen und wichtigen Begriffs "
+"verwendet. Zum Beispiel: "
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr "Publican ist <firstterm>DocBook</firstterm> Publishing-System."
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr "Pull-Quote Konventionen"
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr ""
+"Terminal-Ausgabe und Quellcode-Auflistungen sind visuell vom umgebenden Text "
+"abgesetzt."
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr ""
+"An ein Terminal gesendete Ausgaben sind <computeroutput>mono-spaced roman</computeroutput> "
+"und werden wie folgt dargestellt:"
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr ""
+"Quellcode-Auflistungen sind auch <computeroutput>mono-spaced roman</computeroutput> "
+"fügen aber Syntax-Hervorhebungen hinzu wie folgt:"
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr "Hinweise und Warnungen"
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr ""
+"Es werden drei visuelle Stile zur Hervorhebung von andernfalls möglicherweise "
+"übersehener Informationen verwendet. "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Hinweis"
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr ""
+"Anmerkungen sind Tipps, Tastaturbefehle oder alternative Herangehensweisen an die aktuelle "
+"Aufgabe. Das Ignorieren einer Anmerkung hat in der Regel keine negativen Auswirkungen, aber "
+"Sie verpassen vielleicht einen nützlichen Hinweis, der Ihnen das Leben leichter machen kann."
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr "Wichtig"
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr ""
+"Wichtige Kästchen heben Informationen hervor, die andernfalls möglicherweise "
+"übersehen werden: Konfigurationsänderungen, die nur die aktuelle Session betreffen "
+"oder Dienste, die erneut gestartet werden müssen, ehe eine Aktualisierung stattfindet. "
+"Das Nichtbeachten eines als 'Important' ('Wichtig') gekennzeichneten Kästchens "
+"führt zwar nicht zu Datenverlust, kann aber zu unerwünschten "
+"Ergebnissen führen."
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr "Warnung"
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr ""
+"Warnungen sollten nicht ignoriert werden. Das Ignorieren von Nachrichten führt mit "
+"groÃer Wahrscheinlichkeit zu Datenverlust."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,37 @@
+# translation of Feedback.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-01-11 17:47+1100\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr "Wir brauchen Feedback!"
+
+#. Tag: primary
+#, no-c-format
+msgid "feedback"
+msgstr "Feedback"
+
+#. Tag: secondary
+#, no-c-format
+msgid "contact information for this manual"
+msgstr "Kontaktinformationen für dieses Handbuch"
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr ""
+"Sie sollte dies auÃer Kraft setzen, indem Sie Ihre eigene lokale Feedback."
+"xml-Datei erstellen."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/fallback_content/Legal_Notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,26 @@
+# translation of Legal_Notice.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Legal_Notice\n"
+"POT-Creation-Date: 2009-12-11T05:07:40\n"
+"PO-Revision-Date: 2010-01-11 18:12+1100\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr ""
+"Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; "
+"Dieses Material kann nur gemäà den in den Allgemeinen Geschäftsbedingungen der "
+"GNU Free Documentation License (GFDL), V1.2 oder später distribuiert werden "
+"(die aktuellste Version ist derzeit unter <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>) "
+"verfügbar."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/legal_notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/legal_notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/de-DE/legal_notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General Public License</ulink>, as published by the Free Software Foundation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red Hat, Inc. in the United States and other countries."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "All other trademarks referenced herein are the property of their respective owners."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Book_Info.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Book_Info.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Book_Info.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,32 @@
+# translation of Book_Info.po to
+#
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-03-12 11:22+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr "HIBERNATE - Persistencia relacional para Java idiomático"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Documentación de referencia de Hibernate"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&version;"
+msgstr "&version;"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,23 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#~ msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+#~ msgstr "HIBERNATE - Persistencia Relacional para Java Idiomático"
+
+#~ msgid "Hibernate Reference Documentation"
+#~ msgstr "Documentación de Referencia de Hibernate"
+
+#~ msgid "©rightHolder;"
+#~ msgstr "©rightHolder;"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Hibernate_Reference.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Hibernate_Reference.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/Hibernate_Reference.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,31 @@
+# translation of Hibernate_Reference.po to
+#
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Reference\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-03-12 11:21+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr "HIBERNATE - Persistencia relacional para Java idiomático"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Documentación de referencia de Hibernate"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr "&versionNumber;"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/author_group.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/author_group.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/author_group.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,153 @@
+# translation of author_group.po to
+# Language es-ES translations for Branch package.
+#
+# Automatically generated, 2009.
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: author_group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-03-12 11:24+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr "Gavin"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr "Christian"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr "Max"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr "Emmanuel"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr "Steve"
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr "James"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr "Cheyenne"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr "Vincent"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr "Sebastien"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr "Michael"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr "Baptiste"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr "Anthony"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr "Alvaro"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr "Anderson"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr "Daniel Vieira"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr "Francisco"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr "Gamarra"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr "Luiz Carlos"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr "Marcel"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr "Paulo"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr "Pablo L."
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr "Renato"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr "Rogério"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr "Wanderson"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr "Cao"
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr "RedSaga"
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr "LÃder de traducción"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/architecture.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/architecture.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/architecture.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,625 @@
+# translation of architecture.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: architecture\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-03-15 10:16+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr "Arquitectura"
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr "Sinopsis"
+
+#. Tag: para
+#, no-c-format
+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:"
+
+#. 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 ""
+"Este documento no incluye una sinopsis detallada de la arquitecturas en "
+"tiempo de ejecución disponibles; Hibernate es flexible y soporta diferentes "
+"enfoques. Sin embargo, mostraremos los dos extremos: la arquitectura \"mÃnima"
+"\" y la arquitectura \"completa\"."
+
+#. 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 ""
+"Este diagrama ilustra la manera en que Hibernate utiliza la base de datos y "
+"los datos de configuración para proporcionar servicios de persistencia y "
+"objetos persistentes a la aplicación."
+
+#. 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 ""
+"La arquitectura \"mÃnima\" hace que la aplicación proporcione sus propias "
+"conexiones JDBC y que administre sus propias transacciones. Este enfoque "
+"utiliza un subgrupo mÃnimo de las APIs de Hibernate:"
+
+#. 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 ""
+"La arquitectura \"completa\" abstrae la aplicación de las APIs de JDBC/JTA y "
+"permite que Hibernate se encargue de los detalles."
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr "He aquà algunas definiciones de los objetos en los diagramas: "
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+
+#. 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 ""
+"Un caché threadsafe (inmutable) de mapeos compilados para una sola base de "
+"datos. Una fábrica de <literal>Session</literal> y un cliente de "
+"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> "
+"puede mantener un caché opcional (de segundo nivel) de datos reusables entre "
+"transacciones a nivel de proceso o de clúster."
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr "Session (<literal>org.hibernate.Session</literal>)"
+
+#. 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 ""
+"Un objeto mono-hebra, de corta vida que representa una conversación entre la "
+"aplicación y el almacenamiento persistente. Envuelve una conexión JDBC y es "
+"una fábrica de <literal>Transaction</literal>. <literal>Session</literal> "
+"mantiene un caché requerido de primer nivel de objetos persistentes, que se "
+"utiliza cuando se navega el gráfico de objetos o mientras se buscan objetos "
+"por identificador."
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr "Objetos y colecciones persistentes"
+
+#. 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 ""
+"Objetos de corta vida, mono-hebra contienen un estado persistente asà como "
+"una funcionalidad empresarial. Estos pueden ser JavaBeans/POJOs normales. "
+"Estos se encuentran asociados con exactamente una <literal>Session</"
+"literal>. Tan pronto como la <literal>Session</literal> se cierre, serán "
+"separados y estarán libres para utilizarlos en cualquier capa de aplicación, "
+"(por ejemplo, directamente como objetos de transferencia de datos hacia y "
+"desde la presentación)."
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr "Objetos y colecciones transitorios y separados"
+
+#. 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 ""
+"Instancias de clases persistentes que no se encuentran actualmente asociadas "
+"con una <literal>Session</literal>. Pueden haber sido instanciadas por la "
+"aplicación y aún no haber sido persistidas, o pueden haber sido instanciadas "
+"por una <literal>Session</literal> cerrada."
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
+
+#. 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 ""
+"(Opcional) Un objeto de corta vida, mono-hebra que la aplicación utiliza "
+"para especificar unidades atómicas de trabajo. Abstrae la aplicación de las "
+"transacciones subyacentes JDBC, JTA o CORBA. En algunos casos, una "
+"<literal>Session</literal> puede extenderse sobre varias "
+"<literal>Transaction</literal>es. Sin embargo, la demarcación de la "
+"transacción, ya sea utilizando la API subyacente o <literal>Transaction</"
+"literal>, nunca es opcional."
+
+#. Tag: term
+#, no-c-format
+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 ""
+"(Opcional) Una fábrica y pool de conexiones JDBC. Abstrae a la aplicación "
+"del <literal>Datasource</literal> o <literal>DriverManager</literal> "
+"subyacente. No se expone a la aplicación, pero puede ser extendido/"
+"implementado por el desarrollador."
+
+#. Tag: term
+#, no-c-format
+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 ""
+"(Opcional) Una fábrica de instancias de <literal>Transaction</literal>. No "
+"se expone a la aplicación pero puede ser extendido/implementado por el "
+"desarrollador. "
+
+#. Tag: term
+#, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr "<emphasis>Interfaces de extensión</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 ofrece un rango de interfaces de extensión opcionales que puede "
+"implementar para personalizar el comportamiento de su capa de persistencia. "
+"Para obtener más detalles, vea la documentación de la 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 ""
+"Dada una arquitectura \"sencilla\", la aplicación evita las APIs de "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> y/o "
+"<literal>ConnectionProvider</literal>, para comunicarse directamente con JTA "
+"o JDBC."
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr "Estados de instancia"
+
+#. 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 ""
+"Una instancia de una clase persistente puede estar en uno de tres estados "
+"diferentes. Estos estados se definen con respecto a su <emphasis>contexto de "
+"persistencia</emphasis>. El objeto <literal>Session</literal> de Hibernate "
+"es el contexto de persistencia. Los tres estados diferentes son los "
+"siguientes:"
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr "transitorio"
+
+#. 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 ""
+"La instancia no está asociada con un contexto de persistencia. No tiene "
+"identidad persistente o valor de clave principal."
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr "persistente"
+
+#. 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 ""
+"La instancia se encuentra actualmente asociada con un contexto de "
+"persistencia. Tiene una identidad persistente (valor de clave principal) y "
+"puede tener una fila correspondiente en la base de datos. Para un contexto "
+"de persistencia en particular, Hibernate <emphasis>garantiza</emphasis> que "
+"la identidad persistente es equivalente a la identidad Java en relación con "
+"la ubicación del objeto."
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr "separado"
+
+#. 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 ""
+"La instancia estuvo alguna vez asociada con un contexto de persistencia, "
+"pero ese contexto se cerró, o la instancia fue serializada a otro proceso. "
+"Tiene una identidad persistente y puede tener una fila correspondiente en la "
+"base de datos. Para las instancias separadas, Hibernate no establece ninguna "
+"garantÃa sobre la relación entre identidad persistente e identidad Java."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr "Integración JMX"
+
+#. 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 es el estándar J2EE para la gestión de componentes Java. Hibernate se "
+"puede administrar por medio de un servicio estándar JMX. Brindamos una "
+"implementación de MBean en la distribución: <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 ""
+"Para ver un ejemplo de cómo desplegar Hibernate como un servicio JMX en un "
+"servidor de aplicaciones JBoss, por favor, refiérase al manual del usuario "
+"de JBoss. JBoss AS también proporciona estos beneficios si despliega "
+"utilizando JMX:"
+
+#. 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>Administración de Sesión:</emphasis> El ciclo de vida de la "
+"<literal>Session</literal> de Hibernate puede estar ligado automáticamente "
+"al ámbito de una transacción JTA. Esto significa que ya no tiene que abrir "
+"ni cerrar la <literal>Session</literal> manualmente, esto pasa a ser el "
+"trabajo de un interceptor EJB de JBoss. Además tampoco tiene que preocuparse "
+"más de la demarcación de la transacción en su código (a menos de que quiera "
+"escribir una capa de persitencia portátil, utilice la API de "
+"<literal>Transaction</literal> de Hibernate para hacer esto). Para acceder a "
+"una <literal>Session</literal> llame al <literal>HibernateContext</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>Despliegue HAR:</emphasis>: el servicio JMX de Hibernate se "
+"implementa usando un descriptor de despliegue de servicio de JBoss en un "
+"archivo EAR y/o SAR, que soporta todas las opciones de configuración usuales "
+"de una <literal>SessionFactory</literal> de Hibernate. Sin embargo, todavÃa "
+"tiene que nombrar todos sus archivos de mapeo en el descriptor de "
+"despliegue. Si utiliza el depliegue HAR opcional, JBoss detectará "
+"automáticamente todos los archivos de mapeo en su archivo HAR."
+
+#. Tag: para
+#, no-c-format
+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
+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."
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr "Soporte JCA"
+
+#. 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 también puede ser configurado como un conector JCA. Por favor "
+"refiérase al sitio web para encontrar más detalles. Sin embargo, tenga en "
+"cuenta que el soporte de JCA de Hibernate aún está bajo desarrollo."
+
+#. Tag: title
+#, no-c-format
+msgid "Contextual sessions"
+msgstr "Sesiones contextuales"
+
+#. 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 ""
+"La mayorÃa de las aplicaciones que utilizan Hibernate necesitan alguna forma "
+"de sesiones \"contextuales\", en donde una sesión dada se encuentra en "
+"efecto en todo el campo de acción de un contexto dado. Sin embargo, a través "
+"de las aplicaciones la definición de lo que constituye un contexto es "
+"usualmente diferente y diferentes contextos definen diferentes campos de "
+"acción para la noción de actual. Las aplicaciones que utiliza Hibernate "
+"antes de la version 3.0 tienden a utilizar ya sea sesiones contextuales con "
+"base <literal>ThreadLocal</literal> desarrollados en casa, las clases "
+"ayudantes tales como <literal>HibernateUtil</literal>, o enfoques de "
+"terceros utilizados, como Spring o Pico, los cuales brindaban sesiones "
+"contextuales con base proxy/intercepción."
+
+#. 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 ""
+"Comenzando con la version 3.0.1, Hibernate agregó el método "
+"<literal>SessionFactory.getCurrentSession()</literal>. Inicialmente, este "
+"asumió la utilización de las transacciones <literal>JTA</literal>, en donde "
+"la transacción <literal>JTA</literal> definia tanto el contexto como el "
+"campo de acción de una sesión actual. Dada la madurez de númerosas "
+"implementaciones <literal>JTA TransactionManager</literal> autónomas "
+"existentes, la mayorÃa, si no es que todas, las aplicaciones deberÃan "
+"utilizar la administración de transacciones <literal>JTA</literal> en el "
+"caso de que se deplieguen o no en un contenedor <literal>J2EE</literal>. Con "
+"base en esto, las sesiones contextuales basadas en <literal>JTA</literal> es "
+"todo lo que usted necesita utilizar."
+
+#. 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 ""
+"Sin embargo, desde la versión 3.1, el procesamiento detrás de "
+"<literal>SessionFactory.getCurrentSession()</literal> ahora es conectable. "
+"Para ese fin, se ha añadido una nueva interfaz de extensión, <literal>org."
+"hibernate.context.CurrentSessionContext</literal>, y un nuevo parámetro de "
+"configuración, <literal>hibernate.current_session_context_class</literal> "
+"para permitir la conexión del campo de acción y el contexto de definición de "
+"las sesiones actuales."
+
+#. 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 ""
+"Refiérase a los Javadocs para la interfaz <literal>org.hibernate.context."
+"CurrentSessionContext</literal> para poder ver una discusión detallada de su "
+"contrato. Define un método único, <literal>currentSession()</literal>, por "
+"medio del cual la implementación es responsable de rastrear la sesión "
+"contextual actual. Tal como viene empacada, Hibernate incluye tres "
+"implementaciones de esta interfaz:"
+
+#. 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>: una transacción "
+"<literal>JTA</literal> rastrea y asume las sesiones actuales. Aquà el "
+"procesamiento es exactamente el mismo que en el enfoque más antiguo de JTA-"
+"sólamente. Refiérase a los Javadocs para obtener más información."
+
+#. 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>: las "
+"sesiones actuales son rastreadas por un hilo de ejecución. Consulte los "
+"Javadocs para obtener más detalles."
+
+#. 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>: las sesiones "
+"actuales son rastreadas por un hilo de ejecución. Sin embargo, usted es "
+"responsable de vincular y desvincular una instancia <literal>Session</"
+"literal> con métodos estáticos en esta clase: no abre, vacia o cierra una "
+"<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 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 ""
+"Las primeras dos implementaciones brindan un modelo de programación \"una "
+"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."
+
+#. 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 ""
+"El parámetro de configuración <literal>hibernate."
+"current_session_context_class</literal> define cuales implementaciones "
+"<literal>org.hibernate.context.CurrentSessionContext</literal> deben "
+"utilizarse. Para compatibilidad con versiones anteriores, si este parámetro "
+"de configuración no está establecido pero si tiene configurado un "
+"<literal>org.hibernate.transaction.TransactionManagerLookup</literal>, "
+"Hibernate utilizará el <literal>org.hibernate.context.JTASessionContext</"
+"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\"."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/association_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/association_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/association_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1145 @@
+# translation of association_mapping.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: association_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr "Mapeos de asociación"
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr "Introducción"
+
+#. Tag: para
+#, 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 ""
+"Los mapeos de asociación son frecuentemente lo más difÃcil de implementar "
+"correctamente. En esta sección revisaremos algunos casos canónicos uno por "
+"uno, comenzando con los mapeos unidireccionales y luego considerando los "
+"casos bidireccionales. Vamos a utilizar <literal>Person</literal> y "
+"<literal>Address</literal> en todos los ejemplos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations will be classified by multiplicity and whether or not they map "
+"to an intervening join table."
+msgstr ""
+"Vamos a clasificar las asociaciones en cuanto su multiplicidad y a si mapean "
+"o no a una tabla de unión interviniente."
+
+#. Tag: para
+#, 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 ""
+"Las claves foráneas que aceptan valores nulos no se consideran como una "
+"buena práctica en el modelado tradicional de datos, asà que todos nuestros "
+"ejemplos utilizan claves foráneas no nulas. Esto no es un requisito de "
+"Hibernate y todos los mapeos funcionarán si quita las restricciones de "
+"nulabilidad."
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr "Asociaciones Unidireccionales"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "Many-to-one"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr ""
+"Una <emphasis>asociación unidireccional muchos-a-uno</emphasis> es el tipo "
+"de asociación unidireccional más común."
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "Uno-a-uno"
+
+#. Tag: para
+#, 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 ""
+"Una <emphasis>asociación unidireccional uno-a-uno en una clave foránea</"
+"emphasis> es casi idéntica. La única diferencia es la restricción de "
+"unicidad de la columna."
+
+#. Tag: para
+#, 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 ""
+"Usualmente, una <emphasis>asociación unidireccional uno-a-uno en una clave "
+"principal</emphasis> utiliza un generador de id especial. Sin embargo, hemos "
+"invertido la dirección de la asociación:"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many"
+msgstr "Uno-a-muchos"
+
+#. Tag: para
+#, 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 ""
+"Una <emphasis>asociación unidireccional uno-a-muchos en una clave foránea</"
+"emphasis> es un caso muy inusual y no se recomienda."
+
+#. Tag: para
+#, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr ""
+"En lugar debe utilizar una tabla de unión para esta clase de asociación."
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr "Asociaciones unidireccionales con tablas de unión"
+
+#. Tag: para
+#, 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 ""
+"Se prefiere una <emphasis>asociación unidireccional uno-a-muchos en una "
+"tabla de unión</emphasis> . El especificar <literal>unique=\"true\"</"
+"literal>, cambia la multiplicidad de muchos-a-muchos a uno-a-muchos."
+
+#. Tag: para
+#, 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 ""
+"Una <emphasis>asociación unidireccional muchos-a-uno en una tabla de unión</"
+"emphasis> es común cuando la asociación es opcional. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"Una <emphasis>asociación unidireccional uno-a-uno en una tabla de unión</"
+"emphasis> es extremadamente inusual, pero es posible. "
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many"
+msgstr "Muchos-a-muchos"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Finally, here is an example of a <emphasis>unidirectional many-to-many "
+"association</emphasis>."
+msgstr ""
+"Finalmente, este es un ejemplo de una <emphasis>asociación unidireccional "
+"muchos-a-muchos</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "Asociaciones bidireccionales"
+
+#. Tag: title
+#, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr "uno-a-muchos / muchos-a-uno"
+
+#. Tag: para
+#, 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 ""
+"Una <emphasis>asociación bidireccional muchos-a-uno</emphasis> es el tipo de "
+"asociación más común. El siguiente ejemplo ilustra la relación estándar "
+"padre/hijo."
+
+#. Tag: para
+#, 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 ""
+"Si utiliza un <literal>List</literal>, u otra colección con Ãndice, "
+"configure la columna <literal>key</literal> de la clave foránea como "
+"<literal>not null</literal>. Hibernate administrará la asociación del lado "
+"de las colecciones para mantener el Ãndice de cada elemento, haciendo del "
+"otro lado virtualmente inverso al establecer <literal>update=\"false\"</"
+"literal> y <literal>insert=\"false\"</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
+"important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal><key></literal> element of the collection mapping. Do not "
+"only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal><column></literal> element, but on the <literal><key></"
+"literal> element."
+msgstr ""
+"Es importante que defina <literal>not-null=\"true\"</literal> en el elemento "
+"<literal><key></literal> del mapeo de la colección si la columna de la "
+"clave foránea es <literal>NOT NULL</literal>. No declare sólamente "
+"<literal>not-null=\"true\"</literal> en un elemento <literal><column></"
+"literal> posiblemente anidado sino en el elemento <literal><key></"
+"literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is common:"
+msgstr ""
+"Una <emphasis>asociación bidireccional uno-a-uno en una clave foránea</"
+"emphasis> es común:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator:"
+msgstr ""
+"Una <emphasis>asociación bidireccional uno-a-uno en una clave primaria</"
+"emphasis> utiliza el generador de id especial:"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr "Asociaciones bidireccionales con tablas de unión"
+
+#. Tag: para
+#, 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 ""
+"El siguiente es un ejemplo de una <emphasis>asociación bidireccional uno-a-"
+"muchos en una tabla de unión</emphasis>. El <literal>inverse=\"true\"</"
+"literal> puede ir en cualquier lado de la asociación, en la colección, o en "
+"la unión."
+
+#. Tag: title
+#, no-c-format
+msgid "one to one"
+msgstr "uno a uno"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"Una <emphasis>asociación bidireccional uno-a-uno en una tabla de unión</"
+"emphasis> es extremadamente inusual, pero es posible. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example of a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
+msgstr ""
+"Este es un ejemplo de una <emphasis>asociación bidireccional muchos-a-"
+"muchos</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr "Mapeos de asociación más complejos"
+
+#. Tag: para
+#, 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 ""
+"Uniones de asociación más complejas son <emphasis>extremadamente</emphasis> "
+"raras. Hibernate maneja situaciones más complejas utilizando fragmentos SQL "
+"incluidos en el documento de mapeo. Por ejemplo, si una tabla con datos "
+"históricos de información de cuenta define las columnas "
+"<literal>accountNumber</literal>, <literal>effectiveEndDate</literal> y "
+"<literal>effectiveStartDate</literal>, se mapearÃan asÃ:"
+
+#. Tag: para
+#, 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 ""
+"Entonces puede mapear una asociación a la instancia <emphasis>actual</"
+"emphasis>, la que tiene <literal>effectiveEndDate</literal> nulo, utilizando:"
+
+#. Tag: para
+#, 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 ""
+"En un ejemplo más complejo, imagÃnese que la asociación entre "
+"<literal>Employee</literal> y <literal>Organization</literal> se mantienen "
+"en una tabla <literal>Employment</literal> llena de datos históricos de "
+"empleo. Entonces se puede mapear una asociación al empleador <emphasis>más "
+"reciente</emphasis> del empleado, el que tiene la <literal>startDate</"
+"literal> más reciente, de esta manera:"
+
+#. Tag: para
+#, 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 ""
+"Esta funcionalidad le permite cierto grado de creatividad y flexibilidad, "
+"pero usualmente es más práctico manejar esta clase de casos utilizando HQL o "
+"una petición de criterio."
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/basic_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/basic_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/basic_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,4313 @@
+# translation of basic_mapping.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: basic_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 12:49+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr "Mapeo O/R Básico"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr "Declaración de mapeo"
+
+#. 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 ""
+"Los mapeos objeto/relacional usualmente se definen en un documento XML. El "
+"documento de mapeo está diseñado para que se pueda leer y editar a mano. El "
+"lenguaje de mapeo está centrado en Java, lo que significa que los mapeos se "
+"construyen alrededor de declaraciones de clases persistentes y no alrededor "
+"de declaraciones de tablas."
+
+#. 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 ""
+"Observe que, incluso aunque muchos de los usuarios de Hibernate eligen "
+"escribir el XML a mano, existe un número de herramientas para generar el "
+"documento de mapeo, incluyendo XDoclet, Middlegen y AndroMDA. "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example mapping:"
+msgstr "Este es un ejemplo de mapeo:"
+
+#. 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 ""
+"Ahora vamos a discutir el contenido del documento de mapeo. Sólamente "
+"describiremos los elementos y atributos del documento que Hibernate utiliza "
+"en tiempo de ejecución. El documento de mapeo también comprende algunos "
+"atributos y elementos extra opcionales que afectan los esquemas de la base "
+"de datos exportados por la herramienta de exportación de esquemas (por "
+"ejemplo, el atributo <literal>not-null</literal>)."
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr "Doctype"
+
+#. 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 ""
+"Todos los mapeos XML deben declarar el tipo de documento que se muestra. El "
+"DTD en sà se puede encontrar en la URL mencionada anteriormente, en el "
+"directorio <literal>hibernate-x.x.x/src/org/hibernate </literal>, o en "
+"<literal>hibernate3.jar</literal>. Hibernate siempre buscará el DTD primero "
+"en la ruta de clase. Si el DTD realiza búsquedas utilizando una conexión de "
+"Internet, verifique que su declaración DTD frente al contenido de su ruta de "
+"clase."
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr "EntityResolver"
+
+#. 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 tratará primero de resolver los DTDs en su ruta de clase. La "
+"manera en que lo hace es registrando una implementación <literal>org.xml.sax."
+"EntityResolver</literal> personalizada con el SAXReader que utiliza para "
+"leer los archivos xml. Este <literal>EntityResolver</literal> personalizado "
+"reconoce dos diferentes espacios de nombre del identificador del sistema."
+
+#. 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 ""
+"un <literal>hibernate namespace</literal> se reconoce cuando el resolvedor "
+"se encuentra con un identificador de sistema que inicia por <literal>http://"
+"hibernate.sourceforge.net/</literal>. El resolvedor intenta resolver estas "
+"entidades por medio del cargador de clases, el cual cargó las clases de "
+"Hibernate."
+
+#. 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 ""
+"un <literal>user namespace</literal> se reconoce cuando el resolvedor se "
+"encuentra con un identificador del sistema utilizando un protocolo URL "
+"<literal>classpath://</literal>. El resolvedor intentará resolver estas "
+"entidades por medio de (1) el cargador de clase del contexto del hilo actual "
+"y (2) el cargador de clase, el cual cargó las clases de Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr "Este es un ejemplo de la utilización de los espacios de nombre del usuario: "
+
+#. 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 <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
+msgstr ""
+"En donde <literal>types.xml</literal> es un recurso en el paquete "
+"<literal>your.domain</literal> y comprende un <link linkend=\"mapping-types-"
+"custom\">typedef</link> personalizado."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate-mapping"
+msgstr "Mapeo de Hibernate "
+
+#. 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 ""
+"Este elemento tiene varios atributos opcionales. Los atributos "
+"<literal>schema</literal> y <literal>catalog</literal> especifican que las "
+"tablas a las que se refiere en este mapeo pertenecen al esquema y/o catálogo "
+"mencionado(s). De especificarse, los nombres de tablas serán calificados por "
+"el nombre del esquema y del catálogo dados. De omitirse, los nombres de las "
+"tablas no serán calificados. El atributo <literal>default-cascade</literal> "
+"especifica qué estilo de cascada se debe asumir para las propiedades y "
+"colecciones que no especifican un atributo <literal>cascade</literal>. Por "
+"defecto, el atributo <literal>auto-import</literal> nos permite utilizar "
+"nombres de clase sin calificar en el lenguaje de consulta."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr ""
+"<literal>schema</literal> (opcional): El nombre de un esquema de la base de "
+"datos. "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr ""
+"<literal>catalog</literal> (opcional): El nombre de un catálogo de la base "
+"de datos. "
+
+#. 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> (opcional - por defecto es <literal>none</"
+"literal>): Un estilo de cascada por defecto. "
+
+#. 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> (opcional - por defecto es "
+"<literal>property</literal>): La estrategia que Hibernate debe utilizar para "
+"acceder a todas las propiedades. Puede ser una implementación personalizada "
+"de <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> (opcional - por defecto es <literal>true</"
+"literal>): El valor por defecto para los atributos <literal>lazy</literal> "
+"no especificados de mapeos de clase y de colección."
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>): Especifica si podemos utilizar nombres de clases no calificados "
+"de clases en este mapeo en el lenguaje de consulta."
+
+#. 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> (opcional): Especifica un prefijo de paquete que "
+"se debe utilizar para los nombres de clase no calificados en el documento de "
+"mapeo."
+
+#. 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 ""
+"Si tiene dos clases persistentes con el mismo nombre (sin calificar), debe "
+"establecer <literal>auto-import=\"false\"</literal>. Se presentará una "
+"excepción si usted intenta asignar dos clases al mismo nombre \"importado\"."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>hibernate-mapping</literal> element allows you to nest several "
+"persistent <literal><class></literal> mappings, as shown above. It is, "
+"however, good practice (and expected by some tools) to map only a single "
+"persistent class, or a single class hierarchy, in one mapping file and name "
+"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
+"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
+"<literal>Animal.hbm.xml</literal>."
+msgstr ""
+"El elemento <literal>hibernate-mapping</literal> le permite anidar varios "
+"mapeos <literal><class></literal> persistentes, como se mostró "
+"anteriormente. Sin embargo, es una buena práctica (y algunas herramientas "
+"esperan) que mapee sólamente una clase persistente, o a una sóla jerarquÃa "
+"de clases, en un archivo de mapeo y nombrarlo como la superclase "
+"persistente. Por ejemplo, <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm."
+"xml</literal>, o si utiliza herencia, <literal>Animal.hbm.xml</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Class"
+msgstr "Clase"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can declare a persistent class using the <literal>class</literal> "
+"element. For example:"
+msgstr ""
+"Puede declarar una clase persistente utilizando el elemento <literal>class</"
+"literal>. Por ejemplo:"
+
+#. 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> (opcional): El nombre completamente calificado de la "
+"clase Java persistente (o interfaz). Si se omite este atributo, se asume que "
+"el mapeo es para una entidad que no es 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> (opcional - por defecto es el nombre de la clase no "
+"calificado): El nombre de su tabla en la base de datos."
+
+#. 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> (opcional - predeterminado al nombre "
+"de la clase): Un valor que distingue subclases individuales, usado para el "
+"comportamiento polimórfico. Los valores aceptables incluyen <literal>null</"
+"literal> y <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> (opcional, por defecto es <literal>true</"
+"literal>): Especifica que las instancias de la clase (no) son mutables. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): overrides the schema name specified by "
+"the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>schema</literal> (opcional): Sobrescribe el nombre del esquema "
+"especificado por el elemento raÃz <literal><hibernate-mapping></"
+"literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>catalog</literal> (optional): overrides the catalog name specified "
+"by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>catalog</literal> (opcional): Sobrescribe el nombre del catálogo "
+"especificado por el elemento raÃz <literal><hibernate-mapping></"
+"literal>. "
+
+#. 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> (opcional): Especifica una interfaz a utilizar para "
+"los proxies de inicialización perezosa. Puede especificar el nombre mismo de "
+"la clase. "
+
+#. 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> (opcional, por defecto es <literal>false</"
+"literal>): Especifica que el SQL <literal>UPDATE</literal> debe ser generado "
+"en tiempo de ejecución y puede contener sólamente aquellas columnas cuyos "
+"valores hayan cambiado. "
+
+#. 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> (opcional, por defecto es <literal>false</"
+"literal>): Especifica que el SQL <literal>INSERT</literal> debe ser generado "
+"en tiempo de ejecución y debe contener sólamente aquellas columnas cuyos "
+"valores no son nulos. "
+
+#. 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> (opcional, por defecto es "
+"<literal>false</literal>): Especifica que Hibernate <emphasis>nunca</"
+"emphasis> debe realizar un <literal>UPDATE</literal> SQL a menos de que se "
+"tenga certeza de que realmente se haya modificado un objeto. Sólo cuando un "
+"objeto transitorio ha sido asociado con una sesión nueva utilizando "
+"<literal>update()</literal>), Hibernate realizará una SQL <literal>SELECT</"
+"literal> extra para determinar si realmente se necesita un <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> (opcional, por defecto es <literal>implicit</"
+"literal>): Determina si se utiliza polimorfismo de consulta implÃcito o "
+"explÃcito. "
+
+#. 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> (opcional) especifica una condición SQL "
+"<literal>WHERE</literal> arbitraria para utilizarla en la recuperación de "
+"objetos de esta clase. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>persister</literal> (optional): specifies a custom "
+"<literal>ClassPersister</literal>."
+msgstr ""
+"<literal>persister</literal> (opcional): Especifica un "
+"<literal>ClassPersister</literal> personalizado. "
+
+#. 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> (opcional, por defecto es <literal>1</"
+"literal>) especifica un \"tamaño de lote\" para buscar instancias de esta "
+"clase por identificador."
+
+#. 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> (opcional, por defecto es "
+"<literal>version</literal>): Determina la estrategia optimista de bloqueo. "
+
+#. 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> (opcional): La recuperación perezosa se puede "
+"deshabilitar por completo al establecer <literal>lazy=\"false\"</literal>."
+
+#. 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> (opcional - por defecto es el nombre de la "
+"clase): Hibernate3 permite mapear una clase varias veces, potencialmente a "
+"tablas diferentes. También permite que los mapeos de entidad sean "
+"representados por Maps o XML al nivel de Java. En estos casos, debe "
+"proporcionar un nombre explÃcito arbitrario para la entidad. Para obtener "
+"más información consulte <xref linkend=\"persistent-classes-dynamicmodels\" /"
+"> y <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> (opcional): Una expresión SQL utilizada para "
+"generar una restricción <emphasis>check</emphasis> multi-filas para la "
+"generación automática de esquemas."
+
+#. 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> (opcional): Hibernate puede utilizar los llamados "
+"ROWIDs en las bases de datos. Por ejemplo, en Oracle, Hibernate puede "
+"utilizar la columna extra <literal>rowid</literal> para actualizaciones "
+"rápidas si usted establece esta opción como <literal>rowid</literal>. Un "
+"ROWID es un detalle de implementación y representa la posición fÃsica de la "
+"tupla almacenada."
+
+#. 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> (opcional): Mapea una entidad inmutable y de "
+"sólo lectura a una subselección de base de datos. Es útil si quiere tener "
+"una vista en vez de una tabla base. Vea a continuación para obtener más "
+"información."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>abstract</literal> (optional): is used to mark abstract "
+"superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal> (opcional): Utilizado para marcar superclases "
+"abstractas en las jerarquÃas <literal><union-subclass></literal>."
+
+#. 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><"
+"subclass></literal> element. You can persist any <emphasis>static</"
+"emphasis> inner class. Specify the class name using the standard form i.e. "
+"<literal>e.g.Foo$Bar</literal>."
+msgstr ""
+"Es perfectamente aceptable que la clase persistente mencionada sea una "
+"interfaz. Puede declarar clases que implementan esa interfaz utilizando el "
+"elemento <literal><subclass></literal>. Puede persistir cualquier "
+"clase interna <emphasis>estática</emphasis>. Debe especificar el nombre de "
+"la clase utilizando la forma estándar, por ejemplo, <literal>e.g.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 ""
+"Las clases inmutables, <literal>mutable=\"false\"</literal>, no pueden ser "
+"actualizadas o borradas por la aplicación. Esto le permite a Hibernate "
+"realizar ciertas optimizaciones menores de rendimiento. "
+
+#. 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 ""
+"El atributo opcional <literal>proxy</literal> activa la inicialización "
+"perezosa de instancias persistentes de la clase. Hibernate inicialmente "
+"retornará proxies CGLIB que implementan la interfaz mencionada. El objeto "
+"persistente real será cargado cuando se invoque un método del proxy. Vea "
+"\"Inicialización de colecciones y proxies\" a continuación."
+
+#. 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><class>"
+"</literal> declaration as a <literal><subclass></literal> or "
+"<literal><joined-subclass></literal>. For most purposes, the default "
+"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
+"polymorphism is useful when two different classes are mapped to the same "
+"table This allows a \"lightweight\" class that contains a subset of the "
+"table columns."
+msgstr ""
+"Por polimorfismo <emphasis>implÃcito</emphasis> se entiende que las "
+"instancias de la clase serán devueltas por una consulta que mencione "
+"cualquier superclase, o interfaz implementada, o la clase misma; y que las "
+"instancias de cualquier subclase de la clase serán retornadas por una "
+"petición que nombra a la clase misma. Por polimorfismo <emphasis>explÃcito</"
+"emphasis> se entiende que las instancias de la clase serán devueltas sólo "
+"por consultas que mencionen explÃcitamente la clase. Las consultas que "
+"mencionen la clase retornarán sólo instancias de subclases mapeadas dentro "
+"de esta declaración <literal><class></literal> como una <literal><"
+"subclass></literal> o <literal><joined-subclass></literal>. Para la "
+"mayorÃa de los propósitos el valor por defecto, <literal>polymorphism="
+"\"implicit\"</literal>, resulta apropiado. El polimorfismo explÃcito es útil "
+"cuando dos clases diferentes se encuentran mapeadas a la misma tabla. Esto "
+"permite tener una clase \"liviana\" que contenga un subconjunto de columnas "
+"de la tabla."
+
+#. 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 ""
+"El atributo <literal>persister</literal> le permite personalizar la "
+"estrategia de persistencia para la clase. Por ejemplo, puede especificar su "
+"propia subclase de <literal>org.hibernate.persister.EntityPersister</"
+"literal>, o incluso puede proporcionar una implementación completamente "
+"nueva de la interfaz <literal>org.hibernate.persister.ClassPersister</"
+"literal> que implemente, por ejemplo, la persistencia por medio de llamadas "
+"a procedimientos almacenados, serialización a archivos planos o LDAP. Para "
+"ver un ejemplo simple (de \"persistencia\" a una <literal>Hashtable</"
+"literal>) consulte <literal>org.hibernate.test.CustomPersister</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><subclass></literal> or <literal><joined-subclass></"
+"literal> elements. Although these settings can increase performance in some "
+"cases, they can actually decrease performance in others."
+msgstr ""
+"Los valores de <literal>dynamic-update</literal> y <literal>dynamic-insert</"
+"literal> no son heredados por las subclases y por lo tanto deben "
+"especificarse en los elementos <literal><subclass></literal> o "
+"<literal><joined-subclass></literal>. Aunque en algunos casos, estos "
+"ajustes pueden incrementar el rendimiento, de hecho en otros casos, podrÃan "
+"disminuirlo."
+
+#. 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 ""
+"El uso de <literal>select-before-update</literal> disminuirá el rendimiento. "
+"Es muy útil prevenir que se llame innecesariamente a un disparador de "
+"actualización de la base de datos al volver a unir un gráfico de instancias "
+"separadas a una <literal>Session</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you enable <literal>dynamic-update</literal>, you will have a choice of "
+"optimistic locking strategies:"
+msgstr ""
+"Si activa <literal>dynamic-update</literal>, usted tendrá la opción de "
+"estrategias de bloqueo optimistas:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr "<literal>version</literal>: chequea las columnas de versión/sello de fecha"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr "<literal>all</literal>: chequea todas las columnas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dirty</literal>: check the changed columns, allowing some "
+"concurrent updates"
+msgstr ""
+"<literal>dirty</literal>: chequea las columnas modificadas permitiendo "
+"algunas actualizaciones concurrentes"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr "<literal>none</literal>: no utilice bloqueo optimista"
+
+#. 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 ""
+"Le recomendamos <emphasis>mucho</emphasis> que utilice columnas de versión/"
+"sello de fecha para el bloqueo optimista con Hibernate. Esta estrategia "
+"optimiza el rendimiento y maneja correctamente las modificaciones realizadas "
+"a las instancias separadas, (por ejemplo, cuando se utiliza <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 ""
+"Para un mapeo de Hibernate, no hay diferencia entre una vista y una tabla "
+"base. Esto es transparente a nivel de base de datos, aunque algunos DBMS no "
+"soportan correctamente las vistas, especialmente con las actualizaciones. A "
+"veces usted quiere utilizar una vista, pero no puede crear una en la base de "
+"datos (por ejemplo, con un esquema heredado). En este caso, usted puede "
+"mapear una entidad inmutable de sólo lectura a una expresión de subconsulta "
+"SQL dada."
+
+#. 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><subselect></literal> is available both as an "
+"attribute and a nested mapping element."
+msgstr ""
+"Declara las tablas con las cuales se debe sincronizar esta entidad, "
+"asegurándose de que el auto-vaciado ocurra correctamente y que las consultas "
+"frente a la entidad derivada no devuelvan datos desactualizados. El "
+"<literal><subselect></literal> se encuentra disponible tanto como un "
+"atributo y como un elemento anidado de mapeo."
+
+#. Tag: title
+#, no-c-format
+msgid "id"
+msgstr "id"
+
+#. 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><id></"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"Las clases mapeadas <emphasis>tienen</emphasis> que declarar la columna de "
+"clave primaria de la tabla de la base de datos. La mayorÃa de las clases "
+"también tendrán una propiedad de estilo Javabeans que tenga el identificador "
+"único de una instancia. El elemento <literal><id></literal> define el "
+"mapeo de esa propiedad a la columna de clave primaria."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal> (optional): the name of the identifier property."
+msgstr ""
+"<literal>name</literal> (opcional): El nombre de la propiedad del "
+"identificador. s"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgstr ""
+"<literal>type</literal> (opcional): un nombre que indica el tipo de "
+"Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the primary key column."
+msgstr ""
+"<literal>column</literal> (opcional - por defecto es el nombre de la "
+"propiedad): El nombre de la columna de la clave principal."
+
+#. 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> (opcional - por defecto es un valor "
+"\"sensible\"): Un valor de la propiedad identificadora que indica que una "
+"instancia está recién instanciada (sin guardar), distinguiéndola de las "
+"instancias separadas que fueron guardadas o cargadas en una sesión previa."
+
+#. 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> (opcional - por defecto es <literal>property</"
+"literal>): La estrategia que Hibernate debe utilizar para acceder al valor "
+"de la propiedad. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>name</literal> attribute is missing, it is assumed that the "
+"class has no identifier property."
+msgstr ""
+"Si se omite el atributo <literal>name</literal>, se asume que la clase no "
+"tiene propiedad identificadora."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>unsaved-value</literal> attribute is almost never needed in "
+"Hibernate3."
+msgstr ""
+"El atributo <literal>unsaved-value</literal> casi nunca se necesita en "
+"Hibernate3."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There is an alternative <literal><composite-id></literal> declaration "
+"that allows access to legacy data with composite keys. Its use is strongly "
+"discouraged for anything else."
+msgstr ""
+"Hay una declaración <literal><composite-id></literal> opcional para "
+"permitir acceso a los datos heredados con claves compuestas. Le disuadimos "
+"seriamente de su utilización para cualquier otra cosa."
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr "Generador"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><generator></literal> child element names a Java "
+"class used to generate unique identifiers for instances of the persistent "
+"class. If any parameters are required to configure or initialize the "
+"generator instance, they are passed using the <literal><param></"
+"literal> element."
+msgstr ""
+"El elemento hijo opcional <literal><generator></literal> nombra una "
+"clase Java utilizada para generar identificadores únicos para instancias de "
+"la clase persistente. De requerirse algún parámetro para configurar o "
+"inicializar la instancia del generador, se pasa utilizando el elemento "
+"<literal><param></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 ""
+"Todos los generadores implementan la interfaz <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. Esta es una interfaz muy simple. Algunas "
+"aplicaciones pueden decidir brindar sus propias implementaciones "
+"especializadas. Sin embargo, Hibernate provee un rango de implementaciones "
+"ya incorporadas. Los nombres de atajo para los generadores incorporados son "
+"los siguientes:"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>increment</literal>"
+
+#. 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 ""
+"genera indentificadores de tipo <literal>long</literal>, <literal>short</"
+"literal> o <literal>int</literal> que sólamente son únicos cuando ningún "
+"otro proceso está insertando datos en la misma tabla. <emphasis>No lo "
+"utilice en un clúster.</emphasis>"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>identity</literal>"
+
+#. 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 ""
+"soporta columnas de identidad en DB2, MySQL, MS SQL Server, Sybase y "
+"HypersonicSQL. El identificador devuelto es de tipo <literal>long</literal>, "
+"<literal>short</literal> o <literal>int</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>sequence</literal>"
+
+#. 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 ""
+"usa una secuencia en DB2, PostgreSQL, Oracle, SAP DB, McKoi o un generador "
+"en Interbase. El identificador devuelto es de tipo <literal>long</literal>, "
+"<literal>short</literal> o <literal>int</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>hilo</literal>"
+
+#. 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 ""
+"utiliza un algoritmo alto/bajo para generar eficientemente identificadores "
+"de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</"
+"literal>, dada una tabla y columna como fuente de valores altos (por defecto "
+"<literal>hibernate_unique_key</literal> y <literal>next_hi</literal> "
+"respectivamente). El algoritmo alto/bajo genera identificadores que son "
+"únicos sólamente para una base de datos particular."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>seqhilo</literal>"
+
+#. 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 ""
+"utiliza un algoritmo alto/bajo para generar eficientemente identificadores "
+"de tipo <literal>long</literal>, <literal>short</literal> o <literal>int</"
+"literal>, dada una secuencia de base de datos."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>uuid</literal>"
+
+#. 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 ""
+"utiliza un algoritmo UUID de 128 bits para generar identificadores de tipo "
+"cadena, únicos dentro de una red (se utiliza la direccón IP). El UUID se "
+"codifica como una cadena hexadecimal de 32 dÃgitos de largo."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>guid</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr "utiliza una cadena GUID generada por base de datos en MS SQL Server y MySQL."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>native</literal>"
+
+#. 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 ""
+"selecciona <literal>identity</literal>, <literal>sequence</literal> o "
+"<literal>hilo</literal> dependiendo de las capacidades de la base de datos "
+"subyacente. "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>assigned</literal>"
+
+#. 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><"
+"generator></literal> element is specified."
+msgstr ""
+"deja a la aplicación asignar un identificador al objeto antes de que se "
+"llame a <literal>save()</literal>. Esta es la estrategia por defecto si no "
+"se especifica un elemento <literal><generator></literal>. "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>select</literal>"
+
+#. 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."
+msgstr ""
+"recupera una clave principal asignada por un disparador de base de datos "
+"seleccionando la fila por alguna clave única y recuperando el valor de la "
+"clave principal."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>foreign</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"uses the identifier of another associated object. It is usually used in "
+"conjunction with a <literal><one-to-one></literal> primary key "
+"association."
+msgstr ""
+"utiliza el identificador de otro objeto asociado. Generalmente se usa en "
+"conjunto cón a una asociación de clave principal <literal><one-to-one>"
+"</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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 ""
+"una estrategia de generación de secuencias especilizadas que utiliza una "
+"secuencia de base de datos para el valor real de la generación, pero combina "
+"esto junto con JDBC3 getGeneratedKeys para devolver el valor del "
+"identificador generado como parte de la ejecución de la declaración de "
+"inserción. Esta estrategia está soportada sólamente en los controladores 10g "
+"de Oracle destinados para JDK1.4. Los comentarios en estas declaraciones de "
+"inserción están desactivados debido a un error en los controladores de "
+"Oracle."
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr "Algoritmo alto/bajo"
+
+#. 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 ""
+"Los generadores <literal>hilo</literal> y <literal>seqhilo</literal> brindan "
+"dos implementaciones opcionales del algoritmo alto/bajo. La primera "
+"implementación necesita de una tabla \"especial\" de base de datos para "
+"tener el siguiente valor \"alto\" disponible. La segunda utiliza una "
+"secuencia del estilo de Oracle, donde se encuentre soportada."
+
+#. 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 ""
+"Desafortunadamente, no puede utilizar <literal>hilo</literal> cuando le "
+"provea su propia <literal>Connection</literal> a Hibernate. Cuando Hibernate "
+"está utilizando una fuente de datos del servidor de aplicaciones para "
+"obtener conexiones alistadas con JTA, usted tiene que configurar el "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr "Algoritmo UUID"
+
+#. 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 ""
+"El UUID contiene: la dirección IP, el tiempo de iniciación de la MVJ, con "
+"una precisión de un cuarto de segundo, el tiempo de sistema y un valor de "
+"contador (único en la MVJ). No es posible obtener una dirección MAC o una "
+"dirección de memoria desde el código Java, asà que esto es la mejor opción "
+"sin tener que utilizar JNI."
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr "Columnas de identidad y secuencias"
+
+#. 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 ""
+"Para las bases de datos que soportan columnas de identidad (DB2, MySQL, "
+"Sybase, MS SQL), puede utilizar generación de claves <literal>identity</"
+"literal>. Para las bases de datos que soportan las secuencias (DB2, Oracle, "
+"PostgreSQL, Interbase, McKoi, SAP DB) puede utilizar la generación de claves "
+"del estilo <literal>sequence</literal>. Ambas estrategias requieren dos "
+"consultas SQL para insertar un nuevo objeto. Por ejemplo:"
+
+#. 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 ""
+"Para desarrollos a través de plataformas, la estrategia <literal>native</"
+"literal> eligirá entre las estrategias <literal>identity</literal>, "
+"<literal>sequence</literal> e <literal>hilo</literal>, dependiendo de las "
+"capacidades de la base de datos subyacente."
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr "Identificadores asignados"
+
+#. 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><generator></literal> "
+"element."
+msgstr ""
+"Si quiere que la aplicación asigne los identificadores, en contraposición a "
+"que los genere Hibernate, puede utilizar el generador <literal>assigned</"
+"literal>. Este generador especial utilizará el valor identificador ya "
+"asignado a la propiedad identificadora del objeto. Este generador se utiliza "
+"cuando la clave principal es una clave natural en vez de una clave "
+"sustituta. Este es el comportamiento por defecto si no especifica un "
+"elemento <literal><generator></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 ""
+"El generador <literal>assigned</literal> hace que Hibernate utilice "
+"<literal>unsaved-value=\"undefined\"</literal>. Esto fuerza a Hibernate a ir "
+"a la base de datos para determinar si una instancia es transitoria o "
+"separada, a menos de que haya una propiedad de versión o sello de fecha, o "
+"que usted defina <literal>Interceptor.isUnsaved()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr "Claves primarias asignadas por disparadores"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr ""
+"Hibernate no genera DDL con disparadores. Es para los esquemas heredados "
+"sólamente."
+
+#. 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 ""
+"En el ejemplo anterior, hay una propiedad única llamada "
+"<literal>socialSecurityNumber</literal>, Esta está definida por la clase, "
+"como una clave natural y una clave sustituta llamada <literal>person_id</"
+"literal>, cuyo valor es generado por un disparador."
+
+#. Tag: title
+#, no-c-format
+msgid "Enhanced identifier generators"
+msgstr "Generadores mejorados del identificador"
+
+#. 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 ""
+"Desde el lanzamiento 3.2.3, hay 2 nuevos generadores, los cuales representan "
+"una nueva reflexión sobre dos aspectos diferentes de la generación del "
+"identificador. El primer aspecto es qúe tan portátil es la base de datos; el "
+"segudno es la optimización. La optimización significa que no tiene que "
+"preguntarle a la base de datos por toda petición de un nuevo valor "
+"identificador. Estos dos nuevos generadores tienen el propósito de tomar el "
+"lugar de algunos de los generadores nombrados que describimos anteriormente, "
+"empezando por 3.3.x. Sin embargo, están incluÃdos en los lanzamientos "
+"actuales y puede ser referenciados por 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 ""
+"El primero de estos nuevos generadores es <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal>, el cual tiene el propósito, primero, de "
+"ser el reemplazo para el generador <literal>sequence</literal> y segundo, de "
+"ser un generador de portabilidad mejor que <literal>native</literal>. Esto "
+"se debe a que <literal>native</literal> generalmente escoge entre "
+"<literal>identity</literal> y <literal>sequence</literal>, los cuales tienen "
+"una gran diferencia semántica que puede crear problemas sutiles en las "
+"aplicaciones mirando la portabilidad. Sin embargo, <literal>org.hibernate.id."
+"enhanced.SequenceStyleGenerator</literal>, logra la portabilidad de una "
+"manera diferente. Escoge entre una tabla o una secuencia en la base de datos "
+"para almacenar sus valores en subida, dependiendo de las capacidades del "
+"dialecto que se está utilizando. La diferencia enter esto y <literal>native</"
+"literal> es que el almacenamiento basado en tablas y secuencias tienen la "
+"misma semántica. De hecho, las secuencias son exactamente lo que Hibernate "
+"trata de emular con sus generadores basados en tablas. Este generador tiene "
+"un número de parámetros de configuración:"
+
+#. 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> (opcional, por defecto es "
+"<literal>hibernate_sequence</literal>): el nombre de la secuencia o la tabla "
+"a utilizar."
+
+#. 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> (opcional, por defecto es <literal>1</"
+"literal>): el valor inicial a recuperarse de la secuencia/tabla. En términos "
+"de creación de secuencias, esto es análogo a la cláusula que usualmente se "
+"llama \"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> (opcional - por defecto es <literal>1</"
+"literal>): el valor por el cual las llamadas subsecuentes a la secuencia/"
+"tabla deben diferir. En términos de creación de secuencias, esto es análogo "
+"a la cláusula que usualmente se llama \"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> (opcional - por defecto es "
+"<literal>false</literal>): ¿debemos forzar el uso de una tabla como la "
+"estructura de respaldo aunque puede que el dialecto soporte la secuencia?"
+
+#. 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> (opcional - por defecto es "
+"<literal>next_val</literal>): solo es relevante para estructuras de tablas, "
+"es el nombre de la columna en la tabla, la cual se usa para mantener el "
+"valor."
+
+#. 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> (opcional - por defecto es <literal>none</"
+"literal>): Consulte <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 ""
+"El segundo de estos nuevos generadores es <literal>org.hibernate.id.enhanced."
+"TableGenerator</literal>, el cual tiene el propósito, primero, de reemplazar "
+"el generador <literal>table</literal>, auqnue de hecho funciona como "
+"<literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>, y "
+"segundo, como una re-implementación de <literal>org.hibernate.id."
+"MultipleHiLoPerTableGenerator</literal> que utiliza la noción de los "
+"optimizadores enchufables. Esencialmente, este generador define una tabla "
+"capaz de mantener un número de valores de incremento diferentes de manera "
+"simultánea usando múltiples filas tecleadas claramente. Este generador tiene "
+"un número de parámetros de configuración:"
+
+#. 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> (opcional - por defecto es "
+"<literal>hibernate_sequences</literal>): el nombre de la tabla a utilizar."
+
+#. 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> (opcional - por defecto es "
+"<literal>next_val</literal>): el nombre de la columna en la tabla que se "
+"utiliza para mantener el valor."
+
+#. 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> (opcional - por defecto es "
+"<literal>sequence_name</literal>): el nombre de la columna en la tabla que "
+"se utiliza para mantener la \"llave segmento\". Este es el valor que "
+"identifica que valor de incremento utilizar."
+
+#. 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> (opcional - por defecto es "
+"<literal>default</literal>): El valor \"llave segmento\" para el segmento "
+"desde el cual queremos sacar los valores de incremento para este generador."
+
+#. 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> (opcional - por defecto es "
+"<literal>255</literal>): Se utiliza para la generación de esquemas; el "
+"tamaño de la columna a crear esta columna de llave de segmento."
+
+#. 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> (opcional - por defecto es <literal>1</"
+"literal>): El valor inicial a recuperar de la tabla."
+
+#. 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> (opcional - por defecto es <literal>1</"
+"literal>): El valor por el cual deben diferir las llamadas subsecuentes a la "
+"tabla."
+
+#. 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> (opcional - por defecto es <literal></"
+"literal>): Consulte <xref linkend=\"mapping-declaration-id-enhanced-"
+"optimizers\" />"
+
+#. Tag: title
+#, no-c-format
+msgid "Identifier generator optimization"
+msgstr "Optimización del generador del identificador"
+
+#. 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 ""
+"Para los generadores del identificador que almacenan valores en la base de "
+"datos, es ineficiente el acceder a la base de datos en toda llamada para "
+"generar un nuevo valor identificador. En lugar, puede agrupar una serie de "
+"ellos en la memoria y solo acceder a la base de datos cuando haya acabado su "
+"grupo de valores en memoria. Este es el papel de los optimizadores "
+"enchufables. Actualmente solo los dos generadores mejorados (<xref linkend="
+"\"mapping-declaration-id-enhanced\" />) soportan esta operación."
+
+#. 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> (generalmente este el es valor predeterminado si no "
+"se especifica un optimizador): esto no realizará ninguna optimización y "
+"accederá a la base de datos para toda petición."
+
+#. 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>: aplica un algoritmo hi/lo a los valores recuperados "
+"de la base de datos. Se espera que los valores de la base de datos para este "
+"optimizador sean secuenciales. Los valores recuperados de la estructura de "
+"la base de datos para este optimizador indican el \"número del grupo\". El "
+"<literal>increment_size</literal> se multiplica por ese valor en la memoria "
+"para definir un grupo \"hi value\"."
+
+#. 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>: como en el caso de <literal>hilo</literal>, este "
+"optimizador trata de minimizar el número de hits a la base de datos. Sin "
+"embargo, aquà simplemente almacenamos el valor inicial para el \"siguiente "
+"grupo\" en la estructura de la base de datos en lugar de un valor secuencial "
+"en combinación con un algoritmo de agrupamiento en-memoria. AquÃ, "
+"<literal>increment_size</literal> ser refiere a los valores que provienen de "
+"la base de datos."
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr "composite-id"
+
+#. 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><composite-id></literal> "
+"element accepts <literal><key-property></literal> property mappings "
+"and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr ""
+"Una tabla con clave compuesta se puede mapear con múltiples propiedades de "
+"la clase como propiedades identificadoras. El elemento <literal><"
+"composite-id></literal> acepta los mapeos de propiedad <literal><key-"
+"property></literal> y los mapeos <literal><key-many-to-one></"
+"literal> como elementos hijos."
+
+#. 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 ""
+"La clase persistente <emphasis>tiene</emphasis> que sobrescribir "
+"<literal>equals()</literal> y <literal>hashCode()</literal> para implementar "
+"la igualdad del identificador compuesto. También tiene que implementar "
+"<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 ""
+"Desafortunadamente, este enfoque significa que un objeto persistente es su "
+"propio identificador. No existe otra \"asa\" conveniente más que el objeto "
+"mismo. Debe instanciar una instancia de la clase persistente y poblar sus "
+"propiedades identificadoras antes de que pueda <literal>load()</literal> el "
+"estado persistente asociado a una clave compuesta. Este enfoque lo "
+"denominamos un identificador compuesto <emphasis>incluÃdo</emphasis> y no lo "
+"recomendamos para aplicaciones serias."
+
+#. 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><"
+"composite-id></literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"Un segundo enfoque es lo que denominamos un identificador compuesto "
+"<emphasis>mapeado</emphasis>, en donde las propiedades del identificador "
+"nombradas dentro del elemento <literal><composite-id></literal> son "
+"duplicadas tanto en la clase persistente como en la clase identificadora "
+"separada."
+
+#. 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 ""
+"En este ejemplo, tanto la clase identificadora compuesta "
+"<literal>MedicareId</literal> como la clase de entidad misma tienen "
+"propiedades denominadas <literal>medicareNumber</literal> y "
+"<literal>dependent</literal>. La clase identificadora tiene que sobrescribir "
+"<literal>equals()</literal> y <literal>hashCode()</literal> e implementar "
+"<literal>Serializable</literal>. La desventaja principal de este enfoque es "
+"la duplicación de código."
+
+#. Tag: para
+#, no-c-format
+msgid "The following attributes are used to specify a mapped composite identifier:"
+msgstr ""
+"Los siguientes atributos se utilizan para especificar un identificador "
+"compuesto mapeado:"
+
+#. 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> (opcional, por defecto es <literal>false</"
+"literal>): indica que se utiliza un identificador compuesto mapeado y que "
+"los mapeos de propiedad contenidos se refieren tanto a la clase de entidad "
+"como a la clase identificadora compuesta. "
+
+#. 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> (opcional, pero requerida por un identificador "
+"compuesto mapeado): La clase se utiliza como un identificador compuesto. "
+
+#. 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 ""
+"Vamos a decribir un tercer enfoque, aún más práctico, en donde se implementa "
+"el identificador compuesto como una clase componente en <xref linkend="
+"\"components-compositeid\"/>. Los atributos descritos a continuación "
+"sólamente aplican a este enfoque alternativo:"
+
+#. 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> (opcional, se necesita para este enfoque): Una "
+"propiedad de tipo componente que tiene el identificador compuesto. Consulte "
+"el capÃtulo 9 para obtener mayor información. "
+
+#. 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> (opcional - por defecto es <literal>property</"
+"literal>): La estrategia que Hibernate utiliza para acceder al valor de la "
+"propiedad."
+
+#. 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> (opcional - por defecto es el tipo de propiedad "
+"determinado por la reflección): la clase componente utilizada como un "
+"identificador compuesto. Vea la siguiente sección para obtener mayor "
+"información."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The third approach, an <emphasis>identifier component</emphasis>, is "
+"recommended for almost all applications."
+msgstr ""
+"Este tercer enfoque, un <emphasis>componente identificador</emphasis> es el "
+"que recomendamos para casi todas las aplicaciones. "
+
+#. Tag: title
+#, no-c-format
+msgid "Discriminator"
+msgstr "Discriminador"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><discriminator></literal> element is required for "
+"polymorphic persistence using the table-per-class-hierarchy mapping "
+"strategy. It declares a discriminator column of the table. The discriminator "
+"column contains marker values that tell the persistence layer what subclass "
+"to instantiate for a particular row. A restricted set of types can be used: "
+"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
+"literal>, <literal>byte</literal>, <literal>short</literal>, "
+"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
+"literal>."
+msgstr ""
+"Se necesita el elemento <literal><discriminator></literal> para la "
+"persistencia polimórfica utilizando la estrategia de mapeo de tabla-por-"
+"jerarquÃa-de-clases. Declara una columna discriminadora de la tabla. La "
+"columna discriminidora contiene valores de marca que le dicen a la capa de "
+"persistencia qué subclase instanciar para una fila en particular. Se puede "
+"utilizar un conjunto restringido de tipos: <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> (opcional - por defecto es <literal>class</"
+"literal>) el nombre de la columna discriminadora. "
+
+#. 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> (opcional - por defecto es <literal>string</"
+"literal>) un nombre que indica el tipo 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> (opcional - por defecto es <literal>false</"
+"literal>) \"fuerza\" a Hibernate para especificar los valores "
+"discriminadores permitidos incluso cuando se recuperan todas las instancias "
+"de la clase raÃz. "
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>): establecido como <literal>false</literal> si su columna "
+"discriminadora también es parte de un identificador mapeado compuesto. Lle "
+"dice a Hibernate que no incluya la columna en los SQLs <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> (opcional): una expresión SQL arbitraria que se "
+"ejecuta cuando se tenga que evaluar un tipo. Permite la discriminación con "
+"base en el contenido."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal><"
+"class></literal> and <literal><subclass></literal> elements."
+msgstr ""
+"Los valores reales de la columna discriminadora están especificados por el "
+"atributo <literal>discriminator-value</literal> de los elementos "
+"<literal><class></literal> y <literal><subclass></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 ""
+"El atributo <literal>force</literal> es sólamente útil si la tabla contiene "
+"filas con valores discriminadores \"extra\" que no estén mapeados a una "
+"clase persistente. Generalmente este no es el caso."
+
+#. 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 ""
+"El atributo <literal>formula</literal> le permite declarar una expresión SQL "
+"arbitraria que será utilizada para evaluar el tipo de una fila. Por ejemplo: "
+
+#. Tag: title
+#, no-c-format
+msgid "Version (optional)"
+msgstr "Versión (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><version></literal> element is optional and indicates "
+"that the table contains versioned data. This is particularly useful if you "
+"plan to use <emphasis>long transactions</emphasis>. See below for more "
+"information:"
+msgstr ""
+"El elemento <literal><version></literal> es opcional e indica que la "
+"tabla contiene datos versionados. Esto es particularmente útil si planea "
+"utilizar <emphasis>transacciones largas</emphasis>. Vea a continuación para "
+"obtener mayor información:"
+
+#. 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> (opcional - por defecto es el nombre de la "
+"propiedad): El nombre de la columna que tiene el número de la versión."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of a property of the persistent class."
+msgstr "<literal>name</literal>: El nombre de una propiedad de la clase persistente. "
+
+#. 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> (opcional - por defecto es <literal>integer</"
+"literal>): El tipo del número de la versión. "
+
+#. 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> (opcional - por defecto es <literal>property</"
+"literal>): La estrategia que Hibernate utiliza para acceder al valor de la "
+"propiedad. "
+
+#. 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> (opcional - por defecto es "
+"<literal>undefined</literal>): Un valor de la propiedad de versión que "
+"indica que una instancia se encuentra recién instanciada (sin guardar), "
+"distinguiéndola de las instancias separadas que se guardaron o se cargaron "
+"en una sesión previa. <literal>undefined</literal> especifica que se debe "
+"utilizar el valor de la propiedad identificadora."
+
+#. 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 <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (opcional - por defecto es <literal>never</"
+"literal>): Especifica que este valor de la propiedad de la versión es "
+"generado por la base de datos. Vea la discusión de las <link linkend=\"mapping-generated"
+"\">propiedades generadas</link> para obtener mayor información."
+
+#. 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> (opcional - por defectos es <literal>true</"
+"literal>): Especifica si la columna de la versión debe incluirse en las "
+"declaraciones de inserción SQL. Se puede configurar como <literal>false</"
+"literal> si la columna de la base de datos se define con un valor "
+"predeterminado de <literal>0</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 ""
+"Los números de versión pueden ser de tipo Hibernate <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> o <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 ""
+"Una propiedad de versión o de sello de fecha nunca debe ser nula para una "
+"instancia separada. Hibernate detectará cualquier instancia con una versión "
+"o sello de fecha nulo como transitoria, sin importar qué otras estrategias "
+"<literal>unsaved-value</literal> se hayan especificado. <emphasis>El "
+"declarar una propiedad de versión o sello de fecha nulable es una forma "
+"fácil de evitar cualquier problema con la re-unión transitiva en Hibernate. "
+"Es especialmente útil para la gente que utiliza identificadores asignados o "
+"claves compuestas</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Timestamp (optional)"
+msgstr "Timestamp (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><timestamp></literal> element indicates that the "
+"table contains timestamped data. This provides an alternative to versioning. "
+"Timestamps are a less safe implementation of optimistic locking. However, "
+"sometimes the application might use the timestamps in other ways."
+msgstr ""
+"El elemento opcional <literal><timestamp></literal> indica que la "
+"tabla contiene datos con sellos de fecha. Esto brinda una alternativa al "
+"versionado. Los sellos de tiempo (timestamps) son por naturaleza una "
+"implementación menos segura del bloqueo optimista. Sin embargo, a veces la "
+"aplicación puede usar los sellos de fecha de otras maneras."
+
+#. 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> (opcional - por defecto es el nombre de la "
+"propiedad): El nombre de una columna que tiene el sello de fecha. "
+
+#. 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>: El nombre de una propiedad del estilo JavaBeans de "
+"tipo Java <literal>Date</literal> o <literal>Timestamp</literal> de la clase "
+"persistente. "
+
+#. 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> (opcional - por defecto es <literal>null</"
+"literal>): Un valor de propiedad de versión que indica que una instancia "
+"está recién instanciada (sin guardar), distinguiéndola de instancias "
+"separadas que hayan sido guardadas o cargadas en una sesión previa. "
+"<literal>Undefined</literal> especifica que debe utilizarse el valor de la "
+"propiedad identificadora."
+
+#. 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> (opcional - por defecto es <literal>vm</literal>): "
+"¿Desde dónde debe recuperar Hibernate el valor del sello de fecha? ¿Desde la "
+"base de datos o desde la MVJ actual? Los sellos de fecha con base en la base "
+"de datos provocan un gasto general debido a que Hibernate tiene que llegar "
+"hasta la base de datos para poder determinar el \"siguiente valor\". Es más "
+"seguro utilizarlo en entornos con clústers. No todos los <literal>Dialects</"
+"literal> soportan la recuperación del sello de fecha actual de la base de "
+"datos. Los otros pueden ser poco seguros para utilizarlos como bloqueo "
+"debido a la falta de precisión (por ejemplo, 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 <link linkend=\"mapping-"
+"generated\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (opcional - por defecto es <literal>never</"
+"literal>): Especifica que este valor de la propiedad del sello de fecha en "
+"realidad es generado por la base de datos. Consulte la discusión de las <link linkend=\"mapping-"
+"generated\">propiedades generadas</link> para obtener mayor información."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><Timestamp></literal> is equivalent to <literal><version "
+"type=\"timestamp\"></literal>. And <literal><timestamp source=\"db"
+"\"></literal> is equivalent to <literal><version type=\"dbtimestamp"
+"\"></literal>"
+msgstr ""
+"<literal><Timestamp></literal> es equivalente a <literal><version "
+"type=\"timestamp\"></literal>. Y <literal><timestamp source=\"db\">"
+"</literal> es equivalente a <literal><version type=\"dbtimestamp\"></"
+"literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Property"
+msgstr "Propiedad"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><property></literal> element declares a persistent "
+"JavaBean style property of the class."
+msgstr ""
+"El elemento <literal><property></literal> declara una propiedad "
+"persistente estilo JavaBean de la clase. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>name</literal>: the name of the property, with an initial lowercase "
+"letter."
+msgstr ""
+"<literal>name</literal>: el nombre de la propiedad, con la letra inicial en "
+"minúscula."
+
+#. 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><column></literal> element(s)."
+msgstr ""
+"<literal>column</literal> (opcional - por defecto es el nombre de la "
+"propiedad): El nombre de la columna de la tabla de base de datos mapeada. "
+"Esto se puede especificar también con los elemento(s) anidado(s) "
+"<literal><column></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> (opcional - por defecto es <literal>true</"
+"literal>): Especifica que las columnas mapeadas deben ser incluÃdas en las "
+"declaraciones SQL <literal>UPDATE</literal> y/o <literal>INSERT</literal> . "
+"Especificando ambas como <literal>false</literal> permite una propiedad "
+"\"derivada\", cuyo valor se inicia desde alguna otra propiedad que mapee a "
+"la misma columna (o columnas) o por un disparador u otra aplicación."
+
+#. 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> (opcional): una expresión SQL que define el valor "
+"para una propiedad <emphasis>computada</emphasis>. Las propiedades "
+"computadas no tienen una columna mapeada propia."
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): Especifica que se debe recuperar perezosamente esta propiedad "
+"cuando se acceda por primera vez la variable de instancia. Requiere "
+"instrumentación de código byte en tiempo de compilación."
+
+#. 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> (opcional): Activa la generación DDL de una "
+"restricción de unicidad para las columnas. Además, permite que ésta sea el "
+"objetivo de una <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> (opcional): Activa la generación DDL de una "
+"restricción de nulabilidad para las columnas. "
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>): Especifica que las actualizaciones a esta propiedad requieren o "
+"no de la obtención de un bloqueo optimista. En otras palabras, determina si "
+"debe ocurrir un incremento de versión cuando la propiedad se encuentre "
+"desactualizada."
+
+#. 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 <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (opcional - por defecto es <literal>never</"
+"literal>): Especifica que este valor de la propiedad es de hecho generado "
+"por la base de datos. Consulte discusión sobre las <link linkend=\"mapping-"
+"generated\">propiedades generadas</link> para obtener mayor información. "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr "<emphasis>escribanombre</emphasis> puede ser:"
+
+#. 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 ""
+"El nombre de un tipo básico de Hibernate: <literal>integer, string, "
+"character, date, timestamp, float, binary, serializable, object, blob</"
+"literal>, etc."
+
+#. 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 ""
+"El nombre de una clase Java con un tipo básico predeterminado: <literal>int, "
+"float, char, java.lang.String, java.util.Date, java.lang.Integer, java.sql."
+"Clob</literal>, etc."
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr "El nombre de una clase Java serializable."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
+"literal> etc."
+msgstr ""
+"El nombre declase de un tipo personalizado: <literal>com.illflow.type."
+"MyCustomType</literal> etc."
+
+#. 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 ""
+"Si no especifica un tipo, Hibernate utilizará reflección sobre la propiedad "
+"mencionada para deducir el tipo Hibernate correcto. Hibernate intentará "
+"interpretar el nombre de la clase de retorno del getter de la propiedad "
+"utilizando las reglas 2, 3 y 4 en ese mismo orden. En algunos casos "
+"necesitará el atributo <literal>type</literal>. Por ejemplo, para distinguir "
+"entre <literal>Hibernate.DATE</literal> y <literal>Hibernate.TIMESTAMP</"
+"literal>, o especificar un tipo personalizado."
+
+#. 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 ""
+"El atributo <literal>access</literal> le permite controlar el cómo Hibernate "
+"accederá a la propiedad en tiempo de ejecución. Por defecto, Hibernate "
+"llamará al par de getter/setter de la propiedad. Si usted especifica "
+"<literal>access=\"field\"</literal>, Hibernate se saltará el par get/set y "
+"accederá al campo directamente utilizando reflección. Puede especificar su "
+"propia estrategia de acceso a la propiedad mencionando una clase que "
+"implemente la interfaz <literal>org.hibernate.property.PropertyAccessor</"
+"literal>."
+
+#. 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 ""
+"Una funcionalidad especialmente poderosa son las propiedades derivadas. "
+"Estas propiedades son, por definición, de sólo lectura. El valor de la "
+"propiedad se computa en tiempo de carga. Usted declara la computación como "
+"una expresión SQL y ésta se traduce como una cláusula de subconsulta "
+"<literal>SELECT</literal> en la consulta SQL que carga una instancia:"
+
+#. 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><formula></literal> mapping "
+"element if you do not want to use the attribute."
+msgstr ""
+"Puede referenciar la tabla de las entidades sin declarar un alias o una "
+"columna particular. En el ejemplo dado serÃa <literal>customerId</literal>. "
+"También puede utilizar el elemento anidado de mapeo <literal><formula>"
+"</literal> si no quiere utilizar el atributo."
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "Many-to-one"
+
+#. 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 ""
+"Una asociación ordinaria a otra clase persistente se declara utilizando el "
+"elemento <literal>many-to-one</literal>. El modelo relacional es una "
+"asociación muchos-a-uno; una clave foránea en una tabla referencia la "
+"columna (o columnas) de la clave principal de la tabla destino."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr "<literal>name</literal>: El nombre de la propiedad. "
+
+#. 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><column></literal> "
+"element(s)."
+msgstr ""
+"<literal>column</literal> (opcional): El nombre de la columna de la clave "
+"foránea. Esto también se puede especificar por medio de uno o varios "
+"elementos anidados <literal><column></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> (opcional - por defecto es el tipo de la propiedad "
+"determinado por reflección): El nombre de la clase asociada. "
+
+#. 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> (opcional) especifica qué operaciones deben ir en "
+"cascada desde el objeto padre hasta el objeto asociado. "
+
+#. 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> (opcional - por defecto es <literal>select</"
+"literal>): Escoge entre la recuperación de unión exterior (outer-join) o la "
+"recuperación por selección secuencial."
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>) especifica que las columnas mapeadas deben ser incluÃdas en las "
+"declaraciones SQL <literal>UPDATE</literal> y/o <literal>INSERT</literal>. "
+"El establecer ambas como <literal>false</literal> permite una asociación "
+"puramente \"derivada\" cuyo valor es inicializado desde alguna otra "
+"propiedad que mapea a la misma columna (o columnas), por un disparador o por "
+"otra aplicación."
+
+#. 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>: (opcional): El nombre de una propiedad de "
+"la clase asociada que se encuentra unida a su llave foránea. Si no se "
+"especifica, se utiliza la llave principal de la clase asociada."
+
+#. 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> (opcional): Activa la generación DDL de una "
+"restricción de unicidad para la columna de clave foránea. Además, permite "
+"que éste sea el objetivo de una <literal>property-ref</literal>. puede hacer "
+"que la asociación sea de multiplicidad uno-a-uno."
+
+#. 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> (opcional): Activa la generación DDL de una "
+"restricción de nulabilidad para las columnas de clave foránea. "
+
+#. 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> (opcional - por defecto es <literal>proxy</"
+"literal>): Por defecto, las asociaciones de punto único van con proxies. "
+"<literal>lazy=\"no-proxy\"</literal> especifica que esta propiedad debe ser "
+"recuperada perezosamente cuando se acceda por primera vez a la variable de "
+"instancia. Requiere instrumentación del código byte en tiempo de "
+"compilación. <literal>lazy=\"false\"</literal> especifica que la asociación "
+"siempre será recuperada tempranamente."
+
+#. 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> (opcional - por defecto es <literal>exception</"
+"literal>): Especifica cómo se manejarán las claves foráneas que referencian "
+"las filas que hacen falta. <literal>ignore</literal> tratará una fila "
+"perdida como una asociación nula."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional): the entity name of the associated "
+"class."
+msgstr ""
+"<literal>entity-name</literal> (opcional): El nombre de entidad de la clase "
+"asociada. "
+
+#. 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> (opcional): una expresión SQL que define el valor "
+"para una clave foránea <emphasis>computada</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 ""
+"Establecer el valor del atributo <literal>cascade</literal> con cualquier "
+"valor significativo diferente de <literal>none</literal> propagará ciertas "
+"operaciones al objeto asociado. Los valores significativos están divididos "
+"en tres categorÃas. Primero, las operaciones básicas, las cuales incluyen: "
+"<literal>persist, merge, delete, save-update, evict, replicate, lock y "
+"refresh</literal>; segundo, los valores especiales <literal>delete-orphan</"
+"literal> y tercero, <literal>all</literal> y las combinaciones de "
+"operaciones separadas por comas: <literal>cascade=\"persist,merge,evict\"</"
+"literal> o <literal>cascade=\"all,delete-orphan\"</literal>. Consulte <xref "
+"linkend=\"objectstate-transitive\" /> y allà encontrará una explicación "
+"completa. Observe que las asociaciones con valores únicos, asociaciones "
+"muchos-a-uno y uno-a-uno no soportan el borrado de huérfanos."
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgstr "Este es un ejemplo de una declaración tÃpica <literal>muchos-a-uno</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 ""
+"El atributo <literal>property-ref</literal> se debe utilizar sólamente para "
+"el mapeo de datos heredados donde una clave foránea referencia una clave "
+"única de la tabla asociada, distinta de la clave principal. Este es un "
+"modelo relacional complicado y confuso. Por ejemplo, si la clase "
+"<literal>Product</literal> tuviera un número único serial que no es la clave "
+"principal, el atributo <literal>unique</literal> controla la generación de "
+"DDL de Hibernate con la herramienta SchemaExport."
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr "Entonces el mapeo para <literal>OrderItem</literal> puede utilizar:"
+
+#. Tag: para
+#, no-c-format
+msgid "This is not encouraged, however."
+msgstr "Sin embargo, esto ciertamente no se aconseja. "
+
+#. 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><"
+"properties></literal> element."
+msgstr ""
+"Si la clave única referenciada abarca múltiples propiedades de la entidad "
+"asociada, debe mapear las propiedades dentro de un elemento nombrado "
+"<literal><properties></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the referenced unique key is the property of a component, you can specify "
+"a property path:"
+msgstr ""
+"Si la clave única referenciada es propiedad de un componente, usted puede "
+"especificar una ruta de propiedad: "
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "One-to-one"
+
+#. 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 ""
+"Una asociación uno-a-uno (one-to-one) a otra clase persistente se declara "
+"utilizando un elemento <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> (opcional): especifica que una restricción de "
+"clave foránea en la clave principal de la tabla mapeada referencia la tabla "
+"de la clase asociada. Esta opción afecta el orden en que van en la cascada "
+"<literal>save()</literal> y <literal>delete()</literal> y determina si la "
+"asociación puede ser virtualizada por proxies. La herramienta de exportación "
+"de esquemas también lo utiliza."
+
+#. 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> (opcional): El nombre de una propiedad de la "
+"clase asociada que esté unida a la clave principal de esta clase. Si no se "
+"especifica, se utiliza la clave principal de la clase asociada."
+
+#. 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> (opcional): Casi todas las asociaciones uno-a-uno "
+"mapean a la clave principal de la entidad propietaria. Si este no es el "
+"caso, puede especificar otra columna, o columnas, o una expresión para unir "
+"utilizando una fórmula SQL. Para un obtener un ejemplo consulte <literal>org."
+"hibernate.test.onetooneformula</literal>."
+
+#. 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> (opcional - por defecto es <literal>proxy</"
+"literal>): Por defecto, las asociaciones de punto único van con proxies. "
+"<literal>lazy=\"no-proxy\"</literal> especifica que esta propiedad debe ser "
+"traÃda perezosamente cuando se acceda por primera vez la variable de "
+"instancia. Requiere instrumentación del código byte en tiempo de "
+"compilación. <literal>lazy=\"false\"</literal> especifica que la asociación "
+"siempre será recuperada tempranamente. <emphasis>Observe que si "
+"<literal>constrained=\"false\"</literal>, la aplicación de proxies es "
+"imposible e Hibernate recuperará tempranamente la asociación</emphasis>."
+
+#. Tag: para
+#, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr "Existen dos variedades de asociaciones uno-a-uno: "
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr "asociaciones de clave primaria"
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr "asociaciones de clave foránea única"
+
+#. 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 ""
+"Las asociaciones de claves principales no necesitan una columna extra de la "
+"tabla. Si dos filas están relacionadas por la asociación entonces las dos "
+"filas de tablas comparten el mismo valor de clave principal. Para que dos "
+"objetos estén relacionados por una asociación de clave principal, asegúrese "
+"de que se les asigne el mismo valor de identificador."
+
+#. 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 ""
+"Para una asociación de clave principal, agregue los siguientes mapeos a "
+"<literal>Employee</literal> y <literal>Person</literal> respectivamente:"
+
+#. 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 ""
+"Asegúrese de que las claves principales de las filas relacionadas en las "
+"tablas PERSON y EMPLOYEE sean iguales. Utilizamos una estrategia especial de "
+"generación de identificador de Hibernate denominada <literal>foreign</"
+"literal>:"
+
+#. 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 ""
+"A una instancia recién guardada de <literal>Person</literal> se le asigna el "
+"mismo valor de clave principal que se le asignó a la instancia "
+"<literal>Employee</literal> referida por la propiedad <literal>employee</"
+"literal> de esa <literal>Person</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 ""
+"Opcionalmente, una clave foránea con una restricción de unicidad, desde "
+"<literal>Employee</literal> a <literal>Person</literal>, se puede expresar "
+"como:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This association can be made bidirectional by adding the following to the "
+"<literal>Person</literal> mapping:"
+msgstr ""
+"Esta asociación puede hacerse bidireccional agregando lo siguiente al mapeo "
+"de <literal>Person</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "Natural-id"
+msgstr "Natural-id"
+
+#. 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><"
+"natural-id></literal> element. Hibernate will generate the necessary "
+"unique key and nullability constraints and, as a result, your mapping will "
+"be more self-documenting."
+msgstr ""
+"Aunque recomendamos el uso de claves delegadas como claves principales, debe "
+"tratar de identificar claves naturales para todas las entidades. Una clave "
+"natural es una propiedad o combinación de propiedades que es única y no "
+"nula. También es inmutable. Mapea las propiedades de la clave natural dentro "
+"del elemento <literal><natural-id></literal>. Hibernate generará las "
+"restricciones de nulabilidad y de clave única necesarias y su mapeo será más "
+"auto-documentado."
+
+#. 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 ""
+"Le recomendamos bastante que implemente <literal>equals()</literal> y "
+"<literal>hashCode()</literal> para comparar las propiedades de clave natural "
+"de la entidad. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This mapping is not intended for use with entities that have natural primary "
+"keys."
+msgstr ""
+"Este mapeo no está concebido para la utilización con entidades que tienen "
+"claves principales naturales."
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): Por defecto, se asume que las propiedades de identificadores "
+"naturales son inmutables (constantes)."
+
+#. Tag: title
+#, no-c-format
+msgid "Component and dynamic-component"
+msgstr "Componente y componente dinámico"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element maps properties of a child "
+"object to columns of the table of a parent class. Components can, in turn, "
+"declare their own properties, components or collections. See the \"Component"
+"\" examples below:"
+msgstr ""
+"El elemento <literal><component></literal> mapea propiedades de un "
+"objeto hijo a columnas de la tabla de la clase padre. Los componentes "
+"pueden, a su vez, declarar sus propias propiedades, componentes o "
+"colecciones. Vea a continuación los \"componentes\":"
+
+#. 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> (opcional - por defecto es el tipo de la propiedad "
+"determinado por reflección): El nombre de la clase del componente (hijo). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>insert</literal>: do the mapped columns appear in SQL "
+"<literal>INSERTs</literal>?"
+msgstr ""
+"<literal>insert</literal>: ¿Las columnas mapeadas aparacen en "
+"<literal>INSERTs</literal> SQL? "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>update</literal>: do the mapped columns appear in SQL "
+"<literal>UPDATEs</literal>?"
+msgstr ""
+"<literal>update</literal>: ¿Las columnas mapeadas aparacen en "
+"<literal>UPDATEs</literal> SQL?"
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): Especifica que este componente debe ser recuperado perezosamente "
+"cuando se acceda a la variable de instancia por primera vez. Requiere "
+"instrumentación de código byte en tiempo de compilación."
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>): Especifica que las actualizaciones de este componente requieren o "
+"no la adquisición de un bloqueo optimista. Determina si debe ocurrir un "
+"incremento de versión cuando esta propiedad se encuentra desactualizada."
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): Especifica que existe una restricción de unicidad sobre todas las "
+"columnas mapeadas del componente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The child <literal><property></literal> tags map properties of the "
+"child class to table columns."
+msgstr ""
+"Las etiquetas hijas <literal><property></literal> mapean propiedades "
+"de la clase hija a las columnas de la tabla."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"El elemento <literal><component></literal> permite un subelemento "
+"<literal><parent></literal> que mapea una propiedad de la clase del "
+"componente como una referencia a la entidad contenedora."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><dynamic-component></literal> element allows a "
+"<literal>Map</literal> to be mapped as a component, where the property names "
+"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
+"more information."
+msgstr ""
+"El elemento <literal><dynamic-component></literal> permite que un "
+"<literal>Map</literal> sea mapeado como un componente, en donde los nombres "
+"de las propiedades se refieran a las claves del mapeo. Consulte <xref "
+"linkend=\"components-dynamic\" /> para obtener mayor información. "
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "Propiedades"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><properties></literal> element allows the definition of a "
+"named, logical grouping of the properties of a class. The most important use "
+"of the construct is that it allows a combination of properties to be the "
+"target of a <literal>property-ref</literal>. It is also a convenient way to "
+"define a multi-column unique constraint. For example:"
+msgstr ""
+"El elemento <literal><properties></literal> permite la definición de "
+"un grupo de propiedades lógico con nombre de una clase. El uso más "
+"importante de la contrucción es que permite que una combinación de "
+"propiedades sea el objetivo de una <literal>property-ref</literal>. También "
+"es una forma práctica de definir una restricción de unicidad multicolumna. "
+"Por ejemplo:"
+
+#. 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>: El nombre lógico del agrupamiento. <emphasis>No</"
+"emphasis> es un nombre de propiedad."
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>): Especifica que las actualizaciones de estas propiedades requieren "
+"o no de la adquisición de un bloqueo optimista. Determina si debe ocurrir un "
+"incremento de versión cuando estas propiedades están desactualizadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For example, if we have the following <literal><properties></literal> "
+"mapping:"
+msgstr ""
+"Por ejemplo, si tenemos el siguiente mapeo de <literal><properties></"
+"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 ""
+"Puede que tenga alguna asociación de datos heredados que se refiera a esta "
+"clave única de la tabla de <literal>Person</literal>, en lugar de la clave "
+"principal:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The use of this outside the context of mapping legacy data is not "
+"recommended."
+msgstr ""
+"No recomendamos el uso de este tipo de cosas fuera del contexto del mapeo de "
+"datos heredados. "
+
+#. Tag: title
+#, no-c-format
+msgid "Subclass"
+msgstr "Subclase"
+
+#. 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><subclass></literal> declaration is used. For example:"
+msgstr ""
+"La persistencia polimórfica requiere la declaración de cada subclase de la "
+"clase persistente raÃz. Para la estrategia de mapeo tabla-por-jerarquÃa-de-"
+"clases, se utiliza la declaración <literal><subclass></literal>. Por "
+"ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr ""
+"<literal>name</literal>: El nombre de clase completamente calificado de la "
+"subclase. "
+
+#. 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> (opcional - por defecto es el nombre "
+"de la clase): Un valor que distingue subclases individuales. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface used for "
+"lazy initializing proxies."
+msgstr ""
+"<literal>proxy</literal> (opcional): Especifica una clase o interfaz que se "
+"utiliza para proxies de inicialización perezosa."
+
+#. 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> (opcional, por defecto es <literal>true</literal>): "
+"El establecer <literal>lazy=\"false\"</literal> desactiva el uso de la "
+"recuperación perezosa. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Each subclass declares its own persistent properties and subclasses. "
+"<literal><version></literal> and <literal><id></literal> "
+"properties are assumed to be inherited from the root class. Each subclass in "
+"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
+"this is not specified, the fully qualified Java class name is used."
+msgstr ""
+"Cada subclase debe declarar sus propias propiedades persistentes y "
+"subclases. Se asume que las propiedades <literal><version></literal> y "
+"<literal><id></literal> son heredadas de la clase raÃz. Cada subclase "
+"en una jerarquÃa tiene que definir un <literal>discriminator-value</literal> "
+"único. Si no se especifica ninguno entonces se utiliza el nombre "
+"completamente calificado de clase Java."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
+msgstr ""
+"Para obtener información acerca de los mapeos de herencias consulte <xref "
+"linkend=\"inheritance\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Joined-subclass"
+msgstr "joined-subclass "
+
+#. 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><joined-"
+"subclass></literal> element. For example:"
+msgstr ""
+"Se puede mapear cada subclase a su propia tabla. Esto se llama una "
+"estrategia de mapeo tabla-por-subclase. El estado heredado se recupera "
+"uniendo con la tabla de la superclase. Para hacer esto utilice elemento "
+"<literal><joined-subclass></literal>. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr "<literal>table</literal>: El nombre de tabla de la subclase. "
+
+#. 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> (opcional): Especifica una clase o interfaz que se "
+"debe utilizar para proxies de inicialización perezosa. "
+
+#. 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> (opcional, por defecto es <literal>true</literal>): "
+"El establecer <literal>lazy=\"false\"</literal> desactiva el uso de la "
+"recuperación perezosa. "
+
+#. 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><key></literal> element. The mapping at the start "
+"of the chapter would then be re-written as:"
+msgstr ""
+"No se necesita una columna discriminadora para esta estrategia de mapeo. Sin "
+"embargo, cada subclase debe declarar una columna de tabla que tenga el "
+"identificador del objeto utilizando el elemento <literal><key></"
+"literal>. El mapeo mencionado al comienzo del capÃtulo se reescribirÃa asÃ:"
+
+#. Tag: title
+#, no-c-format
+msgid "Union-subclass"
+msgstr "Union-subclass"
+
+#. 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><"
+"class></literal> declaration. However, if you wish use polymorphic "
+"associations (e.g. an association to the superclass of your hierarchy), you "
+"need to use the <literal><union-subclass></literal> mapping. For "
+"example:"
+msgstr ""
+"Una tercera opción es mapear sólo las clases concretas de una jerarquÃa de "
+"herencia a tablas. Esta se llama la estrategia clase concreta por tabla). "
+"Cada tabla define todos los estados persistentes de la clase, incluyendo el "
+"estado heredado. En Hibernate, no es necesario mapear dichas jerarquÃas de "
+"herencia. Puede mapear cada clase con una declaración <literal><class>"
+"</literal> separada. Sin embargo, si desea utilizar asociaciones "
+"polimórficas (por ejemplo, una asociación a la superclase de su jerarquÃa), "
+"necesita utilizar el mapeo <literal><union-subclass></literal>. Por "
+"ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "No discriminator column or key column is required for this mapping strategy."
+msgstr ""
+"No se necesita una columna o una columna clave discriminadora para esta "
+"estrategia de mapeo."
+
+#. Tag: title
+#, no-c-format
+msgid "Join"
+msgstr "Join"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Using the <literal><join></literal> element, it is possible to map "
+"properties of one class to several tables that have a one-to-one "
+"relationship. For example:"
+msgstr ""
+"Al utilizar el elemento <literal><join></literal>, es posible mapear "
+"las propiedades de una clase a varias tablas que tengan una relación uno-a-"
+"uno. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr "<literal>table</literal>: El nombre de la tabla unida. "
+
+#. 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><join></literal> defined by a class or its "
+"superclasses. It will use an outer join for a <literal><join></"
+"literal> defined by a subclass. If set to <literal>select</literal> then "
+"Hibernate will use a sequential select for a <literal><join></literal> "
+"defined on a subclass. This will be issued only if a row represents an "
+"instance of the subclass. Inner joins will still be used to retrieve a "
+"<literal><join></literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal> (opcional - por defecto es <literal>join</"
+"literal>): Si se establece como <literal>join</literal>, por defecto, "
+"Hibernate utilizará una unión interior (inner join) para recuperar un "
+"<literal><join></literal> definido por una clase o sus superclases. "
+"Utilizará una unión externa (outer join) para un <literal><join></"
+"literal> definido por una subclase. Si se establece como <literal>select</"
+"literal>, entonces Hibernate utilizará una selección secuencial para un "
+"<literal><join></literal> definido en una subclase. Esto se publicará "
+"sólamente si una fila representa una instancia de la subclase. Las uniones "
+"interiores todavÃa serán utilizadas para recuperar un <literal><join></"
+"literal> definido por la clase y sus superclases."
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): De activarse, Hibernate no tratará de insertar o actualizar las "
+"propiedades definidas por esta unión. "
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): De activarse, Hibernate insertará una fila sólo si las "
+"propiedades definidas por esta unión son no-nulas. Siempre utilizará una "
+"unión externa para recuperar las propiedades."
+
+#. 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 ""
+"Por ejemplo, la información domiciliaria de una persona se puede mapear a "
+"una tabla separada, preservando a la vez la semántica de tipo de valor para "
+"todas las propiedades:"
+
+#. 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 ""
+"Con frecuencia, esta funcionalidad sólamente es útil para los modelos de "
+"datos heredados. Recomendamos menos tablas que clases y un modelo de dominio "
+"más detallado. Sin embargo, es útil para cambiar entre estrategias de mapeo "
+"de herencias en una misma jerarquÃa, como se explica más adelante."
+
+#. Tag: title
+#, no-c-format
+msgid "Key"
+msgstr "Key"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><key></literal> element has featured a few times within "
+"this guide. It appears anywhere the parent mapping element defines a join to "
+"a new table that references the primary key of the original table. It also "
+"defines the foreign key in the joined table:"
+msgstr ""
+"Hasta ahora hemos visto el elemento <literal><key></literal> unas "
+"cuantas veces. Aparece en cualquier sitio en que el elemento padre de mapeo "
+"defina una unión a una nueva tabla que referencie la clave principal de la "
+"tabla original. También define la clave foránea en la tabla unida:"
+
+#. 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> (opcional - por defecto es <literal>noaction</"
+"literal>): Especifica si la restricción de clave foránea tiene el borrado en "
+"cascada activado a nivel de base de datos."
+
+#. 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> (opcional): Especifica que la clave foránea "
+"referencia columnas que no son la clave principal de la tabla original. Se "
+"proporciona para los datos heredados."
+
+#. 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> (opcional): Especifica que las columnas de la "
+"clave foránea son no nulables. Esto se implica cuando la clave foránea "
+"también es parte de la clave principal."
+
+#. 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> (opcional): Especifica que la clave foránea nunca "
+"se debe actualizar. Esto se implica cuando la clave foránea también es parte "
+"de la clave principal."
+
+#. 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> (opcional): Especifica que la clave foránea debe "
+"tener una restricción de . Esto se implica cuando la clave foránea también "
+"es la clave principal."
+
+#. 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 ""
+"Para los sistemas en donde el rendimiento es importante, todas las claves "
+"deben ser definidas <literal>on-delete=\"cascade\"</literal>. Hibernate "
+"utiliza una restricción <literal>ON CASCADE DELETE</literal> a nivel de base "
+"de datos, en vez de muchas declaraciones <literal>DELETE</literal> "
+"individuales. Tenga en cuenta que esta funcionalidad evita la estrategia de "
+"bloqueo optimista normal de Hibernate para datos versionados."
+
+#. 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><key not-"
+"null=\"true\"></literal>."
+msgstr ""
+"Los atributos <literal>not-null</literal> y <literal>update</literal> son "
+"útiles al mapear una asociación uno a muchos unidireccional. Si mapea una "
+"unidireccional uno a muchos a una clave foránea no nulable, <emphasis>tiene</"
+"emphasis> que declarar la columna clave utilizando <literal><key not-null="
+"\"true\"></literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Column and formula elements"
+msgstr "Los elementos columna y fórmula"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Mapping elements which accept a <literal>column</literal> attribute will "
+"alternatively accept a <literal><column></literal> subelement. "
+"Likewise, <literal><formula></literal> is an alternative to the "
+"<literal>formula</literal> attribute. For example:"
+msgstr ""
+"Los elementos de mapeo que acepten un atributo <literal>column</literal> "
+"aceptarán opcionalmente un subelemento <literal><column></literal>. De "
+"manera similar, <literal><formula></literal> es una alternativa al "
+"atributo <literal>formula</literal>. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most of the attributes on <literal>column</literal> provide a means of "
+"tailoring the DDL during automatic schema generation. The <literal>read</"
+"literal> and <literal>write</literal> attributes allow you to specify custom "
+"SQL that Hibernate will use to access the column's value. For more on this, "
+"see the discussion of <link linkend=\"mapping-column-read-and-write\">column "
+"read and write expressions</link>."
+msgstr ""
+"La mayorÃa de los atributos en <literal>column</literal> proporcionan una manera de personalizar el DDL durante la generación del esquema automático. Los atributos <literal>read</"
+"literal> y <literal>write</literal> le permiten especificar SQL personalizado que Hibernate utilizará para acceder el valor de la columna. Para obtener mayor información sobre esto, consulte la discusión sobre <link linkend=\"mapping-column-read-and-write\">expresiones de lectura y escritura de columnas</link>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>column</literal> and <literal>formula</literal> elements can "
+"even be combined within the same property or association mapping to express, "
+"for example, exotic join conditions."
+msgstr ""
+"Los elementos <literal>column</literal> y <literal>formula</literal> incluso "
+"se pueden combinar dentro del mismo mapeo de propiedad o asociación para "
+"expresar, por ejemplo, condiciones de unión exóticas."
+
+#. Tag: title
+#, no-c-format
+msgid "Import"
+msgstr "Import"
+
+#. 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 ""
+"Si su aplicación tiene dos clases persistentes con el mismo nombre y no "
+"quiere especificar el nombre del paquete completamenta calificado en las "
+"consultas Hibernate, las clases pueden ser \"importadas\" explÃcitamente, en "
+"lugar de depender de <literal>auto-import=\"true\"</literal>. Incluso puede "
+"importar clases e interfaces que no estén mapeadas explÃcitamente:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr ""
+"<literal>class</literal>: El nombre de clase completamente calificado de "
+"cualquier clase 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> (opcional - por defecto es el nombre de clase sin "
+"calificar): Un nombre que se puede utilizar en el lenguaje de consulta."
+
+#. Tag: title
+#, no-c-format
+msgid "Any"
+msgstr "Any"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There is one more type of property mapping. The <literal><any></"
+"literal> mapping element defines a polymorphic association to classes from "
+"multiple tables. This type of mapping requires more than one column. The "
+"first column contains the type of the associated entity. The remaining "
+"columns contain the identifier. It is impossible to specify a foreign key "
+"constraint for this kind of association. This is not the usual way of "
+"mapping polymorphic associations and you should use this only in special "
+"cases. For example, for audit logs, user session data, etc."
+msgstr ""
+"Hay un tipo más de mapeo de propiedad. El elemento de mapeo <literal><"
+"any></literal> define una asociación polimórfica a clases desde múltiples "
+"tablas. Este tipo de mapeo necesita más de una columna. La primera columna "
+"contiene el tipo de la entidad asociada. Las columnas restantes contienen el "
+"identificador. Es imposible especificar una restricción de clave foránea "
+"para este tipo de asociación. Esta no es la manera usual de mapear "
+"asociaciones polimórficas y sólamente debe usar esto en casos especiales. "
+"Por ejemplo, para registros de auditorÃa, datos de sesión de usuario, etc."
+
+#. 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 ""
+"El atributo <literal>meta-type</literal> le permite especificar a la "
+"aplicación un tipo personalizado que mapea los valores de columnas de la "
+"base de datos a clases persistentes que tengan propiedades identificadoras "
+"del tipo especificado por <literal>id-type</literal>. Tiene que especificar "
+"el mapeo de valores del meta-tipo a nombres de clase."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr "<literal>name</literal>: el nombre de la propiedad."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr "<literal>id-type</literal>: el tipo del identificador."
+
+#. 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> (opcional - por defecto es <literal>string</"
+"literal>): Cualquier tipo que se permita para un mapeo discriminador."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
+"the cascade style."
+msgstr ""
+"<literal>cascade</literal> (opcional- por defecto es <literal>none</"
+"literal>): el estilo de cascada."
+
+#. 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> (opcional - por defecto es <literal>true</"
+"literal>): Especifica si las actualizaciones de esta propiedad requieren o "
+"no de la adquisición del bloqueo optimista. Define si debe ocurrir un "
+"incremento de versión cuando esta propiedad está desactualizada."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate types"
+msgstr "Tipos de Hibernate "
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr "Entidades y Valores"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In relation to the persistence service, Java language-level objects are "
+"classified into two groups:"
+msgstr ""
+"En relación con el servicio de persistencia, los objetos a nivel de lenguaje "
+"Java se clasifican en dos grupos:"
+
+#. 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 ""
+"Una <emphasis>entidad</emphasis> existe independientemente de cualquier otro "
+"objeto que referencie a la entidad. Compare esto con el modelo habitual de "
+"Java en donde un objeto no referenciado es recolectado como basura. Las "
+"entidades deben ser guardadas y borradas explÃcitamente. Sin embargo, los "
+"grabados y borrados se pueden <emphasis>tratar en cascada</emphasis> desde "
+"una entidad padre a sus hijos. Esto es diferente al modelo de persistencia "
+"de objetos por alcance (ODMG) y corresponde más a cómo se utilizan "
+"habitualmente los objetos de aplicación en sistemas grandes. Las entidades "
+"soportan referencias circulares y compartidas, que también pueden ser "
+"versionadas."
+
+#. 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 ""
+"El estado persistente de una entidad consta de las referencias a otras "
+"entidades e instancias de tipo <emphasis>valor</emphasis>. Los valores son "
+"primitivos: colecciones (no lo que está dentro de la colección), componentes "
+"y ciertos objetos inmutables. A diferencia de las entidades, los valores en "
+"particular las colecciones y los componentes, <emphasis>son</emphasis> "
+"persistidos y borrados por alcance. Como los objetos valor y primitivos son "
+"persistidos y borrados junto con sus entidades contenedoras, no se pueden "
+"versionar independientemente. Los valores no tienen identidad independiente, "
+"por lo que dos entidades o colleciones no los pueden compartir."
+
+#. 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 ""
+"Hasta ahora, hemos estado utilizando el término \"clase persistente\" para "
+"referirnos a entidades. Continuaremos haciéndolo asÃ. Sin embargo, no todas "
+"la clases con estado persistente definidas por el usuario son entidades. Un "
+"<emphasis>componente</emphasis> es una clase definida por el usuario con "
+"semántica de valor. Una propiedad Java de tipo <literal>java.lang.String</"
+"literal> también tiene semántica de valor. Dada esta definición, podemos "
+"decir que todos los tipo (clases) provistos por el JDK tienen una semántica "
+"de tipo valor en Java, mientras que los tipos definidos por el usuario se "
+"pueden mapear con semántica de tipo valor o de entidad. La desición corre "
+"por cuenta del desarrollador de la aplicación. Una clase entidad en un "
+"modelo de dominio son las referencias compartidas a una sola instancia de "
+"esa clase, mientras que la composición o agregación usualmente se traducen a "
+"un tipo de valor."
+
+#. Tag: para
+#, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr "Volveremos a revisar ambos conceptos a lo largo de este manual de referencia."
+
+#. 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><"
+"class></literal>, <literal><subclass></literal> and so on are used. "
+"For value types we use <literal><property></literal>, <literal><"
+"component></literal>etc., that usually have a <literal>type</literal> "
+"attribute. The value of this attribute is the name of a Hibernate "
+"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
+"for standard JDK value types out of the box. You can write your own mapping "
+"types and implement your own custom conversion strategies."
+msgstr ""
+"EL desafÃo es mapear el sistema de tipos de Java ( la definición de "
+"entidades y tipos de valor de los desarrolladores al sistema de tipos de SQL/"
+"la base de datos. El puente entre ambos sistemas lo brinda Hibernate. Para "
+"las entidades utilizamos <literal><class></literal>, <literal><"
+"subclass></literal>, etc. Para los tipos de valor utilizamos <literal><"
+"property></literal>, <literal><component></literal>, etc, "
+"usualmente con un atributo <literal>type</literal>. El valor de este "
+"atributo es el nombre de un <emphasis>tipo de mapeo</emphasis> de Hibernate. "
+"Hibernate proporciona un rango de mapeos para tipos de valores del JDK "
+"estándar. Puede escribir sus propios mapeos de tipo e implementar sus "
+"estrategias de conversión personalizadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"With the exception of collections, all built-in Hibernate types support null "
+"semantics."
+msgstr ""
+"Todos los tipos incorporados de Hibernate soportan la semántica de nulos, a "
+"excepción de las colecciones."
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr "Tipos de valores básicos"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
+"categorized into the following:"
+msgstr ""
+"Los <emphasis>tipos de mapeo básicos</emphasis> incorporados se pueden "
+"categorizar asÃ:"
+
+#. 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>"
+
+#. 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 ""
+"Mapeos de tipos de primitivos de Java o de clases de envoltura a los tipos "
+"de columna SQL (especÃfica del vendedor). <literal>boolean, yes_no</literal> "
+"y <literal>true_false</literal> son codificaciones alternativas a "
+"<literal>boolean</literal> de Java o <literal>java.lang.Boolean</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>string</literal>"
+
+#. 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 ""
+"Un mapeo del tipo <literal>java.lang.String</literal> a <literal>VARCHAR</"
+"literal> (u Oracle <literal>VAARCHAR2</literal>)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "<literal>date, time, timestamp</literal>"
+
+#. 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 ""
+"Mapeos de tipo desde <literal>java.util.Date</literal> y sus subclases a "
+"tipos SQL <literal>DATE</literal>, <literal>TIME</literal> y "
+"<literal>TIMESTAMP</literal> (o equivalente)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "<literal>calendar, calendar_date</literal>"
+
+#. 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 ""
+"Mapeos de tipo desde <literal>java.util.Date</literal> y tipos SQL "
+"<literal>TIMESTAMP</literal> y <literal>DATE</literal> (o equivalente)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "<literal>big_decimal, big_integer</literal>"
+
+#. 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 ""
+"Mapeos de tipo desde <literal>java.math.BigDecimal</literal> y <literal>java."
+"math.BigInteger</literal> a <literal>NUMERIC</literal> (o <literal>NUMBER</"
+"literal> de Oracle)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "<literal>locale, timezone, currency</literal>"
+
+#. 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 ""
+"Mapeos de tipo desde <literal>java.util.Locale</literal>, <literal>java.util."
+"TimeZone</literal> y <literal>java.util.Currency</literal> a "
+"<literal>VARCHAR</literal> (o <literal>VARCHAR2</literal> de Oracle). Las "
+"instancias de <literal>Locale</literal> y <literal>Currency</literal> son "
+"mapeadas a sus códigos ISO. Las instancias de <literal>TimeZone</literal> "
+"son mapeadas a sus <literal>ID</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>class</literal>"
+
+#. 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 ""
+"Un mapeo de tipo <literal>java.lang.Class</literal> a <literal>VARCHAR</"
+"literal> (o <literal>VARCHAR2</literal> de Oracle). Una <literal>Class</"
+"literal> es mapeada a su nombre completamente calificado."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>binary</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr "Mapea arreglos de bytes a un tipo binario SQL apropiado."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>text</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
+"literal> type."
+msgstr ""
+"Mapea cadenas largas de Java al tipo SQL <literal>CLOB</literal> o "
+"<literal>TEXT</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>serializable</literal>"
+
+#. 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 ""
+"Mapea tipos serializables Java a un tipo binario SQL apropiado. También "
+"puede indicar el tipo <literal>serializable</literal> de Hibernate con el "
+"nombre de una clase o interfaz serializable Java que no sea por defecto un "
+"tipo básico. "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>clob, blob</literal>"
+
+#. 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 ""
+"Mapeos de tipo para las clases JDBC <literal>java.sql.Clob</literal> y "
+"<literal>java.sql.Blob</literal>. Estos tipos pueden ser inconvenientes para "
+"algunas aplicaciones, pues el objeto blob o clob no pueden ser reusados "
+"fuera de una transacción. Además, el soporte del controlador suele ser malo "
+"e inconsistente."
+
+#. 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>"
+
+#. 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 ""
+"Los mapeos de tipo para lo que usualmente se considera tipos Java mutables. "
+"Aquà es donde Hibernate realiza ciertas optimizaciones apropiadas sólamente "
+"para tipos Java inmutables y la aplicación trata el objeto como inmutable. "
+"Por ejemplo, no debe llamar <literal>Date.setTime()</literal> para una "
+"instancia mapeada como <literal>imm_timestamp</literal>. Para cambiar el "
+"valor de la propiedad y hacer que ese cambio sea persistente, la aplicación "
+"tiene que asignar un objeto nuevo, no idéntico, a la propiedad."
+
+#. 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 ""
+"Los identificadores únicos de entidades y colecciones pueden ser de "
+"cualquier tipo básico excepto <literal>binary</literal>, <literal>blob</"
+"literal> y <literal>clob</literal>. Los identificadores compuestos también "
+"están permitidos, a continuación encontrará mayor información."
+
+#. 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 ""
+"Los tipos de valor básicos tienen sus constantes <literal>Type</literal> "
+"correspondientes definidas en <literal>org.hibernate.Hibernate</literal>. "
+"Por ejemplo, <literal>Hibernate.STRING</literal> representa el tipo "
+"<literal>string</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr "Tipos de valor personalizados"
+
+#. 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 ""
+"Es relativamente fácil para los desarrolladores crear sus propios tipos de "
+"valor. Por ejemplo, puede que quiera persistir propiedades del tipo "
+"<literal>java.lang.BigInteger</literal> a columnas <literal>VARCHAR</"
+"literal>. Hibernate no provee un tipo incorporado para esto. Los tipos "
+"personalizados no están limitados a mapear una propiedad o elemento de "
+"colección a una sola columna de tabla. AsÃ, por ejemplo, podrÃa tener una "
+"propiedad Java <literal>getName()</literal>/<literal>setName()</literal> de "
+"tipo <literal>java.lang.String</literal> que es persistida a las columnas "
+"<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 ""
+"Para implementar un tipo personalizado, implemente <literal>org.hibernate."
+"UserType</literal> o <literal>org.hibernate.CompositeUserType</literal> y "
+"declare las propiedades utilizando el nombre de clase completamente "
+"calificado del tipo. Revise <literal>org.hibernate.test.DoubleStringType</"
+"literal> para ver qué clases de cosas son posibles. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Notice the use of <literal><column></literal> tags to map a property "
+"to multiple columns."
+msgstr ""
+"Observe el uso de etiquetas <literal><column></literal> para mapear "
+"una propiedad a múltiples columnas."
+
+#. 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 ""
+"Las interfaces <literal>CompositeUserType</literal>, "
+"<literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, "
+"y <literal>UserVersionType</literal> brindan soporte para usos más "
+"especializados."
+
+#. 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><"
+"type></literal> element in your mapping files."
+msgstr ""
+"Incluso usted puede proporcionar parámetros a un <literal>UserType</literal> "
+"en el archivo de mapeo. Para hacer esto, su <literal>UserType</literal> "
+"tiene que implementar la interfaz <literal>org.hibernate.usertype."
+"ParameterizedType</literal>. Para brindar parámetros a su tipo "
+"personalizado, puede utilizar el elemento <literal><type></literal> en "
+"sus archivos de mapeo. "
+
+#. 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 ""
+"Ahora el <literal>UserType</literal> puede recuperar el valor del parámetro "
+"denominado <literal>default</literal> del objeto <literal>Properties</"
+"literal> que se le pasa."
+
+#. 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><"
+"typedef></literal> element. Typedefs assign a name to a custom type, and "
+"can also contain a list of default parameter values if the type is "
+"parameterized."
+msgstr ""
+"Si utiliza cierto <literal>UserType</literal> muy frecuentemente, puede ser "
+"útil el definir un nombre más corto para este. Puede hacer esto utilizando "
+"el elemento <literal><typedef></literal>. Los typedefs asignan un "
+"nombre a un tipo personalizado y también pueden contener una lista de "
+"valores predeterminados de parámetros si el tipo se encuentra parametrizado."
+
+#. 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 ""
+"También es posible sobrescribir los parámetros provistos en un typedef sobre "
+"una base de caso por caso utilizando parámetros de tipo en el mapeo de la "
+"propiedad."
+
+#. 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 ""
+"Aunque el amplio espectro de tipos incorporados y de soporte para los "
+"componentes de Hibernate significa que necesitará usar un tipo personalizado "
+"muy raramente, se considera como una buena práctica el utilizar tipos "
+"personalizados para clases no-entidades que aparezcan frecuentemente en su "
+"aplicación. Por ejemplo, una clase <literal>MonetaryAmount</literal> es una "
+"buena candidata para un <literal>CompositeUserType</literal>, incluso cuando "
+"puede ser fácilmente mapeada como un componente. Un razón para esto es la "
+"abstracción. Con un tipo personalizado, sus documentos de mapeo estarán "
+"protegidos contra posibles cambios futuros en la forma de representar "
+"valores monetarios."
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr "Mapeo de una clase más de una vez"
+
+#. 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 ""
+"Es posible proporcionar más de un mapeo para una clase persistente en "
+"particular. En este caso usted debe especificar un <emphasis>nombre de "
+"entidad</emphasis> para aclarar entre las instancias de las dos entidades "
+"mapeadas. Por defecto, el nombre de la entidad es el mismo que el nombre de "
+"la clase. Hibernate le deja especificar el nombre de entidad al trabajar con "
+"objetos persistentes, al escribir consultas, o al mapear asociaciones a la "
+"entidad mencionada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations are now specified using <literal>entity-name</literal> instead "
+"of <literal>class</literal>."
+msgstr ""
+"Las asociaciones ahora se especifican utilizando <literal>entity-name</"
+"literal> en lugar de <literal>class</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr "Identificadores SQL en comillas"
+
+#. 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 ""
+"Puede forzar a Hibernate a que utilice comillas con un identificador en el "
+"SQL generado encerrando el nombre de tabla o de columna entre comillas "
+"sencillas en el documento de mapeo. Hibernate utilizará el estilo de "
+"comillas para el <literal>Dialect</literal> SQL. Usualmente comillas dobles, "
+"a excepción de corchetes para SQL Server y comillas sencillas para MySQL."
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr "Alternativas de metadatos"
+
+#. 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 no es para todo el mundo, asà que hay algunas formas opcionales de "
+"definir metadatos de mapeo O/R en Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr "Utilización de marcado de XDoclet"
+
+#. 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 ""
+"Muchos usuarios de Hibernate prefieren incluir la información de mapeo "
+"directamente en el código fuente usando las <literal>@hibernate.tags</"
+"literal> XDoclet. No abordaremos este enfoque en este manual de referencia "
+"ya que se considera como parte de XDoclet. Sin embargo, incluÃmos el "
+"siguiente ejemplo de la clase <literal>Cat</literal> con los mapeos XDoclet:"
+
+#. Tag: para
+#, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr ""
+"Para obtener más ejemplos de XDoclet e Hibernate consulte el sitio web de "
+"Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr "Utlización de Anotaciones JDK 5.0"
+
+#. 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 introdujo anotaciones del estilo XDoclet a nivel del lenguaje con "
+"chequeo seguro de tipos en tiempo de compilación. Este mecanismo es más "
+"potente que las anotaciones XDoclet y es mejor soportado por herramientas e "
+"IDEs. IntelliJ IDEA, por ejemplo, soporta auto-completación además de "
+"resalte de sintaxis de las anotaciones JDK 5.0. La nueva revisión de la "
+"especificación de EJB (JSR-220) utiliza anotaciones JDK 5.0 como el "
+"mecanismo principal de metadatos para beans de entidad. Hibernate3 "
+"implementa el <literal>EntityManager</literal> del JSR-220 (la API de "
+"persistencia). El soporte para metadatos de mapeo está disponible por medio "
+"del paquete <emphasis>Anotaciones de Hibernate</emphasis>, como una descarga "
+"separada. Tanto los metadatos de EJB3 (JSR-220) como de Hibernate3 se "
+"encuentran soportados."
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr "Este es un ejemplo de una clase POJO anotada como un bean de entidad EJB:"
+
+#. 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 ""
+"El soporte para las anotaciones JDK 5.0 (y JSR-220) todavÃa se encuentra en "
+"progreso. Para obtener más información consulte al módulo de anotaciones de "
+"Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Generated properties"
+msgstr "Propiedades generadas"
+
+#. 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 ""
+"Las propiedades generadas son propiedades cuyos valores son generados por la "
+"base de datos. Usualmente, las aplicaciones de Hibernate necesitaban "
+"<literal>refrescar</literal> los objetos que contenian cualquier propiedad "
+"para la cual la base de datos generará valores. Sin embargo, el marcar "
+"propiedades como generadas deja que la aplicación delegue esta "
+"responsabilidad a Hibernate. Cuando Hibernate emite un INSERT or UPDATE SQL "
+"para una entidad la cual ha definido propiedades generadas, inmediatamente "
+"emite un select para recuperar los valores generados."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties marked as generated must additionally be non-insertable and non-"
+"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"and <link linkend=\"mapping-declaration-property\">simple properties</link>, "
+"can be marked as generated."
+msgstr ""
+"Las propiedades marcadas como generadas tienen que ser además no insertables "
+"y no actualizables. Sólamente las <link linkend=\"mapping-declaration-version\">versiones</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">sellos de fecha</link>, "
+"y <link linkend=\"mapping-declaration-property\">propiedades simples</link> se pueden marcar como generadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>never</literal> (the default): the given property value is not "
+"generated within the database."
+msgstr ""
+"<literal>never</literal> (por defecto): el valor dado de la propiedad no es "
+"generado dentro de la base de datos."
+
+#. 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 <link linkend=\"mapping-declaration-"
+"version\">version</link> and <link linkend=\"mapping-declaration-timestamp"
+"\">timestamp</link> properties can be marked as generated, this option is "
+"not available."
+msgstr ""
+"<literal>insert</literal>: el valor dado de la propiedad es generado en "
+"insert, pero no es regenerado en las actualizaciones posteriores. Las "
+"propiedades como fecha-creada (created-date) se encuentran dentro de esta "
+"categorÃa. Aunque las propiedades <link linkend=\"mapping-declaration-"
+"version\">versión</link> y <link linkend=\"mapping-declaration-timestamp"
+"\">sello de fecha</link> se pueden marcar "
+"como generadas, esta opción no se encuentra disponible."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>always</literal>: the property value is generated both on insert "
+"and on update."
+msgstr ""
+"<literal>always</literal>: el valor de la propiedad es generado tanto en "
+"insert como en update."
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr "Expresiones de lectura y escritura de columnas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows you to customize the SQL it uses to read and write the "
+"values of columns mapped to <link linkend=\"mapping-declaration-property"
+"\">simple properties</link>. For example, if your database provides a set of "
+"data encryption functions, you can invoke them for individual columns like "
+"this: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr ""
+"Hibernate le permite personalizar el SQL que utiliza para leer y escribir los valores de las columnas mapeadas a las <link linkend=\"mapping-declaration-property"
+"\">propiedades simples</link>. Por ejemplo, si su base de datos brinda un grupo de funciones de codificación de "
+"datos, puede invocarlas para columnas individuales como esto: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate applies the custom expressions automatically whenever the property "
+"is referenced in a query. This functionality is similar to a derived-"
+"property <literal>formula</literal> with two differences:"
+msgstr "Hibernate aplica las expresiones personalizadas de manera automática cuando la propiedad se referencia en una petición. Esta funcionalidad es similar a una propiedad derivada <literal>formula</literal> con dos diferencias:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The property is backed by one or more columns that are exported as part of "
+"automatic schema generation."
+msgstr "Esta propiedad está respaldada por una o más columnas que se exportan como parte de la generación automática del esquema. "
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr "La propiedad es de lectura y escritura no de sólo lectura. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>write</literal> expression, if specified, must contain exactly "
+"one '?' placeholder for the value."
+msgstr "Si se especifica la expresión <literal>write</literal> debe contener exactamente un parémetro de sustitución '?' para el valor."
+
+#. Tag: title
+#, no-c-format
+msgid "Auxiliary database objects"
+msgstr "Objetos de bases de datos auxiliares"
+
+#. 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 ""
+"Los objetos de bases de datos auxiliares permiten la creación - CREATE - y "
+"eliminación - DROP - de objetos de bases de datos arbitrarios. Junto con las "
+"herramientas de evolución del esquema de Hibernate, tienen la habilidad de "
+"definir de manera completa el esquema de un usuario dentro de los archivos "
+"de mapeo de Hibernate. Aunque están diseñados especÃficamente para crear y "
+"eliminar cosas como disparadores - triggers- o procedimientos almacenados, "
+"realmente cualquier comando SQL se puede ejecutar por medio de un método "
+"<literal>java.sql.Statement.execute()</literal> aquà es válido (por ejemplo, "
+"ALTERs, INSERTS, etc). Básicamente, hay dos modos para definir objetos de "
+"bases de datos auxiliares:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands in the "
+"mapping file:"
+msgstr ""
+"El primer modo es para numerar explÃcitamente los comandos CREATE y DROP en "
+"el archivo de mapeo: "
+
+#. 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 ""
+"El segundo modo es para proporcionar una clase personalizada que construye "
+"los comandos CREATE y DROP. Esta clase personalizada tiene que implementar "
+"la interfaz <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."
+msgstr ""
+"Adicionalmente, estos objetos de la base de datos se pueden incluir de "
+"manera opcional de forma que aplique sólamente cuando se utilicen ciertos "
+"dialectos. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/batch.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/batch.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/batch.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,484 @@
+# translation of batch.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: batch\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-19 12:57+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr "Procesamiento por lotes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A naive approach to inserting 100,000 rows in the database using Hibernate "
+"might look like this:"
+msgstr ""
+"Un enfoque ingenuo para insertar 100.000 filas en la base de datos "
+"utilizando Hibernate puede verse asÃ: "
+
+#. 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 ""
+"Esto podrÃa caer dentro de una <literal>OutOfMemoryException</literal> en "
+"algún sitio cerca de la fila 50.000. Esto se debe a que Hibernate tiene en "
+"caché todas las instancias de <literal>Customer</literal> recién insertadas "
+"en el caché de nivel de sesión. En este capÃtulo le vamos a mostrar cómo "
+"evitar este problema."
+
+#. 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 ""
+"Si está realizando un procesamiento por lotes (batch processing), es "
+"necesario que habilite el uso del lote JDBC. Esto es esencial si quiere "
+"lograr un rendimiento óptimo. Establezca el tamaño de lote JDBC con un "
+"número razonable (por ejemplo, 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 ""
+"Hibernate desactiva el lote de inserción a nivel de JDBC de forma "
+"transparente si usted utiliza un generador de identificador "
+"<literal>identiy</literal>."
+
+#. 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:"
+msgstr ""
+"También puede realizar este tipo de trabajo en un proceso en donde la "
+"interacción con el caché de segundo nivel se encuentre completamente "
+"desactivado:"
+
+#. 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 ""
+"Sin embargo, esto no es absolutamente necesario ya que podemos establecer "
+"explÃcitamente el <literal>CacheMode</literal> para descativar la "
+"interacción con el caché de segundo nivel."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr "Inserciones de lotes"
+
+#. 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 ""
+"Al hacer persistentes los objetos nuevos es necesario que realice "
+"<literal>flush()</literal> y luego <literal>clear()</literal> en la sesión "
+"regularmente para controlar el tamaño del caché de primer nivel."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr "Actualizaciones de lotes"
+
+#. 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 ""
+"Para recuperar y actualizar datos se aplican las mismas ideas. Además, "
+"necesita utilizar <literal>scroll()</literal> para sacar ventaja de los "
+"cursores del lado del servidor en consultas que retornen muchas filas de "
+"datos."
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr "La interfaz de Sesión sin Estado"
+
+#. 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 ""
+"Opcionalmente, Hibernate proporciona una API orientada a comandos que se "
+"puede utilizar para datos que concurren desde y hacia la base de datos en "
+"forma de objetos separados. Un <literal>StatelessSession</literal> no tiene "
+"un contexto de persistencia asociado con él y no proporciona mucha de la "
+"semántica a un alto nivel de ciclo de vida. En particular, una sesión sin "
+"estado no implementa un caché en primer nivel y tampoco interactúa con "
+"cachés de segundo nivel o de peticiones. No implementa escritura-retrasada "
+"transaccional o chequeo de desactualizaciones automático. Las operaciones "
+"realizadas con la utilización de una sesión sin estado nunca usan cascadas "
+"para las instancias asociadas. La sesión sin estado ignora las colecciones. "
+"Las operaciones llevadas a cabo por una sesión sin estado ignoran el modelo "
+"de evento y los interceptores de Hibernte. Las sesiones sin estado son "
+"vulnerables a efectos de sobrenombamiento de datos debido a la falta de un "
+"caché de primer nivel. Una sesión sin estado es una abstracción en un nivel "
+"más bajo, mucho más cerca del JDBC subyacente."
+
+#. 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 ""
+"En este código de ejemplo, las instancias <literal>Customer</literal> "
+"retornadas por la petición se separan inmediatamente. Nunca se asocian con "
+"ningún contexto de persistencia."
+
+#. 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 ""
+"Las operaciones <literal>insert(), update()</literal> y <literal>delete()</"
+"literal> definidas por la interfaz <literal>StatelessSession</literal> son "
+"consideradas como operaciones directas a nivel de filas de la base de datos. "
+"Esto resulta en una ejecución inmediata de un <literal>INSERT, UPDATE</"
+"literal> SQL o <literal>DELETE</literal> respectivamente. Tienen una "
+"semántica diferente a la de las operaciones <literal>save(), saveOrUpdate()</"
+"literal> y <literal>delete()</literal> definidas por la interfaz "
+"<literal>Session</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+msgstr "Operaciones de estilo DML"
+
+#. 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 (<link linkend=\"queryhql"
+"\">HQL</link>)."
+msgstr ""
+"Como se discutió anteriormente, el mapeo objeto/relacional transparente se "
+"refiere a la administración del estado de objetos. El estado del objeto está "
+"disponible en la memoria. Esto significa que el manipular datos directamente en la "
+"base de datos (utilizando DML (del inglés <literal>Data Manipulation Language</literal>) las declaraciones: <literal>INSERT</literal>, <literal>UPDATE</"
+"literal>, <literal>DELETE</literal>) no afectarán el estado en la memoria. "
+"Sin embargo, Hibernate brinda métodos para la ejecución de declaraciones en "
+"masa DML del estilo de SQL, las cuales se realizan por medio del Lenguaje de "
+"Consulta de Hibernate (<link linkend=\"queryhql"
+"\">HQL</link>)."
+
+#. 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 ""
+"La pseudo-sintáxis para las declaraciones <literal>UPDATE</literal> y "
+"<literal>DELETE</literal> es: <literal>( UPDATE | DELETE ) FROM? EntityName "
+"(WHERE where_conditions)?</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr "Algunos puntos a observar:"
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr "En la cláusula-from, la palabra clave FROM es opcional"
+
+#. 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 ""
+"Sólamente puede haber una entidad mencionada en la cláusula-from y puede "
+"tener un alias. Si el nombre de la entidad tiene un alias entonces cualquier "
+"referencia a la propiedad tiene que ser calificada utilizando ese alias. Si "
+"el nombre de la entidad no tiene un alias entonces es ilegal calificar "
+"cualquier referencia de la propiedad."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
+"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
+"the where-clause, where the subqueries themselves may contain joins."
+msgstr ""
+"No se puede especificar ninguna <link linkend=\"queryhql-joins-forms\">unión</link> ya "
+"sea implÃcita o explÃcita, en una consulta masiva de HQL. Se pueden utilizar "
+"subconsultas en la cláusula-where y en donde las subconsultas puedan "
+"contener uniones en sà mismas. "
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr "La cláusula-where también es opcional."
+
+#. 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 ""
+"Como ejemplo, para ejecutar un <literal>UPDATE</literal> de HQL, utilice el "
+"método <literal>Query.executeUpdate()</literal>. El método es nombrado para "
+"aquellos familiarizados con el <literal>PreparedStatement.executeUpdate()</"
+"literal> de JDBC:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
+"statements, by default, do not effect the <link linkend=\"mapping-"
+"declaration-version\">version</link> or the <link linkend=\"mapping-"
+"declaration-timestamp\">timestamp</link> property values for the affected "
+"entities. However, you can force Hibernate to reset the <literal>version</"
+"literal> or <literal>timestamp</literal> property values through the use of "
+"a <literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
+msgstr ""
+"Para mantenerse de acuerdo con la especificación de EJB3, las declaraciones "
+"<literal>UPDATE</literal> de HQL, por defecto no afectan la <link linkend=\"mapping-"
+"declaration-version\">versión</link> o los valores de la propiedad <link linkend=\"mapping-"
+"declaration-timestamp\">sello de fecha</link> para las entidades afectadas. Sin "
+"embargo, puede obligar a Hibernate a poner en cero apropiadamente los "
+"valores de las propiedades <literal>versión</literal> o <literal>sello de fecha</"
+"literal> por medio de la utilización de una <literal>actualización con versión</"
+"literal>. Esto se logra agregando la palabra clave <literal>VERSIONED</"
+"literal> después de la palabra clave <literal>UPDATE</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 ""
+"Observe que los tipos de versiones personalizados (<literal>org.hibernate."
+"usertype.UserVersionType</literal>) no están permitidos en conjunto con una "
+"declaración <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 ""
+"Para ejecutar un <literal>DELETE</literal> HQL, utilice el mismo método "
+"<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 ""
+"El valor <literal>int</literal> retornado por el método <literal>Query."
+"executeUpdate()</literal> indica el número de entidades afectadas por la "
+"operación. Considere que esto puede estar correlacionado o no con el número "
+"de filas afectadas en la base de datos. Una operación masiva de HQL puede "
+"llegar a causar que se ejecuten múltiples declaraciones SQL reales, por "
+"ejemplo, para una subclase-joined. El número retornado indica el número de "
+"entidades realmente afectadas por la declaración. De vuelta al ejemplo de la "
+"subclase joined, un borrado contra una de las subclases puede resultar, de "
+"hecho, en borrados de no sólamente la tabla a la cual esa subclase esta "
+"mapeada, sino también la tabla \"raÃz\" y potencialmente las tablas de "
+"subclases joined hasta la jerarquÃa de herencia."
+
+#. 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 ""
+"La pseudo-sintáxis para las declaraciones <literal>INSERT</literal> es: "
+"<literal>INSERT INTO EntityName properties_list select_statement</literal>. "
+"Algunos puntos que se deben observar son:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
+"INTO ... VALUES ... form."
+msgstr ""
+"Sólamente se soporta la forma INSERT INTO ... SELECT ..., no la forma 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 ""
+"La lista de propiedades (properties_list) es análoga a la <literal>column "
+"speficiation</literal> en la declaración <literal>INSERT</literal> de SQL. "
+"Para las entidades involucradas en la herencia mapeada, sólamente las "
+"propiedades definidas directamente en ese nivel de clase dado se pueden "
+"utlizar en la lista de propiedades. Las propiedades de la superclase no "
+"están permitidas, y las propiedaeds de la subclase no tienen sentido. Es "
+"decir, las declaraciones <literal>INSERT</literal> son inherentemente no-"
+"polimórficas."
+
+#. 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 puede ser cualquier consulta select de HQL válida con la "
+"advertencia de que los tipos de retorno coincidan con los tipos esperados "
+"por el insert. Actualmente, esto se verifica durante la compilación de la "
+"consulta en vez de permitir que se relegue la verificación a la base de "
+"datos. Sin embargo, esto puede crear problemas entre los <literal>Type</"
+"literal>s de Hibernate, los cuales son <emphasis>equivalentes</emphasis> y "
+"no <emphasis>iguales</emphasis>. Esto puede crear problemas con las uniones "
+"mal hechas entre una propiedad definida como un <literal>org.hibernate.type."
+"DateType</literal> y una propiedad definida como una <literal>org.hibernate."
+"type.TimestampType</literal>, aunque puede que la base de datos no distinga "
+"o no pueda manejar la conversión."
+
+#. 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 ""
+"Para la propiedad id, la declaración insert le da dos opciones. Puede "
+"especificar explÃcitamente la propiedad id en la lista de propiedades "
+"(properties_list ) (en tal caso su valor se toma de la expresión de "
+"selección correspondiente) o se omite de la lista de propiedades (en tal "
+"caso se utiliza un valor generado). Esta última opción sólamente está "
+"disponible cuando se utilizan generadores de id que operan en la base de "
+"datos, intentando utilizar esta opción con cualquier generador de tipo \"en "
+"memoria\" provocará una excepción durante el análisis sintáctico. Note que "
+"para los propósitos de esta discusión, los generadores en la base de datos "
+"son considerados <literal>org.hibernate.id.SequenceGenerator</literal> (y "
+"sus subclases) y cualquier implementador de <literal>org.hibernate.id."
+"PostInsertIdentifierGenerator</literal>. La excepción más importante aquà es "
+"<literal>org.hibernate.id.TableHiLoGenerator</literal>, la cual no se puede "
+"utilizar ya que no expone una manera selectiva de obtener sus valores."
+
+#. 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 ""
+"Para las propiedades mapeadas como <literal>version</literal> o "
+"<literal>timestamp</literal>, la declaración insert le da dos opciones. "
+"Puede especificar la propiedad en la lista de propiedades (en tal caso su "
+"valor se toma de las expresiones de selección correspondientes) o se omite "
+"de la lista de propiedades (en tal caso se utiliza el <literal>seed value</"
+"literal> definido por el <literal>org.hibernate.type.VersionType</literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of an HQL <literal>INSERT</literal> statement "
+"execution:"
+msgstr ""
+"Un ejemplo de la ejecución de la declaración <literal>INSERT</literal> de "
+"HQL:"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/best_practices.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/best_practices.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/best_practices.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,436 @@
+# translation of best_practices.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: best_practices\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 12:52+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr "Prácticas recomendadas"
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"Write fine-grained classes and map them using <literal><component></"
+"literal>:"
+msgstr ""
+"Escriba las clases detalladas y mapéelas utilizando <literal><"
+"component></literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use an <literal>Address</literal> class to encapsulate <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal>. This encourages code reuse and simplifies "
+"refactoring."
+msgstr ""
+"Utilice una clase <literal>Dirección</literal> para encapsular "
+"<literal>calle</literal>, <literal>distrito</literal>, <literal>estado</"
+"literal>, <literal>código postal</literal>. Esto promueve la reutilización "
+"de código y simplifica la refabricación."
+
+#. Tag: term
+#, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr "Declare las propiedades identificadoras en clases persistentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate makes identifier properties optional. There are a range of reasons "
+"why you should use them. We recommend that identifiers be 'synthetic', that "
+"is, generated with no business meaning."
+msgstr ""
+"Las propiedades identificadoras son opcionales en Hibernate. Existe todo "
+"tipo de razones por las que debe usarlas. Recomendamos que los "
+"identificadores sean 'sintéticos', es decir, generados sin ningún "
+"significado empresarial."
+
+#. Tag: term
+#, no-c-format
+msgid "Identify natural keys:"
+msgstr "Identifique las llaves naturales:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Identify natural keys for all entities, and map them using <literal><"
+"natural-id></literal>. Implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the properties that make up the "
+"natural key."
+msgstr ""
+"Identifique las claves naturales de todas las entidades, y mapéelas usando "
+"<literal><natural-id></literal>. Implemente <literal>equals()</"
+"literal> y <literal>hashCode()</literal> para comparar las propiedades que "
+"componen la clave natural."
+
+#. Tag: term
+#, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr "Coloque cada mapeo de clase en su propio fichero:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
+"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
+"sense, particularly in a team environment."
+msgstr ""
+"No use un sólo documento monolÃtico de mapeo. Mapee <literal>com.eg.Foo</"
+"literal> en el archivo <literal>com/eg/Foo.hbm.xml</literal>. Esto tiene "
+"sentido particularmente en un entorno de equipo."
+
+#. Tag: term
+#, no-c-format
+msgid "Load mappings as resources:"
+msgstr "Cargue los mapeos como recursos:"
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr "Despliegue los mapeos junto a las clases que mapean."
+
+#. Tag: term
+#, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr "Considere el externalizar las cadenas de petición:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is recommended if your queries call non-ANSI-standard SQL functions. "
+"Externalizing the query strings to mapping files will make the application "
+"more portable."
+msgstr ""
+"Esta es una buena práctica si sus consultas llaman a funciones SQL que no "
+"son del estándar ANSI. Externalizar las cadenas de consulta a archivos de "
+"mapeo hará la aplicación más portátil. "
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr "Use variables de vinculación."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As in JDBC, always replace non-constant values by \"?\". Do not use string "
+"manipulation to bind a non-constant value in a query. You should also "
+"consider using named parameters in queries."
+msgstr ""
+"Al igual que en JDBC, siempre remplace los valores no constantes con \"?\". "
+"No use la manipulación de cadenas para enlazar un valor no constante en una "
+"consulta. También considere utilizar parámetros con nombre en las consultas."
+
+#. Tag: term
+#, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr "No administre sus propias conexiones JDBC:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows the application to manage JDBC connections, but his "
+"approach should be considered a last-resort. If you cannot use the built-in "
+"connection providers, consider providing your own implementation of "
+"<literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+"Hibernate deja a la aplicación administrar las conexiones JDBC, pero este "
+"enfoque debe considerarse como el último recurso. Si no puede utilizar los "
+"provedores de conexión incorporados, considere proveer su propia "
+"implementación de <literal>org.hibernate.connection.ConnectionProvider</"
+"literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "Consider using a custom type:"
+msgstr "Considere utilizar un tipo personalizado:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose you have a Java type from a library that needs to be persisted but "
+"does not provide the accessors needed to map it as a component. You should "
+"consider implementing <literal>org.hibernate.UserType</literal>. This "
+"approach frees the application code from implementing transformations to/"
+"from a Hibernate type."
+msgstr ""
+"Supónga que tiene un tipo Java de una biblioteca, que necesita hacerse "
+"persistente pero que no provee los métodos de acceso necesarios para "
+"mapearlo como un componente. Debe considerar el implementar <literal>org."
+"hibernate.UserType</literal>. Este enfoque libera al código de aplicación de "
+"implementar transformaciones a/desde un tipo Hibernate."
+
+#. Tag: term
+#, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr "Utilice JDBC codificado a mano cuando se encuentre atascado:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In performance-critical areas of the system, some kinds of operations might "
+"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
+"faster. Please wait until you <emphasis>know</emphasis> something is a "
+"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
+"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
+"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
+"way you can still use the same transaction strategy and underlying "
+"connection provider."
+msgstr ""
+"En áreas de rendimiento crÃtico del sistema, algunos tipos de operaciones "
+"podrÃan beneficiarse del JDBC directo. Sin embargo, no asuma que JDBC es necesariamente más rápido. Por favor, espere hasta que "
+"<emphasis>sepa</emphasis> que se encuentra realmente atascado. Si necesita "
+"utilizar JDBC directo, puede abrir una <literal>Session</literal> de "
+"Hibernate, envuelva su operación JDBC como un objeto <literal>org."
+"hibernate.jdbc.Work</literal> usando esa conexión JDBC. De esta manera puede usar aún la misma estrategia de transacción y el mismo proveedor de conexiones subyacente."
+
+#. Tag: term
+#, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr "Comprenda el vaciado de <literal>Session</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sometimes the Session synchronizes its persistent state with the database. "
+"Performance will be affected if this process occurs too often. You can "
+"sometimes minimize unnecessary flushing by disabling automatic flushing, or "
+"even by changing the order of queries and other operations within a "
+"particular transaction."
+msgstr ""
+"A veces la sesión sincroniza su estado persistente con la base de datos. El "
+"rendimiento se verá afectado si este proceso ocurre con demasiada "
+"frecuencia. A veces puede minimizar el vaciado innecesario deshabilitando el "
+"vaciado automático o incluso cambiando el orden de las consultas u otras "
+"operaciones en una transacción en particular."
+
+#. Tag: term
+#, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr "En una arquitectura con tres niveles considere el utilizar objetos separados:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"When using a servlet/session bean architecture, you can pass persistent "
+"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
+"new session to service each request. Use <literal>Session.merge()</literal> "
+"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
+"database."
+msgstr ""
+"Al usar una arquitectura de servlet/sesión, puede pasar objetos persistentes "
+"en el bean de sesión hacia y desde la capa del servlet/JSP. Use una sesión "
+"nueva para atender el servicio de cada petición. Use <literal>Session.merge()"
+"</literal> o <literal>Session.saveOrUpdate()</literal> para sincronizar los "
+"objetos con la base de datos."
+
+#. Tag: term
+#, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr ""
+"En una arquitectura con dos niveles considere el utilizar contextos largos "
+"de persistencia:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Database Transactions have to be as short as possible for best scalability. "
+"However, it is often necessary to implement long running "
+"<emphasis>application transactions</emphasis>, a single unit-of-work from "
+"the point of view of a user. An application transaction might span several "
+"client request/response cycles. It is common to use detached objects to "
+"implement application transactions. An appropriate alternative in a two "
+"tiered architecture, is to maintain a single open persistence contact "
+"session for the whole life cycle of the application transaction. Then simply "
+"disconnect from the JDBC connection at the end of each request and reconnect "
+"at the beginning of the subsequent request. Never share a single session "
+"across more than one application transaction or you will be working with "
+"stale data."
+msgstr ""
+"Las transacciones de la base de datos tienen que ser tan cortas como sea "
+"posible para obtener una mejor escalabilidad. Sin embargo, con frecuencia es "
+"necesario implementar <emphasis>transacciones de aplicación</emphasis> de "
+"larga ejecución, una sola unidad de trabajo desde el punto de vista de un "
+"usuario. Una transacción de aplicación puede abarcar muchos ciclos de "
+"petición/respuesta del cliente. Es común usar objetos separados para "
+"implementar transacciones de aplicación. Una alternativa apropiada en "
+"arquitecturas de dos niveles, es mantener una sesión de un sólo contacto de "
+"persistencia abierto para todo el ciclo de vida de la transacción de "
+"aplicación. Luego simplemente desconectar de la conexión JDBC al final de "
+"cada petición y reconectar al comienzo de la petición subsecuente. Nunca "
+"comparta una sesión única a través de más de una transacción de aplicación o "
+"estará trabajando con datos desactualizados."
+
+#. Tag: term
+#, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr "No trate las excepciones como recuperables:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is more of a necessary practice than a \"best\" practice. When an "
+"exception occurs, roll back the <literal>Transaction</literal> and close the "
+"<literal>Session</literal>. If you do not do this, Hibernate cannot "
+"guarantee that in-memory state accurately represents the persistent state. "
+"For example, do not use <literal>Session.load()</literal> to determine if an "
+"instance with the given identifier exists on the database; use "
+"<literal>Session.get()</literal> or a query instead."
+msgstr ""
+"Esto es más bien una práctica necesaria más que una práctica \"recomendada"
+"\". Cuando ocurra una excepción, deshaga la <literal>Transaction</literal> y "
+"cierre la <literal>Session</literal>. Si no lo hace, Hibernate no puede "
+"garantizar que el estado en memoria representa con exactitud el estado "
+"persistente. Por ejemplo, no utilice <literal>Session.load()</literal> para "
+"determinar si una instancia con el identificador dado existe en la base de "
+"datos; en cambio, use <literal>Session.get()</literal> o una consulta."
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr "Prefiera una recuperación perezosa para las asociaciones:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use eager fetching sparingly. Use proxies and lazy collections for most "
+"associations to classes that are not likely to be completely held in the "
+"second-level cache. For associations to cached classes, where there is an a "
+"extremely high probability of a cache hit, explicitly disable eager fetching "
+"using <literal>lazy=\"false\"</literal>. When join fetching is appropriate "
+"to a particular use case, use a query with a <literal>left join fetch</"
+"literal>."
+msgstr ""
+"No utilice con frecuencia la recuperación temprana. Use proxies y "
+"colecciones perezosas para la mayorÃa de asociaciones a clases que "
+"probablemente no se encuentren en el caché de segundo nivel. Para las "
+"asociaciones a clases en caché, donde hay una probabilidad de acceso a caché "
+"extremadamente alta, deshabilite explÃcitamente la recuperación temprana "
+"usando <literal>lazy=\"false\"</literal>. Cuando la recuperación por unión "
+"sea apropiada para un caso de uso en particular, utilice una consulta con un "
+"<literal>left join fetch</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
+"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr ""
+"Use el patrón de <emphasis>sesión abierta en vista</emphasis> o una "
+"<emphasis>fase de ensamblado</emphasis> disciplinada para evitar problemas "
+"con datos no recuperados."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
+"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
+"purposes: first, they work around the problem that entity beans are not "
+"serializable; second, they implicitly define an assembly phase where all "
+"data to be used by the view is fetched and marshalled into the DTOs before "
+"returning control to the presentation tier. Hibernate eliminates the first "
+"purpose. Unless you are prepared to hold the persistence context (the "
+"session) open across the view rendering process, you will still need an "
+"assembly phase. Think of your business methods as having a strict contract "
+"with the presentation tier about what data is available in the detached "
+"objects. This is not a limitation of Hibernate. It is a fundamental "
+"requirement of safe transactional data access."
+msgstr ""
+"Hibernate libera al desarrollador de escribir tediosos <emphasis>objetos de "
+"transferencia de datos (DTO del inglés Data Transfer Objects)</emphasis>. En "
+"una arquitectura tradicional de EJB, los DTOs tienen un propósito doble: "
+"primero, atacan el problema de que los beans de entidad no son "
+"serializables. Segundo, definen implÃcitamente una fase de ensamblado cuando "
+"se recuperan y se forman (marshalling) todos los datos a usar por la vista "
+"en los DTOs antes de devolver el control al nivel de presentación. Hibernate "
+"elimina el primer propósito. Sin embargo, aún necesita una fase de "
+"ensamblado a menos de que esté preparado para tener el contexto de "
+"persistencia (la sesión) abierto a través del proceso de entrega de la "
+"vista. Piense en sus métodos empresariales como si tuviesen un contrato "
+"estricto con el nivel de presentación sobre qué datos están disponibles en "
+"los objetos separados. Esta no es una limitación de Hibernate. Este es un "
+"requerimiento fundamental de acceso seguro a datos transaccionales."
+
+#. Tag: term
+#, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr "Considere abstraer su lógica empresarial de Hibernate:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hide Hibernate data-access code behind an interface. Combine the "
+"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
+"patterns. You can even have some classes persisted by handcoded JDBC "
+"associated to Hibernate via a <literal>UserType</literal>. This advice is, "
+"however, intended for \"sufficiently large\" applications. It is not "
+"appropriate for an application with five tables."
+msgstr ""
+"Oculte el código de acceso a datos de Hibernate detrás de una interfaz. "
+"Combine los patrones <emphasis>DAO</emphasis> y <emphasis>sesión local de "
+"hilo</emphasis>. Incluso puede hacer algunas clases persistentes por medio "
+"de JDBC escrito a mano, asociadas a Hibernate por medio de un "
+"<literal>UserType</literal>. Sin embargo, este consejo va para las "
+"aplicaciones \"suficientemente grandes\". No es apropiado para una "
+"aplicación con cinco tablas."
+
+#. Tag: term
+#, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr "No utilice mapeos de asociación exóticos:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Practical test cases for real many-to-many associations are rare. Most of "
+"the time you need additional information stored in the \"link table\". In "
+"this case, it is much better to use two one-to-many associations to an "
+"intermediate link class. In fact, most associations are one-to-many and many-"
+"to-one. For this reason, you should proceed cautiously when using any other "
+"association style."
+msgstr ""
+"Son raros los casos de uso de asociaciones reales muchos-a-muchos. La mayor "
+"parte del tiempo necesita información adicional almacenada en una \"tabla de "
+"enlace\". En este caso, es mucho mejor usar dos asociaciones uno-a-muchos a "
+"una clase de enlace intermedio. De hecho, la mayorÃa de las asociaciones son "
+"uno-a-muchos y muchos-a-uno. Por esta razón, debe tener cuidado al utilizar "
+"cualquier otro estilo de asociación."
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr "Prefiera las asociaciones bidireccionales:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Unidirectional associations are more difficult to query. In a large "
+"application, almost all associations must be navigable in both directions in "
+"queries."
+msgstr ""
+"Las asociaciones unidireccionales son más difÃciles de consultar. En una "
+"aplicación grande, casi todas las asociaciones deben ser navegables en ambas "
+"direcciones en consultas."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/bibliography.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/bibliography.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/bibliography.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,53 @@
+# translation of bibliography.po to
+# Language es-ES translations for Branch package.
+#
+# Automatically generated, 2009.
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: bibliography\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-03-17 08:53+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr "Referencias"
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr "Patrones de la arquitectura de aplicaciones empresariales"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr "Martin"
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr "Persistencia de Java con Hibernate"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr "Segunda edición de Hibernate en acción"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr "Christian"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr "Gavin"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/collection_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/collection_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/collection_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1234 @@
+# translation of collection_mapping.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: collection_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-03-16 10:27+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mapping"
+msgstr "Mapeos de colección "
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr "Colecciones persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate requires that persistent collection-valued fields be declared as "
+"an interface type. For example:"
+msgstr ""
+"Hibernate requiere que los campos valuados en colección persistente se "
+"declaren como un tipo de interfaz. Por ejemplo:"
+
+#. 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 ""
+"La interfaz real puede ser <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> o lo que usted quiera (donde \"lo que usted quiera"
+"\" significa que tendrá que escribir una implementación de <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 ""
+"Note cómo se inicializó la variable de instancia con una instancia de "
+"<literal>HashSet</literal>. Esta es la mejor forma de inicializar las "
+"propiedades valuadas en colección de instancias recién instanciadas (no "
+"persistentes). Cuando hace persistente la instancia, llamando a "
+"<literal>persist()</literal>, por ejemplo, Hibernate realmente remplazará el "
+"<literal>HashSet</literal> con una instancia de una implementación de "
+"<literal>Set</literal> propia de Hibernate. Observe los siguientes errores:"
+
+#. 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 ""
+"Las colecciones persistentes inyectadas por Hibernate se comportan como "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> o <literal>ArrayList</literal>, "
+"dependiendo del tipo de interfaz. "
+
+#. 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 ""
+"Las instancias de colecciones tienen el comportamiento usual de los tipos de "
+"valor. Son automáticamente persistidas al ser referenciadas por un objeto "
+"persistente y se borran automáticamente al desreferenciarse. Si una "
+"colección se pasa de un objeto persistente a otro, puede que sus elementos "
+"se muevan de una tabla a otra. Dos entidades no pueden compartir una "
+"referencia a la misma instancia de colección. Debido al modelo relacional "
+"subyacente, las propiedades valuadas en colección no soportan la semántica "
+"de valor nulo. Hibernate no distingue entre una referencia de colección nula "
+"y una colección vacÃa."
+
+#. 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 ""
+"Utilice las colecciones persistentes de la misma forma en que utiliza "
+"colecciones de Java ordinarias. Sin embargo, asegúrese de que entiende la "
+"semántica de las asociaciones bidireccionales (se discuten más adelante)."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr "Mapeos de colección"
+
+#. 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 ""
+"Hay bastantes rangos de mapeos que se pueden generar para colecciones que "
+"cubren muchos modelos relacionales comúnes. Le recomendamos que experimente "
+"con la herramienta de generación de esquemas para comprender cómo se "
+"traducen varias declaraciones de mapeo a tablas de bases de datos."
+
+#. 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><set></literal> element is "
+"used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"El elemento de mapeo de Hibernate usado para mapear una colección depende "
+"del tipo de la interfaz. Por ejemplo, un elemento <literal><set></"
+"literal> se utiliza para mapear propiedades de tipo <literal>Set</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Apart from <literal><set></literal>, there is also <literal><"
+"list></literal>, <literal><map></literal>, <literal><bag></"
+"literal>, <literal><array></literal> and <literal><primitive-"
+"array></literal> mapping elements. The <literal><map></literal> "
+"element is representative:"
+msgstr ""
+"Aparte de <literal><set></literal>, existen además los elementos de "
+"mapeo <literal><list></literal>, <literal><map></literal>, "
+"<literal><bag></literal>, <literal><array></literal> y "
+"<literal><primitive-array></literal>. El elemento <literal><map>"
+"</literal> es representativo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr "<literal>name</literal>: el nombre de la propiedad de colección"
+
+#. 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> (opcional - por defecto es el nombre de la "
+"propiedad): el nombre de la tabla de colección. No se utiliza para "
+"asociaciones uno-a-muchos."
+
+#. 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> (opcional): el nombre de un esquema de tablas para "
+"sobrescribir el esquema declarado en el elemento raÃz"
+
+#. 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> (opcional - por defecto es <literal>true</literal>): "
+"deshabilita la recuperación perezosa y especifica que la asociación siempre "
+"es recuperada tempranamente. También se puede utilizar para activar una "
+"recuperación \"extra-perezoza\", en donde la mayorÃa de las operaciones no "
+"inicializan la colección. Esto es apropiado para colecciones grandes."
+
+#. 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> (opcional - por defecto es <literal>false</"
+"literal>): marca esta colección como el extremo \"inverso\" de una "
+"asociación bidireccional."
+
+#. 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> (opcional - por defecto es <literal>none</"
+"literal>): habilita operaciones en cascada para entidades hijas."
+
+#. 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> (opcional): especifica una colección con "
+"ordenamiento <literal>natural</literal>, o una clase comparadora dada."
+
+#. 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> (opcional, sólamente en JDK1.4): especifica una "
+"columna de tabla o columnas que definen el orden de iteración del "
+"<literal>Map</literal>, <literal>Set</literal> o bag junto con un "
+"<literal>asc</literal> o <literal>desc</literal> opcional."
+
+#. 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> (opcional): especifica una condición "
+"<literal>WHERE</literal> de SQL arbitraria que se utiliza al recuperar o "
+"quitar la colección. Esto es útil si la colección debe contener sólamente un "
+"subconjunto de los datos disponibles."
+
+#. 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> (opcional, por defecto es <literal>select</"
+"literal>): Elige entre la recuperación por unión externa (outer-join), la "
+"recuperación por selección secuencial y la recuperación por subselección "
+"secuencial."
+
+#. 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> (opcional, por defecto es <literal>1</"
+"literal>): especifica un \"tamaño de lote\" para recuperar perezosamente "
+"instancias de esta colección."
+
+#. 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> (opcional - por defecto es <literal>property</"
+"literal>): La estrategia que Hibernate utiliza para acceder al valor de la "
+"propiedad de colección."
+
+#. 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>optimistic-lock</literal> (opcional - por defecto es <literal>true</"
+"literal>): Especifica que los cambios de estado de la colección causan "
+"incrementos de la versión de la entidad dueña. Para asociaciones uno a "
+"muchos, es posible que quiera deshabilitar esta opción."
+
+#. 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> (opcional - por defectos es <literal>true</"
+"literal>): Un valor <literal>false</literal> especifica que los elementos de "
+"la colección nunca cambian. En algunos casos, esto permite una pequeña "
+"optimización de rendimiento."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr "Claves foráneas de colección"
+
+#. 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><key></"
+"literal> element."
+msgstr ""
+"Las instancias de colección se distinguen en la base de datos por la clave "
+"foránea de la entidad que posee la colección. Se hace referencia a esta "
+"clave foránea como la <emphasis>columna clave de colección</emphasis> o "
+"columnas de la tabla de colección. El elemento <literal><key></"
+"literal> mapea la columna clave de la colección."
+
+#. 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 ""
+"Puede haber una restricción de nulabilidad sobre la columna de clave "
+"foránea. Para la mayorÃa de las colecciones, esto es implÃcito. Para "
+"asociaciones unidireccionales uno-a-muchos, la columna de clave foránea es "
+"nulable por defecto, de modo que puede que necesite especificar <literal>not-"
+"null=\"true\"</literal>."
+
+#. Tag: para
+#, no-c-format
+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>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See the previous chapter for a full definition of the <literal><key></"
+"literal> element."
+msgstr ""
+"Vea el capÃtulo anterior para obtener una definición completa del elemento "
+"<literal><key></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr "Elementos de collección"
+
+#. 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 ""
+"Las colecciones pueden contener casi cualquier tipo de Hibernate, "
+"incluyendo: los tipos básicos, personalizados, componentes y referencias a "
+"otras entidades. Esta es una diferencia importante. Un objeto en una "
+"colección puede ser manejado con una semántica de \"valor\" (su ciclo de "
+"vida depende completamente del propietario de la colección) o podrÃa ser una "
+"referencia a otra entidad, con su propio ciclo de vida. En el último caso, "
+"sólamente el \"enlace\" entre los dos objetos se considera como un estado "
+"mantenido por la colección."
+
+#. 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><element></"
+"literal> or <literal><composite-element></literal>, or in the case of "
+"entity references, with <literal><one-to-many></literal> or "
+"<literal><many-to-many></literal>. The first two map elements with "
+"value semantics, the next two are used to map entity associations."
+msgstr ""
+"Se hace referencia al tipo contenido como el <emphasis>tipo de elemento de "
+"la colección</emphasis>. Los elementos de colección son mapeados por "
+"<literal><element></literal> o <literal><composite-element></"
+"literal>, o en el caso de referencias de entidades, con <literal><one-to-"
+"many></literal> o <literal><many-to-many></literal>. Las dos "
+"primeras mapean elementos con semántica de valor, los dos siguientes se "
+"utilizan para mapear asociaciones de entidades."
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr "Colecciones indexadas"
+
+#. 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><map-key></literal>. It can be "
+"an entity reference mapped with <literal><map-key-many-to-many></"
+"literal>, or it can be a composite type mapped with <literal><composite-"
+"map-key></literal>. The index of an array or list is always of type "
+"<literal>integer</literal> and is mapped using the <literal><list-"
+"index></literal> element. The mapped column contains sequential integers "
+"that are numbered from zero by default."
+msgstr ""
+"Todos los mapeos de colección, excepto aquellos con semántica de set o bag, "
+"necesitan una <emphasis>columna Ãndice</emphasis> en la tabla de colección. "
+"Una columna Ãndice es una columna que mapea a un Ãndice de array o Ãndice de "
+"<literal>List</literal> o llave de <literal>Map</literal>. El Ãndice de un "
+"<literal>Map</literal> puede ser de cualquier tipo básico, mapeado con "
+"<literal><map-key></literal>. Puede ser una referencia de entidad "
+"mapeada con <literal><map-key-many-to-many></literal>, o puede ser un "
+"tipo compuesto mapeado con <literal><composite-map-key></literal>. El "
+"Ãndice de un array o lista es siempre de tipo <literal>integer</literal> y "
+"se mapea utilizando el elemento <literal><list-index></literal>. La "
+"columna mapeada contiene enteros secuenciales numerados desde cero, por "
+"defecto."
+
+#. Tag: para
+#, no-c-format
+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."
+
+#. 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> (opcional - por defecto es <literal>0</literal>): el "
+"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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr "<literal>type</literal> (requerido): el tipo de las claves del mapa."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the foreign key column for "
+"the collection index values."
+msgstr ""
+"<literal>column</literal> (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."
+
+#. 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. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your table does not have an index column, and you still wish to use "
+"<literal>List</literal> as the property type, you can map the property as a "
+"Hibernate <emphasis><bag></emphasis>. A bag does not retain its order "
+"when it is retrieved from the database, but it can be optionally sorted or "
+"ordered."
+msgstr ""
+"Si su tabla no tiene una columna Ãndice y todavÃa desea utilizar "
+"<literal>List</literal> como tipo de propiedad, puede mapear la propiedad "
+"como un <emphasis><bag></emphasis> de Hibernate. Un bag (bolsa) no "
+"retiene su orden al ser recuperado de la base de datos, pero puede ser "
+"ordenado o clasificado de manera opcional."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of values and many-to-many associations"
+msgstr "Colecciones de valores y asociaciones muchos-a-muchos"
+
+#. 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 ""
+"Cualquier colección de valores o asociación muchos-a-muchos requiere una "
+"<emphasis>tabla de colección</emphasis> dedicada con una columna o columnas "
+"de clave foránea, <emphasis>columna de elemento de colección</emphasis> o "
+"columnas y posiblemente una columna o columnas Ãndices."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For a collection of values use the <literal><element></literal> tag. "
+"For example:"
+msgstr ""
+"Para una colección de valores utilice la etiqueta <literal><element></"
+"literal>. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<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."
+
+#. 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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>many-to-many association</emphasis> is specified using the "
+"<literal><many-to-many></literal> element."
+msgstr ""
+"Una <emphasis>asociación muchos-a-muchos</emphasis> se especifica usando el "
+"elemento <literal><many-to-many></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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr "<literal>class</literal> (requerido): El nombre de la clase asociada. "
+
+#. 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><many-to-many></"
+"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><many-to-many></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> (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
+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> (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."
+
+#. 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> (opcional): El nombre de entidad de la clase "
+"asociada como una alternativa para <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> (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
+msgid "Here are some examples."
+msgstr "Aquà tiene algunos ejemplos:"
+
+#. Tag: para
+#, no-c-format
+msgid "A set of strings:"
+msgstr "Un grupo de cadenas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A bag containing integers with an iteration order determined by the "
+"<literal>order-by</literal> attribute:"
+msgstr ""
+"Un bag que contiene enteros con un orden de iteración determinado por el "
+"atributo <literal>order-by</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "An array of entities, in this case, a many-to-many association:"
+msgstr "Una lista de entidades, en este caso, una asociación muchos-a-muchos:"
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "Un mapeo de Ãndices de cadenas a fechas:"
+
+#. Tag: para
+#, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr "Una lista de componentes (se discuten en el siguiente capÃtulo):"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "Asociaciones uno-a-muchos"
+
+#. 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 ""
+"Una <emphasis>asociación uno-a-muchos</emphasis> enlaza las tablas de dos "
+"clases por medio de una clave foránea, sin intervención de tabla de "
+"colección alguna. Este mapeo pierde cierta semántica de colecciones Java "
+"normales: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An instance of the contained entity class cannot belong to more than one "
+"instance of the collection."
+msgstr ""
+"Una instancia de la clase entidad contenida no puede pertenecer a más de una "
+"instancia de la colección. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An instance of the contained entity class cannot appear at more than one "
+"value of the collection index."
+msgstr ""
+"Una instancia de la clase entidad contenida no puede aparecer en más de un "
+"valor del Ãndice de colección. "
+
+#. 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><one-to-many></"
+"literal> tag indicates that this is a one-to-many association."
+msgstr ""
+"Una asociación de <literal>Product</literal> a <literal>Part</literal> "
+"requiere la existencia de una columna clave foránea y posiblemente una "
+"columna Ãndice a la tabla <literal>Part</literal>. Una etiqueta <literal><"
+"one-to-many></literal> indica que ésta es una asociación uno-a-muchos."
+
+#. 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> (opcional - por defecto es <literal>exception</"
+"literal>): Especifica cómo serán manejados los identificadores en caché que "
+"referencien filas perdidas. <literal>ignore</literal> tratará una fila "
+"perdida como una asociación nula."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><one-to-many></literal> element does not need to declare "
+"any columns. Nor is it necessary to specify the <literal>table</literal> "
+"name anywhere."
+msgstr ""
+"El elemento <literal><one-to-many></literal> no necesita declarar "
+"ninguna columna. Ni es necesario especificar el nombre de <literal>table</"
+"literal> en ningún sitio."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the foreign key column of a <literal><one-to-many></literal> "
+"association is declared <literal>NOT NULL</literal>, you must declare the "
+"<literal><key></literal> mapping <literal>not-null=\"true\"</literal> "
+"or <emphasis>use a bidirectional association</emphasis> with the collection "
+"mapping marked <literal>inverse=\"true\"</literal>. See the discussion of "
+"bidirectional associations later in this chapter for more information."
+msgstr ""
+"Si la columna de la clave foránea de una asociación <literal><one-to-"
+"many></literal> se declara <literal>NOT NULL</literal>, debe declarar el "
+"mapeo de <literal><key></literal><literal>not-null=\"true\"</literal> "
+"o <emphasis> utilizar una asociación bidireccional</emphasis> con el mapeo "
+"de colección marcado <literal>inverse=\"true\"</literal>. Vea la discusión "
+"sobre asociaciones bidireccionales más adelante en este capÃtulo para "
+"obtener mayor información."
+
+#. 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 ""
+"El siguiente ejemplo muestra un mapeo de entidades <literal>Part</literal> "
+"por nombre, en donde <literal>partName</literal> es una propiedad "
+"persistente de <literal>Part</literal>. Observe el uso de un Ãndice basado "
+"en fórmula:"
+
+#. Tag: title
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr "Mapeos de colección avanzados"
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr "Colecciones ordenadas"
+
+#. 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 soporta colecciones implementando <literal>java.util.SortedMap</"
+"literal> y <literal>java.util.SortedSet</literal>. Tiene que especificar un "
+"comparador en el archivo de mapeo:"
+
+#. 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 ""
+"Los valores permitidos del atributo <literal>sort</literal> son "
+"<literal>unsorted</literal>, <literal>natural</literal> y el nombre de una "
+"clase que implemente <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 ""
+"Las colecciones ordenadas realmente se comportan como <literal>java.util."
+"TreeSet</literal> o <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 ""
+"Si quiere que la misma base de datos ordene los elementos de la colección, "
+"utilice el atributo <literal>order-by</literal> de los mapeos <literal>set</"
+"literal>, <literal>bag</literal> o <literal>map</literal>. Esta solución "
+"está disponible sólamente bajo el JDK 1.4 o superior y se implementa "
+"utilizando <literal>LinkedHashSet</literal> o <literal>LinkedHashMap</"
+"literal>. Este realiza la ordenación en la consulta SQL y no en memoria."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The value of the <literal>order-by</literal> attribute is an SQL ordering, "
+"not an HQL ordering."
+msgstr ""
+"El valor del atributo <literal>order-by</literal> es una ordenación SQL, no "
+"una ordenación HQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations can even be sorted by arbitrary criteria at runtime using a "
+"collection <literal>filter()</literal>:"
+msgstr ""
+"Las asociaciones pueden incluso ser ordenadas por algún criterio arbitrario "
+"en tiempo de ejecución utilizando un <literal>filter()</literal> de "
+"colección:"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "Asociaciones bidireccionales"
+
+#. 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 ""
+"Una <emphasis>asociación bidireccional</emphasis> permite la navegación "
+"desde ambos \"extremos\" de la asociación. Se soportan dos tipos de "
+"asociación bidireccional:"
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr "uno-a-muchos"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr "conjunto o bag valorados en un lado, monovaluados en el otro"
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr "muchos-a-muchos"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr "set o bag valorados en ambos extremos"
+
+#. 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 ""
+"Puede especificar una asociación bidireccional muchos-a-muchos simplemente "
+"mapeando dos asociaciones muchos-a-muchos a la misma tabla de base de datos "
+"y declarando un extremo como <emphasis>inverso</emphasis> (cuál de ellos, "
+"usted escoge, pero no puede ser una colección indexada)."
+
+#. 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 ""
+"He aquà un ejemplo de una asociación bidireccional muchos-a-muchos que "
+"ilustra la manera en que cada categorÃa puede tener muchos Ãtems y cada Ãtem "
+"puede estar en muchas categorÃas:"
+
+#. 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 ""
+"Los cambios realizados sólamente al extremo inverso de la asociación "
+"<emphasis>no</emphasis> son persistidos. Esto significa que Hibernate tiene "
+"dos representaciones en memoria para cada asociación bidireccional: un "
+"enlace de A a B y otro enlace de B a A. Esto es más fácil de entender si "
+"piensa en el modelo de objetos de Java y cómo creamos una relación muchos-a-"
+"muchos en Java:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The non-inverse side is used to save the in-memory representation to the "
+"database."
+msgstr ""
+"El lado no-inverso se utiliza para guardar la representación en memoria a la "
+"base de datos."
+
+#. 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 ""
+"Puede definir una asociación bidireccional uno-a-muchos mapeando una "
+"asociación uno-a-muchos a la misma columna (o columnas) de tabla como una "
+"asociación muchos-a-uno y declarando el extremo multivaluado "
+"<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 ""
+"Mapear un extremo de una asociación con <literal>inverse=\"true\"</literal> "
+"no afecta la operación de cascadas ay que éstos son conceptos ortogonales."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr "Asociaciones bidireccionales con colecciones indexadas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A bidirectional association where one end is represented as a <literal><"
+"list></literal> or <literal><map></literal>, requires special "
+"consideration. If there is a property of the child class that maps to the "
+"index column you can use <literal>inverse=\"true\"</literal> on the "
+"collection mapping:"
+msgstr ""
+"Requiere especial atención una asociación bidireccional en donde un extremo "
+"esté representado como una <literal><list></literal> o <literal><"
+"map></literal>. Si hay una propiedad de la clase hija que mapee a la "
+"columna Ãndice, puede utilizar <literal>inverse=\"true\"</literal> en el "
+"mapeo de la colección:"
+
+#. 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 ""
+"Si no existe tal propiedad en la clase hija, no podemos considerar la "
+"asociación como verdaderamente bidireccional. Es decir, hay información en "
+"un extremo de la asociación que no está disponible en el otro extremo. En "
+"este caso, no puede mapear la colección con <literal>inverse=\"true\"</"
+"literal>. En cambio, puede usar el siguiente mapeo:"
+
+#. 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."
+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. "
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr "Asociaciones ternarias"
+
+#. 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 ""
+"Hay tres enfoques posibles para mapear una asociación ternaria. Una es "
+"utilizar un <literal>Map</literal> con una asociación como su Ãndice: "
+
+#. 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 ""
+"Un segundo enfoque es remodelar la asociación como una clase de entidad. "
+"Este es el enfoque más común."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A final alternative is to use composite elements, which will be discussed "
+"later."
+msgstr ""
+"La última opción es utilizar elementos compuestos que discutiremos más "
+"adelante."
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr "<literal>Utilización de un <idbag></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 ""
+"La mayorÃa de las asociaciones muchos-a-muchos y las colecciones de valores "
+"que hemos mostrado hasta ahora mapean a tablas con claves compuestas, aunque "
+"se ha sugerido que las entidades deben tener identificadores sintéticos "
+"(llaves sustitutas). Una tabla de pura asociación no parece beneficiarse "
+"mucho de una llave sustituta, aunque sà <emphasis>podrÃa</emphasis> "
+"beneficiarse una colección de valores compuestos. Es por esto que Hibernate "
+"brinda una funcionalidad que le permite mapear asociaciones muchos a muchos "
+"y colecciones de valores a una tabla con una llave sustituta."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><idbag></literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+"El elemento <literal><idbag></literal> le permite mapear una "
+"<literal>List</literal> (o <literal>Collection</literal>) con semántica de "
+"bag. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An <literal><idbag></literal> has a synthetic id generator, just like "
+"an entity class. A different surrogate key is assigned to each collection "
+"row. Hibernate does not, however, provide any mechanism for discovering the "
+"surrogate key value of a particular row."
+msgstr ""
+"Un <literal><idbag></literal> tiene un generador de id sintético, al "
+"igual que una clase de entidad. Se asigna una clave delegada diferente a "
+"cada fila de la colección. Sin embargo, Hibernate no proporciona ningún "
+"mecanismo para descubrir el valor de la clave delegada de una fila en "
+"particular."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The update performance of an <literal><idbag></literal> supersedes a "
+"regular <literal><bag></literal>. Hibernate can locate individual rows "
+"efficiently and update or delete them individually, similar to a list, map "
+"or set."
+msgstr ""
+"El rendimiento de actualización de un <literal><idbag></literal> es "
+"mucho mejor que el de un <literal><bag></literal> normal. Hibernate "
+"puede localizar filas individuales eficientemente y actualizarlas o "
+"borrarlas individualmente, al igual que si fuese una lista, mapa o conjunto."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal><idbag></literal> "
+"collection identifiers."
+msgstr ""
+"En la implementación actual, la estrategia de generación de identificador "
+"<literal>native</literal> no se encuentra soportada para identificadores de "
+"colecciones <literal><idbag></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr "Ejemplos de colección"
+
+#. Tag: para
+#, no-c-format
+msgid "This section covers collection examples."
+msgstr "Esta sección cubre los ejemplos de colección. "
+
+#. Tag: para
+#, no-c-format
+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>:"
+
+#. 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 ""
+"Si cada hijo tiene como mucho un padre, el mapeo más natural es una "
+"asociación uno-a-muchos:"
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr "Esto mapea a las siguientes definiciones de tabla:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-"
+"many association:"
+msgstr ""
+"Si el padre es <emphasis>requerido</emphasis>, utilice una asociación "
+"bidireccional uno-a-muchos:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "Observe la restricción <literal>NOT NULL</literal>:"
+
+#. 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><key></"
+"literal> mapping:"
+msgstr ""
+"Opcionalmente, si esta asociación debe ser unidireccional, puede declarar la "
+"restricción <literal>NOT NULL</literal> en el mapeo de <literal><key></"
+"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 ""
+"Por otro lado, si un hijo tiene múltiples padres, una asociación muchos-a-"
+"muchos es apropiada:"
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+msgstr "Definiciones de tabla:"
+
+#. 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 ""
+"Para ver más ejemplos y encontrar una explicación completa sobre el mapeo de "
+"relaciones padre/hijo, consulte el <xref linkend=\"example-parentchild\" />."
+
+#. 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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/component_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/component_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/component_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,417 @@
+# translation of component_mapping.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: component_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 12:54+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr "Mapeo de componentes"
+
+#. 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 ""
+"La noción de un <emphasis>componente</emphasis> se reutiliza en muchos "
+"contextos diferentes, para propósitos diferentes a través de Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr "Objetos dependientes"
+
+#. 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 ""
+"Un componente es un objeto contenido que es persistido como un tipo de "
+"valor, no una referencia de entidad. El término \"componente\" hace "
+"referencia a la noción orientada a objetos de composición y no a componentes "
+"a nivel de arquitectura. Por ejemplo, puede modelar una persona asÃ:"
+
+#. 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 ""
+"Ahora <literal>Name</literal> puede ser persistido como un componente de "
+"<literal>Person</literal>. <literal>Name</literal> define métodos getter y "
+"setter para sus propiedades persistentes, pero no necesita declarar ninguna "
+"interfaz ni propiedades identificadoras."
+
+#. Tag: para
+#, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr "Nuestro mapeo de Hibernate se verÃa asÃ: "
+
+#. 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 ""
+"La tabla person tendrÃa las columnas <literal>pid</literal>, "
+"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
+"literal> y <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 ""
+"Como todos los tipos de valor, los componentes no soportan referencias "
+"compartidas. En otras palabras, dos personas pueden tener el mismo nombre, "
+"pero los dos objetos persona contendrÃan dos objetos nombre independientes, "
+"sólamente \"iguales\" en valor. La semántica de valor nulo de un componente "
+"es <emphasis>ad hoc</emphasis>. Cuando se recargue el objeto contenedor, "
+"Hibernate asumirá que si todas las columnas del componente son nulas, el "
+"componente entero es nulo. Esto es apropiado para la mayorÃa de propósitos."
+
+#. 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 ""
+"Las propiedades de un componente pueden ser de cualquier tipo de Hibernate "
+"(colecciones, asociaciones muchos-a-uno, otros componentes, etc). Los "
+"componentes anidados <emphasis>no</emphasis> deben ser considerados como un "
+"uso exótico. Hibernate está concebido para soportar un modelo de objetos muy "
+"detallado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"El elemento <literal><component></literal> permite un subelemento "
+"<literal><parent></literal> que mapea una propiedad de la clase del "
+"componente como una referencia a la entidad contenedora."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr "Colecciones de objetos dependientes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections of components are supported (e.g. an array of type "
+"<literal>Name</literal>). Declare your component collection by replacing the "
+"<literal><element></literal> tag with a <literal><composite-"
+"element></literal> tag:"
+msgstr ""
+"Las colecciones de componentes se encuentran soportadas (por ejemplo, un "
+"array de tipo <literal>Name</literal>). Declare su colección de componentes "
+"remplazando la etiqueta <literal><element></literal> por una etiqueta "
+"<literal><composite-element></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 ""
+"Si define un <literal>Set</literal> de elementos compuestos, es muy "
+"importante implementar <literal>equals()</literal> y <literal>hashCode()</"
+"literal> de manera correcta."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Composite elements can contain components but not collections. If your "
+"composite element contains components, use the <literal><nested-composite-"
+"element></literal> tag. This case is a collection of components which "
+"themselves have components. You may want to consider if a one-to-many "
+"association is more appropriate. Remodel the composite element as an entity, "
+"but be aware that even though the Java model is the same, the relational "
+"model and persistence semantics are still slightly different."
+msgstr ""
+"Los elementos compuestos pueden contener componentes pero no colecciones. Si "
+"su elemento compuesto contiene a su vez componentes, use la etiqueta "
+"<literal><nested-composite-element></literal>. Este es un caso de una "
+"colección de componentes que a su vez tienen componentes. Se debe estar "
+"preguntando si una asociación uno-a-muchos es más apropiada. Remodele el "
+"elemento compuesto como una entidad - pero observe que aunque el modelo Java "
+"es el mismo, el modelo relacional y la semántica de persistencia siguen "
+"siendo ligeramente diferentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A composite element mapping does not support null-able properties if you are "
+"using a <literal><set></literal>. There is no separate primary key "
+"column in the composite element table. Hibernate uses each column's value to "
+"identify a record when deleting objects, which is not possible with null "
+"values. You have to either use only not-null properties in a composite-"
+"element or choose a <literal><list></literal>, <literal><map></"
+"literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr ""
+"Un mapeo de elemento compuesto no soporta propiedades nulables si está "
+"utilizando un <literal><set></literal>. No hay una columna clave "
+"principal separada en la tabla del elemento compuesto. Hibernate utiliza el "
+"valor de cada columna para identificar un registro al borrar objetos, lo "
+"cual es imposible con valores nulos. Tiene que usar sólo propiedades no "
+"nulas en un elemento compuesto o elegir un <literal><list></literal>, "
+"<literal><map></literal>, <literal><bag></literal> o "
+"<literal><idbag></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal><many-to-one></literal> element. This mapping allows you to "
+"map extra columns of a many-to-many association table to the composite "
+"element class. The following is a many-to-many association from "
+"<literal>Order</literal> to <literal>Item</literal>, where "
+"<literal>purchaseDate</literal>, <literal>price</literal> and "
+"<literal>quantity</literal> are properties of the association:"
+msgstr ""
+"Un caso especial de un elemento compuesto es un elemento compuesto con un "
+"elemento anidado <literal><many-to-one></literal>. Este mapeo le "
+"permite mapear columnas extra de una tabla de asociación muchos-a-muchos a "
+"la clase del elemento compuesto. La siguiente es una asociación muchos-a-"
+"muchos de <literal>Order</literal> a <literal>Item</literal>, donde "
+"<literal>purchaseDate</literal>, <literal>price</literal> y "
+"<literal>quantity</literal> son propiedades de la asociación:"
+
+#. 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 ""
+"No puede haber una referencia a la compra del otro lado para la navegación "
+"bidireccional de la asociación. Los componentes son tipos de valor y no "
+"permiten referencias compartidas. Una sola <literal>Purchase</literal> puede "
+"estar en el conjunto de una <literal>Order</literal>, pero no puede ser "
+"referenciada por el <literal>Item</literal> al mismo tiempo."
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr "Incluso son posibles las asociaciones ternarias (o cuaternarias, etc):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Composite elements can appear in queries using the same syntax as "
+"associations to other entities."
+msgstr ""
+"Los elementos compuestos pueden aparecer en consultas usando la misma "
+"sintáxis que las asociaciones a otras entidades. "
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr "Componentes como Ãndices de Mapeo"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><composite-map-key></literal> element allows you to map a "
+"component class as the key of a <literal>Map</literal>. Ensure that you "
+"override <literal>hashCode()</literal> and <literal>equals()</literal> "
+"correctly on the component class."
+msgstr ""
+"El elemento <literal><composite-map-key></literal> le permite mapear "
+"una clase componente como la clave de un <literal>Map</literal>. Asegúrese "
+"de sobrescribir <literal>hashCode()</literal> y <literal>equals()</literal> "
+"correctamente en la clase componente. "
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr "Componentes como identificadores compuestos"
+
+#. 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 ""
+"Puede utilizar un componente como un identidicador de una clase entidad. Su "
+"clase componente tiene que satisfacer ciertos requerimientos: "
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr "Tiene que implementar <literal>java.io.Serializable</literal>."
+
+#. 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 ""
+"Tiene que re-implementar <literal>equals()</literal> y <literal>hashCode()</"
+"literal>, consistentemente con la noción de la base de datos de igualdad de "
+"clave compuesta."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In Hibernate3, although the second requirement is not an absolutely hard "
+"requirement of Hibernate, it is recommended."
+msgstr ""
+"En Hibernate3, aunque el segundo requerimiento no es un requerimiento "
+"absolutamente rÃgido de Hibernate, en todo caso se recomienda."
+
+#. 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 ""
+"No puede utilizar un <literal>IdentifierGenerator</literal> para generar "
+"claves compuestas. En cambio, la aplicación debe asignar sus propios "
+"identificadores. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use the <literal><composite-id></literal> tag, with nested "
+"<literal><key-property></literal> elements, in place of the usual "
+"<literal><id></literal> declaration. For example, the "
+"<literal>OrderLine</literal> class has a primary key that depends upon the "
+"(composite) primary key of <literal>Order</literal>."
+msgstr ""
+"Use la etiqueta <literal><composite-id></literal>, con elementos "
+"anidados <literal><key-property></literal>, en lugar de la declaración "
+"usual <literal><id></literal>. Por ejemplo, la clase "
+"<literal>OrderLine</literal> tiene una clave principal que depende de la "
+"clave principal (compuesta) de <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 ""
+"Cualquier clave foránea que referencie la tabla de <literal>OrderLine</"
+"literal> también es compuesta. Declare esto en sus mapeos de otras clases. "
+"Una asociación a <literal>OrderLine</literal> se mapea asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>column</literal> element is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>column</"
+"literal> element just gives more declaration options, which are mostly "
+"useful when utilizing <literal>hbm2ddl</literal>"
+msgstr ""
+"El elemento <literal>column</literal> es una alternativa al atributo <literal>column</literal> en cualquier lugar. El uso del elemento <literal>column</"
+"literal> simplemente le da más opciones de declaración, las cuales son útiles al utilizar <literal>hbm2ddl</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 ""
+"Una asociación <literal>muchos-a-muchos</literal> a <literal>OrderLine</"
+"literal> también usa la clave foránea compuesta:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
+"would use:"
+msgstr ""
+"La colección de <literal>OrderLine</literal>s en <literal>Order</literal> "
+"utilizarÃa: "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr "El elemento <literal><one-to-many></literal> declara ninguna columna."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
+msgstr ""
+"Si <literal>OrderLine</literal> posee una colección por sà misma, tiene "
+"también una clave foránea compuesta."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr "Componentes dinámicos"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr "También puede mapear una propiedad del tipo <literal>Map</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The semantics of a <literal><dynamic-component></literal> mapping are "
+"identical to <literal><component></literal>. The advantage of this "
+"kind of mapping is the ability to determine the actual properties of the "
+"bean at deployment time just by editing the mapping document. Runtime "
+"manipulation of the mapping document is also possible, using a DOM parser. "
+"You can also access, and change, Hibernate's configuration-time metamodel "
+"via the <literal>Configuration</literal> object."
+msgstr ""
+"La semántica de un mapeo <literal><dynamic-component></literal> es "
+"Ãdentica a la de <literal><component></literal>. La ventaja de este "
+"tipo de mapeos es la habilidad para determinar las propiedades reales del "
+"bean en tiempo de despliegue, sólo con editar el documento de mapeo. La "
+"manipulación del documento de mapeo en tiempo de ejecución también es "
+"posible, usando un analizador DOM. También puede acceder y cambiar el "
+"metamodelo de tiempo de configuración de Hibernate por medio del objeto "
+"<literal>Configuration</literal>."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/configuration.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/configuration.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/configuration.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2643 @@
+# translation of configuration.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: configuration\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 11:05+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr "Configuración"
+
+#. 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 está diseñado para operar en muchos entornos diferentes y por lo "
+"tanto hay un gran número de parámetros de configuración. Afortunadamente, la "
+"mayorÃa tiene valores predeterminados sensibles y Hibernate se distribuye "
+"con un archivo <literal>hibernate.properties</literal> de ejemplo en "
+"<literal>etc/</literal> que muestra las diversas opciones. Simplemente ponga "
+"el fichero de ejemplo en su ruta de clase y personalÃcelo de acuerdo a sus "
+"necesidades."
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr "Configuración programática"
+
+#. 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 ""
+"Una instancia de <classname>org.hibernate.cfg.Configuration</classname> "
+"representa un conjunto entero de mapeos de los tipos Java de una aplicación "
+"a una base de datos SQL. La <classname>org.hibernate.cfg.Configuration</"
+"classname> se utiliza para construir una <interfacename>org.hibernate."
+"SessionFactory</interfacename> inmutable. Los mapeos se compilan desde "
+"varios archivos de mapeo 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 ""
+"Puede obtener una instancia de <classname>org.hibernate.cfg.Configuration</"
+"classname> instanciándola directamente y especificando los documentos de "
+"mapeo XML. Si los archivos de mapeo están en la ruta de clase, utilice "
+"<literal>addResource()</literal>. Por ejemplo:"
+
+#. 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 ""
+"Una manera opcional es especificar la clase mapeada y dejar que Hibernate "
+"encuentre el documento de mapeo por usted:"
+
+#. 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 ""
+"Luego Hibernate buscará los archivos de mapeo llamados <filename>/org/"
+"hibernate/auction/Item.hbm.xml</filename> y <filename>/org/hibernate/auction/"
+"Bid.hbm.xml</filename> en la ruta de clase. Este enfoque elimina cualquier "
+"nombre de archivo establecido manualmente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
+"specify configuration properties. For example:"
+msgstr ""
+"Una <classname>org.hibernate.cfg.Configuration</classname> también le "
+"permite especificar las propiedades de configuración. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. Some "
+"alternative options include:"
+msgstr ""
+"Esta no es la única manera de pasar propiedades de configuración a "
+"Hibernate. Algunas opciones incluyen:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Pass an instance of <classname>java.util.Properties</classname> to "
+"<literal>Configuration.setProperties()</literal>."
+msgstr ""
+"Pasar una instancia de <classname>java.util.Properties</classname> a "
+"<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 ""
+"Colocar un archivo llamado <literal>hibernate.properties</literal> en un "
+"directorio raÃz de la ruta de clase."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Set <literal>System</literal> properties using <literal>java -"
+"Dproperty=value</literal>."
+msgstr ""
+"Establecer propiedades <literal>System</literal> utilizando <literal>java -"
+"Dproperty=value</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Include <literal><property></literal> elements in <literal>hibernate."
+"cfg.xml</literal> (this is discussed later)."
+msgstr ""
+"Incluir los elementos <literal><property></literal> en "
+"<literal>hibernate.cfg.xml</literal> (esto se discute más adelante)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to get started quickly<filename>hibernate.properties</filename> "
+"is the easiest approach."
+msgstr ""
+"Si quiere empezar rápidamente <filename>hibernate.properties</filename> es "
+"el enfoque más fácil."
+
+#. 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 ""
+"La <classname>org.hibernate.cfg.Configuration</classname> está concebida "
+"como un objeto de tiempo de inicio que se va a descartar una vez se crea una "
+"<literal>SessionFactory</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr "Obtención de una SessionFactory"
+
+#. 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 "
+"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
+"is intended to be shared by all application threads:"
+msgstr ""
+"Cuando la <classname>org.hibernate.cfg."
+"Configuration</classname> ha "
+"analizado sintácticamente todos los mapeos, la aplicación tiene que obtener "
+"una fábrica para las instancias <interfacename>org.hibernate.Session</interfacename>. Esta fábrica está concebida para que todos los hilos de la "
+"aplicación la compartan:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate does allow your application to instantiate more than one "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
+"if you are using more than one database."
+msgstr ""
+"Hibernate permite que su aplicación instancie más de una <interfacename>org.hibernate.SessionFactory</interfacename>. Esto es útil si está utilizando "
+"más de una base de datos."
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr "Conexiones JDBC"
+
+#. 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 ""
+"Se aconseja que la <interfacename>org.hibernate.SessionFactory</"
+"interfacename> cree y almacene en pool conexiones JDBC por usted Si adopta "
+"este enfoque, el abrir una <interfacename>org.hibernate.Session</"
+"interfacename> es tan simple como:"
+
+#. 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 ""
+"En el momento en que inicie una tarea que requiera acceso a la base de "
+"datos, se obtendrá una conexión JDBC del pool."
+
+#. 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 ""
+"Para que esto funcione, primero necesita pasar algunas las propiedades de "
+"conexión JDBC a Hibernate. Todos los nombres de las propiedades de Hibernate "
+"y su semántica están definidas en la clase <classname>org.hibernate.cfg."
+"Environment</classname>. Ahora describiremos las configuraciones más "
+"importantes para la conexión 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 obtendrá y tendrá en pool las conexiones utilizando "
+"<classname>java.sql.DriverManager</classname> si configura las siguientes "
+"propiedades:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr "Propiedades JDBC de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr "Nombre de la propiedad"
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr "Propósito"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "<property>hibernate.connection.driver_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "<emphasis>clase del controlador JDBC</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr "<property>hibernate.connection.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr "<emphasis>URL JDBC</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr "<property>hibernate.connection.username</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "<emphasis>usuario de la base de datos</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr "<property>hibernate.connection.password</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr "<emphasis>contraseña del usuario de la base de datos</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "<property>hibernate.connection.pool_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "<emphasis>número máximo de conexiones en pools</emphasis>"
+
+#. 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 ""
+"Sin embargo, el algoritmo de pooling de la conexión propia de Hibernate es "
+"algo rudimentario. Está concebido para ayudarle a comenzar y <emphasis>no "
+"para utilizarse en un sistema de producción</emphasis> ni siquiera para "
+"pruebas de rendimiento. Para alcanzar un mejor rendimiento y estabilidad "
+"debe utilizar un pool de terceros. Sólo remplace la propiedad "
+"<property>hibernate.connection.pool_size</property> con configuraciones "
+"especÃficas del pool de conexiones. Esto desactivará el pool interno de "
+"Hibernate. Por ejemplo, es posible utilizar 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 es un pool de conexiones JDBC de código abierto distribuido junto con "
+"Hibernate en el directorio <literal>lib</literal>. Hibernate utilizará su "
+"<classname>org.hibernate.connection.C3P0ConnectionProvider</classname> para "
+"pooling de conexiones si establece propiedades <literal>hibernate.c3p0.*</"
+"literal>. Si quiere utilizar Proxool refiérase a <literal>hibernate."
+"properties</literal> incluÃdo en el paquete y al sitio web de Hibernate para "
+"obtener más información."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example <filename>hibernate.properties</filename> file "
+"for c3p0:"
+msgstr ""
+"Aquà hay un archivo <literal>hibernate.properties</literal> de ejemplo para "
+"c3p0:"
+
+#. 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 ""
+"Para su utilización dentro de un servidor de aplicaciones, casi siempre "
+"usted debe configurar Hibernate para obtener conexiones de un "
+"<interfacename>javax.sql.Datasource</interfacename> del servidor de "
+"aplicaciones registrado en JNDI. Necesitará establecer al menos una de las "
+"siguientes propiedades:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr "Propiedades de la Fuente de Datos de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "<property>hibernate.connection.datasource</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "<emphasis>nombre JNDI de la fuente de datos</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "<property>hibernate.jndi.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr "<emphasis>URL del proveedor JNDI</emphasis> (opcional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "<property>hibernate.jndi.class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
+"<emphasis>clase del JNDI <literal>InitialContextFactory</literal></emphasis> "
+"(opcional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr "<emphasis>usuario de la base de datos</emphasis> (opcional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr "<emphasis>contraseña del usuario de la base de datos</emphasis> (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example <filename>hibernate.properties</filename> file for an "
+"application server provided JNDI datasource:"
+msgstr ""
+"He aquà un archivo <literal>hibernate.properties</literal> de ejemplo para "
+"una fuente de datos JNDI provisto por un servidor de aplicaciones:"
+
+#. 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 ""
+"Las conexiones JDBC obtenidas de una fuente de datos JNDI participarán "
+"automáticamente en las transacciones del servidor de aplicaciones "
+"administradas por el contenedor."
+
+#. 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 ""
+"Pueden darse propiedades de conexión arbitrarias anteponiendo "
+"\"<literal>hibernate.connnection</literal>\" al nombre de propiedad de la "
+"conexión. Por ejemplo, puede especificar una propiedad de conexión "
+"<literal>charSet</literal> usando <property>hibernate.connection.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 ""
+"Puede definir su propia estrategia plugin para obtener conexiones JDBC "
+"implementando la interfaz <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> y especificando su propia implementación "
+"personalizada por medio de la propiedad <property>hibernate.connection."
+"provider_class</property>."
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr "Parámetros de configuración opcionales"
+
+#. 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 ""
+"Hay otras propiedades que controlan el comportamiento de Hibernate en tiempo "
+"de ejecución. Todas son opcionales y tienen valores razonables por defecto. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Some of these properties are \"system-level\" only.</emphasis> "
+"System-level properties can be set only via <literal>java -Dproperty=value</"
+"literal> or <filename>hibernate.properties</filename>. They "
+"<emphasis>cannot</emphasis> be set by the other techniques described above."
+msgstr ""
+"<emphasis>Algunas de estas propiedades se encuentran a \"nivel del sistema sólamente\".</emphasis> "
+"Las propiedades a nivel del sistema sólamente se pueden establecer por medio "
+"de <literal>java -Dproperty=value</"
+"literal> o <filename>hibernate.properties</filename>. <emphasis>No</emphasis> se pueden establecer por medio de las "
+"técnicas descritas anteriormente."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr "Propiedades de Configuración de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr "<property>hibernate.dialect</property>"
+
+#. Tag: entry
+#, 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 ""
+"El nombre de clase de un <classname>org.hibernate.dialect.Dialect</"
+"classname> de Hibernate, el cual le permite que genere un SQL optimizado "
+"para una base de datos relacional en particular. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
+"Dialect</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</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 ""
+"En la mayorÃa de los casos Hibernate podrá de hecho seleccionar la "
+"implementación <classname>org.hibernate.dialect.Dialect</classname> correcta "
+"con base en los <literal>JDBC metadata</literal> que el controlador JDBC "
+"retorna."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr "<property>hibernate.show_sql</property>"
+
+#. Tag: entry
+#, 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 ""
+"Escribe todas las declaraciones SQL a la consola. Esta es una alternativa "
+"para establecer la categoria de registro <literal>org.hibernate.SQL</"
+"literal> a <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\">e.g.</emphasis> <literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr "<property>hibernate.format_sql</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr "Imprime el SQL en el registro y la consola."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr "<property>hibernate.default_schema</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr ""
+"Califica los nombres de tabla sin calificar con el esquema/espacio de tabla "
+"dado en el SQL generado. "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "<property>hibernate.default_catalog</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr ""
+"Califica los nombres de tabla sin calificar con el catálogo dado en el SQL "
+"generado."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "<property>hibernate.session_factory_name</property>"
+
+#. Tag: entry
+#, 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 ""
+"Automáticamente se vinculará el <interfacename>org.hibernate.SessionFactory</"
+"interfacename> a este nombre en JNDI después de que se ha creado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "<property>hibernate.max_fetch_depth</property>"
+
+#. Tag: entry
+#, 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 ""
+"Establece una \"profundidad\" máxima del árbol de recuperación por unión "
+"externa (outer join) para asociaciones de un sólo extremo (uno-a-uno, muchos-"
+"a-uno). Un <literal>0</literal> deshabilita la recuperación por unión "
+"externa predeterminada."
+
+#. 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\">ej.</emphasis> los valores recomendados entre "
+"<literal>0</literal> y <literal>3</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "<property>hibernate.default_batch_fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr ""
+"Establece un tamaño por defecto para la recuperación en lote de asociaciones "
+"de Hibernate."
+
+#. 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\">ej.</emphasis> valores recomendados <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "<property>hibernate.default_entity_mode</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Sets a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>"
+msgstr ""
+"Establece un modo predeterminado de representación de entidades para todas "
+"las sesiones abiertas desde esta <literal>SessionFactory</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+msgstr ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr "<property>hibernate.order_updates</property>"
+
+#. Tag: entry
+#, 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 ""
+"Obliga a Hibernate a ordenar las actualizaciones SQL por el valor de la "
+"clave principal de los items a actualizar. Esto resultará en menos bloqueos "
+"de transacción en sistemas altamente concurrentes."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "<property>hibernate.generate_statistics</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+"De habilitarse, Hibernate colectará estadÃsticas útiles para la afinación de "
+"rendimiento. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "<property>hibernate.use_identifier_rollback</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
+msgstr ""
+"De habilitarse, cuando se borren los objetos las propiedades identificadoras "
+"generadas se resetearán a losvalores establecidos por defecto."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "<property>hibernate.use_sql_comments</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If turned on, Hibernate will generate comments inside the SQL, for easier "
+"debugging, defaults to <literal>false</literal>."
+msgstr ""
+"De activarse, Hibernate generará comentarios dentro del SQL, para una "
+"depuración más fácil, por defecto es <literal>false</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr "Propiedades de JDBC y Conexiones de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "<property>hibernate.jdbc.fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"Un valor distinto de cero que determina el tamaño de recuperación de JDBC "
+"(llama a <literal>Statement.setFetchSize()</literal>)."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "<property>hibernate.jdbc.batch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr ""
+"Un valor distinto de cero habilita que Hibernate utilice las actualizaciones "
+"en lote de JDBC2. "
+
+#. 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\">ej.</emphasis> valores recomendados entre "
+"<literal>5</literal> y <literal>30</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "<property>hibernate.jdbc.batch_versioned_data</property>"
+
+#. Tag: entry
+#, 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 ""
+"Establece esta propiedad como <literal>true</literal> si su controlador JDBC "
+"retorna cuentas correctas de filas desde <literal>executeBatch()</literal>. "
+"Usualmente es seguro activar esta opción. Hibernate utilizará un DML en lote "
+"para versionar automáticamente los datos. Por defecto es <literal>false</"
+"literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "<property>hibernate.jdbc.factory_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Most applications will not need this configuration property."
+msgstr ""
+"Selecciona un <interfacename>org.hibernate.jdbc.Batcher</interfacename> "
+"personalizado. La mayorÃa de las aplicaciones no necesitarán esta propiedad "
+"de configuración. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+
+#. Tag: entry
+#, 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 ""
+"Habilita a Hibernate para utilizar los grupos de resultados deslizables de "
+"JDBC2. Esta propiedad sólamente es necesaria cuando se utilizan conexiones "
+"JDBC provistas por el usuario. En el caso contrario Hibernate utiliza los "
+"metadatos de conexión."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "<property>hibernate.jdbc.use_streams_for_binary</property>"
+
+#. Tag: entry
+#, 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 ""
+"Utiliza flujos (streams) al escribir/leer tipos <literal>binary</literal> o "
+"<literal>serializable</literal> a/desde JDBC. <emphasis>Propiedad a nivel de "
+"sistema</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "<property>hibernate.jdbc.use_get_generated_keys</property>"
+
+#. Tag: entry
+#, 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 ""
+"Habilita el uso de <literal>PreparedStatement.getGeneratedKeys()</literal> "
+"de JDBC3 para recuperar claves generadas nativamente después de insertar. "
+"Requiere un controlador JDBC3+ y un JRE1.4+. Establézcalo como falso si su "
+"controlador tiene problemas con los generadores del identificador de "
+"Hibernate. Por defecto, se intenta determinar las capacidades del "
+"controlador utilizando los metadatos de conexión."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "<property>hibernate.connection.provider_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> which provides JDBC connections to "
+"Hibernate."
+msgstr ""
+"EL nombre de clase de un <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> personalizado que proporcione conexiones "
+"JDBC a Hibernate. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "<property>hibernate.connection.isolation</property>"
+
+#. Tag: entry
+#, 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 ""
+"Establece el nivel de aislamiento de la transacción JDBC. Comprueba "
+"<interfacename>java.sql.Connection</interfacename> para valores "
+"significativos pero observe que la mayorÃa de las bases de datos no soportan "
+"todos los niveles de aislamiento y algunos definen nivekes de aislamiento "
+"adicionales y no estándares."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "<property>hibernate.connection.autocommit</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr ""
+"Habilita un guardado automático (autocommit) para las conexiones JDBC en "
+"pool (no se recomienda)."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "<property>hibernate.connection.release_mode</property>"
+
+#. Tag: entry
+#, 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 ""
+"Especifica el momento en que Hibernate debe liberar las conexiones JDBC. Por "
+"defecto, una conexión JDBC es retenida hasta que la sesión se cierra o se "
+"desconecta explÃcitamente. Para una fuente de datos JTA del servidor de "
+"aplicaciones, debe utilizar <literal>after_statement</literal> para liberar "
+"agresivamente las conexiones después de cada llamada JDBC. Para una conexión "
+"no JTA, frecuentemente tiene sentido el liberar la conexión al final de cada "
+"transacción, el utilizar<literal>after_transaction</literal>. <literal>auto</"
+"literal> escogerá <literal>after_statement</literal> para las estrategias de "
+"transacción JTA y CMT y <literal>after_transaction</literal> para la "
+"estrategia JDBC de transacción. "
+
+#. 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\">e.g.</emphasis> <literal>auto</literal> (default) "
+"| <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 ""
+"Esta configuración sólamente afecta las <literal>Session</literal>es "
+"retornadas desde <literal>SessionFactory.openSession</literal>. Para las "
+"<literal>Session</literal>es obtenidas por medio de <literal>SessionFactory."
+"getCurrentSession</literal>, la implementación "
+"<literal>CurrentSessionContext</literal> configurada para utilización "
+"controla el modo de liberación de la conexión para esas <literal>Session</"
+"literal>es. Consulte <xref linkend=\"architecture-current-session\" />."
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+msgstr ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the JDBC property <emphasis><propertyName></emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
+"Pasar la propiedad JDBC <emphasis><propertyName></emphasis> a "
+"<literal>DriverManager.getConnection()</literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the property <emphasis><propertyName></emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
+"Pasar la propiedad <emphasis><propertyName></emphasis> al "
+"<literal>InitialContextFactory</literal> JNDI."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr "Propiedades de Caché de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "<literal>hibernate.cache.provider_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr "El nombre de clase de un <literal>CacheProvider</literal> personalizado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "<literal>hibernate.cache.use_minimal_puts</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Optimiza la operación del caché de segundo nivel para minimizar escrituras, "
+"con el costo de lecturas más frecuentes. Esta configuración es más útil para "
+"cachés en clúster y en Hibernate3, está habilitado por defecto para "
+"implementaciones de caché en clúster. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "<literal>hibernate.cache.use_query_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables the query cache. Individual queries still have to be set cachable."
+msgstr ""
+"Habilita el caché de consultas. Las consultas individuales todavÃa tienen "
+"que establecerse con cachés. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "<literal>hibernate.cache.use_second_level_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Can be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal><cache></literal> "
+"mapping."
+msgstr ""
+"Se puede utilizar para deshabilitar por completo el caché de segundo nivel, "
+"que está habilitado por defecto para clases que especifican un mapeo "
+"<literal><cache></literal>. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "<literal>hibernate.cache.query_cache_factory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <literal>QueryCache</literal> interface, defaults "
+"to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+"El nombre de clase de una interfaz <literal>QueryCache</literal> "
+"personalizada, por defecto al <literal>StandardQueryCache</literal> "
+"incorporado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "<literal>hibernate.cache.region_prefix</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr ""
+"Un prefijo que se debe utilizar para los nombres de región del caché de "
+"segundo nivel."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "<literal>hibernate.cache.use_structured_entries</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
+msgstr ""
+"Obliga a Hibernate a almacenar los datos en el caché de segundo nivel en un "
+"formato más amigable para personas."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr "Propiedades de Transacción de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "<literal>hibernate.transaction.factory_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"El nombre de clase de un <literal>TransactionFactory</literal> a utilizar "
+"con la API de <literal>Transaction</literal> de Hibernate (por defecto es "
+"<literal>JDBCTransactionFactory</literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "<literal>jta.UserTransaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
+"JTA <literal>UserTransaction</literal> from the application server."
+msgstr ""
+"Un nombre JNDI utilizado por <literal>JTATransactionFactory</literal> para "
+"obtener la <literal>UserTransaction</literal> de JTA del servidor de "
+"aplicaciones. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr "<literal>hibernate.transaction.manager_lookup_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"El nombre de clase de un <literal>TransactionManagerLookup</literal>. Se "
+"requiere cuando el chaché a nivel de MVJ está habilitado o cuando se utiliza "
+"un generador alto/bajo en un entorno JTA."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr "<literal>hibernate.transaction.flush_before_completion</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Si está habilitado, la sesión se vaciará automáticamente durante la fase "
+"previa a la finalización de la transacción. Se prefiere la administración "
+"del contexto de sesión automático e incorporado. Consulte <xref linkend="
+"\"architecture-current-session\" />."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr "<literal>hibernate.transaction.auto_close_session</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Si se habilita, la sesión se cerrará automáticamente durante la fase "
+"posterior a la finalización de la transacción. Se prefiere la administración "
+"del contexto de sesión automático e incorporado. Consulte <xref linkend="
+"\"architecture-current-session\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr "Propiedades Misceláneas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr "<literal>hibernate.current_session_context_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Proporciona una estrategia personalizada para el alcance de la "
+"<literal>Session</literal> \"actual\". Consulte <xref linkend=\"architecture-"
+"current-session\" /> para obtener más información sobre las estrategias "
+"incorporadas. "
+
+#. 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\">e.g.</emphasis> <literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "<literal>hibernate.query.factory_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr "Elige la implementación de análisis sintáctico HQL."
+
+#. 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\">ej.</emphasis> <literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> o <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "<literal>hibernate.query.substitutions</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Se utiliza para mapear desde tokens en consultas Hibernate a tokens SQL. "
+"(por ejemplo, los tokens pueden ser nombres de función o literales). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "<literal>hibernate.hbm2ddl.auto</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Exporta o valida automáticamente DDL de esquema a la base de datos cuando se "
+"crea la <literal>SessionFactory</literal>. Con <literal>create-drop</"
+"literal> se desechará el esquema de la base de datos cuando la "
+"<literal>SessionFactory</literal> se cierre explÃcitamente."
+
+#. 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\">e.g.</emphasis> <literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Habilita el uso de CGLIB en vez de reflección en tiempo de ejecución "
+"(propiedad a nivel del sistema). La reflección a veces puede ser útil ante "
+"ciertos problemas. Hibernate siempre requiere CGLIB incluso si desactiva el "
+"optimizador. No puede establecer esta propiedad en <literal>hibernate.cfg."
+"xml</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "SQL Dialects"
+msgstr "Dialectos de SQL"
+
+#. 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 ""
+"Siempre configure la propiedad <literal>hibernate.dialect</literal> a la "
+"subclase correcta <literal>org.hibernate.dialect.Dialect</literal> para su "
+"base de datos. Si especifica un dialecto, Hibernate utilizará valores "
+"predeterminados de manera sensible para algunas de las otras propiedades "
+"enumeradas anteriormente, ahorrándole el esfuerzo de especificarlas "
+"manualmente."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr "Dialectos SQL de Hibernate(<literal>hibernate.dialect</literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr "RDBMS"
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialecto"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr "DB2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr "DB2 AS/400"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr "DB2 OS390"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr "MySQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr "MySQL con InnoDB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr "MySQL con MyISAM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr "Oracle (cualquier versión)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.OracleDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 9i"
+msgstr "Oracle 9i"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 10g"
+msgstr "Oracle 10g"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr "Sybase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr "Sybase Anywhere"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr "Microsoft SQL Server"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr "SAP DB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr "Informix"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InformixDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr "HypersonicSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr "Ingres"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.IngresDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr "Progress"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr "Mckoi SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr "Interbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr "Pointbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr "FrontBase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr "Firebird"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr "Recuperación por Unión Externa - Outer Join Fetching"
+
+#. 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 ""
+"Si su base de datos soporta uniones externas del estilo ANSI, Oracle o "
+"Sybase, frecuentemente la <emphasis>recuperación por unión externa</"
+"emphasis> aumentará el rendimiento limitando el número de llamadas a la base "
+"de datos. La recuperación por unión externa permite que un gráfico completo "
+"de objetos conectados por asociaciones muchos-a-uno, uno-a-muchos, muchos-a-"
+"muchos y uno-a-uno sea recuperado en un sólo <literal>SELECT</literal> SQL."
+
+#. 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 ""
+"La recuperación por unión externa puede ser deshabilitada "
+"<emphasis>globalmente</emphasis> estableciendo la propiedad "
+"<literal>hibernate.max_fetch_depth</literal> como <literal>0</literal>. Un "
+"valor de <literal>1</literal> o mayor habilita la recuperación por unión "
+"externa para asociaciones uno-a-uno y muchos-a-uno que hayan sido mapeadas "
+"con <literal>fetch=\"join\"</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr ""
+"Consulte <xref linkend=\"performance-fetching\" /> para obtener más "
+"información."
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr "Flujos Binarios"
+
+#. 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 limita el tamaño de arrays de <literal>byte</literal> que se puedan "
+"pasar a/desde su controlador JDBC. Si desea utilizar instancias grandes de "
+"tipo <literal>binary</literal> o <literal>serializable</literal>, usted debe "
+"habilitar <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
+"<emphasis>Esta es una configuración a nivel de sistema sólamente.</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr "Caché de segundo nivel y de lectura"
+
+#. 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 ""
+"Las propiedades prefijadas por <literal>hibernate.cache</literal> le "
+"permiten utilizar un sistema de caché de segundo nivel en el ámbito de un "
+"proceso o clúster con Hibernate. Vea la <xref linkend=\"performance-cache\" /"
+"> para obtener más detalles."
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr "Sustitución de Lenguaje de Consulta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can define new Hibernate query tokens using <literal>hibernate.query."
+"substitutions</literal>. For example:"
+msgstr ""
+"Puede definir nuevos tokens de consulta de Hibernate utilizando "
+"<literal>hibernate.query.substitutions</literal>. Por ejemplo:"
+
+#. 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 ""
+"Esto causarÃa que los tokens <literal>true</literal> y <literal>false</"
+"literal> sean traducidos a literales enteros en el SQL generado."
+
+#. Tag: para
+#, no-c-format
+msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr "Esto le permitirÃa renombrar la función <literal>LOWER</literal> de SQL."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr "EstadÃsticas de Hibernate"
+
+#. 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 ""
+"Si habilita <literal>hibernate.generate_statistics</literal>, Hibernate "
+"expondrá un número de métricas que son útiles al afinar un sistema en "
+"ejecución por medio de <literal>SessionFactory.getStatistics()</literal>. "
+"Incluso se puede configurar Hibernate para exponer estas estadÃsticas por "
+"medio de JMX. Lea el Javadoc de las interfaces en <literal>org.hibernate."
+"stats</literal> para obtener más información."
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr "Registros de mensajes (Logging)"
+
+#. 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 utiliza <ulink url=\"http://www.slf4j.org/\">Simple Logging Facade "
+"for Java</ulink> (SLF4J) con el fin de registrar varios eventos del sistema. "
+"SLF4J puede direccionar su salida de registro a varios marcos de trabajo de "
+"registro (NOP, Simple, log4j versión 1.2, JDK 1.4 logging, JCL o logback) "
+"dependiendo de su enlace escogido. Con el fin de configurar el registro "
+"necesitará <filename>slf4j-api.jar</filename> en su ruta de clase junto con "
+"el archivo jar para su enlace preferido - <filename>slf4j-log4j12.jar</"
+"filename> en el caso de Log4J. Consulte la <ulink url=\"http://www.slf4j.org/"
+"manual.html\">documentación</ulink> SLF4J para obtener mayores detalles. "
+"Para usar Log4j también necesitará poner un archivo <filename>log4j."
+"properties</filename> en su ruta de clase. Un archivo de propiedades de "
+"ejemplo se distribuye junto con Hibernate en el directorio <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 ""
+"Le recomendamos bastante que se familiarice con los mensajes de registro de "
+"Hibernate. Se ha trabajado bastante para hacer que los registros de "
+"Hibernate sean tan detallados como sea posible, sin hacerlos ilegibles. Es "
+"un dispositivo esencial en la resolución de problemas. Las categorÃas de "
+"registro más interesantes son las siguientes: "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr "CategorÃas de Registro de Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr "CategorÃa"
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr "Función"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "<literal>org.hibernate.SQL</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr "Registra todas las declaraciones DML de SQL a medida que se ejecutan"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "<literal>org.hibernate.type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr "Registra todos los parámetros JDBC"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr "<literal>org.hibernate.tool.hbm2ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr "Registra todas las declaraciones DDL de SQL a medida que se ejecutan"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "<literal>org.hibernate.pretty</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log the state of all entities (max 20 entities) associated with the session "
+"at flush time"
+msgstr ""
+"Registra el estado de todas las entidades (máximo 20 entidades) asociadas "
+"con la sesión en tiempo de limpieza (flush)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "<literal>org.hibernate.cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr "Registra toda la actividad del caché de segundo nivel"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr "<literal>org.hibernate.transaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr "Registra la actividad relacionada con la transacción"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "<literal>org.hibernate.jdbc</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr "Registra toda adquisición de recursos JDBC"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr "<literal>org.hibernate.hql.ast.AST</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr "Regista los ASTs de HQL y SQL, durante análisis de consultas."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "<literal>org.hibernate.secure</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr "Registra todas las peticiones de autorización JAAS"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "<literal>org.hibernate</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log everything. This is a lot of information but it is useful for "
+"troubleshooting"
+msgstr ""
+"Registra todo. Hay mucha información, pero es útil para la resolución de "
+"problemas"
+
+#. 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 ""
+"Al desarrollar aplicaciones con Hibernate, casi siempre debe trabajar con "
+"<literal>debug</literal> habilitado para la categorÃa <literal>org.hibernate."
+"SQL</literal> o, alternativamente, la propiedad <literal>hibernate.show_sql</"
+"literal> habilitada."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr "Implementación de una <literal>NamingStrategy</literal>"
+
+#. 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 ""
+"La interfaz <literal>org.hibernate.cfg.NamingStrategy</literal> le permite "
+"especificar un \"estándar de nombrado\" para objetos de la base de datos y "
+"los elementos del esquema."
+
+#. 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 ""
+"Puede proveer reglas para generar automáticamente identificadores de la base "
+"de datos a partir de identificadores JDBC o para procesar nombres \"lógicos"
+"\" de columnas y tablas dadas en el archivo de mapeo en nombres \"fÃsicos\" "
+"de columnas y tablas. Esta funcionalidad ayuda a reducir la verborragia del "
+"documento de mapeo, eliminando ruidos repetitivos (por ejemplo, prefijos "
+"<literal>TBL_</literal>). Hibernate utiliza una estrategia por defecto "
+"bastante mÃnima."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can specify a different strategy by calling <literal>Configuration."
+"setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+"Puede especificar una estrategia diferente llamando a <literal>Configuration."
+"setNamingStrategy()</literal> antes de agregar los mapeos:"
+
+#. 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> es una "
+"estrategia incorporada que puede ser un punto de partida útil para algunas "
+"aplicaciones."
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr "Archivo de configuración XML"
+
+#. 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 ""
+"Un enfoque alternativo de configuración es especificar una configuración "
+"completa en un archivo llamado <literal>hibernate.cfg.xml</literal>. Este "
+"archivo se puede utilizar como un remplazo del archivo <literal>hibernate."
+"properties</literal> o en el caso de que ambos se encuentren presentes, para "
+"sobrescribir propiedades."
+
+#. 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 ""
+"El archivo de configuración XML por defecto se espera en la raÃz de su "
+"<literal>CLASSPATH</literal>. Este es un ejemplo:"
+
+#. 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 ""
+"La ventaja de este enfoque es la externalización de los nombres de los "
+"archivos de mapeo a la configuración. El <literal>hibernate.cfg.xml</"
+"literal> también es más práctico una vez que haya afinado el caché de "
+"Hibernate. Puede escoger ya sea <literal>hibernate.properties</literal> o "
+"<literal>hibernate.cfg.xml</literal>. Ambos son equivalentes, excepto por "
+"los beneficios de utilizar la sintaxis XML que mencionados anteriormente."
+
+#. Tag: para
+#, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr "Con la configuración XML, iniciar Hibernate es tan simple como:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr "Puede seleccionar un fichero de configuración XML diferente utilizando:"
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr "Integración con Servidores de Aplicaciones J2EE"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr ""
+"Hibernate tiene los siguientes puntos de integración con la infraestructura "
+"J2EE:"
+
+#. 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>Fuentes de datos administrados por el contenedor</emphasis>: "
+"Hibernate puede utilizar conexiones JDBC administradas por el contenedor y "
+"provistas a través de JNDI. Usualmente, un <literal>TransactionManager</"
+"literal> compatible con JTA y un <literal>ResourceManager</literal> se "
+"ocupan de la administración de transacciones (CMT), especialmente del manejo "
+"de transacciones distribuÃdas a través de varias fuentes de datos. También "
+"puede demarcar los lÃmites de las transacciones programáticamente (BMT) o "
+"puede que quiera utilizar para esto la API opcional de <literal>Transaction</"
+"literal> de Hibernate para mantener portátil su código."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
+"<literal>SessionFactory</literal> to JNDI after startup."
+msgstr ""
+"<emphasis>Vinculación Automática JNDI</emphasis>: Hibernate puede vincular "
+"sus <literal>SessionFactory</literal> a JNDI después del inicio."
+
+#. 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>Vinculación de Sesión JTA:</emphasis> La <literal>Session</"
+"literal> de Hibernate se puede vincular automáticamente al ámbito de "
+"transacciones JTA. Simplemente busque la <literal>SessionFactory</literal> "
+"de JNDI y obténga la <literal>Session</literal> actual. Deje que Hibernate "
+"se ocupe de vaciar y cerrar la <literal>Session</literal> cuando se complete "
+"su transacción JTA. La demarcación de transacción puede ser declarativa "
+"(CMT) o programática (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>Despliegue JMX:</emphasis> Si tiene un servidor de aplicaciones "
+"con capacidad para JMX (por ejemplo, JBoss AS), puede escoger el desplegar "
+"Hibernate como un MBean administrado. Esto le ahorra el código de una lÃnea "
+"de inicio para construir su <literal>SessionFactory</literal> desde una "
+"<literal>Configuration</literal>. El contenedor iniciará su "
+"<literal>HibernateService</literal>, e idealmente también cuidará de las "
+"dependencias entre servicios (la fuente de datos debe estar disponible antes "
+"de que Hibernate inicie, etc)."
+
+#. 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 ""
+"Dependiendo de su entorno, podrÃa tener que establecer la opción de "
+"configuración <literal>hibernate.connection.aggressive_release</literal> "
+"como true si su servidor de aplicaciones muestra excepciones \"contención de "
+"conexión\"."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr "Configuración de la estrategia de transacción"
+
+#. 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 ""
+"La API de <literal>Session</literal> de Hibernate es independiente de "
+"cualquier demarcación de transacción en su arquitectura. Si deja que "
+"Hibernate utilice JDBC directamente, a través de un pool de conexiones, "
+"puede comenzar y acabar sus transacciones llamando la API de JDBC. Si "
+"ejecuta en un servidor de aplicaciones J2EE, puede que quiera utilizar "
+"transacciones administradas por bean y llamar la API de JTA y "
+"<literal>UserTransaction</literal> cuando sea necesario."
+
+#. 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 ""
+"Para mantener su código portable entre estos dos (y otros) entornos le "
+"recomendamos la API de <literal>Transaction</literal> de Hibernate, que "
+"envuelve y oculta el sistema subyacente. Tiene que especificar una clase "
+"fábrica para las instancias de <literal>Transaction</literal> estableciendo "
+"la propiedad de configuración <literal>hibernate.transaction.factory_class</"
+"literal> de Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr "Existen tres opciones estándares o incorporadas:"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr "delega a transacciones de bases de datos (JDBC) (por defecto)"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+
+#. 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 ""
+"delega a transacciones administradas por el contenedor si una transacción "
+"existente se encuentra en proceso en este contexto (por ejemplo, un método "
+"de bean de sesión EJB). De otra manera, se inicia una nueva transacción y se "
+"utilizan las transacciones administradas por bean."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr "delega a transacciones JTA administradas por el contenedor"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also define your own transaction strategies (for a CORBA transaction "
+"service, for example)."
+msgstr ""
+"También puede definir sus propias estrategias de transacción (por ejemplo, "
+"para un servicio de transacción 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 ""
+"Algunas funcionalidades en Hibernate (por ejemplo, el caché de segundo "
+"nivel, las sesiones contextuales, etc.) requieren acceso al "
+"<literal>TransactionManager</literal> de JTA en un entorno administrado. En "
+"un servidor de aplicaciones tiene que especificar cómo Hibernate debe "
+"obtener una referencia al <literal>TransactionManager</literal>, ya que J2EE "
+"no estandariza un sólo mecanismo:"
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr "TransactionManagers de JTA"
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr "Transaction Factory"
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr "Servidor de Aplicaciones"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr "JBoss"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr "Weblogic"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr "WebSphere"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr "WebSphere 6"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr "Orion"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr "Resin"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr "JOTM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr "JOnAS"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr "JRun4"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr "Borland ES"
+
+#. Tag: title
+#, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr "<literal>SessionFactory</literal> enlazado a JNDI"
+
+#. 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 ""
+"Una <literal>SessionFactory</literal> de Hibernate vinculada a JNDI puede "
+"simplificar la búsqueda de la fábrica y la creación de nuevas "
+"<literal>Session</literal>es. Sin embargo, esto no se relaciona con un "
+"<literal>Datasource</literal> vinculado a JNDI; simplemente que ambos "
+"utilizan el mismo registro."
+
+#. 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 ""
+"Si desea tener la <literal>SessionFactory</literal> vinculada a un espacio "
+"de nombres de JNDI, especifique un nombre (por ejemplo, <literal>java:"
+"hibernate/SessionFactory</literal>) utilizando la propiedad "
+"<literal>hibernate.session_factory_name</literal>. Si se omite esta "
+"propiedad, la <literal>SessionFactory</literal> no será vinculada a JNDI. "
+"Esto es particularmente útil en entornos con una implementación JNDI de sólo "
+"lectura por defecto (por ejemplo, en 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 ""
+"Al vincular la <literal>SessionFactory</literal> a JNDI, Hibernate utilizará "
+"los valores de <literal>hibernate.jndi.url</literal>, <literal>hibernate."
+"jndi.class</literal> para instanciar un contexto inicial. Si éstos no se "
+"especifican, se utilizará el <literal>InitialContext</literal> por defecto."
+
+#. 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 ""
+"Hibernate colocará automáticamente la <literal>SessionFactory</literal> en "
+"JNDI después de que llame a <literal>cfg.buildSessionFactory()</literal>. "
+"Esto significa que tendrá al menos esta llamada en algún código de inicio o "
+"clase de utilidad en su aplicación, a menos de que utilice el despliegue JMX "
+"con el <literal>HibernateService</literal> (esto se discute más adelante en "
+"mayor detalle)."
+
+#. 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 ""
+"Si utiliza una <literal>SessionFactory</literal> JNDI, un EJB or cualquier "
+"otra clase puede llegar a obtener el <literal>SessionFactory</literal> "
+"utilizando una búsqueda JNDI."
+
+#. 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—see chapter 1."
+msgstr ""
+"Le recomendamos que vincule el <literal>SessionFactory</literal> a JNDI en "
+"un entorno administrado y que de otra manera, use un singleton "
+"<literal>static</literal>. Para proteger su código de aplicación de estos "
+"detalles, también le recomendamos que esconda el código de búsqueda real "
+"para una <literal>SessionFactory</literal> en una clase de ayuda como "
+"<literal>HibernateUtil.getSessionFactory()</literal>. Note que dicha clase "
+"también es una manera práctica de iniciar Hibernate— vea el capÃtulo 1."
+
+#. Tag: title
+#, no-c-format
+msgid "Current Session context management with JTA"
+msgstr "Administración de contexto de Sesión Actual con JTA"
+
+#. 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 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 ""
+"La manera más fácil de manejar <literal>Session</literal>es y transacciones "
+"es la administración de <literal>Session</literal> \"actual\" automática de "
+"Hibernate. Vea la discusión sobre las sesiones contextuales en <xref linkend="
+"\"architecture-current-session\"/>. Al utilizar el contexto de sesión de "
+"<literal>\"jta\"</literal>, si no hay una <literal>Session</literal> de "
+"Hibernate asociada con la transacción JTA actual, se iniciará y se asociará "
+"una con esa transacción JTA la primera vez que llame a "
+"<literal>sessionFactory.getCurrentSession()</literal>. Las <literal>Session</"
+"literal>es recuperadas por medio de <literal>getCurrentSession()</literal> "
+"en el contexto <literal>\"jta\"</literal> se configurarán con un vaciado "
+"automático antes de que la transacción se complete, se cerrará después de "
+"completar la transacción y liberará conexiones JDBC agresivamente para cada "
+"declaración. Esto permite que las <literal>Session</literal>es sean "
+"administradas por el ciclo de vida de la transacción JTA a la cual se "
+"encuentra asociada, manteniendo el código del usuario limpio de esas "
+"preocupaciones de administración. Su código puede utilizar JTA "
+"programáticamente por medio de <literal>UserTransaction</literal>, o "
+"(recomendable para el código portable) utilizar el API <literal>Transaction</"
+"literal> de Hibernate para establecer lÃmites de transacciones. Si ejecuta "
+"un contenedor EJB, se prefiere una demarcación de transacción declarativa "
+"con CTM."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr "Despliegue JMX"
+
+#. 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 ""
+"La lÃnea <literal>cfg.buildSessionFactory()</literal> todavÃa se tiene que "
+"ejecutar en algún sitio para obtener una <literal>SessionFactory</literal> "
+"en JNDI. Puede hacer esto ya sea en un bloque inicializador <literal>static</"
+"literal> (como aquel en <literal>HibernateUtil</literal>) o bien puede "
+"desplegar Hibernate como un <emphasis>servicio administrado</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 ""
+"Hibernate se distribuye con <literal>org.hibernate.jmx.HibernateService</"
+"literal> para desplegar en un servidor de aplicaciones con capacidades JMX, "
+"como JBoss AS. El despliegue y la configuracón reales son especÃficos del "
+"vendedor. He aquà un ejemplo de <literal>jboss-service.xml</literal> para "
+"JBoss 4.0.x: "
+
+#. 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 ""
+"Este archivo se implementa en un directorio llamado <literal>META-INF</"
+"literal> y se encuentra empacado en un archivo JAR con la extensión "
+"<literal>.sar</literal> (archivo de servicio). También necesita empacar "
+"Hibernate, sus bibliotecas de terceros requeridas, sus clases persistentes "
+"compiladas, asà como sus archivos de mapeo en el mismo archivo. Sus beans "
+"empresariales (usualmente beans de sesión) se pueden dejar en su propio "
+"archivo JAR, pero puede incluir este archivo EJB JAR en el archivo de "
+"servicio principal para obtener una unidad desplegable en vivo (sin "
+"apagarlo). Consulte la documentación de JBoss AS para obtener más "
+"información sobre el servicio JMX y la implementación de EJB."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/events.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/events.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/events.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,570 @@
+# translation of events.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: events\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr "Interceptores y eventos"
+
+#. Tag: para
+#, 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 ""
+"Es útil para la aplicación reaccionar a ciertos eventos que ocurren dentro "
+"de Hibernate. Esto permite la implementación de funcionalidades genéricas y "
+"la extensión de la funcionalidad de Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors"
+msgstr "Interceptores"
+
+#. Tag: para
+#, 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 ""
+"La interfaz <literal>Interceptor</literal> brinda callbacks desde la sesión "
+"a la aplicación, permitiendole a ésta última inspeccionar y/o manipular las "
+"propiedades de un objeto persistente antes de que sea guardado, actualizado, "
+"borrado o cargado. Un uso posible de esto es seguir la pista de la "
+"información de auditorÃa. Por ejemplo, el siguiente <literal>Interceptor</"
+"literal> establece automáticamente el <literal>createTimestamp</literal> "
+"cuando se crea un <literal>Auditable</literal> y se actualiza la propiedad "
+"<literal>lastUpdateTimestamp</literal> cuando se actualiza un "
+"<literal>Auditable</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can either implement <literal>Interceptor</literal> directly or extend "
+"<literal>EmptyInterceptor</literal>."
+msgstr ""
+"Puede implementar el <literal>Interceptor</literal> directamente o extender "
+"el <literal>EmptyInterceptor</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"Hay dos clases de interceptores: incluÃdo en <literal>Session</literal>- e "
+"incluÃdo en <literal>SessionFactory</literal>."
+
+#. Tag: para
+#, 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 ""
+"Se especifica un interceptor incluÃdo <literal>Session</literal> cuando se "
+"abre una sesión utilizando uno de los métodos SessionFactory.openSession() "
+"sobrecargados aceptando un <literal>Interceptor</literal>."
+
+#. Tag: para
+#, 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 ""
+"Un interceptor incluido en <literal>SessionFactory</literal> se encuentra "
+"registrado con el objeto <literal>Configuration</literal> antes de construir "
+"el <literal>SessionFactory</literal>. En este caso, el interceptor proveido "
+"será aplicado a todas las sesiones abiertas desde ese "
+"<literal>SessionFactory</literal>; a menos de que se abra una sesión "
+"especificando explÃcitamente el interceptor a utilizar. Los interceptores "
+"<literal>SessionFactory</literal> incluidos deben ser a prueba de hilos. "
+"Asegúrese de no almacenar un estado especifico a la sesión ya que múltiples "
+"sesiones utilizarán este interceptor potencialmente de manera concurrente."
+
+#. Tag: title
+#, no-c-format
+msgid "Event system"
+msgstr "Sistema de eventos"
+
+#. Tag: para
+#, 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 ""
+"Si tiene que reaccionar a eventos particulares en su capa de persistencia, "
+"también puede utilizar la arquitectura de <emphasis>eventos</emphasis> de "
+"Hibernate3. El sistema de eventos se puede ser utilizar además de o como un "
+"remplazo para los interceptores."
+
+#. Tag: para
+#, 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 ""
+"Todos los métodos de la interfaz <literal>Session</literal> se correlacionan "
+"con un evento. Tiene un <literal>LoadEvent</literal>, un "
+"<literal>FlushEvent</literal>, etc. Consulte el DTD del archivo de "
+"configuración XML o el paquete <literal>org.hibernate.event</literal> para "
+"ver la lista completa de los tipos de eventos definidos. Cuando se realiza "
+"una petición de uno de estos métodos, la <literal>Session</literal> de "
+"Hibernate genera un evento apropiado y se lo pasa al escucha (listener) de "
+"eventos configurado para ese tipo. Tal como vienen, estos escuchas "
+"implementan el mismo procesamiento en aquellos métodos donde siempre "
+"resultan . Sin embargo, usted es libre de implementar una personalización de "
+"una de las interfaces escuchas (por ejemplo, el <literal>LoadEvent</literal> "
+"es procesado por la implementación registrada de la interfaz "
+"<literal>LoadEventListener</literal>), en cuyo caso su implementación serÃa "
+"responsable de procesar cualquier petición <literal>load()</literal> "
+"realizada a la <literal>Session</literal>."
+
+#. Tag: para
+#, 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 ""
+"Los escuchas se deben considerar como singletons. Esto significa que son "
+"compartidos entre las peticiones y por lo tanto, no deben guardar ningún "
+"estado como variables de instancia."
+
+#. Tag: para
+#, 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 ""
+"Un escucha personalizado implementa la interfaz apropiada para el evento que "
+"quiere procesar y/o extender una de las clases base de conveniencia (o "
+"incluso los escuchas de eventos predeterminados utilizados por Hibernate de "
+"fábrica al declararlos como no-finales para este propósito). Los escuchas "
+"personalizados pueden ser registrados programáticamente a través del objeto "
+"<literal>Configuration</literal>, o especificados en el XML de configuración "
+"de Hibernate. No se soporta la configuración declarativa a través del "
+"archivo de propiedades. Este es un ejemplo de un escucha personalizado de "
+"eventos load:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"También necesita una entrada de configuración diciéndole a Hibernate que "
+"utilice el oyente en vez del oyente por defecto:"
+
+#. Tag: para
+#, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr "En cambio, puede registrarlo programáticamente: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal><listener/></literal> elements, each "
+"reference will result in a separate instance of that class. If you need to "
+"share listener instances between listener types you must use the "
+"programmatic registration approach."
+msgstr ""
+"Los oyentes registrados declarativamente no pueden compartir instancias. Si "
+"se utiliza el mismo nombre de clase en múltiples elementos <literal><"
+"listener/></literal>, cada referencia resultará en una instancia separada "
+"de esa clase. Si necesita compartir instancias de oyentes entre tipos de "
+"oyentes debe usar el enfoque de registración programática."
+
+#. Tag: para
+#, 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 ""
+"¿Por qué implementar una interfaz y definir el tipo especÃfico durante la "
+"configuración? Una implementación de escucha podrÃa implementar múltiples "
+"interfaces de escucha de eventos. Teniendo el tipo definido adicionalmente "
+"durante la registración hace más fácil activar o desactivar escuchas "
+"personalizados durante la configuración."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr "Seguridad declarativa de Hibernate"
+
+#. Tag: para
+#, 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 ""
+"Usualmente, la seguridad declarativa en aplicaciones Hibernate se administra "
+"en una capa de fachada de sesión. Hibernate3 permite que ciertas acciones se "
+"permitan por medio de JACC y las autoriza por medio de JAAS. Esta es una "
+"funcionalidad opcional construÃda encima de la arquitectura de eventos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"Primero, tiene que configurar los oyentes de eventos apropiados, para "
+"habilitar la utilización de autorización JAAS."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
+"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
+"></event></literal> when there is exactly one listener for a "
+"particular event type."
+msgstr ""
+"Note que <literal><listener type=\"...\" class=\"...\"/></literal> es "
+"la abreviatura para <literal><event type=\"...\"><listener class="
+"\"...\"/></event></literal> cuando hay exactamente un escucha para "
+"un tipo de evento en particular."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
+"permissions to roles:"
+msgstr ""
+"A continuación, todavÃa en <literal>hibernate.cfg.xml</literal>, enlace los "
+"permisos a los roles:"
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr "Los nombres de los roles son comprendidos por su proveedor de JACC."
+
+#~ msgid ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+#~ msgstr ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_mappings.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_mappings.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_mappings.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1275 @@
+# translation of example_mappings.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: example_mappings\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr "Ejemplo: mapeos varios"
+
+#. Tag: para
+#, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr ""
+"Este capÃtulo explora algunos de los mapeos de asociaciones más complejos."
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr "Empleador/Empleado"
+
+#. Tag: para
+#, 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 ""
+"El siguiente modelo de la relación entre <literal>Employer</literal> y "
+"<literal>Employee</literal> utiliza una clase de entidad "
+"(<literal>Employment</literal>) para representar la asociación. Puede hacer "
+"esto cuando podrÃa haber más de un perÃodo de empleo para los dos mismos "
+"participantes. Se utilizan componentes para modelar los valores monetarios y "
+"los nombres de los empleados."
+
+#. Tag: para
+#, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr "He aquà un posible documento de mapeo: "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr ""
+"Este es el esquema de tablas generado por <literal>SchemaExport</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr "Autor/Obra"
+
+#. Tag: para
+#, 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 ""
+"Considere el siguiente modelo de las relaciones entre <literal>Work</"
+"literal>, <literal>Author</literal> y <literal>Person</literal>. En el "
+"ejemplo representamos la relación entre <literal>Work</literal> y "
+"<literal>Author</literal> como una asociación muchos-a-muchos y la relación "
+"entre <literal>Author</literal> y <literal>Person</literal> como una "
+"asociación uno-a-uno. Otra posibilidad serÃa que <literal>Author</literal> "
+"extendiera <literal>Person</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr ""
+"El siguiente documento de mapeo representa estas relaciones de manera "
+"correcta:"
+
+#. Tag: para
+#, 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 ""
+"Hay cuatro tablas en este mapeo: <literal>works</literal>, <literal>authors</"
+"literal> y <literal>persons</literal> tienen los datos de obra, autor y "
+"persona respectivamente. <literal>author_work</literal> es una tabla de "
+"asociación enlazando los autores a las obras. Este es el esquema de tablas, "
+"tal como fue generado por <literal>SchemaExport</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr "Cliente/Orden/Producto"
+
+#. Tag: para
+#, 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 ""
+"En esta sección consideramos un modelo de las relaciones entre "
+"<literal>Customer</literal>, <literal>Order</literal>, <literal>Line Item</"
+"literal> y <literal>Product</literal>. Hay una asociación uno-a-muchos entre "
+"<literal>Customer</literal> y <literal>Order</literal>, pero, ¿cómo "
+"deberÃamos representar <literal>Order</literal> / <literal>LineItem</"
+"literal> / <literal>Product</literal>? En el ejemplo, <literal>LineItem</"
+"literal> se mapea como una clase de asociación representando la asociación "
+"muchos-a-muchos entre <literal>Order</literal> y <literal>Product</literal>. "
+"En Hibernate, esto se llama un elemento compuesto."
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping document will look like this:"
+msgstr "El documento de mapeo se verá asÃ:"
+
+#. Tag: para
+#, 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 ""
+"<literal>customers</literal>, <literal>orders</literal>, "
+"<literal>line_items</literal> y <literal>products</literal> tienen los datos "
+"de cliente, orden, Ãtem de lÃnea de orden y producto respectivamente. Además "
+"<literal>line_items</literal> también actúa como una tabla de asociación "
+"enlazando órdenes con productos."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr "Mapeos varios de ejemplo"
+
+#. Tag: para
+#, 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 ""
+"Estos ejemplos están disponibles en la suite de pruebas de Hibernate. Allà "
+"encontrará muchos otros mapeos de ejemplos útiles en la carpeta "
+"<literal>test</literal> de la distribución de Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr "Asociación uno-a-uno \"Tipificada\""
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr "Ejemplo de clave compuesta"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr "Muchos-a-muchos con atributo compartido de clave compuesta"
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr "Discriminación basada en contenido"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr "Asociaciones sobre claves alternativas"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+#~ msgstr ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_parentchild.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_parentchild.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_parentchild.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,426 @@
+# translation of example_parentchild.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: example_parentchild\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-03-15 12:56+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr "Ejemplo: Padre/Hijo"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One of the first things that new users want to do with Hibernate is to model "
+"a parent/child type relationship. There are two different approaches to "
+"this. The most convenient approach, especially for new users, is to model "
+"both <literal>Parent</literal> and <literal>Child</literal> as entity "
+"classes with a <literal><one-to-many></literal> association from "
+"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
+"approach is to declare the <literal>Child</literal> as a <literal><"
+"composite-element></literal>. The default semantics of a one-to-many "
+"association in Hibernate are much less close to the usual semantics of a "
+"parent/child relationship than those of a composite element mapping. We will "
+"explain how to use a <emphasis>bidirectional one-to-many association with "
+"cascades</emphasis> to model a parent/child relationship efficiently and "
+"elegantly."
+msgstr ""
+"Una de las primeras cosas que los usuarios nuevos intentan hacer con "
+"Hibernate es modelar una relación de tipo padre / hijo. Para esto existen "
+"dos enfoques diferentes. El enfoque más conveniente, especialmente para los "
+"usuarios nuevos, es modelar tanto <literal>Parent</literal> como "
+"<literal>Child</literal> como clases de entidad con una asociación "
+"<literal><one-to-many></literal> desde <literal>Parent</literal> a "
+"<literal>Child</literal>. El enfoque opcional es declarar el <literal>Child</"
+"literal> como un <literal><composite-element></literal>. La semántica "
+"prederterminada de una asociación uno-a-muchos en Hibernate es mucho menos "
+"cercana a la semántica usual de una relación padre / hijo que la de un mapeo "
+"de elementos compuestos. Explicaremos cómo utilizar una <emphasis>asociación "
+"uno-a-muchos bidireccional con tratamiento en cascada</emphasis> para "
+"modelar una relación padre / hijo de manera eficiente y elegante."
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr "Nota sobre las colecciones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate collections are considered to be a logical part of their owning "
+"entity and not of the contained entities. Be aware that this is a critical "
+"distinction that has the following consequences:"
+msgstr ""
+"Se considera que las colecciones de Hibernate son una parte lógica de la "
+"entidad que las posee y no de las entidades contenidas. Note que esta es una "
+"diferencia crucial y que esto tiene las siguientes consecuencias:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"When you remove/add an object from/to a collection, the version number of "
+"the collection owner is incremented."
+msgstr ""
+"Cuando se elimina/agrega un objeto desde/a una colección, se incrementa el "
+"número de la versión del dueño de la colección."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If an object that was removed from a collection is an instance of a value "
+"type (e.g. a composite element), that object will cease to be persistent and "
+"its state will be completely removed from the database. Likewise, adding a "
+"value type instance to the collection will cause its state to be immediately "
+"persistent."
+msgstr ""
+"Si un objeto que fue eliminado de una colección es una instancia de un tipo "
+"de valor (por ejemplo, un elemento compuesto), ese objeto cesará de ser "
+"persistente y su estado será completamente eliminado de la base de datos. "
+"Asimismo, añadir una instancia de tipo de valor a la colección causará que "
+"su estado sea persistente inmediatamente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Conversely, if an entity is removed from a collection (a one-to-many or many-"
+"to-many association), it will not be deleted by default. This behavior is "
+"completely consistent; a change to the internal state of another entity "
+"should not cause the associated entity to vanish. Likewise, adding an entity "
+"to a collection does not cause that entity to become persistent, by default."
+msgstr ""
+"Por otro lado, si se elimina una entidad de una colección (una asociación "
+"uno-a-muchos o muchos-a-muchos), no se borrará por defecto. Este "
+"comportamiento es completamente consistente; un cambio en el estado interno "
+"de otra entidad no hace desaparecer la entidad asociada. Asimismo, el "
+"agregar una entidad a una colección no causa que la entidad se vuelva "
+"persistente por defecto."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Adding an entity to a collection, by default, merely creates a link between "
+"the two entities. Removing the entity will remove the link. This is "
+"appropriate for all sorts of cases. However, it is not appropriate in the "
+"case of a parent/child relationship. In this case, the life of the child is "
+"bound to the life cycle of the parent."
+msgstr ""
+"El comportamiento por defecto es que al agregar una entidad a una colección "
+"se crea un enlace entre las dos entidades. Al eliminar la entidad se "
+"eliminará el enlace. Esto es muy apropiado para todos los tipos de casos. "
+"Sin embargo, no apropiado en el caso de una relación padre / hijo. En este "
+"caso la vida del hijo se encuentra vinculada al ciclo de vida del padre."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr "Uno-a-muchos bidireccional"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we start with a simple <literal><one-to-many></literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+"Supónga que empezamos con una asociación simple <literal><one-to-many>"
+"</literal> desde <literal>Parent</literal> a <literal>Child</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "If we were to execute the following code:"
+msgstr "Si ejecutásemos el siguiente código:"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr "Hibernate publicarÃa dos declaraciones SQL:"
+
+#. 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>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
+"<literal>c</literal>"
+msgstr ""
+"un <literal>UPDATE</literal> para crear el enlace desde <literal>p</literal> "
+"a <literal>c</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is not only inefficient, but also violates any <literal>NOT NULL</"
+"literal> constraint on the <literal>parent_id</literal> column. You can fix "
+"the nullability constraint violation by specifying <literal>not-null=\"true"
+"\"</literal> in the collection mapping:"
+msgstr ""
+"Esto no es sólo ineficiente, sino que además viola cualquier restricción "
+"<literal>NOT NULL</literal> en la columna <literal>parent_id</literal>. "
+"Puede arreglar la violación de restricción de nulabilidad especificando "
+"<literal>not-null=\"true\"</literal> en el mapeo de la colección:"
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr "Sin embargo, esta no es la solución recomendada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The underlying cause of this behavior is that the link (the foreign key "
+"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
+"literal> is not considered part of the state of the <literal>Child</literal> "
+"object and is therefore not created in the <literal>INSERT</literal>. The "
+"solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+"El caso subyacente de este comportamiento es que el enlace (la clave foránea "
+"<literal>parent_id</literal>) de <literal>p</literal> a <literal>c</literal> "
+"no se considera parte del estado del objeto <literal>Child</literal> y por "
+"lo tanto no se crea en el <literal>INSERT</literal>. De modo que la solución "
+"es hacer que el enlace sea parte del mapeo del <literal>Child</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need to add the <literal>parent</literal> property to the "
+"<literal>Child</literal> class."
+msgstr ""
+"También necesita agregar la propiedad <literal>parent</literal> a la clase "
+"<literal>Child</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now that the <literal>Child</literal> entity is managing the state of the "
+"link, we tell the collection not to update the link. We use the "
+"<literal>inverse</literal> attribute to do this:"
+msgstr ""
+"Ahora que la entidad <literal>Child</literal> está administrando el estado "
+"del enlace, le decimos a la colección que no actualice el enlace. Usamos el "
+"atributo <literal>inverse</literal> para hacer esto:"
+
+#. Tag: para
+#, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr ""
+"El siguiente código se podrÃa utilizar para agregar un nuevo <literal>Child</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr "Sólo se emitirÃa un <literal>INSERT</literal> de SQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You could also create an <literal>addChild()</literal> method of "
+"<literal>Parent</literal>."
+msgstr ""
+"También podrÃa crear un método <literal>addChild()</literal> de "
+"<literal>Parent</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "The code to add a <literal>Child</literal> looks like this:"
+msgstr "El código para agregar un <literal>Child</literal> se ve asÃ:"
+
+#. Tag: title
+#, no-c-format
+msgid "Cascading life cycle"
+msgstr "Ciclo de vida en cascada "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can address the frustrations of the explicit call to <literal>save()</"
+"literal> by using cascades."
+msgstr ""
+"Puede abordar las frustraciones de la llamada explÃcita a <literal>save()</"
+"literal> utilizando cascadas."
+
+#. Tag: para
+#, no-c-format
+msgid "This simplifies the code above to:"
+msgstr "Esto simplifica el código anterior a:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Similarly, we do not need to iterate over the children when saving or "
+"deleting a <literal>Parent</literal>. The following removes <literal>p</"
+"literal> and all its children from the database."
+msgstr ""
+"De manera similar, no necesitamos iterar los hijos al guardar o borrar un "
+"<literal>Parent</literal>. Lo siguiente elimina <literal>p</literal> y todos "
+"sus hijos de la base de datos."
+
+#. Tag: para
+#, no-c-format
+msgid "However, the following code:"
+msgstr "Sin embargo, el siguiente código:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"will not remove <literal>c</literal> from the database. In this case, it "
+"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
+"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
+"</literal> the <literal>Child</literal>."
+msgstr ""
+"no eliminará <literal>c</literal> de la base de datos. En este caso, sólo "
+"quitará el enlace a <literal>p</literal> y causará una violación a una "
+"restricción <literal>NOT NULL</literal>. Necesita borrar el hijo "
+"explÃcitamente llamando a <literal>delete()</literal> en <literal>Child</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In our case, a <literal>Child</literal> cannot exist without its parent. So "
+"if we remove a <literal>Child</literal> from the collection, we do want it "
+"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
+"\"</literal>."
+msgstr ""
+"En nuestro caso, un <literal>Child</literal> no puede existir realmente sin "
+"su padre. De modo que si eliminamos un <literal>Child</literal> de la "
+"colección, realmente queremos que sea borrado. Para esto, tenemos que "
+"utilizar <literal>cascade=\"all-delete-orphan\"</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Even though the collection mapping specifies <literal>inverse=\"true\"</"
+"literal>, cascades are still processed by iterating the collection elements. "
+"If you need an object be saved, deleted or updated by cascade, you must add "
+"it to the collection. It is not enough to simply call <literal>setParent()</"
+"literal>."
+msgstr ""
+"Aunque el mapeo de la colección especifique <literal>inverse=\"true\"</"
+"literal>, el tratamiento en cascada se procesa aún al iterar los elementos "
+"de la colección. De modo que si necesita que un objeto se guarde, borre o "
+"actualice en cascada, debe añadirlo a la colección. No es suficiente con "
+"simplemente llamar a <literal>setParent()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr "Cascadas y <literal>unsaved-value</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
+"literal>, made some changes in a UI action and wanted to persist these "
+"changes in a new session by calling <literal>update()</literal>. The "
+"<literal>Parent</literal> will contain a collection of children and, since "
+"the cascading update is enabled, Hibernate needs to know which children are "
+"newly instantiated and which represent existing rows in the database. We "
+"will also assume that both <literal>Parent</literal> and <literal>Child</"
+"literal> have generated identifier properties of type <literal>Long</"
+"literal>. Hibernate will use the identifier and version/timestamp property "
+"value to determine which of the children are new. (See <xref linkend="
+"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
+"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
+"emphasis>"
+msgstr ""
+"Supónga que hemos cargado un <literal>Parent</literal> en una "
+"<literal>Session</literal>, hemos realizado algunos cambios en una acción UI "
+"y deseamos hacer persistentes estos cambios en una nueva sesión llamando a "
+"<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>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>:"
+msgstr ""
+"El siguiente código actualizará <literal>parent</literal> y <literal>child</"
+"literal> e insertará <literal>newChild</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This may be suitable for the case of a generated identifier, but what about "
+"assigned identifiers and composite identifiers? This is more difficult, "
+"since Hibernate cannot use the identifier property to distinguish between a "
+"newly instantiated object, with an identifier assigned by the user, and an "
+"object loaded in a previous session. In this case, Hibernate will either use "
+"the timestamp or version property, or will actually query the second-level "
+"cache or, worst case, the database, to see if the row exists."
+msgstr ""
+"Todo eso es apropiado para el caso de un identificador generado, pero ¿qué "
+"de los identificadores asignados y de los identificadores compuestos? Esto "
+"es más difÃcil, ya que Hibernate no puede usar la propiedad identificadora "
+"para distinguir entre un objeto recién instanciado, con un identificador "
+"asignado por el usuario y un objeto cargado en una sesión previa. En este "
+"caso, Hibernate utilizará la propiedad de versión o sello de fecha, o bien "
+"consultará realmente el caché de segundo nivel, o bien, en el peor de los "
+"casos, consultará la base de datos, para ver si la fila existe."
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr "Conclusión"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The sections we have just covered can be a bit confusing. However, in "
+"practice, it all works out nicely. Most Hibernate applications use the "
+"parent/child pattern in many places."
+msgstr ""
+"Las secciones que acabamos de cubrir pueden parecer un poco confusas. Sin "
+"embargo, en la práctica, todo funciona muy bien. La mayorÃa de las "
+"aplicaciones de Hibernate utilizan el patrón padre / hijo en muchos sitios."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"We mentioned an alternative in the first paragraph. None of the above issues "
+"exist in the case of <literal><composite-element></literal> mappings, "
+"which have exactly the semantics of a parent/child relationship. "
+"Unfortunately, there are two big limitations with composite element classes: "
+"composite elements cannot own collections and they should not be the child "
+"of any entity other than the unique parent."
+msgstr ""
+"Mencionamos una opción en el primer párrafo. Ninguno de los temas anteriores "
+"existe en el caso de los mapeos <literal><composite-element></"
+"literal>, los cuales tienen exactamente la semántica de una relación padre / "
+"hijo. Desafortunadamente, existen dos grandes limitaciones para las clases "
+"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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_weblog.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_weblog.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/example_weblog.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,868 @@
+# translation of example_weblog.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: example_weblog\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr "Ejemplo: Aplicación de Weblog"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "Clases Persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The persistent classes here represent a weblog and an item posted in a "
+"weblog. They are to be modelled as a standard parent/child relationship, but "
+"we will use an ordered bag, instead of a set:"
+msgstr ""
+"Las clases persistentes aquà representan un weblog, y un Ãtem publicado en "
+"un weblog. Van a ser modelados como una relación padre/hijo estándar, pero "
+"usaremos un bag ordenado, en lugar de un conjunto:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr "Mapeos de Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr "Los mapeos XML ahora deben ser bastante sencillos. Por ejemplo:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr "Código Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes using Hibernate:"
+msgstr ""
+"La siguiente clase demuestra algunos de los tipos de cosas que podemos hacer "
+"con estas clases, utilizando Hibernate:"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/filters.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/filters.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/filters.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,338 @@
+# translation of filters.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: filters\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr "Filtración de datos"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 provides an innovative new approach to handling data with "
+"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
+"named, parameterized filter that can be enabled or disabled for a particular "
+"Hibernate session."
+msgstr ""
+"Hibernate3 proporciona un nuevo enfoque innovador para manejar datos con "
+"reglas de \"visibilidad\". Un <emphasis>filtro Hibernate</emphasis> es un "
+"filtro global, con nombre y parametrizado que puede ser habilitado o "
+"deshabilitado para una sesión de Hibernate especifica."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate filters"
+msgstr "Filtros de Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 has the ability to pre-define filter criteria and attach those "
+"filters at both a class level and a collection level. A filter criteria "
+"allows you to define a restriction clause similar to the existing \"where\" "
+"attribute available on the class and various collection elements. These "
+"filter conditions, however, can be parameterized. The application can then "
+"decide at runtime whether certain filters should be enabled and what their "
+"parameter values should be. Filters can be used like database views, but "
+"they are parameterized inside the application."
+msgstr ""
+"Hibernate3 tiene la habilidad de predefinir criterios de filtros y unir esos "
+"filtros tanto a nivel de clase como de colección. Un criterio de filtro le "
+"permite definir una cláusula de restricción muy similar al atributo "
+"existente \"where\" disponible en el elemento class y en varios elementos de "
+"colección. Sin embargo, las condiciones de estos filtros se pueden "
+"parametrizar. La aplicación puede tomar la decisión en tiempo de ejecución "
+"de si los filtros deben estar habilitados y cuáles deben ser sus parámetros. "
+"Los filtros se pueden utilizar como vistas de la base de datos, pero "
+"parametrizados dentro de la aplicación."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal><"
+"filter-def/></literal> element within a <literal><hibernate-mapping/"
+"></literal> element:"
+msgstr ""
+"Para utilizar los filtros, éstos se deben definir primero y luego se unen a "
+"los elementos de mapeo apropiados. Para definir un filtro, utilice el "
+"elemento <literal><filter-def/></literal> dentro de un elemento "
+"<literal><hibernate-mapping/></literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr "Luego este filtro se puede adjuntar a una clase:"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to a collection:"
+msgstr "O a una colección:"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr "O incluso a ambos o múltiples de cada uno al mismo tiempo."
+
+#. Tag: para
+#, 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 ""
+"Los métodos en <literal>Session</literal> son: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal> y <literal>disableFilter(String filterName)</literal>. Por defecto, "
+"los filtros <emphasis>no</emphasis> están habilitados para una sesión dada. "
+"Los filtros deben ser habilitados explÃcitamente por medio del uso del "
+"método <literal>Session.enableFilter()</literal>, el cual retorna una "
+"instancia de la interfaz <literal>Filter</literal>. Si se utiliza el filtro "
+"simple definido anteriormente, esto se verÃa asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Methods on the org.hibernate.Filter interface do allow the method-chaining "
+"common to much of Hibernate."
+msgstr ""
+"Los métodos en la interfaz org.hibernate.Filter permiten el encadenamiento "
+"de métodos, lo cual es bastante común en gran parte de Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is a full example, using temporal data with an effective "
+"record date pattern:"
+msgstr ""
+"Este es un ejemplo completo, utilizando datos temporales con un patrón "
+"efectivo de fechas de registro: "
+
+#. Tag: para
+#, 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 ""
+"Con el fin de asegurarse de que siempre recibirá los registros efectivos "
+"actualmente, habilite el filtro en la sesión antes de recuperar los datos de "
+"los empleados:"
+
+#. Tag: para
+#, 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 ""
+"En el HQL anterior, aunque sólo mencionamos explÃcitamente una restricción "
+"de salario en los resultados, debido al filtro habilitado la consulta sólo "
+"retornará empleados actualmente activos que tengan un salario mayor a un "
+"millón de dólares."
+
+#. Tag: para
+#, 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 ""
+"Si quiere utilizar filtros con unión externa, ya sea a través de HQL, o bien "
+"de recuperación de carga, tenga cuidado en la dirección de expresión de la "
+"condición. Lo más seguro es configurar esto para una unión externa "
+"izquierda. Coloque el parámetro primero seguido del nombre(s) de la(s) "
+"columna(s) después del operador."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After being defined, a filter might be attached to multiple entities and/or "
+"collections each with its own condition. This can be problematic when the "
+"conditions are the same each time. Using <literal><filter-def/></"
+"literal> allows you to definine a default condition, either as an attribute "
+"or CDATA:"
+msgstr ""
+"Después de definir un filtro, este se puede unir a múltiples entidades y/o "
+"colecciones cada una con su propia condición. Esto puede llegar a ser "
+"problemático cuando las condiciones son las mismas. Asà que el usar "
+"<literal><filter-def/></literal> le permite definir una condición por "
+"defecto, ya sea como atributo o como CDATA:"
+
+#. Tag: para
+#, 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 ""
+"Esta condición predeterminada se utilizará cuando se una el filtro a algo "
+"sin especificar una condición. Esto significa que usted le puede dar una "
+"condición especifica como parte del anexo del filtro, el cual substituye la "
+"condición por defecto en ese caso en particular."
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+#~ msgstr ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/inheritance_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/inheritance_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/inheritance_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,536 @@
+# translation of inheritance_mapping.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: inheritance_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 15:51+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Inheritance mapping"
+msgstr "Mapeo de herencias"
+
+#. Tag: title
+#, no-c-format
+msgid "The three strategies"
+msgstr "Las tres estrategias"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr "Hibernate soporta las tres estrategias básicas de mapeo de herencia:"
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr "tabla por jerarquÃa de clases"
+
+#. Tag: para
+#, no-c-format
+msgid "table per subclass"
+msgstr "Tabla por subclase "
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr "tabla por clase concreta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In addition, Hibernate supports a fourth, slightly different kind of "
+"polymorphism:"
+msgstr ""
+"Además, Hibernate soporta un cuarto, un tipo ligeramente diferente de "
+"polimorfismo:"
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr "polimorfismo implÃcito"
+
+#. Tag: para
+#, 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><subclass></literal>, "
+"<literal><joined-subclass></literal> and <literal><union-"
+"subclass></literal> mappings under the same root <literal><class></"
+"literal> element. It is possible to mix together the table per hierarchy and "
+"table per subclass strategies under the the same <literal><class></"
+"literal> element, by combining the <literal><subclass></literal> and "
+"<literal><join></literal> elements (see below for an example)."
+msgstr ""
+"Es posible utilizar estrategias de mapeo diferentes para diferentes "
+"ramificaciones de la misma jerarquÃa de herencia. Luego puede usar un "
+"polimorfismo implÃcito para conseguir polimorfismo a través de toda la "
+"jerarquÃa. Sin embargo, Hibernate no soporta la mezcla de mapeos "
+"<literal><subclass></literal>, <literal><joined-subclass></"
+"literal> y <literal><union-subclass></literal> bajo el mismo elemento "
+"<literal><class></literal> raÃz. Es posible mezclar las estrategias de "
+"tabla por jerarquÃa y tabla por subclase bajo el mismo elemento <literal><"
+"class></literal>, combinando los elementos <literal><subclass></"
+"literal> y <literal><join></literal> (a continuación encontrará un "
+"ejemplo)."
+
+#. Tag: para
+#, 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 ""
+"Es posible definir los mapeos <literal>subclass</literal>, <literal>union-"
+"subclass</literal>, y <literal>joined-subclass</literal> en documentos de "
+"mapeo separados, directamente debajo de <literal>hibernate-mapping</"
+"literal>. Esto le permite extender une jerarquÃa de clase sólamente "
+"añadiendo un nuevo archivo de mapeo. Tiene que especificar un atributo "
+"<literal>extends</literal> en la subclase de mapeo, nombrando una superclase "
+"mapeada previamente. Nota: Anteriormente esta caracterÃstica hacia que el "
+"orden de los documentos de mapeo fuera importante. Desde Hibernate3, el "
+"orden de los archivos de mapeo no tiene relevancia cuando se utiliza la "
+"palabra clave extends. El orden dentro de un sólo archivo de mapeo todavÃa "
+"necesita ser definido como superclases antes de subclases."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr "Tabla por jerarquÃa de clases"
+
+#. Tag: para
+#, 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 ""
+"Suponga que tenemos una interfaz <literal>Payment</literal>, con los "
+"implementadores <literal>CreditCardPayment</literal>, <literal>CashPayment</"
+"literal>, <literal>ChequePayment</literal>. El mapeo de tabla por jerarquÃa "
+"se verÃa asÃ: "
+
+#. Tag: para
+#, 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 ""
+"Se requiere exactamente una tabla. Hay una limitación de esta estrategia de "
+"mapeo: las columnas declaradas por las subclases tal como <literal>CCTYPE</"
+"literal>, no pueden tener restricciones <literal>NOT NULL</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass"
+msgstr "Tabla por subclase"
+
+#. Tag: para
+#, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr "Un mapeo de tabla por subclase se verÃa asÃ: "
+
+#. Tag: para
+#, 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 ""
+"Se necesitan cuatro tablas. Las tres tablas de subclase tienen asociaciones "
+"de clave principal a la tabla de superclase de modo que en el modelo "
+"relacional es realmente una asociación uno-a-uno."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr "Tabla por subclase: utilizando un discriminador"
+
+#. Tag: para
+#, 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><subclass></literal> and "
+"<literal><join></literal>, as follows:"
+msgstr ""
+"La implementación de Hibernate de tabla por subclase no requiere ninguna "
+"columna discriminadora. Otros mapeadores objeto/relacional usan una "
+"implementación diferente de tabla por subclase que necesita una columna "
+"discriminadora de tipo en la tabla de superclase. Este enfoque es mucho más "
+"difÃcil de implementar pero discutiblemente más correcto desde un punto de "
+"vista relacional. Si quisiere utilizar una columna discriminadora con la "
+"estrategia de tabla por subclase, puede combinar el uso de <literal><"
+"subclass></literal> y <literal><join></literal>, asÃ:"
+
+#. Tag: para
+#, 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 ""
+"La declaración opcional <literal>fetch=\"select\"</literal> le dice a "
+"Hibernate que no recupere los datos de la subclase <literal>ChequePayment</"
+"literal> utilizando una unión externa (outer join) al consultar la "
+"superclase."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr "Mezcla de tabla por jerarquÃa de clases con tabla por subclase"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can even mix the table per hierarchy and table per subclass strategies "
+"using the following approach:"
+msgstr ""
+"Incluso puede mezclar las estrategias de tabla por jerarquÃa y tabla por "
+"subclase utilizando este enfoque: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For any of these mapping strategies, a polymorphic association to the root "
+"<literal>Payment</literal> class is mapped using <literal><many-to-one>"
+"</literal>."
+msgstr ""
+"Para cualquiera de estas estrategias de mapeo, una asociación polimórfica a "
+"la clase raÃz <literal>Payment</literal> es mapeada usando <literal><many-"
+"to-one></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr "Tabla por clase concreta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two ways we can map the table per concrete class strategy. First, "
+"you can use <literal><union-subclass></literal>."
+msgstr ""
+"Hay dos maneras de mapear la tabla por estrategia de clase concreta. La "
+"primera es utilizar <literal><union-subclass></literal>."
+
+#. Tag: para
+#, 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 ""
+"Hay tres tablas involucradas. Cada tabla define columnas para todas las "
+"propiedades de la clase, incluyendo las propiedades heredadas."
+
+#. Tag: para
+#, 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 ""
+"La limitación de este enfoque es que si una propiedad se mapea en la "
+"superclase, el nombre de la columna debe ser el mismo en todas las tablas de "
+"subclase. La estrategia del generador de identidad no está permitida en la "
+"herencia de unión de subclase. La semilla de la clave principal tiene que "
+"compartirse a través de todas las subclases unidas de una jerarquÃa."
+
+#. Tag: para
+#, 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 ""
+"Si su superclase es abstracta, mapeéla con <literal>abstract=\"true\"</"
+"literal>. Si no es abstracta, se necesita una tabla adicional (en el ejemplo "
+"anterior, por defecto es <literal>PAYMENT</literal>) para mantener las "
+"instancias de la superclase."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr "Tabla por clase concreta utilizando polimorfismo implÃcito"
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr "Un enfoque alternativo es para hacer uso del polimorfismo implÃcito:"
+
+#. Tag: para
+#, 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>[ <!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> "
+"declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr ""
+"Observe que la interfaz <literal>Payment</literal> no se menciona "
+"explÃcitamente. También note que las propiedades de <literal>Payment</"
+"literal> se mapean en cada una de las subclases. Si quiere evitar la "
+"duplicación, considere el usar entidades XML (por ejemplo, <literal>[ <!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"> ]</literal> en la "
+"declaración <literal>DOCTYPE</literal> y <literal>&allproperties;</"
+"literal> en el mapeo). "
+
+#. Tag: para
+#, 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 ""
+"La desventaja de este enfoque es que Hibernate no genera <literal>UNION</"
+"literal>es de SQL al realizar consultas polimórficas. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For this mapping strategy, a polymorphic association to <literal>Payment</"
+"literal> is usually mapped using <literal><any></literal>."
+msgstr ""
+"Para esta estrategia de mapeo, una asociación polimórfica a "
+"<literal>Payment</literal> es mapeada generalmente utilizando <literal><"
+"any></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr "Mezcla de polimorfismo implÃcito con otros mapeos de herencia"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Since the subclasses are each mapped in their own <literal><class></"
+"literal> element, and since <literal>Payment</literal> is just an "
+"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 ""
+"Ya que las subclases se mapean cada una en su propio elemento <literal><"
+"class></literal> y debido a que <literal>Payment</literal> es sólo una "
+"interfaz, cada una de las subclases podrÃa ser fácilmente parte de otra "
+"jerarquÃa de herencia. TodavÃa puede seguir usando consultas polimórficas "
+"contra la interfaz <literal>Payment</literal>."
+
+#. Tag: para
+#, 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 ""
+"Una vez más, no mencionamos a <literal>Payment</literal> explÃcitamente. Si "
+"ejecutamos una consulta frente a la interfaz <literal>Payment</literal> - "
+"por ejemplo, <literal>from Payment</literal>, Hibernate retorna "
+"automáticamente instancias de <literal>CreditCardPayment</literal> (y sus "
+"subclases, ya que ellas también implementan <literal>Payment</literal>), "
+"<literal>CashPayment</literal> y <literal>ChequePayment</literal> pero no "
+"las instancias de <literal>NonelectronicTransaction</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Limitations"
+msgstr "Limitaciones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are limitations to the \"implicit polymorphism\" approach to the table "
+"per concrete-class mapping strategy. There are somewhat less restrictive "
+"limitations to <literal><union-subclass></literal> mappings."
+msgstr ""
+"Existen ciertas limitaciones al enfoque de \"polimorfismo implÃcito\" en la "
+"estrategia de mapeo de tabla por clase concreta. Existen limitaciones un "
+"poco menos restrictivas a los mapeos <literal><union-subclass></"
+"literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table shows the limitations of table per concrete-class "
+"mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+"La siguiente tabla muestra las limitaciones de los mapeos de tabla por clase "
+"concreta y del polimorfismo implÃcito en Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr "Funcionalidades de los mapeos de herencia"
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr "Estrategia de herencia"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr "Polimórfico muchos-a-uno"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr "Polimórfico uno-a-uno"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr "Polimórfico uno-a-muchos"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr "Polimórfico muchos-a-muchos"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr "Polimórfico <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Consultas polimórficas"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr "Uniones polimórficas"
+
+#. Tag: entry
+#, no-c-format
+msgid "Outer join fetching"
+msgstr "Recuperación por unión externa"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per class-hierarchy"
+msgstr "tabla por jerarquÃa de clases "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr "<literal><many-to-one></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr "<literal><one-to-one></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr "<literal><one-to-many></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr "<literal><many-to-many></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr "<literal>s.get(Payment.class, id)</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr "<literal>from Payment p</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr "<literal>from Order o join o.payment p</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr "<emphasis>soportado</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr "tabla por clase concreta (union-subclass)"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+msgstr ""
+"<literal><one-to-many></literal> (solo para "
+"<literal>inverse=\"true\"</"
+"literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr "tabla por clase concreta (polimorfismo implÃcito)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><any></literal>"
+msgstr "<literal><any></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr "<emphasis>no soportado</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr "<literal><many-to-any></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+msgstr ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/performance.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/performance.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/performance.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2270 @@
+# translation of performance.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: performance\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-17 10:28+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr "Mejoramiento del rendimiento"
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr "Estrategias de recuperación"
+
+#. 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 utiliza una <emphasis>estrategia de recuperación</emphasis> para "
+"recuperar los objetos asociados cuando la aplicación necesita navegar la "
+"asociación. Las estrategias de recuperación se pueden declarar en los "
+"metadatos de mapeo O/R, o se pueden sobrescribir por medio de una HQL "
+"particular o una petición <literal>Criteria</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr "Hibernate3 define las siguientes estrategias de recuperación:"
+
+#. 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>Recuperación por unión (join fetching)</emphasis>: Hibernate "
+"recupera la instancia asociada o la colección en el mismo <literal>SELECT</"
+"literal>, utilizando un <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>Recuperación por selección (select fetching)</emphasis>: se "
+"utiliza un segundo <literal>SELECT</literal> para recuperar la entidad o "
+"colección asocidas. A menos que deshabilite explÃcitamente la recuperación "
+"perezosa especificando <literal>lazy=\"false\"</literal>, la segunda "
+"selección sólo será ejecutada cuando acceda a la asociación."
+
+#. 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>Recuperación por subselección (subselect fetching)</emphasis>: se "
+"utiliza un segundo <literal>SELECT</literal> para recuperar las colecciones "
+"asociadas de todas las entidades recuperadas en una consulta o recuperación "
+"previa. A menos de que deshabilite explÃcitamente la recuperación perezosa "
+"especificando <literal>lazy=\"false\"</literal>, esta segunda selección sólo "
+"se ejecutará cuando acceda a la asociación."
+
+#. 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>Recuperación en lote</emphasis>: una estrategia de optimización "
+"para la recuperación por selección. Hibernate recupera un lote de instancias "
+"de entidad o colecciones en un solo <literal>SELECT</literal>, especificando "
+"una lista de claves principales o de claves foráneas."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr "Hibernate también distingue entre:"
+
+#. 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>Recuperación inmediata</emphasis>: una asociación, colección o "
+"atributo se recupera inmediatamente cuando se carga el dueño."
+
+#. 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>Recuperación perezosa de colecciones</emphasis>: una colección se "
+"recupera cuando la aplicación invoca una operación sobre esa colección. Este "
+"es el valor predeterminado para las colecciones."
+
+#. 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>Recuperación de colección \"extra-perezoza\" </emphasis>: se "
+"accede a elementos individuales desde la base de datos cuando se necesita. "
+"Hibernate intenta no recuperar toda la colección en la memoria a menos de "
+"que sea absolutamente necesario. Esto es apropiado para colecciones muy "
+"grandes."
+
+#. 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>Recuperación por proxy</emphasis>: una asociación monovaluada se "
+"recupera cuando se invoca un método que no sea el getter del identificador "
+"sobre el objeto asociado."
+
+#. 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> Recuperación \"no-proxy\" </emphasis>: una asociación monovaluada "
+"se recupera cuando se accede a la variable de la instancia. Comparado con la "
+"recuperación por proxy, este enfoque es menos perezozo; la asociación se "
+"recupera cuando se accede sólamente al identificador. También es más "
+"transparente ya que para la aplicación no hay proxies visibles. Este enfoque "
+"requiere instrumentación del código byte del tiempo estimado de construcción "
+"y se necesita muy raramente."
+
+#. 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>Recuperación perezosa de atributos</emphasis>: un atributo o una "
+"asociación monovaluada se recuperan cuando se accede a la variable de la "
+"instancia. Este enfoque requiere instrumentación del código byte en tiempo "
+"estimado de construcción y se necesita muy raramente."
+
+#. 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 ""
+"Aquà tenemos dos nociones ortogonales: <emphasis>cuándo</emphasis> se "
+"recupera la aplicación, y <emphasis>cómo</emphasis> se recupera. Es "
+"importante que no las confunda. Utilizamos <literal>fetch</literal> para "
+"afinar el rendimiento. Podemos usar <literal>lazy</literal> para definir un "
+"contrato sobre qué datos están siempre disponibles en cualquier instancia "
+"separada de una clase en particular."
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr "Trabajo con asociaciones perezosas"
+
+#. 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 ""
+"Por defecto, Hibernate3 usa una recuperación perezosa por selección para "
+"colecciones y una recuperación por proxy perezosa para asociaciones "
+"monovaluadas. Estas polÃticas predeterminadas tienen sentido para casi todas "
+"las asociaciones en la mayorÃa de las aplicaciones."
+
+#. 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 ""
+"Si configura <literal>hibernate.default_batch_fetch_size</literal>, "
+"Hibernate utilizará la optimización de recuperación en lotes para "
+"recuperación perezosa. Esta optimización también se puede habilitar en un "
+"nivel más detallado."
+
+#. 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 ""
+"Note que el acceder a una asociación perezosa fuera del contexto de una "
+"sesión de Hibernate abierta resultará en una excepción. Por ejemplo:"
+
+#. 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 ""
+"Ya que la colección de permisos no fue inicializada cuando se cerró la "
+"<literal>Session</literal>, la colección no será capaz de cargar su estado. "
+"<emphasis>Hibernate no soporta la inicialización perezosa de objetos "
+"separados</emphasis>. La solución es mover el código que lee de la colección "
+"a justo antes de que se guarde la transacción."
+
+#. 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 ""
+"Opcionalmente puede utilizar una colección no perezosa o asociación, "
+"especificando <literal>lazy=\"false\"</literal> para el mapeo de asociación. "
+"Sin embargo, el propósito de la inicialización perezosa es que se utilice "
+"para casi todas las colecciones y asociaciones. ¡Si define demasiadas "
+"asociaciones no perezosas en su modelo de objetos, Hibernate recuperará la "
+"base de datos entera en toda transacción."
+
+#. 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 ""
+"Por otro lado, puede utilizar la recuperación por unión, la cual no es "
+"perezosa por naturaleza, en lugar de la recuperación por selección en una "
+"transacción en particular. Veremos ahora cómo personalizar la estrategia de "
+"recuperación. En Hibernate3, los mecanismos para elegir una estrategia de "
+"recuperación son idénticas para las de las asociaciones monovaluadas y las "
+"colecciones."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr "Afinación de las estrategias de recuperación"
+
+#. 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 ""
+"La recuperación por selección (la preestablecida) es extremadamente "
+"vulnerable a problemas de selección N+1, de modo que puede que queramos "
+"habilitar la recuperación por unión (join fetching) en el documento de mapeo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> strategy defined in the mapping document "
+"affects:"
+msgstr ""
+"La estrategia de <literal>recuperación</literal> definida en el documento de "
+"mapeo afecta a:"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
+msgstr ""
+"las recuperaciones por medio de <literal>get()</literal> o <literal>load()</"
+"literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval that happens implicitly when an association is navigated"
+msgstr ""
+"las recuperaciones que ocurren implÃcitamente cuando se navega una "
+"asociación (recuperación perezosa)"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr "las consultas de <literal>Criteria</literal>"
+
+#. 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>"
+
+#. 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 ""
+"Sin importar que estrategia de recuperación utilice, se garantiza que la "
+"gráfica no-perezoza definida será cargada en la memoria. Sin embargo, esto "
+"puede causar la utilización de varias selecciones inmediatas para ejecutar "
+"una consulta HQL en particular."
+
+#. 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 ""
+"Usualmente, no utilizamos el documento de mapeo para personalizar la "
+"recuperación. En cambio, mantenemos el comportamiento por defecto y lo "
+"sobrescribimos para una transacción en particular, utilizando <literal>left "
+"join fetch</literal> en HQL. Esto le dice a Hibernate que recupere la "
+"asociación tempranamente en la primera selección, usando una unión externa. "
+"En la API de consulta de <literal>Criteria</literal>, usted utilizarÃa "
+"<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 ""
+"Si quiere cambiar la estrategia de recuperación utilizada por <literal>get()"
+"</literal> o <literal>load()</literal>; utilice una consulta "
+"<literal>Criteria</literal>. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
+"\"."
+msgstr ""
+"Esto es el equivalente de Hibernate de lo que otras soluciones ORM denominan "
+"un \"plan de recuperación\"."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
+msgstr ""
+"Un enfoque completamente diferente de evitar problemas con selecciones N+1 "
+"es usar el caché de segundo nivel."
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr "Proxies de asociaciones de un sólo extremo"
+
+#. 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 ""
+"La recuperación perezosa de colecciones está implementada utilizando la "
+"implementación de colecciones persistentes propia de Hibernate. Sin embargo, "
+"se necesita un mecanismo diferente para un comportamiento perezoso en las "
+"asociaciones de un sólo extremo. La entidad destino de la asociación se debe "
+"tratar con proxies. Hibernate implementa proxies de inicialización perezosa "
+"para objetos persistentes utilizando la mejora del código byte en tiempo de "
+"ejecución por medio de la biblioteca 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 ""
+"En el arranque, Hibernate3 genera proxies por defecto para todas las clases "
+"persistentes y los usa para habilitar la recuperación perezosa de "
+"asociaciones <literal>muchos-a-uno</literal> y <literal>uno-a-uno</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 ""
+"El archivo de mapeo puede declarar una interfaz a utilizar como interfaz de "
+"proxy para esa clase, con el atributo <literal>proxy</literal>. Por defecto, "
+"Hibernate usa una subclase de la clase. <emphasis>La clase tratada con "
+"proxies debe implementar un constructor por defecto con al menos visibilidad "
+"de paquete. Recomendamos este constructor para todas las clases "
+"persistentes</emphasis>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are potential problems to note when extending this approach to "
+"polymorphic classes.For example:"
+msgstr ""
+"Hay problemas potenciales que se deben tener en cuenta al extender este "
+"enfoque a las clases polimórficas. Por ejemplo:"
+
+#. 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 ""
+"Primero, las instancias de <literal>Cat</literal> nunca serán objeto de un "
+"cast a <literal>DomesticCat</literal>, incluso aunque la instancia "
+"subyacente sea una instancia de <literal>DomesticCat</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr "Segundo, es posible romper el proxy <literal>==</literal>:"
+
+#. 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 ""
+"Sin embargo, la situación no es en absoluto tan mala como parece. Aunque "
+"tenemos ahora dos referencias a objetos proxy diferentes, la instancia "
+"subyacente será aún el mismo objeto:"
+
+#. 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 ""
+"Tercero, no puede usar un proxy CGLIB para una clase <literal>final</"
+"literal> o una clase con algún método <literal>final</literal>."
+
+#. 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 ""
+"Finalmente, si su objeto persistente adquiere cualquier recurso bajo "
+"instanciación (por ejemplo, en inicializadores o constructores por defecto), "
+"entonces esos recursos serán adquiridos también por el proxy. La clase del "
+"proxy es una subclase real de la clase persistente. "
+
+#. 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 ""
+"Estos problemas se deben a limitaciones fundamentales en el modelo de "
+"herencia única de Java. Si desea evitar estos problemas cada una de sus "
+"clases persistentes deben implementar una interfaz que declare sus métodos "
+"de negocio. Debe especificar estas interfaces en el archivo de mapeo en "
+"donde <literal>CatImpl</literal> implementa la interfaz <literal>Cat</"
+"literal> y <literal>DomesticCatImpl</literal> implementa la interfaz "
+"<literal>DomesticCat</literal>. Por ejemplo:"
+
+#. 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 ""
+"Entonces los proxies para las instancias de <literal>Cat</literal> y "
+"<literal>DomesticCat</literal> pueden ser retornadas por <literal>load()</"
+"literal> o <literal>iterate()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr "<literal>list()</literal> usualmente no retorna proxies."
+
+#. 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 ""
+"Las relaciones también son inicializadas perezosamente. Esto significa que "
+"debe declarar cualquier propiedad como de tipo <literal>Cat</literal>, no "
+"<literal>CatImpl</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgstr ""
+"Ciertas operaciones <emphasis>no</emphasis> requieren inicialización de "
+"proxies:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>equals()</literal>: if the persistent class does not override "
+"<literal>equals()</literal>"
+msgstr ""
+"<literal>equals()</literal>, si la clase persistente no sobrescribe "
+"<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>, si la clase persistente no sobrescribe "
+"<literal>hashCode()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr "El método getter del identificador"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate will detect persistent classes that override <literal>equals()</"
+"literal> or <literal>hashCode()</literal>."
+msgstr ""
+"Hibernate detectará las clases persistentes que sobrescriban <literal>equals"
+"()</literal> o <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 ""
+"Al escoger <literal>lazy=\"no-proxy\"</literal> en vez del <literal>lazy="
+"\"proxy\"</literal> predeterminado, podemos evitar los problemas asociados "
+"con conversión de tipos (typecasting). Sin embargo, requiere la "
+"instrumentación de código byte en tiempo estimado de construcción y todas "
+"las operaciones resultarán en una inicialización de proxies inmediata."
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr "Inicialización de colecciones y proxies"
+
+#. 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 ""
+"Hibernate lanzará una <literal>LazyInitializationException</literal> si se "
+"accede a una colección o proxy sin acceder fuera del ámbito de la "
+"<literal>Session</literal>, por ejemplo, cuando la entidad que posee la "
+"colección o que tiene la referencia al proxy esté en el estado separado."
+
+#. 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 ""
+"A veces es necesario inicializar un proxy o una colección antes de cerrar la "
+"<literal>Session</literal>. Puede forzar la inicialización llamando a "
+"<literal>cat.getSex()</literal> o <literal>cat.getKittens().size()</"
+"literal>, por ejemplo. Sin embargo, esto puede ser confuso para los lectores "
+"del código y no es conveniente para el código genérico."
+
+#. 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 ""
+"Los métodos estáticos <literal>Hibernate.initialize()</literal> y "
+"<literal>Hibernate.isInitialized()</literal> proporcionan a la aplicación "
+"una forma conveniente de trabajar con colecciones o proxies inicializados "
+"perezosamente. <literal>Hibernate.initialize(cat)</literal> forzará la "
+"inicialización de un proxy, <literal>cat</literal>, en tanto su "
+"<literal>Session</literal> esté todavÃa abierta. <literal>Hibernate."
+"initialize( cat.getKittens() )</literal> tiene un efecto similar para la "
+"colección de gatitos. "
+
+#. 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 ""
+"Otra opción es mantener la <literal>Session</literal> abierta hasta que "
+"todas las colecciones y proxies necesarios hayan sido cargados. En algunas "
+"arquitecturas de aplicación, particularmente en aquellas donde el código que "
+"accede a los datos usando Hibernate, y el código que los utiliza están en "
+"capas de aplicación diferentes o procesos fÃsicos diferentes, puede ser un "
+"problema asegurar que la <literal>Session</literal> esté abierta cuando se "
+"inicializa una colección. Existen dos formas básicas para abordar este tema: "
+
+#. 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 ""
+"En una aplicación basada en la web se puede utilizar un filtro de servlets "
+"para cerrar la <literal>Session</literal> sólamente al final de una petición "
+"del usuario, una vez que la entrega de la vista esté completa (el patrón "
+"<emphasis>sesión abierta en vista (open session in view)</emphasis>). Por "
+"supuesto, estos sitios requieren una fuerte demanda de corrección del manejo "
+"de excepciones de la infraestructura de su aplicación. Es de una vital "
+"importancia que la <literal>Session</literal> esté cerrada y la transacción "
+"terminada antes de volver al usuario, incluso cuando ocurra una excepción "
+"durante le entrega de la vista. Refiérase a la Wiki de Hibernate para ver "
+"ejemplos de este patrón \"Open Session in View\" (sesión abierta en vista). "
+
+#. 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 ""
+"En una aplicación con una capa de negocios separada, la lógica empresarial "
+"tiene que \"preparar\" todas las colecciones que la capa web va a necesitar "
+"antes de retornar. Esto significa que la capa empresarial debe cargar todos "
+"los datos y devolver a la capa web/presentación todos los datos ya "
+"inicializados que se requieran para un caso de uso en particular. "
+"Usualmente, la aplicación llama a <literal>Hibernate.initialize()</literal> "
+"para cada colección que se necesitará en la capa web (esta llamada debe "
+"tener lugar antes de que se cierre la sesión) o recupera la colección "
+"tempranamente utilizando una consulta de Hibernate con una cláusula "
+"<literal>FETCH</literal> o una <literal>FetchMode.JOIN</literal> en "
+"<literal>Criteria</literal>. Usualmente, esto es más fácil si adopta el "
+"patrón <emphasis>Comando</emphasis> en vez de una <emphasis>Fachada de "
+"Sesión</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 ""
+"También puede adjuntar un objeto cargado previamente a una nueva "
+"<literal>Session</literal> con <literal>merge()</literal> o <literal>lock()</"
+"literal> antes de acceder a colecciones no inicializadas u otros proxies. "
+"Hibernate no y ciertamente <emphasis>no debe</emphasis> hacer esto "
+"automáticamente ya que introducirÃa semánticas de transacción improvisadas."
+
+#. 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 ""
+"A veces no quiere inicializar una colección grande, pero todavÃa necesita "
+"alguna información sobre ella como por ejemplo, su tamaño o un subconjunto "
+"de los datos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can use a collection filter to get the size of a collection without "
+"initializing it:"
+msgstr ""
+"Puede utilizar un filtro de colecciones para obtener el tamaño de una "
+"colección sin inicializarla:"
+
+#. 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 ""
+"El método <literal>createFilter()</literal> también se utiliza para "
+"recuperar eficientemente subconjuntos de una colección sin necesidad de "
+"inicializar toda la colección:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr "Utilización de recuperación de lotes"
+
+#. 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 ""
+"Usando la recuperación por lotes, Hibernate puede cargar varios proxies sin "
+"inicializar si se accede a un proxy. La recuperación en lotes es una "
+"optimización de la estrategia de recuperación por selección perezosa. Hay "
+"dos formas en que puede configurar la recuperación en lotes: a nivel de la "
+"clase y a nivel de colección."
+
+#. 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 ""
+"La recuperación en lotes para clases/entidades es más fácil de entender. "
+"Considere el siguiente ejemplo: en tiempo de ejecución tiene 25 instancias "
+"de <literal>Cat</literal> cargadas en una <literal>Session</literal> y cada "
+"<literal>Cat</literal> tiene una referencia a su <literal>owner</literal>, "
+"una <literal>Person</literal>. La clase <literal>Person</literal> está "
+"mapeada con un proxy, <literal>lazy=\"true\"</literal>. Si ahora itera a "
+"través de todos los cats y llama a <literal>getOwner()</literal> para cada "
+"uno, Hibernate por defecto, ejecutará 25 declaraciones <literal>SELECT</"
+"literal> para recuperar los dueños proxies. Puede afinar este comportamiento "
+"especificando un <literal>batch-size</literal> en el mapeo de "
+"<literal>Person</literal>:"
+
+#. 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."
+
+#. 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 ""
+"También puede habilitar la recuperación en lotes para colecciones. Por "
+"ejemplo, si cada <literal>Person</literal> tiene una colección perezosa de "
+"<literal>Cat</literal>s y hay 10 personas actualmente cargadas en la "
+"<literal>Session</literal>, iterar a través de las 10 personas generará 10 "
+"<literal>SELECT</literal>s, uno para cada llamada a <literal>getCats()</"
+"literal>. Si habilita la recuperación en lotes para la colección de "
+"<literal>cats</literal> en el mapeo de <literal>Person</literal>, Hibernate "
+"puede recuperar por adelantado las colecciones: "
+
+#. 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 ""
+"Con un <literal>batch-size</literal> de 3, Hibernate cargará las colecciones "
+"3, 3, 3, 1 en cuatro <literal>SELECT</literal>s. Una vez más, el valor del "
+"atributo depende del número esperado de colecciones sin inicializar en una "
+"<literal>Session</literal> en particular."
+
+#. 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 ""
+"La recuperación de colecciones en lotes es particularmente útil si tiene un "
+"árbol anidado de Ãtems, por ejemplo, el tÃpico patrón de cuenta de "
+"materiales. Sin embargo, un <emphasis>conjunto anidado</emphasis> o una "
+"<emphasis>ruta materializada</emphasis> podrÃa ser una mejor opción para "
+"árboles que sean de lectura en la mayorÃa de los casos."
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr "Utilización de la recuperación por subselección"
+
+#. 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 ""
+"Si una colección perezosa o proxy monovaluado tiene que ser recuperado, "
+"Hibernate los carga a todos, volviendo a ejecutar la consulta original en "
+"una subselección. Esto funciona de la misma forma que la recuperación en "
+"lotes, sin carga fragmentaria. "
+
+#. Tag: title
+#, no-c-format
+msgid "Fetch profiles"
+msgstr "Perfiles de recuperación"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another way to affect the fetching strategy for loading associated objects "
+"is through something called a fetch profile, which is a named configuration "
+"associated with the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> but enabled, by name, on the <interfacename>org.hibernate."
+"Session</interfacename>. Once enabled on a <interfacename>org.hibernate."
+"Session</interfacename>, the fetch profile wull be in affect for that "
+"<interfacename>org.hibernate.Session</interfacename> until it is explicitly "
+"disabled."
+msgstr ""
+"Otra manera de modificar la estrategia de recuperación para cargar objetos "
+"asociados es por medio de algo llamado un perfil de recuperación, el cual es "
+"una configuración nombrada asociada con la <interfacename>org.hibernate."
+"SessionFactory</interfacename> pero habilitada por nombre en la "
+"<interfacename>org.hibernate.Session</interfacename>. Una vez habilitada en "
+"una <interfacename>org.hibernate.Session</interfacename>, el perfil de "
+"recuperación estará en efecto para esa <interfacename>org.hibernate.Session</"
+"interfacename> hasta que se deshabilite explÃcitamente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"So what does that mean? Well lets explain that by way of an example. Say we "
+"have the following mappings:"
+msgstr ""
+"¿Entonces qué significa? Vamos a explicarlo por medio de un ejemplo. Digamos "
+"que tenemos los siguientes mapeos:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now normally when you get a reference to a particular customer, that "
+"customer's set of orders will be lazy meaning we will not yet have loaded "
+"those orders from the database. Normally this is a good thing. Now lets say "
+"that you have a certain use case where it is more efficient to load the "
+"customer and their orders together. One way certainly is to use \"dynamic "
+"fetching\" strategies via an HQL or criteria queries. But another option is "
+"to use a fetch profile to achieve that. Just add the following to your "
+"mapping:"
+msgstr ""
+"Ahora normalmente cuando reciba una referencia a un cliente en particular, "
+"el grupo de pedidos será perezoso lo que significa que aún no habremos "
+"cargado esos pedidos de la base de datos. Usualmente esto está bien. Ahora "
+"digamos que tiene un ejemplo en donde es más eficiente el cargar el cliente "
+"y sus pedidos juntos. Una manera es utilizar las estrategias de "
+"\"recuperación dinámica\" por medio de peticiones de criterio o un HQL. Pero "
+"otra opción es utilizar un perfi de recuperación para lograr esto. "
+"Simplemente agregue lo siguiente a su mapeo:"
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr "o incluso:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now the following code will actually load both the customer <emphasis>and "
+"their orders</emphasis>:"
+msgstr ""
+"Ahora el siguiente código de hecho cargará el cliente <emphasis>y sus "
+"órdenes</emphasis>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Currently only join style fetch profiles are supported, but they plan is to "
+"support additional styles. See <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+"Actualmente solo se soportan los perfiles de recuperación de estilo unido "
+"pero se planear soportar estilos adicionales. Consulte <ulink url=\"http://"
+"opensource.atlassian.com/projects/hibernate/browse/HHH-3414\">HHH-3414</"
+"ulink> para obtener mayores detalles."
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr "Utilización de la recuperación perezosa de propiedades"
+
+#. 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 soporta la recuperación perezosa de propiedades individuales. "
+"Esta técnica de optimización también es conocida como <emphasis>grupos de "
+"recuperación (fetch groups)</emphasis>. Por favor, note que éste es "
+"principalmente un aspecto de marketing, ya que en la práctica, optimizar las "
+"lecturas de filas es mucho más importante que la optimización de lectura de "
+"columnas. Sin embargo, cargar sólo algunas propiedades de una clase podrÃa "
+"ser útil en casos extremos. Por ejemplo, cuando las tablas heredadas tienen "
+"cientos de columnas y el modelo de datos no puede ser mejorado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To enable lazy property loading, set the <literal>lazy</literal> attribute "
+"on your particular property mappings:"
+msgstr ""
+"Para habilitar la carga perezosa de propiedades, establezca el atributo "
+"<literal>lazy</literal> en sus mapeos de propiedades:"
+
+#. 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 ""
+"La carga perezosa de propiedades requiere la instrumentación del código byte "
+"en tiempo de construcción. Si sus clases persistentes no se mejoran, "
+"Hibernate ignorará la configuración perezosa de propiedades y retornará a la "
+"recuperación inmediata."
+
+#. 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:"
+
+#. 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 ""
+"Una forma diferente de evitar lecturas innecesarias de columnas, al menos "
+"para transacciones de sólo lectura es utilizar las funcionalidades de "
+"proyección de consultas HQL o Criteria. Esto evita la necesidad de procesar "
+"el código byte en tiempo de construcción y ciertamente es la solución "
+"preferida."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can force the usual eager fetching of properties using <literal>fetch "
+"all properties</literal> in HQL."
+msgstr ""
+"Puede forzar la usual recuperación temprana de propiedades utilizando "
+"<literal>fetch all properties</literal> en HQL."
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr "El Caché de Segundo Nivel"
+
+#. 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 ""
+"Una <literal>Session</literal> de Hibernate es un caché de datos "
+"persistentes a nivel de transacción. Es posible configurar un clúster o "
+"caché a nivel de MVJ (a nivel de <literal>SessionFactory</literal>) sobre "
+"una base de clase-por-clase o colección-por-colección. Incluso puede "
+"enchufar un caché en clúster. Tenga en cuenta de que los cachés nunca están "
+"al tanto de los cambios que otra aplicación haya realizado al almacén "
+"persistente. Sin embargo, se pueden configurar para que los datos en caché "
+"expiren regularmente."
+
+#. 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 ""
+"Tiene la opción de decirle a Hibernate cual implementación de caché utilizar "
+"al especificar el nombre de una clase que implemente <literal>org.hibernate."
+"cache.CacheProvider</literal> utilizando la propiedad <literal>hibernate."
+"cache.provider_class</literal>. Hibernate viene vinculada con un número de "
+"integraciones incorporadas con los proveedores caché de código abierto "
+"enumerados a continuación. Además puede implementar el suyo y enchufarlo "
+"como se explicó anteriormente. Observe que las versiones anteriores a 3.2 "
+"por defecto utilizan EhCache como proveedor de caché."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr "Proveedores de Caché"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr "Caché"
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr "Clase del Provedor"
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr "Tipo"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr "Clúster Seguro"
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr "Caché de Consultas Soportado"
+
+#. Tag: entry
+#, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr "Hashtable (no fue pensado para la utilización en producción)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr "memoria"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes"
+msgstr "si"
+
+#. Tag: entry
+#, no-c-format
+msgid "EHCache"
+msgstr "EHCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr "memoria, disco"
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr "OSCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr "SwarmCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr "en clúster (ip multicast)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr "sà (invalidación en clúster)"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr "JBoss Cache 1.x"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr "en clúster (ip multicast), transaccional"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr "sà (replicación)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr "sà (requiere sincronización de reloj)"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 2"
+msgstr "JBoss Cache 2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr "sà (replicación o invalidación)"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr "Mapeos de caché"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><cache></literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"El elemento <literal><cache></literal> de un mapeo de clase o "
+"colección tiene la siguiente forma:"
+
+#. 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> especifica la estrategia de caché: "
+"<literal>transactional</literal>, <literal>read-write</literal>, "
+"<literal>nonstrict-read-write</literal> o <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> (opcional: por defecto es el nombre del rol de la "
+"clase o colección): especifica el nombre de la región de caché de segundo "
+"nivel."
+
+#. 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> (opcional: por defecto es <literal>all</literal>) "
+"<literal>non-lazy</literal>: especifica que las propiedades de la entidad "
+"mapeadas con <literal>lazy=\"true\"</literal> no se pueden poner en caché "
+"cuando se habilita la recuperación perezoza a nivel de atributos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Alternatively, you can specify <literal><class-cache></literal> and "
+"<literal><collection-cache></literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"Opcionalmente, puede especificar los elementos <literal><class-cache></"
+"literal> y <literal><collection-cache></literal> en <literal>hibernate."
+"cfg.xml</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>usage</literal> attribute specifies a <emphasis>cache "
+"concurrency strategy</emphasis>."
+msgstr ""
+"El atributo <literal>usage</literal> especifica una <emphasis>estrategia de "
+"concurrencia al caché</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr "Estrategia: sólo lectura"
+
+#. 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 ""
+"Si su aplicación necesita leer pero no modificar las instancias de una clase "
+"persistente, puede utilizar un caché <literal>read-only</literal> (de sólo "
+"lectura). Esta es la mejor estrategia y la más simple. Incluso es totalmente "
+"segura para utilizar en un clúster."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr "Estrategia: lectura/escritura (read/write)"
+
+#. 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 ""
+"Si la aplicación necesita actualizar datos, un caché <literal>read-write</"
+"literal> puede ser apropiado. Esta estrategia de caché nunca se debe "
+"utilizar si se requiere un nivel de aislamiento serializable de "
+"transacciones. Si el caché se usa en un entorno JTA, tiene que especificar "
+"la propiedad <literal>hibernate.transaction.manager_lookup_class</literal>, "
+"mencionando una estrategia para obtener el <literal>TransactionManager</"
+"literal> de JTA. En otros entornos, debe asegurarse de que la transacción "
+"esté completada cuando se llame a <literal>Session.close()</literal> o "
+"<literal>Session.disconnect()</literal>. Si desea utilizar esta estrategia "
+"en un clúster, debe asegurarse de que la implementación de caché subyacente "
+"soporta bloqueos. Los provedores de caché internos <emphasis>no</emphasis> "
+"soportan bloqueos."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr "Estrategia: lectura/escritura no estricta"
+
+#. 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 ""
+"Si la aplicación necesita sólo ocasionalmente actualizar datos (es decir, es "
+"extremadamente improbable que dos transacciones intenten actualizar el mismo "
+"Ãtem simultáneamente) y no se requiere de un aislamiento de transacciones "
+"estricto, un caché <literal>nonstrict-read-write</literal> podrÃa ser "
+"apropiado. Si se utiliza el caché en un entorno JTA, tiene que especificar "
+"<literal>hibernate.transaction.manager_lookup_class</literal>. En otros "
+"entornos, debe asegurarse que se haya completado la transacción cuando se "
+"llame a <literal>Session.close()</literal> o <literal>Session.disconnect()</"
+"literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr "Estrategia: transaccional"
+
+#. 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 ""
+"La estrategia de caché <literal>transactional</literal> brinda soporte a "
+"provedores de cachés completamente transaccionales como JBoss TreeCache. Un "
+"caché asÃ, sólo se puede utilizar en un entorno JTA y tiene que especificar "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr "Compatibilidad de proveedor de caché/estrategia de concurrencia"
+
+#. Tag: para
+#, no-c-format
+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é. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table shows which providers are compatible with which "
+"concurrency strategies."
+msgstr ""
+"La siguiente tabla muestra qué provedores son compatibles con qué "
+"estrategias de concurrencia."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Concurrency Strategy Support"
+msgstr "Soporte a Estrategia de Concurrencia a Caché"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr "read-only"
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr "nonstrict-read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr "read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr "transactional"
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr "Gestión de cachés"
+
+#. 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 ""
+"Siempre que pase un objeto a <literal>save()</literal>, <literal>update()</"
+"literal> o <literal>saveOrUpdate()</literal> y siempre que recupere un "
+"objeto utilizando <literal>load()</literal>, <literal>get()</literal>, "
+"<literal>list()</literal>, <literal>iterate()</literal> o <literal>scroll()</"
+"literal>, ese objeto se agrega al caché interno de la <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 ""
+"Cuando luego se llame a <literal>flush()</literal>, el estado de ese objeto "
+"será sincronizado con la base de datos. Si no quiere que ocurra esta "
+"sincronización o si está procesando un número enorme de objetos y necesita "
+"gestionar la memoria eficientemente, puede utilizar el método <literal>evict"
+"()</literal> para quitar el objeto y sus colecciones del caché de primer "
+"nivel. "
+
+#. 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 ""
+"La <literal>Session</literal> también proporciona un método <literal>contains"
+"()</literal> para determinar si una instancia pertenece al caché de la "
+"sesión."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To evict all objects from the session cache, call <literal>Session.clear()</"
+"literal>"
+msgstr ""
+"Para expulsar todos los objetos del caché de sesión, llame a "
+"<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 ""
+"Para el caché de segundo nivel, hay métodos definidos en "
+"<literal>SessionFactory</literal> para explusar el estado en caché de una "
+"instancia, clase entera, instancia de colección o rol entero de colección."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>CacheMode</literal> controls how a particular session interacts "
+"with the second-level cache:"
+msgstr ""
+"El <literal>CacheMode</literal> controla la manera en que interactúa una "
+"sesión en particular con el caché de segundo nivel:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
+msgstr ""
+"<literal>CacheMode.NORMAL</literal>: lee Ãtems desde y escribe Ãtems hacia "
+"el caché del segundo nivel"
+
+#. 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>: lee Ãtems del caché del segundo nivel. No "
+"escribe al caché de segundo nivel excepto cuando actualiza datos"
+
+#. 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>: escribe Ãtems al caché de segundo nivel. "
+"No lee del caché de segundo nivel"
+
+#. 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>: escribe Ãtems al caché de segundo "
+"nivel. No lee del caché de segundo nivel, saltándose el efecto de "
+"<literal>hibernate.cache.use_minimal_puts</literal>, forzando la "
+"actualización del caché de segundo nivel para todos los Ãtems leÃdos de la "
+"base de datos"
+
+#. 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 ""
+"Para navegar por los contenidos de una región de caché de segundo nivel o de "
+"consultas, use la API de <literal>Statistics</literal>:"
+
+#. 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 ""
+"Necesitará habilitar las estadÃsticas y, opcionalmente, forzar a Hibernate "
+"para que guarde las entradas del caché en un formato más fácil de entender "
+"para humanos: "
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr "El Caché de Consultas"
+
+#. 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."
+msgstr ""
+"Los conjuntos de resultados de peticiones también pueden ponerse en caché. "
+"Esto sólamente es útil para consultas que se ejecutan frecuentemente con los "
+"mismos parámetros."
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr "Habilitación del caché de peticiones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Caching of query results introduces some overhead in terms of your "
+"applications normal transactional processing. For example, if you cache "
+"results of a query against Person Hibernate will need to keep track of when "
+"those results should be invalidated because changes have been committed "
+"against Person. That, coupled with the fact that most applications simply "
+"gain no benefit from caching query results, leads Hibernate to disable "
+"caching of query results by default. To use query caching, you will first "
+"need to enable the query cache:"
+msgstr ""
+"El poner en caché los resultados de una petición introduce algunos "
+"sobrecostos en términos del procesamiento transaccional normal de sus "
+"aplicaciones. Por ejemplo, si pone en caché los resultados de una petición "
+"frente a Person, Hibernate necesitará rastrear cuando se deben invalidar "
+"esos resultados debido a los cambios que se han guardado en Person. Eso más "
+"el hecho de que la mayorÃa de las aplicaciones simplemente no ganan "
+"beneficio de poner los resultados en caché, lleva a Hibernate a deshabilitar "
+"el caché de los resultados de una petición por defecto. Para utilizar el "
+"caché de peticiones primero necesita habilitar el caché de peticiones:"
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr "Esta configuración crea dos nuevas regiones de caché:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the "
+"cached query results"
+msgstr ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, mantiene los "
+"resultados de la petición en caché"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding "
+"timestamps of the most recent updates to queryable tables. These are used to "
+"validate the results as they are served from the query cache."
+msgstr ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, mantiene "
+"los sellos de fecha de las actualizaciones más recientes a las tablas de "
+"peticiones. Estas se utilizan para validar los resultados ya que se sirven "
+"desde el caché de peticiones."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you configure your underlying cache implementation to use expiry or "
+"timeouts is is very important that the cache timeout of the underlying cache "
+"region for the UpdateTimestampsCache be set to a higher value than the "
+"timeouts of any of the query caches. In fact, we recommend that the the "
+"UpdateTimestampsCache region not be configured for expiry at all. Note, in "
+"particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+"Si configura su implementación de caché subyacente para utilizar los tiempos "
+"de expiración es muy importante que el tiempo de expiración del caché de la "
+"región de cachésubyacente para el UpdateTimestampsCache se establezca con un "
+"valor mayor que los tiempos de expiración de cualquiera de los cachés de "
+"resultados. De hecho, recomendamos que la región UpdateTimestampsCache no se "
+"configure con ninguna expiración. Observe en particular que nunca es "
+"apropiado una polÃtica de expiración de caché LRU. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As mentioned above, most queries do not benefit from caching or their "
+"results. So by default, individual queries are not cached even after "
+"enabling query caching. To enable results caching for a particular query, "
+"call <literal>org.hibernate.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 ""
+"Como lo mencionamos anteriormente, la mayorÃa de las consultas no se "
+"benefician del caché o de sus resultados; de modo que por defecto las "
+"consultas individuales no se ponen en caché incluso después de habilitar el "
+"caché para peticiones. Para habilitar el caché de resultados para una "
+"petición en particular, llame a <literal>org.hibernate.Query.setCacheable"
+"(true)</literal>. Esta llamada permite que la consulta busque resultados "
+"existentes en caché o que agregue sus resultados al caché cuando se ejecuta."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query cache does not cache the state of the actual entities in the "
+"cache; it caches only identifier values and results of value type. For this "
+"reaso, the query cache should always be used in conjunction with the second-"
+"level cache for those entities expected to be cached as part of a query "
+"result cache (just as with collection caching)."
+msgstr ""
+"El caché de peticiones no pone en caché el estado real de las entidades en "
+"el caché; pone en caché solo los valores del identificador y los resultados "
+"de tipo valor. Por esta razón, el caché de peticiones siempre se debe "
+"utilizar en conjunto con el caché de segundo nivel para aquellas entidades "
+"que se esperan poner en caché como parte de un caché de resultados de una "
+"petición (asà como con el caché de colección). "
+
+#. Tag: title
+#, no-c-format
+msgid "Query cache regions"
+msgstr "Regiones de caché de consultas"
+
+#. 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 ""
+"Si necesita un control muy detallado sobre las polÃticas de expiración del "
+"caché de consultas, puede especificar una región de caché con nombre para "
+"una consulta en particular llamando a <literal>Query.setCacheRegion()</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to force the query cache to refresh one of its regions "
+"(disregard any cached results it finds there) you can use <literal>org."
+"hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction "
+"with the region you have defined for the given query, Hibernate will "
+"selectively force the results cached in that particular region to be "
+"refreshed. This is particularly useful in cases where underlying data may "
+"have been updated via a separate process and is a far more efficient "
+"alternative to bulk eviction of the region via <literal>org.hibernate."
+"SessionFactory.evictQueries()</literal>."
+msgstr ""
+"Si quiere forzar que el caché de peticiones actualice una de sus regiones "
+"(olvÃdese de cualquier resultado en caché que se encuentre allÃ) puede "
+"utilizar <literal>org.hibernate.Query.setCacheMode(CacheMode.REFRESH)</"
+"literal>. Junto con la región que ha definido para la petición dada, "
+"Hibernate forzará selectivamente los resultados en caché en esa región en "
+"particular que se va a actualizar. Esto es particularmente útil en casos "
+"donde los datos subyacentes pueden haber sido actualizados por medio de un "
+"proceso separado y esta es una alternativa más eficiente que la expulsión en "
+"masa de una región por medio de <literal>org.hibernate.SessionFactory."
+"evictQueries()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr "Comprensión del rendimiento de Colecciones"
+
+#. 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 ""
+"En las secciones anteriores hemos abordado las colecciones y sus "
+"aplicaciones. En esta sección exploramos algunos puntos en relación con las "
+"colecciones en tiempo de ejecución. "
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr "TaxonomÃa"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr "Hibernate define tres tipos básicos de colecciones:"
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr "colecciones de valores"
+
+#. Tag: para
+#, no-c-format
+msgid "one-to-many associations"
+msgstr "Asociaciones uno-a-muchos "
+
+#. Tag: para
+#, no-c-format
+msgid "many-to-many associations"
+msgstr "Aociaciones muchos-a-muchos"
+
+#. 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 ""
+"Esta clasificación distingue las varias tablas y relaciones de clave foránea "
+"pero no nos dice absolutamente todo lo que necesitamos saber sobre el modelo "
+"relacional. Para entender completamente la estructura relacional y las "
+"caracterÃsticas de rendimiento, debemos considerar la estructura de la clave "
+"primaria que Hibernate utiliza para actualizar o borrar filas de colección. "
+"Esto sugiere la siguiente clasificación:"
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr "colecciones indexadas"
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr "conjuntos (sets)"
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr "bolsas (bags)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal><key></literal> and <literal><index></"
+"literal> columns. In this case, collection updates are extremely efficient. "
+"The primary key can be efficiently indexed and a particular row can be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"Todas las colecciones indexadas (mapas, listas y arrays) tienen una clave "
+"principal que consiste de las columnas <literal><key></literal> e "
+"<literal><index></literal>. En este caso las actualizaciones de "
+"colecciones son extremadamente eficientes. La clave principal puede ser "
+"indexada eficientemente y una fila en particular puede ser localizada cuando "
+"Hibernate intenta actualizarla o borrarla."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal><key></literal> and "
+"element columns. This can be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields, as "
+"the database may not be able to index a complex primary key as efficiently. "
+"However, for one-to-many or many-to-many associations, particularly in the "
+"case of synthetic identifiers, it is likely to be just as efficient. If you "
+"want <literal>SchemaExport</literal> to actually create the primary key of a "
+"<literal><set></literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"Los conjuntos tienen una clave principal que consiste de <literal><key>"
+"</literal> y columnas de elementos. Esto puede ser menos eficiente para "
+"algunos tipos de elementos de colección, particularmente elementos "
+"compuestos o texto largo o campos binarios ya que la base de datos puede no "
+"ser capaz de indexar una clave principal compleja eficientemente. Sin "
+"embargo, para asociaciones uno a muchos o muchos a muchos, particularmente "
+"en el caso de los identificadores sintéticos, es probable que sólo sea igual "
+"de eficiente. Si quiere que <literal>SchemaExport</literal> realmente cree "
+"la clave principal de un <literal><set></literal>, tiene que declarar "
+"todas las columnas como <literal>not-null=\"true\"</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><idbag></literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"Los mapeos de <literal><idbag></literal> definen una clave delegada, "
+"de modo que siempre resulten eficientes de actualizar. De hecho, son el "
+"mejor caso."
+
+#. 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 ""
+"Los bags son el peor caso ya que un bag permite valores de elementos "
+"duplicados y no tiene ninguna columna Ãndice, no puede definirse ninguna "
+"clave principal. Hibernate no tiene forma de distinguir entre filas "
+"duplicadas. Hibernate resuelve este problema quitando por completo con un "
+"sólo <literal>DELETE</literal> y recreando la colección siempre que cambia. "
+"Esto puede ser muy ineficiente."
+
+#. 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 ""
+"Para una asociación uno-a-muchos, la \"clave principal\" puede no ser la "
+"clave principal fÃsica de la tabla de la base de datos. Incluso en este "
+"caso, la clasificación anterior es útil todavÃa. Refleja cómo Hibernate "
+"\"localiza\" filas individuales de la colección."
+
+#. Tag: title
+#, no-c-format
+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"
+
+#. 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 ""
+"De la discusión anterior, debe quedar claro que las colecciones indexadas y "
+"los conjuntos permiten una operación más eficiente en términos de agregar, "
+"quitar y actualizar elementos."
+
+#. 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 ""
+"Discutiblemente, hay una ventaja más de las colecciones indexadas sobre "
+"otros conjuntos para las asociaciones muchos a muchos o colecciones de "
+"valores. Debido a la estructura de un <literal>Set</literal>, Hibernate ni "
+"siquiera actualiza una fila con <literal>UPDATE</literal> cuando se \"cambia"
+"\" un elemento. Los cambios a un <literal>Set</literal> siempre funcionan "
+"por medio de <literal>INSERT</literal> y <literal>DELETE</literal> de filas "
+"individuales. Una vez más, esta consideración no se aplica a las "
+"asociaciones uno a muchos."
+
+#. 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 ""
+"Después de observar que los arrays no pueden ser perezosos, podrÃamos "
+"concluir que las listas, mapas e idbags son los tipos más eficientes de "
+"colecciones (no inversas), con los conjuntos (sets) no muy atrás. Se espera "
+"que los sets sean el tipo más común de colección en las aplicaciones de "
+"Hibernate. Esto se debe a que la semántica de los sets es la más natural en "
+"el modelo relacional."
+
+#. 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 ""
+"Sin embargo, en modelos de dominio de Hibernate bien dieñados, usualmente "
+"vemos que la mayorÃa de las colecciones son de hecho asociaciones uno-a-"
+"muchos con <literal>inverse=\"true\"</literal>. Para estas asociaciones, la "
+"actualización es manejada por el extremo muchos-a-uno de la asociación, y "
+"las consideraciones de este tipo sobre el rendimiento de la actualización de "
+"las colecciones simplemente no se aplican."
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr "Los Bags y las listas son las colecciones inversas más eficientes"
+
+#. 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 ""
+"Hay un caso en particular en el que los bags y también las listas son mucho "
+"más eficientes que los conjuntos. Para una colección con <literal>inverse="
+"\"true\"</literal>, por ejemplo, el idioma estándar de relaciones uno-a-"
+"muchos bidireccionales, podemos agregar elementos a un bag o lista sin "
+"necesidad de inicializar (recuperar) los elementos del bag. Esto se debe a "
+"que, a manera opuesta de <literal>Collection.add()</literal> o "
+"<literal>Collection.addAll()</literal> siempre deben retornar verdadero para "
+"un bag o <literal>List</literal> (no como un <literal>Set</literal>). Esto "
+"puede hacer el siguiente código común mucho más rápido:"
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr "Borrado de un sólo tiro"
+
+#. 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 ""
+"Borrar los elementos de una colección uno por uno a veces puede ser "
+"extremadamente ineficiente. Hibernate sabe que no debe hacer eso, en el caso "
+"de una colección nueva-vacÃa (si ha llamado a <literal>list.clear()</"
+"literal>, por ejemplo). En este caso, Hibernate publicará un sólo "
+"<literal>DELETE</literal>."
+
+#. 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 ""
+"Suponga que agrega un solo elemento a una colección de tamaño veinte y luego "
+"quitamos dos elementos. Hibernate publicará una declaración <literal>INSERT</"
+"literal> y dos declaraciones <literal>DELETE</literal> a menos que la "
+"colección sea un bag. Esto ciertamente es deseable."
+
+#. 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 ""
+"Sin embargo, supónga que quitamos dieciocho elementos, dejando dos y luego "
+"añadimos tres elementos nuevos. Hay dos formas posibles de proceder"
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr "borrar dieciocho filas una a una y luego insertar tres filas"
+
+#. 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"
+msgstr ""
+"quitar toda la colección en un sólo <literal>DELETE</literal> de SQL e "
+"insertar todos los cinco elementos actuales uno por uno"
+
+#. 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 no sabe que la segunda opción es probablemente la más rápida. "
+"Probablemente no serÃa deseable que Hibernate fuese tan intuitivo ya que tal "
+"comportamiento podrÃa confundir a disparadores de la base de datos, etc."
+
+#. 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 ""
+"Afortunadamente, puede forzar este comportamiento (por ejemplo, la segunda "
+"estrategia) en cualquier momento descartando (por ejemplo, desreferenciando) "
+"la colección original y retornando una colección nuevamente instanciada con "
+"todos los elementos actuales."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"El borrado-de-un-sólo-tiro no se aplica a las colecciones mapeadas "
+"<literal>inverse=\"true\"</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr "Control del rendimiento"
+
+#. 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 ""
+"La optimización no es de mucho uso sin el monitoreo y el acceso a números de "
+"rendimiento. Hibernate brinda un rango completo de números sobre sus "
+"operaciones internas. Las estadÃsticas en Hibernate están disponibles por "
+"<literal>SessionFactory</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr "Control de una SessionFactory"
+
+#. 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 ""
+"Puede acceder a las métricas de <literal>SessionFactory</literal> de dos "
+"formas. Su primera opción es llamar a <literal>sessionFactory.getStatistics()"
+"</literal> y leer o mostrar por pantalla la <literal>Statistics</literal> "
+"por sà mismo."
+
+#. 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 ""
+"Hibernate también puede utilizar JMX para publicar las métricas si habilita "
+"el MBean <literal>StatisticsService</literal>. Puede habilitar un sólo MBean "
+"para todas sus <literal>SessionFactory</literal> o una por fábrica. Véa el "
+"siguiente código para ver ejemplos de configuración minimalistas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can activate and deactivate the monitoring for a "
+"<literal>SessionFactory</literal>:"
+msgstr ""
+"Puede activar y desactivar el monitoreo de una <literal>SessionFactory</"
+"literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"at configuration time, set <literal>hibernate.generate_statistics</literal> "
+"to <literal>false</literal>"
+msgstr ""
+"en tiempo de configuración, establezca <literal>hibernate."
+"generate_statistics</literal> como <literal>false</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> "
+"or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+msgstr ""
+"en tiempo de ejecución: <literal>sf.getStatistics().setStatisticsEnabled"
+"(true)</literal> o <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 ""
+"Las estadÃsticas pueden ser reajustadas programáticamente utilizando el "
+"método <literal>clear()</literal>. Puede enviarse un resumen a un registro "
+"(a nivel de información) utilizando el método <literal>logSummary()</"
+"literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr "Métricas"
+
+#. 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 proporciona un número de métricas, desde información muy básica "
+"hasta la más especializada sólamente relevante en ciertos escenarios. Todos "
+"los contadores disponibles se describen en la API de la interfaz "
+"<literal>Statistics</literal>, en tres categorÃas:"
+
+#. 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 ""
+"Métricas relacionadas al uso general de <literal>Session</literal> usage, "
+"tales como número de sesiones abiertas, conexiones JDBC recuperadas, etc,"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Metrics related to the entities, collections, queries, and caches as a whole "
+"(aka global metrics)."
+msgstr ""
+"Métricas relacionadas con las entidades, colecciones, consultas y cachés "
+"como un todo (también conocidas como métricas globales)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Detailed metrics related to a particular entity, collection, query or cache "
+"region."
+msgstr ""
+"Métricas detalladas relacionadas con una entidad, colección, consulta o "
+"región de caché en particular."
+
+#. 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 ""
+"Por ejemplo, puede comprobar el acceso, pérdida y radio de colecciones de "
+"entidades y consultas en el caché, y el tiempo promedio que necesita una "
+"consulta. Tenga en cuenta que el número de milisegundos está sujeto a una "
+"aproximación en Java. Hibernate está vinculado a la precisión de la MVJ, en "
+"algunas plataformas esto podrÃa tener incluso una exactitud de 10 segundos."
+
+#. 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 ""
+"Se usan getters simples para acceder a la métrica global (por ejemplo, no "
+"vinculadas en particular a una entidad, colección, región de caché, etc). "
+"Puede acceder a las métricas de una entidad, colección, región de caché en "
+"particular a través de su nombre y a través de su representación HQL o SQL "
+"para las consultas. Por favor refiérase al Javadoc de la API de "
+"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal>, y <literal>QueryStatistics</"
+"literal> para obtener más información. El siguiente código es un ejemplo "
+"sencillo:"
+
+#. 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 ""
+"Para trabajar sobre todas las entidades, colecciones, consultas y regiones "
+"de cachés, recuperando la lista de nombres de entidades, colecciones, "
+"consultas y regiones de cachés con los siguientes métodos: "
+"<literal>getQueries()</literal>, <literal>getEntityNames()</literal>, "
+"<literal>getCollectionRoleNames()</literal> y "
+"<literal>getSecondLevelCacheRegionNames()</literal>."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/persistent_classes.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/persistent_classes.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/persistent_classes.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,662 @@
+# translation of persistent_classes.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: persistent_classes\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 11:10+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "Clases persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Persistent classes are classes in an application that implement the entities "
+"of the business problem (e.g. Customer and Order in an E-commerce "
+"application). Not all instances of a persistent class are considered to be "
+"in the persistent state. For example, an instance can instead be transient "
+"or detached."
+msgstr ""
+"Las clases presistentes son clases en una aplicación que implementan las "
+"entidades del problema empresarial (por ejemplo, Customer y Order en una "
+"aplicación de comercio electrónico). No se considera que todas las "
+"instancias de una clase persistente estén en estado persistente. Por "
+"ejemplo, una instancia puede ser transitoria o separada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate works best if these classes follow some simple rules, also known "
+"as the Plain Old Java Object (POJO) programming model. However, none of "
+"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
+"about the nature of your persistent objects. You can express a domain model "
+"in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr ""
+"Hibernate funciona mejor si estas clases siguen algunas reglas simples, "
+"también conocidas como el modelo de programación POJO (Plain Old Java "
+"Object). Sin embargo, ninguna de estas reglas son requerimientos rÃgidos. De "
+"hecho, Hibernate3 asume muy poco acerca de la naturaleza de sus objetos "
+"persistentes. Puede expresar un modelo de dominio en otras formas (por "
+"ejemplo, utilizando árboles de instancias de <literal>Map</literal>)."
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr "Ejemplo simple de POJO"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most Java applications require a persistent class representing felines. For "
+"example:"
+msgstr ""
+"La mayorÃa de aplicaciones Java requieren una clase persistente que "
+"represente a los felinos. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The four main rules of persistent classes are explored in more detail in the "
+"following sections."
+msgstr ""
+"En las siguientes secciones vamos a explorar en mayor detalle las cuatro "
+"reglas principales de las clases persistentes. "
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr "Implemente un constructor sin argumentos"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
+"must have a default constructor (which can be non-public) so that Hibernate "
+"can instantiate them using <literal>Constructor.newInstance()</literal>. It "
+"is recommended that you have a default constructor with at least "
+"<emphasis>package</emphasis> visibility for runtime proxy generation in "
+"Hibernate."
+msgstr ""
+"<literal>Cat</literal> tiene un contructor sin argumentos. Todas las clases "
+"persistentes deben tener un constructor predeterminado (el cual puede ser no-"
+"público) de modo que Hibernate pueda instanciarlas usando "
+"<literal>Constructor.newInstance()</literal>. Le recomendamos contar con un "
+"constructor por defecto con al menos una visibilidad de <emphasis>paquete</"
+"emphasis> para la generación de proxies en tiempo de ejecución en Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr "Proporcione una propiedad identificadora (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a property called <literal>id</literal>. This "
+"property maps to the primary key column of a database table. The property "
+"might have been called anything, and its type might have been any primitive "
+"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
+"<literal>java.util.Date</literal>. If your legacy database table has "
+"composite keys, you can use a user-defined class with properties of these "
+"types (see the section on composite identifiers later in the chapter.)"
+msgstr ""
+"<literal>Cat</literal> tiene una propiedad llamada <literal>id</literal>. "
+"Esta propiedad mapea a la columna de la llave principal de la tabla de la "
+"base de datos. La propiedad podrÃa llamarse de cualquier manera y su tipo "
+"podrÃa haber sido cualquier tipo primitivo, cualquier tipo de \"wrapper\" "
+"primitivo, <literal>java.lang.String</literal> o <literal>java.util.Date</"
+"literal>. Si su tabla de base de datos heredada tiene claves compuestas, "
+"puede utilizar una clase definida por el usuario con propiedades de estos "
+"tipos (vea la sección sobre identificadores compuestos más adelante en este "
+"capÃtulo)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The identifier property is strictly optional. You can leave them off and let "
+"Hibernate keep track of object identifiers internally. We do not recommend "
+"this, however."
+msgstr ""
+"La propiedad identificadora es estrictamente opcional. Puede olvidarla y "
+"dejar que Hibernate siga internamente la pista de los identificadores del "
+"objeto. Sin embargo, no recomendamos que esto suceda."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In fact, some functionality is available only to classes that declare an "
+"identifier property:"
+msgstr ""
+"De hecho, algunas funcionalidades se encuentran disponibles sólamente para "
+"clases que declaran una propiedad identificadora: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Transitive reattachment for detached objects (cascade update or cascade "
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr ""
+"Reasociación transitiva de objetos separados (actualizaciones o fusiones en "
+"cascada) - consulte <xref linkend=\"objectstate-transitive\" />"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "<literal>Session.saveOrUpdate()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr "<literal>Session.merge()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"We recommend that you declare consistently-named identifier properties on "
+"persistent classes and that you use a nullable (i.e., non-primitive) type."
+msgstr ""
+"Le recomendamos que declare propiedades identificadoras nombradas-"
+"consistentemente en clases persistentes. y que utilice un tipo nulable (por "
+"ejemplo, no primitivo)."
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr "Prefiera las clases no finales (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
+"the persistent class being either non-final, or the implementation of an "
+"interface that declares all public methods."
+msgstr ""
+"Un aspecto central de Hibernate, los <emphasis>proxies</emphasis>, dependen "
+"de que las clases persistentes sean no finales o de la implementación de una "
+"interfaz que declare todos los métodos públicos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can persist <literal>final</literal> classes that do not implement an "
+"interface with Hibernate. You will not, however, be able to use proxies for "
+"lazy association fetching which will ultimately limit your options for "
+"performance tuning."
+msgstr ""
+"Con Hibernate puede persistir las clases <literal>final</literal>es que no "
+"implementen una interfaz. Sin embargo, no podrá utilizar proxies para "
+"recuperación perezosa de asociaciones, lo cual limitará sus opciones para "
+"afinar el rendimiento."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You should also avoid declaring <literal>public final</literal> methods on "
+"the non-final classes. If you want to use a class with a <literal>public "
+"final</literal> method, you must explicitly disable proxying by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"También debe evitar el declarar métodos <literal>public final</literal> en "
+"las clases no-finales. Si quiere utilizar una clase con un método "
+"<literal>public final</literal>, debe deshabilitar explÃcitamente el uso de "
+"proxies estableciendo <literal>lazy=\"false\"</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr ""
+"Declare métodos de acceso y de modificación para los campos persistentes "
+"(opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> declares accessor methods for all its persistent "
+"fields. Many other ORM tools directly persist instance variables. It is "
+"better to provide an indirection between the relational schema and internal "
+"data structures of the class. By default, Hibernate persists JavaBeans style "
+"properties and recognizes method names of the form <literal>getFoo</"
+"literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If "
+"required, you can switch to direct field access for particular properties."
+msgstr ""
+"<literal>Cat</literal> declara métodos de acceso para todos sus campos "
+"persistentes. Muchas otras herramientas ORM persisten directamente variables "
+"de instancia. Es mejor proporcionar una indirección entre el esquema "
+"relacional y las estructuras de datos internos de la clase. Por defecto, "
+"Hibernate persiste las propiedades del estilo JavaBeans, y reconoce los "
+"nombres de método de la forma <literal>getFoo</literal>, <literal>isFoo</"
+"literal> y <literal>setFoo</literal>. De ser necesario, puede cambiarse al "
+"acceso directo a campos para propiedades especÃficas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
+"persist a property with a default, <literal>protected</literal> or "
+"<literal>private</literal> get / set pair."
+msgstr ""
+"<emphasis>No</emphasis> es necesario declarar públicas las propiedades. "
+"Hibernate puede persistir una propiedad con un par get / set "
+"<literal>protected</literal> o <literal>private</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr "Implementación de herencia"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A subclass must also observe the first and second rules. It inherits its "
+"identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr ""
+"Una subclase también tiene que cumplir con la primera y la segunda regla. "
+"Hereda su propiedad identificadora de la superclase <literal>Cat</literal>. "
+"Por ejemplo:"
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr "Implementando <literal>equals()</literal> y <literal>hashCode()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You have to override the <literal>equals()</literal> and <literal>hashCode()"
+"</literal> methods if you:"
+msgstr ""
+"Tiene que sobrescribir los métodos <literal>equals()</literal> y "
+"<literal>hashCode()</literal> si:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"intend to put instances of persistent classes in a <literal>Set</literal> "
+"(the recommended way to represent many-valued associations); <emphasis>and</"
+"emphasis>"
+msgstr ""
+"piensa poner instancias de clases persistentes en un <literal>Set</literal> "
+"(la forma recomendada de representar asociaciones multivaluadas); "
+"<emphasis>y</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr "piensa utilizar reasociación de instancias separadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate guarantees equivalence of persistent identity (database row) and "
+"Java identity only inside a particular session scope. When you mix instances "
+"retrieved in different sessions, you must implement <literal>equals()</"
+"literal> and <literal>hashCode()</literal> if you wish to have meaningful "
+"semantics for <literal>Set</literal>s."
+msgstr ""
+"Hibernate garantiza la equivalencia de identidad persistente (fila de base "
+"de datos) y de identidad Java sólamente dentro del ámbito de una sesión en "
+"particular. De modo que en el momento en que mezcla instancias recuperadas "
+"en sesiones diferentes, tiene que implementar <literal>equals()</literal> y "
+"<literal>hashCode()</literal> si desea tener una semántica significativa "
+"para <literal>Set</literal>s."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The most obvious way is to implement <literal>equals()</literal>/"
+"<literal>hashCode()</literal> by comparing the identifier value of both "
+"objects. If the value is the same, both must be the same database row, "
+"because they are equal. If both are added to a <literal>Set</literal>, you "
+"will only have one element in the <literal>Set</literal>). Unfortunately, "
+"you cannot use that approach with generated identifiers. Hibernate will only "
+"assign identifier values to objects that are persistent; a newly created "
+"instance will not have any identifier value. Furthermore, if an instance is "
+"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
+"identifier value to the object. If <literal>equals()</literal> and "
+"<literal>hashCode()</literal> are based on the identifier value, the hash "
+"code would change, breaking the contract of the <literal>Set</literal>. See "
+"the Hibernate website for a full discussion of this problem. This is not a "
+"Hibernate issue, but normal Java semantics of object identity and equality."
+msgstr ""
+"La forma más obvia es implementar <literal>equals()</literal>/"
+"<literal>hashCode()</literal> comparando el valor identificador de ambos "
+"objetos. Si el valor es el mismo, ambos deben ser la misma fila de la base "
+"de datos ya que son iguales. Si ambos son agregados a un <literal>Set</"
+"literal>, sólo tendremos un elemento en el <literal>Set</literal>). "
+"Desafortunadamente, no puede utilizar este enfoque con identificadores "
+"generados. Hibernate sólo asignará valores identificadores a objetos que son "
+"persistentes; una instancia recién creada no tendrá ningún valor "
+"identificador. Además, si una instancia no se encuentra guardada y está "
+"actualmente en un <literal>Set</literal>, al guardarla se asignará un valor "
+"identificador al objeto. Si <literal>equals()</literal> y <literal>hashCode()"
+"</literal> están basados en el valor identificador, el código hash podrÃa "
+"cambiar, rompiendo el contrato del <literal>Set</literal>. Consulte el sitio "
+"web de Hibernate y allà encontrará una discusión completa sobre este "
+"problema. Este no es un problema de Hibernate, sino de la semántica normal "
+"de Java de identidad de objeto e igualdad."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is recommended that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> using <emphasis>Business key equality</"
+"emphasis>. Business key equality means that the <literal>equals()</literal> "
+"method compares only the properties that form the business key. It is a key "
+"that would identify our instance in the real world (a <emphasis>natural</"
+"emphasis> candidate key):"
+msgstr ""
+"Le recomendamos implementar <literal>equals()</literal> y <literal>hashCode()"
+"</literal> utilizando <emphasis>igualdad de clave empresarial (Business key "
+"equality)</emphasis>. Igualdad de clave empresarial significa que el método "
+"<literal>equals()</literal> sólamente compara las propiedades que forman la "
+"clave empresarial. Esta es una clave que podrÃa identificar nuestra "
+"instancia en el mundo real (una clave candidata <emphasis>natural</"
+"emphasis>):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A business key does not have to be as solid as a database primary key "
+"candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable "
+"or unique properties are usually good candidates for a business key."
+msgstr ""
+"Una clave empresarial no tiene que ser tan sólida como una clave principal "
+"candidata (consulte la <xref linkend=\"transactions-basics-identity\" />). Las propiedades inmutables o únicas usualmente son "
+"buenas candidatas para una clave empresarial."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr "Modelos dinámicos"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
+msgstr ""
+"<emphasis>Las siguientes funcionalidades se consideran como "
+"experimentales actualmente y es posible que cambien pronto.</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Persistent entities do not necessarily have to be represented as POJO "
+"classes or as JavaBean objects at runtime. Hibernate also supports dynamic "
+"models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) "
+"and the representation of entities as DOM4J trees. With this approach, you "
+"do not write persistent classes, only mapping files."
+msgstr ""
+"Las entidades persistentes no necesariamente tienen que estar representadas "
+"como clases POJO o como objetos JavaBean en tiempo de ejecución. Hibernate "
+"también soporta modelos dinámicos (utilizando <literal>Map</literal>eos de "
+"<literal>Map</literal>eos en tiempo de ejecución) y la representación de "
+"entidades como árboles de DOM4J. No escriba clases persistentes con este "
+"enfoque, sólamente archivos de mapeo. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By default, Hibernate works in normal POJO mode. You can set a default "
+"entity representation mode for a particular <literal>SessionFactory</"
+"literal> using the <literal>default_entity_mode</literal> configuration "
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr ""
+"Por defecto, Hibernate funciona en modo POJO normal. Puede establecer un "
+"modo de representación de entidad predeterminado para una "
+"<literal>SessionFactory</literal> en particular utilizando la opción de "
+"configuración <literal>default_entity_mode</literal> (consulte <xref linkend=\"configuration-optional-properties\" />)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following examples demonstrate the representation using <literal>Map</"
+"literal>s. First, in the mapping file an <literal>entity-name</literal> has "
+"to be declared instead of, or in addition to, a class name:"
+msgstr ""
+"Los siguientes ejemplos demuestran la representación utilizando "
+"<literal>Map</literal>eos. Primero, en el archivo de mapeo tiene que "
+"declararse un <literal>entity-name</literal> en lugar de, o además de un "
+"nombre de clase:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Even though associations are declared using target class names, the target "
+"type of associations can also be a dynamic entity instead of a POJO."
+msgstr ""
+"Aunque las asociaciones se declaran utilizando nombres de clase destino, el "
+"tipo destino de una asociación puede ser además una entidad dinámica en "
+"lugar de un POJO."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After setting the default entity mode to <literal>dynamic-map</literal> for "
+"the <literal>SessionFactory</literal>, you can, at runtime, work with "
+"<literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr ""
+"Después de establecer el modo de entidad predeterminado como "
+"<literal>dynamic-map</literal> para la <literal>SessionFactory</literal>, "
+"puede trabajar en tiempo de ejecución con <literal>Map</literal>eos de "
+"<literal>Map</literal>eos: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One of the main advantages of dynamic mapping is quick turnaround time for "
+"prototyping, without the need for entity class implementation. However, you "
+"lose compile-time type checking and will likely deal with many exceptions at "
+"runtime. As a result of the Hibernate mapping, the database schema can "
+"easily be normalized and sound, allowing to add a proper domain model "
+"implementation on top later on."
+msgstr ""
+"Una de las ventajas principales de un mapeo dinámico es el rápido tiempo de "
+"entrega del prototipado sin la necesidad de implementar clases de entidad. "
+"Sin embargo, pierde el chequeo de tipos en tiempo de compilación y muy "
+"probablemente tendrá que tratar con muchas excepciones en tiempo de "
+"ejecución. Gracias al mapeo de Hibernate, el esquema de base de datos se "
+"puede normalizar y volver sólido, permitiendo añadir una implementación "
+"apropiada del modelo de dominio más adelante."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Entity representation modes can also be set on a per <literal>Session</"
+"literal> basis:"
+msgstr ""
+"Los modos de representación de entidad se pueden establecer por "
+"<literal>Session</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please note that the call to <literal>getSession()</literal> using an "
+"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
+"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
+"literal> shares the underlying JDBC connection, transaction, and other "
+"context information. This means you do not have to call <literal>flush()</"
+"literal> and <literal>close()</literal> on the secondary <literal>Session</"
+"literal>, and also leave the transaction and connection handling to the "
+"primary unit of work."
+msgstr ""
+"Tenga en cuenta que la llamada a <literal>getSession()</literal> utilizando "
+"un <literal>EntityMode</literal> está en la API de <literal>Session</"
+"literal>, no en la de <literal>SessionFactory</literal>. De esta forma, la "
+"nueva <literal>Session</literal> comparte la conexión JDBC, la transacción y "
+"otra información de contexto. Esto significa que no tiene que llamar a "
+"<literal>flush()</literal> ni a <literal>close()</literal> en la "
+"<literal>Session</literal> secundaria, y también tiene que dejar el manejo "
+"de la transacción y de la conexión a la unidad de trabajo primaria. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"More information about the XML representation capabilities can be found in "
+"<xref linkend=\"xml\" />."
+msgstr ""
+"Puede encontrar más información sobre las capacidades de representación de "
+"XML en <xref linkend=\"xml\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr "Tuplizers"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing that knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the corresponding tuplizer knows how create the POJO "
+"through its constructor. It also knows how to access the POJO properties "
+"using the defined property accessors."
+msgstr ""
+"<literal>org.hibernate.tuple.Tuplizer</literal> y sus subinterfaces son las "
+"responsables de administrar una representación en particular de un dato, "
+"dadas las representaciones de <literal>org.hibernate.EntityMode</literal>. "
+"Si un dato dado se considera como una estructura de datos entonces un "
+"tuplizer es la cosa que sabe como crear tal estructura de datos y sabe como "
+"extraer e insertar valores en dicha estructura de datos. Por ejemplo, para "
+"el modo de entidad POJO, el tuplizer correspondiente sabe como crear el POJO "
+"por medio de su constructor. También sabe como acceder a las propiedades "
+"POJO utilizando los accesores de propiedad definidos. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two high-level types of Tuplizers, represented by the <literal>org."
+"hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate."
+"tuple.component.ComponentTuplizer</literal> interfaces. "
+"<literal>EntityTuplizer</literal>s are responsible for managing the above "
+"mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
+msgstr ""
+"Hay dos tipos altos de niveles de Tuplizers, representados por las "
+"interfaces <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> y "
+"<literal>org.hibernate.tuple.component.ComponentTuplizer</literal>. Los "
+"<literal>EntityTuplizer</literal>s son los responsables de administrar los "
+"contratos mencionados anteriormente en relación con las entidades mientras "
+"que los <literal>ComponentTuplizer</literal>s hacen lo mismo para los "
+"componentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Users can also plug in their own tuplizers. Perhaps you require that a "
+"<literal>java.util.Map</literal> implementation other than <literal>java."
+"util.HashMap</literal> be used while in the dynamic-map entity-mode. Or "
+"perhaps you need to define a different proxy generation strategy than the "
+"one used by default. Both would be achieved by defining a custom tuplizer "
+"implementation. Tuplizer definitions are attached to the entity or component "
+"mapping they are meant to manage. Going back to the example of our customer "
+"entity:"
+msgstr ""
+"Los usuarios también pueden enchufar sus propios tuplizers. Tal vez necesite "
+"que una implementación <literal>java.util.Map</literal> diferente de "
+"<literal>java.util.HashMap</literal> se utilice en el modo de entidad de "
+"mapeo dinámico. O quizás necesite definir una estrategia de generación proxy "
+"diferente de la que se utiliza por defecto. Se pueden obtener ambas al "
+"definir una implementación tuplizer personalizada. Las definiciones de los "
+"tuplizers se encuentran sujetas a la entidad o componente de mapeo que se "
+"supone que tienen que administrar. Regresando al ejemplo de nuestra entidad "
+"de cliente:"
+
+#. Tag: title
+#, no-c-format
+msgid "EntityNameResolvers"
+msgstr "EntityNameResolvers"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"interface is a contract for resolving the entity name of a given entity "
+"instance. The interface defines a single method "
+"<methodname>resolveEntityName</methodname> which is passed the entity "
+"instance and is expected to return the appropriate entity name (null is "
+"allowed and would indicate that the resolver does not know how to resolve "
+"the entity name of the given entity instance). Generally speaking, an "
+"<interfacename>org.hibernate.EntityNameResolver</interfacename> is going to "
+"be most useful in the case of dynamic models. One example might be using "
+"proxied interfaces as your domain model. The hibernate test suite has an "
+"example of this exact style of usage under the <package>org.hibernate.test."
+"dynamicentity.tuplizer2</package>. Here is some of the code from that "
+"package for illustration."
+msgstr ""
+"La interfaz <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"es un contrato para resolver el nombre de la entidad de una instancia de "
+"entidad dada. La interfaz define un solo método "
+"<methodname>resolveEntityName</methodname>, el cual se le pasa la instancia "
+"entidad y se espera que retorne el nombre de entidad apropriado (se permite "
+"nulo e indicarÃa que el resolvedor no sabe cómo resolver el nombre de la "
+"entidad de la instancia de entidad dada). Generalmente hablando, un "
+"<interfacename>org.hibernate.EntityNameResolver</interfacename> será más "
+"útil en el caso de modelos dinámicos. Un ejemplo puede ser el usar "
+"interfaces con proxis como su modelo de dominio. La suite de prueba de "
+"hibernate tiene un ejemplo de este estilo exacto de uso bajo el <package>org."
+"hibernate.test.dynamicentity.tuplizer2</package>. Aquà está algo del código "
+"de ese paquete para su ilustración."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
+"interfacename> users must either:"
+msgstr ""
+"Con el fin de registrar un <interfacename>org.hibernate.EntityNameResolver</"
+"interfacename> los usuarios deben:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
+"method."
+msgstr ""
+"Implementar un <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link> personalizado, implementando el método <methodname>getEntityNameResolvers</"
+"methodname>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (which is the implementation class for <interfacename>org."
+"hibernate.SessionFactory</interfacename>) using the "
+"<methodname>registerEntityNameResolver</methodname> method."
+msgstr ""
+"Registrarlo con el <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (el cual es la clase de implementación para <interfacename>org."
+"hibernate.SessionFactory</interfacename>) usando el método "
+"<methodname>registerEntityNameResolver</methodname>."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/portability.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/portability.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/portability.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,388 @@
+# translation of portability.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: portability\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-17 12:19+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: portability.xml:31
+#, no-c-format
+msgid "Database Portability Considerations"
+msgstr "Consideraciones de la portabilidad de la base de datos"
+
+#. Tag: title
+#: portability.xml:34
+#, no-c-format
+msgid "Portability Basics"
+msgstr "Aspectos básicos de la portabilidad"
+
+#. Tag: para
+#: portability.xml:36
+#, 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 ""
+"Uno de los aspectos que más vende de Hibernate (y realmente del mapeo objeto/"
+"relacional en sÃ) es la noción de portabilidad de la base de datos. PodrÃa "
+"ser el caso de un administrador de sistemas migrando de una base de datos de "
+"un vendedor a otro, o podrÃa ser un marco de trabajo o una aplicación "
+"desplegable consumiendo Hibernate para que apunte simultáneamente a "
+"múltiples productos de bases de datos. Sin importar el escenario exacto, la "
+"idea básica es que quiere que Hibernate le ayude a ejecutar frente a "
+"cualquier número de bases de datos sin cambiar el código e idealmente sin "
+"cambiar los metadatos de mapeo. "
+
+#. Tag: title
+#: portability.xml:47
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialecto"
+
+#. Tag: para
+#: portability.xml:49
+#, 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 ""
+"La primera lÃnea de portabilidad para Hibernate es el dialecto, el cual es "
+"una especialización del contrato <classname>org.hibernate.dialect.Dialect</"
+"classname>. Un dialecto encapsula todas las diferencias en la manera en que "
+"Hibernate debe comunicarse con una base de datos en particular para lograr "
+"alguna tarea como el obtener un valor de secuencia o el estructurar una "
+"petición SELECT. Hibernate reune un gran rango de dialectos para muchas de "
+"las bases de datos más populares. Si encuentra que su base de datos en "
+"particular no se encuentra entre estos, no es demasiado dificil es escribir "
+"el propio."
+
+#. Tag: title
+#: portability.xml:60
+#, no-c-format
+msgid "Dialect resolution"
+msgstr "Resolución del dialecto"
+
+#. Tag: para
+#: portability.xml:62
+#, 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 ""
+"Originalmente, Hibernate siempre requerÃa que los usuarios especificaran qué "
+"dialecto utilizar. En el caso de aquellos usuarios que buscaban apuntar a "
+"múltiples bases de datos de manera simultánea con su construcción eso "
+"representaba un problema. Generalmente esto requerÃa que los usuarios "
+"configuraran el dialecto de Hibernate o que definieran su propio método para "
+"establecer ese valor. "
+
+#. Tag: para
+#: portability.xml:69
+#, 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 ""
+"Empezando con la versión 3.2, Hibernate introdujo la noción de detectar "
+"automáticamente el dialecto a utilizar con base en los <interfacename>java."
+"sql.DatabaseMetaData</interfacename> que se obtuvieron de una "
+"<interfacename>java.sql.Connection</interfacename> a esa base de datos. Esto "
+"era mucho mejor pero esta resolución estaba limitada a las bases de datos "
+"que Hibernate conoce por adelantado y de ninguna manera era configurable ni "
+"se podÃa sobreescribir."
+
+#. Tag: para
+#: portability.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"Starting with version 3.3, Hibernate has a fare more powerful way to "
+"automatically determine which dialect to should be used by relying on a "
+"series of delegates which implement the <interfacename>org.hibernate.dialect."
+"resolver.DialectResolver</interfacename> which defines only a single method:"
+"<programlisting role=\"JAVA\"><![CDATA[public Dialect resolveDialect"
+"(DatabaseMetaData metaData) throws JDBCConnectionException]]></"
+"programlisting>. The basic contract here is that if the resolver "
+"'understands' the given database metadata then it returns the corresponding "
+"Dialect; if not it returns null and the process continues to the next "
+"resolver. The signature also identifies <exceptionname>org.hibernate."
+"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
+"A JDBCConnectionException here is interpreted to imply a \"non transient"
+"\" (aka non-recoverable) connection problem and is used to indicate an "
+"immediate stop to resolution attempts. All other exceptions result in a "
+"warning and continuing on to the next resolver."
+msgstr ""
+"Empezando por la versión 3.3, Hibernate cuenta con una manera más poderosa "
+"de determinar automáticamente cuál dialecto se debe utilizar dependiendo de "
+"una serie de delegados, los cuales implementan el <interfacename>org."
+"hibernate.dialect.resolver.DialectResolver</interfacename>. Este define un "
+"método único:<programlisting>public Dialect resolveDialect(DatabaseMetaData "
+"metaData) throws JDBCConnectionException</programlisting>. El contrato "
+"básico aquà es que si el resolvedor 'entiende' los metadatos de la base de "
+"datos dada entonces retorna el dialecto correspondiente; si no entonces "
+"retorna nulo y el proceso continua al siguiente resolvedor. La firma también "
+"identifica <exceptionname>org.hibernate.exception.JDBCConnectionException</"
+"exceptionname> ya que posiblemente se presenta. Una JDBCConnectionException "
+"aquà se interpreta como un problema de conexión \"no transitorio\" (también "
+"conocido como no-recuperable) y se utiliza para indicar que se deben detener "
+"inmediatamente los intentos de resolución. Todas las otras excepciones "
+"resultan en una advertencia y continua al siguiente resolvedor. "
+
+#. Tag: para
+#: portability.xml:90
+#, 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 ""
+"La parte divertida de estos resolvedores es que los usuarios también pueden "
+"registrar sus propios resolvedores personalizados, los cuales se procesarán "
+"antes de los incluÃdos en Hibernate. Esto puede llegar a ser útil en un "
+"número de situaciones diferentes: permite una fácil integración para la auto-"
+"detección de dialectos más allá de los que se envÃan junto con Hibernate; le "
+"permite especificar el uso de un dialecto personalizado cuando se reconoce "
+"una base de datos en particular; etc. Para registrar uno o más resolvedores, "
+"simplemente especifiquelos (separados por comas o espacios) usando la "
+"configuración 'hibernate.dialect_resolvers' (consulte la constante "
+"<constant>DIALECT_RESOLVERS</constant> en <classname>org.hibernate.cfg."
+"Environment</classname>)."
+
+#. Tag: title
+#: portability.xml:103
+#, no-c-format
+msgid "Identifier generation"
+msgstr "Generación del identificador"
+
+#. Tag: para
+#: portability.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"When considering portability between databases, another important decision "
+"is selecting the identifier generation stratagy you want to use. Originally "
+"Hibernate provided the <emphasis>native</emphasis> generator for this "
+"purpose, which was intended to select between a <emphasis>sequence</"
+"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
+"strategy depending on the capability of the underlying database. However, an "
+"insidious implication of this approach comes about when targtetting some "
+"databases which support <emphasis>identity</emphasis> generation and some "
+"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
+"definition of an IDENTITY (or auto-increment) column to manage the "
+"identifier value; it is what is known as a post-insert generation strategy "
+"becauase the insert must actually happen before we can know the identifier "
+"value. Because Hibernate relies on this identifier value to uniquely "
+"reference entities within a persistence context it must then issue the "
+"insert immediately when the users requests the entitiy be associated with "
+"the session (like via save() e.g.) regardless of current transactional "
+"semantics. <note> <para> Hibernate was changed slightly once the implication "
+"of this was better understood so that the insert is delayed in cases where "
+"that is feasible. </para> </note> The underlying issue is that the actual "
+"semanctics of the application itself changes in these cases."
+msgstr ""
+"Al considerar la portabilidad entre bases de datos, otra decisión importante "
+"es el seleccionar la estrategia de generación del identificador que quiere "
+"utilizar. Originalmente Hibernate brindaba el generador <emphasis>nativo</"
+"emphasis> para este propósito, el cual tenÃa el objetivo de seleccionar "
+"entre las estrategias <emphasis>sequence</emphasis>, <emphasis>identity</"
+"emphasis> o <emphasis>table</emphasis> dependiendo de la capacidad de la "
+"base de datos subyacente. Sin embargo, una de las implicaciones de este "
+"enfoque se presenta al tener como destino algunas bases de datos que "
+"soportan la generación de <emphasis>identidad</emphasis> y algunas no. La "
+"generación de <emphasis>identidad</emphasis> depende de la definición SQL de "
+"una columna IDENTITY (o auto-incremento) para administrar el valor del "
+"identificador; es lo que se conoce como una estrategia de generación post-"
+"insert ya que el insert de hecho debe tener lugar antes de saber el valor "
+"del identificador. Ya que Hibernate depende de este valor de identificador "
+"para referenciar de manera única a las entidades dentro de un contexto de "
+"persistencia entonces debe emitir el insert inmediatamente cuando los "
+"usuarios solicitan que la entidad se asocie con la sesión (por ejemplo, por "
+"medio de save()) sin importar la semántica transaccional actual."
+
+#. Tag: para
+#: portability.xml:130
+#, no-c-format
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way. <note> <para> There are "
+"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
+"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
+"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
+"listitem> </itemizedlist> </para> </note> The idea behind these generators "
+"is to port the actual semantics of the identifer value generation to the "
+"different databases. For example, the <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
+"databases which do not support sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#: portability.xml:159
+#, no-c-format
+msgid "Database functions"
+msgstr "Funciones de la base de datos"
+
+#. Tag: para
+#: portability.xml:162
+#, no-c-format
+msgid ""
+"This is an area in Hibernate in need of improvement. In terms of portability "
+"concerns, this function handling currently works pretty well from HQL; "
+"however, it is quite lacking in all other aspects."
+msgstr ""
+"Esta es un área en la que Hibernate necesita mejorar. En términos de qué tan "
+"portatil puede ser, esta función que se maneja actualmente trabaja bastante "
+"bien desde HQL; sin embargo, en otros aspectos le falta mucho. "
+
+#. Tag: para
+#: portability.xml:169
+#, no-c-format
+msgid ""
+"SQL functions can be referenced in many ways by users. However, not all "
+"databases support the same set of functions. Hibernate, provides a means of "
+"mapping a <emphasis>logical</emphasis> function name to a delegate which "
+"knows how to render that particular function, perhaps even using a totally "
+"different physical function call."
+msgstr ""
+"Los usuarios pueden referenciar las funciones de SQL de muchas maneras. Sin "
+"embargo, no todas las bases de datos soportan el mismo grupo de funciones. "
+"Hibernate proporciona una manera de mapear un nombre de una función "
+"<emphasis>lógica</emphasis> a un delegado, el cual sabe cómo entregar esa "
+"función en particular, tal vez incluso usando una llamada de función fÃsica "
+"totalmente diferente."
+
+#. Tag: para
+#: portability.xml:175
+#, 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 ""
+"Técnicamente este registro de función se maneja por medio de la clase "
+"<classname>org.hibernate.dialect.function.SQLFunctionRegistry</classname>, "
+"la cual tiene el propósito de permitirle a los usuarios el proporcionar "
+"definiciones de funciones personalizadas sin tener que brindar un dialecto "
+"personalizado. Este comportamiento especifico todavÃa no está del todo "
+"completo."
+
+#. Tag: para
+#: portability.xml:182
+#, 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 ""
+"De cierta manera está implementado para que los usuarios puedan registrar "
+"programáticamente las funciones con la <classname>org.hibernate.cfg."
+"Configuration</classname> y aquellas funciones serán reconocidas por HQL."
+
+#. Tag: title
+#: portability.xml:192
+#, no-c-format
+msgid "Type mappings"
+msgstr "Mapeos de tipo"
+
+#. Tag: para
+#: portability.xml:194
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr "Esta sección se completará en un futuro cercano..."
+
+#~ msgid ""
+#~ "Hibernate was changed slightly once the implication of this was better "
+#~ "understood so that the insert is delayed in cases where that is feasible."
+#~ msgstr ""
+#~ "Hibernate ha cambiado un poco ya que se comprendió un poco mejor las "
+#~ "implicaciones de esto de manera que el insert se retrasa en los casos en "
+#~ "donde esto posible. "
+
+#~ msgid ""
+#~ "The underlying issue is that the actual semanctics of the application "
+#~ "itself changes in these cases."
+#~ msgstr ""
+#~ "El problema subyacente es que la semántica real de la aplicación misma "
+#~ "cambia en estos casos."
+
+#~ 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 ""
+#~ "Desde la versión 3.2.3, Hibernate viene junto con un grupo de generadores "
+#~ "identificadores <ulink url=\"http://in.relation.to/2082.lace\">mejorados</"
+#~ "ulink> apuntando a la portabilidad de una manera muy diferente."
+
+#~ msgid ""
+#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+#~ msgstr ""
+#~ "Hay especificamente 2 paquetes de generadores <emphasis>mejorados</"
+#~ "emphasis>:"
+
+#~ msgid ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+#~ msgstr ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+
+#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+
+#~ 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 ""
+#~ "La idea detrás de estos generadores es el llevar la semántica de la "
+#~ "generación del valor identificador a las diferentes bases de datos. Por "
+#~ "ejemplo, el <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</"
+#~ "classname> asemeja el comportamiento de una secuencia en las bases de "
+#~ "datos que no soportan secuencias usando una tabla."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/preface.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/preface.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/preface.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,206 @@
+# translation of Preface.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of preface.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 15:31+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "Prefacio"
+
+#. 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 ""
+"El trabajar con software orientado a objetos y con una base de datos "
+"relacional puede llegar a ser engorroso y puede llegar a tomar bastante "
+"tiempo en los entornos empresariales de hoy en dÃa. Hibernate es una "
+"herramienta de mapeo objeto/relacional para entornos Java. El término de mapeo "
+"objeto/relacional (ORM) se refiere a la técnica de mapear una representación "
+"de datos desde un modelo de objeto a un modelo de datos relacionales con un "
+"esquema basado en 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 no sólamente se ocupa del mapeo desde las clases Java a las tablas "
+"de las bases de datos (y desde los tipos de datos de Java a los tipos de "
+"datos de SQL), sino que también facilita la consulta y recuperación de "
+"datos. Esto puede reducir de manera importante el tiempo de desarrollo que "
+"se tomarÃa con el manejo de datos de forma manual en SQL y 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 ""
+"La meta de Hibernate es aliviar el trabajo del desarrollador en 95% de la "
+"persistencia de datos comunes relacionados con tareas de programación. Es "
+"posible que Hibernate no sea la mejor solución para aquellas aplicaciones "
+"centralizadas en datos que sólamente utilizan los procedimientos almacenados "
+"para implementar la lógica empresarial en la base de datos, Hibernate es "
+"mucho más útil con modelos de dominio orientados a objetos y con lógica "
+"empresarial middle-tier con base en Java. Sin embargo, Hibernate ciertamente "
+"le puede ayudar a eliminar o a encapsular código SQL especÃfico del vendedor "
+"y le ayudará con la tarea común de traducción del grupo de resultados desde "
+"una representación tabular a un grafo de objetos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you are new to Hibernate and Object/Relational Mapping or even Java, "
+"please follow these steps:"
+msgstr ""
+"Si usted es nuevo en el tema de Hibernate y del Mapeo Objeto/Relacional o "
+"inclusive en Java por favor siga los siguientes pasos:"
+
+#. 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 ""
+"Consulte el <xref linkend=\"tutorial\"/>, el cual es un tutorial con "
+"instrucciones paso por paso. El código fuente para el tutorial se encuentra "
+"incluÃdo en la distribución en el directorio <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 ""
+"Consulte el <xref linkend=\"architecture\" /> para comprender los entornos "
+"en donde se puede utilizar 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 ""
+"Déle un vistazo al directorio <literal>eg/</literal> en la distribución de "
+"Hibernate. Este comprende una aplicación autónoma simple. Copie su "
+"compilador JDBC al directorio <literal>lib/</literal> y edite <literal>etc/"
+"hibernate.properties</literal>, especificando los valores correctos para su "
+"base de datos. Desde un intérprete de comandos en el directorio de la "
+"distribución, escriba <literal>ant eg</literal> (utilizando Ant), o bajo "
+"Windows, escriba <literal>build eg</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use this reference documentation as your primary source of information. "
+"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
+"more help with application design, or if you prefer a step-by-step tutorial. "
+"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
+"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr ""
+"Utilice esta documentación de referencia como su fuente principal de "
+"información. Considere el leer <biblioref linkend=\"biblio-JPwH\"></biblioref> si necesita más ayuda con el "
+"diseño de la aplicación o si prefiere un tutorial paso por paso. También "
+"visite <ulink url=\"http://caveatemptor.hibernate.org\" /> y descargue la aplicación "
+"de ejemplo de <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr ""
+"En el sitio web de Hibernate encontrará las respuestas a las preguntas más "
+"frecuentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Links to third party demos, examples, and tutorials are maintained on the "
+"Hibernate website."
+msgstr ""
+"En el sitio web de Hibernate encontrará los enlaces a las demostraciones de "
+"terceros, ejemplos y tutoriales."
+
+#. 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 ""
+"El área de la comunidad en el sitio web de Hibernate es un buen recurso para "
+"encontrar patrones de diseño y varias soluciones de integración (Tomcat, "
+"JBoss AS, Struts, EJB, etc)."
+
+#. 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 ""
+"Si tiene alguna pregunta, dirÃjase al sitio web de Hibernate en donde "
+"encontrará un enlace al foro de usuarios. También proporcionamos un sistema "
+"de localización para reportes de errores JIRA y solicitud de funciones. Si "
+"está interesado en el desarrollo de Hibernate, únase a la lista de correo de "
+"los desarrolladores. Si le interesa traducir esta documentación a su propio "
+"idioma, contáctenos en la lista de correo de los desarrolladores."
+
+#. 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 ""
+"JBoss Inc. proporciona soporte para desarrollo comercial, soporte para "
+"producción y entrenamiento (vea http://www.hibernate.org/SupportTraining/). "
+"Hibernate es un proyecto de Código Abierto Profesional y es un componente "
+"crÃtico de la suite de productos de JBoss Enterprise Middleware System "
+"(JEMS)."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_criteria.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_criteria.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_criteria.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,415 @@
+# translation of query_criteria.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: query_criteria\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-17 12:58+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr "Consultas por criterios"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate features an intuitive, extensible criteria query API."
+msgstr ""
+"Acompaña a Hibernate una API de consultas por criterios intuitiva y "
+"extensible."
+
+#. Tag: title
+#, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr "Creación de una instancia <literal>Criteria</literal>"
+
+#. 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 ""
+"La interfaz <literal>org.hibernate.Criteria</literal> representa una "
+"consulta contra una clase persistente en particular. La <literal>Session</"
+"literal> es una fábrica de instancias de <literal>Criteria</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr "LÃmitando el conjunto de resultados"
+
+#. 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 ""
+"Un criterio individual de consulta es una instancia de la interfaz "
+"<literal>org.hibernate.criterion.Criterion</literal>. La clase <literal>org."
+"hibernate.criterion.Restrictions</literal> define métodos de fábrica para "
+"obtener ciertos tipos incorporados de <literal>Criterion</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr "Las restricciones se pueden agrupar lógicamente. "
+
+#. 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 ""
+"Hay un rango de tipos de criterios incorporados (subclases de "
+"<literal>Restrictions</literal>). Uno de los más útiles le permite "
+"especificar SQL directamente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
+"of the queried entity."
+msgstr ""
+"El sitio <literal>{alias}</literal> será remplazado por el alias de fila de "
+"la entidad consultada."
+
+#. 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 ""
+"También puede obtener un criterio de una instancia <literal>Property</"
+"literal>. Puede crear una <literal>Property</literal> llamando a "
+"<literal>Property.forName()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr "Orden de los resultados"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can order the results using <literal>org.hibernate.criterion.Order</"
+"literal>."
+msgstr ""
+"Puede ordenar los resultados usando <literal>org.hibernate.criterion.Order</"
+"literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr "Asociaciones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By navigating associations using <literal>createCriteria()</literal> you can "
+"specify constraints upon related entities:"
+msgstr ""
+"Al navegar asociaciones usando <literal>createCriteria()</literal> puede "
+"especificar restricciones en entidades relacionadas:"
+
+#. 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 ""
+"El segundo <literal>createCriteria()</literal> retorna una nueva instancia "
+"de <literal>Criteria</literal>, que se refiere a los elementos de la "
+"colección <literal>kittens</literal>."
+
+#. Tag: para
+#, no-c-format
+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
+#, no-c-format
+msgid ""
+"(<literal>createAlias()</literal> does not create a new instance of "
+"<literal>Criteria</literal>.)"
+msgstr ""
+"(<literal>createAlias()</literal> no crea una nueva instancia de "
+"<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 ""
+"Las colecciones de gatitos de las instancias <literal>Cat</literal> "
+"retornadas por las dos consultas previas <emphasis>no</emphasis> están "
+"prefiltradas por los criterios. Si desea recuperar sólo los gatitos que "
+"coincidan con los criterios debe usar un <literal>ResultTransformer</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr "Adicionalmente puede manipular el grupo de resultados utilizando una unión externa izquierda:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will return all of the <literal>Cat</literal>s with a mate whose name "
+"starts with \"good\" ordered by their mate's age, and all cats who do not "
+"have a mate. This is useful when there is a need to order or limit in the "
+"database prior to returning complex/large result sets, and removes many "
+"instances where multiple queries would have to be performed and the results "
+"unioned by java in memory."
+msgstr ""
+"Esto retornará todos los <literal>Cat</literal>s -gatos- con una pareja cuyo nombre empiece por "
+"\"good\" ordenado de acuerdo a la edad de la pareja y todos los cats -gatos- que no tengan una pareja. Esto es útil cuando hay necesidad de ordenar o limitar en la base de datos antes de retornar grupos de resultados complejos/grandes y elimina muchas instancias en donde se tendrÃan que realizar múltiples consultas y unir en memoria los resultados por medio de java."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Without this feature, first all of the cats without a mate would need to be "
+"loaded in one query."
+msgstr "Sin esta funcionalidad, primero todos los cats sin una pareja tendrÃan que cargarse en una petición. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A second query would need to retreive the cats with mates who's name started "
+"with \"good\" sorted by the mates age."
+msgstr "Una segunda petición tendrÃa que recuperar los cats -gatos- con las parejas cuyos nombres empiecen por \"good\" ordenado de acuerdo a la edad de las parejas."
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr "Tercero, en memoria serÃa necesario unir las listas manualmente."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr "Recuperación dinámica de asociaciones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"Puede especificar la semántica de recuperación de asociaciones en tiempo de "
+"ejecución usando <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 ""
+"Esta consulta recuperará tanto <literal>mate</literal> como "
+"<literal>kittens</literal> por unión exterior (outer join). Consulte la "
+"<xref linkend=\"performance-fetching\" /> para obtener más información."
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr "Consultas ejemplo"
+
+#. 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 ""
+"La clase <literal>org.hibernate.criterion.Example</literal> le permite "
+"construir un criterio de consulta a partir de una instancia dada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
+msgstr ""
+"Las propiedades de versión, los identificadores y las asociaciones se "
+"ignoran. Por defecto, las propiedades valuadas como nulas se excluyen."
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr "Puede modificar la aplicación del <literal>Example</literal>."
+
+#. 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."
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr "Proyecciones, agregación y agrupamiento"
+
+#. 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 ""
+"La clase <literal>org.hibernate.criterion.Projections</literal> es una "
+"fábrica de instancias de <literal>Projection</literal>. Puede aplicar una "
+"proyección a una consulta llamando a <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 ""
+"No es necesario ningún \"agrupamiento por\" explÃcito en una consulta por "
+"criterios. Ciertos tipos de proyecciones son definidos para ser "
+"<emphasis>proyecciones agrupadas</emphasis>, que además aparecen en la "
+"cláusula 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 ""
+"Puede asignar un alias a una proyección de modo que el valor proyectado "
+"pueda ser referido en restricciones u ordenamientos. Aquà hay dos formas "
+"diferentes de hacer esto:"
+
+#. 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 ""
+"Los métodos <literal>alias()</literal> y <literal>as()</literal> simplemente "
+"envuelven una instancia de proyección en otra instancia de "
+"<literal>Projection</literal> con alias. Como atajo, puede asignar un alias "
+"cuando agregue la proyección a una lista de proyecciones:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
+msgstr ""
+"También puede usar <literal>Property.forName()</literal> para expresar "
+"proyecciones:"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr "Consultas y subconsultas separadas"
+
+#. 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 ""
+"La clase <literal>DetachedCriteria</literal> le permite crear una consulta "
+"fuera del ámbito de una sesión y luego ejecutarla usando una "
+"<literal>Session</literal> arbitraria."
+
+#. 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 ""
+"También puede utilizar una <literal>DetachedCriteria</literal> para expresar "
+"una subconsulta. Las instancias de Criterion involucrando subconsultas se "
+"pueden obtener por medio de <literal>Subqueries</literal> o "
+"<literal>Property</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr "Las subconsultas correlacionadas tambieÅ son posibles:"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr "Consultas por identificador natural"
+
+#. 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 ""
+"Para la mayorÃa de las consultas, incluyendo las consultas por criterios, el "
+"caché de consulta no es muy eficiente debido a que la invalidación del caché "
+"de consulta ocurre con demasiada frecuencia. Sin embargo, hay un tipo "
+"especial de consulta donde podemos optimizar el algoritmo de invalidación de "
+"caché: búsquedas de una clave natural constante. En algunas aplicaciones, "
+"este tipo de consulta, ocurre frecuentemente. La API de criterios brinda una "
+"provisión especial para este caso."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, map the natural key of your entity using <literal><natural-id></"
+"literal> and enable use of the second-level cache."
+msgstr ""
+"Primero, mapee la clave natural de su entidad utilizando <literal><"
+"natural-id></literal> y habilite el uso del caché de segundo nivel."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"Esta funcionalidad no está pensada para uso con entidades con claves "
+"naturales <emphasis>mutables</emphasis>."
+
+#. 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 ""
+"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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_hql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_hql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_hql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1439 @@
+# translation of query_hql.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: query_hql\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 14:46+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr "HQL: El lenguaje de consulta de Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate uses a powerful query language (HQL) that is similar in appearance "
+"to SQL. Compared with SQL, however, HQL is fully object-oriented and "
+"understands notions like inheritance, polymorphism and association."
+msgstr ""
+"Hibernate utiliza un lenguaje de consulta potente (HQL) que se parece a SQL. "
+"Sin embargo, comparado con SQL, HQL es completamente orientado a objetos y "
+"comprende nociones como herencia, polimorfismo y asociación."
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr "Sensibilidad a mayúsculas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"With the exception of names of Java classes and properties, queries are case-"
+"insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</"
+"literal> is the same as <literal>SELECT</literal>, but <literal>org."
+"hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, "
+"and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr ""
+"Las consultas no son sensibles a mayúsculas, a excepción de los nombres de "
+"las clases y propiedades Java. De modo que <literal>SeLeCT</literal> es lo "
+"mismo que <literal>sELEct</literal> e igual a <literal>SELECT</literal>, "
+"pero <literal>org.hibernate.eg.FOO</literal> no es lo mismo que <literal>org."
+"hibernate.eg.Foo</literal> y <literal>foo.barSet</literal> no es igual a "
+"<literal>foo.BARSET</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This manual uses lowercase HQL keywords. Some users find queries with "
+"uppercase keywords more readable, but this convention is unsuitable for "
+"queries embedded in Java code."
+msgstr ""
+"Este manual utiliza palabras clave HQL en minúsculas. Algunos usuarios "
+"encuentran que las consultas con palabras clave en mayúsculas son más "
+"fáciles de leer, pero esta convención no es apropiada para las peticiones "
+"incluidas en código Java."
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr "La cláusula from"
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr "La consulta posible más simple de Hibernate es de esta manera:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This returns all instances of the class <literal>eg.Cat</literal>. You do "
+"not usually need to qualify the class name, since <literal>auto-import</"
+"literal> is the default. For example:"
+msgstr ""
+"Esto retorna todas las instancias de la clase <literal>eg.Cat</literal>. "
+"Usualmente no es necesario calificar el nombre de la clase ya que "
+"<literal>auto-import</literal> es el valor predeterminado. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to refer to the <literal>Cat</literal> in other parts of the query, "
+"you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr ""
+"Con el fin de referirse al <literal>Cat</literal> en otras partes de la "
+"petición, necesitará asignar un <emphasis>alias</emphasis>. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query assigns the alias <literal>cat</literal> to <literal>Cat</"
+"literal> instances, so you can use that alias later in the query. The "
+"<literal>as</literal> keyword is optional. You could also write:"
+msgstr ""
+"Esta consulta asigna el alias <literal>cat</literal> a las instancias "
+"<literal>Cat</literal>, de modo que puede utilizar ese alias luego en la "
+"consulta. La palabra clave <literal>as</literal> es opcional. También podrÃa "
+"escribir:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
+"join."
+msgstr ""
+"Pueden aparecer múltiples clases, lo que causa un producto cartesiano o una "
+"unión \"cruzada\" (cross join)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is good practice to name query aliases using an initial lowercase as this "
+"is consistent with Java naming standards for local variables (e.g. "
+"<literal>domesticCat</literal>)."
+msgstr ""
+"Se considera como una buena práctica el nombrar los alias de consulta "
+"utilizando una inicial en minúsculas, consistente con los estándares de "
+"nombrado de Java para las variables locales (por ejemplo, "
+"<literal>domesticCat</literal>). "
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr "Asociaciones y uniones (joins)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also assign aliases to associated entities or to elements of a "
+"collection of values using a <literal>join</literal>. For example:"
+msgstr ""
+"También puede asignar alias a entidades asociadas o a elementos de una "
+"colección de valores utilizando una <literal>join</literal>. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "Los tipos de uniones soportadas se tomaron prestados de ANSI SQL"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "<literal>inner join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>left outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr "<literal>right outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr "<literal>full join</literal> (no es útil usualmente)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> and "
+"<literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+"Las construcciones <literal>inner join</literal>, <literal>left outer join</"
+"literal> y <literal>right outer join</literal> se pueden abreviar."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You may supply extra join conditions using the HQL <literal>with</literal> "
+"keyword."
+msgstr ""
+"Puede proveer condiciones extras de unión utilizando la palabra clave "
+"<literal>with</literal> de HQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A \"fetch\" join allows associations or collections of values to be "
+"initialized along with their parent objects using a single select. This is "
+"particularly useful in the case of a collection. It effectively overrides "
+"the outer join and lazy declarations of the mapping file for associations "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
+"information."
+msgstr ""
+"Una unión de \"recuperación\" le permite a las asociaciones o colecciones de "
+"valores que se inicialicen junto a sus objetos padres, usando un sólo "
+"select. Esto es útil particularmente en el caso de una colección. "
+"Efectivamente sobrescribe la unión externa y las declaraciones perezosas del "
+"archivo de mapeo para asociaciones y colecciones. Consulte <xref linkend=\"performance-fetching\" /> para obtener más información."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A fetch join does not usually need to assign an alias, because the "
+"associated objects should not be used in the <literal>where</literal> clause "
+"(or any other clause). The associated objects are also not returned directly "
+"in the query results. Instead, they may be accessed via the parent object. "
+"The only reason you might need an alias is if you are recursively join "
+"fetching a further collection:"
+msgstr ""
+"Usualmente no se necesita asignársele un alias a una unión de recuperación "
+"ya que los objetos asociados no se deben utilizar en la cláusula "
+"<literal>where</literal> (ni en cualquier otra cláusula). Los objetos "
+"asociados no se retornan directamente en los resultados de la consulta. En "
+"cambio, se pueden acceder por medio del objeto padre. La única razón por la "
+"que necesitarÃamos un alias es si estamos uniendo recursivamente otra "
+"colección:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> construct cannot be used in queries called "
+"using <literal>iterate()</literal> (though <literal>scroll()</literal> can "
+"be used). <literal>Fetch</literal> should be used together with "
+"<literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, "
+"as these operations are based on the result rows which usually contain "
+"duplicates for eager collection fetching, hence, the number of rows is not "
+"what you would expect. <literal>Fetch</literal> should also not be used "
+"together with impromptu <literal>with</literal> condition. It is possible to "
+"create a cartesian product by join fetching more than one collection in a "
+"query, so take care in this case. Join fetching multiple collection roles "
+"can produce unexpected results for bag mappings, so user discretion is "
+"advised when formulating queries in this case. Finally, note that "
+"<literal>full join fetch</literal> and <literal>right join fetch</literal> "
+"are not meaningful."
+msgstr ""
+"La construcción <literal>fetch</literal> no puede utilizarse en consultas "
+"llamadas que usen <literal>iterate()</literal> (aunque se puede utilizar "
+"<literal>scroll()</literal>). <literal>Fetch</literal> se debe usar junto "
+"con <literal>setMaxResults()</literal> o <literal>setFirstResult()</literal> "
+"ya que estas operaciones se basan en las filas de resultados, las cuales "
+"usualmente contienen duplicados para la recuperación de colección temprana, "
+"por lo tanto, el número de filas no es lo que se esperarÃa. <literal>Fetch</"
+"literal> no se debe usar junto con una condición <literal>with</literal> "
+"improvisadas. Es posible crear un producto cartesiano por medio de una "
+"recuperación por union más de una colección en una consulta, asà que tenga "
+"cuidado en este caso. La recuperación por unión de múltiples roles de "
+"colección también da resultados a veces inesperados para mapeos de bag, asà "
+"que tenga cuidado de cómo formular sus consultas en este caso. Finalmente, "
+"observe que <literal>full join fetch</literal> y <literal>right join fetch</"
+"literal> no son significativos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you are using property-level lazy fetching (with bytecode "
+"instrumentation), it is possible to force Hibernate to fetch the lazy "
+"properties in the first query immediately using <literal>fetch all "
+"properties</literal>."
+msgstr ""
+"Si está utilizando una recuperación perezosa a nivel de propiedad (con "
+"instrumentación de código byte), es posible forzar a Hibernate a traer las "
+"propiedades perezosas inmediatamente utilizando <literal>fetch all "
+"properties</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr "Formas de sintaxis unida"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
+msgstr ""
+"HQL soporta dos formas de unión de asociación: <literal>implicit</literal> y "
+"<literal>explicit</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The queries shown in the previous section all use the <literal>explicit</"
+"literal> form, that is, where the join keyword is explicitly used in the "
+"from clause. This is the recommended form."
+msgstr ""
+"Las consultas que se mostraron en la sección anterior todas utilizan la "
+"forma <literal>explicit</literal>, en donde la palabra clave join se utiliza "
+"explÃcitamente en la claúsula from. Esta es la forma recomendada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+"La forma <literal>implicit</literal> no utiliza la palabra clave join. Las "
+"asociaciones se \"desreferencian\" utilizando la notación punto. Uniones "
+"<literal>implicit</literal> pueden aparecer en cualquiera de las cláusulas "
+"HQL. La unión <literal>implicit</literal> causa uniones internas (inner "
+"joins) en la declaración SQL que resulta."
+
+#. Tag: title
+#, no-c-format
+msgid "Referring to identifier property"
+msgstr "Referencia a la propiedad identificadora "
+
+#. Tag: para
+#, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr "Hay dos maneras de referirse a la propiedad identificadora de una entidad:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the identifier property of an entity <emphasis>provided that the "
+"entity does not define a non-identifier property named id</emphasis>."
+msgstr ""
+"La propiedad especial (en minúsculas) <literal>id</literal> se puede "
+"utilizar para referenciar la propiedad identificadora de una entidad "
+"<emphasis> dado que la entidad no defina un id del nombre de la propiedad no-"
+"identificadora</emphasis>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the entity defines a named identifier property, you can use that property "
+"name."
+msgstr ""
+"Si la entidad define una propiedad identificadora nombrada, puede utilizar "
+"ese nombre de propiedad."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"References to composite identifier properties follow the same naming rules. "
+"If the entity has a non-identifier property named id, the composite "
+"identifier property can only be referenced by its defined named. Otherwise, "
+"the special <literal>id</literal> property can be used to reference the "
+"identifier property."
+msgstr ""
+"Las referencias a propiedades identificadoras compuestas siguen las mismas "
+"reglas de nombramiento. Si la entidad no tiene un id del nombre de la "
+"propiedad no-identificadora, la propiedad identificadora compuesta sólamente "
+"puede ser referenciada por su nombre definido. De otra manera se puede "
+"utilizar la propiedad <literal>id</literal> especial para referenciar la "
+"propiedad identificadora."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please note that, starting in version 3.2.2, this has changed significantly. "
+"In previous versions, <literal>id</literal> <emphasis>always</emphasis> "
+"referred to the identifier property regardless of its actual name. A "
+"ramification of that decision was that non-identifier properties named "
+"<literal>id</literal> could never be referenced in Hibernate queries."
+msgstr ""
+"Observe que esto ha cambiado bastante desde la version 3.2.2. En versiones "
+"previas, <literal>id</literal><emphasis>siempre</emphasis> se referÃa a la "
+"propiedad identificadora sin importar su nombre real. Una ramificación de "
+"esa decisión fue que las propiedades no-identificadoras nombradas "
+"<literal>id</literal> nunca podrÃan ser referenciadas en consultas de "
+"Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr "La cláusula select"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>select</literal> clause picks which objects and properties to "
+"return in the query result set. Consider the following:"
+msgstr ""
+"La cláusula <literal>select</literal> escoge qué objetos y propiedades "
+"devolver en el conjunto de resultados de la consulta. Considere lo siguiente:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. You can express this query more compactly as:"
+msgstr ""
+"La consulta seleccionará <literal>mate</literal>s de otros <literal>Cat</"
+"literal>s. Puede expresar esta consulta de una manera más compacta asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Queries can return properties of any value type including properties of "
+"component type:"
+msgstr ""
+"Las consultas pueden retornar propiedades de cualquier tipo de valor "
+"incluyendo propiedades del tipo componente:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Queries can return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>:"
+msgstr ""
+"Las consultas pueden retornar múltiples objetos y/o propiedades como un "
+"array de tipo <literal>Object[]</literal>,"
+
+#. Tag: para
+#, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr "O como una <literal>List</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Or - assuming that the class <literal>Family</literal> has an appropriate "
+"constructor - as an actual typesafe Java object:"
+msgstr ""
+"O asumiendo que la clase <literal>Family</literal> tiene un constructor "
+"apropiado - como un objeto Java de tipo seguro:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+"Puede asignar alias para expresiones seleccionadas utilizando <literal>as</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal>:"
+msgstr ""
+"Esto es lo más útil cuando se usa junto con <literal>select new map</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+"Esta consulta devuelve un <literal>Map</literal> de alias a valores "
+"seleccionados."
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr "Funciones de agregación"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries can even return the results of aggregate functions on properties:"
+msgstr ""
+"Las consultas HQL pueden incluso retornar resultados de funciones de "
+"agregación sobre propiedades:"
+
+#. Tag: para
+#, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr "Las funciones de agregación soportadas son:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "<literal>count(*)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause:"
+msgstr ""
+"Puede utilizar operadores aritméticos, concatenación y funciones SQL "
+"reconocidas en la cláusula select:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords can be "
+"used and have the same semantics as in SQL."
+msgstr ""
+"Las palabras clave <literal>distinct</literal> y <literal>all</literal> se "
+"pueden utilizar y tienen las misma semántica que en SQL."
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Consultas polimórficas"
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr "Una consulta como:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"returns instances not only of <literal>Cat</literal>, but also of subclasses "
+"like <literal>DomesticCat</literal>. Hibernate queries can name "
+"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
+"literal> clause. The query will return instances of all persistent classes "
+"that extend that class or implement the interface. The following query would "
+"return all persistent objects:"
+msgstr ""
+"devuelve instancias no sólamente de <literal>Cat</literal>, sino también de "
+"subclases como <literal>DomesticCat</literal>. Las consultas de Hibernate "
+"pueden nombrar <emphasis>cualquier</emphasis> clase o interfaz Java en la "
+"cláusula <literal>from</literal>. La consulta retornará instancias de todas "
+"las clases persistentes que extiendan esa clase o implementen la interfaz. "
+"La siguiente consulta retornarÃa todos los objetos persistentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+"La interfaz <literal>Named</literal> se podrÃa implementar por varias clases "
+"persistentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"These last two queries will require more than one SQL <literal>SELECT</"
+"literal>. This means that the <literal>order by</literal> clause does not "
+"correctly order the whole result set. It also means you cannot call these "
+"queries using <literal>Query.scroll()</literal>."
+msgstr ""
+"Las dos últimas consultas requerirán más de un <literal>SELECT</literal> "
+"SQL. Esto significa que la cláusula <literal>order by</literal> no ordenará "
+"correctamente todo el conjunto que resulte. También significa que no puede "
+"llamar estas consulta usando <literal>Query.scroll()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr "La cláusula where"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>where</literal> clause allows you to refine the list of "
+"instances returned. If no alias exists, you can refer to properties by name:"
+msgstr ""
+"La cláusula <literal>where</literal> le permite refinar la lista de "
+"instancias retornadas. Si no existe ningún alias, puede referirse a las "
+"propiedades por nombre:"
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr "Si existe un alias, use un nombre de propiedad calificado:"
+
+#. Tag: para
+#, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr "Esto retorna instancias de <literal>Cat</literal> llamadas 'Fritz'."
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr "La siguiente petición:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"returns all instances of <literal>Foo</literal> with an instance of "
+"<literal>bar</literal> with a <literal>date</literal> property equal to the "
+"<literal>startDate</literal> property of the <literal>Foo</literal>. "
+"Compound path expressions make the <literal>where</literal> clause extremely "
+"powerful. Consider the following:"
+msgstr ""
+"retornará todas las instancias de <literal>Foo</literal> con una instancia "
+"de <literal>bar</literal> con una propiedad <literal>date</literal> igual a "
+"la propiedad <literal>startDate</literal> del <literal>Foo</literal>. Las "
+"expresiones de ruta compuestas hacen la cláusula <literal>where</literal> "
+"extremadamente potente. Tome en consideración lo siguiente:"
+
+#. Tag: para
+#, no-c-format
+msgid "This query translates to an SQL query with a table (inner) join. For example:"
+msgstr ""
+"Esta consulta se traduce a una consulta SQL con una unión de tabla "
+"(interna). Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr "terminarÃa con una consulta que requerirÃa cuatro uniones de tablas en SQL. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>=</literal> operator can be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+"El operador <literal>=</literal> se puede utilizar para comparar no "
+"sólamente propiedades sino también instancias:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> can be used to "
+"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
+"identifier-property\" /> for more information."
+msgstr ""
+"La propiedad especial <literal>id</literal> (en minúsculas) se puede "
+"utilizar para referenciar el identificador único de un objeto. Consulte "
+"<xref linkend=\"queryhql-"
+"identifier-property\" /> para obtener más "
+"información."
+
+#. Tag: para
+#, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr "La segunda consulta es eficiente y no se necesita una unión de tablas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties of composite identifiers can also be used. Consider the following "
+"example where <literal>Person</literal> has composite identifiers consisting "
+"of <literal>country</literal> and <literal>medicareNumber</literal>:"
+msgstr ""
+"También se pueden utilizar las propiedades de identificadores compuestos. "
+"Considere el siguiente ejemplo en donde <literal>Person</literal> tiene "
+"identificadores compuestos que consisten de <literal>country</literal> y "
+"<literal>medicareNumber</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr "Una vez más, la segunda consulta no requiere una unión de tablas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
+"regarding referencing identifier properties)"
+msgstr ""
+"Consulte <xref linkend=\"queryhql-identifier-property\" /> para obtener "
+"mayor información con relación a la referencia de propiedades del "
+"identificador."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property <literal>class</literal> accesses the discriminator "
+"value of an instance in the case of polymorphic persistence. A Java class "
+"name embedded in the where clause will be translated to its discriminator "
+"value."
+msgstr ""
+"La propiedad especial <literal>class</literal> acccede al valor "
+"discriminador de una instancia en el caso de persistencia polimórfica. Un "
+"nombre de clase Java incluÃdo en la cláusula where será traducido a su valor "
+"discriminador."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use components or composite user types, or properties of said "
+"component types. See <xref linkend=\"queryhql-components\" /> for more "
+"information."
+msgstr ""
+"También puede utilizar componentes o tipos de usuario compuestos o "
+"propiedades de dichos tipos de componentes. Consulte <xref linkend="
+"\"queryhql-components\" /> para obtener más detalles."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal> that allows you to express a join in the following "
+"way (where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal><any></literal>):"
+msgstr ""
+"Un tipo \"any\" tiene las propiedades especiales <literal>id</literal> y "
+"<literal>class</literal>, permiténdole expresar una unión de la siguiente "
+"forma (en donde <literal>AuditLog.item</literal> es una propiedad mapeada "
+"con <literal><any></literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>log.item.class</literal> and <literal>payment.class</literal> "
+"would refer to the values of completely different database columns in the "
+"above query."
+msgstr ""
+"La <literal>log.item.class</literal> y <literal>payment.class</literal> "
+"harÃan referencia a los valores de columnas de la base de datos "
+"completamente diferentes en la consulta anterior."
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr "Expresiones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Expressions used in the <literal>where</literal> clause include the "
+"following:"
+msgstr ""
+"Las expresiones utilizadas en la cláusula <literal>where</literal> incluyen "
+"lo siguiente:"
+
+#. Tag: para
+#, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr "operadores matemáticos: <literal>+, -, *, /</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
+"literal>"
+msgstr ""
+"operadores de comparación binarios: <literal>=, >=, <=, <>, !=, "
+"like</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr "operadores lógicos <literal>and, or, not</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr "Paréntesis <literal>( )</literal> que indican agrupación"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> y <literal>not member of</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+"Caso \"simple\", <literal>case ... when ... then ... else ... end</literal>, "
+"y caso \"buscado\", <literal>case when ... then ... else ... end</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
+"</literal>"
+msgstr ""
+"concatenación de cadenas <literal>...||...</literal> o <literal>concat"
+"(...,...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal> y "
+"<literal>current_timestamp()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"and <literal>year(...)</literal>"
+msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"and <literal>year(...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
+"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
+"</literal>"
+msgstr ""
+"Cualquier función u operador definido por EJB-QL 3.0: <literal>substring(), "
+"trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), "
+"mod()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr "<literal>coalesce()</literal> y <literal>nullif()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>str()</literal> for converting numeric or temporal values to a "
+"readable string"
+msgstr ""
+"<literal>str()</literal> para convertir valores numéricos o temporales a una "
+"cadena legible."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cast(... as ...)</literal>, where the second argument is the name "
+"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
+"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
+"the underlying database"
+msgstr ""
+"<literal>cast(... as ...)</literal>, donde el segundo argumento es el nombre "
+"de un tipo de Hibernate , y <literal>extract(... from ...)</literal> si "
+"<literal>cast()</literal> y <literal>extract()</literal> es soportado por la "
+"base de datos subyacente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the HQL <literal>index()</literal> function, that applies to aliases of a "
+"joined indexed collection"
+msgstr ""
+"la función <literal>index()</literal> de HQL, que se aplica a alias de una "
+"colección indexada unida."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL functions that take collection-valued path expressions: <literal>size(), "
+"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
+"special <literal>elements()</literal> and <literal>indices</literal> "
+"functions that can be quantified using <literal>some, all, exists, any, in</"
+"literal>."
+msgstr ""
+"Las funciones de HQL que tomen expresiones de ruta valuadas en colecciones: "
+"<literal>size(), minelement(), maxelement(), minindex(), maxindex()</"
+"literal>, junto con las funciones especiales <literal>elements()</literal> e "
+"<literal>indices</literal>, las cuales se pueden cuantificar utilizando "
+"<literal>some, all, exists, any, in</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any database-supported SQL scalar function like <literal>sign()</literal>, "
+"<literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</"
+"literal>"
+msgstr ""
+"Cualquier función escalar SQL soportada por la base de datos como "
+"<literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</"
+"literal> y <literal>sin()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr "parámetros posicionales JDBC <literal>?</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"and <literal>:x1</literal>"
+msgstr ""
+"parámetros con nombre <literal>:name</literal>, <literal>:start_date</"
+"literal> y <literal>:x1</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+"literales SQL <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+"constantes Java <literal>public static final</literal><literal>eg.Color."
+"TABBY</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr "<literal>in</literal> y <literal>between</literal> pueden utilizarse asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr "Las formas negadas se pueden escribir asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Similarly, <literal>is null</literal> and <literal>is not null</literal> can "
+"be used to test for null values."
+msgstr ""
+"De manera similar, <literal>is null</literal> y <literal>is not null</"
+"literal> se pueden utilizar para probar valores nulos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Booleans can be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+"Los valores booleanos se pueden utilizar fácilmente en expresiones "
+"declarando substituciones de consulta HQL en la configuración de Hibernate:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
+msgstr ""
+"Esto remplazará las palabras clave <literal>true</literal> y <literal>false</"
+"literal> con los literales <literal>1</literal> y <literal>0</literal> en el "
+"SQL traducido de este HQL:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can test the size of a collection with the special property "
+"<literal>size</literal> or the special <literal>size()</literal> function."
+msgstr ""
+"Puede comprobar el tamaño de una colección con la propiedad especial "
+"<literal>size</literal> o la función especial <literal>size()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For indexed collections, you can refer to the minimum and maximum indices "
+"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
+"Similarly, you can refer to the minimum and maximum elements of a collection "
+"of basic type using the <literal>minelement</literal> and "
+"<literal>maxelement</literal> functions. For example:"
+msgstr ""
+"Para las colecciones indexadas, puede referirse a los Ãndices máximo y "
+"mÃnimo utilizando las funciones <literal>minindex</literal> y "
+"<literal>maxindex</literal>. De manera similar, se puede referir a los "
+"elementos máximo y mÃnimo de una colección de tipo básico utilizando las "
+"funciones <literal>minelement</literal> y <literal>maxelement</literal>. Por "
+"ejemplo: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The SQL functions <literal>any, some, all, exists, in</literal> are "
+"supported when passed the element or index set of a collection "
+"(<literal>elements</literal> and <literal>indices</literal> functions) or "
+"the result of a subquery (see below):"
+msgstr ""
+"Las funciones SQL <literal>any, some, all, exists, in</literal> están "
+"soportadas cuando se les pasa el conjunto de elementos o Ãndices de una "
+"colección (las funciones <literal>elements</literal> e <literal>indices</"
+"literal>) o el resultado de una subconsulta (vea a continuación):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that these constructs - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - can only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+"Note que estas construcciones - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - solo se pueden utilizar en la cláusula where "
+"en Hibernate3."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Elements of indexed collections (arrays, lists, and maps) can be referred to "
+"by index in a where clause only:"
+msgstr ""
+"Los elementos de colecciones indexadas (arrays, listas, mapas) se pueden "
+"referir por Ãndice sólamente en una cláusula where:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> can even be an arithmetic "
+"expression:"
+msgstr ""
+"La expresión dentro de <literal>[]</literal> puede incluso ser una expresión "
+"aritmética:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function for "
+"elements of a one-to-many association or collection of values."
+msgstr ""
+"HQL también proporciona la función incorporada <literal>index()</literal>, "
+"para los elementos de una asociación uno-a-muchos o una colección de valores."
+
+#. Tag: para
+#, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr ""
+"Se pueden utilizar las funciones SQL escalares soportadas por la base de "
+"datos subyacente:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Consider how much longer and less readable the following query would be in "
+"SQL:"
+msgstr "Considere qué tan larga y menos leÃble serÃa la siguiente consulta en SQL:"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr "<emphasis>Ayuda:</emphasis> algo como"
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr "La cláusula order by"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The list returned by a query can be ordered by any property of a returned "
+"class or components:"
+msgstr ""
+"La lista retornada por una consulta se puede ordenar por cualquier propiedad "
+"de una clase retornada o componentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+"Los <literal>asc</literal> o <literal>desc</literal> opcionales indican "
+"ordenamiento ascendente o descendente respectivamente."
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr "La cláusula group by"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A query that returns aggregate values can be grouped by any property of a "
+"returned class or components:"
+msgstr ""
+"Una consulta que retorna valores agregados se puede agrupar por cualquier "
+"propiedad de una clase retornada o componentes:"
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr "Se permite también una cláusula <literal>having</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses if they are supported by "
+"the underlying database (i.e., not in MySQL)."
+msgstr ""
+"Las funciones SQL y las funciones de agregación SQL están permitidas en las "
+"cláusulas <literal>having</literal> y <literal>order by</literal>, si están "
+"soportadas por la base de datos subyacente (por ejemplo, no lo están en "
+"MySQL). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Neither the <literal>group by</literal> clause nor the <literal>order by</"
+"literal> clause can contain arithmetic expressions. Hibernate also does not "
+"currently expand a grouped entity, so you cannot write <literal>group by "
+"cat</literal> if all properties of <literal>cat</literal> are non-"
+"aggregated. You have to list all non-aggregated properties explicitly."
+msgstr ""
+"La cláusula <literal>group by</literal> ni la cláusula <literal>order by</"
+"literal> pueden contener expresiones aritméticas. Hibernate tampocoo expande "
+"una entidad agrupada asà que no puede escribir <literal>group by cat</"
+"literal> si todas las propiedades de <literal>cat</literal> son no-"
+"agregadas. Tiene que enumerar todas la propiedades no-agregadas "
+"explÃcitamente."
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr "Subconsultas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For databases that support subselects, Hibernate supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+"Para bases de datos que soportan subconsultas, Hibernate soporta "
+"subconsultas dentro de consultas. Una subconsulta se debe encerrar entre "
+"paréntesis (frecuentemente por una llamada a una función de agregación SQL). "
+"Incluso se permiten subconsultas correlacionadas (subconsultas que se "
+"refieren a un alias en la consulta exterior)."
+
+#. Tag: para
+#, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr ""
+"Note que las subconsultas HQL pueden ocurrir sólamente en las cláusulas "
+"select o where."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
+msgstr ""
+"Note que las subconsultas también pueden utilizar la sintaxis <literal>row "
+"value constructor</literal>. Consulte la <xref linkend=\"queryhql-tuple\" /> para obtener más información."
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr "Ejemplos de HQL"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate queries can be quite powerful and complex. In fact, the power of "
+"the query language is one of Hibernate's main strengths. The following "
+"example queries are similar to queries that have been used on recent "
+"projects. Please note that most queries you will write will be much simpler "
+"than the following examples."
+msgstr ""
+"Las consultas de Hibernate pueden ser bastante potentes y complejas. De "
+"hecho, el poder del lenguaje de consulta es uno de las fortalezas "
+"principales de Hibernate. He aquà algunos ejemplos de consultas muy "
+"similares a las consultas de proyectos recientes. Note que la mayorÃa de las "
+"consultas que escribirá son mucho más simples que los siguientes ejemplos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following query returns the order id, number of items, the given minimum "
+"total value and the total value of the order for all unpaid orders for a "
+"particular customer. The results are ordered by total value. In determining "
+"the prices, it uses the current catalog. The resulting SQL query, against "
+"the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
+"<literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</"
+"literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr ""
+"La siguiente consulta retorna el order id, número de items y valor total "
+"mÃnimo dado y el valor de la orden para todas las órdenes no pagadas de un "
+"cliente en particular. Los resultados se ordenan de acuerdo al valor total. "
+"Al determinar los precios, usa el catálogo actual. La consulta SQL "
+"resultante, contra las tablas <literal>ORDER</literal>, <literal>ORDER_LINE</"
+"literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> y "
+"<literal>PRICE</literal> tiene cuatro uniones interiores y una subselección "
+"(no correlacionada)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+"¡Qué monstruo! Realmente, en la vida real, no me gustan mucho las "
+"subconsultas, de modo que mi consulta fue realmente algo como esto:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+"La próxima consulta cuenta el número de pagos en cada estado, excluyendo "
+"todos los pagos en el estado <literal>AWAITING_APPROVAL</literal> donde el "
+"cambio más reciente al estado lo hizo el usuario actual. Se traduce en una "
+"consulta SQL con dos uniones interiores y una subselección correlacionada "
+"contra las tablas <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</"
+"literal> y <literal>PAYMENT_STATUS_CHANGE</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>statusChanges</literal> collection was mapped as a list, "
+"instead of a set, the query would have been much simpler to write."
+msgstr ""
+"Si la colección <literal>statusChanges</literal> se mapeara como una lista, "
+"en vez de un conjunto, la consulta habrÃa sido mucho más simple de escribir."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+"La próxima consulta utiliza la función <literal>isNull()</literal> de MS SQL "
+"Server para devolver todas las cuentas y pagos aún no cancelados de la "
+"organización a la que pertenece el usuario actual. Se traduce como una "
+"consulta SQL con tres uniones interiores, una unión exterior y una "
+"subselección contra las tablas <literal>ACCOUNT</literal>, <literal>PAYMENT</"
+"literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</"
+"literal>, <literal>ORGANIZATION</literal> y <literal>ORG_USER</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+"Para algunas bases de datos, necesitarÃamos eliminar la subselección "
+"(correlacionada)."
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr "Declaraciones UPDATE y DELETE masivas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
+"<literal>insert ... select ...</literal> statements. See <xref linkend="
+"\"batch-direct\" /> for more information."
+msgstr ""
+"HQL ahora soporta declaraciones <literal>update</literal>, <literal>delete</"
+"literal> e <literal>insert ... select ...</literal>. Consulte la <xref linkend="
+"\"batch-direct\" /> para obtener mayor información. "
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr "Consejos y Trucos"
+
+#. Tag: para
+#, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr "Puede contar el número de resultados de una consulta sin retornarlos:"
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+"Para ordenar un resultado por el tamaño de una colección, utilice la "
+"siguiente consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+"Si su base de datos soporta subselecciones, puede colocar una condición "
+"sobre el tamaño de selección en la cláusula where de su consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr ""
+"Si su base de datos no soporta subselecciones, utilice la siguiente "
+"consulta: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As this solution cannot return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+"Como esta solución no puede retornar un <literal>User</literal> con cero "
+"mensajes debido a la unión interior, la siguiente forma también es útil:"
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr ""
+"Las propiedades de un JavaBean pueden ser ligadas a los parámetros de "
+"consulta con nombre:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections are pageable by using the <literal>Query</literal> interface "
+"with a filter:"
+msgstr ""
+"Las colecciones son paginables usando la interfaz <literal>Query</literal> "
+"con un filtro:"
+
+#. Tag: para
+#, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr ""
+"Los elementos de colección se pueden ordenar o agrupar usando un filtro de "
+"consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr "Puede hallar el tamaño de una colección sin inicializarla:"
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr "Componentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Components can be used similarly to the simple value types that are used in "
+"HQL queries. They can appear in the <literal>select</literal> clause as "
+"follows:"
+msgstr ""
+"Los componentes se pueden utilizar de la misma manera en que se pueden "
+"utilizar los tipos de valores simples en consultas HQL. Pueden aparecer en "
+"la cláusula <literal>select</literal> asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"where the Person's name property is a component. Components can also be used "
+"in the <literal>where</literal> clause:"
+msgstr ""
+"en donde el nombre de la Persona es un componente. Los componentes también "
+"se pueden utilizar en la cláusula <literal>where</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr ""
+"Los componentes también se pueden utilizar en la cláusula <literal>where</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+msgstr ""
+"Otro uso común de los componentes se encuentra en <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr "Sintaxis del constructor de valores por fila"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
+"syntax, sometimes referred to AS <literal>tuple</literal> syntax, even "
+"though the underlying database may not support that notion. Here, we are "
+"generally referring to multi-valued comparisons, typically associated with "
+"components. Consider an entity Person which defines a name component:"
+msgstr ""
+"HQL soporta la utilización de la sintaxis <literal>row value constructor</"
+"literal> de SQL ANSI que a veces se denomina sintaxis <literal>tuple</"
+"literal>, aunque puede que la base de datos subyacentes no soporte esa "
+"noción. Aquà estamos refiriéndonos generalmente a las comparaciones "
+"multivaluadas que se asocian tÃpicamente con los componentes. Considere una "
+"entidad Persona, la cual define un componente de nombre:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"That is valid syntax although it is a little verbose. You can make this more "
+"concise by using <literal>row value constructor</literal> syntax:"
+msgstr ""
+"Esa es una sintaxis válida aunque un poco verbosa. Puede hacerlo un poco más "
+"conciso utilizando la sintaxis <literal>row value constructor</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It can also be useful to specify this in the <literal>select</literal> "
+"clause:"
+msgstr ""
+"También puede ser útil especificar esto en la cláusula <literal>select</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Using <literal>row value constructor</literal> syntax can also be beneficial "
+"when using subqueries that need to compare against multiple values:"
+msgstr ""
+"También puede ser beneficioso el utilizar la sintaxis <literal>row value "
+"constructor</literal> cuando se utilizan subconsultas que necesitan "
+"compararse con valores múltiples:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One thing to consider when deciding if you want to use this syntax, is that "
+"the query will be dependent upon the ordering of the component sub-"
+"properties in the metadata."
+msgstr ""
+"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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_sql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_sql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/query_sql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1009 @@
+# translation of query_sql.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: query_sql\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:47\n"
+"PO-Revision-Date: 2010-03-17 12:28+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr "SQL Nativo"
+
+#. 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 ""
+"También puede expresar sus consultas en el dialecto SQL nativo de su base de "
+"datos. Esto es útil si quiere utilizar las caracterÃsticas especificas de la "
+"base de datos tales como hints de consulta o la palabra clave "
+"<literal>CONNECT</literal> en Oracle. También proporciona una ruta de "
+"migración limpia desde una aplicación basada en SQL/JDBC a 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 le permite especificar SQL escrito a mano, incluyendo "
+"procedimientos almacenados para todas las operaciones create, update, delete "
+"y load."
+
+#. Tag: title
+#, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr "Uso de una <literal>SQLQuery</literal>"
+
+#. 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 ""
+"La ejecución de consultas SQL nativas se controla por medio de la interfaz "
+"<literal>SQLQuery</literal>, la cual se obtiene llamando a <literal>Session."
+"createSQLQuery()</literal>. Las siguientes secciones describen cómo utilizar "
+"esta API para consultas."
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr "Consultas escalares"
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr ""
+"La consulta SQL más básica es para obtener a una lista de escalares "
+"(valores)."
+
+#. 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 ""
+"Estas retornarán una lista de objetos arrays (Object[]) con valores "
+"escalares para cada columna en la tabla CATS. Hibernate utilizará "
+"ResultSetMetadata para deducir el orden real y los tipos de los valores "
+"escalares retornados."
+
+#. 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 ""
+"Para evitar los gastos generales de la utilización de "
+"<literal>ResultSetMetadata</literal> o simplemente para ser más explÃcito en "
+"lo que se devuelve se puede utilizar <literal>addScalar()</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr "Se especifica esta consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr "la cadena de consulta SQL"
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr "las columnas y tipos que se devuelven"
+
+#. 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 ""
+"Esto retornará objetos arrays, pero no utilizará <literal>ResultSetMetdata</"
+"literal> sino que obtendrá explÃcitamente las columnas de IDENTIFICACION, "
+"NOMBRE y FECHA DE NACIMIENTO respectivamente como Larga, Cadena y Corta del "
+"grupo de resultados subyacente. Esto también significa que sólamente estas "
+"tres columnas serán retornadass aunque la consulta este utilizando "
+"<literal>*</literal> y pueda devolver más de las tres columnas enumeradas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
+msgstr ""
+"Es posible dejar afuera la información de tipo para todos o algunos de los "
+"escalares."
+
+#. 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 ""
+"Esto es esencialmente la misma consulta que antes, pero ahora se utiliza "
+"<literal>ResultSetMetaData</literal> para determinar el tipo de NOMBRE y "
+"FECHA DE NACIMIENTO, mientras que el tipo de IDENTIFICACION se especifica "
+"explÃcitamente."
+
+#. 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 ""
+"El dialecto controla la manera en que los java.sql.Types retornados de "
+"ResultSetMetaData se mapean a los tipos de Hibernate. Si un tipo en especial "
+"no se encuentra mapeado o no resulta en el tipo esperado es posible "
+"personalizarlo por medio de llamadas a <literal>registerHibernateType</"
+"literal> en el dialecto."
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr "Consultas de entidades"
+
+#. 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 ""
+"Todas las consultas anteriores eran sobre los valores escalraes devueltos, "
+"basicamente devolviendo los valores \"crudos\" desde el grupo resultado. Lo "
+"siguiente muestra como obtener los objetos entidades desde una consulta sql "
+"nativa por medio de <literal>addEntity()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr "la entidad devuelta por la consulta"
+
+#. 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 ""
+"Asumiendo que Cat es mapeado como una clase con las columnas IDENTIFICACION, "
+"NOMBRE y FECHA DE NACIMIENTO las consultas anteriores devolverán una Lista "
+"en donde cada elemento es una entidad 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 ""
+"Si la entidad es mapeada con una <literal>many-to-one</literal> a otra "
+"entidad tambien se necesita que devuelva esto cuando realice una consulta "
+"nativa, de otra manera, aparecerá un error \"no se encontró la columna\" "
+"especÃfico a la base de datos. Se devolverán automáticamente las columnas "
+"adicionales cuando se utiliza la anotación *, pero preferimos ser tan "
+"explÃcitos asà como lo muestra el siguiente ejemplo para una <literal>many-"
+"to-one</literal> a un <literal>Dog</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr "Esto permitirá que cat.getDog() funcione apropiadamente."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr "Manejo de asociaciones y colecciones"
+
+#. 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 ""
+"Es posible unir de manera temprana en el <literal>Dog</literal> para evitar "
+"el posible viaje de ida y vuelta para iniciar el proxy. Esto se hace por "
+"medio del método <literal>addJoin()</literal>, el cual le permite unirse en "
+"una asociación o colección."
+
+#. 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 ""
+"En este ejemplo los <literal>Cat</literal>s retornados tendrán su propiedad "
+"<literal>dog</literal> completamente iniciada sin ningún viaje extra de ida "
+"y vuelta a la base de datos. Observe que agregó un nombre alias (\"cat\") "
+"para poder especificar la ruta de la propiedad de destino de la unión. Es "
+"posible hacer la misma unión temprana para colecciones, por ejemplo, si el "
+"<literal>Cat</literal> tuviese en lugar un <literal>Dog</literal> uno-a-"
+"muchos."
+
+#. 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 ""
+"En este punto estamos alcanzando los lÃmites de lo que es posible con las "
+"consultas nativas sin empezar a mejorar las consultas sql para hacerlas "
+"utilizables en Hibernate. Los problemas empiezan a surgir cuando las "
+"entidades múltiples retornadas son del mismo tipo o cuando no son "
+"suficientes los nombres de las columnas/alias predeterminados."
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr "Devolución de entidades múltiples"
+
+#. 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 ""
+"Hasta ahora se ha asumido que los nombres de las columnas del grupo de "
+"resultados son las mismas que los nombres de columnas especificados en el "
+"documento de mapeo. Esto puede llegar a ser problemático para las consultas "
+"SQL que unen múltiples tablas ya que los mismos nombres de columnas pueden "
+"aparecer en más de una tabla."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
+msgstr ""
+"Se necesita una inyección de alias en las columnas en la siguiente consulta "
+"(que con mucha probabilidad fallará):"
+
+#. 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 ""
+"La intención de esta consulta es retornar dos instancias Cat por fila: un "
+"gato y su mamá. Sin embargo, esto fallará debido a que hay un conflicto de "
+"nombres;las instancias se encuentran mapeadas a los mismos nombres de "
+"columna. También en algunas bases de datos los alias de las columnas "
+"retornadas serán con mucha probabilidad de la forma \"c.IDENTIFICACION\", "
+"\"c.NOMBRE\", etc, los cuales no son iguales a las columnas especificadas en "
+"los mapeos (\"IDENTIFICACION\" y \"NOMBRE\")."
+
+#. 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:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
+msgstr ""
+"la cadena de consultas SQL, con un espacio reservado para que Hibernate "
+"inserte alias de columnas"
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr "las entidades devueltas por la consulta"
+
+#. 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 ""
+"La anotación {cat.*} y {mother.*} que se utilizó anteriormente es la "
+"abreviatura para \"todas las propiedades\". Opcionalmente puede enumerar las "
+"columnas explÃcitamente, pero inclusive en este caso Hibernate inyecta los "
+"alias de columnas SQL para cada propiedad. El espacio para un alias de "
+"columna es sólamente el nombre calificado de la propiedad del alias de la "
+"tabla. En el siguiente ejemplo, recuperamos Cats y sus madres desde una "
+"tabla diferente (cat_log) a la declarada en los meta datos de mapeo. "
+"Inclusive puede utilizar los alias de propiedad en la cláusula where."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr "Referencias de propiedad y alias"
+
+#. 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 ""
+"Para la mayorÃa de los casos, se necesita la inyección del alias anterior. "
+"Para las consultas relacionadas con mapeos más complejos como propiedades "
+"compuestas, discriminadores de herencia, colecciones, etc, existen alias "
+"especificos a utilizar para permitir que Hibernate inyecte los alias "
+"apropiados."
+
+#. 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 ""
+"La siguiente tabla muestra las diferentes maneras de utilizar la inyección "
+"de alias. Note que los nombres alias en el resultado son simplemente "
+"ejemplos; cada alias tendrá un nombre único y probablemente diferente cuando "
+"se utilice."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr "Nombres con inyección alias"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr "Sintaxis"
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr "Ejemplo"
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr "Una propiedad simple"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "<literal>{[aliasname].[propertyname]</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr "Una propiedad compuesta"
+
+#. Tag: entry
+#, 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr "Discriminador de una entidad"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{[aliasname].class}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>DISC as {item.class}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr "Todas las propiedades de una entidad"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{[aliasname].*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr "Una clave de colección"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{[aliasname].key}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr "La identificación -id- de una colección"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{[aliasname].id}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr "El elemento de una colección"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{[aliasname].element}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>XID as {coll.element}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "property of the element in the collection"
+msgstr "propiedad del elemento en la colección "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>NAME as {coll.element.name}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr "Todas las propiedades del elemeto en la colección"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the collection"
+msgstr "Todas las propiedades de la colección "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr "Devolución de entidades no-administradas"
+
+#. 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 ""
+"Es posible aplicar un ResultTransformer para consultas SQL nativas, "
+"permitiéndole retornar entidades no-administradas."
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr "un transformador de resultado"
+
+#. 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 ""
+"La consulta anterior devolverá una lista de <literal>CatDTO</literal> a la "
+"cual se ha instanciado e inyectado los valores de NOMBRE y FECHA DE "
+"NACIMIENTO en su propiedades o campos correspondientes."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr "Manejo de herencias"
+
+#. 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 ""
+"Las consultas SQL nativas, las cuales consultan por entidades que son "
+"mapeadas como parte de una herencia tienen que incluir todas las propiedades "
+"para la clase base y todas sus subclases."
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr "Parámetros"
+
+#. Tag: para
+#, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr ""
+"Las consultas SQL nativas soportan parámetros nombrados asà como "
+"posicionales:"
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr "Consultas SQL nombradas"
+
+#. 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 ""
+"Las consultas SQL nombradas se pueden definir en el documento de mapeo y se "
+"pueden llamar de la misma manera que una consulta HQL nombrada. En este "
+"caso, <emphasis>no</emphasis> necesitamos llamar a <literal>addEntity()</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><return-join></literal> element is use to join "
+"associations and the <literal><load-collection></literal> element is "
+"used to define queries which initialize collections,"
+msgstr ""
+"El elemento <literal><return-join></literal> se utiliza para unir "
+"asociaciones y el elemento <literal><load-collection></literal> se usa "
+"para definir consultas, las cuales dan inicio a colecciones."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal><return-scalar></literal> "
+"element:"
+msgstr ""
+"Una consulta SQL nombrada puede devolver un valor escalar. Tiene que "
+"declarar el alias de la columna y el tipo de Hibernate utilizando el "
+"elemento <literal><return-scalar></literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can externalize the resultset mapping information in a <literal><"
+"resultset></literal> element which will allow you to either reuse them "
+"across several named queries or through the <literal>setResultSetMapping()</"
+"literal> API."
+msgstr ""
+"Puede externalizar el grupo de resultados mapeando información en un "
+"elemento <literal><resultset></literal>, el cual le permitirá "
+"reutilizarlos a través de consultas nombradas o por medio de la API "
+"<literal>setResultSetMapping()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can, alternatively, use the resultset mapping information in your hbm "
+"files directly in java code."
+msgstr ""
+"Opcionalmente, puede utilizar el grupo de resultados mapeando la información "
+"en sus archivos hbm directamente en código java."
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr ""
+"Utilización de la propiedad return para especificar explÃcitamente los "
+"nombres de columnas/alias"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can explicitly tell Hibernate what column aliases to use with "
+"<literal><return-property></literal>, instead of using the <literal>{}"
+"</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+"Con <literal><return-property></literal> usted puede decirle a "
+"Hibernate explÃcitamente qué alias de columnas se deben utilizar, en vez de "
+"utilizar la sintaxis <literal>{}</literal> para dejar que Hibernate inyecte "
+"sus propios alias. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><return-property></literal> also works with multiple columns. "
+"This solves a limitation with the <literal>{}</literal>-syntax which cannot "
+"allow fine grained control of multi-column properties."
+msgstr ""
+"<literal><return-property></literal> también funciona con columnas "
+"múltiples. Esto resuelve una limitación con la sintaxis <literal>{}</"
+"literal>, la cual no puede permitir control muy detallado de propiedades "
+"multi-columnas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In this example <literal><return-property></literal> was used in "
+"combination with the <literal>{}</literal>-syntax for injection. This allows "
+"users to choose how they want to refer column and properties."
+msgstr ""
+"En este ejemplo utilizamos <literal><return-property></literal> en "
+"combinación junto con la sintaxis <literal>{}</literal> para inyección. Esto "
+"le permite a los usuarios escoger cómo quieren referirse a la columna y a "
+"las propiedades."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your mapping has a discriminator you must use <literal><return-"
+"discriminator></literal> to specify the discriminator column."
+msgstr ""
+"Si su mapeo tiene un discriminador usted tiene que utilizar <literal><"
+"return-discriminator></literal> para especificar la columna "
+"discriminadora."
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr "Utilización de procedimientos para consultas"
+
+#. 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 brinda soporte para consultas por medio de procedimientos "
+"almacenados y funciones. La mayorÃa de la siguiente documentación es igual "
+"para ambos. La función/procedimiento almacenado tiene que retornar un grupo "
+"de resultados como el primer parámetro de salida para poder trabajar con "
+"Hibernate. A continuación hay un ejemplo de tal función almacenada en Oracle "
+"9 y posteriores:"
+
+#. Tag: para
+#, no-c-format
+msgid "To use this query in Hibernate you need to map it via a named query."
+msgstr ""
+"Para utilizar esta consulta en Hibernate u.d necesita mapearla por medio de "
+"una consulta nombrada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures currently only return scalars and entities. <literal><"
+"return-join></literal> and <literal><load-collection></literal> are "
+"not supported."
+msgstr ""
+"Los procedimientos almacenados actualmente sólo retornan escalares y "
+"entidades. No se soporta <literal><return-join></literal> ni "
+"<literal><load-collection></literal> ."
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr "Reglas/limitaciones para utilizar procedimientos almacenados"
+
+#. 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 ""
+"Para utilizar procedimientos almacenados con Hibernate, debe seguir ciertas "
+"reglas de funciones/procedimientos. Si no siguen esas reglas entonces no se "
+"pueden utilizar con Hibernate. Si todavÃa quiere utilizar estos "
+"procedimientos tiene que ejecutarlos por medio de <literal>session.connection"
+"()</literal>. Las reglas son diferentes para cada base de datos debido a que "
+"los vendedores de la base de datos tienen diferentes sintaxis/semántica de "
+"procedimientos almacenados."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
+"setMaxResults()</literal>."
+msgstr ""
+"Las consultas de procedimientos almacenados no se pueden llamar con "
+"<literal>setFirstResult()/setMaxResults()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(<parameters>) }</literal> or <literal>{ ? = call procedureName(<"
+"parameters>}</literal>. Native call syntax is not supported."
+msgstr ""
+"La forma de la llamada recomendada es SQL92 estándar: <literal>{ ? = call "
+"functionName(<parameters>) }</literal> o <literal>{ ? = call "
+"procedureName(<parameters>}</literal>. No se soporta la sintaxis de "
+"llamadas nativas."
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr "Para Oracle aplican las siguientes reglas:"
+
+#. 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 ""
+"Una función tiene que retornar un grupo de resultados. El primer parámetro "
+"de un procedimiento tiene que ser un <literal>OUT</literal> que retorna un "
+"grupo de resultados. Esto se hace utilizando un tipo <literal>SYS_REFCURSOR</"
+"literal> en Oracle 9 o 10. En Oracle necesita definir un tipo <literal>REF "
+"CURSOR</literal>. Consulte la documentación de Oracle para obtener mayor "
+"información."
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr "Para Sybase o el servidor MS SQL aplican las siguientes reglas:"
+
+#. 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 ""
+"El procedimiento tiene que retornar un grupo de resultados. Observe que "
+"debido a que estos servidores pueden retornar grupos de resultados múltiples "
+"y cuentas actualizadas, Hibernate iterará los resultados y tomará el primer "
+"resultado que sea un grupo resultados como su valor retornado. Todo lo demás "
+"será descartado."
+
+#. 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 ""
+"Si puede habilitar <literal>SET NOCOUNT ON</literal> en su procedimiento "
+"probablemente será más eficiente, pero no es un requerimiento."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr "Personalice SQL para crear, actualizar y borrar"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 can use custom SQL for create, update, and delete operations. The "
+"SQL can be overridden at the statement level or inidividual column level. "
+"This section describes statement overrides. For columns, see <xref linkend="
+"\"mapping-column-read-and-write\" />."
+msgstr ""
+"Hibernate3 puede utilizar SQL personalizado para crear, actualizar y borrar operaciones. El SQL se puede sobreescribir a nivel de declaración o a nivel de columna individual. "
+"Esta sección describe la sobreescritua de declaraciones. Para las columnas consulte <xref linkend="
+"\"mapping-column-read-and-write\" />."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The class and collection persisters in Hibernate already contain a set of "
+"configuration time generated strings (insertsql, deletesql, updatesql etc.). "
+"The mapping tags <literal><sql-insert></literal>, <literal><sql-"
+"delete></literal>, and <literal><sql-update></literal> override "
+"these strings:"
+msgstr ""
+"Los persistentes de clase y de colección en "
+"Hibernate ya contienen un grupo de cadenas generadas en tiempo de "
+"configuración (insertsql, deletesql, updatesql, etc.). Las etiquetas de mapeo "
+"<literal><sql-insert></literal>, <literal><sql-delete></"
+"literal> y <literal><sql-update></literal> sobrescriben estas cadenas:"
+
+#. 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 ""
+"El SQL se ejecuta directamente en su base de datos asi que usted es libre de "
+"utilizar cualquier dialecto que desee. Esto reducirá la portabilidad de su "
+"mapeo si utiliza una base de datos especifica de SQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures are supported if the <literal>callable</literal> attribute "
+"is set:"
+msgstr ""
+"Los procedimientos almacenados se encuentran soportados si el atributo "
+"<literal>callable</literal> está configurado:"
+
+#. 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."
+msgstr ""
+"El orden de los parámetros posicionales es vital ya que se deben encontrar "
+"en la misma secuencia en que Hibernate los espera."
+
+#. 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 ""
+"Puede ver el orden esperado habilitando el registro de depuración para el "
+"nivel <literal>org.hibernate.persister.entity</literal>. Con este nivel "
+"habilitado Hibernate imprimirá el SQL estático que se utiliza para crear, "
+"actualizar, borrar, etc, entidades, ( para ver la secuencia esperada, "
+"recuerde no incluir su SQL personalizado en los archivos de mapeo ya que eso "
+"sobrescribirá el sql estático generado por Hibernate)."
+
+#. 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 ""
+"En la mayorÃa de los casos se requiere que los procedimientos almacenados "
+"retornen el número de filas insertadas, actualizadas y borradas ya que "
+"Hibernate tiene algunas verificaciones en tiempo de ejecución para el éxito "
+"de la declaración. Hibernate siempre registra el primer parámetro de la "
+"declaración como un parámetro de la salida numérica para las operaciones CUD:"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr "Personalice SQL para cargar"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also declare your own SQL (or HQL) queries for entity loading. As "
+"with inserts, updates, and deletes, this can be done at the individual "
+"column level as described in <xref linkend=\"mapping-column-read-and-write"
+"\" /> or at the statement level. Here is an example of a statement level "
+"override:"
+msgstr ""
+"También puede declarar su propias peticiones SQL (o HQL) para cargar entidades. Asà como con las inserciones, actualizaciones y los borrados, esto se puede realizar a nivel de columna individual tal como se describe en <xref linkend=\"mapping-column-read-and-write"
+"\" /> o a nivel de declaración. Este es un ejemplo de una sobreescritura a nivel de declaración: "
+
+#. 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 ""
+"Esta es tan sólo una declaración de consulta nombrada, como se discutió "
+"anteriormente. Puede referenciar esta consulta nombrada en un mapeo de clase:"
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr "Esto funciona inclusive con procedimientos almacenados."
+
+#. Tag: para
+#, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr "Puede incluso definir una consulta para la carga de colección:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also define an entity loader that loads a collection by join "
+"fetching:"
+msgstr ""
+"También puede definir un cargador de entidad que cargue una colección con "
+"una unión temprana:"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/quickstart.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/quickstart.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/quickstart.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,474 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=utf-8\n"
+#: index.docbook:5
+msgid "appended paragraph 1"
+msgstr "Comienzo rápido con Tomcat"
+
+#: index.docbook:8
+msgid "appended paragraph 2"
+msgstr "Empezando con Hibernate"
+
+#: index.docbook:10
+msgid "appended paragraph 3"
+msgstr "Este tutorial explica una instalación de Hibernate con el contenedor de servlets Apache Tomcat (hemos usado la versión 4.1, las diferencias con la 5.0 deben ser mínimas) para una aplicación basada en web. Hibernate trabaja bien en un entorno manejado con todos los servidores de aplicaciones J2EE importantes, o incluso en aplicaciones Java independientes. El sistema de base de datos es sólo una cuestión de cambiar la configuración del dialecto SQL de Hibernate y las propiedades de conexión."
+
+#: index.docbook:21
+msgid "appended paragraph 4"
+msgstr "Primero, tenemos que copiar todas las bibliotecas requeridas a la instalación de Tomcat. Usamos un contexto web separado (<literal>webapps/quickstart</literal>) para este tutorial, de modo que tenemos que considerar tanto la ruta de búsqueda de bibliotecas global (<literal>TOMCAT/common/lib</literal>) como también el cargador de clases a nivel de contexto en <literal>webapps/quickstart/WEB-INF/lib</literal> (para ficheros JAR) y <literal>webapps/quickstart/WEB-INF/classes</literal>. Nos referiremos a ambos niveles de cargador de clases como el classpath global y el classpath de contexto, respectivamente."
+
+#: index.docbook:32
+msgid "appended paragraph 5"
+msgstr "Ahora, copia las bibliotecas a los dos classpaths:"
+
+#: index.docbook:38
+msgid "appended paragraph 6"
+msgstr "Copia el driver JDBC para la base de datos al classpath global. Esto se requiere para el software de pool de conexiones DBCP que se distribuye con Tomcat. Hibernate usa conexiones JDBC para ejecutar SQL sobre la base de datos, de modo que, o bien tienes que proveer conexiones JDBC en pool, o bien configurar Hibernate para que use uno de los pools soportados directamente (C3P0, Proxool). Para este tutorial, copia la biblioteca <literal>pg74jdbc3.jar</literal> (para PostgreSQL 7.4 y JDK 1.4) al classpath del cargador global. Si quisieras usar una base de datos diferente, simplemente copia su apropiado driver JDBC."
+
+#: index.docbook:51
+msgid "appended paragraph 7"
+msgstr "Nunca copies nada más dentro de la ruta del cargador de clases global en Tomcat, o tendrás problemas con varias herramientas, incluyendo Log4J, commons-logging y otras. Siempre usa el classpath de contexto para cada aplicación web, esto es, copia las bibliotecas a <literal>WEB-INF/lib</literal> y tus propias clases y ficheros de configuración/propiedades a <literal>WEB-INF/classes</literal>. Ambos directorios están a nivel del classpath de contexto por defecto."
+
+#: index.docbook:62
+msgid "appended paragraph 8"
+msgstr "Hibernate está empaquetado como una biblioteca JAR. El fichero <literal>hibernate3.jar</literal> debe ser copiado en el classpath de contexto junto a las otras clases de la aplicación. Hibernate requiere algunas bibliotecas de terceros en tiempo de ejecución; éstas vienen incluídas con la distribución de Hibernate en el directorio <literal>lib/</literal>. Ver <xref linkend=\"3rdpartylibs\"/>. Copia las bibliotecas de terceros requeridas al classpath de contexto."
+
+#: index.docbook:75
+msgid "appended paragraph 9"
+msgstr "Bibliotecas de terceros de Hibernate"
+
+#: index.docbook:83
+msgid "appended paragraph 10"
+msgstr "Biblioteca"
+
+#: index.docbook:86
+msgid "appended paragraph 11"
+msgstr "Descripción"
+
+#: index.docbook:93
+msgid "appended paragraph 12"
+msgstr "antlr (requerida)"
+
+#: index.docbook:96
+msgid "appended paragraph 13"
+msgstr "Hibernate usa ANTLR para producir analizadores de consultas, esta biblioteca también se necesita en tiempo de ejecución."
+
+#: index.docbook:102
+msgid "appended paragraph 14"
+msgstr "dom4j (requerida)"
+
+#: index.docbook:105
+msgid "appended paragraph 15"
+msgstr "Hibernate usa dom4j para analizar ficheros de configuración XML y ficheros de metadatos de mapeo XML."
+
+#: index.docbook:111
+msgid "appended paragraph 16"
+msgstr "CGLIB, asm (requerida)"
+
+#: index.docbook:114
+msgid "appended paragraph 17"
+msgstr "Hibernate usa la biblioteca de generación de código para aumentar las clases en tiempo de ejecución (en combinación con reflección Java)."
+
+#: index.docbook:121
+msgid "appended paragraph 18"
+msgstr "Commons Collections, Commons Logging (requeridas)"
+
+#: index.docbook:124
+msgid "appended paragraph 19"
+msgstr "Hibernate usa varias bibliotecas de utilidad del proyecto Jakarta Commons de Apache."
+
+#: index.docbook:130
+msgid "appended paragraph 20"
+msgstr "EHCache (requerida)"
+
+#: index.docbook:133
+msgid "appended paragraph 21"
+msgstr "Hibernate puede usar varios provedores de caché para el caché de segundo nivel. EHCache es el provedor de caché por defecto si no se cambia en la configuración."
+
+#: index.docbook:140
+msgid "appended paragraph 22"
+msgstr "Log4j (opcional)"
+
+#: index.docbook:143
+msgid "appended paragraph 23"
+msgstr "Hibernate usa la API de Commons Logging, que a su vez puede usar Log4J como el mecanismo de logging subyacente. Si la biblioteca Log4J está disponible en el directorio de bibliotecas del contexto, Commons Logging usará Log4J y la configuración <literal>log4j.properties</literal> en el classpath de contexto. Un fichero de propiedades de ejemplo para Log4J se incluye con la distribución de Hibernate. Así que copia log4j.jar y el fichero de configuración (de <literal>src/</literal>) a tu classpath de contexto si quieres ver que ocurre tras escénas."
+
+#: index.docbook:157
+msgid "appended paragraph 24"
+msgstr "¿Requerida o no?"
+
+#: index.docbook:160
+msgid "appended paragraph 25"
+msgstr "Echa una mirada al fichero <literal>lib/README.txt</literal> en la distribución de Hibernate. Esta es una lista actualizada de bibliotecas de terceros distribuídas con Hibernate. Encontrarás listadas ahí todas las bibliotecas requeridas y opcionales (Observa que \"buildtame required\" significa aquí para la construcción de Hibernate, no de tu aplicación)."
+
+#: index.docbook:174
+msgid "appended paragraph 26"
+msgstr "Ahora instalamos el pooling y modo compartido de conexiones de base de datos tanto en Tomcat como Hibernate. Esto significa que Tomcat proveerá conexiones JDBC en pool (usando su funcionalidad prefabricada de pooling DBCP). Hibernate pide esas conexiones a través de JNDI. Alternativamente, puedes dejar que Hibernate maneje el pool de conexiones. Tomcat liga su pool de conexiones a JNDI; agregamos una declaración de recurso al fichero de configuración principal de Tomcat, <literal>TOMCAT/conf/server.xml</literal>:"
+
+#: index.docbook:184
+msgid "appended paragraph 27"
+msgstr ""
+ "<![CDATA[<Context path=\"/quickstart\" docBase=\"quickstart\">\n"
+ " <Resource name=\"jdbc/quickstart\" scope=\"Shareable\" type=\"javax.sql.DataSource\"/>\n"
+ " <ResourceParams name=\"jdbc/quickstart\">\n"
+ " <parameter>\n"
+ " <name>factory</name>\n"
+ " <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>\n"
+ " </parameter>\n"
+ "\n"
+ " <!-- DBCP database connection settings -->\n"
+ " <parameter>\n"
+ " <name>url</name>\n"
+ " <value>jdbc:postgresql://localhost/quickstart</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>driverClassName</name><value>org.postgresql.Driver</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>username</name>\n"
+ " <value>quickstart</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>password</name>\n"
+ " <value>secret</value>\n"
+ " </parameter>\n"
+ "\n"
+ " <!-- DBCP connection pooling options -->\n"
+ " <parameter>\n"
+ " <name>maxWait</name>\n"
+ " <value>3000</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>maxIdle</name>\n"
+ " <value>100</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>maxActive</name>\n"
+ " <value>10</value>\n"
+ " </parameter>\n"
+ " </ResourceParams>\n"
+ "</Context>]]>"
+
+#: index.docbook:186
+msgid "appended paragraph 28"
+msgstr "El contexto que configuramos en este ejemplo se llama <literal>quickstart</literal>, su base es el directorio <literal>TOMCAT/webapp/quickstart</literal>. Para acceder a cualquier servlet, llama a la ruta <literal>http://localhost:8080/quickstart</literal> en tu navegador (por supuesto, agregando el nombre del servlet como se mapee en tu <literal>web.xml</literal>). Puedes también ir más allá y crear ahora un servlet simple que tenga un método <literal>process()</literal> vacío."
+
+#: index.docbook:196
+msgid "appended paragraph 29"
+msgstr "Tomcat provee ahora conexiones a través de JNDI en <literal>java:comp/env/jdbc/quickstart</literal>. Si tienes problemas obteniendo el pool de conexiones en ejecución, refiérete a la documentación de Tomcat. Si obtienes mensajes de excepción del driver JDBC, intenta instalar primero el pool de conexiones JDBC sin Hibernate. Hay disponibles en la Web tutoriales de Tomcat y JDBC."
+
+#: index.docbook:205
+msgid "appended paragraph 30"
+msgstr "Tu próximo paso es configurar Hibernate. Hibernate tiene que saber cómo debe obtener conexiones JDBC. Usamos la configuración de Hibernate basada en XML. El otro enfoque, usando un ficheros de propiedad, es casi equivalente pero pierde unas pocas funcionalidades que sí permite la sintaxis XML. El fichero de configuración XML se ubica en el classpath de contexto (<literal>WEB-INF/classes</literal>), como <literal>hibernate.cfg.xml</literal>:"
+
+#: index.docbook:214
+msgid "appended paragraph 31"
+msgstr ""
+ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+ " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
+ "\n"
+ "<hibernate-configuration>\n"
+ "\n"
+ " <session-factory>\n"
+ "\n"
+ " <property name=\"connection.datasource\">java:comp/env/jdbc/quickstart</property>\n"
+ " <property name=\"show_sql\">false</property>\n"
+ " <property name=\"dialect\">org.hibernate.dialect.PostgreSQLDialect</property>\n"
+ "\n"
+ " <!-- Mapping files -->\n"
+ " <mapping resource=\"Cat.hbm.xml\"/>\n"
+ "\n"
+ " </session-factory>\n"
+ "\n"
+ "</hibernate-configuration>]]>"
+
+#: index.docbook:216
+msgid "appended paragraph 32"
+msgstr "Desactivamos el registro (logging) de comandos SQL y decimos a Hibernate qué dialecto SQL de base de datos se usa y dónde obtener conexiones JDBC (declarando la dirección JNDI del pool ligado a Tomcat). El dialecto es una configuración requerida, las bases de datos difieren en su interpretación del \"estándar\" de SQL. Hibernate cuidará de las diferencias y viene con dialectos incluídos para todas las principales bases de datos comerciales y de código abierto."
+
+#: index.docbook:227
+msgid "appended paragraph 33"
+msgstr "Una <literal>SessionFactory</literal> es el concepto de Hibernate de un almacén de datos solo. Pueden usarse múltiples bases de datos creando múltiples ficheros de configuración XML y creando múltiples objetos <literal>Configuration</literal> y <literal>SessionFactory</literal> en tu aplicación."
+
+#: index.docbook:235
+msgid "appended paragraph 34"
+msgstr "El último elemento del <literal>hibernate.cfg.xml</literal> declara <literal>Cat.hbm.xml</literal> como el nombre de un fichero de mapeo XML para la clase persistente <literal>Cat</literal>. Este fichero contiene los metadatos para el mapeo de la clase POJO <literal>Cat</literal> a una tabla (o tablas) de base de datos. Volveremos a este fichero pronto. Escribamos primero la clase POJO y luego declaremos los metadatos de mapeo para ella."
+
+#: index.docbook:248
+msgid "appended paragraph 35"
+msgstr "Primera clase persistente"
+
+#: index.docbook:250
+msgid "appended paragraph 36"
+msgstr "Hibernate trabaja mejor con el modelo de programación de los Viejos Objetos Planos de Java (POJOs, a veces llamados Ordinarios Objetos Planos de Java) para clases persistentes. Un POJO es como un JavaBean, con las propiedades de la clase accesible vía métodos getter y setter, encapsulando la representación interna de la interfaz publicamente visible (Hibernate puede también acceder a los campos directamente, si se necesita):"
+
+#: index.docbook:260
+msgid "appended paragraph 37"
+msgstr ""
+ "<![CDATA[package org.hibernate.examples.quickstart;\n"
+ "\n"
+ "public class Cat {\n"
+ "\n"
+ " private String id;\n"
+ " private String name;\n"
+ " private char sex;\n"
+ " private float weight;\n"
+ "\n"
+ " public Cat() {\n"
+ " }\n"
+ "\n"
+ " public String getId() {\n"
+ " return id;\n"
+ " }\n"
+ "\n"
+ " private void setId(String id) {\n"
+ " this.id = id;\n"
+ " }\n"
+ "\n"
+ " public String getName() {\n"
+ " return name;\n"
+ " }\n"
+ "\n"
+ " public void setName(String name) {\n"
+ " this.name = name;\n"
+ " }\n"
+ "\n"
+ " public char getSex() {\n"
+ " return sex;\n"
+ " }\n"
+ "\n"
+ " public void setSex(char sex) {\n"
+ " this.sex = sex;\n"
+ " }\n"
+ "\n"
+ " public float getWeight() {\n"
+ " return weight;\n"
+ " }\n"
+ "\n"
+ " public void setWeight(float weight) {\n"
+ " this.weight = weight;\n"
+ " }\n"
+ "\n"
+ "}]]>"
+
+#: index.docbook:262
+msgid "appended paragraph 38"
+msgstr "Hibernate no está restringido en su uso de tipos de propiedad, todos los tipos y tipos primitivos del JDK de Java (como <literal>String</literal>, <literal>char</literal> y <literal>Date</literal>) pueden ser mapeados, incluyendo clases del framework de colecciones de Java. Puedes mapearlos como valores, colecciones de valores, o asociaciones a otras entidades. El <literal>id</literal> es una propiedad especial que representa el identificador de base de datos (clave primaria) de la clase. Es altamente recomendado para entidades como un <literal>Cat</literal>. Hibernate puede usar identificadores sólo internamente, pero perderíamos algo de la flexibilidad en nuestra arquitectura de aplicación."
+
+#: index.docbook:275
+msgid "appended paragraph 39"
+msgstr "No tiene que implementarse ninguna interface especial para las clases persistentes ni tienes que subclasear de una clase persistente raíz en especial. Hibernate tampoco requiere ningún procesamiento en tiempo de construcción, como manipulación del byte-code. Se basa solamente en reflección de Java y aumentación de clases en tiempo de ejecución (a través de CGLIB). De modo que, sin ninguna dependencia de la clase POJO en Hibernate, podemos mapearla a una tabla de base de datos."
+
+#: index.docbook:288
+msgid "appended paragraph 40"
+msgstr "Mapeando el gato"
+
+#: index.docbook:290
+msgid "appended paragraph 41"
+msgstr "El fichero de mapeo <literal>Cat.hbm.xml</literal> contiene los metadatos requeridos para el mapeo objeto/relacional. Los metadatos incluyen la declaración de clases persistentes y el mapeo de propiedades (a columnas y relaciones de claves foráneas a otras entidades) a tablas de base de datos."
+
+#: index.docbook:298
+msgid "appended paragraph 42"
+msgstr ""
+ "<![CDATA[<?xml version=\"1.0\"?>\n"
+ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+ "\n"
+ "<hibernate-mapping>\n"
+ "\n"
+ " <class name=\"org.hibernate.examples.quickstart.Cat\" table=\"CAT\">\n"
+ "\n"
+ " <!-- A 32 hex character is our surrogate key. It's automatically\n"
+ " generated by Hibernate with the UUID pattern. -->\n"
+ " <id name=\"id\" type=\"string\" unsaved-value=\"null\" >\n"
+ " <column name=\"CAT_ID\" sql-type=\"char(32)\" not-null=\"true\"/>\n"
+ " <generator class=\"uuid.hex\"/>\n"
+ " </id>\n"
+ "\n"
+ " <!-- A cat has to have a name, but it shouldn' be too long. -->\n"
+ " <property name=\"name\">\n"
+ " <column name=\"NAME\" length=\"16\" not-null=\"true\"/>\n"
+ " </property>\n"
+ "\n"
+ " <property name=\"sex\"/>\n"
+ "\n"
+ " <property name=\"weight\"/>\n"
+ "\n"
+ " </class>\n"
+ "\n"
+ "</hibernate-mapping>]]>"
+
+#: index.docbook:300
+msgid "appended paragraph 43"
+msgstr "Cada clase persistente debe tener un atributo identificador (realmente, sólo las clases que representen entidades, no las clases dependientes de tipo-valor, que son mapeadas como componentes de una entidad). Esta propiedad es usada para distinguir los objetos persistentes: Dos gatos son iguales si <literal>catA.getId().equals(catB.getId())</literal> es verdadero. Este concepto se llama <emphasis>identidad de base de datos (database identity)</emphasis>. Hibernate viene empaquetado con varios generadores de identificador para diferentes escenarios (incluyendo generadores nativos para secuencias de base de datos, tablas de identificadores alto/bajo, e identificadores asignados por aplicación). Usamos el generador UUID (recomendado sólo para pruebas, pues deben preferirse las claves enteras delegadas generadas por la base de datos) y también especificamos la columna <literal>CAT_ID</literal> de la tabla <literal>CAT</literal> para el valor i!
dentificador generado por Hibernate (como una clave primaria de la tabla)."
+
+#: index.docbook:317
+msgid "appended paragraph 44"
+msgstr "Todas las demás propiedades de <literal>Cat</literal> son mapeadas a la misma tabla. En el caso de la propiedad <literal>name</literal>, la hemos mapeado con una declaración explícita de columna de base de datos. Esto es especialmente útil cuando el esquema de base de datos es generado automáticamente (como sentencias DDL de SQL) desde la declaración de mapeo con la herramienta <emphasis>SchemaExport</emphasis> de Hibernate. Todas las demás propiedades son mapeadas usando la configuración por defecto de Hibernate, que es lo que necesitas la mayoría del tiempo. La tabla <literal>CAT</literal> en la base de datos se ve así como:"
+
+#: index.docbook:329
+msgid "appended paragraph 45"
+msgstr ""
+ "<![CDATA[ Columna | Tipo | Modificadores\n"
+ "--------+-----------------------+-----------\n"
+ " cat_id | character(32) | not null\n"
+ " name | character varying(16) | not null\n"
+ " sex | character(1) |\n"
+ " weight | real |\n"
+ "Indexes: cat_pkey primary key btree (cat_id)]]>"
+
+#: index.docbook:331
+msgid "appended paragraph 46"
+msgstr "Ahora debes crear esta tabla manualmente en tu base de datos, y luego leer el <xref linkend=\"toolsetguide\"/> si quieres automatizar este paso con la herramienta <literal>hbm2ddl</literal>. Esta herramienta puede crear un DDL SQL completo, incluyendo definición de tablas, restricciones personalizadas de tipo de columnas, restricciones de unicidad e índices."
+
+#: index.docbook:342
+msgid "appended paragraph 47"
+msgstr "Jugando con gatos"
+
+#: index.docbook:344
+msgid "appended paragraph 48"
+msgstr "Ahora estamos listos para comenzar la <literal>Session</literal> de Hibernate. Es el <emphasis>manejador de persistencia</emphasis> que usamos para almacenar y traer <literal>Cat</literal>s hacia y desde la base de datos. Pero primero, tenemos que obtener una <literal>Session</literal> (unidad de trabajo de Hibernate) de la <literal>SessionFactory</literal>:"
+
+#: index.docbook:352
+msgid "appended paragraph 49"
+msgstr ""
+ "<![CDATA[SessionFactory sessionFactory =\n"
+ " new Configuration().configure().buildSessionFactory();]]>"
+
+#: index.docbook:354
+msgid "appended paragraph 50"
+msgstr "La llamada a <literal>configure()</literal> carga el fichero de configuración <literal>hibernate.cfg.xml</literal> e inicializa la instancia de <literal>Configuration</literal>. Puedes establecer otras propiedades (e incluso cambiar los metadatos de mapeo) accediendo a la <literal>Configuration</literal> <emphasis>antes</emphasis> que construyas la <literal>SessionFactory</literal> (que es inmutable). ¿Dónde creamos la <literal>SessionFactory</literal> y cómo accedemos a ella en nuestra aplicación?"
+
+#: index.docbook:365
+msgid "appended paragraph 51"
+msgstr "Una <literal>SessionFactory</literal> usualmente se construye una vez, por ejemplo, al arrancar con un servlet <emphasis>load-on-startup</emphasis>. Esto significa también que no debes mantenerla en una variable de instancia en tus servlets, sino en alguna otro sitio. Además, necesitamos algún tipo de <emphasis>Singleton</emphasis>, de modo que podamos acceder a la <literal>SessionFactory</literal> fácilmente en el código de aplicación. El siguiente enfoque mostrado resuelve ambos problemas: configuración de arranque y fácil acceso a una <literal>SessionFactory</literal>."
+
+#: index.docbook:377
+msgid "appended paragraph 52"
+msgstr "Implementamos una clase de ayuda <literal>HibernateUtil</literal>:"
+
+#: index.docbook:381
+msgid "appended paragraph 53"
+msgstr ""
+ "<![CDATA[import org.hibernate.*;\n"
+ "import org.hibernate.cfg.*;\n"
+ "\n"
+ "public class HibernateUtil {\n"
+ "\n"
+ " private static Logger log = LoggerFactory.getLogger(HibernateUtil.class);\n"
+ "\n"
+ " private static final SessionFactory sessionFactory;\n"
+ "\n"
+ " static {\n"
+ " try {\n"
+ " // Create the SessionFactory\n"
+ " sessionFactory = new Configuration().configure().buildSessionFactory();\n"
+ " } catch (Throwable ex) {\n"
+ " // Make sure you log the exception, as it might be swallowed\n"
+ " log.error(\"Initial SessionFactory creation failed.\", ex);\n"
+ " throw new ExceptionInInitializerError(ex);\n"
+ " }\n"
+ " }\n"
+ "\n"
+ " public static final ThreadLocal session = new ThreadLocal();\n"
+ "\n"
+ " public static Session currentSession() {\n"
+ " Session s = (Session) session.get();\n"
+ " // Open a new Session, if this Thread has none yet\n"
+ " if (s == null) {\n"
+ " s = sessionFactory.openSession();\n"
+ " session.set(s);\n"
+ " }\n"
+ " return s;\n"
+ " }\n"
+ "\n"
+ " public static void closeSession() {\n"
+ " Session s = (Session) session.get();\n"
+ " if (s != null)\n"
+ " s.close();\n"
+ " session.set(null);\n"
+ " }\n"
+ "}]]>"
+
+#: index.docbook:383
+msgid "appended paragraph 54"
+msgstr "Esta clase no sólo cuida de la <literal>SessionFactory</literal> con su inicializador static, sino que además tiene una variable <literal>ThreadLocal</literal> que tiene la <literal>Session</literal> para la hebra actual. Asegúrate de entender el concepto Java de una variable local a una hebra antes de intentar usar esta ayuda. Una clase <literal>HibernateUtil</literal> más compleja y potente puede encontrarse en <literal>CaveatEmptor</literal>, http://caveatemptor.hibernate.org/"
+
+#: index.docbook:393
+msgid "appended paragraph 55"
+msgstr "Una <literal>SessionFactory</literal> es segura entre hebras, muchas hebras pueden acceder a ella concurrentemente y pedirle <literal>Session</literal>s. Una <literal>Session</literal> no es un objeto seguro entre hebras que representa una sola unidad-de-trabajo con la base de datos. Las <literal>Session</literal>s se abren desde una <literal>SessionFactory</literal> y son cerradas cuando todo el trabajo está completo. Un ejemplo en el método <literal>process()</literal> de tu servlet podría parecerse a esto (sin manejo de excepciones):"
+
+#: index.docbook:404
+msgid "appended paragraph 56"
+msgstr ""
+ "<![CDATA[Session session = HibernateUtil.currentSession();\n"
+ "Transaction tx = session.beginTransaction();\n"
+ "\n"
+ "Cat princess = new Cat();\n"
+ "princess.setName(\"Princess\");\n"
+ "princess.setSex('F');\n"
+ "princess.setWeight(7.4f);\n"
+ "\n"
+ "session.save(princess);\n"
+ "\n"
+ "tx.commit();\n"
+ "HibernateUtil.closeSession();]]>"
+
+#: index.docbook:406
+msgid "appended paragraph 57"
+msgstr "En una <literal>Session</literal>, cada operación de base de datos ocurre dentro de una transacción que aísla las operaciones de base de datos (incluso operaciones de sólo lectura). Usamos la API de <literal>Transaction</literal> de Hibernate para abstraer de la estrategia de transacciones subyacente (en nuestro caso, transacciones JDBC). Esto permite que nuestro código sea desplegado con transacciones manejadas por contenedor (usando JTA) sin cambio alguno."
+
+#: index.docbook:416
+msgid "appended paragraph 58"
+msgstr "Observa que puedes llamar <literal>HibernateUtil.currentSession();</literal> tantas veces como quieras, siempre obtendrás la <literal>Session</literal> actual de esta hebra. Tienes que asegurarte que la <literal>Session</literal> sea cerrada después que se complete tu unidad-de-trabajo, ya sea en código de tu servlet o en un filtro de servlet antes que la respuesta HTTP sea enviada. El bonito efecto colateral de la segunda opción es la fácil inicialización perezosa: la <literal>Session</literal> todavía está abierta cuando se dibuja la vista, de modo que Hibernate puede cargar objetos no inicializados mientras navegas tu actual grafo de objetos."
+
+#: index.docbook:428
+msgid "appended paragraph 59"
+msgstr "Hibernate tiene varios métodos que pueden ser usados para traer objetos desde la base de datos. La forma más flexible es usando el Lenguaje de Consulta de Hibernate (Hibernate Query Language o HQL), que es una extensión orientada a objetos de SQL fácil de aprender:"
+
+#: index.docbook:436
+msgid "appended paragraph 60"
+msgstr ""
+ "<![CDATA[Transaction tx = session.beginTransaction();\n"
+ "\n"
+ "Query query = session.createQuery(\"select c from Cat as c where c.sex = :sex\");\n"
+ "query.setCharacter(\"sex\", 'F');\n"
+ "for (Iterator it = query.iterate(); it.hasNext();) {\n"
+ " Cat cat = (Cat) it.next();\n"
+ " out.println(\"Female Cat: \" + cat.getName() );\n"
+ "}\n"
+ "\n"
+ "tx.commit();]]>"
+
+#: index.docbook:438
+msgid "appended paragraph 61"
+msgstr "Hibernate también ofrece una API <emphasis>consulta por criterios</emphasis> orientada a objetos que puede ser usada para formular consultas de tipo seguro. Por supuesto, Hibernate usa <literal>PreparedStatement</literal>s y ligado de parámetros para toda la comunicación SQL con la base de datos. También puedes usar la funcionalidad de consulta SQL directa de Hibernate u obtener una conexión plana de JDBC de una <literal>Session</literal> en casos raros."
+
+#: index.docbook:451
+msgid "appended paragraph 62"
+msgstr "Finalmente"
+
+#: index.docbook:453
+msgid "appended paragraph 63"
+msgstr "Rasguñamos solamente la superficie de Hibernate en este pequeño tutorial. Por favor, observa que no incluimos ningún código específico de servlet en nuestros ejemplos. Tienes que crear un servlet por tí mismo e insertar el código de Hibernate como lo veas ubicado."
+
+#: index.docbook:461
+msgid "appended paragraph 64"
+msgstr "Ten en mente que Hibernate, como capa de acceso a datos, está firmemente integrado dentro de tu aplicación. Usualmente, todas las otras capas dependen del mecanismo de persistencia. Asegúrate de entender las implicaciones de este diseño."
+
+#: index.docbook:468
+msgid "appended paragraph 65"
+msgstr "Para un ejemplo de aplicación más compleja, ver http://caveatemptor.hibernate.org/ y echa una mirada a los otros tutoriales con links en http://www.hibernate.org/Documentation"
+
+msgid "ROLES_OF_TRANSLATORS"
+msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+msgid "CREDIT_FOR_TRANSLATORS"
+msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/readonly.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/readonly.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/readonly.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1124 @@
+# Language es-ES translations for PACKAGE package.
+# Automatically generated, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-25 06:26+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: readonly.xml:33
+#, no-c-format
+msgid "Read-only entities"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:36
+#, no-c-format
+msgid ""
+"Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ "
+"from what you may have encountered elsewhere. Incorrect usage may cause "
+"unexpected results."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:43
+#, no-c-format
+msgid "When an entity is read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:48
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check the entity's simple properties or single-"
+"ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:54
+#, no-c-format
+msgid ""
+"Hibernate will not update simple properties or updatable single-ended "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:60
+#, no-c-format
+msgid ""
+"Hibernate will not update the version of the read-only entity if only simple "
+"properties or single-ended updatable associations are changed;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:69
+#, no-c-format
+msgid ""
+"In some ways, Hibernate treats read-only entities the same as entities that "
+"are not read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:75
+#, no-c-format
+msgid ""
+"Hibernate cascades operations to associations as defined in the entity "
+"mapping."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:81
+#, no-c-format
+msgid ""
+"Hibernate updates the version if the entity has a collection with changes "
+"that dirties the entity;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:87
+#, no-c-format
+msgid "A read-only entity can be deleted."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:94
+#, no-c-format
+msgid ""
+"Even if an entity is not read-only, its collection association can be "
+"affected if it contains a read-only entity."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:99
+#, no-c-format
+msgid ""
+"For details about the affect of read-only entities on different property and "
+"association types, see <xref linkend=\"readonly-proptypes\"/>."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:105
+#, no-c-format
+msgid "For details about how to make entities read-only, see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:110
+#, no-c-format
+msgid "Hibernate does some optimizing for read-only entities:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:115
+#, no-c-format
+msgid ""
+"It saves execution time by not dirty-checking simple properties or single-"
+"ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:121
+#, no-c-format
+msgid "It saves memory by deleting database snapshots."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:128
+#, no-c-format
+msgid "Making persistent entities read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:130
+#, no-c-format
+msgid ""
+"Only persistent entities can be made read-only. Transient and detached "
+"entities must be put in persistent state before they can be made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:136
+#, no-c-format
+msgid ""
+"Hibernate provides the following ways to make persistent entities read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:142
+#, no-c-format
+msgid ""
+"you can map an entity class as <emphasis>immutable</emphasis>; when an "
+"entity of an immutable class is made persistent, Hibernate automatically "
+"makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for "
+"details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:150
+#, no-c-format
+msgid ""
+"you can change a default so that entities loaded into the session by "
+"Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-"
+"loaddefault\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:157
+#, no-c-format
+msgid ""
+"you can make an HQL query or criteria read-only so that entities loaded when "
+"the query or criteria executes, scrolls, or iterates, are automatically made "
+"read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:165
+#, no-c-format
+msgid ""
+"you can make a persistent entity that is already in the in the session read-"
+"only; see <xref linkend=\"readonly-api-entity\"/> for details"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:174
+#, no-c-format
+msgid "Entities of immutable classes"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:176
+#, no-c-format
+msgid ""
+"When an entity instance of an immutable class is made persistent, Hibernate "
+"automatically makes it read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:180
+#, no-c-format
+msgid ""
+"An entity of an immutable class can created and deleted the same as an "
+"entity of a mutable class."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:185
+#, no-c-format
+msgid ""
+"Hibernate treats a persistent entity of an immutable class the same way as a "
+"read-only persistent entity of a mutable class. The only exception is that "
+"Hibernate will not allow an entity of an immutable class to be changed so it "
+"is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:196
+#, no-c-format
+msgid "Loading persistent entities as read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:199 readonly.xml:286
+#, no-c-format
+msgid "Entities of immutable classes are automatically loaded as read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:205
+#, no-c-format
+msgid ""
+"To change the default behavior so Hibernate loads entity instances of "
+"mutable classes into the session and automatically makes them read-only, "
+"call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:210
+#, no-c-format
+msgid "Session.setDefaultReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:212
+#, no-c-format
+msgid ""
+"To change the default back so entities loaded by Hibernate are not made read-"
+"only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:216
+#, no-c-format
+msgid "Session.setDefaultReadOnly( false );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:218
+#, no-c-format
+msgid "You can determine the current setting by calling:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:221
+#, no-c-format
+msgid "Session.isDefaultReadOnly();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:223
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, entities loaded by the "
+"following are automatically made read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:229
+#, no-c-format
+msgid "Session.load()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:234
+#, no-c-format
+msgid "Session.get()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:239
+#, no-c-format
+msgid "Session.merge()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:244
+#, no-c-format
+msgid ""
+"executing, scrolling, or iterating HQL queries and criteria; to override "
+"this setting for a particular HQL query or criteria see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:253
+#, no-c-format
+msgid "Changing this default has no effect on:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:258
+#, no-c-format
+msgid "persistent entities already in the session when the default was changed"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:264
+#, no-c-format
+msgid ""
+"persistent entities that are refreshed via Session.refresh(); a refreshed "
+"persistent entity will only be read-only if it was read-only before "
+"refreshing"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:272
+#, no-c-format
+msgid ""
+"persistent entities added by the application via Session.persist(), Session."
+"save(), and Session.update() Session.saveOrUpdate()"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:283
+#, no-c-format
+msgid "Loading read-only entities from an HQL query/criteria"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:292
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns false (the default) when an HQL query "
+"or criteria executes, then entities and proxies of mutable classes loaded by "
+"the query will not be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:299
+#, no-c-format
+msgid ""
+"You can override this behavior so that entities and proxies loaded by an HQL "
+"query or criteria are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:304
+#, no-c-format
+msgid "For an HQL query, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:307
+#, no-c-format
+msgid "Query.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:309
+#, no-c-format
+msgid ""
+"<literal>Query.setReadOnly( true )</literal> must be called before "
+"<literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, "
+"<literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:315
+#, no-c-format
+msgid "For an HQL criteria, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:318
+#, no-c-format
+msgid "Criteria.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:320
+#, no-c-format
+msgid ""
+"<literal>Criteria.setReadOnly( true )</literal> must be called before "
+"<literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</"
+"literal>, or <literal>Criteria.scroll()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:326
+#, no-c-format
+msgid ""
+"Entities and proxies that exist in the session before being returned by an "
+"HQL query or criteria are not affected."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:331
+#, no-c-format
+msgid ""
+"Uninitialized persistent collections returned by the query are not affected. "
+"Later, when the collection is initialized, entities loaded into the session "
+"will be read-only if Session.isDefaultReadOnly() returns true."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:338
+#, no-c-format
+msgid ""
+"Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria."
+"setReadOnly( true )</literal> works well when a single HQL query or criteria "
+"loads all the entities and intializes all the proxies and collections that "
+"the application needs to be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:346
+#, no-c-format
+msgid ""
+"When it is not possible to load and initialize all necessary entities in a "
+"single query or criteria, you can temporarily change the session default to "
+"load entities as read-only before the query is executed. Then you can "
+"explicitly initialize proxies and collections before restoring the session "
+"default."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:355
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+" \n"
+"setDefaultReadOnly( true );\n"
+"Contract contract = \n"
+" ( Contract ) session.createQuery(\n"
+" \"from Contract where customerName = 'Sherman'\" )\n"
+" .uniqueResult();\n"
+"Hibernate.initialize( contract.getPlan() );\n"
+"Hibernate.initialize( contract.getVariations() );\n"
+"Hibernate.initialize( contract.getNotes() );\n"
+"setDefaultReadOnly( false );\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:357
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, then you can use Query."
+"setReadOnly( false ) and Criteria.setReadOnly( false ) to override this "
+"session setting and load entities that are not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:367
+#, no-c-format
+msgid "Making a persistent entity read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:369
+#, no-c-format
+msgid ""
+"Persistent entities of immutable classes are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:375
+#, no-c-format
+msgid "To make a persistent entity or proxy read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:378
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, true)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:380
+#, no-c-format
+msgid ""
+"To change a read-only entity or proxy of a mutable class so it is no longer "
+"read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:384
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, false)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:387
+#, no-c-format
+msgid ""
+"When a read-only entity or proxy is changed so it is no longer read-only, "
+"Hibernate assumes that the current state of the read-only entity is "
+"consistent with its database representation. If this is not true, then any "
+"non-flushed changes made before or while the entity was read-only, will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:396
+#, no-c-format
+msgid ""
+"To throw away non-flushed changes and make the persistent entity consistent "
+"with its database representation, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:400
+#, no-c-format
+msgid "session.refresh( entity );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:402
+#, no-c-format
+msgid ""
+"To flush changes made before or while the entity was read-only and make the "
+"database representation consistent with the current state of the persistent "
+"entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:408
+#, no-c-format
+msgid ""
+"// evict the read-only entity so it is detached\n"
+"session.evict( entity );\n"
+"\n"
+"// make the detached entity (with the non-flushed changes) persistent\n"
+"session.update( entity );\n"
+"\n"
+"// now entity is no longer read-only and its changes can be flushed\n"
+"s.flush();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:413
+#, no-c-format
+msgid "Read-only affect on property type"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:415
+#, no-c-format
+msgid ""
+"The following table summarizes how different property types are affected by "
+"making an entity read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:421
+#, no-c-format
+msgid "Affect of read-only entity on property types"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:427
+#, no-c-format
+msgid "Property/Association Type"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:428
+#, no-c-format
+msgid "Changes flushed to DB?"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:433
+#, no-c-format
+msgid "Simple"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:435
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:439
+#, no-c-format
+msgid "<entry>no*</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:443
+#, no-c-format
+msgid "Unidirectional one-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:444
+#, no-c-format
+msgid "Unidirectional many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:445
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:451 readonly.xml:452
+#, no-c-format
+msgid "<para>no*</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:457
+#, no-c-format
+msgid "Unidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:458
+#, no-c-format
+msgid "Unidirectional many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:459
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:464 readonly.xml:465 readonly.xml:489
+#, no-c-format
+msgid "<para>yes</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:470
+#, no-c-format
+msgid "<para>Bidirectional one-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:471
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:475
+#, no-c-format
+msgid "only if the owning entity is not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:479
+#, no-c-format
+msgid "<para>Bidirectional one-to-many/many-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:480
+#, no-c-format
+msgid "inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:481
+#, no-c-format
+msgid "non-inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:482
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:488
+#, no-c-format
+msgid "only added/removed entities that are not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:494
+#, no-c-format
+msgid "<para>Bidirectional many-to-many</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:495
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:499
+#, no-c-format
+msgid "<entry>yes</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:505
+#, no-c-format
+msgid ""
+"* Behavior is different when the entity having the property/association is "
+"read-only, compared to when it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:511
+#, no-c-format
+msgid "Simple properties"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:513
+#, no-c-format
+msgid ""
+"When a persistent object is read-only, Hibernate does not dirty-check simple "
+"properties."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:518
+#, no-c-format
+msgid ""
+"Hibernate will not synchronize simple property state changes to the "
+"database. If you have automatic versioning, Hibernate will not increment the "
+"version if any simple properties change."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:524
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"// get a contract and make it read-only\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"\n"
+"// contract.getCustomerName() is \"Sherman\"\n"
+"contract.setCustomerName( \"Yogi\" );\n"
+"tx.commit();\n"
+"\n"
+"tx = session.beginTransaction();\n"
+"\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"// contract.getCustomerName() is still \"Sherman\"\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:529
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:532
+#, no-c-format
+msgid "Unidirectional one-to-one and many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:534
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-one and many-to-one associations in "
+"the same way when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:540
+#, no-c-format
+msgid ""
+"We use the term <emphasis>unidirectional single-ended association</emphasis> "
+"when referring to functionality that is common to unidirectional one-to-one "
+"and many-to-one associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:547
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check unidirectional single-ended associations when "
+"the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:552
+#, no-c-format
+msgid ""
+"If you change a read-only entity's reference to a unidirectional single-"
+"ended association to null, or to refer to a different entity, that change "
+"will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:560
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, then its references to unidirectional "
+"single-ended associations must be assigned when that entity is first "
+"created. Because the entity is automatically made read-only, these "
+"references can not be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:570
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to unidirectional single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:576
+#, no-c-format
+msgid ""
+"In the following examples, Contract has a unidirectional many-to-one "
+"association with Plan. Contract cascades save and update operations to the "
+"association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:582
+#, no-c-format
+msgid ""
+"The following shows that changing a read-only entity's many-to-one "
+"association reference to null has no effect on the entity's database "
+"representation."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:588
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and set its plan to null \n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"contract.setPlan( null );\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:590
+#, no-c-format
+msgid ""
+"The following shows that, even though an update to a read-only entity's many-"
+"to-one association has no affect on the entity's database representation, "
+"flush still cascades the save-update operation to the locally changed "
+"association."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:599
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and change to a new plan\n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"Plan newPlan = new Plan( \"new plan\"\n"
+"contract.setPlan( newPlan);\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"// newPlan is non-null because it was persisted when \n"
+"// the previous transaction was committed; \n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:604
+#, no-c-format
+msgid "Unidirectional one-to-many and many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:606
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-many and many-to-many associations "
+"owned by a read-only entity the same as when owned by an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:613
+#, no-c-format
+msgid ""
+"Hibernate dirty-checks unidirectional one-to-many and many-to-many "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:618
+#, no-c-format
+msgid ""
+"The collection can contain entities that are read-only, as well as entities "
+"that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:624
+#, no-c-format
+msgid ""
+"Entities can be added and removed from the collection; changes are flushed "
+"to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:629
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in the collection if they dirty the owning entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:640
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:643
+#, no-c-format
+msgid "<title>Bidirectional one-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:645
+#, no-c-format
+msgid "If a read-only entity owns a bidirectional one-to-one association:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:652
+#, no-c-format
+msgid "Hibernate does not dirty-check the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:657
+#, no-c-format
+msgid ""
+"updates that change the association reference to null or to refer to a "
+"different entity will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:664
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:673
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, and it owns a bidirectional one-to-"
+"one association, then its reference must be assigned when that entity is "
+"first created. Because the entity is automatically made read-only, these "
+"references cannot be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:683
+#, no-c-format
+msgid ""
+"When the owner is not read-only, Hibernate treats an association with a read-"
+"only entity the same as when the association is with an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:693
+#, no-c-format
+msgid "<title>Bidirectional one-to-many/many-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:695
+#, no-c-format
+msgid ""
+"A read-only entity has no impact on a bidirectional one-to-many/many-to-one "
+"association if:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:702
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using an inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:708
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using a non-inverse "
+"collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:714
+#, no-c-format
+msgid ""
+"the one-to-many side uses a non-inverse collection that contains the read-"
+"only entity"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:721
+#, no-c-format
+msgid "When the one-to-many side uses an inverse collection:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:727
+#, no-c-format
+msgid ""
+"a read-only entity can only be added to the collection when it is created;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:733
+#, no-c-format
+msgid ""
+"a read-only entity can only be removed from the collection by an orphan "
+"delete or by explicitly deleting the entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:744
+#, no-c-format
+msgid "<title>Bidirectional many-to-many</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:745
+#, no-c-format
+msgid ""
+"Hibernate treats bidirectional many-to-many associations owned by a read-"
+"only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:752
+#, no-c-format
+msgid "Hibernate dirty-checks bidirectional many-to-many associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:757
+#, no-c-format
+msgid ""
+"The collection on either side of the association can contain entities that "
+"are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:763
+#, no-c-format
+msgid ""
+"Entities are added and removed from both sides of the collection; changes "
+"are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:769
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in both sides of the collection if they dirty the entity owning the "
+"respective collections."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/session_api.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/session_api.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/session_api.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1637 @@
+# translation of session_api.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: session_api\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-03-15 14:40+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr "Trabajo con objetos"
+
+#. 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 es una solución completa de mapeo objeto/relacional que no sólo "
+"proteje al desarrollador de los detalles del sistema de administración de la "
+"base datos subyacente, sino que además ofrece <emphasis>administración de "
+"estado</emphasis> de objetos. Contrario a la administración de "
+"<literal>declaraciones</literal> SQL en capas comunes de persistencia JDBC/"
+"SQL, esta es una vista natural orientada a objetos de la persistencia en "
+"aplicaciones 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 ""
+"En otras palabras, los desarrolladores de aplicaciones de Hibernate siempre "
+"deben pensar en el <emphasis>estado</emphasis> de sus objetos, y no "
+"necesariamente en la ejecución de declaraciones SQL. Hibernate se ocupa de "
+"esto y es sólamente relevante para el desarrollador de la aplicación al "
+"afinar el rendimiento del sistema."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr "Estados de objeto de Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr "Hibernate define y soporta los siguientes estados de objeto:"
+
+#. 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>Transitorio</emphasis> - un objeto es transitorio si ha sido "
+"recién instanciado utilizando el operador <literal>new</literal>, y no está "
+"asociado a una <literal>Session</literal> de Hibernate. No tiene una "
+"representación persistente en la base de datos y no se le ha asignado un "
+"valor identificador. Las instancias transitorias serán destruÃdas por el "
+"recolector de basura si la aplicación no mantiene más una referencia. "
+"Utiliza la <literal>Session</literal> de Hibernate para hacer un objeto "
+"persistente (y deja que Hibernate se ocupe de las declaraciones SQL que "
+"necesitan ejecutarse para esta transición)."
+
+#. 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>Persistente</emphasis> - una instancia persistente tiene una "
+"representación en la base de datos y un valor identificador. Puede haber "
+"sido guardado o cargado, sin embargo, por definición, se encuentra en el "
+"ámbito de una <literal>Session</literal>. Hibernate detectará cualquier "
+"cambio realizado a un objeto en estado persistente y sincronizará el estado "
+"con la base de datos cuando se complete la unidad de trabajo. Los "
+"desarrolladores no ejecutan declaraciones <literal>UPDATE</literal> "
+"manuales, o declaraciones <literal>DELETE</literal> cuando un objeto se debe "
+"poner como transitorio."
+
+#. 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>Separado</emphasis> - una instancia separada es un objeto que se "
+"ha hecho persistente, pero su <literal>Session</literal> ha sido cerrada. La "
+"referencia al objeto todavÃa es válida, por supuesto, y la instancia "
+"separada podrÃa incluso ser modificada en este estado. Una instancia "
+"separada puede ser re-unida a una nueva <literal>Session</literal> más "
+"tarde, haciéndola persistente de nuevo (con todas las modificaciones). Este "
+"aspecto habilita un modelo de programación para unidades de trabajo de "
+"ejecución larga que requieren tiempo-para-pensar por parte del usuario. Las "
+"llamamos <emphasis>transaccciones de aplicación</emphasis>, por ejemplo, una "
+"unidad de trabajo desde el punto de vista del usuario."
+
+#. 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 ""
+"Discutiremos ahora los estados y transiciones de estados (y los métodos de "
+"Hibernate que disparan una transición) en más detalle. "
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr "Haciendo los objetos persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Newly instantiated instances of a persistent class are considered "
+"<emphasis>transient</emphasis> by Hibernate. We can make a transient "
+"instance <emphasis>persistent</emphasis> by associating it with a session:"
+msgstr ""
+"Las instancias recién instanciadas de una clase persistente, Hibernate las considera como <emphasis>transitorias</emphasis>. Podemos hacer una instancia "
+"transitoria <emphasis>persistente</emphasis> asociándola con una sesión:"
+
+#. 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 ""
+"Si <literal>Cat</literal> tiene un identificador generado, el identificador "
+"es generado y asignado al <literal>cat</literal> cuando se llama a "
+"<literal>save()</literal>. Si <literal>Cat</literal> tiene un identificador "
+"<literal>assigned</literal>, o una clave compuesta, el identificador debe "
+"ser asignado a la instancia de <literal>cat</literal> antes de llamar a "
+"<literal>save()</literal>. También puede utilizar <literal>persist()</"
+"literal> en vez de <literal>save()</literal>, con la semántica definida en "
+"el borrador de EJB3. "
+
+#. 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> hace que una instancia transitoria sea "
+"persistente. Sin embargo, no garantiza que el valor identificador sea "
+"asignado a la instancia persistente inmediatamente, la tarea puede tener "
+"lugar durante el vaciado. <literal>persist()</literal> también garantiza que "
+"no ejecutará una declaración <literal>INSERT</literal> si se llama por fuera "
+"de los lÃmites de una transacción. Esto es útil en conversaciones largas con "
+"un contexto extendido sesión/persistencia."
+
+#. 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> sà garantiza el retorno de un identificador. Si se "
+"tiene que ejecutar un INSERT para obtener el identificador ( por ejemplo, "
+"generador \"identidad\", no \"secuencia\"), este INSERT tiene lugar "
+"inmediatamente sin importar si se encuentra dentro o fuera de una "
+"transacción. Esto es problemático en una conversación larga con un contexto "
+"extendido sesión/persistencia."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Alternatively, you can assign the identifier using an overloaded version of "
+"<literal>save()</literal>."
+msgstr ""
+"Opcionalmente, puede asignar el identificador utilizando una versión "
+"sobrecargada de <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 ""
+"Si el objeto que hace persistente tiene objetos asociados (por ejemplo, la "
+"colección <literal>kittens</literal> en el ejemplo anterior), estos objetos "
+"pueden ser hechos persistentes en cualquier orden que quiera a menos de que "
+"tenga una restricción <literal>NOT NULL</literal> sobre una columna clave "
+"foránea. Nunca hay riesgo de violar restricciones de clave foránea. Sin "
+"embargo, puede que usted viole una restricción <literal>NOT NULL</literal> "
+"si llama a <literal>save()</literal> sobre los objetos en el orden "
+"equivocado. "
+
+#. 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 ""
+"Usualmente no se preocupe de este detalle, pues muy probablemente utilizará "
+"la funcionalidad de <emphasis>persistencia transitiva</emphasis> de "
+"Hibernate para guardar los objetos asociados automáticamente. Entonces, ni "
+"siquiera tienen lugar violaciones de restricciones <literal>NOT NULL</"
+"literal> - Hibernate se ocupará de todo. Más adelante en este capÃtulo se "
+"discute la persistencia transitiva."
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr "Cargando un objeto"
+
+#. 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 ""
+"Los métodos <literal>load()</literal> de <literal>Session</literal> le "
+"proporcionan una forma de recuperar una instancia persistente si ya conoce "
+"su identificador. <literal>load()</literal> toma un objeto clase y carga el "
+"estado dentro de una instancia recién instanciada de esa clase, en un estado "
+"persistente."
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+msgstr "Alternativamente, puede cargar estado dentro de una instancia dada:"
+
+#. 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 ""
+"Note que <literal>load()</literal> lanzará una excepción irrecuperable si no "
+"hay una fila correspondiente en la base de datos. Si la clase se mapea con "
+"un proxy, <literal>load()</literal> sólo retorna un proxy no inicializado y "
+"no llamará realmente a la base de datos hasta que invoque un método del "
+"proxy. Este comportamiento es muy útil si desea crear una asociación a un "
+"objeto sin cargarlo realmente de la base de datos. Además permite que "
+"múltiples instancias sean cargadas como un lote si se define <literal>batch-"
+"size</literal> para el mapeo de la clase."
+
+#. 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 ""
+"Si no tiene la certeza de que existe una fila correspondiente, debe utilizar "
+"el método <literal>get()</literal>, que llama a la base de datos "
+"inmediatamente y devuelve nulo si no existe una fila correspondiente. "
+
+#. 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 ""
+"Incluso puede cargar un objeto utilizando un <literal>SELECT ... FOR UPDATE</"
+"literal> de SQL, usando un <literal>LockMode</literal>. Consulte la "
+"documentación de la API para obtener más información."
+
+#. 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>Ninguna</emphasis> instancia asociada o colección contenida es "
+"seleccionada para actualizacion - <literal>FOR UPDATE</literal>, a menos de "
+"que decida especificar <literal>lock</literal> o <literal>all</literal> como "
+"un estilo de cascada para la asociación."
+
+#. 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 ""
+"Es posible volver a cargar un objeto y todas sus colecciones en cualquier "
+"momento, utilizando el método <literal>refresh()</literal>. Esto es útil "
+"cuando se usan disparadores de base de datos para inicializar algunas de las "
+"propiedades del objeto."
+
+#. 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 ""
+"¿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\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr "Consultas"
+
+#. 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 ""
+"Si no conoce los identificadores de los objetos que está buscando, necesita "
+"una consulta. Hibernate soporta un lenguaje de consulta orientado a objetos "
+"(HQL) fácil de usar pero potente a la vez. Para la creación de consultas "
+"programáticas, Hibernate soporta una funcionalidad sofisticada de consulta "
+"de Criteria y Example (QBC y QBE). También puede expresar su consulta en el "
+"SQL nativo de su base de datos, con soporte opcional de Hibernate para la "
+"conversión del conjunto de resultados a objetos."
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr "Ejecución de consultas"
+
+#. 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 ""
+"Las consultas HQL y SQL nativas son representadas con una instancia de "
+"<literal>org.hibernate.Query</literal>. Esta interfaz ofrece métodos para "
+"ligar parámetros, manejo del conjunto resultado, y para la ejecución de la "
+"consulta real. Siempre obtiene una <literal>Query</literal> utilizando la "
+"<literal>Session</literal> actual:"
+
+#. 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 ""
+"Una consulta se ejecuta usualmente invocando a <literal>list()</literal>. El "
+"resultado de la consulta será cargado completamente dentro de una colección "
+"en memoria. Las instancias de entidad recuperadas por una consulta se "
+"encuentran en estado persistente. El método <literal>uniqueResult()</"
+"literal> ofrece un atajo si sabe que su consulta retornará sólamente un "
+"objeto. Las consultas que hacen uso de una recuperación temprana de "
+"colecciones usualmente retornan duplicados de los objetos raÃz, pero con sus "
+"colecciones inicializadas. Puede filtrar estos duplicados a través de un "
+"<literal>Set</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr "Iteración de resultados"
+
+#. 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 ""
+"Ocasionalmente, puede lograr un mejor rendimiento al ejecutar la consulta "
+"utilizando el método <literal>iterate()</literal>. Esto ocurrirá usualmente "
+"si espera que las instancias reales de entidad retornadas por la consulta "
+"estén ya en la sesión o en el caché de segundo nivel. Si todavÃa no están en "
+"caché, <literal>iterate()</literal> será más lento que <literal>list()</"
+"literal> y podrÃa requerir muchas llamadas a la base de datos para una "
+"consulta simple, usualmente <emphasis>1</emphasis> para la selección inicial "
+"que sólamente retorna identificadores y <emphasis>n</emphasis> selecciones "
+"adicionales para inicializar las instancias reales."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr "Consultas que devuelven tuplas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
+"as an array:"
+msgstr ""
+"Las consultas de Hibernate a veces retornan tuplas de objetos. Cada tupla se "
+"retorna como un array:"
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr "Resultados escalares"
+
+#. 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 ""
+"Las consultas pueden especificar una propiedad de una clase en la cláusula "
+"<literal>select</literal>. Pueden incluso llamar a funciones de agregación "
+"SQL. Las propiedades o agregaciones son considerados resultados \"escalares"
+"\" y no entidades en estado persistente."
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr "Ligado de parámetros"
+
+#. 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 ""
+"Los métodos en <literal>Query</literal> se proporcionan para enlazar valores "
+"a los parámetros con nombre o parámetros <literal>?</literal> de estilo "
+"JDBC. <emphasis>Al contrario de JDBC, Hibernate numera los parámetros desde "
+"cero.</emphasis> Los parámetros con nombre son identificadores de la forma "
+"<literal>:name</literal> en la cadena de la consulta. Las ventajas de los "
+"parámetros con nombre son las siguientes:"
+
+#. Tag: para
+#, no-c-format
+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"
+
+#. Tag: para
+#, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr "pueden aparecer múltiples veces en la misma petición"
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr "son auto-documentados"
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr "Paginación"
+
+#. 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 ""
+"Si necesita especificar enlaces sobre su conjunto de resultados, el número "
+"máximo de filas que quiere recuperar y/o la primera fila que quiere "
+"recuperar, puede utilizar los métodos de la interfaz <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 sabe cómo traducir este lÃmite de consulta al SQL nativo de su "
+"DBMS."
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "Iteración deslizable"
+
+#. 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 ""
+"Si su controlador JDBC soporta <literal>ResultSet</literal>s deslizables, la "
+"interfaz <literal>Query</literal> se puede utilizar para obtener un objeto "
+"<literal>ScrollableResults</literal> que permite una navegación flexible de "
+"los resultados de consulta. "
+
+#. 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 ""
+"Note que se requiere una conexión de base de datos abierta y un cursor para "
+"esta funcionalidad. Utilice <literal>setMaxResult()</literal>/"
+"<literal>setFirstResult()</literal> si necesita la funcionalidad de "
+"paginación fuera de lÃnea."
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr "Externalización de consultas con nombre"
+
+#. 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 ""
+"También puede definir consultas con nombre en el documento de mapeo. "
+"Recuerde utilizar una sección <literal>CDATA</literal> si su consulta "
+"contiene caracteres que puedan ser interpretados como etiquetado."
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr "El ligado de parámetros y de ejecución se realiza programáticamente:"
+
+#. 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 ""
+"El código real del programa es independiente del lenguaje de consulta "
+"utilizado. También puede definir consultas SQL nativas en metadatos, o "
+"migrar consultas existentes a Hibernate colocándolas en archivos de mapeo."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Also note that a query declaration inside a <literal><hibernate-"
+"mapping></literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal><class></literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+"Observe además que una declaración de consulta dentro de un elemento "
+"<literal><hibernate-mapping></literal> necesita de un nombre único "
+"global para la consulta, mientras que una declaración de consulta dentro de "
+"un elemento <literal><class></literal> se hace única automáticamente "
+"al agregar el nombre completamente calificado de la clase. Por ejemplo, "
+"<literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr "Filtración de colecciones"
+
+#. 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 ""
+"Un <emphasis>filtro</emphasis> de colección es un tipo especial de consulta "
+"que puede ser aplicado a una colección persistente o array. La cadena de "
+"consulta puede referirse a <literal>this</literal>, lo que quiere decir el "
+"elemento de la colección actual."
+
+#. 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 ""
+"La colección devuelta es considerada un bag, y es una copia de la colección "
+"dada. La colección original no es modificada. Esto es lo opuesto a lo que "
+"implica el nombre \"filtro\", pero es consistente con el comportamiento "
+"esperado."
+
+#. 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 ""
+"Observe que los filtros no requieren una cláusula <literal>from</literal> "
+"aunque pueden tener una si se necesita. Los filtros no están limitados a "
+"devolver los elementos de colección por sà mismos."
+
+#. 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 ""
+"Incluso una consulta de filtro vacÃo es útil, por ejemplo, para cargar un "
+"subconjunto de elementos en una colección enorme: "
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr "Consultas de criterios"
+
+#. 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 es extremadamente potente pero algunos desarrolladores prefieren "
+"construir consultas dinámicamente utilizando una API orientada a objetos, en "
+"vez de construir cadenas de consulta. Hibernate brinda una API intuitiva de "
+"consulta <literal>Criteria</literal> para estos casos: "
+
+#. 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 ""
+"Las APIs de <literal>Criteria</literal> y el <literal>Example</literal> "
+"asociado se discuten en más detalle en el <xref linkend=\"querycriteria"
+"\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr "Consultas en SQL nativo"
+
+#. 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 ""
+"Puede expresar una consulta en SQL, utilizando <literal>createSQLQuery()</"
+"literal> y dejar que Hibernate administre el mapeo de los conjuntos de "
+"resultados a objetos. Puede llamar en cualquier momento a <literal>session."
+"connection()</literal> y utilizar la <literal>Connection</literal> JDBC "
+"directamente. Si elige usar la API de Hibernate, tiene que encerrar los "
+"alias de SQL entre llaves:"
+
+#. 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 ""
+"Las consultas SQL pueden contener parámetros con nombre y posicionados, al "
+"igual que las consultas de Hibernate. Puede encontrar más información sobre "
+"las consultas en SQL nativo en Hibernate en el <xref linkend=\"querysql\" />. "
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr "Modificación de objetos persistentes"
+
+#. 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 ""
+"Las <emphasis>instancias persistentes transaccionales</emphasis> (por "
+"ejemplo, los objetos cargados, creados o consultados por la "
+"<literal>Session</literal>) pueden ser manipulados por la aplicación y "
+"cualquier cambio al estado persistente será persistido cuando se "
+"<emphasis>vacie</emphasis> la <literal>Session</literal>. Esto se discute "
+"más adelante en este capÃtulo. No hay necesidad de llamar a un método en "
+"particular (como <literal>update()</literal>, que tiene un propósito "
+"diferente) para hacer persistentes sus modificaciones. De modo que la forma "
+"más directa de actualizar el estado de un objeto es cargarlo con "
+"<literal>load()</literal> y luego manipularlo directamente, mientras la "
+"<literal>Session</literal> está abierta:"
+
+#. 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 ""
+"A veces este modelo de programación es ineficiente pues requiere un "
+"<literal>SELECT</literal> de SQL para cargar un objeto y un <literal>UPDATE</"
+"literal> de SQL para hacer persistente su estado actualizado en la misma "
+"sesión. Por lo tanto, Hibernate ofrece un enfoque opcional, utilizando "
+"instancias separadas."
+
+#. 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 no ofrece su propia API para ejecución directa de declaraciones "
+"<literal>UPDATE</literal> o <literal>DELETE</literal>. Hibernate es un "
+"servicio de <emphasis>administración de estado</emphasis>, no tiene que "
+"pensar en <emphasis>declaraciones</emphasis> para poder utilizarlo. JDBC es "
+"una API perfecta para ejecutar declaraciones SQL; puede obtener una "
+"<literal>Connection</literal> JDBC en cualquier momento llamando a "
+"<literal>session.connection()</literal>. Además, la noción de operaciones "
+"masivas entra en conflicto con el mapeo objeto/relacional en aplicaciones en "
+"lÃnea orientadas al procesamiento de transacciones. Sin embargo, las "
+"versiones futuras de Hibernate podrán proporcionar funciones de operación "
+"masiva especiales. Consulte <xref linkend=\"batch\"/> para obtener algunos "
+"trucos posibles para la operación en lote. "
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr "Modificación de objetos separados"
+
+#. 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 ""
+"Muchas aplicaciones necesitan recuperar un objeto en una transacción, "
+"enviarla a la capa de UI para su manipulación, y entonces guardar los "
+"cambios en una nueva transacción. Las aplicaciones que usan este tipo de "
+"enfoque en un entorno de alta concurrencia usualmente utilizan datos "
+"versionados para asegurar el aislamiento de la unidad de trabajo \"larga\"."
+
+#. 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 soporta este modelo al proveer re-unión de instancias separadas "
+"utilizando los métodos <literal>Session.update()</literal> o "
+"<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 ""
+"Si el <literal>Cat</literal> con identificador <literal>catId</literal> ya "
+"hubiera sido cargado por <literal>secondSession</literal> cuando la "
+"aplicación intentó volver a unirlo, se habrÃa lanzado una excepción."
+
+#. 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 ""
+"Utilice <literal>update()</literal> si está seguro de que la sesión no tiene "
+"una instancia ya persistente con el mismo identificador. Utilice "
+"<literal>merge()</literal> si quiere fusionar sus modificaciones en "
+"cualquier momento sin consideración del estado de la sesión. En otras "
+"palabras, <literal>update()</literal> usualmente es el primer método que "
+"usted llamarÃa en una sesión actualizada, asegurando que la re-unión de sus "
+"instancias separadas es la primera operación que se ejecuta."
+
+#. 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 ""
+"La aplicación debe actualizar <literal>update()</literal> individualmente "
+"las instancias separadas alcanzables desde la instancia separada dada "
+"<emphasis>sólo</emphasis> si quiere que su estado se actualice. Esto puede "
+"ser automatizado utilizando la <emphasis>persistencia transitiva</"
+"emphasis>. Consulte la <xref linkend=\"objectstate-transitive\" /> para "
+"obtener mayor información."
+
+#. 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 ""
+"El método <literal>lock()</literal> también le permite a una aplicación "
+"reasociar un objeto con una sesión nueva. Sin embargo, la instancia separada "
+"no puede haber sido modificada."
+
+#. 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 ""
+"Note que <literal>lock()</literal> se puede utilizar con varios "
+"<literal>LockMode</literal>s. Consulte la documentación de la API y el "
+"capÃtulo sobre el manejo de transacciones para obtener mayor información. La "
+"re-unión no es el único caso de uso para <literal>lock()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\" />."
+msgstr ""
+"Se discuten otros modelos para unidades largas de trabajo en <xref linkend="
+"\"transactions-optimistic\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr "Detección automática de estado"
+
+#. 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 ""
+"Los usuarios de Hibernate han pedido un método de propósito general que bien "
+"guarde una instancia transitoria generando un identificador nuevo, o bien "
+"actualice/reúna las instancias separadas asociadas con su identificador "
+"actual. El método <literal>saveOrUpdate()</literal> implementa esta "
+"funcionalidad."
+
+#. 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 ""
+"La utilización y semántica de <literal>saveOrUpdate()</literal> parece ser "
+"confuso para los usuarios nuevos. Primero, en tanto no esté tratando de "
+"utilizar instancias de una sesión en otra sesión nueva, no debe necesitar "
+"usar <literal>update()</literal>, <literal>saveOrUpdate()</literal>, o "
+"<literal>merge()</literal>. Algunas aplicaciones enteras nunca usarán "
+"ninguno de estos métodos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
+"used in the following scenario:"
+msgstr ""
+"Usualmente <literal>update()</literal> o <literal>saveOrUpdate()</literal> "
+"se utilizan en el siguiente escenario:"
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr "la aplicación carga un objeto en la primera sesión"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr "el objeto se pasa a la capa de UI"
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr "se realizan algunas modificaciones al objeto"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr "el objeto se pasa abajo de regreso a la capa lógica de negocios"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
+msgstr ""
+"la aplicación hace estas modificaciones persistentes llamando a "
+"<literal>update()</literal> en una segunda sesión"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr "<literal>saveOrUpdate()</literal> hace lo siguiente:"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr "si el objeto ya es persistente en esta sesión, no haga nada"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"si otro objeto asociado con la sesión tiene el mismo identificador, lance "
+"una excepción"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object has no identifier property, <literal>save()</literal> it"
+msgstr ""
+"si el objeto no tiene ninguna propiedad identificadora, guárdelo llamando a "
+"<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 ""
+"si el identificador del objeto tiene el valor asignado a un objeto recién "
+"instanciado, guárdelo llamando a <literal>save()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if the object is versioned by a <literal><version></literal> or "
+"<literal><timestamp></literal>, and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"si el objeto está versionado por un <literal><version></literal> o "
+"<literal><timestamp></literal>, y el valor de la propiedad de versión "
+"es el mismo valor asignado a un objeto recién instanciado, guárdelo llamando "
+"a <literal>save()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr "de otra manera actualice el objeto llamando a <literal>update()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr "y <literal>merge()</literal> es muy diferente:"
+
+#. 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 ""
+"si existe una instancia persistente con el mismo identificador asignado "
+"actualmente con la sesión, copie el estado del objeto dado en la instancia "
+"persistente"
+
+#. 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 ""
+"si no existe ninguna instancia persistente asociada a la sesión actualmente, "
+"intente cargarla desde la base de datos, o cree una nueva instancia "
+"persistente"
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr "la instancia persistente es devuelta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
+msgstr "la instancia dada no se asocia a la sesión, permanece separada"
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr "Borrado de objetos persistentes"
+
+#. 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> borrará el estado de un objeto de la "
+"base de datos. Sin embargo, su aplicación puede tener todavÃa una referencia "
+"a un objeto borrado. Lo mejor es pensar en <literal>delete()</literal> al "
+"hacer transitoria una instancia persistente."
+
+#. 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 ""
+"Puede borrar objetos en el orden que quiera, sin riesgo de violaciones de "
+"restricción de clave foránea. Aún es posible violar una restricción "
+"<literal>NOT NULL</literal> sobre una columna de clave foránea borrando "
+"objetos en un orden erróneo, por ejemplo, si borra el padre, pero olvida "
+"borrar los hijos."
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr "Replicación de objetos entre dos almacenamientos de datos diferentes"
+
+#. 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 ""
+"A veces es útil poder tomar un grafo de la instancias persistentes y "
+"hacerlas persistentes en un almacenamiento de datos diferente, sin regenerar "
+"los valores identificadores."
+
+#. 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 ""
+"El <literal>ReplicationMode</literal> determina cómo <literal>replicate()</"
+"literal> tratará los conflictos con filas existentes en la base de datos:"
+
+#. 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>: ignora el objeto cuando existe "
+"una fila de la base de datos con el mismo identificador"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
+"database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.OVERWRITE</literal>: sobrescribe cualquier fila de "
+"la base de datos existente con el mismo identificador"
+
+#. 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>: lanza una excepción si existe "
+"una fila de la base de datos con el mismo identificador"
+
+#. 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>: sobrescribe la fila si su "
+"número de versión es anterior al número de versión del objeto, o de lo "
+"contrario ignora el objeto"
+
+#. 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 ""
+"Los casos de uso para esta funcionalidad incluyen reconciliar datos "
+"ingresados en instancias diferentes de bases de datos, actualizar "
+"información de configuración del sistema durante actualizaciones de "
+"producto, deshacer cambios realizados durante transacciones no-ACID y más."
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr "Limpieza (flushing) de la sesión"
+
+#. 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 ""
+"A veces la <literal>Session</literal> ejecutará las declaraciones SQL "
+"necesarias para sincronizar el estado de la conexión JDBC con el estado de "
+"los objetos en la menoria. Este proceso, denominado <emphasis>vaciado (flush)"
+"</emphasis>, ocurre por defecto en los siguientes puntos:"
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr "antes de algunas ejecuciones de consulta"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "desde <literal>org.hibernate.Transaction.commit()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr "desde <literal>Session.flush()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr "Las declaraciones SQL se emiten en el siguiente orden:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"all entity insertions in the same order the corresponding objects were saved "
+"using <literal>Session.save()</literal>"
+msgstr ""
+"todas las inserciones de entidades, en el mismo orden que los objetos "
+"correspondientes fueron guardados utilizando <literal>Session.save()</"
+"literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr "todas las actualizaciones de entidades"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr "todas los borrados de colecciones"
+
+#. 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"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr "todas las inserciones de colecciones"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"all entity deletions in the same order the corresponding objects were "
+"deleted using <literal>Session.delete()</literal>"
+msgstr ""
+"todos los borrados de entidades, en el mismo orden que los objetos "
+"correspondientes fueron borrados usando <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 ""
+"Una excepción es que los objetos que utilizan generación de ID "
+"<literal>native</literal> se insertan cuando se guardan."
+
+#. 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 ""
+"Excepto cuando llama explÃcitamente a <literal>flush()</literal>, no hay en "
+"absoluto garantÃas sobre <emphasis>cuándo</emphasis> la <literal>Session</"
+"literal> ejecuta las llamadas JDBC, sólamente sobre el <emphasis>orden</"
+"emphasis> en que se ejecutan. Sin embargo, Hibernate garantiza que los "
+"métodos <literal>Query.list(..)</literal> nunca devolverán datos "
+"desactualizados o incorrectos."
+
+#. 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 ""
+"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 "
+"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 (consulte la <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 ""
+"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\" />. "
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr "Persistencia transitiva"
+
+#. 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 ""
+"Es absolutamente incómodo guardar, borrar, o reunir objetos individuales, "
+"especialmente si trata con un grafo de objetos asociados. Un caso común es "
+"una relación padre/hijo. Considere el siguiente ejemplo:"
+
+#. 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 ""
+"Si los hijos en una relación padre/hijo pudieran ser tipificados en valor "
+"(por ejemplo, una colección de direcciones o cadenas), sus ciclos de vida "
+"dependerÃan del padre y no se requerirÃa ninguna otra acción para el "
+"tratamiento apropiado en \"cascada\" de los cambios de estado. Cuando se "
+"guarda el padre, los objetos hijo tipificados en valor también se guardan, "
+"cuando se borra el padre, se borran los hijos, etc. Esto funciona incluso "
+"para operaciones tales como el retiro de un hijo de la colección. Hibernate "
+"detectará esto y ya que los objetos tipificados en valor no pueden tener "
+"referencias compartidas entonces borrará el hijo de la base de datos."
+
+#. 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 ""
+"Ahora considere el mismo escenario con los objetos padre e hijos siendo "
+"entidades, no tipos de valor (por ejemplo, categorÃas e Ãtems, o gatos "
+"padres e hijos). Las entidades tienen su propio ciclo de vida y soportan "
+"referencias compartidas. El eliminar una entidad de una colección no "
+"significa que se pueda borrar, y no hay por defecto ningún tratamiento en "
+"\"cascada\" del estado de una entidad a otras entidades asociadas. Hibernate "
+"no implementa por defecto la <emphasis>persistencia por alcance</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 ""
+"Para cada operación básica de la sesión de Hibernate - incluyendo "
+"<literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
+"evict(), replicate()</literal> - existe un estilo de cascada "
+"correspondiente. Respectivamente, los estilos de cascada se llaman "
+"<literal>create, merge, save-update, delete, lock, refresh, evict, "
+"replicate</literal>. Si quiere que una operación sea tratada en cascada a lo "
+"largo de una asociación, debe indicar eso en el documento de mapeo. Por "
+"ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr "Los estilos de cascada pueden combinarse:"
+
+#. 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 ""
+"Incluso puede utilizar <literal>cascade=\"all\"</literal> para especificar "
+"que <emphasis>todas</emphasis> las operaciones deben ser tratadas en cascada "
+"a lo largo de la asociación. La <literal>cascade=\"none\"</literal> "
+"predeterminada especifica que ninguna operación se tratará en cascada. "
+
+#. 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 ""
+"Un estilo de cascada especial, <literal>delete-orphan</literal>, se aplica "
+"sólamente a asociaciones uno-a-muchos, e indica que la operación "
+"<literal>delete()</literal> debe aplicarse a cualquier objeto hijo que se "
+"elimine de la asociación."
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr "Recomendaciones:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It does not usually make sense to enable cascade on a <literal><many-to-"
+"one></literal> or <literal><many-to-many></literal> association. "
+"Cascade is often useful for <literal><one-to-one></literal> and "
+"<literal><one-to-many></literal> associations."
+msgstr ""
+"Usualmente no tiene sentido habilitar el tratamiento en cascada en una "
+"asociación <literal><many-to-one></literal> o <literal><many-to-"
+"many></literal>. El tratamiento en cascada es frecuentemente útil para "
+"las asociaciones <literal><one-to-one></literal> y <literal><one-to-"
+"many></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make it a <emphasis>life cycle object</emphasis> by specifying "
+"<literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr ""
+"Si el periodo de vida de los objetos hijos está ligado al periodo de vida "
+"del objeto padre, hágalo un <emphasis>objeto de ciclo de vida</emphasis> "
+"especificando <literal>cascade=\"all,delete-orphan\"</literal>. "
+
+#. 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 ""
+"En otro caso, puede que usted no necesite tratamiento en cascada en "
+"absoluto. Pero si piensa que va a estar trabajando frecuentemente con padre "
+"e hijos juntos en la misma transacción, y quiere ahorrarse algo de escritura "
+"en computador, considere el utilizar <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 ""
+"Mapear una asociación (ya sea una asociación monovaluada, o una colección) "
+"con <literal>cascade=\"all\"</literal> marca la asociación como una relación "
+"del estilo <emphasis>padre/hijo</emphasis> en donde guardar/actualizar/"
+"borrar (save/update/delete) el padre causa el guardar/actualizar/borrar del "
+"hijo o hijos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Furthermore, a mere reference to a child from a persistent parent will "
+"result in save/update of the child. This metaphor is incomplete, however. A "
+"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal><one-to-many></"
+"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
+"literal>. The precise semantics of cascading operations for a parent/child "
+"relationship are as follows:"
+msgstr ""
+"Además, una mera referencia a un hijo desde un padre persistente hará que se "
+"guarde/actualice el hijo. Sin embargo, esta metáfora se encuentra "
+"incompleta. Un hijo que deje de ser referenciado por su padre <emphasis>no</"
+"emphasis> es borrado automáticamente, excepto en el caso de una asociación "
+"<literal><one-to-many></literal> mapeada con <literal>cascade=\"delete-"
+"orphan\"</literal>. La semántica precisa de las operaciones en cascada para "
+"una relación padre/hijo es la siguiente:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If a parent is passed to <literal>persist()</literal>, all children are "
+"passed to <literal>persist()</literal>"
+msgstr ""
+"Si un padre pasa a <literal>persist()</literal>, se pasan todos los hijos a "
+"<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 ""
+"Si un padre pasa a <literal>merge()</literal>, se pasan todos los hijos a "
+"<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 ""
+"Si se pasa un padre a <literal>save()</literal>, <literal>update()</literal> "
+"o <literal>saveOrUpdate()</literal>, todos los hijos pasan a "
+"<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 ""
+"Si un hijo transitorio o separado se vuelve referenciado por un padre "
+"persistente, le es pasado a <literal>saveOrUpdate()</literal>"
+
+#. Tag: para
+#, no-c-format
+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>"
+
+#. 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 ""
+"Si un hijo deja de ser referenciado por un padre persistente, <emphasis>no "
+"ocurre nada especial</emphasis> - la aplicación debe borrar explÃcitamente "
+"el hijo de ser necesario - a menos que <literal>cascade=\"delete-orphan\"</"
+"literal>, en cuyo caso se borra el hijo \"huérfano\"."
+
+#. 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 ""
+"Finalmente, note que las operaciones en cascadas se pueden aplicar a un "
+"grafo de objeto en <emphasis>tiempo de llamada</emphasis> o en "
+"<emphasis>tiempo de vaciado</emphasis>. Todas las operaciones, si se "
+"encuentran activadas se tratan en cascadas en entidades asociadas "
+"alcanzables cuando se ejecuta la operación. Sin embargo, <literal>save-"
+"upate</literal> y <literal>delete-orphan</literal> son transitivos para "
+"todas las entidades asociadas alcanzables durante el vaciado de la "
+"<literal>Session</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr "Utilización de metadatos"
+
+#. 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 requiere de un modelo de meta-nivel muy rico de todas las "
+"entidades y tipos de valor. Este modelo puede ser útil para la aplicación "
+"misma. Por ejemplo, la aplicación podrÃa utilizar los metadatos de Hibernate "
+"para implementar un algoritmo \"inteligente\" de copia en profundidad que "
+"entienda qué objetos deben ser copiados (por ejemplo, tipos de valor "
+"mutables) y cuáles no (por ejemplo, tipos de valor inmutables y posiblemente "
+"las entidades asociadas)."
+
+#. 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 expone los metadatos por medio de las interfaces "
+"<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>."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/toolset_guide.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/toolset_guide.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/toolset_guide.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,843 @@
+# translation of toolset_guide.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: toolset_guide\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-15 13:22+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr "Manual del conjunto de herramientas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
+"plugins, commandline tools, and Ant tasks."
+msgstr ""
+"La ingenierÃa compatible con Hibernate es posible utilizando un conjunto de "
+"plugins de Eclipse, herramientas de la lÃnea de comandos asà como tareas Ant."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Hibernate Tools</emphasis> currently include plugins for the "
+"Eclipse IDE as well as Ant tasks for reverse engineering of existing "
+"databases:"
+msgstr ""
+"Las <emphasis>herramientas de Hibernate</emphasis> actualmente incluyen "
+"plugins la IDE de Eclipse asà como tareas Ant para la ingenierÃa inversa de "
+"bases de datos existentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
+"files that supports auto-completion and syntax highlighting. It also "
+"supports semantic auto-completion for class names and property/field names, "
+"making it more versatile than a normal XML editor."
+msgstr ""
+"<emphasis>Editor de Mapeo:</emphasis> Un editor de archivos de mapeo XML que "
+"soporta autocompleción y resaltado de sintáxis. También soporta la "
+"autocompleción semántica de nombres de clases y nombres de campos/"
+"propiedades, haciéndolo mucho más versátil que un editor normal de XML."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
+"addition to a tree overview of your console configurations, you are also "
+"provided with an interactive view of your persistent classes and their "
+"relationships. The console allows you to execute HQL queries against your "
+"database and browse the result directly in Eclipse."
+msgstr ""
+"<emphasis>Consola:</emphasis> La consola es una nueva vista en Eclipse. "
+"Además de la vista de árbol de sus configuraciones de la consola, también "
+"tiene una vista interactiva de sus clases persistentes y sus relaciones. La "
+"consola le permite ejecutar consultas HQL en su base de datos y navegar el "
+"resultado directamente en Eclipse."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Development Wizards:</emphasis> several wizards are provided with "
+"the Hibernate Eclipse tools. You can use a wizard to quickly generate "
+"Hibernate configuration (cfg.xml) files, or to reverse engineer an existing "
+"database schema into POJO source files and Hibernate mapping files. The "
+"reverse engineering wizard supports customizable templates."
+msgstr ""
+"<emphasis>Asistentes de desarrollo:</emphasis> Se proporcionan muchos "
+"asistentes junto con las herramientas Eclipse de Hibernate. Puede utilizar "
+"un asistente para generar rápidamente los archivos de configuración de "
+"Hibernate (cfg.xml), o incluso puede realizar una ingenierÃa inversa "
+"completa de un esquema de la base de datos existente en los archivos de "
+"código fuente de POJO y los archivos de mapeo de Hibernate. El asistente de "
+"ingenierÃa inversa soporta plantillas personalizables."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
+"documentation for more information."
+msgstr ""
+"Por favor refiérase al paquete de documentación de las "
+"<emphasis>Herramientas de Hibernate</emphasis> para obtener más información."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"However, the Hibernate main package comes bundled with an integrated tool : "
+"<emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even "
+"be used from \"inside\" Hibernate."
+msgstr ""
+"Sin embargo, el paquete principal de Hibernate viene con una herramienta "
+"integrada: <emphasis>SchemaExport</emphasis> también conocida como "
+"<literal>hbm2ddl</literal>. Incluso se puede utilizar \"dentro\" de "
+"Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr "Generación automática de esquemas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"DDL can be generated from your mapping files by a Hibernate utility. The "
+"generated schema includes referential integrity constraints, primary and "
+"foreign keys, for entity and collection tables. Tables and sequences are "
+"also created for mapped identifier generators."
+msgstr ""
+"Una de las funciones de Hibernate puede generar DDL desde sus archivos de "
+"mapeo. El esquema generado incluye restricciones de integridad referencial, "
+"claves principales y foráneas, para las tablas de entidades y colecciones. "
+"También se creen tablas y secuencias para los generadores de identificadores "
+"mapeados."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via "
+"the <literal>hibernate.dialect</literal> property when using this tool, as "
+"DDL is highly vendor-specific."
+msgstr ""
+"<emphasis>Tiene</emphasis> que especificar un <literal>Dialecto</literal> "
+"SQL por medio de la propiedad <literal>hibernate.dialect</literal> al usar "
+"esta herramienta, ya que el DDL es altamente especÃfico de acuerdo con el "
+"vendedor."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must customize your mapping files to improve the generated "
+"schema. The next section covers schema customization."
+msgstr ""
+"Primero, debe personazar sus archivos de mapeo para mejorar el esquema "
+"generado. La siguiente sección aborda la personalización del esquema. "
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing the schema"
+msgstr "Personalización del esquema"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many Hibernate mapping elements define optional attributes named "
+"<literal>length</literal>, <literal>precision</literal> and <literal>scale</"
+"literal>. You can set the length, precision and scale of a column with this "
+"attribute."
+msgstr ""
+"Muchos elementos de mapeo de Hibernate definen atributos opcionales "
+"denominados <literal>length</literal>, <literal>precision</literal> y "
+"<literal>scale</literal>. Con estos atributos puede establecer el tamaño, la "
+"precisión y la escala de una columna."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Some tags also accept a <literal>not-null</literal> attribute for generating "
+"a <literal>NOT NULL</literal> constraint on table columns, and a "
+"<literal>unique</literal> attribute for generating <literal>UNIQUE</literal> "
+"constraint on table columns."
+msgstr ""
+"Algunas etiquetas también aceptan un atributo <literal>not-null</literal> "
+"para generar una restricción <literal>NOT NULL</literal> en columnas de "
+"tablas y un atributo <literal>unique</literal> para generar restricciones "
+"<literal>UNIQUE</literal> en columnas de tablas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>unique-key</literal> attribute can be used to group columns in a "
+"single, unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL. It is only used to group the "
+"columns in the mapping file."
+msgstr ""
+"Se puede usar un atributo <literal>unique-key</literal> para agrupar "
+"columnas en una restricción de clave única. Actualmente, el valor "
+"especificado del atributo <literal>unique-key</literal><emphasis>no</"
+"emphasis> se utiliza para nombrar la restricción en el DDL generado. "
+"Sólamente se utiliza para agrupar las columnas en el archivo de mapeo."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns can be "
+"grouped into the same index by simply specifying the same index name."
+msgstr ""
+"Un atributo <literal>index</literal> especifica el nombre de un Ãndice que "
+"se creará utilizando la columa o las columnas mapeadas. Se pueden ser "
+"agrupar múltiples columnas bajo el mismo Ãndice, simplemente especificando "
+"el mismo nombre de Ãndice. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>foreign-key</literal> attribute can be used to override the name "
+"of any generated foreign key constraint."
+msgstr ""
+"Un atributo <literal>foreign-key</literal> se puede utilizar para "
+"sobreescribir el nombre de cualquier restricción de clave foránea generada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many mapping elements also accept a child <literal><column></literal> "
+"element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+"Muchos elementos de mapeo también aceptan un elemento <literal><column>"
+"</literal> hijo. Esto es particularmente útil para mapear tipos de multi-"
+"columna:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>default</literal> attribute allows you to specify a default "
+"value for a column.You should assign the same value to the mapped property "
+"before saving a new instance of the mapped class."
+msgstr ""
+"El atributo <literal>default</literal> le permite especificar un valor por "
+"defecto para una columna. Usted le debe asignar el mismo valor a la "
+"propiedad mapeada antes de guardar una nueva instancia de la clase mapeada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>sql-type</literal> attribute allows the user to override the "
+"default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+"El atributo <literal>sql-type</literal> permite al usuario sobrescribir el "
+"mapeo por defecto de tipo Hibernate a tipo de datos SQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>check</literal> attribute allows you to specify a check "
+"constraint."
+msgstr ""
+"El atributo <literal>check</literal> le permite especificar una comprobación "
+"de restricción."
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr "La siguiente tabla resume estos atributos opcionales. "
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "Resumen"
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr "Atributo"
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr "Valores"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr "Interpretación"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>length</literal>"
+msgstr "<literal>length</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr "número"
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr "longitud de columna/precisión decimal"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "<literal>precision</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr "precisión decimal de columna"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "<literal>scale</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr "escala decimal de columna"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "<literal>not-null</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "<literal>true|false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr "especifica que la columna debe ser sin nulos"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "<literal>unique</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr "especifica que la columna debe tener una restricción de unicidad"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index</literal>"
+msgstr "<literal>index</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "<literal>index_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr "especifica el nombre de un Ãndice (multicolumna)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>unique-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "<literal>unique_key_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr "especifica el nombre de una restricción de unicidad multicolumna"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>foreign-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign_key_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"specifies the name of the foreign key constraint generated for an "
+"association, for a <literal><one-to-one></literal>, <literal><many-"
+"to-one></literal>, <literal><key></literal>, or <literal><many-"
+"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
+"literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+"especifica el nombre de la restricción de clave foránea generada por una "
+"asociación, para un elemento de mapeo <literal><one-to-one></literal>, "
+"<literal><many-to-one></literal>, <literal><key></literal>, o "
+"<literal><many-to-many></literal>. Observe que <literal>SchemaExport</"
+"literal> no considerará los lados <literal>inverse=\"true\"</literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>sql-type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr "<literal>tipo de columna SQL</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"overrides the default column type (attribute of <literal><column></"
+"literal> element only)"
+msgstr ""
+"sobrescribe el tipo de columna por defecto (sólamente el atributo del "
+"elemento <literal><column></literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>default</literal>"
+msgstr "<literal>default</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr "expresión SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr "especifica un valor predeterminado para la columna"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>check</literal>"
+msgstr "<literal>check</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr "crea una restricción de comprobación SQL en columna o tabla"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><comment></literal> element allows you to specify "
+"comments for the generated schema."
+msgstr ""
+"El elemento <literal><comment></literal> le permite especificar un "
+"comentario para el esquema generado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This results in a <literal>comment on table</literal> or <literal>comment on "
+"column</literal> statement in the generated DDL where supported."
+msgstr ""
+"Esto da como resultado una declaración <literal>comment on table</literal> o "
+"<literal>comment on column</literal> en el DDL generado, donde se encuentre "
+"soportado."
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr "Ejecución de la herramienta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
+"and/or executes the DDL statements."
+msgstr ""
+"La herramienta <literal>SchemaExport</literal> escribe un script DDL a la "
+"salida estándar y/o ejecuta las declaraciones DDL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaExport</literal> command "
+"line options"
+msgstr ""
+"La siguiente tabla presenta las opciones de la lÃnea de comandos de "
+"<literal>SchemaExport</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr "Opciones de LÃnea de Comandos de <literal>SchemaExport</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr "Opción"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "Descripción"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>--quiet</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not output the script to stdout"
+msgstr "no envie el script a la salida estándar"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "<literal>--drop</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr "sólamente desechar las tablas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "<literal>--create</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr "sólamente crear las tablas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "<literal>--text</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export to the database"
+msgstr "no exportar a la base de datos "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr "enviar la salida del script ddl a un archivo"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr "seleccione un <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr "lee la configuración de Hibernate de un archivo XML"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read database properties from a file"
+msgstr "lee las propiedades de base de datos de un archivo"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "<literal>--format</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr "formatea muy bien el SQL generado en el script"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>--delimiter=;</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr "establece un delimitador de fin de lÃnea para el script"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr "Inclusive puede incluir <literal>SchemaExport</literal> en su aplicación: "
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "Propiedades"
+
+#. Tag: para
+#, no-c-format
+msgid "Database properties can be specified:"
+msgstr "Las propiedades de la base de datos se pueden especificar:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"as system properties with <literal>-D</literal><emphasis><property></"
+"emphasis>"
+msgstr ""
+"como propiedades del sistema con <literal>-D</literal><emphasis><"
+"property></emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr "en <literal>hibernate.properties</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr "en un archivo de propiedades nombrado con <literal>--properties</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr "Las propiedades necesarias son las siguientes:"
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr "Propiedades de Conexión del SchemaExport"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr "Nombre de la Propiedad"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "<literal>hibernate.connection.driver_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr "clase del controlador jdbc"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.connection.url</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr "url de jdbc"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.connection.username</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr "usuario de la base de datos"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.connection.password</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr "contraseña del usuario"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr "dialecto"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr "Utilización de Ant"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr ""
+"Puede llamar a <literal>SchemaExport</literal> desde su script de "
+"construcción de Ant:"
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr "Actualizaciones incrementales de esquema"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaUpdate</literal> tool will update an existing schema with "
+"\"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon "
+"the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr ""
+"La herramienta <literal>SchemaUpdate</literal> actualizará un esquema "
+"existente con cambios \"incrementales\". El <literal>SchemaUpdate</literal> "
+"depende de la API de metadatos de JDBC, de modo que no funcionará con todos "
+"los controladores JDBC."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr "Opciones de LÃnea de Comandos de <literal>SchemaUpdate</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export the script to the database"
+msgstr "no exporte el script a la base de datos "
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr "specifique un archivo <literal>.cfg.xml</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr "Puede incluir <literal>SchemaUpdate</literal> en su aplicación: "
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr "Utilización de Ant para actualizaciones incrementales de esquema"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr "Puede llamar a <literal>SchemaUpdate</literal> desde el script de Ant:"
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr "Validación de Esquema"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaValidator</literal> tool will validate that the existing "
+"database schema \"matches\" your mapping documents. The "
+"<literal>SchemaValidator</literal> depends heavily upon the JDBC metadata "
+"API and, as such, will not work with all JDBC drivers. This tool is "
+"extremely useful for testing."
+msgstr ""
+"La herramienta <literal>SchemaValidator</literal> validará que el esquema de "
+"la base de datos existente \"coincide\" con sus documentos de mapeo. El "
+"<literal>SchemaValidator</literal> depene bastante de la API de metadatos "
+"JDBC asà que no funcionará con todos los controladores JDBC. Esta "
+"herramienta es extremadamente útil para comprobar."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr ""
+"La siguiente tabla presenta las opciones de la lÃnea de comandos para "
+"<literal>SchemaValidator</literal> "
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr "Opciones de la LÃnea de Comandos <literal>SchemaValidator</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr "Puede incluir <literal>SchemaValidator</literal> en su aplicación:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr "Utilización de Ant para la validación de esquema"
+
+#. Tag: para
+#, 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:"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/transactions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/transactions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/transactions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1874 @@
+# translation of transactions.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: transactions\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-15 13:11+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Transactions and Concurrency"
+msgstr "Transacciones y concurrencia"
+
+#. 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 ""
+"El punto más importante sobre Hibernate y el control de concurrencia es que "
+"es fácil de comprender. Hibernate usa directamente conexiones JDBC y "
+"recursos JTA sin agregar ningún comportamiento de bloqueo adicional. Le "
+"recomendamos bastante que tome algo de tiempo con la especificación de JDBC, "
+"ANSI y el aislamiento de transacciones de su sistema de gestión de base de "
+"datos. "
+
+#. 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 no bloquea objetos en la memoria. Su aplicación puede esperar el "
+"comportamiento definido por el nivel de aislamiento de sus transacciones de "
+"las bases de datos. Gracias a la <literal>Session</literal>, la cual también "
+"es un caché con alcance de transacción, Hibernate proporciona lecturas "
+"repetidas para búsquedas del identificador y consultas de entidad y no "
+"consultas de reporte que retornan valores escalares."
+
+#. 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 ""
+"Además del versionado del control de concurrencia optimista automático, "
+"Hibernate también ofrece una API (menor) para bloqueo pesimista de filas, "
+"usando la sintáxis <literal>SELECT FOR UPDATE</literal>. Esta API y el "
+"control de concurrencia optimista se discuten más adelante en este capÃtulo."
+
+#. 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 ""
+"Comenzamos la discusión del control de concurrencia en Hibernate con la "
+"granularidad de <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal> y <literal>Session</literal>, asà como las transacciones de la base "
+"de datos y las conversaciones largas."
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr "Ãmbitos de sesión y de transacción"
+
+#. 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 ""
+"Una <literal>SessionFactory</literal> es un objeto seguro entre hilos y "
+"costoso de crear pensado para que todas las hebras de la aplicación lo "
+"compartan. Se crea una sola vez, usualmente en el inicio de la aplicación, a "
+"partir de una instancia <literal>Configuration</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 ""
+"Una <literal>Session</literal> es un objeto de bajo costo, inseguro entre "
+"hilos que se debe utilizar una sola vez y luego se debe descartar: para un "
+"sólo pedido, una sola conversación o una sóla unidad de trabajo. Una "
+"<literal>Session</literal> no obtendrá una <literal>Connection</literal> "
+"JDBC o un <literal>Datasource</literal> a menos de que sea necesario. No "
+"consumirá recursos hasta que se utilice."
+
+#. 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 ""
+"Una transacción de la base de datos tiene que ser tan corta como sea posible "
+"para reducir la contención de bloqueos en la base de datos. Las "
+"transacciones largas de la base de datos prevendrán a su aplicación de "
+"escalar a una carga altamente concurrente. Por lo tanto, no se recomienda "
+"que mantenga una transacción de la base de datos abierta durante el tiempo "
+"para pensar del usuario, hasta que la unidad de trabajo se encuentre "
+"completa."
+
+#. 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 ""
+"¿Cuál es el ámbito de una unidad de trabajo? ¿Puede una sola "
+"<literal>Session</literal> de Hibernate extenderse a través de varias "
+"transacciones de la base de datos o ésta es una relación uno-a-uno de "
+"ámbitos? ¿Cuándo debe abrir y cerrar una <literal>Session</literal>? y ¿cómo "
+"demarca los lÃmites de la transacción de la base de datos? En las siguientes "
+"secciones abordaremos estas preguntas. "
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+msgstr "Unidad de trabajo"
+
+#. 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 ""
+"Primero, vamos a definir una unidad de trabajo. Una unidad de trabajo es un "
+"patrón de diseño que Martin Fowler describe como <quote> [mantener] una "
+"lista de objetos afectados por una transacción empresarial y coordina la "
+"escritura de los cambios y la resolución de problemas de concurrencia. </"
+"quote><citation>PoEAA</citation> En otras palabras, es una serie de "
+"operaciones que deseamos llevar a cabo frente a la base de datos. "
+"Básicamente es una transacción, aunque el llevar a cabo una unidad de "
+"trabajo con frecuencia abarca múltiples transacciones de la base de datos "
+"fÃsica (consulte <xref linkend=\"transactions-basics-apptx\"/>). Asà que "
+"realmente estamos hablando sobre una noción más abstracta de una "
+"transacción. El término \"transacción empresarial\" también se utiliza a "
+"veces en lugar de unidad de trabajo. "
+
+#. 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 ""
+"Primero, no use el antipatrón <emphasis>sesión-por-operación</emphasis>: no "
+"abra y cierre una <literal>Session</literal> para cada llamada simple a la "
+"base de datos en un solo hilo. Lo mismo aplica para las transacciones de "
+"base de datos. Las llamadas a la base de datos en una aplicación se hacen "
+"usando una secuencia planeada; estas se agrupan dentro de unidades de "
+"trabajo atómicas. Esto también significa que el auto-commit después de cada "
+"una de las declaraciones SQL es inútil en una aplicación ya que este modo "
+"está pensado para trabajo ad-hoc de consola SQL. Hibernate deshabilita, o "
+"espera que el servidor de aplicaciones lo haga, el modo auto-commit "
+"inmediatamente. Las transacciones de las bases de datos nunca son "
+"opcionales. Toda comunicación con una base de datos tiene que ocurrir dentro "
+"de una transacción. El comportamiento auto-commit para leer datos se debe "
+"evitar, ya que hay muy poca probabilidad de que las transacciones pequeñas "
+"funcionen mejor que una unidad de trabajo definida claramente. La última es "
+"mucho más sostenible y extensible."
+
+#. 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 ""
+"El patrón más común en una aplicación multiusuario cliente/servidor es "
+"<emphasis>sesión-por-petición</emphasis>. En este modelo, una petición del "
+"cliente se envia al servidor, en donde se ejecuta la capa de persistencia de "
+"Hibernate. Se abre una nueva <literal>Session</literal> de Hibernate y todas "
+"las operaciones de la base de datos se ejecutan en esta unidad de trabajo. "
+"Una vez completado el trabajo, y una vez se ha preparado la respuesta para "
+"el cliente, se limpia la sesión y se cierra. Use una sóla transacción de la "
+"base de datos para servir la petición del cliente, dándole inicio y "
+"guardándola cuando abre y cierra la <literal>Session</literal>. La relación "
+"entre las dos es uno-a-uno y este modelo es a la medida perfecta de muchas "
+"aplicaciones."
+
+#. 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 ""
+"El reto se encuentra en la implementación. Hibernate brinda administración "
+"incorporada de la \"sesión actual\" para simplificar este patrón. Inicie una "
+"transacción cuando se tiene que procesar un pedido del servidor y termine la "
+"transacción antes de que se envie la respuesta al cliente. Las soluciones "
+"más comunes son <literal>ServletFilter</literal>, un interceptor AOP con un "
+"punto de corte en los métodos del servicio o un contenedor proxy/"
+"intercepción. Un contenedor EJB es una manera estandarizada de implementar "
+"aspectos de doble filo como demarcación de transacción en beans de sesión "
+"EJB, declarativamente con CMT. Si decide utilizar la demarcación de "
+"transacción programática, use el API <literal>Transaction</literal> de "
+"Hibernate de fácil uso y portable que se muestra más adelante en este "
+"capÃtulo."
+
+#. 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 ""
+"Su código de aplicación puede acceder a una \"sesión actual\" para procesar "
+"el pedido llamando a <literal>sessionFactory.getCurrentSession()</literal>. Siempre obtendrá una <literal>Session</literal> con ámbito a la transacción "
+"de la base de datos actual. Esto tiene que ser configurado para entornos JTA "
+"o recursos-locales, consulte <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 ""
+"Puede extender el ámbito de una <literal>Session</literal> y transacción de "
+"la base de datos hasta que \"se ha presentado la vista\". Esto es bastante "
+"útil en aplicaciones de servlet que utilizan una fase de entrega separada "
+"después de que se ha procesado el pedido. El extender la transacción de la "
+"base de datos hasta que la entrega de la vista se encuentre completa es "
+"fácil de lograr si implementa su propio interceptor. Sin embargo, no se "
+"logra fácilmente si depende de EJBs con transacciones administradas por el "
+"contenedor. Una transacción se completará cuando un método EJB retorna, "
+"antes de que pueda empezar la entrega de cualquier vista. Vea el sitio web "
+"de Hibernate y el foro para encontrar consejos y ejemplos sobre este patrón "
+"de <emphasis>sesión abierta en vista</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr "Conversaciones largas"
+
+#. 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 ""
+"El patrón sesión-por-petición no es la única forma de diseñar unidades de "
+"trabajo. Muchos procesos empresariales requieren una serie completa de "
+"interacciones con el usuario intercaladas con accesos a la base de datos. En "
+"aplicaciones empresariales y web no es aceptable que una transacción de la "
+"base de datos abarque la interacción de un usuario. Considere el siguiente "
+"ejemplo:"
+
+#. 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 ""
+"Se abre la primera pantalla de un diálogo. Los datos que ve el usuario han "
+"sido cargados en una <literal>Session</literal> en particular y en una "
+"transacción de la base de datos. El usuario es libre de modificar los "
+"objetos."
+
+#. 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 ""
+"El usuario hace click en \"Guardar\" después de 5 minutos y espera que sus "
+"modificaciones se hagan persistentes. También espera que él sea la única "
+"persona editando esta información y que no ocurra ningún conflicto en la "
+"modificación."
+
+#. 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 ""
+"Desde el punto de vista del usuario, llamamos a esta unidad de trabajo, una "
+"larga <emphasis>conversación</emphasis> o <emphasis>transacción de "
+"aplicación</emphasis>. Hay muchas formas de implementar esto en su "
+"aplicación."
+
+#. 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 ""
+"Una primera implementación ingenua podrÃa mantener abierta la "
+"<literal>Session</literal> y la transacción de la base de datos durante el "
+"tiempo para pensar del usuario, con bloqueos en la base de datos para "
+"prevenir la modificación simultánea y para garantizar el aislamiento y la "
+"atomicidad. Esto es un antipatrón, ya que la contención de bloqueo no "
+"permitirÃa a la aplicación escalar con el número de usuarios simultáneos."
+
+#. 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 ""
+"Tiene que usar varias transacciones de la base de datos para implementar la "
+"conversación. En este caso, mantener el aislamiento de los procesos "
+"empresariales se vuelve una responsabilidad parcial de la capa de la "
+"aplicación. Una sóla conversación usualmente abarca varias transacciones de "
+"la base de datos. Será atómica si sólo una de estas transacciones de la base "
+"de datos (la última) almacena los datos actualizados. Todas las otras "
+"simplemente leen datos (por ejemplo, en un diálogo de estilo-asistente "
+"abarcando muchos ciclos petición/respuesta). Esto es más fácil de "
+"implementar de lo que suena, especialmente si usa las funcionalidades de "
+"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>Versionado automático</emphasis> - Hibernate puede realizar un "
+"control automático de concurrencia optimista por usted .Puede detectar "
+"automáticamente si ha ocurrido una modificación simultánea durante el tiempo "
+"para pensar del usuario. Chequee esto al final de la conversación. "
+
+#. 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>Objetos separados</emphasis>: Si decide usar el patrón "
+"<emphasis>sesión-por-petición</emphasis>, todas las instancias cargadas "
+"estarán en estado separado durante el tiempo para pensar del usuario. "
+"Hibernate le permite volver a unir los objetos y hacer persistentes las "
+"modificaciones. El patrón se llama <emphasis>sesión-por-petición-con-objetos-"
+"separados</emphasis>. Se usa el versionado automático para aislar las "
+"modificaciones simultáneas."
+
+#. 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>Sesión extendida (o larga) </emphasis> - La <literal>Session</"
+"literal> de Hibernate puede ser desconectada de la conexión JDBC subyacente "
+"después de que haya guardado la transacción de la base de datos y haya "
+"reconectado cuando ocurra una nueva petición del cliente. Este patrón se "
+"conoce como <emphasis>sesión-por-conversación</emphasis> y hace la re-unión "
+"innecesaria. Para aislar las modificaciones simultáneas se usa el versionado "
+"automático y usualmente no se permite que se limpie la <literal>Session</"
+"literal> automáticamente sino explÃcitamente."
+
+#. 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 ""
+"Tanto la <emphasis>sesión-por-petición-con-objetos-separados</emphasis> como "
+"la <emphasis>sesión-por-conversación</emphasis> tienen ventajas y "
+"desventajas. Estas desventajas las discutimos más adelante en este capÃtulo "
+"en el contexto del control optimista de concurrencia."
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr "Consideración de la identidad del objeto"
+
+#. 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 ""
+"Una aplicación puede acceder simultáneamente al mismo estado persistente en "
+"dos <literal>Session</literal>es diferentes. Sin embargo, una instancia de "
+"una clase persistente nunca se comparte entre dos instancias de "
+"<literal>Session</literal>. Por lo tanto, existen dos nociones diferentes de "
+"identidad: "
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr "Identidad de Base de Datos"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr "Identidad JVM"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr "<literal>foo==bar</literal>"
+
+#. 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 ""
+"Para los bjetos unidos a una <literal>Session</literal><emphasis> en "
+"particular</emphasis> (por ejemplo, en el ámbito de una <literal>Session</"
+"literal>) las dos nociones son equivalentes y la identidad de la MVJ para la "
+"identidad de la base de datos se encuentra garantizada por Hibernate. "
+"Mientras la aplicación acceda simultáneamente al \"mismo\" objeto "
+"empresarial (identidad persistente) en dos sesiones diferentes, las dos "
+"instancias serán realmente \"diferentes\" (identidad MVJ). Los conflictos se "
+"resuelven usando un enfoque optimista y el versionado automático en tiempo "
+"de vaciado/ al guardar."
+
+#. 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 ""
+"Este enfoque deja que Hibernate y la base de datos se preocupen de la "
+"concurrencia. Además provee la mejor escalabilidad, ya que garantizando la "
+"identidad en unidades de trabajo monohilo no se necesitan bloqueos caros u "
+"otros medios de sincronización. La aplicación no necesita sincronizar sobre "
+"ningún objeto empresarial, siempre que se mantenga un solo hilo por "
+"<literal>Session</literal>. Dentro de una <literal>Session</literal> la "
+"aplicación puede usar con seguridad <literal>==</literal> para comparar "
+"objetos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"<literal>Session</literal> might produce unexpected results. This might "
+"occur even in some unexpected places. For example, if you put two detached "
+"instances into the same <literal>Set</literal>, both might have the same "
+"database identity (i.e., they represent the same row). JVM identity, "
+"however, is by definition not guaranteed for instances in a detached state. "
+"The developer has to override the <literal>equals()</literal> and "
+"<literal>hashCode()</literal> methods in persistent classes and implement "
+"their own notion of object equality. There is one caveat: never use the "
+"database identifier to implement equality. Use a business key that is a "
+"combination of unique, usually immutable, attributes. The database "
+"identifier will change if a transient object is made persistent. If the "
+"transient instance (usually together with detached instances) is held in a "
+"<literal>Set</literal>, changing the hashcode breaks the contract of the "
+"<literal>Set</literal>. Attributes for business keys do not have to be as "
+"stable as database primary keys; you only have to guarantee stability as "
+"long as the objects are in the same <literal>Set</literal>. See the "
+"Hibernate website for a more thorough discussion of this issue. Please note "
+"that this is not a Hibernate issue, but simply how Java object identity and "
+"equality has to be implemented."
+msgstr ""
+"Sin embargo, una aplicación que usa <literal>==</literal> fuera de una "
+"<literal>Session</literal>, podrÃa ver resultados inesperados. Esto podrÃa "
+"ocurrir incluso en sitios algo inesperados. Por ejemplo, si pone dos "
+"instancias separadas dentro del mismo <literal>Set</literal> ambas podrÃan "
+"tener la misma identidad de la base de datos (por ejemplo, representar la "
+"misma fila). Sin embargo, la identidad MVJ, por definición, no está "
+"garantizada para las instancias en estado separado. El desarrollador tiene "
+"que sobrescribir los métodos <literal>equals()</literal> y <literal>hashCode"
+"()</literal> en las clases persistentes e implementar su propia noción de "
+"igualdad de objetos. Hay una advertencia: nunca use el identificador de la "
+"base de datos para implementar la igualdad. Use una clave de negocio, una "
+"combinación de atributos únicos, usualmente inmutables. El identificador de "
+"la base de datos cambiará si un objeto transitorio es hecho persistente. Si "
+"la instancia transitoria (usualmente junto a las instancias separadas) es "
+"mantenida en un <literal>Set</literal>, cambiar el código hash rompe el "
+"contrato del <literal>Set</literal>. Los atributos para las claves "
+"empresariales no tienen que ser tan estables como las claves principales de "
+"la base de datos, sólo tiene que garantizar estabilidad en tanto los objetos "
+"estén en el mismo <literal>Set</literal>. Mire el sitio web de Hibernate "
+"para obetener una discusión más profunda de este tema. Note también que éste "
+"no es problema de Hibernate, sino que simplemente se tiene que implementar "
+"la identidad y la igualdad de los objetos Java."
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr "Temas comúnes"
+
+#. 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 ""
+"No use los antipatrones <emphasis>sesión-por-sesión-de-usuario</emphasis> o "
+"<emphasis>sesión-por-aplicación</emphasis> (hay excepciones raras a esta "
+"regla). Algunos de los siguientes temas también podrÃan aparecer con los "
+"patrones recomendados asà que asegúrese de que entiende las implicaciones "
+"antes de tomar una decisión de diseño:"
+
+#. 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 ""
+"Una <literal>Session</literal> no es segura entre hilos. Las cosas que "
+"funcionan de manera simultánea, como las peticiones HTTP, beans de sesión, o "
+"workers de Swing, provocarán condiciones de competencia si una instancia de "
+"<literal>Session</literal> se comparte. Si guarda su <literal>Session</"
+"literal> de Hibernate en su <literal>HttpSession</literal> (se discute más "
+"adelante), debe considerar el sincronizar el acceso a su sesión HTTP. De "
+"otro modo, un usuario que hace click lo suficientemente rápido puede llegar "
+"a usar la misma <literal>Session</literal> en dos hilos ejecutándose "
+"simultáneamente."
+
+#. 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 ""
+"Una excepción lanzada por Hibernate significa que tiene que deshacer su "
+"transacción de la base de datos y cerrar la <literal>Session</literal> "
+"inmediatamente (se discute en más detalle más adelante en este capÃtulo). Si "
+"su <literal>Session</literal> está vinculada a la aplicación, tiene que "
+"parar la aplicación. Deshacer la transacción de la base de datos no pone a "
+"sus objetos de vuelta al estado en que estaban al comienzo de la "
+"transacción. Esto significa que el estado de la base de datos y los objetos "
+"empreariales quedan fuera de sincronÃa. Usualmente esto no es un problema, "
+"pues las excepciones no son recuperables y tendrá que volver a comenzar "
+"después de deshacer de todos modos."
+
+#. 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 ""
+"La <literal>Session</literal> pone en caché todo objeto que esté en estado "
+"persistente (Hibernate vigila y chequea para identificar estados "
+"desactualizados). Si la mantiene abierta por un largo tiempo o simplemente "
+"carga demasiados datos crece sin fin hasta que obtiene una "
+"OutOfMemoryException. Una solución para esto es llamar a <literal>clear()</"
+"literal> y <literal>evict()</literal> para gestionar el caché de la "
+"<literal>Session</literal>, pero probablemente deba considerar un "
+"procedimiento almacenado si necesita operaciones de datos masivs. Se pueden "
+"ver algunas soluciones en <xref linkend=\"batch\"/>. Mantener una "
+"<literal>Session</literal> abierta durante una sesión de usuario también "
+"significa una alta probabilidad de datos desactualizados. "
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr "Demarcación de la transacción de la base de datos"
+
+#. 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 ""
+"Los lÃmites de las transacciones de la base de datos o el sistema son "
+"siempre necesarios. Ninguna comunicación con la base de datos puede darse "
+"fuera de una transacción de la base de datos (esto parece confundir a muchos "
+"desarrolladores acostumbrados al modo auto-commit). Siempre use lÃmites de "
+"transacción claros, incluso para las operaciones de sólo lectura. "
+"Dependiendo del nivel de aislamiento y las capacidades de la base de datos, "
+"esto podrÃa requerirse o no, pero no hay inconvenientes si siempre demarca "
+"explÃcitamente las transacciones. Con seguridad, una transacción única de "
+"base de datos va a funcionar mejor que muchas transacciones pequeñas, "
+"inclusive para leer datos."
+
+#. 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 ""
+"Una aplicación Hibernate puede ejecutarse en entornos no administrados (por "
+"ejemplo, aplicaciones simples Web o Swing autónomas) y entornos "
+"administrados por J2EE. En un entorno no administrado, Hibernate es "
+"usualmente responsable de su propio pool de conexiones de la base de datos. "
+"El desarrollador de aplicaciones tiene que establecer manualmente los "
+"lÃmites de transacción (inicar, guardar o deshacer las transacciones de la "
+"base de datos) por sà mismo. Un entorno administrado usualmente proporciona "
+"transacciones gestionadas por contenedor, con el ensamble de transacción "
+"definido declarativamente (por ejemplo, en descriptores de despliegue de "
+"beans de sesión EJB). La demarcación programática de transacciones ya no es "
+"necesaria."
+
+#. 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 ""
+"Sin embargo, comúnmente se quiere mantener su capa de persistencia portátil "
+"entre entornos locales- de recursos no-administrados y sistemas que pueden "
+"confiar en JTA, pero utilizar BMT en vez de CMT. En ambos casos utilizarÃa "
+"la demarcación de transacción programática. Hibernate ofrece una API de "
+"envoltura llamada <literal>Transaction</literal> que se traduce al sistema "
+"de transacciones nativo de su entorno de despliegue. Esta API es de hecho "
+"opcional, pero le recomendamos bastante su uso salvo que esté en un bean de "
+"sesión CMT. "
+
+#. Tag: para
+#, no-c-format
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr ""
+"Usualmente, el finalizar una <literal>Session</literal> implica cuatro fases "
+"distintas:"
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr "limpiar la sesión"
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr "someter la transacción"
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr "cerrar la sesión"
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr "manejar excepciones"
+
+#. 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 ""
+"Anteriormente se discutió el vacido de la sesión asà que ahora vamos a mirar "
+"más de cerca la demarcación de transacciones y el manejo de excepciones en "
+"los dos entornos administrado y no administrado."
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr "Entorno no administrado"
+
+#. 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 ""
+"Si una capa de persistencia Hibernate se ejecuta en un entorno no "
+"administrado, las conexiones de la base de datos se manejan usualmente por "
+"simples pools de conexión (por ejemplo, no-DataSource) del cual Hibernate "
+"obtiene conexiones al ser necesario. El idioma de manejo de sesión/"
+"transacción se ve asÃ:"
+
+#. 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 <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> for the session. A call to <literal>close()</literal> "
+"marks the end of a session. The main implication of <literal>close()</"
+"literal> is that the JDBC connection will be relinquished by the session. "
+"This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+"No tiene que vaciar con <literal>flush()</literal> la <literal>Session</"
+"literal> explÃcitamente: la llamada a <literal>commit()</literal> "
+"automáticamente dispara la sincronización dependiendo del <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> para la sesión. Una llamada a <literal>close()</"
+"literal> marca el final de una sesión. La implicación principal de "
+"<literal>close()</literal> es que la conexión JDBC será abandonada por la "
+"sesión. Este código Java es portátil y ejecuta en entornos tanto no-"
+"administrados como 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 ""
+"Como se mencionó anteriormente, una solución mucho más flexible es la "
+"administración de contexto \"sesión actual\" incorporada en Hibernate:"
+
+#. 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 ""
+"No verá estos pedazos de código en una aplicación normal; las excepciones "
+"fatales (del sistema) siempre deben ser capturadas en la \"cima\". En otras "
+"palabras, el código que ejecuta las llamadas de Hibernate en la capa de "
+"persistencia y el código que maneja <literal>RuntimeException</literal> (y "
+"usualmente sólo puede limpiar y salir) se encuentran en capas diferentes. La "
+"administración de contexto actual de Hibernate puede simplificar de manera "
+"importante este diseño, ya que todo lo que necesita hacer es acceder a "
+"<literal>SessionFactory</literal>. El manejo de excepciones se discute más "
+"adelante en este capÃtulo."
+
+#. 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 ""
+"Debe seleccionar <literal>org.hibernate.transaction.JDBCTransactionFactory</"
+"literal>, el cual es el predeterminado, y para el segundo ejemplo "
+"seleccionar <literal>\"thread\"</literal> como su <literal>hibernate."
+"current_session_context_class</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr "Utilización de JTA"
+
+#. 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 ""
+"Si su capa de persistencia se ejecuta en un servidor de aplicaciones (por "
+"ejemplo, detrás de los beans de sesión EJB), cada conexión de fuente de "
+"datos obtenida por Hibernate será parte de la transacción JTA global de "
+"manera automática. También puede instalar una implementación JTA autónoma y "
+"utilizarla sin EJB. Hibernate ofrece dos estrategias para esta integración "
+"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 ""
+"Si usa transacciones gestionadas-por-bean (BMT) Hibernate le dirá al "
+"servidor de aplicaciones que comience y finalice una transacción BMT si usa "
+"la API de <literal>Transaction</literal>. De modo que, el código de gestión "
+"de la transacción es idéntico al de un entorno no administrado. "
+
+#. 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 ""
+"Si quiere utilizar un vÃnculo de transacción <literal>Session</literal>, es "
+"decir, la funcionalidad <literal>getCurrentSession()</literal> para "
+"propagación de contexto de manera fácil, tendrá que utilizar el API "
+"<literal>UserTransaction</literal> del JTA directamente: "
+
+#. 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 ""
+"Con CMT, la demarcación de transacción se realiza en los descriptores de "
+"implementacion bean de sesión, no programáticamente. Por lo tanto el código "
+"se reduce a:"
+
+#. 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 ""
+"En un CMT/EJB incluso el deshacer sucede de forma automática. Un "
+"<literal>RuntimeException</literal> lanzado por un método bean de sesión le "
+"dice al contenedor que establezca una transacción global para deshacer. "
+"<emphasis>No necesita utilizar el API <literal>Transaction</literal> de "
+"Hibernate con BMT o CMT y obtiene la propagación automática de sesión\"actual"
+"\" vinculada a la transacción.</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 ""
+"Al configurar la fábrica de transacciones de Hibernate, escoja <literal>org."
+"hibernate.transaction.JTATransactionFactory</literal> si utiliza JTA "
+"directamente (BMT) y <literal>org.hibernate.transaction."
+"CMTTransactionFactory</literal> en una bean de sesión CMT. Recuerde "
+"establecer también <literal>hibernate.transaction.manager_lookup_class</"
+"literal>. Asegúrese de que su <literal>hibernate."
+"current_session_context_class</literal> no se encuentra configurado "
+"(compatibilidad retrasada) o configurada como <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 ""
+"La operación <literal>getCurrentSession()</literal> tiene un inconveniente "
+"en un entorno JTA. Hay una desventaja en el uso del modo de liberación de la "
+"conección <literal>after_statement</literal>, la cual luego se utiliza por "
+"defecto. Debido a una limitación de la especificación JTA, no le es posible "
+"a Hibernate limpiar automáticamente cualquier instancia "
+"<literal>ScrollableResults</literal> o <literal>Iterator</literal> no "
+"cerradas y retornadas por <literal>scroll()</literal> o <literal>iterate()</"
+"literal>. <emphasis>Tiene</emphasis> que liberar el cursor de la base de "
+"datos subyacente llamando a <literal>ScrollableResults.close()</literal> o "
+"<literal>Hibernate.close(Iterator)</literal> explÃcitamente desde un bloque "
+"<literal>finally</literal>. La mayorÃa de las aplicaciones pueden evitar "
+"fácilmente el utilizar <literal>scroll()</literal> o <literal>iterate()</"
+"literal> del código JTA o CMT."
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr "Manejo de excepciones"
+
+#. 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 ""
+"Si la <literal>Session</literal> lanza una excepción, incluyendo cualquier "
+"<literal>SQLException</literal>, debe deshacer inmediatamente la transacción "
+"de la base de datos, llamar a <literal>Session.close()</literal> y descartar "
+"la instancia de <literal>Session</literal>. Ciertos métodos de "
+"<literal>Session</literal> <emphasis>no</emphasis> dejarán la sesión en un "
+"estado consistente. Ninguna excepción lanzada por Hibernate puede ser "
+"tratada como recuperable. Asegúrese de que la <literal>Session</literal> se "
+"cierre llamando a <literal>close()</literal> en un bloque <literal>finally</"
+"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 ""
+"La <literal>HibernateException</literal>, que envuelve a la mayorÃa de los "
+"errores que pueden ocurrir en la capa de persistencia de Hibernate, es una "
+"excepción no chequeada. No lo era en versiones anteriores de Hibernate. En "
+"nuestra opinión, no debemos forzar al desarrollador de aplicaciones a "
+"capturar una excepción irrecuperable en una capa baja. En la mayorÃa de los "
+"sistemas, las excepciones no chequeadas y fatales son manejadas en uno de "
+"los primeros cuadros de la pila de llamadas a métodos (por ejemplo, en las "
+"capas más altas) y presenta un mensaje de error al usuario de la aplicación "
+"o se toma alguna otra acción apropiada. Note que Hibernate podrÃa también "
+"lanzar otras excepciones no chequeadas que no sean una "
+"<literal>HibernateException</literal>. Estas no son recuperables y debe "
+"tomarse una acción apropiada."
+
+#. 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 envuelve <literal>SQLException</literal>s lanzadas mientras se "
+"interactúa con la base de datos en una <literal>JDBCException</literal>. De "
+"hecho, Hibernate intentará convertir la excepción en una subclase de "
+"<literal>JDBCException</literal> más significativa. La "
+"<literal>SQLException</literal> subyacente siempre está disponible por medio "
+"de <literal>JDBCException.getCause()</literal>. Hibernate convierte la "
+"<literal>SQLException</literal> en una subclase de <literal>JDBCException</"
+"literal> apropiada usando el <literal>SQLExceptionConverter</literal> "
+"adjunto a la <literal>SessionFactory</literal>. Por defecto, el "
+"<literal>SQLExceptionConverter</literal> está definido por el dialecto "
+"configurado. Sin embargo, también es posible enchufar una implementación "
+"personalizada . Consulte los javadocs de la clase "
+"<literal>SQLExceptionConverterFactory</literal> para obtener más detalles. "
+"Los subtipos estándar de <literal>JDBCException</literal> son: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>JDBCConnectionException</literal>: indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+"<literal>JDBCConnectionException</literal>: indica un error con la "
+"comunicación JDBC subyacente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+"<literal>SQLGrammarException</literal>: indica un problema de gramática o "
+"sintáxis con el SQL publicado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>ConstraintViolationException</literal>: indicates some form of "
+"integrity constraint violation."
+msgstr ""
+"<literal>ConstraintViolationException</literal>: indica alguna forma de "
+"violación de restricción de integridad."
+
+#. 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>: indica un error adquiriendo un "
+"nivel de bloqueo necesario para realizar una operación solicitada."
+
+#. 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>: una excepción genérica que no "
+"encajó en ninguna de las otras categorÃas."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr "Tiempo de espera de la transacción"
+
+#. 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 ""
+"Una caracterÃstica importante proporcionada por un entorno administrado como "
+"EJB que nunca es proporcionado para un código no-administrado, es el tiempo "
+"de espera de la transacción. Estos tiempos de espera se aseguran de que "
+"ninguna transacción que se comporte inapropiadamente pueda vincular recursos "
+"mientras no devuelva una respuesta al usuario. Fuera de un entorno "
+"administrado (JTA), Hibernate no puede proporcionar completamente esta "
+"funcionalidad. Sin embargo, Hibernate puede por lo menos controlar las "
+"operaciones de acceso de datos, asegurándose de que los bloqueos a nivel de "
+"base de datos y las consultas con grandes grupos de resultados se encuentran "
+"limitados por un tiempo de espera definido. En un entorno administrado, "
+"Hibernate puede delegar el tiempo de espera de la transacción a JTA. Esta "
+"funcionalidad es abstraÃda por el objeto <literal>Transaction</literal> de "
+"Hibernate."
+
+#. 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> no se puede llamar en un bean CMT, en donde "
+"se deben definir declarativamente los tiempos de espera de las transacciones."
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr "Control de concurrencia optimista"
+
+#. 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 ""
+"El único enfoque consistente con una alta concurrencia y una alta "
+"escalabilidad es el control de concurrencia optimista con versionamiento. El "
+"chequeo de versión utiliza números de versión, o sellos de fecha "
+"(timestamps), para detectar actualizaciones en conflicto y para prevenir la "
+"pérdida de actualizaciones. Hibernate proporciona tres enfoques posibles de "
+"escribir código de aplicación que utilice concurrencia optimista. Los casos "
+"de uso que mostramos se encuentran en el contexto de conversaciones largas, "
+"pero el chequeo de versiones tiene además el beneficio de prevenir la "
+"pérdida de actualizaciones en transacciones individuales de la base de datos."
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr "Chequeo de versiones de la aplicación"
+
+#. 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 ""
+"En una implementación que no tiene mucha ayuda de Hibernate, cada "
+"interacción con la base de datos ocurre en una nueva <literal>Session</"
+"literal> y el desarrollador es el responsable de recargar todas las "
+"intancias persistentes desde la base de datos antes de manipularlas. Este "
+"enfoque fuerza a la aplicación a realizar su propio chequeo de versiones "
+"para asegurar el aislamiento de transacciones de conversaciones. Este "
+"enfoque es el menos eficiente en términos de acceso a la base de datos. Es "
+"el enfoque más similar a los EJBs de entidad."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal><"
+"version></literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"La propiedad <literal>version</literal> se mapea utilizando <literal><"
+"version></literal>, e Hibernate la incrementará automáticamente durante "
+"la limpieza si la entidad está desactualizada."
+
+#. 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 ""
+"Si está operando un entorno de baja-concurrencia-de-datos y no requiere "
+"chequeo de versiones, puede usar este enfoque y simplemente saltarse el "
+"chequeo de versiones. En ese caso, <emphasis>el último que guarda gana</"
+"emphasis> y será la estrategia por defecto para conversaciones largas. Tenga "
+"en mente que esto podrÃa confundir a los usuarios de la aplicación, pues "
+"podrÃan experimentar pérdidas de actualizaciones sin mensajes de error ni "
+"oportunidad de fusionar los cambios conflictivos."
+
+#. 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 ""
+"El chequeo manual de versiones es factible sólamente en circunstancias muy "
+"triviales y no es práctico para la mayorÃa de las aplicaciones. Con "
+"frecuencia se tienen que chequear no sólamente las intancias sólas, sino "
+"también grafos completos de objetos modificados. Hibernate ofrece el chequeo "
+"de versiones automático con el paradigma de diseño de <literal>Session</"
+"literal> larga o de instancias separadas."
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr "Sesión extendida y versionado automático"
+
+#. 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 ""
+"Una sóla instancia de <literal>Session</literal> y sus instancias "
+"persistentes se utilizan para toda la convervsación conocida como "
+"<emphasis>sesión-por-conversación</emphasis>. Hibernate chequea las "
+"versiones de instancia en el momento de vaciado, lanzando una excepción si "
+"se detecta una modificación concurrente. Le concierne al desarrollador "
+"capturar y manejar esta excepción. Las opciones comunes son la oportunidad "
+"del usuario de fusionar los cambios, o de recomenzar el proceso empresarial "
+"sin datos desactualizados."
+
+#. 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 ""
+"La <literal>Session</literal> se desconecta de cualquier conexión JDBC "
+"subyacente a la espera de una interacción del usuario. Este enfoque es el "
+"más eficiente en términos de acceso a la base de datos. La aplicación no "
+"necesita por sà misma tratar con el chequeo de versiones, ni re-unir "
+"instancias separadas, ni tiene que recargar instancias en cada transacción "
+"de la base de datos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>foo</literal> object knows which <literal>Session</literal> it "
+"was loaded in. Beginning a new database transaction on an old session "
+"obtains a new connection and resumes the session. Committing a database "
+"transaction disconnects a session from the JDBC connection and returns the "
+"connection to the pool. After reconnection, to force a version check on data "
+"you are not updating, you can call <literal>Session.lock()</literal> with "
+"<literal>LockMode.READ</literal> on any objects that might have been updated "
+"by another transaction. You do not need to lock any data that you "
+"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
+"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
+"last database transaction cycle is allowed to actually persist all "
+"modifications made in this conversation. Only this last database transaction "
+"will include the <literal>flush()</literal> operation, and then "
+"<literal>close()</literal> the session to end the conversation."
+msgstr ""
+"El objeto <literal>foo</literal> sabe en qué <literal>Session</literal> fue "
+"cargado. El dar inicio a una nueva base de datos en una sesión vieja obtiene "
+"una nueva conexión y reanuda la sesión. El guardar una transacción de la "
+"base de datos desconecta una sesión de la conexion JDBC y devuelve la "
+"conexión al pool. Después de la reconexión, para poder forzar una "
+"verificación de versión sobre datos que usted no está actalizando, puede "
+"llamar a <literal>Session.lock()</literal> con <literal>LockMode.READ</"
+"literal> en cualquier objeto que pueda haber sido actualizado por otra "
+"transacción. No necesita bloquear ningún dato que <emphasis>sà esté</"
+"emphasis> actualizando. Usualmente configurarÃa <literal>FlushMode.MANUAL</"
+"literal> en una <literal>Session</literal> extendida, de manera que de hecho "
+"sólamente se permite persistir el último ciclo de transacción de la base de "
+"datos de todas las modificaciones realizadas en esta conversación. Sólamente "
+"esta última transacción de la base de datos incluirÃa la operación "
+"<literal>flush()</literal> y luego cierra -<literal>close()</literal>- la "
+"sesión para dar fin a la conversación."
+
+#. 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 ""
+"Este patrón es problemático si la <literal>Session</literal> es demasiado "
+"grande para almacenarla durante el tiempo para pensar del usuario, por "
+"ejemplo, una <literal>HttpSession</literal> se debe mantener tan pequeña "
+"como sea posible. Como la <literal>Session</literal> también lo es el caché "
+"de primer nivel (obligatorio) y comprende todos los objetos cargados, "
+"probablemente podemos utilizar esta estrategia sólamente para unos pocos "
+"ciclos de pedido/respuesta. Debe utilizar una <literal>Session</literal> "
+"sólamente para una conversación única ya que pronto también tendrá datos "
+"añejos."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. 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 ""
+"Las versiones anteriores de Hibernate necesitaban desconexión explÃcita y "
+"reconexión de una <literal>Session</literal>. Estos métodos ya no se "
+"aprueban ya que tienen el mismo efecto que dar inicio o finalizar a una "
+"transacción."
+
+#. 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 ""
+"Mantenga la <literal>Session</literal> desconectada cerca a la capa de "
+"persistencia. Use un bean de sesión EJB con estado para mantener la "
+"<literal>Session</literal> en un entorno de tres capas . No la transfiera a "
+"la capa web ni la serialice en una capa separada para almacenarla en la "
+"<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 ""
+"El patrón de sesión extendido, o <emphasis>sesión-por-conversación</"
+"emphasis>, es más dificil de implementar con la administración de contexto "
+"de sesión actual. Necesita proporcionar su propia implementación de la "
+"<literal>CurrentSessionContext</literal> para esto, vea el Wiki de Hibernate "
+"para obtener más ejemplos."
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr "Objetos separados y versionado automático"
+
+#. 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 ""
+"Cada interacción con el almacenamiento persistente ocurre en una nueva "
+"<literal>Session</literal>. Sin embargo, las mismas instancias persistentes "
+"son reutilizadas para cada interacción con la base de datos. La aplicación "
+"manipula el estado de las instancias separadas cargadas originalmente en "
+"otra <literal>Session</literal> y luego las readjunta usando "
+"<literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</"
+"literal>, o <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 ""
+"De nuevo, Hibernate chequeará las versiones de la instancia durante el "
+"vaciado, lanzando una excepción si tuvieron lugar conflictos en las "
+"actualizaciones."
+
+#. 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 ""
+"También puede llamar a <literal>lock()</literal> en lugar de <literal>update"
+"()</literal> y utilizar <literal>LockMode.READ</literal> (realizando un "
+"chequeo de versión, evitando todos los cachés) si está seguro de que el "
+"objeto no ha sido modificado."
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr "Personalización del versionado automático"
+
+#. 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 ""
+"Puede deshabilitar el incremento de la versión automática de Hibernate para "
+"ciertas propiedades y colecciones en particular estableciendo el atributo de "
+"mapeo <literal>optimistic-lock</literal> como <literal>false</literal>. "
+"Hibernate entonces ya no incrementará más las versiones si la propiedad se "
+"encuentra desactualizada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Legacy database schemas are often static and cannot be modified. Or, other "
+"applications might access the same database and will not know how to handle "
+"version numbers or even timestamps. In both cases, versioning cannot rely on "
+"a particular column in a table. To force a version check with a comparison "
+"of the state of all fields in a row but without a version or timestamp "
+"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal><class></literal> mapping. This conceptually only works if "
+"Hibernate can compare the old and the new state (i.e., if you use a single "
+"long <literal>Session</literal> and not session-per-request-with-detached-"
+"objects)."
+msgstr ""
+"Los esquemas heredados de la base de datos con frecuencia son estáticos y no "
+"pueden ser modificados. Inclusive otras aplicaciones podrÃan también acceder "
+"la misma base de datos y no saber cómo manejar los números de versión ni los "
+"sellos de fecha. En ambos casos, el versionado no puede confiarse a una "
+"columna en particular en una tabla. Para forzar un chequeo de versiones sin "
+"un mapeo de propiedad de versión o sello de fecha, con una comparación del "
+"estado de todos los campos en una fila, active <literal>optimistic-lock=\"all"
+"\"</literal> en el mapeo de <literal><class></literal>. Esto funciona "
+"conceptualmente sólamente si Hibernate puede comparar el estado viejo y el "
+"nuevo, es decir, si usa una sóla <literal>Session</literal> larga y no "
+"sesión-por-petición-con-instancias-separadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Concurrent modification can be permitted in instances where the changes that "
+"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
+"\"</literal> when mapping the <literal><class></literal>, Hibernate "
+"will only compare dirty fields during flush."
+msgstr ""
+"Las modificaciones simultáneas pueden permitirse en instancias en tanto los "
+"cambios que se hayan realizado no se superpongan. Si establece "
+"<literal>optimistic-lock=\"dirty\"</literal> al mapear la <literal><"
+"class></literal>, Hibernate sólo comparará los campos desactualizados "
+"durante el vaciado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with a full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate may execute unnecessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal><class></literal> mapping, forcing Hibernate "
+"to <literal>SELECT</literal> the instance to ensure that changes did occur "
+"before updating the row."
+msgstr ""
+"En ambos casos, con columnas de versión/sello de fecha dedicadas o con "
+"comparación de campos completos/desactualizados, Hibernate utiliza una sóla "
+"declaración <literal>UPDATE</literal> (con una cláusula <literal>WHERE</"
+"literal> apropiada) por entidad para ejecutar el chequeo de versiones y "
+"actualizar la información. Si utiliza una persistencia transitiva para la re-"
+"unión en cascada de entidades asociadas, Hibernate podrÃa ejecutar "
+"actualizaciones innecesarias. Esto usualmente no es problema, pero podrÃan "
+"ejecutarse disparadores (triggers) <emphasis>enactualizazción</emphasis> en "
+"la base de datos incluso cuando no se haya hecho ningún cambio a las "
+"instancias separadas. Puede personalizar este comportamiento estableciendo "
+"<literal>select-before-update=\"true\"</literal> en el mapeo de <literal><"
+"class></literal>, forzando a Hibernate a <literal>SELECT</literal> la "
+"instancia para asegurar que las actualizaciones realmente ocurran, antes de "
+"actualizar la fila."
+
+#. Tag: title
+#, no-c-format
+msgid "Pessimistic locking"
+msgstr "Bloqueo pesimista "
+
+#. 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 ""
+"No se pretende que los usuarios tomen mucho tiempo preocupándose de las "
+"estrategias de bloqueo. Usualmente es suficiente con especificar un nivel de "
+"aislamiento para las conexiones JDBC y entonces simplemente dejar que la "
+"base de datos haga todo el trabajo. Sin embargo, los usuarios avanzados a "
+"veces pueden obtener bloqueos exclusivos pesimistas, o reobtener bloqueos al "
+"comienzo de una nueva transacción."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate will always use the locking mechanism of the database; it never "
+"lock objects in memory."
+msgstr ""
+"Hibernate siempre usará el mecanismo de bloqueo de la base de datos, nunca "
+"el bloqueo de objetos en memoria."
+
+#. 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 ""
+"La clase <literal>LockMode</literal> define los diferentes niveles de "
+"bloqueo que Hibernate puede adquirir. Un bloqueo se obtiene por medio de los "
+"siguientes mecanismos: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"<literal>LockMode.WRITE</literal> se adquiere automáticamente cuando "
+"Hibernate actualiza o inserta una fila."
+
+#. 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 ""
+"<literal>LockMode.UPGRADE</literal> se puede ser adquirir bajo petición "
+"explÃcita del usuario usando <literal>SELECT ... FOR UPDATE</literal> en "
+"bases de datos que soporten esa sintáxis."
+
+#. 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 ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> se puede adquirir bajo petición "
+"explÃcita del usuario usando un <literal>SELECT ... FOR UPDATE NOWAIT</"
+"literal> bajo Oracle."
+
+#. 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 ""
+"<literal>LockMode.READ</literal> se adquiere automáticamente cuando "
+"Hibernate lee los datos bajo los niveles de aislamiento de lectura repetible "
+"o serializable. Se puede readquirir por pedido explÃcito del usuario."
+
+#. 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> representa la ausencia de un bloqueo. Todos "
+"los objetos se pasan a este modo de bloqueo al final de una "
+"<literal>Transaction</literal>. Los objetos asociados con una sesión por "
+"medio de una llamada a <literal>update()</literal> o <literal>saveOrUpdate()"
+"</literal> también comienzan en este modo de bloqueo."
+
+#. Tag: para
+#, no-c-format
+msgid "The \"explicit user request\" is expressed in one of the following ways:"
+msgstr ""
+"La \"petición explÃcita del usuario\" se expresa en una de las siguientes "
+"formas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
+"literal>."
+msgstr ""
+"Una llamada a <literal>Session.load()</literal>, especificando un "
+"<literal>LockMode</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr "Una llamada a <literal>Session.lock()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr "Una llamada a <literal>Query.setLockMode()</literal>."
+
+#. 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 ""
+"Si se llama a <literal>Session.load()</literal> con <literal>UPGRADE</"
+"literal> o <literal>UPGRADE_NOWAIT</literal>, y el objeto pedido no ha sido "
+"cargado todavÃa por la sesión, el objeto es cargado usando "
+"<literal>SELECT ... FOR UPDATE</literal>. Si se llama a <literal>load()</"
+"literal> para un objeto que ya esté cargado con un bloqueo menos restrictivo "
+"que el pedido, Hibernate llama a <literal>lock()</literal> para ese objeto."
+
+#. 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>Session.lock()</literal> realiza un chequeo de número de versión si "
+"el modo de bloqueo especificado es <literal>READ</literal>, "
+"<literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>. En el caso "
+"de <literal>UPGRADE</literal> o <literal>UPGRADE_NOWAIT</literal>, se usa "
+"<literal>SELECT ... FOR UPDATE</literal>."
+
+#. 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 ""
+"Si la base de datos no soporta el modo de bloqueo solicitado, Hibernate usa "
+"un modo opcional apropiado en lugar de lanzar una excepción. Esto asegura "
+"que las aplicaciones serán portátiles."
+
+#. Tag: title
+#, no-c-format
+msgid "Connection release modes"
+msgstr "Modos de liberación de la conexión"
+
+#. 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 ""
+"La herencia (2x) de Hibernate en relación con la administración de la "
+"conexion JDBC fue que una <literal>Session</literal> obtendrÃa una conexión "
+"cuando se necesitara por primera vez y luego la mantendrÃa hasta que se "
+"cerrara la sesión. Hibernate 3.x introdujo la noción de modos de liberación "
+"de conexión para decirle a la sesión como manejar sus conexiones JDBC. La "
+"siguiente discusión sólamente es pertinente para las conexiones provistas "
+"por medio de un <literal>ConnectionProvider</literal> configurado. Las "
+"conexiones provistas por el usuario no se discuten aquÃ. Los diferentes "
+"modos de liberación se identifican por los valores numerados de <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>: es el comportamiento heredado descrito "
+"anteriormente. La sesión de Hibernate obtiene una conexión cuando necesita "
+"acceder a JDBC la primera vez y mantiene esa conexión hasta que se cierra la "
+"sesión."
+
+#. 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>: libera las conecciones después de que "
+"se ha completado una <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> (también se conoce como una liberación "
+"agresiva): libera conexiones después de cada ejecución de una declaración. "
+"Se salta esta liberación agresiva si la declaración deja abiertos recursos "
+"asociados con la sesión dada. Actualmente la única situación donde ocurre "
+"esto es por medio del uso de <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 ""
+"El parámetro de configuración <literal>hibernate.connection.release_mode</"
+"literal> se utiliza para especificar el modo de liberación a utilizar. Los "
+"valores posibles son los siguientes:"
+
+#. 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> (predeterminado): esta opción delega al modo de "
+"liberación devuelto por el método <literal>org.hibernate.transaction."
+"TransactionFactory.getDefaultReleaseMode()</literal>. Para "
+"JTATransactionFactory, esto devuelve ConnectionReleaseMode.AFTER_STATEMENT; "
+"para JDBCTransactionFactory, esto devuelve ConnectionReleaseMode."
+"AFTER_TRANSACTION. No cambie este comportamiento predeterminado ya que las "
+"fallas debido a este valor de esta configuración tienden a indicar errores y/"
+"o suposiciones en el código del usuario."
+
+#. 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>: usa ConnectionReleaseMode.ON_CLOSE. Esta "
+"configuración se deja para la compatibilidad con versiones anteriores, pero "
+"no se recomienda para nada su utilización."
+
+#. 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>: utiliza ConnectionReleaseMode."
+"AFTER_TRANSACTION. Esta configuración no se debe utilizar en entornos JTA. "
+"También note que con ConnectionReleaseMode.AFTER_TRANSACTION, si se "
+"considera que una sesión se encuentra en modo auto-commit, las conexiones "
+"serán liberada como si el modo de liberación fuese 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>: usa ConnectionReleaseMode."
+"AFTER_STATEMENT. Además se consulta la <literal>ConnectionProvider</literal> "
+"configurada para ver si soporta esta caracterÃstica "
+"<literal>supportsAggressiveRelease()</literal>. Si no, el modo de liberación "
+"se vuelve a establecer como ConnectionReleaseMode.AFTER_TRANSACTION. Esta "
+"configuración sólamente es segura en entornos en donde podemos re-adquirir "
+"la misma conexión JDBC subyacente cada vez que llamamos a "
+"<literal>ConnectionProvider.getConnection()</literal> o en entornos auto-"
+"commit, en donde no importa si recibimos la misma conexión."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/tutorial.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/tutorial.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/tutorial.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1776 @@
+# translation of tutorial.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: tutorial\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-15 13:03+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr "Tutorial"
+
+#. 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 ""
+"Dirigido a los nuevos usuarios, este capÃtulo brinda una introducción a "
+"Hibernate paso por paso, empezando con una aplicación simple usando una base "
+"de datos en memoria. Este tutorial se basa en un tutorial anterior que "
+"Michael Gloegl desarrolló. Todo el código se encuentra en el directorio "
+"<filename>tutorials/web</filename> de la fuente del proyecto. "
+
+#. 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 ""
+"Este tutorial se basa en que el usuario tenga conocimiento de Java y SQL. Si "
+"tiene un conocimiento muy limitado de JAVA o SQL, le aconsejamos que empiece "
+"con una buena introducción a esta tecnologÃa antes de tratar de aprender "
+"sobre Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The distribution contains another example application under the "
+"<filename>tutorial/eg</filename> project source directory."
+msgstr ""
+"La distribución contiene otra aplicación de ejemplo bajo el directorio "
+"fuente del proyecto <filename>tutorial/eg</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr "Parte 1 - La primera aplicación Hibernate"
+
+#. 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 ""
+"Para este ejemplo, vamos a configurar una aplicación base de datos pequeña "
+"que pueda almacenar eventos a los que queremos asistir e información sobre "
+"los anfitriones de estos eventos."
+
+#. 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 ""
+"Aunque puede utilizar cualquier base de datos con la que se sienta bien, "
+"vamos a usar <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink> (una base de "
+"datos Java en-memoria) para evitar describir la instalación/configuración de "
+"cualquier servidor de base de datos en particular."
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr "Configuración"
+
+#. 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 ""
+"Lo primero que tenemos que hacer es configurar el entorno de desarrollo. "
+"Vamos a utilizar el \"diseño estándar\" apoyado por muchas herramientas de "
+"construcción tal como <ulink url=\"http://maven.org\">Maven</ulink>. Maven, "
+"en particular, tiene un buen recurso que describe este <ulink url=\"http://"
+"maven.apache.org/guides/introduction/introduction-to-the-standard-directory-"
+"layout.html\">diseño</ulink>. Como este tutorial va a ser una aplicación "
+"web, vamos a crear y a utilizar los directorios <filename>src/main/java</"
+"filename>, <filename>src/main/resources</filename> y <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 ""
+"Vamos a usar Maven en este tutorial, sacando ventaja de sus funcionalidades "
+"de administración de dependencias transitivas asà como la habilidad de "
+"muchos IDEs para configurar automáticamente un proyecto para nosotros con "
+"base en el descriptor maven."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is not a requirement to use Maven. If you wish to use something else to "
+"build this tutoial (such as Ant), the layout will remain the same. The only "
+"change is that you will need to manually account for all the needed "
+"dependencies. If you use something like <ulink url=\"http://ant.apache.org/"
+"ivy/\">Ivy</ulink> providing transitive dependency management you would "
+"still use the dependencies mentioned below. Otherwise, you'd need to grab "
+"<emphasis>all</emphasis> dependencies, both explicit and transitive, and add "
+"them to the project's classpath. If working from the Hibernate distribution "
+"bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts "
+"in the <filename>lib/required</filename> directory and all files from either "
+"the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/"
+"javassist</filename> directory; additionally you will need both the servlet-"
+"api jar and one of the slf4j logging backends."
+msgstr ""
+"No es un requerimiento el uso de Maven. Si desea utilizar alguna otra cosa para "
+"construir este tutorial (tal como Ant), el diseño sigue siendo el mismo. El "
+"único cambio es que necesitará dar cuenta manualmente por todas las "
+"dependencias que se necesitan. Si usa algo como <ulink url=\"http://ant.apache.org/"
+"ivy/\">Ivy</ulink> para brindar administración de dependencias transitivas "
+"todavÃa utilizarÃa las dependencias que mencionamos anteriormente. De otra "
+"manera, necesitará encontrar <emphasis>todas</emphasis> las dependencias, explÃcitas y "
+"transitivas y agregarlas a la ruta de clase del proyecto. Si trabaja desde "
+"el paquete de distribución Hibernate, esto significarÃa que "
+"<filename>hibernate3.jar</filename>, todos los artefactos en el directorio "
+"<filename>lib/required</filename> y todos los archivos del directorio "
+"<filename>lib/bytecode/cglib</filename> o <filename>lib/bytecode/javassist</"
+"filename>; además necesitará el servlet-api jar y uno de los backends de "
+"registro slf4j."
+
+#. Tag: para
+#, no-c-format
+msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr ""
+"Guarde este archivo como <filename>pom.xml</filename> en el directorio raÃz "
+"del proyecto."
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr "La primera clase"
+
+#. 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 ""
+"Luego creamos una clase que representa el evento que queremos almacenar en "
+"la base de datos, es una clase JavaBean simple con algunas propiedades:"
+
+#. 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 ""
+"Esta clase utiliza convenciones de nombrado estándares de JavaBean para los "
+"métodos de propiedades getter y setter asà como también visibilidad privada "
+"para los campos. Se recomienda este diseño, pero no se exige. Hibernate "
+"también puede acceder a los campos directamente, los métodos de acceso "
+"benefician la robustez de la refactorización. "
+
+#. 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 ""
+"La propiedad <literal>id</literal> tiene un valor identificador único para "
+"un evento en particular. Todas las clases de entidad persistentes "
+"necesitarán tal propiedad identificadora si queremos utilizar el grupo "
+"completo de funcionalidades de Hibernate (también algunas clases "
+"dependientes menos importantes). De hecho, la mayorÃa de las aplicaciones "
+"(en especial las aplicaciones web) necesitan distinguir los objetos por "
+"identificador, asà que usted debe tomar esto como una funcionalidad más que "
+"una limitación. Sin embargo, usualmente no manipulamos la identidad de un "
+"objeto, por lo tanto, el método setter debe ser privado. Sólamente Hibernate "
+"asignará identificadores cuando se guarde un objeto. Como se puede ver, "
+"Hibernate puede acceder a métodos de acceso públicos, privados y protegidos, "
+"asà como también a campos directamente públicos, privados y protegidos. "
+"Puede escoger y hacer que se ajuste a su diseño de su aplicación."
+
+#. 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 ""
+"El constructor sin argumentos es un requerimiento para todas las clases "
+"persistentes, Hibernate tiene que crear objetos por usted utilizando Java "
+"Reflection. El constructor puede ser privado; sin embargo, se necesita la "
+"visibilidad del paquete para generar proxies en tiempo de ejecución y para "
+"la recuperación de datos de manera efectiva sin la instrumentación del "
+"código byte."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> directory."
+msgstr ""
+"Duarde este archivo en el directorio <filename>src/main/java/org/hibernate/"
+"tutorial/domain</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr "El archivo de mapeo"
+
+#. 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 necesita saber cómo cargar y almacenar objetos de la clase "
+"persistente. En este punto es donde entra en juego el archivo de mapeo de "
+"Hibernate. Este archivo le dice a Hibernate a que tabla tiene que acceder en "
+"la base de datos, y que columnas debe utilizar en esta tabla."
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr "La estructura básica de un archivo de mapeo se ve asÃ:"
+
+#. 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 ""
+"El DTD de Hibernate es sofisticado. Puede utilizarlo para autocompletar los "
+"elementos y atributos XML de mapeo en su editor o IDE. Abrir el archivo DTD "
+"en su editor de texto es la manera más fácil para obtener una sinopsis de "
+"todos los elementos y atributos y para ver los valores por defecto, asà como "
+"algunos de los comentarios. Note que Hibernate no cargará el fichero DTD de "
+"la web, sino que primero lo buscará en la ruta de clase de la aplicación. El "
+"archivo DTD se encuentra incluido en <filename>hibernate-core.jar</filename> "
+"(también en <filename>hibernate3.jar</filename> si está usando el paquete de "
+"la distribución)."
+
+#. 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 ""
+"Omitiremos la declaración de DTD en los ejemplos posteriores para hacer más "
+"corto el código. Esto no es opcional."
+
+#. 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 ""
+"Entre las dos etiquetas <literal>hibernate-mapping</literal>, incluya un "
+"elemento <literal>class</literal>. Todas las clases de entidad persistentes "
+"(de nuevo, podrÃan haber clases dependientes más adelante, las cuales no son "
+"entidades de primera clase) necesitan de dicho mapeo en una tabla en la base "
+"de datos 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 ""
+"Hasta ahora le hemos dicho a Hibernate cómo persistir y cargar el objeto de "
+"clase <literal>Event</literal> a la tabla <literal>EVENTS</literal>. Cada "
+"instancia se encuentra representada por una fila en esa tabla. Ahora podemos "
+"continuar mapeando la propiedad identificadora única a la clave primaria de "
+"la tabla. Ya que no queremos preocuparnos por el manejo de este "
+"identificador, configuramos la estrategia de generación del identificador de "
+"Hibernate para una columna clave primaria sustituta:"
+
+#. 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 ""
+"El elemento <literal>id</literal> es la declaración de la propiedad "
+"identificadora. El atributo de mapeo <literal>name=\"id\"</literal> declara "
+"el nombre de la propiedad JavaBean y le dice a Hibernate que utilice los "
+"métodos <literal>getId()</literal> y <literal>setId()</literal> para acceder "
+"a la propiedad. El atributo columna le dice a Hibernate qué columna de la "
+"tabla <literal>EVENTS</literal> tiene el valor de la llave principal."
+
+#. 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 ""
+"El elemento anidado <literal>generator</literal> especifica la estrategia de "
+"generación del identificador (también conocidos como ¿cómo se generan los "
+"valores del identificador?). En este caso escogimos <literal>native</"
+"literal>, el cual ofrece un nivel de qué tan portátil es dependiendo del "
+"dialecto configurado de la base de datos. Hibernate soporta identificadores "
+"generados por la base de datos, globalmente únicos asà como asignados por la "
+"aplicación. La generación del valor del identificador también es uno de los "
+"muchos puntos de extensión de Hibernate y puede conectar su propia "
+"estrategia."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>native</literal> is no longer consider the best strategy in terms "
+"of portability. for further discussion, see <xref linkend=\"portability-idgen"
+"\" />"
+msgstr ""
+"<literal>native</literal> ya no se considera como la mejor estrategia en "
+"términos de portabilidad. Para obtener mayor información consulte <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 ""
+"Por último es necesario decirle a Hibernate sobre las porpiedades de clase "
+"de entidad que quedan. Por defecto, ninguna propiedad de la clase se "
+"considera persistente:"
+
+#. 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 ""
+"Al igual que con el elemento <literal>id</literal>, el atributo "
+"<literal>name</literal> del elemento <literal>property</literal> le dice a "
+"Hibernate que métodos getter y setter utilizar. Asà que en este caso, "
+"Hibernate buscará los métodos <literal>getDate()</literal>, <literal>setDate"
+"()</literal>, <literal>getTitle()</literal> y <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 ""
+"¿Por qué el mapeo de la propiedad <literal>date</literal> incluye el "
+"atributo <literal>column</literal>, pero el de <literal>title</literal> no? "
+"Sin el atributo <literal>column</literal> Hibernate utiliza, por defecto, el "
+"nombre de propiedad como nombre de la columna. Esto funciona bien para "
+"<literal>title</literal>. Sin embargo, <literal>date</literal> es una "
+"palabra clave reservada en la mayorÃa de las bases de datos, asà que es "
+"mejor que la mapeamos a un nombre diferente."
+
+#. 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 ""
+"El mapeo de <literal>title</literal> carece de un atributo <literal>type</"
+"literal>. Los tipos que declaramos y utilizamos en los archivos de mapeo no "
+"son tipos de datos Java. Tampoco son tipos de base de datos SQL. Estos tipos "
+"se llaman <emphasis>tipos de mapeo Hibernate </emphasis>, convertidores que "
+"pueden traducir de tipos de datos de Java a SQL y viceversa. De nuevo, "
+"Hibernate tratará de determinar el tipo correcto de conversión y de mapeo "
+"por sà mismo si el atributo <literal>type</literal> no se encuentra presente "
+"en el mapeo. En algunos casos esta detección automática (utilizando "
+"Reflection en la clase Java) puede que no tenga lo que usted espera o "
+"necesita. Este es el caso de la propiedad <literal>date</literal>. Hibernate "
+"no puede saber is la propiedad, la cual es de <literal>java.util.Date</"
+"literal>, debe mapear a una columna <literal>date</literal>, "
+"<literal>timestamp</literal> o <literal>time</literal> de SQL. Por medio de "
+"un convertidor <literal>timestamp</literal>, mapeamos la propiedad y "
+"mantenemos la información completa sobre la hora y fecha."
+
+#. 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 realiza esta determinación de tipo de mapeo usando reflection "
+"cuando se procesan los archivos de mapeo. Esto puede tomar tiempo y recursos "
+"asà que el rendimiento al arrancar es importante entonces debe considerar el "
+"definir explÃcitamente el tipo a usar."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this mapping file as <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+"Guarde este archivo de mapeo como <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr "Configuración de Hibernate"
+
+#. 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 ""
+"En este momento debe tener la clase persistente y su archivo de mapeo. Ahora "
+"debe configurar Hibernate. Primero vamos a configurar HSQLDB para que "
+"ejecute en \"modo de servidor\""
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr "Hacemos esto o lo otro y los datos permanecen entre ejecuciones."
+
+#. 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 ""
+"Vamos a utilizar el plugin de ejecución Maven para lanzar el servidor HSQLDB "
+"ejecutando: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
+"Dexec.args=\"-database.0 file:target/data/tutorial\"</command>.Lo verá "
+"iniciando y vinculandose a un enchufe TCP/IP, allà es donde nuestra "
+"aplicación se conectará más adelante. Si quiere dar inicio con una base de "
+"datos fresca durante este tutorial, apague HSQLDB, borre todos los archivos "
+"en el directorio <filename>target/data</filename> e inicie HSQLDB de nuevo."
+
+#. 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 se conectará a la base de datos de parte de su aplicación asà que "
+"necesita saber cómo obtener conexiones. Para este tutorial vamos a utilizar "
+"un pool de conexiones autónomo (opuesto a <interfacename>javax.sql."
+"DataSource</interfacename>). Hibernate viene con soporte para dos pools de "
+"conexiones JDBC de código abierto de terceros: <ulink url=\"https://"
+"sourceforge.net/projects/c3p0\">c3p0</ulink> y <ulink url=\"http://proxool."
+"sourceforge.net/\">proxool</ulink>. Sin embargo, vamos a utilizar el pool de "
+"conexiones incluido de Hibernate para este tutorial."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in Hibernate connection pool is in no way intended for production "
+"use. It lacks several features found on any decent connection pool."
+msgstr ""
+"El pool de conexiones de Hibernate no está diseñado para utilizarse en "
+"producción. Le faltan varias funcionalidades que se encuentran en cualquier pool de conexiones decente. "
+
+#. 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 ""
+"Para la configuración de Hibernate, podemos utilizar un archivo "
+"<literal>hibernate.properties</literal> simple, un archivo "
+"<literal>hibernate.cfg.xml</literal> un poco más sofisticado, o incluso una "
+"configuración completamente programática. La mayorÃa de los usuarios "
+"prefieren el archivo de configuración XML:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr "Observe que este archivo de configuración especifica un DTD diferente"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
+"is a global factory responsible for a particular database. If you have "
+"several databases, for easier startup you should use several <literal><"
+"session-factory></literal> configurations in several configuration files."
+msgstr ""
+"Configure la <literal>SessionFactory</literal> de Hibernate. SessionFactory "
+"es una fábrica global responsable de una base de datos en particular. Si "
+"usted tiene varias bases de datos, para un inicio más fácil utilice varias "
+"configuraciones <literal><session-factory></literal> en varios "
+"archivos de configuración."
+
+#. 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 ""
+"Los primeros cuatro elementos <literal>property</literal> contienen la "
+"configuración necesaria para la conexión JDBC. El elemento "
+"<literal>property</literal> dialecto especifica la variante SQL en "
+"particular que Hibernate genera."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In most cases, Hibernate is able to properly determine which dialect to use. "
+"See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr ""
+"Hibernate tiene la habilidad de determinar correctamente qué dialecto "
+"utilizar en la mayorÃa de los casos. Consulte <xref linkend=\"portability-dialectresolver\" /> para obtener mayor información."
+
+#. 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 ""
+"La administración de la sesión automática de Hibernate para contextos de "
+"persistencia es particularmente útil en este contexto. La opción "
+"<literal>hbm2ddl.auto</literal> activa la generación automática de los "
+"esquemas de la base de datos directamente en la base de datos. Esto se puede "
+"desactivar, eliminando la opción de configuración o redirigiéndolo a un "
+"archivo con la ayuda de la tarea de Ant <literal>SchemaExport</literal>. "
+"Finalmente, agregue a la configuración el/los fichero(s) de mapeo para "
+"clases persistentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>hibernate.cfg.xml</filename> into the "
+"<filename>src/main/resources</filename> directory."
+msgstr ""
+"Guarde este archivo como <filename>hibernate.cfg.xml</filename> en el "
+"directorio <filename>src/main/resources</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "Building with Maven"
+msgstr "Construcción con Maven"
+
+#. 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 ""
+"Ahora vamos a construir el tutorial con Maven. Es necesario que tenga "
+"instalado Maven; se encuentra disponible en la <ulink url=\"http://maven."
+"apache.org/download.html\">página de descargas Maven</ulink>. Maven leerá el "
+"archivo <filename>/pom.xml</filename> que creamos anteriormente y sabrá cómo "
+"realizar algunas tareas de proyectos básicos. Primero, vamos a ejecutar la "
+"meta <literal>compile</literal> para asegurarnos de que podemos compilar "
+"todo hasta el momento:"
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr "Inicio y ayudantes"
+
+#. 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 ""
+"Es el momento de cargar y almacenar algunos objetos <literal>Event</"
+"literal>, pero primero tiene que completar la configuración con algo de "
+"código de infraestructura. Tiene que iniciar Hibernate construyendo un "
+"objeto <interfacename>org.hibernate.SessionFactory</interfacename> global y "
+"almacenarlo en algún lugar de fácil acceso en el código de la aplicación. "
+"Una <interfacename>org.hibernate.SessionFactory</interfacename> se utiliza "
+"para obtener instancias <interfacename>org.hibernate.Session</"
+"interfacename>. Una <interfacename>org.hibernate.Session</interfacename> "
+"representa una unidad de trabajo mono-hilo. La <interfacename>org.hibernate."
+"SessionFactory</interfacename> es un objeto global seguro entre hilos que se "
+"instancia una sóla vez."
+
+#. 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 ""
+"Vamos a crear una clase de ayuda <literal>HibernateUtil</literal> que se "
+"encargue del inicio y haga más práctico el acceso a <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 ""
+"Guarde este código como <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 ""
+"Esta clase no sólamente produce la referencia <interfacename>org.hibernate."
+"SessionFactory</interfacename> global en su inicializador estático, sino que "
+"también esconde el hecho de que utiliza un singleton estático. También puede "
+"que busque la referencia <interfacename>org.hibernate.SessionFactory</"
+"interfacename> desde JNDI en un servidor de aplicaciones en cualquier otro "
+"lugar."
+
+#. 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 ""
+"Si usted le da un nombre a <interfacename>org.hibernate.SessionFactory</"
+"interfacename> en su archivo de configuración, de hecho, Hibernate tratará "
+"de vincularlo a JNDI bajo ese nombre después de que ha sido construido. Otra "
+"mejor opción es utilizar el despliegue JMX y dejar que el contenedor con "
+"capacidad JMX instancie y vincule un <literal>HibernateService</literal> a "
+"JNDI. Más adelante discutiremos estas opciones avanzadas."
+
+#. 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 ""
+"Ahora necesita configurar un sistema de registro. Hibernate utiliza "
+"registros comunes le da dos opciones: Log4J y registros de JDK 1.4. La "
+"mayorÃa de los desarrolladores prefieren Log4J: copie <literal>log4j."
+"properties</literal> de la distribución de Hibernate, se encuentra en el "
+"directorio <literal>etc/</literal>) a su directorio <literal>src</literal>, "
+"junto a <literal>hibernate.cfg.xml</literal>. Si desea tener una salida más "
+"verbosa que la que se proporcionó en la configuración del ejemplo entonces "
+"puede cambiar su configuración. Por defecto, sólo se muestra el mensaje de "
+"inicio de Hibernate en la salida estándar."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The tutorial infrastructure is complete and you are now ready to do some "
+"real work with Hibernate."
+msgstr ""
+"La infraestructura del tutorial está completa y estamos listos para hacer un "
+"poco de trabajo real con Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr "Carga y almacenamiento de objetos"
+
+#. 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 ""
+"Ahora estamos listos para hacer un poco de trabajo real con Hibernate. "
+"Empecemos por escribir una clase <literal>EventManager</literal> con un "
+"método <literal>main()</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 ""
+"En <literal>createAndStoreEvent()</literal> creamos un nuevo objeto "
+"<literal>Event</literal> y se lo entregamos a Hibernate. En ese momento, "
+"Hibernate se encarga de SQL y ejecuta un <literal>INSERT</literal> en la "
+"base de datos."
+
+#. 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 ""
+"Una <interface>org.hibernate.Session</interface> está diseñada para "
+"representar una sóla unidad de trabajo (una sola parte atómica de trabajo "
+"que se va a realizar). Por ahora vamos a mantener las cosas sencillas y "
+"vamos a asumir una granularidad de uno a uno entre la <interface>org."
+"hibernate.Session</interface> de Hibernate y una transacción de la base "
+"datos. Para proteger nuestro código del sistema de transacciones subyacentes "
+"utilizamos el API <interfacename>org.hibernate.Transaction</interfacename> "
+"de Hibernate. En este caso en particular estamos utilizado una semántica "
+"transaccional basada en JDBC pero también puede ejecutarse con 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 ""
+"¿Qué hace <literal>sessionFactory.getCurrentSession()</literal>? Primero, la "
+"puede llamar tantas veces como desee y en donde quiera, una vez consiga su "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. El método "
+"<literal>getCurrentSession()</literal> siempre retorna la unidad de trabajo "
+"\"actual\". ¿Recuerda que cambiamos la opción de la configuración de este "
+"mecanismo a \"thread\" en <filename>src/main/resources/hibernate.cfg.xml</"
+"filename>? Por lo tanto, el contexto de una unidad de trabajo actual se "
+"encuentra vinculada al hilo de Java actual que ejecuta nuestra aplicación."
+
+#. 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 ofrece tres métodos de rastreo de sesión actual. El método basado "
+"en \"hilos\" no está dirigido al uso de producción; sólo es útil para "
+"prototipos y para tutoriales como este. Más adelante discutiremos con más "
+"detalles el rastreo de sesión actual."
+
+#. 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 ""
+"Una <interface>org.hibernate.Session</interface> se inicia cuando se realiza "
+"la primera llamada a <literal>getCurrentSession()</literal> para el hilo "
+"actual. Luego Hibernate la vincula al hilo actual. Cuando termina la "
+"transacción, ya sea por medio de guardar o deshacer los cambios, Hibernate "
+"desvincula automáticamente la <interface>org.hibernate.Session</interface> "
+"del hilo y la cierra por usted. Si llama a <literal>getCurrentSession()</"
+"literal> de nuevo, obtiene una <interface>org.hibernate.Session</interface> "
+"nueva y obtiene una nueva <interface>org.hibernate.Session</interface> "
+"unidad de trabajo. "
+
+#. 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 ""
+"En relación con la unidad del campo de trabajo, ¿Se deberÃa utilizar "
+"<interface>org.hibernate.Session</interface> de Hibernate para ejecutar una "
+"o varias operaciones de la base de datos? El ejemplo anterior utiliza una "
+"<interface>org.hibernate.Session</interface> para una operación. Sin "
+"embargo, esto es pura coincidencia; el ejemplo simplemente no es lo "
+"suficientemente complicado para mostrar cualquier otro enfoque. El ámbito de "
+"una <interface>org.hibernate.Session</interface> de Hibernate es flexible "
+"pero nunca debe diseñar su aplicación para que utilice una nueva "
+"<interface>org.hibernate.Session</interface> de Hibernate para "
+"<emphasis>cada</emphasis> operación de la base de datos. Aunque lo "
+"utilizamos en los siguientes ejemplos, considere la <emphasis>sesión-por-"
+"operación</emphasis> como un anti-patrón. Más adelante en este tutorial, se "
+"muestra una aplicación web real, lo cual le ayudará a ilustrar esto."
+
+#. 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 ""
+"Consulte <xref linkend=\"transactions\" /> para obtener mayor información "
+"sobre el manejo de transacciones y la demarcación. En el ejemplo anterior "
+"también nos saltamos el manejo de errores y cómo deshacerlos. "
+
+#. 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 ""
+"Para ejecutar esto, utilizaremos el plugin de ejecución Maven para llamar "
+"nuestra clase con la configuración de ruta de clase necesaria: <command>mvn "
+"exec:java -Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec."
+"args=\"store\"</command>"
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr "Es posible que primero necesite realizar <command>mvn compile</command>."
+
+#. 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 ""
+"Debe ver que Hibernate inicia y dependiendo de su configuración, también "
+"verá bastantes salidas de registro. Al final, verá la siguiente lÃnea:"
+
+#. Tag: para
+#, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr "Este es el <literal>INSERT</literal> que Hibernate ejecuta."
+
+#. Tag: para
+#, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr "Para listar los eventos almacenados se agrega una opción al método principal:"
+
+#. Tag: para
+#, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+msgstr "También agregamos un método <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 ""
+"Aquà utilizamos una consulta HQL (Hibernate Query Language) para cargar "
+"todos los objetos <literal>Event</literal> desde la base de datos. Hibernate "
+"generará el SQL apropiado, lo enviará a la base de datos y poblará los "
+"objetos <literal>Event</literal> con los datos. Puede crear peticiones más "
+"complejas con HQL. Consulte <xref linkend=\"queryhql\"/> para obtener mayor "
+"información."
+
+#. 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 ""
+"Ahora podemos llamar nuestra nueva funcionalidad, de nuevo usando el plugin "
+"de ejecución Maven: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate."
+"tutorial.EventManager\" -Dexec.args=\"list\"</command>"
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr "Part 2 - Mapeo de asociaciones"
+
+#. 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 ""
+"Hasta ahora hemos mapeado una clase de entidad persistente a una tabla "
+"aislada. Vamos a construir sobre esto y agregaremos algunas asociaciones de "
+"clase. Vamos a agregar personas a la aplicación y vamos a almacenar una "
+"lista de eventos en las que participan."
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr "Mapeo de la clase Person"
+
+#. Tag: para
+#, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr "El primer corte de la clase <literal>Person</literal> se ve asÃ:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
+"domain/Person.java</filename>"
+msgstr ""
+"Guarde esto en un archivo llamado <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 ""
+"Luego, cree el nuevo archivo de mapeo como <filename>src/main/resources/org/"
+"hibernate/tutorial/domain/Person.hbm.xml</filename>"
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr "Finalmente, añada el nuevo mapeo a la configuración de Hibernate:"
+
+#. 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 ""
+"Vamos a crear una asociación entre estas dos entidades. Las personas pueden "
+"participar en los eventos y los eventos cuentan con participantes. Las "
+"cuestiones de diseño con las que tenemos que tratar son: direccionalidad, "
+"multiplicidad y comportamiento de la colección."
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr "Una asociación unidireccional basada en Set"
+
+#. 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 ""
+"Al agregar una colección de eventos a la clase <literal>Person</literal>, "
+"puede navegar fácilmente a los eventos de una persona en particular, sin "
+"ejecutar una petición explÃcita - llamando a <literal>Person#getEvents</"
+"literal>. En Hibernate, las asociaciones multi-valores se representan por "
+"medio de uno de los contratos del marco de colecciones Java; aquà escogimos "
+"un <interfacename>java.util.Set</interfacename> ya que la colección no "
+"contendrá elementos duplicados y el orden no es relevante para nuestros "
+"ejemplos."
+
+#. 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 ""
+"Antes de mapear esta asociación, considere el otro lado. Podriamos mantener "
+"esto unidireccional o podrÃamos crear otra colección en el <literal>Event</"
+"literal>, si queremos tener la habilidad de navegarlo desde ambas "
+"direcciones. Esto no es necesario desde un punto de vista funcional. Siempre "
+"puede ejeutar un pedido explÃcito para recuperar los participantes de un "
+"evento en particular. Esta es una elección de diseño que depende de usted, "
+"pero lo que queda claro de esta discusión es la multiplicidad de la "
+"asociación: \"muchos\" valuada en ambos lados, denominamos esto como una "
+"asociación <emphasis>muchos-a-muchos</emphasis>. Por lo tanto, utilizamos un "
+"mapeo muchos-a-muchos de 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 soporta un amplio rango de mapeos de colección, el más común "
+"<literal>set</literal>. Para una asociación muchos-a-muchos o la relación de "
+"entidad <emphasis>n:m</emphasis>, se necesita una tabla de asociación. Cada "
+"fila en esta tabla representa un enlace entre una persona y un evento. El "
+"nombre de esta tabla se declara con el atributo <literal>table</literal> del "
+"elemento <literal>set</literal>. El nombre de la columna identificadora en "
+"la asociación, del lado de la persona, se define con el elemento "
+"<literal>key</literal>, el nombre de columna para el lado del evento se "
+"define con el atributo <literal>column</literal> del <literal>many-to-many</"
+"literal>. También tiene que informarle a Hibernate la clase de los objetos "
+"en su colección (la clase del otro lado de la colección de referencias)."
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr "Por consiguiente, el esquema de base de datos para este mapeo es:"
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr "Trabajo de la asociación"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now we will bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
+msgstr ""
+"Vamos a reunir a algunas personas y eventos en un nuevo método en "
+"<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 ""
+"Después de cargar una <literal>Person</literal> y un <literal>Event</"
+"literal>, simplemente modifique la colección utilizando los métodos normales "
+"de colección. No hay una llamada explÃcita a <literal>update()</literal> o "
+"<literal>save()</literal>; Hibernate detecta automáticamente que se ha "
+"modificado la colección y que se necesita actualizarla. Esto se denomina "
+"<emphasis>chequeo automático de desactualizaciones</emphasis> y también "
+"puede probarlo modificando el nombre o la propiedad de fecha de cualquiera "
+"de sus objetos. Mientras se encuentran en estado <emphasis>persistente</"
+"emphasis>, es decir, enlazado a una <interfacename>org.hibernate.Session</"
+"interfacename> de Hibernate en particular, Hibernate monitorea cualquier "
+"cambio y ejecuta SQL de un modo escribe-detrás. El proceso de sincronización "
+"del estado de la memoria con la base de datos, usualmente sólo al final de "
+"una unidad de trabajo, se denomina <emphasis>vaciado</emphasis>. En nuestro "
+"código la unidad de trabajo termina con guardar o deshacer los cambios de la "
+"transacción de la base de datos."
+
+#. 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 ""
+"Puede cargar una persona y un evento en diferentes unidades de trabajo. "
+"También puede modificar un objeto fuera de una <interfacename>org.hibernate."
+"Session</interfacename>, cuando no se encuentra en estado persistente (si "
+"antes era persistente denominamos a este estado <emphasis>separado</"
+"emphasis> ). Inclusive, puede modificar una colección cuando se encuentre "
+"separada:"
+
+#. 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 ""
+"La llamada a <literal>update</literal> hace que un objeto separado sea "
+"persistente de nuevo enlazándolo a una nueva unidad de trabajo, asà que "
+"cualquier modificación que le realizó mientras estaba separado se puede "
+"guardar en la base de datos. Esto incluye cualquier modificación (adiciones "
+"o eliminaciones) que le hizo a una colección de ese objeto entidad."
+
+#. 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 ""
+"Esto no se utiliza mucho en nuestro ejemplo, pero es un concepto importante "
+"que puede incorporar en su propia aplicación. Complete este ejercicio "
+"agregando una nueva acción al método main de <literal>EventManager</literal> "
+"y llámela desde la lÃnea de comandos. Si necesita los identificadores de una "
+"persona y de un evento - el método <literal>save()</literal> los retorna "
+"(pueda que necesite modificar algunos de los métodos anteriores para "
+"retornar ese identificador):"
+
+#. 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 ""
+"Esto fue un ejemplo de una asociación entre dos clases igualmente "
+"importantes: dos entidades. Como se mencionó anteriormente, hay otras clases "
+"y tipos en un modelo tÃpico, usualmente \"menos importantes\". Algunos de "
+"ustedes las habrán visto, como un <literal>int</literal> o un "
+"<classname>java.lang.String</classname>. Denominamos a estas clases "
+"<emphasis>tipos de valor</emphasis> y sus instancias <emphasis>dependen</"
+"emphasis> de una entidad en particular. Las instancias de estos tipos no "
+"tienen su propia identidad, ni son compartidas entre entidades. Dos personas "
+"no referencian el mismo objeto <literal>firstname</literal>, incluso si "
+"tienen el mismo nombre. Los tipos de valor no sólo pueden encontrarse en el "
+"JDK, sino que también puede escribir por sà mismo clases dependientes como "
+"por ejemplo, <literal>Address</literal> o <literal>MonetaryAmount</literal>. "
+"De hecho, en una aplicación Hibernate todas las clases JDK se consideran "
+"como tipos de valor. "
+
+#. 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 ""
+"También puede diseñar una colección de tipos de valor. Esto es "
+"conceptualmente diferente de una colección de referencias a otras entidades, "
+"pero se ve casi igual en Java."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr "Colección de valores"
+
+#. 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 ""
+"Vamos a agregar una colección de direcciones de correo electrónico a la "
+"entidad <literal>Person</literal>. Esto se representará como un "
+"<interfacename>java.util.Set</interfacename> de las instnaicas "
+"<classname>java.lang.String</classname>:"
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr "El mapeo de este <literal>Set</literal> es asÃ:"
+
+#. 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 ""
+"La diferencia comparado con el mapeo anterior es el uso de la parte "
+"<literal>element</literal>, que le dice a Hibernate que la colección no "
+"contiene referencias a otra entidad, sino que es una colección de elementos "
+"que son tipos de valores, aquà especificamente de tipo <literal>String</"
+"literal>. El nombre en minúsculas le dice que es un tipo/conversor de mapeo "
+"de Hibernate. Una vez más, el atributo <literal>table</literal> del elemento "
+"<literal>set</literal> determina el nombre de la tabla para la colección. El "
+"elemento <literal>key</literal> define el nombre de la columna clave foránea "
+"en la tabla de colección. El atributo <literal>column</literal> en el "
+"elemento <literal>element</literal> define el nombre de la columna donde "
+"realmente se almacenarán los valores de la dirección de correo electrónico."
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the updated schema:"
+msgstr "Este es el esquema actualizado:"
+
+#. 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 ""
+"Puede ver que la clave principal de la tabla de colección es, de hecho, una "
+"clave compuesta que utiliza ambas columnas. Esto también implica que no "
+"pueden haber direcciones de correo electrónico duplicadas por persona, la "
+"cual es exactamente la semántica que necesitamos para un conjunto en Java."
+
+#. 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 ""
+"Ahora, puede tratar de agregar elementos a esta colección, al igual que lo "
+"hicimos antes vinculando personas y eventos. Es el mismo código en 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 ""
+"Esta vez no utilizamos una petición de <emphasis>búqueda - fetch -</"
+"emphasis> para dar inicio a la colección. Monitoree su registro SQL e "
+"intente de optimizar esto con una recuperación temprana."
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr "Asociaciones bidireccionales"
+
+#. 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 ""
+"A continuacion vamos a mapear una asociación bidireccional. Vamos a hacer "
+"que la asociación entre persona y evento funcione desde ambos lados en Java. "
+"El esquema de la base de datos no cambia asà que todavÃa tendremos una "
+"multiplicidad muchos-a-muchos."
+
+#. 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 ""
+"Una base de datos relacional es más flexible que un lenguaje de programación "
+"de red ya que no necesita una dirección de navegación; los datos se pueden "
+"ver y recuperar de cualquier forma posible."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"class:"
+msgstr ""
+"Primero, agregue una colección de participantes a la clase <literal>Event</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgstr "Ahora mapee este lado de la asociación en <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 ""
+"Estos son mapeos normales de <literal>set</literal> en ambos documentos de "
+"mapeo. Note que los nombres de las columnas en <literal>key</literal> y "
+"<literal>many-to-many</literal> se intercambiaron en ambos documentos de "
+"mapeo. La adición más importante aquà es el atributo <literal>inverse=\"true"
+"\"</literal> en el elemento <literal>set</literal> del mapeo de colección de "
+"<literal>Event</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 ""
+"Esto significa que Hibernate debe tomar el otro lado, la clase "
+"<literal>Person</literal>, cuando necesite encontrar información sobre el "
+"enlace entre las dos. Esto será mucho más fácil de entender una vez que vea "
+"como se crea el enlace bidireccional entre nuestras dos entidades."
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr "Trabajo con enlaces bidireccionales"
+
+#. 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 ""
+"Primero, recuerde que Hibernate no afecta la semántica normal de Java. ¿Cómo "
+"creamos un enlace entre <literal>Person</literal> y un <literal>Event</"
+"literal> en el ejemplo unidireccional? Agregue una instancia de "
+"<literal>Event</literal> a la colección de referencias de eventos de una "
+"instancia de <literal>Person</literal>. Si quiere que este enlace funcione "
+"bidireccionalmente, tiene que hacer lo mismo del otro lado, añadiendo una "
+"referencia <literal>Person</literal> a la colección en un <literal>Event</"
+"literal>. Este proceso de \"establecer el enlace en ambos lados\" es "
+"absolutamente necesario con enlaces bidireccionales."
+
+#. 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 ""
+"Muchos desarrolladores programan a la defensiva y crean métodos de "
+"administración de enlaces para establecer correctamente ambos lados, (por "
+"ejemplo, en <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 ""
+"Los métodos get y set para la colección ahora se encuentran protegidos. Esto "
+"le permite a las clases en el mismo paquete y a las subclases acceder aún a "
+"los métodos, pero impide a cualquier otro que desordene las colecciones "
+"directamente. Repita los pasos para la colección del otro lado."
+
+#. 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 ""
+"¿Y el atributo de mapeo <literal>inverse</literal>? Para usted y para Java, "
+"un enlace bidireccional es simplemente cuestión de establecer correctamente "
+"las referencias en ambos lados. Sin embargo, Hibernate no tiene suficiente "
+"información para organizar correctamente declaraciones <literal>INSERT</"
+"literal> y <literal>UPDATE</literal> de SQL (para evitar violaciones de "
+"restricciones). El hacer un lado de la asociación <literal>inverse</literal> "
+"le dice a Hibernate que lo considere un <emphasis>espejo</emphasis> del otro "
+"lado. Eso es todo lo necesario para que Hibernate resuelva todos los asuntos "
+"que surgen al transformar un modelo de navegación direccional a un esquema "
+"de base de datos SQL. Las reglas son muy simples: todas las asociaciones "
+"bidireccionales necesitan que uno de los lados sea <literal>inverse</"
+"literal>. En una asociación uno-a-muchos debe ser el lado-de-muchos; y en "
+"una asociación muchos-a-muchos, puede escoger cualquier lado."
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr "Part 3 - La aplicación web EventManager"
+
+#. 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 ""
+"Una aplicación web de Hibernate utiliza <literal>Session</literal> y "
+"<literal>Transaction</literal> casi como una aplicación autónoma. Sin "
+"embargo, algunos patrones comunes son útiles. Ahora puede escribir un "
+"<literal>EventManagerServlet</literal>. Este servlet puede enumerar todos "
+"los eventos almacenados en la base de datos y proporciona una forma HTML "
+"para ingresar eventos nuevos."
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr "Escritura de un servlet básico"
+
+#. 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 ""
+"Primero necesitamos crear nuestro servlet de procesamiento básico. Ya que "
+"nuestro servlet solo maneja pedidos <literal>GET</literal> HTTP sólamente, "
+"solo implementaremos el método <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 ""
+"Guarde este servlet como <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 ""
+"El patrón aplicado aquà se llama <emphasis>sesión-por-petición</emphasis>. "
+"Cuando una petición llega al servlet, se abre una nueva <literal>Session</"
+"literal> de Hibernate por medio de la primera llamada a "
+"<literal>getCurrentSession()</literal> en el <literal>SessionFactory</"
+"literal>. Entonces se inicia una transacción de la base de datos. Todo "
+"acceso a los datos tiene que suceder dentro de una transacción, sin importar "
+"que los datos sean leÃdos o escritos . No utilice el modo auto-commit en las "
+"aplicaciones."
+
+#. 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>No</emphasis> utilice una nueva <literal>Session</literal> de "
+"Hibernate para cada operación de base de datos. Utilice una "
+"<literal>Session</literal> Hibernate que cubra el campo de todo el pedido. "
+"Utilice <literal>getCurrentSession()</literal> para vincularlo "
+"automáticamente al hilo de Java actual."
+
+#. 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 ""
+"Después, se procesan las acciones posibles del pedido y se entrega la "
+"respuesta HTML. Llegaremos a esa parte muy pronto. "
+
+#. 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 ""
+"Finalmente, la unidad de trabajo termina cuando se completa el procesamiento "
+"y la entrega. Si surgió algún problema durante el procesamiento o la "
+"entrega , se presentará una excepción y la transacción de la base de datos "
+"se deshará. Esto completa el patrón <literal>session-per-request</literal>. "
+"En vez del código de demarcación de la transacción en todo servlet, también "
+"podrÃa escribir un filtro de servlet. Véa el sitio web de Hibernate y el "
+"Wiki para obtener más información sobre este patrón llamado <emphasis>sesión "
+"abierta en vista</emphasis>. Lo necesitará tan pronto como considere "
+"representar su vista en JSP, no en un servlet."
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr "Procesamiento y entrega"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now you can implement the processing of the request and the rendering of the "
+"page."
+msgstr ""
+"Ahora puede implementar el procesamiento del pedido y la representación de "
+"la página."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This coding style, with a mix of Java and HTML, would not scale in a more "
+"complex application—keep in mind that we are only illustrating basic "
+"Hibernate concepts in this tutorial. The code prints an HTML header and a "
+"footer. Inside this page, an HTML form for event entry and a list of all "
+"events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
+msgstr ""
+"Dado que este estilo de codificación con una mezcla de Java y HTML no "
+"escalarÃa en una aplicación más compleja - tenga en cuenta que sólo estamos "
+"ilustrando los conceptos básicos de Hibernate en este tutorial. El código "
+"imprime una cabecera y un pie de página HTML. Dentro de esta página se "
+"imprime una forma HTML para entrada de eventos y se imprime una lista de "
+"todos los eventos en la base de datos. El primer método es trivial y su "
+"salida se realiza únicamente en 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 ""
+"El método <literal>listEvents()</literal> utiliza Hibernate "
+"<literal>Session</literal> vinculado al hilo actual para ejecutar una "
+"petición:"
+
+#. 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 ""
+"Finalmente, la acción <literal>store</literal> se despacha al método "
+"<literal>createAndStoreEvent()</literal>, el cual también utiliza la "
+"<literal>Session</literal> del hilo actual:"
+
+#. 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 ""
+"El servlet se encuentra completo. Un pedido al servlet será procesado en una "
+"sola <literal>Session</literal> y <literal>Transaction</literal>. Como lo "
+"vimos antes en la aplicación autónoma, Hibernate puede enlazar "
+"automáticamente estos objetos al hilo actual de ejecución. Esto le da la "
+"libertad de utilizar capas en su código y acceder a la "
+"<literal>SessionFactory</literal> de cualquier manera que lo desee. "
+"Usualmente, usted utilizarÃa un diseño más sofisticado y moverÃa el código "
+"de acceso de datos a los objetos de acceso de datos (el patrón DAO). "
+"Refiérase al Wiki de Hibernate para ver más ejemplos."
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr "Despliegue y prueba"
+
+#. 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 ""
+"Para implementar esta aplicación para prueba debemos crear una Web ARchive "
+"(WAR). Primero debemos definir el descriptor WAR como <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 ""
+"Para construir y desplegar llame a <literal>mvn package</literal> en su "
+"directorio de proyecto y copie el archivo <literal>hibernate-tutorial.war</"
+"literal> en su directorio <literal>webapp</literal> 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 ""
+"Si no tiene Tomcat instalado, descárguelo de <ulink url=\"http://"
+"tomcat.apache.org/\" /> y siga las instrucciones de instalación. Nuestra aplicación "
+"no requiere cambios a la configuración estándar de 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 ""
+"Una vez que se encuentre desplegado y que Tomcat esté ejecutando, acceda la "
+"aplicación en <literal>http://localhost:8080/hibernate-tutorial/"
+"eventmanager</literal>. Asegúrese de ver el registro de Tomcat para ver a "
+"Hibernate iniciar cuando llegue el primer pedido a su servlet (se llama al "
+"inicializador estático en <literal>HibernateUtil</literal>) y para obetener "
+"la salida detallada si ocurre alguna excepción."
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "Resumen"
+
+#. 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 ""
+"Este tutorial abordó los puntos básicos de la escritura de una simple "
+"aplicación de Hibernate autónoma y una pequeña aplicación web. Encontrará "
+"más tutoriales en el website de Hibernate <ulink url=\"http://hibernate.org"
+"\"></ulink>."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/xml.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/xml.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/content/xml.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,248 @@
+# translation of xml.po to
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Angela Garcia <agarcia at redhat.com>, 2009, 2010.
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: xml\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-03-15 12:56+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+msgstr "Mapeo 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> El mapeo XML es una funcionalidad experimental en Hibernate 3.0 y "
+"actualmente se encuentra bajo desarrollo activo. </emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr "Trabajo con datos XML"
+
+#. 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 le permite trabajar con datos XML persistentes en casi de la misma "
+"forma que trabaja con POJOs persistentes. Un árbol XML analizado "
+"semáticamente se puede considerar como otra manera de representar los datos "
+"relacionales a nivel de objetos, en lugar de POJOs."
+
+#. 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 soporta dom4j como API para manipular árboles XML. Puede escribir "
+"consultas que recuperen árboles dom4j de la base de datos y puede tener "
+"cualquier modificación que realice al árbol sincronizada automáticamente con "
+"la base de datos. Incluso puede tomar un documento XML, analizarlo "
+"sintácticamente utilizando dom4j, y escribirlo a la base de datos con "
+"cualquiera de las operaciones básicas de Hibernate: <literal>persist(), "
+"saveOrUpdate(), merge(), delete(), replicate()</literal> (merge aún no está "
+"soportado)."
+
+#. 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 ""
+"Esta funcionalidad tiene muchas aplicaciones incluyendo la importación/"
+"exportación de datos, externalización de datos de entidad por medio de JMS o "
+"SOAP y reportes basados en 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 ""
+"Un sólo mapeo se puede utilizar para mapear simultáneamente las propiedades "
+"de una clase y los nodos de un documento XML a la base de datos, o si no hay "
+"ninguna clase a mapear, se puede utilizar para mapear sólo el XML."
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying XML and class mapping together"
+msgstr "Especificación de los mapeos de XML y de clase en conjunto"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr "Este es un ejemplo del mapeo de un POJO y XML de manera simultánea:"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr "Especificación de sólo un mapeo XML"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr "Este es un ejemplo donde no hay ninguna clase POJO:"
+
+#. 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 ""
+"Este mapeo le permite acceder a los datos como un árbol dom4j o como un "
+"grafo de parejas nombre/valor de propiedad o<literal>Map</literal>as de "
+"Java. Los nombres de propiedades son construcciones puramente lógicas a las "
+"que se puede hacer referencia en consultas HQL."
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr "Mapeo de metadatos XML"
+
+#. 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 ""
+"Muchos elementos de mapeo de Hibernate aceptan el atributo <literal>node</"
+"literal>. Esto le permite especificar el nombre de un atributo o elemento "
+"XML que contenga los datos de la propiedad o entidad. El formato del "
+"atributo <literal>node</literal> tiene que ser uno de los siguientes: "
+
+#. 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 "
+
+#. 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"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr "<literal>\".\"</literal> - mapea al elemento padre "
+
+#. 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>: mapea al atributo "
+"mencionado del elemento nombrado"
+
+#. 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 ""
+"Para las colecciones y asociaciones monovaluadas, existe un atributo "
+"adicional <literal>embed-xml</literal>. Si <literal>embed-xml=\"true\"</"
+"literal>, el cual es el valor por defecto, el árbol XML para la entidad "
+"asociada (o colección de tipo de valor) será incluida directamente en el "
+"árbol XML para la entidad que posee la asociación. De otra manera, si "
+"<literal>embed-xml=\"false\"</literal>, entonces sólo el valor identificador "
+"referenciado aparecerá en el XML para asociaciones de punto único y para las "
+"colecciones simplemente no aparecerá."
+
+#. 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 ""
+"No deje <literal>embed-xml=\"true\"</literal> para demasiadas asociaciones "
+"ya que XML no se ocupa bien de la circularidad."
+
+#. 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 ""
+"En este caso, la colección de ids de cuenta están incluÃdos, pero no los "
+"datos reales de cuenta. La siguiente consulta HQL:"
+
+#. Tag: para
+#, no-c-format
+msgid "would return datasets such as this:"
+msgstr "retornarÃa conjuntos de datos como este:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
+"many></literal> mapping, the data might look more like this:"
+msgstr ""
+"Si establece <literal>embed-xml=\"true\"</literal> en el mapeo <literal><"
+"one-to-many></literal>, puede que los datos se vean asÃ:"
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr "Manipulación de datos XML"
+
+#. 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 ""
+"Puede releer y actualizar documentos XML en la aplicación. Puede hacer esto "
+"obteniendo una sesión 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 ""
+"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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Conventions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Conventions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Conventions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,217 @@
+# translation of Conventions.po to
+#
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Conventions\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-17 16:34+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr "Convenciones del documento"
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr "Este manual utiliza varias convenciones para resaltar algunas palabras y frases y para llamar la atención sobre ciertas partes especÃficas de información."
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr "En ediciones PDF y en papel, este manual utiliza tipos de letra procedentes de <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink>. Este tipo de letra también se utilizan en ediciones de HTML si están instalados en su sistema. Si no, se muestran tipografÃas alternas pero equivalentes. Nota: Red Hat Enterprise Linux 5 y posteriores incluyen Liberation Fonts predeterminadas."
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr "Convenciones tipográficas"
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr "Se utilizan cuatro convenciones tipográficas para llamar la atención sobre palabras o frases especÃficas. Dichas convenciones y las circunstancias en que se aplican son las siguientes:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr "<literal>Negrita monoespaciado</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr "Se utiliza para resaltar la entrada del sistema, incluyendo comandos de shell, nombres de archivos y rutas. También se utiliza para resaltar teclas claves y combinaciones de teclas. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr "Para ver el contenido del archivo <filename>my_next_bestselling_novel</filename> en su directorio actual de trabajo introduza el comando <command>cat my_next_bestselling_novel</command> en el intérprete de comandos y teclee <keycap>Enter</keycap> para ejecutar el comando."
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr "Lo anterior incluye un nombre de archivo, un comando de shell y una tecla clave, todas presentadas en negrita monoespaciada y todas distinguibles gracias al contexto."
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr "Las combinaciones clave se pueden distinguir de las teclas clave por medio del guión que conecta cada parte de una combinación de teclas. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr "Teclee <keycap>Enter</keycap> para ejecutar el comando."
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr "Pulse <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> para cambiar a la primera terminal virtual. Pulse <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> para volver a su sesión de ventanas-X. "
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr "El primer parrafo resalta la tecla clave determinada que se debe pulsar. El segundo resalta dos combinaciones de teclas (cada uno un conjunto de tres teclas claves, cada conjunto presionado simultáneamente)."
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr "Si el código fuente es discutido, nombres de clases, métodos, funciones, nombres de variables y valores de retorno mencionados dentro de un párrafo se presentarán como lo anterior, en <literal>negrita-monoespaciado</literal>. Por ejemplo: "
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr "Las clases de archivo relacionadas incluyen <classname>filesystem</classname> para sistemas de archivos, <classname>file</classname> para archivos y <classname>dir</classname> para directorios. Cada clase tiene su propio conjunto asociado de permisos. "
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr "<application>Negrita proporcional</application>"
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr "Esta denota palabras o frases encontradas en un sistema, incluyendo nombres de aplicaciones; texto de ventanas de diálogos, botones etiquetados, botones de radio, tÃtulos de menús y tÃtulos del sub-menú. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr "Seleccionar <menuchoice><guimenu>Sistema</guimenu><guisubmenu>Preferencias</guisubmenu><guimenuitem>Ratón</guime desde la barra del menú principal para lanzar <application>Preferencias del ratón</application>. En la pestaña de <guilabel>Botones</guilabel>, haga clic en el <guilabel>botón de la izquiera del ratón</guilabel> y luego haga clic en <guibutton>Cerrar</guibutton> para cambiar el botón principal del ratón de la izquierda a la derecha (adecuando el ratón para la mano izquierda). "
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr "Para insertar un caracter especial en un archivo <application>gedit</application>, seleccione desde la barra del menú principal <menuchoice><guimenu>Aplicaciones</guimenu><guisubmenu>Accesorios</guisubmenu><guimenuitem>Mapa de caracteres</guimenuitem></menuchoice>. Luego, desde la barra del menú elija <menuchoice><guimenu>Búsqueda</guimenu><guimenuitem>Buscar…</guimenuitem></menuchoice> de la barra del menú <application>Mapa de caracteres</application>, teclee el nombre del caracter en el campo de <guilabel>Búsqueda</guilabel> y haga clic en <guibutton>Siguiente</guibutton>. El caracter buscado se resaltará en la <guilabel>Tabla de caracteres</guilabel>. Haga doble clic en este caracter resaltado para colocarlo en el campo de <guilabel>Texto para copiar</guilabel> y luego haga clic en el botón de <guibutton>Copiar</guibutton>. Ahora regrese a su documento y elija <menuchoice><guimenu>Editar</guimenu><guimenuitem>Pegar</guimenuitem></menuchoice> desde l!
a barra de menú de <application>gedit</application>. "
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr "El texto anterior incluye nombres de aplicaciones; nombres de menú de todo el sistema y elementos; nombres de menú de aplicaciones especÃficas y botones y texto hallados dentro de una interfaz GUI, todos presentados en negrita proporcional y distinguibles por contexto."
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr "<command><replaceable>Itálicas-negrita monoespaciado</replaceable></command> o <application><replaceable>Itálicas-negrita proporcional</replaceable></application>"
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr "Negrita monoespaciado o negrita proporcional, la adición de itálicas indica texto reemplazable o variable. Las itálicas denotan texto que usted no escribe literalmente o texto mostrado que cambia dependiendo de la circunstancia. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr "Para conectar a una máquina remota utilizando ssh, teclee <command>ssh <replaceable>nombredeusuario</replaceable>@<replaceable>nombre.dominio</replaceable></command> en un intérprete de comandos de shell. Si la máquina remota es <filename>example.com</filename> y su nombre de usuario en esa máquina es john, teclee <command>ssh john at example.com</command>."
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr "El comando <command>mount -o remount <replaceable>file-system</replaceable></command> remonta el sistema de archivo nombrado. Por ejemplo, para volver a montar el sistema de archivos <filename>/home</filename>, el comando es <command>mount -o remount /home</command>."
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr "Para ver la versión de un paquete actualmente instalado, utilice el comando <command>rpm -q <replaceable>paquete</replaceable></command>. Ãste entregará el siguiente resultado: <command><replaceable>paquete-versión-lanzamiento</replaceable></command>. "
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr "Observe las palabras en itálicas- negrita anteriores — nombre de usuario, domain.name, sistema de archivos, paquete, versión y lanzamiento. Cada palabra es un marcador de posición tanto para el texto que usted escriba al ejecutar un comando como para el texto que el sistema presente."
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr "Aparte del uso estándar para presentar el tÃtulo de un trabajo, las itálicas denotan el primer uso de un término nuevo e importante. Por ejemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr "Publican es un sistema de publicación <firstterm>DocBook</firstterm>."
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr "Convenciones para citaciones"
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr "La salida de la terminal y los listados del código fuente se distinguen visualmente del texto que los rodea."
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr "La salida enviada a una terminal está establecida en tipo <computeroutput>romano monoespaciado</computeroutput> y se presenta asÃ: "
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr "Los listados del código fuente también se establecen en <computeroutput>romano monoespaciado</computeroutput>, pero se presentan y resaltan de la siguiente manera: "
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr "Notas y advertencias"
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr "Finalmente, utilizamos tres estilos visuales para llamar la atención sobre la información que de otro modo se podrÃa pasar por alto."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr "Una nota es una sugerencia, un atajo o un enfoque opcional que se tiene a mano para la tarea. Ignorar una nota no deberÃa tener consecuencias negativas, pero podrÃa perderse de algunos trucos que pueden facilitarle las cosas."
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr "Importante"
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr "Los cuadros de importante dan detalles de cosas que se pueden pasar por alto fácilmente: cambios de configuración únicamente aplicables a la sesión actual, o servicios que necesitan reiniciarse antes de que se aplique una actualización. Ignorar estos cuadros de importante no ocasionará pérdida de datos, pero puede causar enfado y frustración."
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr "Advertencia"
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr "Las advertencias no deben ignorarse. Ignorarlas muy probablemente ocasionará pérdida de datos. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,27 @@
+# translation of Feedback.po to
+#
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-03-17 14:54+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr "¡Necesitamos sus comentarios!"
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr "Debe sobreescribir esto creando su propio archivo local Feedback.xml. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/fallback_content/Legal_Notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,24 @@
+# translation of Legal_Notice.po to
+#
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Legal_Notice\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-17 15:06+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr ""
+"Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; Este material solamente se distribuye bajo los términos y condiciones"
+"establecidos en la licencia de documentación libre de GNU (GFDL), V1.2 o versiones posteriores (la última versión está disponible en <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/legal_notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/legal_notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/es-ES/legal_notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,78 @@
+# translation of legal_notice.po to
+# Angela Garcia <agarcia at redhat.com>, 2010.
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-17 16:47+1000\n"
+"Last-Translator: Angela Garcia <agarcia at redhat.com>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: legal_notice\n"
+"Language-Team: <en at li.org>\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"MIME-Version: 1.0\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr "Advertencia legal"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
+"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
+"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
+"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
+"Triangle Park</city>, <state>NC</state><postcode>27709</"
+"postcode><country>USA</country> </address>"
+msgstr ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
+"state><postcode>27606-2072</postcode><country>USA</country> <phone>Teléfono: +1 "
+"919 754 3700</phone> <phone>Teléfono: 888 733 4281</phone> <fax>Fax: +1 919 754 "
+"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
+"<state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+msgstr ""
+"Derechos de autor <trademark class=\"copyright\"></trademark> 2007 por Red Hat, Inc. "
+"Este material con derechos de autor está disponible para quien quiera utilizarlo, "
+"modificarlo, copiarlo o redistribuirlo sujeto a los términos y condiciones del "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Licencia Pública General Menor</ulink> tal como los publica la fundación para el software libre."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+msgstr ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+msgstr ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr "The GPG fingerprint of the security at redhat.com key is:"
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Book_Info.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Book_Info.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Book_Info.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,28 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-02-04T04:51:21\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&version;"
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,23 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#~ msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+#~ msgstr "HIBERNATE - Relational Persistence for Idiomatic Java"
+
+#~ msgid "Hibernate Reference Documentation"
+#~ msgstr "Hibernate Reference Documentation"
+
+#~ msgid "©rightHolder;"
+#~ msgstr "©rightHolder;"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Hibernate_Reference.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Hibernate_Reference.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/Hibernate_Reference.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,30 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\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-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/author_group.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/author_group.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/author_group.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,149 @@
+# Language ja-JP translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2009-07-14 19:55+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: 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 ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/architecture.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/architecture.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/architecture.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,603 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr "ã¢ã¼ããã¯ãã£"
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr "æ¦è¦³"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The diagram below provides a high-level view of the Hibernate architecture:"
+msgstr "Hibernate ã¢ã¼ããã¯ãã£ã®ï¼é常ã«ï¼é«ãã¬ãã«ããã®ãã¥ã¼ï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We do not have the scope in this document to provide a more detailed view of "
+"all the runtime architectures available; Hibernate is flexible and supports "
+"several different approaches. We will, however, show the two extremes: "
+"\"minimal\" architecture and \"comprehensive\" architecture."
+msgstr ""
+"ããã§å®è¡æã¢ã¼ããã¯ãã£ã®ãã詳細ãªãã¥ã¼ããè¦ããã¾ããããããã«ãã "
+"Hibernate ã¯æè»ã§ããããããããªã¢ããã¼ãããµãã¼ããã¦ãã¾ããããã§ã¯ã2"
+"ã¤ã®æ¥µç«¯ãªä¾ããè¦ããã¾ããã軽ããã¢ã¼ããã¯ãã£ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ãèª"
+"åã® JDBC ã³ãã¯ã·ã§ã³ãç¨æããã¢ããªã±ã¼ã·ã§ã³èªèº«ããã©ã³ã¶ã¯ã·ã§ã³ã管ç"
+"ãã¾ãããã®æ¹æ³ã¯ã Hibernate API ã®æå°éã®ãµãã»ããã使ãã¾ãï¼"
+
+#. 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 ããã¢ããªã±ã¼ã·ã§ã³ã«å¯¾ãã¦æ°¸ç¶åãµã¼ãã¹ ï¼ã¨æ°¸ç¶ãªã"
+"ã¸ã§ã¯ãï¼ãæä¾ããããã«ããã¼ã¿ãã¼ã¹ã¨è¨å®ãã¼ã¿ã使ããã¨ã示ãã¦ãã¾"
+"ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The \"minimal\" architecture has the application provide its own JDBC "
+"connections and manage its own transactions. This approach uses a minimal "
+"subset of Hibernate's APIs:"
+msgstr ""
+"ããã§å®è¡æã¢ã¼ããã¯ãã£ã®ãã詳細ãªãã¥ã¼ããè¦ããã¾ããããããã«ãã "
+"Hibernate ã¯æè»ã§ããããããããªã¢ããã¼ãããµãã¼ããã¦ãã¾ããããã§ã¯ã2"
+"ã¤ã®æ¥µç«¯ãªä¾ããè¦ããã¾ããã軽ããã¢ã¼ããã¯ãã£ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ãèª"
+"åã® JDBC ã³ãã¯ã·ã§ã³ãç¨æããã¢ããªã±ã¼ã·ã§ã³èªèº«ããã©ã³ã¶ã¯ã·ã§ã³ã管ç"
+"ãã¾ãããã®æ¹æ³ã¯ã Hibernate API ã®æå°éã®ãµãã»ããã使ãã¾ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The \"comprehensive\" architecture abstracts the application away from the "
+"underlying JDBC/JTA APIs and allows Hibernate to manage the details."
+msgstr ""
+"ã軽ããã¢ã¼ããã¯ãã£ã¯ãã¢ããªã±ã¼ã·ã§ã³ããããã®ä¸ã«ä½ç½®ãã JDBC ã JTA "
+"ã® API ãåãæã£ã¦æ½è±¡åãããã®è©³ç´°ã®é¢åã Hibernate ã«è¦ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr "以ä¸ã¯ãå³ã«å«ã¾ãããªãã¸ã§ã¯ãã®å®ç¾©ã§ãï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A threadsafe, immutable cache of compiled mappings for a single database. A "
+"factory for <literal>Session</literal> and a client of "
+"<literal>ConnectionProvider</literal>, <literal>SessionFactory</literal> can "
+"hold an optional (second-level) cache of data that is reusable between "
+"transactions at a process, or cluster, level."
+msgstr ""
+"1ã¤ã®ãã¼ã¿ãã¼ã¹ã«å¯¾ããã³ã³ãã¤ã«ããããããã³ã°ã®ã¹ã¬ããã»ã¼ããªï¼æ´æ°ä¸"
+"è½ã®ï¼ãã£ãã·ã¥ã <literal>Session</literal> ã®ãã¡ã¯ããªã§ããã "
+"<literal>ConnectionProvider</literal> ã®ã¯ã©ã¤ã¢ã³ãããªãã·ã§ã³ã¨ãã¦ããã"
+"ã»ã¹ã¾ãã¯ã¯ã©ã¹ã¿ã¬ãã«ã«ããã¦ããã©ã³ã¶ã¯ã·ã§ã³éã§åå©ç¨å¯è½ãªãã¼ã¿ã®"
+"ï¼äºæ¬¡ï¼ãã£ãã·ã¥ãæã¡ã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr "Session (<literal>org.hibernate.Session</literal>)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A single-threaded, short-lived object representing a conversation between "
+"the application and the persistent store. It wraps a JDBC connection and is "
+"a factory for <literal>Transaction</literal>. <literal>Session</literal> "
+"holds a mandatory first-level cache of persistent objects that are used when "
+"navigating the object graph or looking up objects by identifier."
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã¨æ°¸ç¶ã¹ãã¢ã¨ã®å¯¾è©±ã表ããã·ã³ã°ã«ã¹ã¬ããã§çå½ã®ãªãã¸ã§"
+"ã¯ãã JDBC ã³ãã¯ã·ã§ã³ãã©ãããã¾ãã <literal>Transaction</literal> ã®"
+"ãã¡ã¯ããªã§ããæ°¸ç¶ãªãã¸ã§ã¯ãã®å¿
é ã®ï¼ä¸æ¬¡ï¼ãã£ãã·ã¥ãä¿æãã¾ãããã®"
+"ãã£ãã·ã¥ã¯ãªãã¸ã§ã¯ãã°ã©ããããã²ã¼ã·ã§ã³ããæããèå¥åã§ãªãã¸ã§ã¯ã"
+"ãæ¤ç´¢ããæã«ä½¿ããã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr "Persistent objects 㨠Collections"
+
+#. 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 ã®ãã¨ãããã¾ãããç¹å¾´çãªãã¨ã¯ããã®æç¹ã§ã®ï¼ãã 1"
+"ã¤ã®ï¼ <literal>Session</literal> ã¨é¢é£ãã¦ãããã¨ã§ãã <literal>Session</"
+"literal> ãã¯ãã¼ãºãããã¨ããã«ããããã¯åãé¢ããã¦ä»ã®ã¢ããªã±ã¼ã·ã§ã³å±¤"
+"ããèªç±ã«ä½¿ããã¨ãã§ãã¾ãï¼ä¾ãã°ãã¼ã¿ãã©ã³ã¹ãã¡ãªãã¸ã§ã¯ãã¨ãã¦ãã"
+"ã¬ã¼ã³ãã¼ã·ã§ã³å±¤ãããã¾ãã¯ãã¬ã¼ã³ãã¼ã·ã§ã³å±¤ã¸ç´æ¥ä½¿ç¨ã§ãã¾ãï¼ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr "Transient 㨠detached 㪠objects 㨠Collections"
+
+#. 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> ã§ã¤ã³ã¹ã¿ã³ã¹åããããã®"
+"ã©ã¡ããã§ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
+
+#. 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 ""
+"(ãªãã·ã§ã³) ååæ§ãæã¤ä½æ¥åä½ (Unit of Work) ãæå®ããããã«ãã¢ããªã±ã¼"
+"ã·ã§ã³ã使ç¨ãããã·ã³ã°ã«ã¹ã¬ããã§çå½ãªãªãã¸ã§ã¯ããä¸ã«ä½ç½®ãã 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>)"
+
+#. 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> ããã¢ããª"
+"ã±ã¼ã·ã§ã³ãæ½è±¡åãã¾ããã¢ããªã±ã¼ã·ã§ã³ã«ã¯å
¬éããã¾ããããéçºè
ãç¶æ¿"
+"ã¾ãã¯å®è£
ãããã¨ã¯å¯è½ã§ãã"
+
+#. Tag: term
+#, no-c-format
+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> ã¤ã³ã¹ã¿ã³ã¹ã®ãã¡ã¯ããªãã¢ããª"
+"ã±ã¼ã·ã§ã³ã«ã¯å
¬éããã¾ããããéçºè
ãç¶æ¿ã¾ãã¯å®è£
ãããã¨ã¯å¯è½ã§ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr "<emphasis>Extension Interfaces</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 ããã¥ã¡ã³ããåç
§ãã¦ãã ããã"
+
+#. 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 ""
+"ã軽ããã¢ã¼ããã¯ãã£ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ã¯ç´æ¥ JTA ã JDBC ã¨å¯¾è©±ãããã"
+"ã«ã <literal>Transaction</literal> ã <literal>TransactionFactory</literal> "
+"ã <literal>ConnectionProvider</literal> ã® API ããã¤ãã¹ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr "ã¤ã³ã¹ã¿ã³ã¹ã®ç¶æ
"
+
+#. 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>æ°¸ç¶ã³ã³ããã¹ã</emphasis> ã«ãã£ã¦æ±ºã¾ãã¾ãã Hibernate ã® "
+"<literal>Session</literal> ãªãã¸ã§ã¯ãããæ°¸ç¶ã³ã³ããã¹ãã«ãªãã¾ã:"
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr "transient"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The instance is not associated with any persistence context. It has no "
+"persistent identity or primary key value."
+msgstr ""
+"ãã®ç¶æ
ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãç¾å¨ãããã¦éå»ã«ããã¦ããæ°¸ç¶ã³ã³ããã¹ãã«é¢é£"
+"ã¥ãã¦ãã¾ãããã¾ããæ°¸ç¶ ID ï¼ä¸»ãã¼ã®å¤ï¼ã æã£ã¦ãã¾ããã"
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr "persistent"
+
+#. 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 ""
+"ãã®ç¶æ
ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ããã®æç¹ã§æ°¸ç¶ã³ã³ããã¹ãã«é¢é£ã¥ãã¦ãã¾ããã¾"
+"ããæ°¸ç¶ ID ï¼ä¸»ãã¼ã®å¤ï¼ãæã¡ãããã¦ãã¯ãã¼ã¿ãã¼ã¹ã«å¯¾å¿ããè¡ãæã£ã¦"
+"ããã§ããããç¹å®ã®æ°¸ç¶ã³ã³ããã¹ãã®ãªãã§ã¯ãæ°¸ç¶ ID ã Java ã® ID ï¼ãªã"
+"ã¸ã§ã¯ãã®ã¡ã¢ãªä¸ã®ä½ç½®ï¼ã¨åãã§ãããã¨ã Hibernate ã <emphasis>ä¿è¨¼</"
+"emphasis> ãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr "detached"
+
+#. 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 ""
+"ãã®ç¶æ
ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ããã¤ã¦æ°¸ç¶ã³ã³ããã¹ãã«é¢é£ã¥ãããããããã®ã³ã³"
+"ããã¹ããã¯ãã¼ãºããããããããã¯ãä»ã®ããã»ã¹ã«ãã®ã¤ã³ã¹ã¿ã³ã¹ãã·ãªã¢"
+"ã©ã¤ãºããããã§ãããã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãæ°¸ç¶ ID ãæã¡ãããã¦ãã¯ãã¼ã¿ãã¼"
+"ã¹ã«å¯¾å¿ããè¡ãæã£ã¦ããã§ããããåé¢ã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ãã¦ã¯ãæ°¸ç¶ ID 㨠"
+"Java ã® ID ã¨ã®é¢é£ã¯ã Hibernate ãä¿è¨¼ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr "JMX ã¨ã®çµ±å"
+
+#. 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 æ¨æºã§ãã JMX æ¨æºãµã¼ãã¹ãéãã¦ã "
+"Hibernate ã¯ç®¡çããã¾ãããã£ã¹ããªãã¥ã¼ã·ã§ã³ã®ä¸ã« <literal>org."
+"hibernate.jmx.HibernateService</literal> ã¨ãã MBean å®è£
ãç¨æãã¦ãã¾ãã"
+
+#. 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 ã¦ã¼ã¶ã¼ã¬ã¤ããåç
§ãã¦ãã ããã JBoss ã¢ããª"
+"ã±ã¼ã·ã§ã³ãµã¼ãã¼ã«ããã¦ã JMX ã使ã£ã¦ãããã¤ããã¨ã次ã®ã¡ãªãããå¾ãã"
+"ã¾ã:"
+
+#. 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> ã使ç¨ãã¦ãã ã"
+"ããï¼ <literal>Session</literal> ã«ã¢ã¯ã»ã¹ããããã«ã¯ã "
+"<literal>HibernateContext</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> é常ã( EAR ã¾ã㯠SAR ãã¡ã¤ã«ã«ããï¼ "
+"JBoss ãµã¼ãã¹ãããã¤ã¡ã³ããã£ã¹ã¯ãªãã¿ã使ã£ã¦ã 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."
+msgstr ""
+"ãããã®ãªãã·ã§ã³ã«ã¤ãã¦ã®è©³ç´°ãªæ
å ±ã¯ã JBoss ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã¦ã¼"
+"ã¶ã¼ã¬ã¤ããåèã«ãã¦ãã ããã"
+
+#. Tag: para
+#, 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 ""
+"JMX ãµã¼ãã¹ã¨ãã¦å©ç¨å¯è½ãªä»ã®æ©è½ã«ã Hibernate å®è¡æçµ±è¨æ
å ±ãããã¾ãã"
+"<xref linkend=\"configuration-optional-statistics\"/> ãè¦ã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr "JCA ãµãã¼ã"
+
+#. 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 ã³ãã¯ã¿ã¨ãã¦ãè¨å®ã§ãã¾ãã詳細ã«ã¤ãã¦ã¯ã Web ãµã¤ãã"
+"è¦ã¦ãã ããã Hibernate JCA ãµãã¼ãã¯ãä»ã®ã¨ããå®é¨æ®µéã¨ãã¦èãããã¦ã"
+"ããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Contextual sessions"
+msgstr "ã³ã³ããã¹ãä¸ã®ã»ãã·ã§ã³"
+
+#. 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> ã®ã"
+"ããªãã«ãã¼ã¯ã©ã¹ãå©ç¨ãããã proxy/interception ãã¼ã¹ã®ãã³ã³ããã¹ãä¸"
+"ã®ã»ãã·ã§ã³ããæä¾ãã ï¼Spring ã Pico ã®ãããªï¼ãµã¼ããã¼ãã£ã®ãã¬ã¼ã "
+"ã¯ã¼ã¯ãå©ç¨ãããã®ããããã§ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Starting with version 3.0.1, Hibernate added the <literal>SessionFactory."
+"getCurrentSession()</literal> method. Initially, this assumed usage of "
+"<literal>JTA</literal> transactions, where the <literal>JTA</literal> "
+"transaction defined both the scope and context of a current session. Given "
+"the maturity of the numerous stand-alone <literal>JTA TransactionManager</"
+"literal> implementations, most, if not all, applications should be using "
+"<literal>JTA</literal> transaction management, whether or not they are "
+"deployed into a <literal>J2EE</literal> container. Based on that, the "
+"<literal>JTA</literal>-based contextual sessions are all you need to use."
+msgstr ""
+"ãã¼ã¸ã§ã³ 3.0.1 ããã Hibernate ã«ã¯ <literal>SessionFactory."
+"getCurrentSession()</literal> ã¡ã½ãããå ããã¾ãããããã¯ã <literal>JTA</"
+"literal> ãã©ã³ã¶ã¯ã·ã§ã³ã®ä½¿ç¨ãåæã«ãã¦ãã¾ãã <literal>JTA</literal> ã"
+"ã©ã³ã¶ã¯ã·ã§ã³ã¯ãç¾å¨ã®ã»ãã·ã§ã³ã®ã¹ã³ã¼ãã¨ã³ã³ããã¹ãã®ä¸¡æ¹ãå®ç¾©ãã¾"
+"ãã Hibernate ãã¼ã ã¯ã次ã®ãã¨ã主張ãã¾ãã巨大ãªã¹ã¿ã³ãã¢ãã³ã® "
+"<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> ) ã追å ããã¾ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"See the Javadocs for the <literal>org.hibernate.context."
+"CurrentSessionContext</literal> interface for a detailed discussion of its "
+"contract. It defines a single method, <literal>currentSession()</literal>, "
+"by which the implementation is responsible for tracking the current "
+"contextual session. Out-of-the-box, Hibernate comes with three "
+"implementations of this interface:"
+msgstr ""
+"<literal>org.hibernate.context.CurrentSessionContext</literal> ã¤ã³ã¿ãã§ã¼ã¹"
+"ã®è¦ç´ã«ã¤ãã¦ã®è©³ç´°ãªå
容㯠Javadoc ãåç
§ãã¦ãã ãããããã«ã¯ã "
+"<literal>currentSession()</literal> ã¨ãã1ã¤ã®ã¡ã½ãããå®ç¾©ããã¦ããããã®"
+"å®è£
ã¯ãç¾å¨ã®ãã³ã³ããã¹ãä¸ã®ã»ãã·ã§ã³ãã追跡ãããã¨ã«è²¬ä»»ãæã¡ã¾ãã"
+"ãã®ã¾ã¾ä½¿ããããã«ã Hibernate ã¯ãã®ã¤ã³ã¿ãã§ã¼ã¹ã®å®è£
ã2ã¤æä¾ãã¦ãã¾"
+"ãã"
+
+#. 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 ãåç
§ãã¦ãã ããã"
+
+#. 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 ãåç
§ãã¦ãã "
+"ããã"
+
+#. 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> - ã¹ã¬ããã®å®"
+"è¡ã«ãã£ã¦ãç¾å¨ã®ã»ãã·ã§ã³ã追跡ããã¾ãããããããã®ã¯ã©ã¹ã® static ã¡"
+"ã½ãã㧠<literal>Session</literal> ã¤ã³ã¹ã¿ã³ã¹ããã¤ã³ã/ã¢ã³ãã¤ã³ããã責"
+"ä»»ã¯ããªãã«ããã¾ããããã¯æ±ºã㦠<literal>Session</literal> ããªã¼ãã³ãã"
+"ã©ãã·ã¥ãã¯ãã¼ãºãã¾ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first two implementations provide a \"one session - one database "
+"transaction\" programming model. This is 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 ""
+"ã¯ããã®2ã¤ã®å®è£
ã¯ãã1ã»ãã·ã§ã³ - 1ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãããã°ã©"
+"ãã³ã°ã¢ãã«ãæä¾ãã¾ãããã㯠<emphasis>ãªã¯ã¨ã¹ããã¨ã®ã»ãã·ã§ã³"
+"ï¼session-per-requestï¼</emphasis> ã¨ãã¦ãç¥ããã¦ããã使ããã¦ãã¾ãã "
+"Hibernate ã»ãã·ã§ã³ã®éå§ã¨çµäºã¯ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®æéã§æ±ºã¾"
+"ãã¾ãã JTA ã使ããªãæ®éã® JSE ã§ãããã°ã©ã ä¸ã®ãã©ã³ã¶ã¯ã·ã§ã³å¢çè¨å®"
+"ãè¡ããªããã³ã¼ãããåºç¤ã®ãã©ã³ã¶ã¯ã·ã§ã³ã·ã¹ãã ãé è½ããããã«ã "
+"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> ã使ããã¨ã«æ³¨æãã¦ãã ãããé常ãã®ãã©ã¡ã¼ã¿"
+"ã®å¤ã«ã¯ã3ã¤ã®å®è£
ã®ä¸ãã使ç¨ããå®è£
ã¯ã©ã¹ã®ååãç´æ¥æå®ãã¾ãããããã"
+"\"jta\"ã \"thread\"ã \"managed\"ã¨ããããããã®çç¥åãç¨æããã¦ãã¾ãã"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/association_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/association_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/association_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1133 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr "é¢é£ãããã³ã°"
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr "ã¤ã³ãããã¯ã·ã§ã³"
+
+#. Tag: para
+#, 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 ""
+"é¢é£ãããã³ã°ã¯ãã°ãã°ç解ãæãé£ãããã®ã«ãªãã¾ãããã®ç« ã§ã¯ãåºæ¬çãª"
+"ä¸ã¤ä¸ã¤ã®ã±ã¼ã¹ã«ã¤ãã¦è¿°ã¹ã¾ããåæ¹åã®ãããã³ã°ããå§ããããããåæ¹å"
+"ã®ã±ã¼ã¹ã«ã¤ãã¦èãã¦ããã¾ããä¾ã¨ãã¦ã <literal>Person</literal> 㨠"
+"<literal>Address</literal> ãç¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations will be classified by multiplicity and whether or not they map "
+"to an intervening join table."
+msgstr ""
+"é¢é£ã¯ãçµåãã¼ãã«ãå
¥ããããã©ããã¨ãå¤é度ã«ãã£ã¦åé¡ãããã¨ã«ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Nullable foreign keys are not considered to be good practice in traditional "
+"data modelling, so our examples do not use nullable foreign keys. This is "
+"not a requirement of Hibernate, and the mappings will work if you drop the "
+"nullability constraints."
+msgstr ""
+"null å¯è½ãªå¤é¨ãã¼ã¯å¾æ¥åãã¼ã¿ã¢ããªã³ã°ã®ä¸ã§ã¯è¯ãç¿æ
£ã¨è¦ãªããã¦ããªã"
+"ããããã¹ã¦ã®ä¾ã§ not null ã®å¤é¨ãã¼ã使ç¨ãã¾ãããã㯠Hibernate ã®è¦ä»¶ã§"
+"ã¯ããã¾ããã not null å¶ç´ãå¤ããã¨ãã¦ãããããã³ã°ã¯åé¡ãªãåä½ãã¾"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr "åæ¹åé¢é£"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Many-to-one"
+msgstr "many-to-one"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr ""
+"<emphasis>åæ¹åå¤å¯¾ä¸é¢é£</emphasis> ã¯åæ¹åé¢é£ã®ä¸ã§æãä¸è¬çãªãã®ã§"
+"ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "One-to-one"
+msgstr "one-to-one"
+
+#. Tag: para
+#, 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 ""
+"<emphasis>å¤é¨ãã¼ã®åæ¹åä¸å¯¾ä¸é¢é£</emphasis> ã¯ã»ã¨ãã©åããã®ã§ããå¯ä¸"
+"éãã®ã¯ãã«ã©ã ã®ã¦ãã¼ã¯ãªå¶ç´ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a primary key</"
+"emphasis> usually uses a special id generator In this example, however, we "
+"have reversed the direction of the association:"
+msgstr ""
+"<emphasis>主ãã¼ã®åæ¹åä¸å¯¾ä¸é¢é£</emphasis> ã¯é常ãç¹å¥ãª ID ã¸ã§ãã¬ã¼ã¿"
+"ã使ãã¾ãã ï¼ãã®ä¾ã§ã¯é¢é£ã®æ¹åãéã«ãªã£ã¦ãããã¨ã«æ³¨æãã¦ãã ããï¼"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "One-to-many"
+msgstr "one-to-many"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-many association on a foreign key</"
+"emphasis> is an unusual case, and is not recommended."
+msgstr ""
+"<emphasis>å¤é¨ãã¼ã®åæ¹åä¸å¯¾å¤é¢é£</emphasis> ã¯ã¨ã¦ãç¹æ®ãªã±ã¼ã¹ã§ããã¾"
+"ãæ¨å¥¨ããã¦ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr "ãã®ãããªé¢é£ã®ããã«çµåãã¼ãã«ã使ããã¨ããè¦ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr "çµåãã¼ãã«ã使ã£ãåæ¹åé¢é£"
+
+#. Tag: para
+#, 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 ""
+"<emphasis>çµåãã¼ãã«ã使ã£ãåæ¹åä¸å¯¾å¤é¢é£</emphasis> ã¯ãã好ã¾ããã§"
+"ãã <literal>unique=\"true\"</literal> ã®æå®ã«ãããå¤é度ãå¤å¯¾å¤ããä¸å¯¾"
+"å¤ã«å¤ãã£ããã¨ã«æ³¨æãã¦ä¸ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association on a join table</"
+"emphasis> is common when the association is optional. For example:"
+msgstr ""
+"<emphasis>çµåãã¼ãã«ã®åæ¹åå¤å¯¾ä¸é¢é£</emphasis> ã¯é¢é£ãä»»æã§ããã¨ãã«"
+"é常ã«ä¸è¬çãªãã®ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"<emphasis>çµåãã¼ãã«ã®åæ¹åä¸å¯¾ä¸é¢é£</emphasis> ã¯ãé常ã«ç¹æ®ã§ããä¸å¯"
+"è½ã§ã¯ããã¾ããã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Many-to-many"
+msgstr "many-to-many"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Finally, here is an example of a <emphasis>unidirectional many-to-many "
+"association</emphasis>."
+msgstr "æå¾ã«ã <emphasis>åæ¹åå¤å¯¾å¤é¢é£</emphasis> ã示ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "åæ¹åé¢é£"
+
+#. Tag: title
+#, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr "ä¸å¯¾å¤/å¤å¯¾ä¸"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional many-to-one association</emphasis> is the most "
+"common kind of association. The following example illustrates the standard "
+"parent/child relationship."
+msgstr ""
+"<emphasis>åæ¹åå¤å¯¾ä¸é¢é£</emphasis> ã¯æãä¸è¬çãªé¢é£ã§ãã ï¼æ¨æºçãªè¦ªå"
+"é¢ä¿ã§ãï¼"
+
+#. Tag: para
+#, 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 ""
+"<literal>List</literal> ï¼ã¾ãã¯ä»ã®ã¤ã³ããã¯ã¹ä»ãã®ã³ã¬ã¯ã·ã§ã³ï¼ã使ããª"
+"ããå¤é¨ãã¼ã® <literal>key</literal> ã«ã©ã ã <literal>not null</literal> ã«"
+"è¨å®ããã³ã¬ã¯ã·ã§ã³å´ãåè¦ç´ ã®ã¤ã³ããã¯ã¹ãã¡ã³ããã³ã¹ããããã«ãé¢é£ã"
+"æ±ãå¿
è¦ãããã¾ã ï¼<literal>update=\"false\"</literal> ã㤠"
+"<literal>insert=\"false\"</literal> ã¨è¨å®ãã¦ãå対å´ãä»®æ³çã« inverse ã«ã"
+"ã¾ãï¼ï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
+"important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal><key></literal> element of the collection mapping. Do not "
+"only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal><column></literal> element, but on the <literal><key></"
+"literal> element."
+msgstr ""
+"ããå¤é¨ãã¼ã«ã©ã ã <literal>NOT NULL</literal> ã§ãããªãã°ãã³ã¬ã¯ã·ã§ã³"
+"ãããã³ã°ã® <literal><key></literal> è¦ç´ ã <literal>not-null=\"true"
+"\"</literal> ã«ãããã¨ã¯éè¦ã§ããå
¥ãåã«ãªã£ã <literal><column></"
+"literal> è¦ç´ ã ãã§ã¯ãªãã <literal><key></literal> è¦ç´ ã "
+"<literal>not-null=\"true\"</literal> ã¨å®ç¾©ããªãããã«ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is common:"
+msgstr "<emphasis>å¤é¨ãã¼ã®åæ¹åä¸å¯¾ä¸é¢é£</emphasis> ã¯é常ã«ä¸è¬çã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator:"
+msgstr ""
+"<emphasis>主ãã¼ã®åæ¹åä¸å¯¾ä¸é¢é£</emphasis> ã¯ç¹æ®ãª ID ã¸ã§ãã¬ã¼ã¿ã使ã"
+"ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr "çµåãã¼ãã«ã使ã£ãåæ¹åé¢é£"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of a <emphasis>bidirectional one-to-many "
+"association on a join table</emphasis>. The <literal>inverse=\"true\"</"
+"literal> can go on either end of the association, on the collection, or on "
+"the join."
+msgstr ""
+"<emphasis>çµåãã¼ãã«ã®åæ¹åä¸å¯¾å¤é¢é£</emphasis> ã§ãã <literal>inverse="
+"\"true\"</literal> ãé¢é£ç«¯ãã³ã¬ã¯ã·ã§ã³ãçµåã®ããããã«è¨å®ã§ãããã¨ã«æ³¨"
+"æãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "one to one"
+msgstr "ä¸å¯¾ä¸"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"<emphasis>çµåãã¼ãã«ã®åæ¹åä¸å¯¾ä¸é¢é£</emphasis> ã¯é常ã«ç¹æ®ã§ãããå¯è½"
+"ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example of a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
+msgstr "æå¾ã«ã <emphasis>åæ¹åå¤å¯¾å¤é¢é£</emphasis> ã示ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr "ããè¤éãªé¢é£ãããã³ã°"
+
+#. Tag: para
+#, 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 ""
+"ããè¤éãªé¢é£çµå㯠<emphasis>極ãã¦</emphasis> ç¨ã§ãããããã³ã°ããã¥ã¡ã³"
+"ãã« SQL æãåãè¾¼ããã¨ã§ãããã«è¤éãªç¶æ³ãæ±ããã¨ãã§ãã¾ããä¾ãã°ã "
+"<literal>accountNumber</literal> ã <literal>effectiveEndDate</literal> ã "
+"<literal>effectiveStartDate</literal> ã«ã©ã ãæ㤠account ï¼å£åº§ï¼æ
å ±ã®å±¥æ´"
+"ãæ±ããã¼ãã«ã¯ã以ä¸ã®ããã«ãããã³ã°ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can then map an association to the <emphasis>current</emphasis> "
+"instance, the one with null <literal>effectiveEndDate</literal>, by using:"
+msgstr ""
+"ããã¦ãé¢é£ã <emphasis>ç¾æç¹ã®</emphasis> ã¤ã³ã¹ã¿ã³ã¹ "
+"ï¼<literal>effectiveEndDate</literal> ã null ã§ãããã®ï¼ã«ãããã³ã°ãã¾"
+"ãã以ä¸ã®ããã«ãªãã¾ãï¼"
+
+#. Tag: para
+#, 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 ""
+"ããã«è¤éãªä¾ã§ã¯ã <literal>Employeeï¼å¾æ¥å¡ï¼</literal> 㨠"
+"<literal>Organizationï¼çµç¹ï¼</literal> éã®é¢é£ã <literal>Employmentï¼é"
+"ç¨ï¼</literal> ãã¼ãã«ã§ä¿æãããå ´åãæ³åãã¦ãã ããããã®ãã¼ãã«ã«ã¯é"
+"ç¨ãã¼ã¿ã®å±¥æ´ããã¹ã¦å«ã¾ãã¾ããããã¨å¾æ¥å¡ã® <emphasis>æãæè¿ã®</"
+"emphasis> éç¨è
ã表ãé¢é£ ï¼æãæè¿ã® <literal>startDate</literal> ãæã¤ã"
+"ã®ï¼ã¯ããã®ããã«ãããã³ã°ã§ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This functionality allows a degree of creativity and flexibility, but it is "
+"more practical to handle these kinds of cases using HQL or a criteria query."
+msgstr ""
+"ãã®æ©è½ã¯é常ã«å¼·åã§ããããããã®ãããªå ´åãæ®é㯠HQL ã criteria ã¯ã¨ãª"
+"ã使ãæ¹ãããå®è·µçã§ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint \n"
+#~ " not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint\n"
+#~ " not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, \n"
+#~ " primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 )"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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\"/"
+#~ ">"
+
+#, fuzzy
+#~ 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 ""
+#~ "<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/basic_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/basic_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/basic_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,5819 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-06 10:49+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr "åºæ¬ç㪠O/R ãããã³ã°"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr "ãããã³ã°å®ç¾©"
+
+#. 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 ä¸å¿ãã¤ã¾ããã¼ãã«å®ç¾©ã§ã¯ãªãæ°¸ç¶ã¯ã©ã¹ã®å®"
+"義ã«åºã¥ãã¦æ§ç¯ããã¦ãã¾ãã"
+
+#. 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 ã¨ãããããªãããã³ã°ããã¥ã¡ã³ããçæãããã¼"
+"ã«ãããã¤ãåå¨ãããã¨ãè¦ãã¦ããã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example mapping:"
+msgstr "ãµã³ãã«ã®ãããã³ã°ããå§ãã¾ãããï¼"
+
+#. 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 ãå®è¡æ"
+"ã«ä½¿ãããã¥ã¡ã³ãè¦ç´ ã¨å±æ§ã«ã¤ãã¦ã®ã¿èª¬æãã¾ãããããã³ã°ããã¥ã¡ã³ã"
+"ã¯ãããã¤ãã®ãªãã·ã§ã³å±æ§ã¨è¦ç´ ãå«ãã§ãã¾ãï¼ä¾ãã° <literal>not-null</"
+"literal> å±æ§ï¼ããããã¯ã¹ãã¼ãã¨ã¯ã¹ãã¼ããã¼ã«ãåºåãããã¼ã¿ãã¼ã¹ã¹"
+"ãã¼ãã«å½±é¿ãä¸ãããã®ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr "Doctype"
+
+#. 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 ãããã³ã°ã§ã¯ããè¦ããããããªããã¥ã¡ã³ãåãå¿
ãå®ç¾©ãã¹ãã§ããå®é"
+"ã® DTD ã¯ãä¸è¨ã® URL ã® <literal>hibernate-x.x.x/src/org/hibernate</"
+"literal> ãã£ã¬ã¯ããªãã¾ã㯠<literal>hibernate.jar</literal> å
ã«ããã¾"
+"ãã Hibernate ã¯å¸¸ã«ããã®ã¯ã©ã¹ãã¹å
㧠DTD ãæ¢ãå§ãã¾ããã¤ã³ã¿ã¼ããã"
+"ã«ãã DTD ãã¡ã¤ã«ãæ¢ããã¨ãããªããã¯ã©ã¹ãã¹ã®å
容ãè¦ã¦ã DTD 宣è¨ã確"
+"èªãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr "ã¨ã³ãã£ãã£ãªã¾ã«ã"
+
+#. 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 ã¯ã¾ãã¯ã©ã¹ãã¹å
㧠DTD ã解決ãããã¨ãã¾ãã "
+"<literal>org.xml.sax.EntityResolver</literal> ã®ã«ã¹ã¿ã å®è£
ã XML ãã¡ã¤ã«ã"
+"èªã¿è¾¼ãããã® SAXReader ã«ç»é²ãããã¨ã«ãã£ã¦ã DTD ã解決ãã¾ãããã®ã«ã¹"
+"ã¿ã ã® <literal>EntityResolver</literal> ã¯2ã¤ã®ç°ãªãã·ã¹ãã ID åå空éã"
+"èªèãã¾ãã"
+
+#. 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 ""
+"<literal>hibernate namespace</literal> ã¯ããªã¾ã«ãã <literal>http://"
+"hibernate.sourceforge.net/</literal> ã§å§ã¾ãã·ã¹ãã ID ã«å°éããã¨ãã«èªè"
+"ããã¾ããããã¦ãªã¾ã«ãã¯ã Hibernate ã®ã¯ã©ã¹ããã¼ãããã¯ã©ã¹ãã¼ããç¨ã"
+"ã¦ããããã®ã¨ã³ãã£ãã£ã解決ãããã¨ãã¾ãã"
+
+#. 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 ""
+"<literal>user namespace</literal> ã¯ããªã¾ã«ãã URL ãããã³ã«ã® "
+"<literal>classpath://</literal> ã使ã£ãã·ã¹ãã ID ã«å°éããã¨ãã«ãèªèã"
+"ãã¾ããããã¦ãªã¾ã«ãã¯ã (1) ã«ã¬ã³ãã¹ã¬ããã®ã³ã³ããã¹ãã¯ã©ã¹ãã¼ãã¼ã"
+"ã¾ã㯠(2) Hibernate ã®ã¯ã©ã¹ããã¼ãããã¯ã©ã¹ãã¼ãã使ã£ã¦ããããã®ã¨ã³"
+"ãã£ãã£ã解決ãããã¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr "ä¸è¨ã¯ãã¦ã¼ã¶ã¼åå空éã使ã£ãä¾ã§ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Where <literal>types.xml</literal> is a resource in the <literal>your."
+"domain</literal> package and contains a custom <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
+msgstr ""
+"ãã㧠<literal>types.xml</literal> 㯠<literal>your.domain</literal> ãã"
+"ã±ã¼ã¸å
ã®ãªã½ã¼ã¹ã§ãããã«ã¹ã¿ã åå®ç¾© <xref linkend=\"mapping-types-custom"
+"\"/> ãå«ã¿ã¾ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Hibernate-mapping"
+msgstr "hibernate-mapping"
+
+#. 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> å±æ§ã¯ããã®ãããã³ã°ãåç
§ãããã¼ãã«ããã"
+"ã®å±æ§ã«ãã£ã¦æå®ãããã¹ãã¼ãã¨(ã¾ãã¯)ã«ã¿ãã°ã«å±ãããã¨ãæå®ãã¾ãã"
+"ãã®å±æ§ãæå®ãããã¨ããã¼ãã«åã¯ä¸ããããã¹ãã¼ãåã¨ã«ã¿ãã°åã§ä¿®é£¾ã"
+"ãã¾ãããããã®å±æ§ãæå®ããã¦ããªããã°ããã¼ãã«åã¯ä¿®é£¾ããã¾ããã "
+"<literal>default-cascade</literal> å±æ§ã¯ã <literal>cascade</literal> å±æ§ã"
+"æå®ãã¦ããªãããããã£ãã³ã¬ã¯ã·ã§ã³ã«ãã©ã®ã«ã¹ã±ã¼ãã¹ã¿ã¤ã«ãå²ãå½ã¦ã"
+"ããæå®ãã¾ãã <literal>auto-import</literal> å±æ§ã¯ãã¯ã¨ãªè¨èªå
ã§ä¿®é£¾ã"
+"ãã¦ããªãã¯ã©ã¹åããããã©ã«ãã§ä½¿ããããã«ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr "<literal>schema</literal>ï¼ãªãã·ã§ã³ï¼ï¼ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã®ååã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr ""
+"<literal>catalog</literal> ï¼ãªãã·ã§ã³ï¼ï¼ãã¼ã¿ãã¼ã¹ã«ã¿ãã°ã®ååã"
+
+#. 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>ï¼ï¼ ããã©ã«ãã®ã«ã¹ã±ã¼ãã¹ã¿ã¤ã«ã"
+
+#. 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> ãå®è£
ãããã¨ã§ã«ã¹ã¿ãã¤ãºå¯"
+"è½ã"
+
+#. 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> å±æ§ãæå®ããã¦ããªãã¯ã©ã¹ãã³ã¬ã¯ã·ã§"
+"ã³ãããã³ã°ã«å¯¾ããããã©ã«ãå¤ã"
+
+#. 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>ï¼ï¼ã¯ã¨ãªè¨èªå
ã§ãï¼ãã®ãããã³ã°å
ã®ã¯ã©ã¹ã®ï¼ä¿®é£¾ããã¦ããªãã¯"
+"ã©ã¹åã使ãããã©ãããæå®ãã¾ãã"
+
+#. 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> (ãªãã·ã§ã³): ãããã³ã°ããã¥ã¡ã³ãå
ã§ä¿®é£¾ããã¦"
+"ããªãã¯ã©ã¹åã«å¯¾ãã¦å²ãå½ã¦ããããã±ã¼ã¸ã®æ¥é è¾ (prefix) ãæå®ãã¾ãã"
+
+#. 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 ""
+"ï¼ä¿®é£¾ããã¦ããªãï¼åãååã®æ°¸ç¶ã¯ã©ã¹ã2ã¤ãããªãã <literal>auto-import="
+"\"false\"</literal> ãè¨å®ãã¹ãã§ãã2ã¤ã®ã¯ã©ã¹ã«\"ã¤ã³ãã¼ãããã\"åãå"
+"åãå²ãå½ã¦ããã¨ããã¨ã Hibernate ã¯ä¾å¤ãéåºãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>hibernate-mapping</literal> element allows you to nest several "
+"persistent <literal><class></literal> mappings, as shown above. It is, "
+"however, good practice (and expected by some tools) to map only a single "
+"persistent class, or a single class hierarchy, in one mapping file and name "
+"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
+"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
+"<literal>Animal.hbm.xml</literal>."
+msgstr ""
+"<literal>hibernate-mapping</literal> è¦ç´ ã¯ãæåã®ä¾ã§ç¤ºããããã«ããã¤ãã®"
+"æ°¸ç¶ <literal><class></literal> ãããã³ã°ããã¹ãã§ãã¾ããããããï¼"
+"ã¤ã®ãããã³ã°ãã¡ã¤ã«ã§ã¯ãã ã²ã¨ã¤ã®æ°¸ç¶ã¯ã©ã¹(ã¾ãã¯ã²ã¨ã¤ã®ã¯ã©ã¹é層)ã«"
+"ãããã³ã°ããããã«ããããã«æ°¸ç¶ã¹ã¼ãã¼ã¯ã©ã¹ã®å¾ã§æå®ããã¹ãã§ããã(ã"
+"ãã¤ãã®ãã¼ã«ã¯ãã®ãããªãããã³ã°ãã¡ã¤ã«ãæ³å®ãã¦ãã¾ã)ãä¾ãã°æ¬¡ã®ãã"
+"ã«ãªãã¾ããï¼ <literal>Cat.hbm.xml</literal> , <literal>Dog.hbm.xml</"
+"literal> , ã¾ãã¯ç¶æ¿ã使ããªã <literal>Animal.hbm.xml</literal> ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Class"
+msgstr "Class"
+
+#. Tag: para
+#, no-c-format
+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 ã¯ã©ã¹åããããã®å±æ§ãæ¬ è½ãã¦ããå ´åã 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> (ãªãã·ã§ã³ - ããã©ã«ãã¯ä¿®é£¾ããã¦ããªãã¯ã©ã¹"
+"å)ï¼ãã¼ã¿ãã¼ã¹ãã¼ãã«ã®ååã"
+
+#. 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> ã®ãããããåãã¾ãã"
+
+#. 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> )ï¼ ãã®ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãæ´æ°å¯è½ï¼ã¾ãã¯ä¸å¯è½ï¼ã§ãããã¨ãæ"
+"å®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): overrides the schema name specified by "
+"the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>schema</literal> (ãªãã·ã§ã³): ã«ã¼ãã® <literal><hibernate-"
+"mapping></literal> è¦ç´ ã§æå®ããã¹ãã¼ãåããªã¼ãã¼ã©ã¤ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>catalog</literal> (optional): overrides the catalog name specified "
+"by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>catalog</literal> (ãªãã·ã§ã³): ã«ã¼ãã® <literal><hibernate-"
+"mapping></literal> è¦ç´ ã§æå®ããã«ã¿ãã°åããªã¼ãã¼ã©ã¤ããã¾ãã"
+
+#. 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> ï¼ãªãã·ã§ã³ï¼ï¼é
延åæåãããã·ã«ä½¿ãã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ãæå®ãã¾ããæ°¸ç¶åããã¯ã©ã¹åãã®ãã®ãæå®ãããã¨ãå¯è½ã§ãã"
+
+#. 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> ï¼ï¼å¤ãå¤æ´ãããã«ã©ã ã ããå«ã SQL ã® "
+"<literal>UPDATE</literal> æããå®è¡æã«çæãããã¨ãæå®ãã¾ãã"
+
+#. 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> ï¼ï¼å¤ã null ã§ã¯ãªãã«ã©ã ã ããå«ã SQL ã® <literal>INSERT</"
+"literal> æããå®è¡æã«çæãããã¨ãæå®ãã¾ãã"
+
+#. 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 ã SQL ã® <literal>UPDATE</literal> ã <emphasis>決ãã¦å®è¡ããªã</"
+"emphasis> ãã¨ãæå®ãã¾ããããç¹å®ã®å ´å(å®éçã«ã¯ãä¸æãªãã¸ã§ã¯ãã "
+"<literal>update()</literal> ã使ããæ°ããã»ãã·ã§ã³ã¨é¢é£ä»ããããæã "
+"ã)ã <literal>UPDATE</literal> ãå®éã«å¿
è¦ãã©ããã決å®ããããã«ã "
+"Hibernate ãä½å㪠SQL ã® <literal>SELECT</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> ): implicitï¼æé»ï¼ãexplicitï¼æ示ï¼ã®ãã©ã¡ãã®"
+"ã¯ã¨ãªããªã¢ã¼ãã£ãºã ã使ãã決å®ãã¾ãã"
+
+#. 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> æ¡ä»¶ãæå®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> ï¼ï¼ èå¥åã§ãã®ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã復å
ããã¨ãã®ãããããµã¤"
+"ãºããæå®ãã¾ãã"
+
+#. 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> ï¼ï¼ 楽観ããã¯æ¦ç¥ã決å®ãã¾ãã"
+
+#. 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> ã¨"
+"è¨å®ãããã¨ã§ãé
延ãã§ãããã§ããªããªãã¾ãã"
+
+#. 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 ã§ã¯ã¯ã©ã¹ãè¤æ°åãããã³ã°ã§ãï¼å ´åã«ãã£ã¦ã¯éããã¼ãã«ã«å¯¾ã"
+"ã¦ãï¼ã Java ã¬ãã«ã§ Map ã XML ã§è¡¨ç¾ãããã¨ã³ãã£ãã£ãããã³ã°ãå¯è½ã§"
+"ãããããã®å ´åãã¨ã³ãã£ãã£ã«å¯¾ãã¦ä»»æã®ååããæ示çã«ä»ããªãã¦ã¯ãªã"
+"ã¾ããã 詳ãã㯠<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> ï¼ãªãã·ã§ã³ï¼ï¼èªåçã«ã¹ãã¼ããçæããããã«ãè¤"
+"æ°è¡ã® <emphasis>check</emphasis> å¶ç´ãçæãã SQL å¼ã"
+
+#. 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 ã¯ãããããµãã¼ããã¦ã"
+"ããã¼ã¿ãã¼ã¹ã§ ROWID 㨠å¼ã°ãããã®ã使ããã¨ãã§ãã¾ããä¾ãã° Oracle ã"
+"使ã£ã¦ããã¨ãããã®ãªãã·ã§ã³ã« <literal>rowid</literal> ãè¨å®ããã°ã "
+"Hiberante 㯠update ãé«éåããããã« <literal>rowid</literal> ã¨ããç¹å¥ãª"
+"ã«ã©ã ã使ããã¨ãã§ãã¾ãã ROWID ã¯è©³ç´°ãªå®è£
ã§ãããä¿åãããã¿ãã«ã®ç©ç"
+"çãªä½ç½®ã表ãã¦ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>subselect</literal> (optional): maps an immutable and read-only "
+"entity to a database subselect. This is useful if you want to have a view "
+"instead of a base table. See below for more information."
+msgstr ""
+"<literal>subselect</literal> ï¼ãªãã·ã§ã³ï¼ï¼ä¸å¤ãã¤èªã¿åãå°ç¨ã§ããã¨ã³"
+"ãã£ãã£ããã¼ã¿ãã¼ã¹ã®å¯ååãï¼subselectï¼ã«ãããã³ã°ãã¾ããããå
ã®ãã¼"
+"ãã«ã®ä»£ããã«ãã¥ã¼ãæã¡ãããã°æç¨ã§ãããããã§ãªãã®ãªãæç¨ã§ã¯ããã¾"
+"ããããã詳ããæ
å ±ã¯ä¸è¨ãåç
§ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>abstract</literal> (optional): is used to mark abstract "
+"superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal> ï¼ãªãã·ã§ã³ï¼ï¼ <literal><union-subclass>"
+"</literal> é層å
ã®æ½è±¡ã¹ã¼ãã¼ã¯ã©ã¹ã«ãã¼ã¯ããããã«ä½¿ãã¾ãã"
+
+#. 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><"
+"subclass></literal> element. You can persist any <emphasis>static</"
+"emphasis> inner class. Specify the class name using the standard form i.e. "
+"<literal>e.g.Foo$Bar</literal>."
+msgstr ""
+"æ°¸ç¶ã¯ã©ã¹ã®ååã«ã¤ã³ã¿ã¼ãã§ã¼ã¹ãæå®ãã¦ãã¾ã£ããåé¡ããã¾ããããã®ã¨"
+"ã㯠<literal><subclass></literal> è¦ç´ ã使ã£ã¦ããã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã"
+"å®è£
ããã¯ã©ã¹ãå®ç¾©ãã¦ãã ããã <emphasis>static</emphasis> ãªå
é¨ã¯ã©ã¹ã§"
+"ãæ°¸ç¶åã§ãã¾ãããã®ã¨ãã¯æ¨æºå½¢å¼ãä¾ãã° <literal>eg.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 ãããã©ã¼ã"
+"ã³ã¹ãå°ãæ¹åãã¾ãã"
+
+#. 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 ãããã·ãè¿ãã¾ããå®éã®æ°¸ç¶ãªãã¸ã§ã¯ãã¯ãããã·ã®ã¡ã½ããã"
+"å¼ã³åºãã¨ãã«ãã¼ããã¾ãã以ä¸ã®ãé
延åæåã®ããã®ãããã·ããåç
§ãã¦ã"
+"ã ããã"
+
+#. 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><class>"
+"</literal> declaration as a <literal><subclass></literal> or "
+"<literal><joined-subclass></literal>. For most purposes, the default "
+"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
+"polymorphism is useful when two different classes are mapped to the same "
+"table This allows a \"lightweight\" class that contains a subset of the "
+"table columns."
+msgstr ""
+" <emphasis>æé»ç</emphasis> ããªã¢ã¼ãã£ãºã ã¨ã¯ã次ã®äºã¤ãæå³ãã¦ãã¾ãã"
+"ä¸ã¤ã¯ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ããã¹ã¼ãã¼ã¯ã©ã¹ãå®è£
ããã¤ã³ã¿ã¼ãã§ã¼ã¹ãã¾ã"
+"ãã®ã¯ã©ã¹ãæå®ããã¯ã¨ãªã«ãã£ã¦è¿ããããã¨ã§ãããä¸ã¤ã¯ãã®ã¯ã©ã¹ã®ãµã"
+"ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãããã®ã¯ã©ã¹èªèº«ãæå®ããã¯ã¨ãªã«ãã£ã¦è¿ããããã¨ã§"
+"ããã¾ãã <emphasis>æ示ç</emphasis> ããªã¢ã¼ãã£ãºã ã¨ã¯ã次ã®äºã¤ãæå³ã"
+"ã¦ãã¾ããä¸ã¤ã¯ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãããã®ã¯ã©ã¹ãæ示çã«æå®ããã¯ã¨ãªã«"
+"ãã£ã¦ã®ã¿è¿ããããã¨ã§ãããä¸ã¤ã¯ã¯ã©ã¹ãæå®ããã¯ã¨ãªãã <literal><"
+"class></literal> è¦ç´ ã®ä¸ã§ <literal><subclass></literal> ã "
+"<literal><joined-subclass></literal> ã¨ãããã³ã°ããã¦ãããµãã¯ã©ã¹ã®"
+"ã¤ã³ã¹ã¿ã³ã¹ã ããè¿ããã¨ã§ããã»ã¨ãã©ã®ç¨éã§ã¯ããã©ã«ãã® "
+"<literal>polymorphism=\"implicit\"</literal> ãé©åã§ããæ示çãªããªã¢ã¼ãã£"
+"ãºã ã¯ã2ã¤ã®éã£ãã¯ã©ã¹ãåããã¼ãã«ã«ãããã³ã°ããã¦ããã¨ãã«æç¨ã§ã "
+"ï¼ããã«ãã£ã¦ãã¼ãã«ã«ã©ã ã®ãµãã»ãããå«ããã軽éãªãã¯ã©ã¹ãå¯è½ã«ãªã"
+"ã¾ãï¼ã"
+
+#. 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> èªèº«ã®ãµãã¯ã©ã¹ãæå®ããããã¾ãä¾ãã°ã¹ãã¢ãããã·ã¼ã¸ã£ã³ã¼ã«ã"
+"ãã©ãããã¡ã¤ã«ã¸ã·ãªã¢ã©ã¤ãºã LDAP ãªã©ãéããæ°¸ç¶æ§ãå®è£
ãã "
+"<literal>org.hibernate.persister.ClassPersister</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®"
+"å®å
¨ã«æ°ããå®è£
ãæä¾ã§ãã¾ããç°¡åãªä¾ã¨ã㦠<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><subclass></literal> or <literal><joined-subclass></"
+"literal> elements. Although these settings can increase performance in some "
+"cases, they can actually decrease performance in others."
+msgstr ""
+"<literal>dynamic-update</literal> 㨠<literal>dynamic-insert</literal> ã®è¨å®"
+"ã¯ãµãã¯ã©ã¹ã«ç¶æ¿ããã¾ããããã®ãã <literal><subclass></literal> "
+"ã <literal><joined-subclass></literal> è¦ç´ ãæå®ãããã¨ãåºæ¥ã¾ãã"
+"ãããã®è¨å®ã¯ããã©ã¼ãã³ã¹ãåä¸ãããäºãããã¾ãããè½ã¨ããã¨ãããã¾ã"
+"ã®ã§ãæ
éã«ä½¿ç¨ãã¦ãã ããã"
+
+#. Tag: para
+#, 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> ã®ä½¿ç¨ã¯é常ããã©ã¼ãã³ã¹ãè½ã¨ãã¾"
+"ãããã <literal>Session</literal> ã¸åé¢ã¤ã³ã¹ã¿ã³ã¹ã®ã°ã©ããå追å ãããª"
+"ãããã¼ã¿ãã¼ã¹æ´æ°ã®ããªã¬ãä¸å¿
è¦ã«å¼ã³åºãã®ãé¿ããã¨ããç¹ã§ãé常ã«æ"
+"ç¨ã§ãã"
+
+#. 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> ãæå¹ã«ããã°ã楽観ããã¯æ¦ç¥ãé¸ã¶ãã¨ã«"
+"ãªãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr ""
+"<literal>version</literal> ãã¼ã¸ã§ã³/ã¿ã¤ã ã¹ã¿ã³ãã«ã©ã ããã§ãã¯ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr "<literal>all</literal> ãã¹ã¦ã®ã«ã©ã ããã§ãã¯ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dirty</literal>: check the changed columns, allowing some "
+"concurrent updates"
+msgstr ""
+"<literal>dirty</literal> å¤æ´ããã«ã©ã ããã§ãã¯ããåææ´æ°ã§ããããã«ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr "<literal>none</literal> 楽観ããã¯ã使ç¨ãã¾ããã"
+
+#. 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 ""
+"Hibernate ã§æ¥½è¦³çããã¯æ¦ç¥ã使ããªãããã¼ã¸ã§ã³/ã¿ã¤ã ã¹ã¿ã³ãã«ã©ã ã使ã"
+"ãã¨ã <emphasis>é常ã«</emphasis> å¼·ããå§ããã¾ãã楽観çããã¯ã¯ããã©ã¼ã"
+"ã³ã¹ã®è¦³ç¹ãããæé©ã§ãããããã«åé¢ã¤ã³ã¹ã¿ã³ã¹ã¸ã®ä¿®æ£ ï¼ã¤ã¾ã "
+"<literal>Session.marge()</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 ã®ãããã³ã°ã«ã¨ã£ã¦ãã¥ã¼ã¨æ®éã®ãã¼ãã«ã®éã«éãã¯ãªãããã¼ã¿"
+"ãã¼ã¹ã¬ãã«ã§ã¯ééçã§ãï¼ãã ããã¥ã¼ãå®å
¨ã«ã¯ãµãã¼ããã¦ããªã DBMS ã"
+"ããã¾ããç¹ã«ãæ´æ°ã®ãããã¥ã¼ã«å¯¾ãã¦ã¯ããã§ãï¼ããã¥ã¼ã使ãããã¦ãã"
+"ãã¼ã¿ãã¼ã¹ã§ä½æã§ããªããã¨ãããã¾ãï¼ä¾ãã°ãã¬ã¬ã·ã¼ã¹ãã¼ãã®å ´åï¼ã"
+"ãã®å ´åã«ã¯ãä¸å¤ãã¤èªã¿åãå°ç¨ã®ã¨ã³ãã£ãã£ã«ä¸ãããã 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><subselect></literal> is available both as an "
+"attribute and a nested mapping element."
+msgstr ""
+"ãã¼ãã«ããã®ã¨ã³ãã£ãã£ã¨åæããããã«å®ç¾©ãã¦ãã ããããªã¼ããã©ãã·ã¥"
+"ã確å®ã«èµ·ããããã«ãã¾ãå°åºã¨ã³ãã£ãã£ã«å¯¾ããã¯ã¨ãªãå¤ããã¼ã¿ãè¿ããª"
+"ãããã«ããããã§ãã <literal><subselect></literal> ã¯å±æ§ã¨ãã¹ãã"
+"ããããã³ã°å±æ§ã®ã©ã¡ãã§ãå©ç¨ã§ãã¾ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "id"
+msgstr "uuid"
+
+#. 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><id></"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"ããããããã¯ã©ã¹ã¯ãã¼ã¿ãã¼ã¹ãã¼ãã«ã®ä¸»ãã¼ã«ã©ã ãå®ç¾© <emphasis>ããªã"
+"ãã°ãªãã¾ãã</emphasis> ãã»ã¨ãã©ã®ã¯ã©ã¹ã«ã¯ã¤ã³ã¹ã¿ã³ã¹ã®ã¦ãã¼ã¯ãªèå¥"
+"åãä¿æãã JavaBeans ã¹ã¿ã¤ã«ã®ããããã£ãæã£ã¦ãã¾ãã <literal><"
+"id></literal> è¦ç´ ã¯ããã®ããããã£ãã主ãã¼ã«ã©ã ã¸ã®ãããã³ã°ãå®ç¾©ã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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."
+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."
+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 ã§ã»ã¼ãã¾ãã¯ãã¼ããããå"
+"é¢ã¤ã³ã¹ã¿ã³ã¹ã¨åºå¥ããããã«ä½¿ãã¾ãã"
+
+#. 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 ãããããã£ã®å¤ã«ã¢ã¯ã»ã¹ããããã«ä½¿ç¨ãã¹ãæ¦ç¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>name</literal> attribute is missing, it is assumed that the "
+"class has no identifier property."
+msgstr ""
+"<literal>name</literal> å±æ§ããªããã°ãã¯ã©ã¹ã«ã¯èå¥åããããã£ããªããã®"
+"ã¨ã¿ãªããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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><composite-id></literal> declaration "
+"that allows access to legacy data with composite keys. Its use is strongly "
+"discouraged for anything else."
+msgstr ""
+"è¤åãã¼ãæã¤ã¬ã¬ã·ã¼ãã¼ã¿ã«ã¢ã¯ã»ã¹ã§ããããã«ã <literal><composite-"
+"id></literal> ã¨ãã代æ¿ã®ãããã³ã°å®ç¾©ãããã¾ãããããä»ã®ç¨éã¸ã®ä½¿ç¨"
+"ã¯å
¨ãããããã§ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr "ã¸ã§ãã¬ã¼ã¿"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><generator></literal> child element names a Java "
+"class used to generate unique identifiers for instances of the persistent "
+"class. If any parameters are required to configure or initialize the "
+"generator instance, they are passed using the <literal><param></"
+"literal> element."
+msgstr ""
+"ãªãã·ã§ã³ã® <literal><generator></literal> åè¦ç´ ã¯ãæ°¸ç¶ã¯ã©ã¹ã®ã¤ã³"
+"ã¹ã¿ã³ã¹ã®ã¦ãã¼ã¯ãªèå¥åãçæããããã«ä½¿ãã Java ã¯ã©ã¹ãæå®ãã¾ãã"
+"ã¸ã§ãã¬ã¼ã¿ã¤ã³ã¹ã¿ã³ã¹ã®è¨å®ããããã¯åæåã«ãã©ã¡ã¼ã¿ãå¿
è¦ã§ããã°ã "
+"<literal><param></literal> è¦ç´ ã使ã£ã¦æ¸¡ããã¨ãã§ãã¾ãã"
+
+#. 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 ã¯çµã¿è¾¼ã¿ã®å®è£
ãããã¤ãç¨æãã¦ãã¾ããçµã¿è¾¼ã¿ã®ã¸ã§ãã¬ã¼ã¿ã«"
+"ã¯ä»¥ä¸ã®ã·ã§ã¼ãã«ããåãããã¾ãï¼"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> ã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> ã®ããããã§ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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 ã®ã·ã¼ã±ã³ã¹ãã Interbase ã®ã¸ã§ã"
+"ã¬ã¼ã¿ã使ç¨ãã¾ããè¿ãããèå¥åã®å㯠<literal>long</literal> , "
+"<literal>short</literal> , <literal>int</literal> ã®ããããã§ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> "
+"åã®èå¥åãå¹ççã«çæãã hi/lo ã¢ã«ã´ãªãºã ã使ãã¾ãã hi å¤ã®ã½ã¼ã¹ã¨ã"
+"ã¦ããã¼ãã«ã¨ã«ã©ã ãä¸ãã¾ã(ããã©ã«ãã§ã¯ãããã "
+"<literal>hibernate_unique_key</literal> 㨠<literal>next_hi</literal> )ã hi/"
+"lo ã¢ã«ã´ãªãºã ã¯ç¹å®ã®ãã¼ã¿ãã¼ã¹ã«å¯¾ãã¦ã®ã¿ã¦ãã¼ã¯ãªèå¥åãçæãã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> "
+"åã®èå¥åãå¹ççã«çæãã hi/lo ã¢ã«ã´ãªãºã ã使ãã¾ããæå®ããããã¼ã¿"
+"ãã¼ã¹ã·ã¼ã±ã³ã¹ãä¸ãã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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 ""
+"( IP ã¢ãã¬ã¹ã使ç¨ããã)ãããã¯ã¼ã¯å
ã§ã¦ãã¼ã¯ãªæåååã®èå¥åãçæã"
+"ãããã«ã 128 ãããã® UUID ã¢ã«ã´ãªãºã ã使ç¨ãã¾ãã UUID ã¯é·ã 32 ã® 16 "
+"é²æ°åã®æååã¨ãã¦ã¨ã³ã³ã¼ãããã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr ""
+"MS SQL ãµã¼ãã¼ã¨ MySQL ã§ãã¼ã¿ãã¼ã¹ãçæãã GUID æååã使ç¨ãã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> ã®ãããããé¸ã°ãã¾"
+"ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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><"
+"generator></literal> element is specified."
+msgstr ""
+"<literal>save()</literal> ãå¼ã°ããåã«ãã¢ããªã±ã¼ã·ã§ã³ããªãã¸ã§ã¯ãã«è"
+"å¥åã代å
¥ã§ããããã«ãã¾ãã <literal><generator></literal> è¦ç´ ãæ"
+"å®ããã¦ããªããã°ããããããã©ã«ãã®æ¦ç¥ã«ãªãã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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."
+msgstr ""
+"ããã¦ãã¼ã¯ãã¼ã«ããè¡ã®é¸æã¨ä¸»ãã¼ã®å¤ã®å¾©å
ã«ããããã¼ã¿ãã¼ã¹ããªã¬ã"
+"å²ãå½ã¦ã主ãã¼ãåå¾ãã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"uses the identifier of another associated object. It is usually used in "
+"conjunction with a <literal><one-to-one></literal> primary key "
+"association."
+msgstr ""
+"ä»ã®é¢é£ãªãã¸ã§ã¯ãã®èå¥åã使ãã¾ããæ®éã¯ã <literal><one-to-one>"
+"</literal> 主ãã¼é¢é£ã¨çµã¿åããã¦ä½¿ãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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 ã¨çµã³ã¤ãã¦ã INSERT æã®å®è¡ã®ä¸é¨ã¨ãã¦"
+"çæãããèå¥åã®å¤ãå®éã«è¿ãã¾ãããã®æ¦ç¥ã¯ JDK 1.4 ã対象ã¨ãã Oracle "
+"10g ã®ãã©ã¤ãã§ãµãã¼ãããã¦ãããã¨ãç¥ããã¦ãã¾ãããããã® INSERT æã§"
+"ã®ã³ã¡ã³ã㯠Oracle ã®ãã©ã¤ãã®ãã°ã«ããç¡å¹ã«ããã¦ãããã¨ã«æ³¨æãã¦ãã "
+"ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr "Hi/lo ã¢ã«ã´ãªãºã "
+
+#. 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 ã¢ã«ã´ãªãºã ã®2ã¤ã®ä»£æ¿å®è£
ãæä¾ãã¾"
+"ãã1çªç®ã®å®è£
ã¯ã次åã«å©ç¨ããã \"hi\" å¤ãä¿æãããç¹å¥ãªããã¼ã¿ãã¼ã¹"
+"ãã¼ãã«ãå¿
è¦ã¨ãã¾ãã2çªç®ã®å®è£
ã¯ã 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> ãé©"
+"åã«è¨å®ããªããã°ãªãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr "UUID ã¢ã«ã´ãªãºã "
+
+#. 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 ã®ã¹ã¿ã¼ãã¢ããã¿ã¤ã ï¼4"
+"åã®1ç§ã®æ£ç¢ºãï¼ãã·ã¹ãã æéãï¼ JVM ã«å¯¾ãã¦ã¦ãã¼ã¯ãªï¼ã«ã¦ã³ã¿å¤ã "
+"Java ã³ã¼ããã MAC ã¢ãã¬ã¹ãã¡ã¢ãªã¢ãã¬ã¹ãåå¾ãããã¨ã¯ã§ããªãã®ã§ã "
+"JNI ã使ããªãã¨ãã®æè¯ã®æ¹æ³ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr "èå¥åã«ã©ã ã¨ã·ã¼ã±ã³ã¹"
+
+#. 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 ã¯ã¨ãªã2ã¤å¿
è¦ã¨ãã¾ãã"
+
+#. 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> æ¦ç¥ã®ä¸ãã1ã¤ãé¸æãã¾ãããããã¯ä½¿ç¨ãã¦ãããã¼ã¿ãã¼ã¹ã®è½å"
+"ã«ä¾åãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr "èå¥åã®å²ãå½ã¦"
+
+#. 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><generator></literal> "
+"element."
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã«èå¥åãå²ãå½ã¦ããããã®ã§ããã°( Hibernate ãçæããã"
+"ã®ã§ã¯ãªãï¼ã <literal>assigned</literal> ã¸ã§ãã¬ã¼ã¿ã使ããã¨ãã§ãã¾ãã"
+"ãã®ç¹å¥ãªã¸ã§ãã¬ã¼ã¿ã¯ããã§ã«ãªãã¸ã§ã¯ãã®èå¥åããããã£ã«ä»£å
¥ãããå¤"
+"ãèå¥åã«ä½¿ãã¾ãããã®ã¸ã§ãã¬ã¼ã¿ã¯ä¸»ãã¼ã代çãã¼ã®ä»£ããã«èªç¶ãã¼ã§ã"
+"ãå ´åã«ä½¿ç¨ãã¾ãã <literal><generator></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> ã¸ã§ãã¬ã¼ã¿ãé¸æããã¨ã Hibernate 㯠"
+"<literal>unsaved-value=\"undefined\"</literal> ã使ãã¾ããããã¦ããã¼ã¸ã§ã³"
+"ãã¿ã¤ã ã¹ã¿ã³ãã®ããããã£ããªãå ´åã <literal>Interceptor.isUnsaved()</"
+"literal> ãå®ç¾©ããªãã£ãå ´åã«ã¯ãã¤ã³ã¹ã¿ã³ã¹ãä¸æç(transient)ãªãã®ã§ã"
+"ãã®ããã¾ãã¯ã»ãã·ã§ã³ããåé¢(detached)ãããã®ãã©ããã決ããããã«ã"
+"ãã¼ã¿ãã¼ã¹ã調ã¹ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr "ããªã¬ã«ããå²ãå½ã¦ããã主ãã¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr ""
+"ã¬ã¬ã·ã¼ã¹ãã¼ãã®ããã«ã®ã¿æå®ãã¾ã( 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> ã¨ããååã®ã¦ãã¼ã¯ãªå¤ã®ããããã£"
+"ã¨ãå¤ãããªã¬ã«ããçæããã <literal>person_id</literal> ã¨ããååã®ä»£ç"
+"ãã¼ãããã¾ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Enhanced identifier generators"
+msgstr "èå¥åã® getter ã¡ã½ãã"
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, 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
+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
+#, 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
+#, 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
+#, 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
+#, 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
+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
+#, 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
+#, 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
+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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+#, fuzzy, no-c-format
+msgid "Identifier generator optimization"
+msgstr "èå¥åã® getter ã¡ã½ãã"
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr "composite-id"
+
+#. 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><composite-id></literal> "
+"element accepts <literal><key-property></literal> property mappings "
+"and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr ""
+"è¤åãã¼ã®ãããã¼ãã«ã«å¯¾ããèå¥åããããã£ã¨ãã¦ã¯ã©ã¹ã®è¤æ°ã®ããããã£"
+"ããããã³ã°ãããã¨ãã§ãã¾ãã <literal><composite-id></literal> è¦ç´ "
+"ã¯ãåè¦ç´ ã¨ã㦠<literal><key-property></literal> ããããã£ãããã³ã°"
+"㨠<literal><key-many-to-one></literal> ãããã³ã°ãåãå
¥ãã¾ãã"
+
+#. Tag: para
+#, 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 ""
+"è¤åèå¥åã®ç価æ§ãå®è£
ããããã«ã¯ãæ°¸ç¶ã¯ã©ã¹ã <literal>equals()</"
+"literal> 㨠<literal>hashCode()</literal> ããªã¼ãã¼ã©ã¤ã <emphasis>ããªãã"
+"ã°ãªãã¾ãã</emphasis> ã ã¾ã <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> çµã¿è¾¼ã¿ã®</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><"
+"composite-id></literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"2ã¤ç®ã®æ¹æ³ã¯ <emphasis>ãããããã</emphasis> è¤åèå¥åã¨å¼ã°ãããã®ã§ã "
+"<literal><composite-id></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> ãå®è£
ããªãã¦ã¯ãªãã¾ããããã®æ¹æ³"
+"ã«ã¯ãæããã«ã³ã¼ããéè¤ããã¨ããä¸é½åãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> ): ãããã³ã°ããè¤åèå¥åã使ç¨ããããã¨ã¨ãå
å«ãããããããã£"
+"ã®ãããã³ã°ããã¨ã³ãã£ãã£ã¯ã©ã¹ã¨è¤åèå¥åã¯ã©ã¹ã®ä¸¡æ¹ãåç
§ãããã¨ã示"
+"ãã¾ãã"
+
+#. 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> (ãªãã·ã§ã³ããã ããããã³ã°ããè¤åèå¥åã«ã¯å¿
"
+"é ): è¤åèå¥åã¨ãã¦ä½¿ç¨ããã¯ã©ã¹ã"
+
+#. 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 ""
+"3ã¤ç®ã®ããã«ä¾¿å©ãªæ¹æ³ã¯ãè¤åèå¥åã <xref linkend=\"components-"
+"compositeid\"/> ã®ã³ã³ãã¼ãã³ãã¯ã©ã¹ã¨ãã¦å®è£
ãããã¨ã§ããä¸ã§è¨è¿°ãã¦ã"
+"ãå±æ§ã¯ããã®ä»£æ¿æ¹æ³ã«ã®ã¿é©ç¨ããã¾ã:"
+
+#. 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ç« ãåç
§ãã¦ãã ãã)ã"
+
+#. 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 ãããããã£ã®å¤ã«ã¢ã¯ã»ã¹ããããã«ä½¿ç¨ãã¹ãæ¦ç¥ã"
+
+#. 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> ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ãªãã¬ã¯ã·ã§ã³ã«ãã決å®"
+"ãããããããã£ã®åï¼ï¼ è¤åèå¥åã¨ãã¦ä½¿ãããã³ã³ãã¼ãã³ãã®ã¯ã©ã¹ï¼æ¬¡ã®"
+"ç¯ãè¦ã¦ãã ããï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The third approach, an <emphasis>identifier component</emphasis>, is "
+"recommended for almost all applications."
+msgstr ""
+"ãã®3ã¤ç®ã®æ¹æ³ã¯ <emphasis> èå¥åã³ã³ãã¼ãã³ã</emphasis> ã¨å¼ã³ãã»ã¨ãã©"
+"ãã¹ã¦ã®ã¢ããªã±ã¼ã·ã§ã³ã«å¯¾ãã¦æ¨å¥¨ããæ¹æ³ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Discriminator"
+msgstr "discriminator"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><discriminator></literal> element is required for "
+"polymorphic persistence using the table-per-class-hierarchy mapping "
+"strategy. It declares a discriminator column of the table. The discriminator "
+"column contains marker values that tell the persistence layer what subclass "
+"to instantiate for a particular row. A restricted set of types can be used: "
+"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
+"literal>, <literal>byte</literal>, <literal>short</literal>, "
+"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
+"literal>."
+msgstr ""
+"<literal><discriminator></literal> è¦ç´ ã¯ã table-per-class-hierarchy "
+"ãããã³ã°æ¦ç¥ã使ãããªã¢ã¼ãã£ãã¯ãªæ°¸ç¶åã«å¿
è¦ã§ããããã¼ãã«ã®èå¥ã«ã©"
+"ã ãå®ç¾©ãã¾ããèå¥ã«ã©ã ã¯ãããè¡ã«å¯¾ãã¦æ°¸ç¶å±¤ãã©ã®ãµãã¯ã©ã¹ãã¤ã³ã¹ã¿"
+"ã³ã¹åããããä¼ãããã¼ã«ã¼å¤ãå«ãã§ãã¾ãã以ä¸ã®ãããªåã«å¶éããã¾ãï¼ "
+"<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> ï¼ï¼ èå¥ã«ã©ã ã®ååã"
+
+#. 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 ã®åã示ãååã"
+
+#. 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 ã使ç¨ã§ããèå¥ã«ã©ã ã®æå®ããå¼·å¶ããã¾ãã"
+
+#. 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> ï¼ï¼ ããèå¥ã«ã©ã ããããã³ã°ããè¤åèå¥åã®ä¸é¨ãªãã°ã "
+"<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 å¼ãã³ã³ãã³ããã¼ã¹ã®èå¥ãå¯è½ã«ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal><"
+"class></literal> and <literal><subclass></literal> elements."
+msgstr ""
+"èå¥ã«ã©ã ã®å®éã®å¤ã¯ã <literal><class></literal> 㨠<literal><"
+"subclass></literal> è¦ç´ ã® <literal>discriminator-value</literal> å±æ§ã§æ"
+"å®ããã¾ãã"
+
+#. 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> å±æ§ã¯æå¹ã§ãããã ããæ®éã¯ããã"
+"ããã¨ã¯ããã¾ããã"
+
+#. 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 å¼"
+"ã宣è¨ã§ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Version (optional)"
+msgstr "versionï¼ãªãã·ã§ã³ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><version></literal> element is optional and indicates "
+"that the table contains versioned data. This is particularly useful if you "
+"plan to use <emphasis>long transactions</emphasis>. See below for more "
+"information:"
+msgstr ""
+"<literal><version></literal> è¦ç´ ã¯ãªãã·ã§ã³ã§ããããã¼ãã«ããã¼ã¸ã§"
+"ã³ãã¼ã¿ãå«ããã¨ã示ãã¾ãããã㯠<emphasis>ãã³ã°ãã©ã³ã¶ã¯ã·ã§ã³</"
+"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> ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ããããã£åï¼: ãã¼ã¸ã§"
+"ã³çªå·ãä¿æããã«ã©ã ã®ååã"
+
+#. Tag: para
+#, no-c-format
+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> ï¼ï¼ãã¼ã¸ã§ã³çªå·ã®åã"
+
+#. 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 ãããããã£ã®å¤ã«ã¢ã¯ã»ã¹ããããã«ä½¿ç¨ãã¹ãæ¦ç¥ã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
+"literal>): a version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. <literal>Undefined</literal> "
+"specifies that the identifier property value should be used."
+msgstr ""
+"<literal>unsaved-value</literal> ï¼ãªãã·ã§ã³ - ããã©ã«ã㯠"
+"<literal>undefined</literal> ï¼ï¼ ã¤ã³ã¹ã¿ã³ã¹ãæ°ããã¤ã³ã¹ã¿ã³ã¹åãããã"
+"ã¨ã示ã ï¼ã»ã¼ãããã¦ããªããã¨ã示ãï¼ ãã¼ã¸ã§ã³ããããã£ã®å¤ã以åã® "
+"Session ã§ã»ã¼ãã¾ãã¯ãã¼ããããåé¢ã¤ã³ã¹ã¿ã³ã¹ã¨åºå¥ããããã«ä½¿ãã¾ãã "
+"ï¼ <literal>undefined</literal> ã¯èå¥åããããã£ã®å¤ã使ããããã¨ãæå®ã"
+"ã¾ããï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this version property value is generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>never</"
+"literal> ): ãã®ãã¼ã¸ã§ã³ã®ããããã£ã®å¤ãããã¼ã¿ãã¼ã¹ã«ãã£ã¦çæããã"
+"ãã¨ãæå®ãã¾ãã<xref linkend=\"mapping-generated\"/> çæããããã£ã®è°è«"
+"ãåç
§ãã¦ãã ããã"
+
+#. 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ã® insert æã«ãã¼ã¸ã§ã³ã«ã©ã ãå«ããã¹ããã©ãããæå®ãã¾"
+"ãããããã¼ã¿ãã¼ã¹ã«ã©ã ã®ããã©ã«ãå¤ã <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 ""
+"ãã¼ã¸ã§ã³çªå·ã¯ Hibernate ã® <literal>long</literal> ã <literal>integer</"
+"literal> ã <literal>short</literal> ã <literal>timestamp</literal> ã "
+"<literal>calendar</literal> åã®ããããã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A version or timestamp property should never be null for a detached "
+"instance. Hibernate will detect any instance with a null version or "
+"timestamp as transient, irrespective of what other <literal>unsaved-value</"
+"literal> strategies are specified. <emphasis>Declaring a nullable version or "
+"timestamp property is an easy way to avoid problems with transitive "
+"reattachment in Hibernate. It is especially useful for people using assigned "
+"identifiers or composite keys</emphasis>."
+msgstr ""
+"ãã¼ã¸ã§ã³ãã¿ã¤ã ã¹ã¿ã³ãã®ããããã£ã¯ãåé¢ãããã¤ã³ã¹ã¿ã³ã¹ã«å¯¾ã㦠"
+"null ã§ãã£ã¦ã¯ãªãã¾ããããã®ããã©ã®ãã㪠<literal>unsaved-value</"
+"literal> æ¦ç¥ãæå®ããã¦ãã Hibernate 㯠null ã®ãã¼ã¸ã§ã³ãã¿ã¤ã ã¹ã¿ã³ã"
+"ãæã£ããã¹ã¦ã®ã¤ã³ã¹ã¿ã³ã¹ããä¸æçãªãã®ã§ããã¨å¤æãã¾ãã <emphasis> "
+"null ã許容ãããã¼ã¸ã§ã³ãã¿ã¤ã ã¹ã¿ã³ãã®ããããã£ãå®ç¾©ãããã¨ã¯ã "
+"Hibernate ã«ããã¦é渡çã«ä¸æãªãã¸ã§ã¯ãã¨ãããã¨ãé²ãç°¡åãªæ¹æ³ã§ããç¹"
+"ã«èå¥åã®å²ãå½ã¦ãè¤åãã¼ã使ç¨ãã¦ããã¨ãã«ã¯ç¹ã«æç¨ã§ãã</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "Timestamp (optional)"
+msgstr "timestampï¼ãªãã·ã§ã³ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><timestamp></literal> element indicates that the "
+"table contains timestamped data. This provides an alternative to versioning. "
+"Timestamps are a less safe implementation of optimistic locking. However, "
+"sometimes the application might use the timestamps in other ways."
+msgstr ""
+"ãªãã·ã§ã³ã® <literal><timestamp></literal> è¦ç´ ã¯ããã¼ãã«ãã¿ã¤ã ã¹"
+"ã¿ã³ããã¼ã¿ãå«ããã¨ã示ãã¾ããããã¯ãã¼ã¸ã§ã³ä»ãã®ä»£ããã®æ¹æ³ã¨ãã¦ç¨"
+"æããã¦ãã¾ããã¿ã¤ã ã¹ã¿ã³ãã¯ãã¨ãã¨æ¥½è¦³çããã¯ã«ãããå®å
¨æ§ã®ä½ãå®è£
"
+"ã§ãããããã¢ããªã±ã¼ã·ã§ã³ã¯ã¿ã¤ã ã¹ã¿ã³ããç°ãªãç¨éã§ä½¿ããã¨ããããã"
+"ããã¾ããã"
+
+#. Tag: 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>ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ããããã£åï¼ï¼ ã¿ã¤ã ã¹"
+"ã¿ã³ããä¿æããã«ã©ã ã®ååã"
+
+#. 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> ï¼ æ°¸ç¶ã¯ã©ã¹ã§ãã Java ã® <literal>Date</literal>å"
+"ã¾ã㯠<literal>Timestamp</literal> å ã®ã JavaBeans ã¹ã¿ã¤ã«ããããã£ã®å"
+"åã"
+
+#. 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 ã§ã»ã¼ãã¾ãã¯ãã¼ãããã"
+"åé¢ãããã¤ã³ã¹ã¿ã³ã¹ã¨åºå¥ããããã«ä½¿ããã¾ãã ï¼ <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 ã \"次ã®å¤\" ã決å®ããããã«ãã¼ã¿ãã¼ã¹ããããã"
+"ãªããã°ãªããªãããããªã¼ãããããæãã¾ãããããã¯ã©ã¹ã¿ç°å¢ã§ã¯ JVM ãã"
+"åå¾ããããå®å
¨ã§ãããã¼ã¿ãã¼ã¹ã®ç¾å¨ã®ã¿ã¤ã ã¹ã¿ã³ãã®åå¾ããµãã¼ããã"
+"ãã¹ã¦ã® <literal>Dialect</literal> ãç¥ããã¦ããããã§ã¯ãªããã¨ã«æ³¨æãã¦"
+"ãã ãããã¾ãä¸æ¹ã§ãç²¾å¯ããæ¬ ãããã«ãããã¯ã§ä½¿ç¨ããã«ã¯å®å
¨ã§ãªããã®"
+"ãããã¾ã (ä¾ãã° Oracle 8 )ã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this timestamp property value is actually "
+"generated by the database. See the discussion of <link linkend=\"mapping-"
+"generated\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>never</"
+"literal> ): ãã®ã¿ã¤ã ã¹ã¿ã³ãã®ããããã£ã®å¤ãããã¼ã¿ãã¼ã¹ã«ãã£ã¦çæã"
+"ãããã¨ãæå®ãã¾ãã <xref linkend=\"mapping-generated\"/> çæããããã£ã"
+"åç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注è¨"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><Timestamp></literal> is equivalent to <literal><version "
+"type=\"timestamp\"></literal>. And <literal><timestamp source=\"db"
+"\"></literal> is equivalent to <literal><version type=\"dbtimestamp"
+"\"></literal>"
+msgstr ""
+"<literal><timestamp></literal> 㯠<literal><version type=\"timestamp"
+"\"></literal> ã¨ç価ã§ãããã¨ã«æ³¨æãã¦ãã ããã <literal><timestamp "
+"source=\"db\"></literal> 㯠<literal><version type=\"dbtimestamp\">"
+"</literal> ã¨ç価ã§ãããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Property"
+msgstr "property"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><property></literal> element declares a persistent "
+"JavaBean style property of the class."
+msgstr ""
+"<literal><property></literal> è¦ç´ ã¯ãã¯ã©ã¹ã®æ°¸ç¶ç㪠JavaBean ã¹ã¿ã¤"
+"ã«ã®ããããã£ãå®ç¾©ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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><column></literal> element(s)."
+msgstr ""
+"<literal>column</literal>ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ããããã£åï¼ï¼ ãããã³"
+"ã°ããããã¼ã¿ãã¼ã¹ãã¼ãã«ã®ã«ã©ã ã®ååããã¹ããã <literal><"
+"column></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> ï¼ï¼ ãããã³ã°ãããã«ã©ã ã SQL ã® <literal>UPDATE</literal> ã "
+"<literal>INSERT</literal> ã«å«ã¾ãããã¨ãæå®ãã¾ãã両æ¹ã¨ã "
+"<literal>false</literal> ã«è¨å®ããã¨ãåãã«ã©ã ã«ãããã³ã°ãããä»ã®ããã"
+"ãã£ãããªã¬ãä»ã®ã¢ããªã±ã¼ã·ã§ã³ã«ãã£ã¦åæåãããç´ç²ãªãå°åºãããã"
+"ãã£ãå¯è½ã«ãªãã¾ãã"
+
+#. 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>ï¼ãªãã·ã§ã³ï¼ï¼ <emphasis>è¨ç®</emphasis> ããã"
+"ãã£ã®ããã®å¤ãå®ç¾©ãã SQL å¼ãè¨ç®ãããããããã£ã¯èªèº«ã®ã«ã©ã ã¸ã®ããã"
+"ã³ã°ãããã¾ããã"
+
+#. 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> ): ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«æåã«ã¢ã¯ã»ã¹ããã¨ãã«ãããããã£ãé
延ãã¦"
+"åå¾ããããæå®ãã¾ãã (ãã¤ãã³ã¼ãå®è£
ãä½æããæéãå¿
è¦ã«ãªãã¾ã)ã"
+
+#. 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> ã®ã¿ã¼ã²ããã¨ããã"
+"ã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): enables the DDL generation of a "
+"nullability constraint for the columns."
+msgstr ""
+"<literal>not-null</literal> (ãªãã·ã§ã³):ã«ã©ã ã« null å¤ã許å¯ãã DDL ã®ç"
+"æãå¯è½ã«ãã¾ãã"
+
+#. 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> ): ãã®ããããã£ã®æ´æ°ã«æ¥½è¦³ããã¯ã®åå¾ãè¦æ±ãããã©ãããæå®ã"
+"ã¾ããè¨ãæããã°ããã®ããããã£ããã¼ãã£ã§ããã¨ãã«ãã¼ã¸ã§ã³ãå¢ããã¹"
+"ããã決å®ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this property value is actually generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>never</"
+"literal> ): ããããã£ã®å¤ãããã¼ã¿ãã¼ã¹ã«ãã£ã¦çæããããã¨ãæå®ãã¾"
+"ãã <xref linkend=\"mapping-generated\"/> çæããããã£ãåç
§ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr "<emphasis>typename</emphasis> ã«ã¯ä»¥ä¸ã®å¤ãå¯è½ã§ãï¼"
+
+#. 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> ï¼ã"
+
+#. 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> ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr "ã·ãªã¢ã©ã¤ãºå¯è½ãª Java ã¯ã©ã¹ã®ååã"
+
+#. 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> ï¼ã"
+
+#. 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 ""
+"åãæå®ããªããã°ã Hibernate ã¯æ£ãã 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 ã®ãã¢ãã³ã¼ã«ãã¾ãã <literal>access=\"field\"</literal> ã¨æå®ãã"
+"ã°ã Hibernate ã¯ãªãã¬ã¯ã·ã§ã³ã使ã get/set ã®ãã¢ãä»ããã«ãç´æ¥ãã£ã¼ã«"
+"ãã«ã¢ã¯ã»ã¹ãã¾ããã¤ã³ã¿ã¼ãã§ã¼ã¹ <literal>org.hibernate.property."
+"PropertyAccessor</literal> ãå®è£
ããã¯ã©ã¹ãæå®ãããã¨ã§ãããããã£ã¸ã®ã¢"
+"ã¯ã»ã¹ã«ç¬èªã®æ¦ç¥ãæå®ãããã¨ãã§ãã¾ãã"
+
+#. 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 ""
+"ç¹ã«å¼·åãªç¹å¾´ã¯çæããããã£ã§ãããããã®ããããã£ã¯å½ç¶èªã¿åãå°ç¨ã§ã"
+"ããããããã£ã®å¤ã¯ãã¼ãæã«è¨ç®ããã¾ããè¨ç®ã 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><formula></literal> mapping "
+"element if you do not want to use the attribute."
+msgstr ""
+"ç¹å®ã®ã«ã©ã (ä¾ã§ã¯ <literal>customerId</literal> ãããã«ãããã¾ã)ã®ã¨ã¤ãª"
+"ã¢ã¹ã宣è¨ãããã¨ãªããã¨ã³ãã£ãã£èªèº«ã®ãã¼ãã«ãåç
§ã§ãããã¨ã«æ³¨æãã¦"
+"ãã ãããããå±æ§ã使ç¨ããããªããã°ããã¹ããã <literal><formula></"
+"literal> ãããã³ã°è¦ç´ ã使ãããã¨ã«ã注æãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "many-to-one"
+
+#. 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> è¦ç´ ã使ã£ã¦å®"
+"義ãã¾ãããªã¬ã¼ã·ã§ãã«ã¢ãã«ã¯å¤å¯¾ä¸é¢é£ã§ããã¤ã¾ããããã¼ãã«ã®å¤é¨ãã¼"
+"ã¯ãã¿ã¼ã²ããã¨ãªããã¼ãã«ã®ä¸»ãã¼ã«ã©ã ãåç
§ãã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr "<literal>name</literal>ï¼ããããã£åã"
+
+#. 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><column></literal> "
+"element(s)."
+msgstr ""
+"<literal>column</literal> (ãªãã·ã§ã³):å¤é¨ãã¼ã«ã©ã ã®ååããã¹ããã "
+"<literal><column></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>ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ãªãã¬ã¯ã·ã§ã³ã«ãã決å®ã"
+"ããããããã£ã®åï¼ï¼ é¢é£ã¯ã©ã¹ã®ååã"
+
+#. 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>ï¼ãªãã·ã§ã³ï¼ï¼ 親ãªãã¸ã§ã¯ãããé¢é£ãªãã¸ã§ã¯ã"
+"ã¸ãã©ã®æä½ãã«ã¹ã±ã¼ãããããæå®ãã¾ãã"
+
+#. 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> ï¼ï¼ å¤é¨çµåãã§ããã¨é 次é¸æãã§ããï¼sequential select fetchï¼ã®"
+"ã©ã¡ãããé¸æãã¾ãã"
+
+#. 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> ï¼ï¼ ãããã³ã°ãããã«ã©ã ã SQL ã® <literal>UPDATE</literal> ã¾ã"
+"㯠<literal>INSERT</literal> æã«å«ã¾ãããã¨ãæå®ãã¾ãã両æ¹ã¨ã "
+"<literal>false</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>: (ãªãã·ã§ã³) ãã®å¤é¨ãã¼ã«å ãããé¢é£ã¯ã©"
+"ã¹ã®ããããã£ã®ååãæå®ããã¦ããªãå ´åã¯ãé¢é£ã¯ã©ã¹ã®ä¸»ãã¼ã使ç¨ããã¾"
+"ãã"
+
+#. 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> ã®"
+"ã¿ã¼ã²ããã«ãããã¨ãã§ãã¾ããããã«ããé¢é£ã®å¤é度ãå¹æçã«ä¸å¯¾ä¸ã«ãã¾"
+"ãã"
+
+#. 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> (ãªãã·ã§ã³): å¤é¨ãã¼ã«ã©ã ã«å¯¾ãã¦ã null å¤ã"
+"許å¯ãã 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> ã¯ãã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«æåã«ã¢ã¯ã»ã¹ãã"
+"ã¨ãã«ãããããã£ãé
延ãã§ããããããæå®ãã¾ã (ãã«ãæã«ãã¤ãã³ã¼ãå®"
+"è£
ãå¿
è¦ã«ãªãã¾ã)ã <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> ãæå®ããã¨ãè¡ããªããã¨ãé¢é£ããªããã®ã¨ãã¦æ±"
+"ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> (ãªãã·ã§ã³): <emphasis> è¨ç®ããã</emphasis> å¤"
+"é¨ãã¼ã«å¯¾ãã¦å¤ãå®ç¾©ãã SQL å¼"
+
+#. 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>delete-orphan</literal> "
+"㨠<literal>all</literal> ãæä½åãã«ã³ãã§åºåã£ãçµã¿åãã ï¼ä¾ãã° "
+"<literal>cascade=\"persist,merge,evict\"</literal> ã <literal>cascade=\"all,"
+"delete-orphan\"</literal>ï¼ãã¾ãããã ãã§ãªã <literal>persist, merge, "
+"delete, save-update, evict, replicate, lock, refresh</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:"
+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> å±æ§ã¯ SchemaExport ãã¼ã«ã使ã£"
+"ã Hibernate ã® DDL çæãå¶å¾¡ãã¾ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr ""
+"以ä¸ã®ããã« <literal>OrderItem</literal> ã«å¯¾ãã¦ãããã³ã°ã使ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This is not encouraged, however."
+msgstr "ããããããã¯æ±ºãã¦æ¨å¥¨ã§ãã¾ããã"
+
+#. 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><"
+"properties></literal> element."
+msgstr ""
+"åç
§ããã¦ãã¼ã¯ãã¼ããé¢é£ããã¨ã³ãã£ãã£ã®å¤æ°ã®ããããã£ããæ§æããã"
+"å ´åãæå®ãã <literal><properties></literal> è¦ç´ å
ã§ãåç
§ããããã"
+"ãã£ããããã³ã°ããã¹ãã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the referenced unique key is the property of a component, you can specify "
+"a property path:"
+msgstr ""
+"ããåç
§ããã¦ãã¼ã¯ãã¼ãã³ã³ãã¼ãã³ãã®ããããã£ã§ããå ´åã¯ãããããã£"
+"ã®ãã¹ãæå®ã§ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "one-to-one"
+
+#. 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> è¦ç´ ã§å®ç¾©ãã¾"
+"ãã"
+
+#. 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> ã"
+"ã«ã¹ã±ã¼ããããé åºã«å½±é¿ããããã¦é¢é£ããããã·ããããã©ããã«ãå½±é¿ãã¾"
+"ã ï¼ããã¦ã¹ãã¼ãã¨ã¯ã¹ãã¼ããã¼ã«ã«ã使ããã¾ãï¼ã"
+
+#. 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>ï¼ãªãã·ã§ã³ï¼ï¼ ãã®ã¯ã©ã¹ã®ä¸»ãã¼ã«çµåãã"
+"ãé¢é£ã¯ã©ã¹ã®ããããã£åãæå®ãããªããã°ãé¢é£ã¯ã©ã¹ã®ä¸»ãã¼ã使ããã¾"
+"ãã"
+
+#. 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 æ§æã使ã£ãçµåããããã®å¼ãæå®ã§ãã¾ããï¼ä¾ã¯ "
+"<literal>org.hibernate.test.onetooneformula</literal> ãåç
§ãã¦ãã ãããï¼"
+
+#. 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> ã¯ãã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«æåã«ã¢ã¯ã»ã¹ãã"
+"ã¨ãã«ãããããã£ãé
延ãã§ããããããæå®ãã¾ã (ãã«ãæã«ãã¤ãã³ã¼ãå®"
+"è£
ãå¿
è¦ã«ãªãã¾ã)ã <literal>lazy=\"false\"</literal> ã¯é¢é£ã常ã«å³æã«"
+"ãã§ããããããæå®ãã¾ãã <emphasis>ãã <literal>constrained=\"false\"</"
+"literal> ãªãã°ããããã·ã¯ä½¿ç¨ä¸å¯è½ã¨ãªããé¢é£ãå³æã«ãã§ãããããã¨ã«æ³¨"
+"æãã¦ãã ããã</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr "ä¸å¯¾ä¸é¢é£ã«ã¯2種é¡ããã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr "主ãã¼é¢é£"
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr "ã¦ãã¼ã¯å¤é¨ãã¼é¢é£"
+
+#. 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 ""
+"主ãã¼é¢é£ã«ã¯ãç¹å¥ãªãã¼ãã«ã«ã©ã ã¯å¿
è¦ããã¾ããããã2ã¤ã®è¡ãé¢é£ã«ãã"
+"é¢ä¿ãã¦ããã°ã2ã¤ã®ãã¼ãã«ã¯åã主ãã¼ã®å¤ãå
±æãã¾ãããã®ãã2ã¤ã®ãªã"
+"ã¸ã§ã¯ãã主ãã¼é¢é£ã«ãã£ã¦é¢é£ä»ãããã®ã§ããã°ã確å®ã«åãèå¥åã®å¤ã代"
+"å
¥ããªããã°ãªãã¾ããã"
+
+#. 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> ã®ããããã«è¿½å ãã¦ãã ããã"
+
+#. 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 èå¥åçææ¦ç¥ã使ãã¾ãï¼"
+
+#. 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>Employee</literal> ã¤ã³ã¹ã¿ã³ã¹ãã <literal>Person</literal> ã® "
+"<literal>employee</literal> ããããã£ã§åç
§ãããããã«ãæ°ããã»ã¼ãããã "
+"<literal>Person</literal> ã®ã¤ã³ã¹ã¿ã³ã¹ã«ã¯åã主ãã¼ã®å¤ã代å
¥ããã¾ããæ°"
+"ããã»ã¼ããã <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 ""
+"ãã1ã¤ã®æ¹æ³ã¨ãã¦ã <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> ã®ãããã³ã°ã«è¿½å ã"
+"ããã¨ã§åæ¹åã«ãããã¨ãã§ãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Natural-id"
+msgstr "natural-id"
+
+#. 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><"
+"natural-id></literal> element. Hibernate will generate the necessary "
+"unique key and nullability constraints and, as a result, your mapping will "
+"be more self-documenting."
+msgstr ""
+"主ãã¼ã¨ãã¦ä»£çãã¼ã®ä½¿ç¨ãæ¨å¥¨ãã¾ããããã¹ã¦ã®ã¨ã³ãã£ãã£ã«å¯¾ãã¦èªç¶"
+"ãã¼ãèå¥ããããã«ãã¹ãã§ããèªç¶ãã¼ã¯ã¦ãã¼ã¯ãã¤é null ãªä¸ã¤ã®ããã"
+"ãã£ãã¾ãã¯ããããã£ã®é£çµã§ããä¸å¤ã§ããã°ããã«è¯ãã§ãã <literal><"
+"natural-id></literal> è¦ç´ å
ã§èªç¶ãã¼ã®ããããã£ããããã³ã°ãã¾ãã "
+"Hibernate ã¯å¿
ç¶çã«ã¦ãã¼ã¯ã㤠null å¤ã許å¯ããå¶ç´ãçæãããããã¦ãã"
+"ãã³ã°ã¯ããèªå·±è¨è¿°çã«ãªãã¾ãã"
+
+#. 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> ã®å®è£
ãå¼·ããå§ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> ): ããã©ã«ãã§ã¯ãèªç¶èå¥åããããã£ã¯ä¸å¤(å®æ°)ã¨æ³å®ããã¦ãã¾"
+"ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Component and dynamic-component"
+msgstr "component, dynamic-component"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element maps properties of a child "
+"object to columns of the table of a parent class. Components can, in turn, "
+"declare their own properties, components or collections. See the \"Component"
+"\" examples below:"
+msgstr ""
+"<literal><component></literal> è¦ç´ ã¯ãåãªãã¸ã§ã¯ãã®ããããã£ã親ã¯"
+"ã©ã¹ã®ãã¼ãã«ã®ã«ã©ã ã¸ãããã³ã°ãã¾ããã³ã³ãã¼ãã³ãã¯èªåã®ããããã£ã"
+"ã³ã³ãã¼ãã³ããã³ã¬ã¯ã·ã§ã³ã®é ã«å®ç¾©ã§ãã¾ãã以ä¸ã®ãã³ã³ãã¼ãã³ãããè¦"
+"ã¦ãã ããã"
+
+#. 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> ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ãªãã¬ã¯ã·ã§ã³ã«ãã決å®"
+"ãããããããã£ã®åï¼ï¼ ã³ã³ãã¼ãã³ãï¼åï¼ã¯ã©ã¹ã®ååã"
+
+#. 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> ã«ç¾ããããã«ãããã©ãããæå®ãã¾ãã"
+
+#. 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> ã«ç¾ããããã«ãããã©ãããæå®ãã¾ãã"
+
+#. 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> ): ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«æåã«ã¢ã¯ã»ã¹ããã¨ãã«ãã³ã³ãã¼ãã³ããé
延"
+"ãã¦ãã§ããããããæå®ãã¾ãã (ãã¤ãã³ã¼ãå®è£
ãä½æããæéãå¿
è¦ã«ãªã"
+"ã¾ã)"
+
+#. 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> ): ãã®ããããã£ã®æ´æ°ã«ã楽観ããã¯ã®åå¾ãè¦æ±ãããã©ãããæå®"
+"ãã¾ããè¨ãæããã°ããã®ããããã£ããã¼ãã£ã§ããã¨ãã«ãã¼ã¸ã§ã³ãå¢ãã"
+"ã¹ããã決å®ãã¾ãã"
+
+#. 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> ): ã³ã³ãã¼ãã³ãã®ãã¹ã¦ã®ãããã³ã°ããã«ã©ã ã«ãã¦ãã¼ã¯å¶ç´ãå"
+"å¨ããããæå®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The child <literal><property></literal> tags map properties of the "
+"child class to table columns."
+msgstr ""
+"åã® <literal><property></literal> ã¿ã°ã§ãåã®ã¯ã©ã¹ã®ããããã£ããã¼"
+"ãã«ã«ã©ã ã«ãããã³ã°ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"<literal><component></literal> è¦ç´ ã¯ã親ã¨ã³ãã£ãã£ã¸æ»ãåç
§ã¨ãã¦ã"
+"ã³ã³ãã¼ãã³ãã®ã¯ã©ã¹ã®ããããã£ããããã³ã°ãã <literal><parent></"
+"literal> ãµãè¦ç´ ã許å¯ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><dynamic-component></literal> element allows a "
+"<literal>Map</literal> to be mapped as a component, where the property names "
+"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
+"more information."
+msgstr ""
+"<literal><dynamic-component></literal> è¦ç´ ã¯ã <literal>Map</literal> "
+"ãã³ã³ãã¼ãã³ãã¨ãã¦ãããã³ã°ããããã¨ãå¯è½ã«ãã¾ããããããã£å㯠map "
+"ã®ãã¼ãåç
§ãã¾ãã<xref linkend=\"components-dynamic\"/> ãåç
§ãã¦ãã ã"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "ããããã£"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><properties></literal> element allows the definition of a "
+"named, logical grouping of the properties of a class. The most important use "
+"of the construct is that it allows a combination of properties to be the "
+"target of a <literal>property-ref</literal>. It is also a convenient way to "
+"define a multi-column unique constraint. For example:"
+msgstr ""
+"<literal><properties></literal> è¦ç´ ã¯ã¯ã©ã¹ã®ããããã£ã®æå®ãããã"
+"è«ççãªã°ã«ã¼ãã³ã°ãå¯è½ã«ãã¾ãããã®æ§é ã®æãéè¦ãªä½¿ç¨æ¹æ³ã¯ã "
+"<literal>property-ref</literal> ã®ã¿ã¼ã²ããã«ãªãããããã£ã®çµåã許å¯ãã"
+"ãã¨ã§ããããã¯ã¾ããè¤æ°ã«ã©ã ã®ã¦ãã¼ã¯å¶ç´ãå®ç¾©ããç°¡åãªæ¹æ³ã§ãããã¾"
+"ãã"
+
+#. 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> ã"
+
+#. 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> ): ãããã®ããããã£ã®æ´æ°ã«æ¥½è¦³çããã¯ã®åå¾ãè¦æ±ãããã©ããã"
+"æå®ãã¾ããè¨ãæããã°ããã®ããããã£ããã¼ãã£ã§ããã¨ãã«ãã¼ã¸ã§ã³ãå¢"
+"ããã¹ããã決å®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For example, if we have the following <literal><properties></literal> "
+"mapping:"
+msgstr ""
+"ä¾ãã°ããã以ä¸ã®ãã㪠<literal><properties></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> ãã¼ãã«ã®ã¦ãã¼ã¯ãã¼ã¸ã®åç
§ãæ"
+"ã¤ãã¬ã¬ã·ã¼ãã¼ã¿ã®é¢é£ãæã¤ããããã¾ãããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The use of this outside the context of mapping legacy data is not "
+"recommended."
+msgstr ""
+"ãããããã®ãããªã¬ã¬ã·ã¼ãã¼ã¿ãããã³ã°ã®ã³ã³ããã¹ãå¤ã¸ã®ä½¿ç¨ã¯æ¨å¥¨ãã¾"
+"ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Subclass"
+msgstr "subclass"
+
+#. 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><subclass></literal> declaration is used. For example:"
+msgstr ""
+"æå¾ã«ããªã¢ã¼ãã£ãã¯ãªæ°¸ç¶åã«ã¯ãã«ã¼ãã®æ°¸ç¶ã¯ã©ã¹ã®åãµãã¯ã©ã¹ã®å®ç¾©ã"
+"å¿
è¦ã§ãã table-per-class-hierarchy ãããã³ã°æ¦ç¥ã§ã¯ã <literal><"
+"subclass></literal> å®ç¾©ã使ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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>ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ã¯ã©ã¹"
+"åï¼ï¼ åã
ã®ãµãã¯ã©ã¹ãåºå¥ããããã®å¤ã"
+
+#. Tag: para
+#, no-c-format
+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> ã¨ããã¨ãé
延ãã§ããã使ç¨ã§ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Each subclass declares its own persistent properties and subclasses. "
+"<literal><version></literal> and <literal><id></literal> "
+"properties are assumed to be inherited from the root class. Each subclass in "
+"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
+"this is not specified, the fully qualified Java class name is used."
+msgstr ""
+"åãµãã¯ã©ã¹ã§ã¯ãæ°¸ç¶ããããã£ã¨ãµãã¯ã©ã¹ãå®ç¾©ãã¾ãã <literal><"
+"version></literal> 㨠<literal><id></literal> ããããã£ã¯ãã«ã¼ãã¯"
+"ã©ã¹ããç¶æ¿ãããã¨ä»®å®ããã¾ããé層æ§é ã«ããããµãã¯ã©ã¹ã¯ãã¦ãã¼ã¯ãª "
+"<literal>discriminator-value</literal> ãå®ç¾©ããªããã°ãªãã¾ããã none ãæ"
+"å®ãããã¨ãå®å
¨ä¿®é£¾ããã Java ã¯ã©ã¹åã使ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
+msgstr ""
+"ç¶æ¿ã®ãããã³ã°ã«é¢ããæ
å ±ã¯ <xref linkend=\"inheritance\"/> ãåç
§ãã¦ãã "
+"ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Joined-subclass"
+msgstr "joined-subclass"
+
+#. 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><joined-"
+"subclass></literal> element. For example:"
+msgstr ""
+"ãã1ã¤ã®æ¹æ³ã¨ãã¦ãåãµãã¯ã©ã¹ãèªèº«ã®ãã¼ãã«ã¸ãããã³ã°ãããã¨ãã§ãã¾"
+"ã (table-per-subclass mapping strategy)ãç¶æ¿ããç¶æ
ã¯ã¹ã¼ãã¼ã¯ã©ã¹ã®ãã¼"
+"ãã«ã使ã£ãçµåã§æ¤ç´¢ãã¾ãã <literal><joined-subclass></literal> è¦"
+"ç´ ã使ç¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr "<literal>table</literal> :ãµãã¯ã©ã¹ãã¼ãã«ã®ååã"
+
+#. 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> (ãªãã·ã§ã³): é
延åæåãããã·ã«ä½¿ç¨ããã¯ã©ã¹ãã¤"
+"ã³ã¿ã¼ãã§ã¼ã¹ãæå®ãã¾ãã"
+
+#. 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> ã¨ããã¨ãé
延ãã§ããã使ç¨ã§ãã¾ããã"
+
+#. 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><key></literal> element. The mapping at the start "
+"of the chapter would then be re-written as:"
+msgstr ""
+"ãã®ãããã³ã°æ¦ç¥ã«ã¯ãèå¥ã«ã©ã ã¯å¿
è¦ããã¾ããããããåãµãã¯ã©ã¹ã¯ "
+"<literal><key></literal> è¦ç´ ã使ãããªãã¸ã§ã¯ãèå¥åãä¿æãããã¼ã"
+"ã«ã«ã©ã ãå®ç¾©ããªããã°ãªãã¾ããããã®ç« ã®åãã®ãããã³ã°ã¯ä»¥ä¸ã®ããã«æ¸"
+"ãç´ãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Union-subclass"
+msgstr "union-subclass"
+
+#. 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><"
+"class></literal> declaration. However, if you wish use polymorphic "
+"associations (e.g. an association to the superclass of your hierarchy), you "
+"need to use the <literal><union-subclass></literal> mapping. For "
+"example:"
+msgstr ""
+"3ã¤ç®ã®é¸æè¢ã¯ãç¶æ¿é層ã®å
·è±¡ã¯ã©ã¹ã®ã¿ããã¼ãã«ã«ãããã³ã°ãããã¨ã§ã "
+"(the table-per-concrete-class æ¦ç¥)ãããããã®ãã¼ãã«ã¯ç¶æ¿ã®ç¶æ
ãå«ããã¹"
+"ã¦ã®ã¯ã©ã¹ã®æ°¸ç¶ç¶æ
ãå®ç¾©ãã¾ãã Hibernate ã§ã¯ãã®æ§ãªç¶æ¿é層ãå¿
ãããå¿
"
+"è¦ã§ã¯ããã¾ãããåç´ã«ããããã®ã¯ã©ã¹ããå¥ã
ã® <literal><class></"
+"literal> 宣è¨ã使ã£ã¦ãããã³ã°ãããã¨ãã§ãã¾ãããããããªã¢ã¼ãã£ãã¯ãªé¢"
+"é£ (ä¾ãã°é層ã®ã¹ã¼ãã¼ã¯ã©ã¹ã¸ã®é¢é£) ã使ããããªãã <literal><union-"
+"subclass></literal> ãããã³ã°ã使ãå¿
è¦ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"No discriminator column or key column is required for this mapping strategy."
+msgstr "ãã®ãããã³ã°æ¦ç¥ã§ã¯èå¥ã«ã©ã ããã¼ã«ã©ã ã¯å¿
è¦ããã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Join"
+msgstr "join"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Using the <literal><join></literal> element, it is possible to map "
+"properties of one class to several tables that have a one-to-one "
+"relationship. For example:"
+msgstr ""
+"ãã¼ãã«éã«ä¸å¯¾ä¸ã®é¢ä¿ãããã¨ãã <literal><join></literal> è¦ç´ ã使"
+"ããã¨ã§ãï¼ã¤ã®ã¯ã©ã¹ã®ããããã£ãããã¤ãã®ãã¼ãã«ã«ãããã³ã°ãããã¨ã"
+"ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr "<literal>table</literal> :çµåãããã¼ãã«ã®åå"
+
+#. 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><join></literal> defined by a class or its "
+"superclasses. It will use an outer join for a <literal><join></"
+"literal> defined by a subclass. If set to <literal>select</literal> then "
+"Hibernate will use a sequential select for a <literal><join></literal> "
+"defined on a subclass. This will be issued only if a row represents an "
+"instance of the subclass. Inner joins will still be used to retrieve a "
+"<literal><join></literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal> (ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>join</"
+"literal> ): <literal>join</literal> ãè¨å®ããå ´åã Hibernate ã¯ããã©ã«ã"
+"ã§ãã¯ã©ã¹ãã¹ã¼ãã¼ã¯ã©ã¹ã§å®ç¾©ããã <literal><join></literal> ãæ¤ç´¢"
+"ããã®ã«å
é¨çµåã使ãããµãã¯ã©ã¹ã§å®ç¾©ããã <literal><join></"
+"literal> ãæ¤ç´¢ããã®ã«å¤é¨çµåã使ãã¾ãã <literal>select</literal> ãè¨å®"
+"ããå ´åã«ã¯ã Hibernate ã¯ãµãã¯ã©ã¹ã§å®ç¾©ããã <literal><join></"
+"literal> ã®é¸æã«é 次é¸æã使ãã¾ãããã®å ´åãè¡ããµãã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã"
+"代表ãããã¨ãããã£ãå ´åã«ã®ã¿çºè¡ããã¾ããå
é¨çµåã¯ã¯ã©ã¹ããã®ã¹ã¼ãã¼"
+"ã¯ã©ã¹ã§å®ç¾©ããã <literal><join></literal> ãæ¤ç´¢ããããã«ä½¿ç¨ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</"
+"literal>): if enabled, Hibernate will not insert or update the properties "
+"defined by this join."
+msgstr ""
+"<literal>inverse</literal> (ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>false</"
+"literal> ): ããå¯è½ã§ããã°ã Hibernate ã¯ãã®çµåã§å®ç¾©ããã¦ããããããã£"
+"ã«å¯¾ãæ¿å
¥ãæ´æ°ãè¡ãã¾ããã"
+
+#. Tag: para
+#, 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 ã¯ãã®çµåã§å®ç¾©ãããããããã£ã "
+"null ã§ãªãå ´åã«ã®ã¿è¡ãæ¿å
¥ãããã®ããããã£ã®æ¤ç´¢ã«ã¯å¸¸ã«å¤é¨çµåã使ç¨ã"
+"ã¾ãã"
+
+#. 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 ""
+"ä¾ãã°äººã®ã¢ãã¬ã¹ã®æ
å ±ãåé¢ãããã¼ãã«ã«ãããã³ã°ãããã¨ãå¯è½ã§ã (ã"
+"ã¹ã¦ã®ããããã£ã«å¯¾ãã¦å¤åã®ã»ãã³ãã£ã¯ã¹ãä¿æãã¾ã):"
+
+#. 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 ""
+"ãã®ç¹å¾´ã¯ãã°ãã°ã¬ã¬ã·ã¼ãã¼ã¿ã¢ãã«ã«å¯¾ãã¦ã®ã¿æç¨ã§ãããã¯ã©ã¹ãããå°"
+"ãªããã¼ãã«ã¨ãããã®ç´°ãããã¡ã¤ã³ã¢ãã«ãæ¨å¥¨ãã¾ãããããå¾ã§èª¬æããã"
+"ãã«ãï¼ã¤ã®ã¯ã©ã¹é層ã§ç¶æ¿ã®ãããã³ã°æ¦ç¥ãåãæ¿ããæã«ã¯æç¨ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Key"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><key></literal> element has featured a few times within "
+"this guide. It appears anywhere the parent mapping element defines a join to "
+"a new table that references the primary key of the original table. It also "
+"defines the foreign key in the joined table:"
+msgstr ""
+"ä»ã¾ã§ä½åº¦ã <literal><key></literal> è¦ç´ ãåºã¦ãã¾ããããã®è¦ç´ ã¯æ°"
+"ãããã¼ãã«ã¸ã®çµåãå®ç¾©ããããçµåãã¼ãã«ã§å¤é¨ãã¼ãå®ç¾©ããããã親è¦"
+"ç´ ã®ã©ãã«ã§ãç¾ãããªãªã¸ãã«ãã¼ãã«ã®ä¸»ãã¼ãåç
§ãã¾ãã"
+
+#. Tag: 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>): å¤é¨ãã¼å¶ç´ããã¼ã¿ãã¼ã¹ã¬ãã«ã§ã«ã¹ã±ã¼ãåé¤ãå¯è½ãã©ãããæ"
+"å®ãã¾ãã"
+
+#. 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> (ãªãã·ã§ã³): ãªãªã¸ãã«ãã¼ãã«ã®ä¸»ãã¼ã§ã¯"
+"ãªãã«ã©ã ãåç
§ããå¤é¨ãã¼ãæå®ãã¾ã (ã¬ã¬ã·ã¼ãã¼ã¿ã«å¯¾ãã¦æä¾ããã¾"
+"ã)ã"
+
+#. 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> (ãªãã·ã§ã³): å¤é¨ãã¼ã«ã©ã ã null å¤ã許容ããª"
+"ããã¨ãæå®ãã¾ã (ãã®ãã¨ã¯å¤é¨ãã¼ã主ãã¼ã®ä¸é¨ã§ãããã¨ãæé»çã«ç¤ºã"
+"ã¾ã)ã"
+
+#. 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> (ãªãã·ã§ã³): å¤é¨ãã¼ã決ãã¦æ´æ°ãã¦ã¯ãªããªãã"
+"ã¨ãæå®ãã¾ã (ãã®ãã¨ã¯å¤é¨ãã¼ã主ãã¼ã®ä¸é¨ã§ãããã¨ãæé»çã«ç¤ºãã¾"
+"ã)ã"
+
+#. 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> (ãªãã·ã§ã³): å¤é¨ãã¼ãã¦ãã¼ã¯å¶ç´ãæã¤ã¹ãã§ã"
+"ããã¨ãæå®ãã¾ã (ãã®ãã¨ã¯å¤é¨ãã¼ã主ãã¼ã®ä¸é¨ã§ãããã¨ãæé»çã«ç¤ºã"
+"ã¾ã)ã"
+
+#. 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>DELETE</literal> æãæ¯åçºè¡ãã代ããã«ããã¼ã¿ãã¼"
+"ã¹ã¬ãã«ã® <literal>ON CASCADE DELETE</literal> å¶ç´ã使ç¨ãã¾ãããã®ç¹å¾´ã¯"
+"ãã¼ã¸ã§ã³ä»ãããããã¼ã¿ã«å¯¾ãã Hibernate ã®é常ã®æ¥½è¦³çããã¯æ¦ç¥ãç¡è¦ã"
+"ãã¨ãããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. 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><key not-"
+"null=\"true\"></literal>."
+msgstr ""
+"<literal>not-null</literal> 㨠<literal>update</literal> å±æ§ã¯ãåæ¹åä¸å¯¾å¤"
+"é¢é£ã®æã«ã¯æç¨ã§ããåæ¹åä¸å¯¾å¤é¢é£ã null ã許容ããªãå¤é¨ãã¼ã«ãããã³"
+"ã°ããã¨ãã¯ã <literal><key not-null=\"true\"></literal> ã使ã£ã¦ãã¼"
+"ã«ã©ã ãå®£è¨ <emphasis> ããªãã¦ã¯ãªãã¾ãã</emphasis> ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Column and formula elements"
+msgstr "column 㨠formula è¦ç´ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Mapping elements which accept a <literal>column</literal> attribute will "
+"alternatively accept a <literal><column></literal> subelement. "
+"Likewise, <literal><formula></literal> is an alternative to the "
+"<literal>formula</literal> attribute. For example:"
+msgstr ""
+"<literal>column</literal> å±æ§ãè¨è¿°ã§ããä»»æã®ãããã³ã°è¦ç´ ã¯ã¾ãã "
+"<literal><column></literal> ãµãè¦ç´ ãè¨è¿°ã§ãã¾ããåæ§ã« "
+"<literal><formula></literal> ã <literal>formula</literal> å±æ§ã®ä»£æ¿æ"
+"段ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most of the attributes on <literal>column</literal> provide a means of "
+"tailoring the DDL during automatic schema generation. The <literal>read</"
+"literal> and <literal>write</literal> attributes allow you to specify custom "
+"SQL that Hibernate will use to access the column's value. For more on this, "
+"see the discussion of <link linkend=\"mapping-column-read-and-write\">column "
+"read and write expressions</link>."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>column</literal> and <literal>formula</literal> elements 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
+#, fuzzy, no-c-format
+msgid "Import"
+msgstr "import"
+
+#. 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 ""
+"ã¢ããªã±ã¼ã·ã§ã³ã«åãååã®2ã¤ã®æ°¸ç¶ã¯ã©ã¹ãããã Hibernate ã¯ã¨ãªã§å®å
¨ä¿®"
+"飾ãããï¼ããã±ã¼ã¸ã®ï¼ååãæå®ããããªãã¨ä»®å®ãã¾ãããã®ãããªå ´å㯠"
+"<literal>auto-import=\"true\"</literal> ã«é ¼ãããã¯ã©ã¹ããã¤ã³ãã¼ãããã"
+"ããã®ã§ããã¨æ示ã§ãã¾ããæ示çã«ãããã³ã°ããã¦ããªãã¯ã©ã¹ãã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ã§ãããã¤ã³ãã¼ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ä¿®é£¾ããã¦ããªãã¯ã©ã¹"
+"åï¼ï¼ ã¯ã¨ãªè¨èªã§ä½¿ãããååã"
+
+#. Tag: title
+#, no-c-format
+msgid "Any"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There is one more type of property mapping. The <literal><any></"
+"literal> mapping element defines a polymorphic association to classes from "
+"multiple tables. This type of mapping requires more than one column. The "
+"first column contains the type of the associated entity. The remaining "
+"columns contain the identifier. It is impossible to specify a foreign key "
+"constraint for this kind of association. This is not the usual way of "
+"mapping polymorphic associations and you should use this only in special "
+"cases. For example, for audit logs, user session data, etc."
+msgstr ""
+"ããããã£ãããã³ã°ã«ã¯ããã«ãã1ã¤ã®åãããã¾ãã <literal><any></"
+"literal> ãããã³ã°è¦ç´ ã¯ãè¤æ°ã®ãã¼ãã«ããã¯ã©ã¹ã¸ã®ããªã¢ã¼ãã£ãã¯ãªé¢é£"
+"ãå®ç¾©ãã¾ãããã®åã®ãããã³ã°ã«ã¯å¿
ãè¤æ°ã®ã«ã©ã ãå¿
è¦ã§ãã1çªç®ã®ã«ã©ã "
+"ã¯é¢é£ã¨ã³ãã£ãã£ã®åãä¿æãã¾ããæ®ãã®ã«ã©ã ã¯èå¥åãä¿æãã¾ãããã®ç¨®"
+"é¡ã®é¢é£ã«ã¯å¤é¨ãã¼å¶ç´ãæå®ãããã¨ã¯ã§ãã¾ããããã®ããããã¯æã使ãã"
+"ããã¨ã®ãªãï¼ããªã¢ã¼ãã£ãã¯ãªï¼é¢é£ã®ãããã³ã°æ¹æ³ã§ããé常ã«ç¹å¥ãªå ´å"
+"ï¼ä¾ãã°ãæ¤æ»ãã°ãã¦ã¼ã¶ã¼ã»ãã·ã§ã³ãã¼ã¿ãªã©)ã«éã£ã¦ãããã使ãã¹ãã§"
+"ãã"
+
+#. 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 "
+"ã®å¤ããã¯ã©ã¹åã¸ã®ãããã³ã°ãæå®ããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr "<literal>name</literal>ï¼ ããããã£åã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr "<literal>id-type</literal>ï¼ èå¥åã®åã"
+
+#. 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> ï¼ï¼ ãã£ã¹ã¯ãªããã¼ã¿ãããã³ã°ã§è¨±ãããåã"
+
+#. 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> ï¼ï¼ ã«ã¹ã±ã¼ãã®ã¹ã¿ã¤ã«ã"
+
+#. 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> ): ãã®ããããã£ã®æ´æ°ã«æ¥½è¦³ããã¯ã®åå¾ãè¦æ±ãããã©ãããæå®ã"
+"ã¾ããè¨ãæããã°ããã®ããããã£ããã¼ãã£ã§ããã¨ãã«ãã¼ã¸ã§ã³ãå¢ããã¹"
+"ãããå®ç¾©ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate types"
+msgstr "Hibernate ã®å"
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr "ã¨ã³ãã£ãã£ã¨å¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In relation to the persistence service, Java language-level objects are "
+"classified into two groups:"
+msgstr ""
+
+#. 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>ã¨ã³ãã£ãã£</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> åã®ã¤ã³ã¹"
+"ã¿ã³ã¹ã¸ã®åç
§ããæ§æããã¾ããå¤ã¯ããªããã£ããã³ã¬ã¯ã·ã§ã³ (ã³ã¬ã¯ã·ã§ã³"
+"ã®å
é¨ã§ã¯ãªã)ãã³ã³ãã¼ãã³ããä¸å¤ãªãã¸ã§ã¯ãã§ããã¨ã³ãã£ãã£ã¨ã¯éãã"
+"å¤ã¯ï¼ç¹ã«ã³ã¬ã¯ã·ã§ã³ã¨ã³ã³ãã¼ãã³ãã«ããã¦ï¼ãå°éå¯è½æ§ã«ããæ°¸ç¶åãå"
+"é¤ã <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 ""
+"ããã¾ã§ãæ°¸ç¶ã¯ã©ã¹ãã¨ããè¨èãã¨ã³ãã£ãã£ã®æå³ã§ä½¿ã£ã¦ãã¾ãããããã"
+"ãããããã¦ããã¾ããå³å¯ã«è¨ãã¨ãæ°¸ç¶ç¶æ
ãæã¤ã¦ã¼ã¶ã¼å®ç¾©ã®ã¯ã©ã¹ã®ãã¹"
+"ã¦ãã¨ã³ãã£ãã£ã¨ããããã§ã¯ããã¾ããã <emphasis>ã³ã³ãã¼ãã³ã</"
+"emphasis> ã¯å¤ã®ã»ãã³ãã£ã¯ã¹ãæã¤ã¦ã¼ã¶ã¼å®ç¾©ã¯ã©ã¹ã§ãã <literal>java."
+"lang.String</literal> åã®ããããã£ãã¾ãå¤ã®ã»ãã³ãã£ã¯ã¹ãæã¡ã¾ããå®ç¾©"
+"ãããªãã JDK ã§æä¾ããã¦ãããã¹ã¦ã® Java ã®å (ã¯ã©ã¹) ãå¤ã®ã»ãã³ãã£ã¯"
+"ã¹ãæã¤ã¨ããã¾ããä¸æ¹ã¦ã¼ã¶ã¼å®ç¾©åã¯ãã¨ã³ãã£ãã£ãå¤åã®ã»ãã³ãã£ã¯ã¹"
+"ã¨ã¨ãã«ãããã³ã°ã§ãã¾ãããã®æ±ºå®ã¯ã¢ããªã±ã¼ã·ã§ã³éçºè
次第ã§ãããã®ã¯"
+"ã©ã¹ã®ï¼ã¤ã®ã¤ã³ã¹ã¿ã³ã¹ã¸ã®å
񑆇
§ã¯ããã¡ã¤ã³ã¢ãã«å
ã®ã¨ã³ãã£ãã£ã¯ã©ã¹"
+"ã«å¯¾ããè¯ããã³ãã«ãªãã¾ããä¸æ¹åæéç´ãéç´ã¯ãé常å¤åã¸å¤æããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr "æ¬ããã¥ã¡ã³ããéãã¦ãä½åº¦ããã®æ¦å¿µãåãä¸ãã¾ãã"
+
+#. 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><"
+"class></literal>, <literal><subclass></literal> and so on are used. "
+"For value types we use <literal><property></literal>, <literal><"
+"component></literal>etc., that usually have a <literal>type</literal> "
+"attribute. The value of this attribute is the name of a Hibernate "
+"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
+"for standard JDK value types out of the box. You can write your own mapping "
+"types and implement your own custom conversion strategies."
+msgstr ""
+"Java åã®ã·ã¹ãã (ãããã¯éçºè
ãå®ç¾©ããã¨ã³ãã£ãã£ã¨å¤å) ã SQL /ãã¼ã¿"
+"ãã¼ã¹åã®ã·ã¹ãã ã«ãããã³ã°ãããã¨ã¯é£ããã§ãã Hibernate ã¯ï¼ã¤ã®ã·ã¹ã"
+"ã ã®æ¶ãæ©ãæä¾ãã¾ããã¨ã³ãã£ãã£ã«å¯¾ãã¦ã¯ <literal><class></"
+"literal> ã <literal><subclass></literal> ãªã©ã使ç¨ãã¾ããå¤åã«å¯¾ã"
+"ã¦ã¯ <literal><property></literal> ã <literal><component></"
+"literal> ãªã©ããé常 <literal>type</literal> ã¨å
±ã«ä½¿ãã¾ãããã®å±æ§ã®å¤ã¯ "
+"Hibernate ã® <emphasis>ãããã³ã°å</emphasis> ã®ååã§ãã Hibernate 㯠(æ¨"
+"æº JDK ã®å¤åã«å¯¾ãã¦) å¤ãã®èªç±ãªãããã³ã°ãæä¾ãã¾ããå¾ã§è¦ãããã«ãèª"
+"身ã®ãããã³ã°åãè¨è¿°ããåæ§ã«ã«ã¹ã¿ã ã®å¤ææ¦ç¥ãå®è£
ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"With the exception of collections, all built-in Hibernate types support null "
+"semantics."
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ãé¤ãçµã¿è¾¼ã¿ã® Hibernate ã®åã¯ãã¹ã¦ã null ã»ãã³ãã£ã¯ã¹ããµ"
+"ãã¼ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr "åºæ¬çãªå"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
+"categorized into the following:"
+msgstr ""
+"çµã¿è¾¼ã¿ã® <emphasis>åºæ¬çãªãããã³ã°å</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>"
+
+#. 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> ã®ä»£æ¿ã¨ã³ã³ã¼ãã§ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> ï¼ã¸ã®åãããã³ã°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "<literal>date, time, timestamp</literal>"
+
+#. 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> ï¼ã¾ãã¯ãããã¨ç価ãªãã®ï¼ ã¸ã®åãããã³ã°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "<literal>calendar, calendar_date</literal>"
+
+#. 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> (ã¾ãã¯ãããã¨ç価ãªãã®ï¼ã¸ã®åãããã³"
+"ã°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "<literal>big_decimal, big_integer</literal>"
+
+#. 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> ï¼ã¸ã®åãããã³ã°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "<literal>locale, timezone, currency</literal>"
+
+#. 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> ã«ãããã³ã°ããã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> ã¯ãã®å®å
¨ä¿®é£¾ãããååã«ãããã³ã°ããã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr "ãã¤ãé
åã¯ãé©å㪠SQL ã®ãã¤ããªåã«ãããã³ã°ããã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> åã«ãããã³ã°ããã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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> ã¨ãã"
+"ãã¨ãã§ãã¾ãã"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>calendar, calendar_date</literal>"
+
+#. 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 ãªãã¸ã§ã¯ãã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®"
+"å¤ã§ã¯åå©ç¨ã§ããªããããã¢ããªã±ã¼ã·ã§ã³ã«ãã£ã¦ã¯ä¸ä¾¿ããããã¾ãããï¼ã"
+"ãã«ã¯ãã©ã¤ããµãã¼ããä¸è²«ãã¦ãã¾ãããï¼"
+
+#. 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>"
+
+#. 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 ã®åã«å¯¾ããåãããã³ã°ã Hibernate ã¯ä¸å¤"
+"㪠Java ã®åã«å¯¾ãã¦ã¯æé©åãè¡ããã¢ããªã±ã¼ã·ã§ã³ã¯ãããä¸å¤ãªãã¸ã§ã¯ã"
+"ã¨ãã¦æ±ãã¾ããä¾ãã° <literal>imm_timestamp</literal> ã¨ãã¦ãããããã¤ã³"
+"ã¹ã¿ã³ã¹ã«å¯¾ãã¦ã <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> ãé¤ããã©ããª"
+"åºæ¬åã§ãæ§ãã¾ãããï¼è¤åèå¥åã§ãæ§ãã¾ããã以ä¸ãè¦ã¦ãã ãããï¼"
+
+#. 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> åã表ç¾ãã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr "ã«ã¹ã¿ã å"
+
+#. 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 ã¯ãã®ããã®çµã¿è¾¼ã¿åãç¨æãã¦ãã¾"
+"ããããããã«ã¹ã¿ã åã¯ãããããã£ï¼ã¾ãã¯ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ï¼ã1ã¤ã®ãã¼ã"
+"ã«ã«ã©ã ã«ãããã³ã°ããã®ã«å¶éã¯ããã¾ããããã®ããä¾ãã°ã <literal>java."
+"lang.String</literal> åã® <literal>getName()</literal> / <literal>setName()"
+"</literal> Java ããããã£ã <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> ãå®è£
ããåã®å®å
¨ä¿®é£¾ãã"
+"ãååã使ã£ã¦ããããã£ãå®ç¾©ãã¾ããã©ã®ãããªç¨®é¡ã®ãã®ãå¯è½ãã調ã¹ãã«"
+"ã¯ã <literal>org.hibernate.test.DoubleStringType</literal> ã確èªãã¦ãã ã"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Notice the use of <literal><column></literal> tags to map a property "
+"to multiple columns."
+msgstr ""
+"<literal><column></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> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ãããç¹æ®ãªä½¿ç¨æ³ã«å¯¾ã"
+"ã¦ã®ãµãã¼ããæä¾ãã¾ãã"
+
+#. 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><"
+"type></literal> element in your mapping files."
+msgstr ""
+"ãããã³ã°ãã¡ã¤ã«å
㧠<literal>UserType</literal> ã¸ãã©ã¡ã¼ã¿ãæä¾ã§ãã¾"
+"ãããã®ããã«ã¯ã <literal>UserType</literal> 㯠<literal>org.hibernate."
+"usertype.ParameterizedType</literal> ãå®è£
ããªãã¦ã¯ãªãã¾ãããã«ã¹ã¿ã åã"
+"ã©ã¡ã¼ã¿ãæä¾ããããã«ããããã³ã°ãã¡ã¤ã«å
㧠<literal><type></"
+"literal> è¦ç´ ã使ç¨ã§ãã¾ãã"
+
+#. Tag: para
+#, 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> ã§æå®ãããã©ã¡ã¼ã¿ã«"
+"対ããå¤ãæ¤ç´¢ãããã¨ãã§ãã¾ãã"
+
+#. 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><"
+"typedef></literal> element. Typedefs assign a name to a custom type, and "
+"can also contain a list of default parameter values if the type is "
+"parameterized."
+msgstr ""
+"ç¹å®ã® <literal>UserType</literal> ãé »ç¹ã«ä½¿ç¨ãããªãã°ãçãååãå®ç¾©ãã"
+"ã¨ä¾¿å©ã«ãªãã§ãããã <literal><typedef></literal> è¦ç´ ã使ã£ã¦ãã®ã"
+"ããªãã¨ãè¡ãã¾ãã Typedefs ã¯ã«ã¹ã¿ã åã«ååãå²ãå½ã¦ã¾ãããã®åããã©"
+"ã¡ã¼ã¿ãæã¤ãªãã°ããã©ã¡ã¼ã¿ã®ããã©ã«ãå¤ã®ãªã¹ããå«ããã¨ãã§ãã¾ãã"
+
+#. Tag: 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 ã§æä¾ããããã©"
+"ã¡ã¼ã¿ããã®é½åº¦ãªã¼ãã¼ã©ã¤ããããã¨ãå¯è½ã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though Hibernate's rich range of built-in types and support for "
+"components means you will rarely need to use a custom type, it is considered "
+"good practice to use custom types for non-entity classes that occur "
+"frequently in your application. For example, a <literal>MonetaryAmount</"
+"literal> class is a good candidate for a <literal>CompositeUserType</"
+"literal>, even though it could be mapped as a component. One reason for this "
+"is abstraction. With a custom type, your mapping documents would be "
+"protected against changes to the way monetary values are represented."
+msgstr ""
+"Hibernate ã®å¹
åºãçµã¿è¾¼ã¿åã¨ã³ã³ãã¼ãã³ãã«å¯¾ãããµãã¼ãã¯ãã«ã¹ã¿ã åã"
+"ãã£ãã« <emphasis>使ããªã</emphasis> ã¨ãããã¨ãæå³ãã¾ããããã§ããªãã"
+"ã¢ããªã±ã¼ã·ã§ã³ã§é »åºãã (ã¨ã³ãã£ãã£ã§ã¯ãªã) ã¯ã©ã¹ã«å¯¾ããã«ã¹ã¿ã åã®"
+"使ç¨ã¯ãããããæ¹ã§ããã¨ã¿ãªããã¾ããä¾ãã° <literal>MonetaryAmount</"
+"literal> ã¯ã©ã¹ã¯ã³ã³ãã¼ãã³ãã¨ãã¦ç°¡åã«ãããã³ã°ã§ãã¾ããã "
+"<literal>CompositeUserType</literal> ã®è¯ãåè£ã§ããã«ã¹ã¿ã åã使ç¨ããåæ©"
+"ã®1ã¤ã¯æ½è±¡åã§ããã«ã¹ã¿ã åã使ããã¨ã§ãé貨ãã©ã®ããã«è¡¨ç¾ãããã¨ããã"
+"ãã³ã°ããã¥ã¡ã³ãã¯èµ·ããããå¤åã«å¯¾å¿ã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr "ï¼ã¤ã®ã¯ã©ã¹ã«ï¼ã¤ä»¥ä¸ã®ãããã³ã°"
+
+#. 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>"
+"ã¨ã³ãã£ãã£å</emphasis> ãæå®ããªããã°ãªãã¾ãã (ããã©ã«ãã§ã¯ã¨ã³ãã£"
+"ãã£åã¯ã¯ã©ã¹åã¨åãã§ãã)ã Hibernate ã§ã¯ãæ°¸ç¶ãªãã¸ã§ã¯ããæ±ãã¨ãã"
+"ã¯ã¨ãªãæ¸ãè¾¼ãã¨ããæå®ãããã¨ã³ãã£ãã£ã¸ã®é¢é£ããããã³ã°ããã¨ãã«ã"
+"ã¨ã³ãã£ãã£åãæå®ããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations are now specified using <literal>entity-name</literal> instead "
+"of <literal>class</literal>."
+msgstr ""
+"é¢é£ã <literal>class</literal> ã®ä»£ããã« <literal>entity-name</literal> ã"
+"使ã£ã¦ãã©ã®ããã«æå®ãããã®ãã«æ³¨ç®ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr "ããã¯ã¯ã©ã¼ãã§å²ãã SQL èå¥å"
+
+#. 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 ã§ã¯ããã¯"
+"ã¯ã©ã¼ãã§ãï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr "ã¡ã¿ãã¼ã¿ã®ä»£æ¿æ段"
+
+#. 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 ãããã³ã°ã®ã¡ã¿ãã¼ã¿ãå®ç¾©ãã代æ¿æ¹"
+"æ³ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr "XDoclet ãã¼ã¯ã¢ããã®ä½¿ç¨"
+
+#. 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> ãããã³ã°ã®ä¾ã示ã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr ""
+"Hibernate ã®ã¦ã§ããµã¤ãã«ã¯ã XDoclet 㨠Hibernate ã«é¢ãããµã³ãã«ãå¤æ°ã"
+"ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr "JDK 5.0 ã¢ããã¼ã·ã§ã³ã®ä½¿ç¨"
+
+#. 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 ""
+"JDK5.0 ã§ã¯ã¿ã¤ãã»ã¼ããã¤ã³ã³ãã¤ã«æã«ãã§ãã¯ã§ãããè¨èªã¬ãã«ã® "
+"XDoclet ã¹ã¿ã¤ã«ã®ã¢ããã¼ã·ã§ã³ãå°å
¥ãã¾ããããã®ã¡ã«ããºã 㯠XDoclet ã®ã¢"
+"ããã¼ã·ã§ã³ãããå¼·åã§ããã¼ã«ã IDE ãå¤ãããµãã¼ããã¦ãã¾ããä¾ãã° "
+"IntelliJ IDEA ã¯ã JDK5.0 ã«ã¢ããã¼ã·ã§ã³ã®èªåè£å®ã¨æ§æã®å¼·èª¿è¡¨ç¤ºããµãã¼"
+"ããã¦ãã¾ãã EJB ä»æ§ (JSR-220) ã®æ°ãããã¼ã¸ã§ã³ã§ã¯ãã¨ã³ãã£ã㣠Bean "
+"ã«å¯¾ãã主è¦ãªã¡ã¿ãã¼ã¿ã¡ã«ããºã ã¨ã㦠JDK5.0 ã®ã¢ããã¼ã·ã§ã³ã使ç¨ãã¦ã"
+"ã¾ãã Hibernate3 ã§ã¯ JSR-220 (æ°¸ç¶å API) ã® <literal>EntityManager</"
+"literal> ãå®è£
ããã¡ã¿ãã¼ã¿ãããã³ã°ã«å¯¾ãããµãã¼ãã¯ãå¥ãã¦ã³ãã¼ãã® "
+"<emphasis>Hibernate Annotations</emphasis> ããã±ã¼ã¸ã«ããå©ç¨å¯è½ã§ãããã"
+"㯠EJB3 (JSR-220) 㨠Hibernate3 ã®ã¡ã¿ãã¼ã¿ãã©ã¡ãããµãã¼ããã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr "以ä¸ã¯ EJB ã®ã¨ã³ãã£ã㣠Bean ã¨ãã¦æ³¨éããã POJO ã¯ã©ã¹ã®ä¾ã§ã:"
+
+#. 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 ""
+"JDK5.0 ã®ã¢ããã¼ã·ã§ã³ (㨠JSR-220) ã®ãµãã¼ãã¯é²è¡ä¸ã®ä½æ¥ã§ãããå®å
¨ã§ã¯"
+"ãªããã¨ã«æ³¨æãã¦ãã ãããããã«è©³ããæ
å ±ã¯ Hibernate ã®ã¢ããã¼ã·ã§ã³ã¢"
+"ã¸ã¥ã¼ã«ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Generated properties"
+msgstr "çæããããã£"
+
+#. 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 ""
+"çæããããã£ã¨ã¯ããã¼ã¿ãã¼ã¹ã«ãã£ã¦çæãããå¤ãæã¤ããããã£ã§ããé"
+"常ã Hibernate ã¢ããªã±ã¼ã·ã§ã³ã¯ããã¼ã¿ãã¼ã¹ãå¤ãçæããããããã£ãå«ã"
+"ãªãã¸ã§ã¯ãã <literal>ãªãã¬ãã·ã¥</literal> ããå¿
è¦ãããã¾ããããããã"
+"ããããã£ãçæãããã¨ãããã¨ããã¼ã¯ãããã¨ã§ãã¢ããªã±ã¼ã·ã§ã³ã¯ãªã"
+"ã¬ãã·ã¥ã®è²¬ä»»ã Hibernate ã«å§è²ãã¾ããåºæ¬çã«ãçæããããã£ãæã¤ã¨å®ç¾©"
+"ããã¨ã³ãã£ãã£ã«å¯¾ã㦠Hibernate ã INSERT ã UPDATE ã® SQL ãçºè¡ããå¾ã"
+"ãã«ãçæãããå¤ãèªã¿è¾¼ãããã® SELECT SQL ãçºè¡ããã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Properties marked as generated must additionally be non-insertable and non-"
+"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"and <link linkend=\"mapping-declaration-property\">simple properties</link>, "
+"can be marked as generated."
+msgstr ""
+"çæããããã£ã¯ãæ¿å
¥ä¸å¯è½ãã¤æ´æ°ä¸å¯è½ã§ãªããã°ãªãã¾ããã <xref "
+"linkend=\"mapping-declaration-version\"/> ãã¼ã¸ã§ã³ã <xref linkend="
+"\"mapping-declaration-timestamp\"/> ã¿ã¤ã ã¹ã¿ã³ãã <xref linkend=\"mapping-"
+"declaration-property\"/> ç°¡åãªããããã£ã ããçæãããã¨ãã¼ã¯ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>never</literal> (the default): the given property value is not "
+"generated within the database."
+msgstr ""
+"<literal>never</literal> (ããã©ã«ã) - ä¸ããããããããã£ã®å¤ã¯ããã¼ã¿"
+"ãã¼ã¹ããçæãããªããã¨ãæå³ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal>: the given property value is generated on insert, "
+"but is not regenerated on subsequent updates. Properties like created-date "
+"fall into this category. Even though <link linkend=\"mapping-declaration-"
+"version\">version</link> and <link linkend=\"mapping-declaration-timestamp"
+"\">timestamp</link> properties can be marked as generated, this option is "
+"not available."
+msgstr ""
+"<literal>insert</literal> - ä¸ããããããããã£ã®å¤ã¯æ¿å
¥æã«çæããããã"
+"ç¶ãã¦èµ·ããæ´æ°æã«ã¯çæãããªããã¨ç¤ºãã¾ããä½æãããæ¥ä»ãªã©ã¯ããã®ã«"
+"ãã´ãªã«åé¡ããã¾ãã <xref linkend=\"mapping-declaration-version\"/> ãã¼"
+"ã¸ã§ã³ã <xref linkend=\"mapping-declaration-timestamp\"/> ã¿ã¤ã ã¹ã¿ã³ãã®ã"
+"ãããã£ã¯çæãããã¨ãã¼ã¯ã§ãã¾ããããã®ãªãã·ã§ã³ã¯å©ç¨ã§ããªããã¨ã«æ³¨"
+"æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>always</literal>: the property value is generated both on insert "
+"and on update."
+msgstr ""
+"<literal>always</literal> - æ¿å
¥æãæ´æ°æãããããã£ã®å¤ãçæããããã¨ã"
+"示ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows you to customize the SQL it uses to read and write the "
+"values of columns mapped to <link linkend=\"mapping-declaration-property"
+"\">simple properties</link>. For example, if your database provides a set of "
+"data encryption functions, you can invoke them for individual columns like "
+"this: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate applies the custom expressions automatically whenever the property "
+"is referenced in a query. This functionality is similar to a derived-"
+"property <literal>formula</literal> with two differences:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The property is backed by one or more columns that are exported as part of "
+"automatic schema generation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>write</literal> expression, if specified, must contain exactly "
+"one '?' placeholder for the value."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Auxiliary database objects"
+msgstr "è£å©çãªãã¼ã¿ãã¼ã¹ãªãã¸ã§ã¯ã"
+
+#. 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 ""
+"Hibernate ã®ã¹ãã¼ãã¨ããªã¥ã¼ã·ã§ã³ãã¼ã«ã¨é£åãããã¨ã§ãä»»æã®ãã¼ã¿ãã¼"
+"ã¹ãªãã¸ã§ã¯ãï¼ããªã¬ã¼ãã¹ãã¢ãããã·ã¼ã¸ã£ãªã©ï¼ã® CREATE 㨠DROP ã«ã"
+"ãã Hibernate ã®ãããã³ã°ãã¡ã¤ã«å
ã®ã¦ã¼ã¶ã¼ã¹ãã¼ãããã¹ã¦å®ç¾©ãããã¨ã"
+"åºæ¥ã¾ãã主ã«ããªã¬ãã¹ãã¢ãããã·ã¼ã¸ã£ã®ãããªãã¼ã¿ãã¼ã¹ãªãã¸ã§ã¯ãã"
+"çæãåé¤ãããã¨ãæå³ãã¦ãã¾ãããå®éã«ã¯ <literal>java.sql.Statement."
+"execute()</literal> ã¡ã½ããã«ãã£ã¦å®è¡ã§ããä»»æã® SQL ã³ãã³ãï¼ALTERã"
+"INSERTãªã©ï¼ãå®è¡ã§ãã¾ããè£å©çãªãã¼ã¿ãã¼ã¹ãªãã¸ã§ã¯ããå®ç¾©ãããã"
+"ã®ã2ã¤ã®åºæ¬çãªæ¹æ³ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands in the "
+"mapping file:"
+msgstr ""
+"1ã¤ç®ã®æ¹æ³ã¯ã 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 ""
+"2ã¤ç®ã®æ¹æ³ã¯ã 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."
+msgstr ""
+"ããã«ããããã¼ã¿ãã¼ã¹æ¹è¨ã使ç¨ãããæã«ã ãé©ç¨ããã¨ãã£ãããã«ããã¼"
+"ã¿ãã¼ã¹ãªãã¸ã§ã¯ãã使ãããã±ã¼ã¹ãéå®ã§ãã¾ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ " />"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+#~ " <param name=\"table\">uid_table</param>\n"
+#~ " <param name=\"column\">next_hi_value_column</"
+#~ "param>\n"
+#~ " </generator>\n"
+#~ "</id>"
+
+#~ msgid "increment"
+#~ msgstr "increment"
+
+#~ msgid "identity"
+#~ msgstr "identity"
+
+#~ msgid "sequence"
+#~ msgstr "sequence"
+
+#~ msgid "hilo"
+#~ msgstr "hilo"
+
+#~ msgid "seqhilo"
+#~ msgstr "seqhilo"
+
+#~ msgid "guid"
+#~ msgstr "guid"
+
+#~ msgid "native"
+#~ msgstr "native"
+
+#~ msgid "assigned"
+#~ msgstr "assigned"
+
+#~ msgid "select"
+#~ msgstr "select"
+
+#~ msgid "foreign"
+#~ msgstr "foreign"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">person_id_sequence</"
+#~ "param>\n"
+#~ " </generator>\n"
+#~ "</id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
+#~ "\"0\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value=\"0"
+#~ "\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"select\">\n"
+#~ " <param name=\"key\">socialSecurityNumber</"
+#~ "param>\n"
+#~ " </generator>\n"
+#~ "</id>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<discriminator\n"
+#~ " column=\"discriminator_column\"\n"
+#~ " type=\"discriminator_type\"\n"
+#~ " force=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary sql expression\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>]]>"
+#~ msgstr ""
+#~ "<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<property\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " type=\"typename\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " generated=\"never|insert|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<property name=\"totalPrice\"\n"
+#~ " formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, "
+#~ "Product p\n"
+#~ " WHERE li.productId = p.productId\n"
+#~ " AND li.customerId = customerId\n"
+#~ " AND li.orderNumber = orderNumber )\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<many-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column="
+#~ "\"PRODUCT_ID\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
+#~ "column=\"SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"serialNumber\" unique=\"true\" type=\"string\" column="
+#~ "\"SERIAL_NUMBER\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" "
+#~ "column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" property-ref=\"serialNumber\" column="
+#~ "\"PRODUCT_SERIAL_NUMBER\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" class=\"Person\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained="
+#~ "\"true\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID"
+#~ "\" unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref="
+#~ "\"person\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name\"employee\" class=\"Employee\" property-ref=\"person"
+#~ "\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>]]>"
+#~ msgstr ""
+#~ "<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<component\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>]]>"
+#~ msgstr ""
+#~ "<component \n"
+#~ " name=\"propertyName\" \n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<properties\n"
+#~ " name=\"logicalName\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>]]>"
+#~ msgstr ""
+#~ "<properties \n"
+#~ " name=\"logicalName\" \n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ "\n"
+#~ " ...\n"
+#~ " <properties name=\"name\"\n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ " ...\n"
+#~ " <properties name=\"name\" \n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\"\n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" \n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>]]>"
+#~ msgstr ""
+#~ "<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>]]>"
+#~ msgstr ""
+#~ "<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>]]>"
+#~ msgstr ""
+#~ "<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ "\n"
+#~ " <key ... />\n"
+#~ "\n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ " \n"
+#~ " <key ... />\n"
+#~ " \n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ...]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ..."
+
+#, fuzzy
+#~ msgid "<title>Key</title>"
+#~ msgstr "<title>key</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>]]>"
+#~ msgstr ""
+#~ "<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<formula>SQL expression</formula>]]>"
+#~ msgstr "<formula>SQL expression</formula>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
+#~ msgstr "<import class=\"java.lang.Object\" rename=\"Universe\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<title>Any</title>"
+#~ msgstr "<title>any</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>"
+
+#~ msgid "string"
+#~ msgstr "string"
+
+#, fuzzy
+#~ msgid "class"
+#~ msgstr "subclass"
+
+#~ msgid "binary"
+#~ msgstr "binary"
+
+#~ msgid "text"
+#~ msgstr "text"
+
+#~ msgid "serializable"
+#~ msgstr "serializable"
+
+#~ msgid "clob, blob"
+#~ msgstr "clob, blob"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\" name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>]]>"
+#~ msgstr ""
+#~ "<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" "
+#~ "name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
+#~ msgstr "<property name=\"priority\" type=\"default_zero\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\"\n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\"\n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\"\n"
+#~ " column=\"currentContractId\"\n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Contract\" table=\"Contracts\" \n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\" \n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\" \n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\" \n"
+#~ " column=\"currentContractId\" \n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/"
+#~ "></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class="
+#~ "\"assigned\"/></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9iDialect\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle10gDialect\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9Dialect\"/"
+#~ ">\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.OracleDialect\"/"
+#~ ">\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/batch.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/batch.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/batch.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,686 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-13 15:16+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr "ãããå¦ç"
+
+#. 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è¡ãæ¿å
¥ããæç´ãªæ¹æ³ã¯ããã®ãããªã"
+"ã®ã§ãï¼"
+
+#. 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> ã¤ã³ã¹ã¿ã³ã¹ããã£ãã·ã¥ããããã§ãã"
+
+#. 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 ãããã使ç¨å¯è½ã§ãããã¨ãé常ã«éè¦ã§ããããã§ãªããã°æé ãªããã©ã¼"
+"ãã³ã¹ãå¾ããã¾ããã JDBC ããããµã¤ãºãæé ãªæ°å¤ï¼ä¾ãã°ã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 ã¬ãã«ã§"
+"ã¤ã³ãµã¼ããããã³ã°ãç¡å¹ã«ãããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. 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:"
+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> ãè¨å®ãã¦ãäºæ¬¡ãã£ãã·ã¥ã¨ã®ç¸äºä½ç¨ãç¡å¹ã«ã"
+"ããã¨ãã§ããããã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr "ãããæ¿å
¥"
+
+#. 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> ããª"
+"ããã°ãªãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr "ãããæ´æ°"
+
+#. 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> ã使ãå¿
è¦ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr "StatelessSession ã¤ã³ã¿ã¼ãã§ã¼ã¹"
+
+#. 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 ãç¨æãã¦ãã¾ããããã¯"
+"åé¢ãªãã¸ã§ã¯ãã®å½¢ã§ããã¼ã¿ãã¼ã¹ã¨ã®ãã¼ã¿ã¹ããªã¼ã ã®ããåãã«ä½¿ããã¨"
+"ãã§ãã¾ãã <literal>StatelessSession</literal> ã¯é¢é£ããæ°¸ç¶ã³ã³ããã¹ãã"
+"æãããé«ã¬ãã«ã®ã©ã¤ããµã¤ã¯ã«ã»ãã³ãã£ã¯ã¹ã®å¤ããæä¾ãã¾ãããç¹ã«ã¹"
+"ãã¼ãã¬ã¹ã»ãã·ã§ã³ã¯ãä¸æ¬¡ãã£ãã·ã¥ãå®è£
ãããã¾ãã©ã®ãããªäºæ¬¡ãã£ã"
+"ã·ã¥ãã¯ã¨ãªãã£ãã·ã¥ã¨ãç¸äºä½ç¨ãã¾ããããã©ã³ã¶ã¯ã·ã§ãã«ãª write-"
+"behind ãèªåãã¼ãã£ãã§ãã¯ãå®è£
ãã¾ãããã¹ãã¼ãã¬ã¹ã»ãã·ã§ã³ã使ã£ã¦è¡"
+"ãããæä½ããé¢é£ããã¤ã³ã¹ã¿ã³ã¹ã¸ã«ã¹ã±ã¼ãããããã¨ã¯æ±ºãã¦ããã¾ããã"
+"ã³ã¬ã¯ã·ã§ã³ã¯ãã¹ãã¼ãã¬ã¹ã»ãã·ã§ã³ããã¯ç¡è¦ããã¾ããã¹ãã¼ãã¬ã¹ã»ã"
+"ã·ã§ã³ãéãã¦è¡ãããæä½ã¯ã Hibernate ã®ã¤ãã³ãã¢ãã«ãã¤ã³ã¿ã¼ã»ãã¿ã®å½±"
+"é¿ãåãã¾ãããä¸æ¬¡ãã£ãã·ã¥ãæããªããããã¹ãã¼ãã¬ã¹ã»ãã·ã§ã³ã¯å¥åã"
+"æã¤ãã¼ã¿ã«ä¸æã対å¦ã§ãã¾ãããã¹ãã¼ãã¬ã¹ã»ãã·ã§ã³ã¯ä½ã¬ãã«ã®æ½è±¡åã§"
+"ããã 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> ã¤ã³ã¹ã¿ã³ã¹ã¯å³åº§"
+"ã« ï¼ã»ãã·ã§ã³ããï¼ åé¢ããããã¨ã«æ³¨æãã¦ãã ãããããã¯ãã©ã®ãããªæ°¸"
+"ç¶ã³ã³ããã¹ãã¨ã決ãã¦é¢é£ãã¾ããã"
+
+#. 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> ã®æä½"
+"ã¯ãä½ã¬ãã«ã®ç´æ¥çãªãã¼ã¿ãã¼ã¹æä½ã¨èãããã¾ããçµæã¨ãã¦ã SQL ã® "
+"<literal>INSERT, UPDATE</literal> ã¾ã㯠<literal>DELETE</literal> ããããã"
+"å³åº§ã«å®è¡ããã¾ãããã®ããã«ãããã㯠<literal>Session</literal> ã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹ã§å®ç¾©ããã¦ãã <literal>save(), saveOrUpdate()</literal> 㨠"
+"<literal>delete()</literal> ã¨ã¯é常ã«ç°ãªãæå³ãæã¡ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+msgstr "DML ã¹ã¿ã¤ã«ã®æä½"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As already discussed, automatic and transparent object/relational mapping is "
+"concerned with the management of the object state. The object state is "
+"available in memory. This means that manipulating data directly in the "
+"database (using the SQL <literal>Data Manipulation Language</literal> (DML) "
+"the statements: <literal>INSERT</literal>, <literal>UPDATE</literal>, "
+"<literal>DELETE</literal>) will not affect in-memory state. However, "
+"Hibernate provides methods for bulk SQL-style DML statement execution that "
+"is performed through the Hibernate Query Language (<link linkend=\"queryhql"
+"\">HQL</link>)."
+msgstr ""
+"ãã§ã«è°è«ããããã«ãèªåçãã¤ééçãªãªãã¸ã§ã¯ã/ãªã¬ã¼ã·ã§ãã«ãããã³ã°"
+"ã¯ããªãã¸ã§ã¯ãã®ç¶æ
ã®ç®¡çã§ããã¨èãããã¾ããããã¯ã¡ã¢ãªå
ã®ãªãã¸ã§ã¯"
+"ãã®ç¶æ
ãå©ç¨ã§ããã¨ãããã¨ã§ãããã®ãã ï¼SQLã® <literal>ãã¼ã¿æä½è¨èª"
+"</literal> (DML) æï¼ <literal>INSERT</literal>ã <literal>UPDATE</"
+"literal>ã <literal>DELETE</literal> ã使ã£ã¦ï¼ãã¼ã¿ãã¼ã¹å
ã®ãã¼ã¿ãç´æ¥æ"
+"ä½ãã¦ããã¡ã¢ãªå
ã®ç¶æ
ã«ã¯å½±é¿ãä¸ãã¾ãããããã Hibernate ã¯ããã«ã¯ "
+"SQL ã¹ã¿ã¤ã«ã® DML æå®è¡ã«å¯¾å¿ããã¡ã½ãããç¨æãã¦ãã¾ãããã㯠"
+"Hibernate ã¯ã¨ãªè¨èª (<xref linkend=\"queryhql\"/> HQL) ãéãã¦å®è¡ããã¾"
+"ãã"
+
+#. 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? ã¨ã³ãã£ãã£å (WHERE æ¡ä»¶ç¯)?</literal> "
+"ã§ãã注æãã¹ãç¹ãããã¤ãããã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr "from ç¯ã«ããã¦ã FROM ãã¼ã¯ã¼ãã¯ãªãã·ã§ã³ã§ãã"
+
+#. 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 ç¯ã§ã¯åä¸ã®ã¨ã³ãã£ãã£åã ããå¯è½ã§ãä»»æã§å¥åãä»ãããã¨ãã§ãã¾"
+"ããã¨ã³ãã£ãã£åã«å¥åãä¸ããããã¨ãã©ã®ãããªããããã£åç
§ãããã®å¥å"
+"ã使ã£ã¦ä¿®é£¾ããªããã°ãªãã¾ãããããã¨ã³ãã£ãã£åã«å¥åãä¸ããããªãã"
+"ã°ãã©ã®ãããªããããã£åç
§ã修飾ãã¦ã¯ãªãã¾ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
+"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
+"the where-clause, where the subqueries themselves may contain joins."
+msgstr ""
+"ï¼æé»çã§ããæ示çã§ããï¼ <xref linkend=\"queryhql-joins-forms\"/> çµåã"
+"ãã«ã¯ HQL ã¯ã¨ãªå
ã§æå®ãããã¨ã¯ã§ãã¾ããããµãã¯ã¨ãªã¯ where ç¯ã§ä½¿ãã"
+"ã¨ãã§ãã¾ãããµãã¯ã¨ãªãã®ãã®ã¯ãçµåãå«ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr "where ç¯ã¯ãªãã·ã§ã³ã§ãã"
+
+#. 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 ""
+"ä¾ã¨ãã¦ã HQL ã® <literal>UPDATE</literal> ãå®è¡ããã«ã¯ã <literal>Query."
+"executeUpdate()</literal> ã¡ã½ããã使ã£ã¦ãã ãããï¼ãã®ã¡ã½ããã¯ããªãã¿"
+"ã® JDBC <literal>PreparedStatement.executeUpdate()</literal> ããåä»ãããã¾"
+"ããï¼ï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> "
+"statements, by default, do not effect the <link linkend=\"mapping-"
+"declaration-version\">version</link> or the <link linkend=\"mapping-"
+"declaration-timestamp\">timestamp</link> property values for the affected "
+"entities. However, you can force Hibernate to reset the <literal>version</"
+"literal> or <literal>timestamp</literal> property values through the use of "
+"a <literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
+msgstr ""
+"HQL ã® <literal>UPDATE</literal> æã¯ãããã©ã«ãã§ã¯ãä½ç¨ããã¨ã³ãã£ãã£"
+"ã® <xref linkend=\"mapping-declaration-version\"/> ãã¼ã¸ã§ã³ã <xref "
+"linkend=\"mapping-declaration-timestamp\"/> ã¿ã¤ã ã¹ã¿ã³ãã®ããããã£ã®å¤ã«"
+"ã¯å½±é¿ãã¾ããããã㯠EJB3 ã®ä»æ§ã«ãåãç¶ããã¦ãã¾ããããã "
+"<literal>versioned update</literal> ã使ã£ã¦ã <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> æã¨ä¸ç·ã«ä½¿ããªããã¨ã«æ³¨æ"
+"ãã¦ãã ããã"
+
+#. 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> ã¡ã½ããã使ã£ã¦ãã ããï¼"
+
+#. 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>int</"
+"literal> ã®å¤ã¯ããã®æä½ãå½±é¿ãåã¼ããã¨ã³ãã£ãã£ã®æ°ã§ãããããå½±é¿ãã"
+"ãã¼ã¿ãã¼ã¹å
ã®è¡æ°ã¨ãç¸äºã«é¢ä¿ãããã©ãããèãã¦ã¿ã¦ãã ããã 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 ã¨ã³ãã£ãã£"
+"åããããã£ãªã¹ã select æ</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 ... ã®å½¢å¼ã¯ãµãã¼ãããã¦ãã¾ããã"
+
+#. 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 ""
+"ããããã£ãªã¹ãã¯ã SQL ã® <literal>INSERT</literal> æã«ããã <literal>ã«"
+"ã©ã ã®ä»æ§</literal> ã«é¡ä¼¼ãã¦ãã¾ããç¶æ¿ã®ãããã³ã°ã«å«ã¾ããã¨ã³ãã£ãã£"
+"ã«å¯¾ãã¦ãã¯ã©ã¹ã¬ãã«ã§ç´æ¥å®ç¾©ãããããããã£ã ãããããããã£ãªã¹ãã«ä½¿"
+"ãã¾ããã¹ã¼ãã¼ã¯ã©ã¹ã®ããããã£ã¯èªããããããµãã¯ã©ã¹ã®ããããã£ã¯å¹æ"
+"ãããã¾ãããè¨ãæãã㨠<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 æã®è¿ãå¤ã®åã insert æãæå¾
ããåã¨ããããã¦ããã°ããã® select "
+"æã¯å¦¥å½ãª HQL select ã¯ã¨ãªã¨ãªããã¾ããç¾å¨ãã®ãã§ãã¯ããã¼ã¿ãã¼ã¹ã¸ä»»"
+"ããã®ã§ã¯ãªããã¯ã¨ãªã®ã³ã³ãã¤ã«æã«ãã§ãã¯ãã¾ãããã®ãã¨ã¯ã "
+"<emphasis>equal</emphasis> ã¨ã¯éãã Hibernate ã® <literal>Type</literal> é"
+"ã® <emphasis>equivalent</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 æã«ã¯äºã¤ã®é¸æè¢ãããã¾ããããããã£ãªã¹ã"
+"ã§æ示çã« id ããããã£ãæå®ããã ï¼ãã®å ´åã対å¿ãã select å¼ããå¤ãå"
+"ããã¾ãï¼ãããããã£ãªã¹ããããããé¤å¤ãããã®ããããã§ã (ãã®å ´åãç"
+"æãããå¤ã使ããã¾ã)ã å¾è
ã®é¸æè¢ã¯ããã¼ã¿ãã¼ã¹å
ãæä½ãã 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 æã«ã¯äºã¤ã®é¸æè¢ãããã¾ããããããã£ãªã¹"
+"ãã§æ示çã«ããããã£ãæå®ãããï¼ãã®å ´åã対å¿ãã select å¼ããå¤ãåã"
+"ãã¾ãï¼ãããããã£ãªã¹ãããé¤å¤ãããï¼ãã®å ´åã <literal>org.hibernate."
+"type.VersionType</literal> ã§å®ç¾©ããã <literal>ã·ã¼ãå¤</literal> ã使ãã"
+"ã¾ãï¼ã®ããããã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of an HQL <literal>INSERT</literal> statement "
+"execution:"
+msgstr "HQL ã® <literal>INSERT</literal> æã®å®è¡ä¾ã§ãï¼"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+#~ msgstr "hibernate.jdbc.batch_size 20"
+
+#, fuzzy
+#~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#~ msgstr "hibernate.cache.use_second_level_cache false"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 \n"
+#~ " c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/best_practices.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/best_practices.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/best_practices.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,412 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-20 16:59+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr "ãã¹ããã©ã¯ãã£ã¹"
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"Write fine-grained classes and map them using <literal><component></"
+"literal>:"
+msgstr ""
+"ã¯ã©ã¹ã¯ç´°ããç²åº¦ã§æ¸ã <literal><component></literal> ã§ãããã³ã°ã"
+"ã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use an <literal>Address</literal> class to encapsulate <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal>. This encourages code reuse and simplifies "
+"refactoring."
+msgstr ""
+"<literal>street</literal> ï¼éãï¼ã <literal>suburb</literal> ï¼é½å¸ï¼ã "
+"<literal>state</literal> ï¼å·ï¼ã <literal>postcode</literal> ï¼éµä¾¿çªå·ï¼ã"
+"ã«ãã»ã«åãã <literal>Address</literal> ï¼ä½æï¼ã¯ã©ã¹ã使ãã¾ãããããã"
+"ããã°ã³ã¼ããåå©ç¨ãããããªãããªãã¡ã¯ã¿ãªã³ã°ãç°¡åã«ãªãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr "æ°¸ç¶ã¯ã©ã¹ã«ã¯èå¥åããããã£ãå®ç¾©ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate makes identifier properties optional. There are a range of reasons "
+"why you should use them. We recommend that identifiers be 'synthetic', that "
+"is, generated with no business meaning."
+msgstr ""
+"Hibernate ã§ã¯èå¥åããããã£ã¯ãªãã·ã§ã³ã§ããã使ç¨ãã¹ãçç±ãããããã"
+"ãã¾ããèå¥åã¯ã人工çãï¼çæããããæ¥åçãªæå³ãæããªãï¼ãªãã®ã«ãã"
+"ãã¨ããããããã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Identify natural keys:"
+msgstr "èªç¶ãã¼ãè¦ã¤ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Identify natural keys for all entities, and map them using <literal><"
+"natural-id></literal>. Implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the properties that make up the "
+"natural key."
+msgstr ""
+"ãã¹ã¦ã®ã¨ã³ãã£ãã£ã«å¯¾ãã¦èªç¶ãã¼ãè¦ã¤ãã¦ã <literal><natural-id>"
+"</literal> ã§ãããã³ã°ãã¾ããããèªç¶ãã¼ãæ§æããããããã£ãæ¯è¼ãããã"
+"ã«ã <literal>equals()</literal> 㨠<literal>hashCode()</literal> ãå®è£
ãã¾"
+"ãããã"
+
+#. Tag: term
+#, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr "ã¯ã©ã¹ã®ãããã³ã°ã¯ããããã®ã¯ã©ã¹å°ç¨ã®ãã¡ã¤ã«ã«æ¸ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
+"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
+"sense, particularly in a team environment."
+msgstr ""
+"åä¸ã®å·¨å¤§ãªãããã³ã°ããã¥ã¡ã³ãã使ç¨ããªãã§ãã ããã <literal>com.eg."
+"Foo</literal> ã¯ã©ã¹ãªã <literal>com/eg/Foo.hbm.xml</literal> ãã¡ã¤ã«ã«ãã"
+"ãã³ã°ãã¾ãããããã®ãã¨ã¯ãç¹ã«ãã¼ã ã§ã®éçºã«æå³ãããã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Load mappings as resources:"
+msgstr "ãªã½ã¼ã¹ã¨ãã¦ãããã³ã°ããã¼ããã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr "ãããã³ã°ãããããããããã³ã°ããã¯ã©ã¹ã¨ä¸ç·ã«é
ç½®ãã¾ãããã"
+
+#. Tag: term
+#, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr "ã¯ã¨ãªæååãå¤é¨ã«ç½®ããã¨ãèãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is recommended if your queries call non-ANSI-standard SQL functions. "
+"Externalizing the query strings to mapping files will make the application "
+"more portable."
+msgstr ""
+"ã¯ã¨ãªã ANSI æ¨æºã§ãªã SQL é¢æ°ãå¼ãã§ãããªããããã¯ãããã©ã¯ãã£ã¹ã§"
+"ããã¯ã¨ãªæååããããã³ã°ãã¡ã¤ã«ã¸å¤åºãããã°ã¢ããªã±ã¼ã·ã§ã³ããã¼ã¿ã"
+"ã«ã«ãªãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr "ãã¤ã³ãå¤æ°ã使ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As in JDBC, always replace non-constant values by \"?\". Do not use string "
+"manipulation to bind a non-constant value in a query. You should also "
+"consider using named parameters in queries."
+msgstr ""
+"JDBC ã®å ´åã¨åãããã«ãå®æ°ã§ãªãå¤ã¯å¿
ã \"?\" ã§ç½®ãæãã¾ããããå®æ°ã§"
+"ãªãå¤ããã¤ã³ãããããã«ãã¯ã¨ãªã§æååæä½ã使ã£ã¦ã¯ããã¾ãããååä»ã"
+"ã®ãã©ã¡ã¼ã¿ã使ãããã«ããã¨ããã«è¯ãã§ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr "JDBC ã³ãã¯ã·ã§ã³ã管çãã¦ã¯ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows the application to manage JDBC connections, but his "
+"approach should be considered a last-resort. If you cannot use the built-in "
+"connection providers, consider providing your own implementation of "
+"<literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+"Hibernate ã§ã¯ã¢ããªã±ã¼ã·ã§ã³ã JDBC ã³ãã¯ã·ã§ã³ã管çãããã¨ã許ããã¦ã"
+"ã¾ãããããããã¯æçµæ段ã ã¨æã£ã¦ãã ãããçµã¿è¾¼ã¿ã®ã³ãã¯ã·ã§ã³ãããã¤"
+"ãã使ããã¨ãã§ããªããã°ã <literal>org.hibernate.connection."
+"ConnectionProvider</literal> ãå®è£
ãããã¨ãèãã¦ãã ããã"
+
+#. Tag: term
+#, no-c-format
+msgid "Consider using a custom type:"
+msgstr "ã«ã¹ã¿ã åã®ä½¿ç¨ãèãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose you have a Java type from a library that needs to be persisted but "
+"does not provide the accessors needed to map it as a component. You should "
+"consider implementing <literal>org.hibernate.UserType</literal>. This "
+"approach frees the application code from implementing transformations to/"
+"from a Hibernate type."
+msgstr ""
+"ããã©ã¤ãã©ãªããæã£ã¦ãã Java åãæ°¸ç¶åããå¿
è¦ãããã¨ãã¾ãããããã"
+"ããã®åã«ã¯ãã³ã³ãã¼ãã³ãã¨ãã¦ãããã³ã°ããããã«å¿
è¦ãªã¢ã¯ã»ãµããªãã¨"
+"ãã¾ãããã®ãããªå ´å㯠<literal>org.hibernate.UserType</literal> ã®å®è£
ãè"
+"ããã¹ãã§ããããããã° Hibernate åã¨ã®å®è£
å¤æãå¿é
ããã«ã¢ããªã±ã¼ã·ã§ã³"
+"ã®ã³ã¼ããæ±ãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr "ããã«ããã¯ã解æ¶ããã«ã¯ JDBC ããã³ãã³ã¼ããã¾ãããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In performance-critical areas of the system, some kinds of operations might "
+"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
+"faster. Please wait until you <emphasis>know</emphasis> something is a "
+"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
+"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
+"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
+"way you can still use the same transaction strategy and underlying "
+"connection provider."
+msgstr ""
+"ã·ã¹ãã ã®ããã©ã¼ãã³ã¹ã¯ãªãã£ã«ã«ãªé åã§ã¯ããã種ã®æä½ã« JDBC ãç´æ¥ä½¿"
+"ãã¨è¯ãããããã¾ããããããä½ãããã«ããã¯ã«ãªã£ã¦ããã <emphasis>ã¯ã£ã"
+"ããã</emphasis> ã¾ã§ã¯å¾
ã£ã¦ãã ãããã¾ã JDBC ãç´æ¥ä½¿ãããã¨ãã£ã¦ãå¿
"
+"ãããéããªãã¨ã¯éããªããã¨ãç解ãã¦ãã ããã JDBC ãç´æ¥ä½¿ãå¿
è¦ããã"
+"ã°ã Hibernate ã® <literal>Session</literal> ããªã¼ãã³ãã¦ã JDBC ã³ãã¯"
+"ã·ã§ã³ã使ãã¨è¯ãããããã¾ãããä¾ç¶ã¨ãã¦åããã©ã³ã¶ã¯ã·ã§ã³æ¦ç¥ã¨ã³ãã¯"
+"ã·ã§ã³ãããã¤ãã使ããããã§ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr "<literal>Session</literal> ã®ãã©ãã·ã¥ãç解ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sometimes the Session synchronizes its persistent state with the database. "
+"Performance will be affected if this process occurs too often. You can "
+"sometimes minimize unnecessary flushing by disabling automatic flushing, or "
+"even by changing the order of queries and other operations within a "
+"particular transaction."
+msgstr ""
+"Session ãæ°¸ç¶ç¶æ
ããã¼ã¿ãã¼ã¹ã¨åæããããã¨ãã¨ãã©ãããã¾ãããããã"
+"ãããã¾ãã«é »ç¹ã«èµ·ããããã ã¨ãããã©ã¼ãã³ã¹ã«å½±é¿ãåºã¦ãã¾ããèªåã"
+"ã©ãã·ã¥ãç¡å¹ã«ããããç¹å®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã®ã¯ã¨ãªãæä½ã®é çªãå¤æ´ãã"
+"ãã¨ã§ãä¸å¿
è¦ãªãã©ãã·ã¥ãæå°éã«ã§ãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr "3層ã¢ã¼ããã¯ãã£ã§ã¯åé¢ãªãã¸ã§ã¯ãã®ä½¿ç¨ãèãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"When using a servlet/session bean architecture, you can pass persistent "
+"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
+"new session to service each request. Use <literal>Session.merge()</literal> "
+"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
+"database."
+msgstr ""
+"ãµã¼ãã¬ãã / ã»ãã·ã§ã³ Bean ã¢ã¼ããã¯ãã£ã使ãã¨ãããµã¼ãã¬ãã層 / "
+"JSP 層éã§ã»ãã·ã§ã³ Bean ã§ãã¼ãããæ°¸ç¶ãªãã¸ã§ã¯ããããåãã§ãã¾ããã"
+"ã®éãªã¯ã¨ã¹ããã¨ã«æ°ãã Session ã使ã£ã¦ãã ãããã¾ã <literal>Session."
+"merge()</literal> ã <literal>Session.saveOrUpdate()</literal> ã使ã£ã¦ããªã"
+"ã¸ã§ã¯ãã¨ãã¼ã¿ãã¼ã¹ãåæããã¦ãã ããã"
+
+#. Tag: term
+#, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr "2層ã¢ã¼ããã¯ãã£ã§ã¯é·ãæ°¸ç¶ã³ã³ããã¹ãã®ä½¿ç¨ãèãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Database Transactions have to be as short as possible for best scalability. "
+"However, it is often necessary to implement long running "
+"<emphasis>application transactions</emphasis>, a single unit-of-work from "
+"the point of view of a user. An application transaction might span several "
+"client request/response cycles. It is common to use detached objects to "
+"implement application transactions. An appropriate alternative in a two "
+"tiered architecture, is to maintain a single open persistence contact "
+"session for the whole life cycle of the application transaction. Then simply "
+"disconnect from the JDBC connection at the end of each request and reconnect "
+"at the beginning of the subsequent request. Never share a single session "
+"across more than one application transaction or you will be working with "
+"stale data."
+msgstr ""
+"æé«ã®ã¹ã±ã¼ã©ããªãã£ãå¾ãã«ã¯ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãã§ããã ãç"
+"ãããªããã°ãªãã¾ããããããé·ãéå®è¡ãã <emphasis>ã¢ããªã±ã¼ã·ã§ã³ãã©ã³"
+"ã¶ã¯ã·ã§ã³</emphasis> ã®å®è£
ãå¿
è¦ãªãã¨ã¯ãã°ãã°ã§ããããã¯ã¦ã¼ã¶ã¼ã®è¦ç¹"
+"ããã¯1åã®ä½æ¥åä½ï¼unit of workï¼ã«ãªãã¾ããã¢ããªã±ã¼ã·ã§ã³ãã©ã³ã¶ã¯ã·ã§"
+"ã³ã¯ããã¤ãã®ã¯ã©ã¤ã¢ã³ãã®ãªã¯ã¨ã¹ã/ã¬ã¹ãã³ã¹ãµã¤ã¯ã«ã«ã¾ãããã¾ããã¢ã"
+"ãªã±ã¼ã·ã§ã³ãã©ã³ã¶ã¯ã·ã§ã³ã®å®è£
ã«åé¢ãªãã¸ã§ã¯ãã使ãã®ã¯ä¸è¬çã§ããã"
+"ãã§ãªããã°ã2層ã¢ã¼ããã¯ãã£ã®å ´åã¯ç¹ã«é©åãªãã¨ã§ãããã¢ããªã±ã¼ã·ã§ã³"
+"ãã©ã³ã¶ã¯ã·ã§ã³ã®ã©ã¤ããµã¤ã¯ã«å
¨ä½ã«å¯¾ãã¦åä¸ã®ãªã¼ãã³ãªæ°¸ç¶åã³ã³ããã¹"
+"ãï¼ã»ãã·ã§ã³ï¼ãç¶æãã¦ãã ãããããã¦åç´ã«ãªã¯ã¨ã¹ãã®æå¾ã« JDBC ã³ã"
+"ã¯ã·ã§ã³ããåæãã次ã®ãªã¯ã¨ã¹ãã®æåã«åæ¥ç¶ãã¾ãã決ãã¦è¤æ°ã®ã¢ããª"
+"ã±ã¼ã·ã§ã³ãã©ã³ã¶ã¯ã·ã§ã³ã¦ã¼ã¹ã±ã¼ã¹ã«æ¸¡ã£ã¦1åã® Session ã使ãåããªãã§"
+"ãã ãããããã§ãªããã°ãå¤ããã¼ã¿ã§ä½æ¥ãããã¨ã«ãªãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr "ä¾å¤ã復帰å¯è½ãªãã®ã¨ãã¦æ±ã£ã¦ã¯ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is more of a necessary practice than a \"best\" practice. When an "
+"exception occurs, roll back the <literal>Transaction</literal> and close the "
+"<literal>Session</literal>. If you do not do this, Hibernate cannot "
+"guarantee that in-memory state accurately represents the persistent state. "
+"For example, do not use <literal>Session.load()</literal> to determine if an "
+"instance with the given identifier exists on the database; use "
+"<literal>Session.get()</literal> or a query instead."
+msgstr ""
+"ããã¯ããã¹ãããã©ã¯ãã£ã¹ä»¥ä¸ã®ãå¿
é ã®ãã©ã¯ãã£ã¹ã§ããä¾å¤ãçºçããã¨"
+"ã㯠<literal>Transaction</literal> ããã¼ã«ããã¯ãã¦ã <literal>Session</"
+"literal> ãã¯ãã¼ãºãã¦ãã ãããããããªã㨠Hibernate ã¯ã¡ã¢ãªã®ç¶æ
ãæ°¸ç¶"
+"ç¶æ
ãæ£ç¢ºã«è¡¨ç¾ãã¦ãããã¨ãä¿è¨¼ã§ãã¾ããããã®ç¹å¥ãªå ´åã¨ãã¦ãä¸ããã"
+"ãèå¥åãæã¤ã¤ã³ã¹ã¿ã³ã¹ããã¼ã¿ãã¼ã¹ã«åå¨ãããã©ãããå¤å®ããããã«ã "
+"<literal>Session.load()</literal> ã使ããã¨ã¯ããã¦ãã ããããã®ä»£ããã« "
+"<literal>Session.get()</literal> ãã¯ã¨ãªã使ã£ã¦ãã ããã"
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr "é¢é£ã«ã¯ãªãã¹ãé
延ãã§ããã使ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use eager fetching sparingly. Use proxies and lazy collections for most "
+"associations to classes that are not likely to be completely held in the "
+"second-level cache. For associations to cached classes, where there is an a "
+"extremely high probability of a cache hit, explicitly disable eager fetching "
+"using <literal>lazy=\"false\"</literal>. When join fetching is appropriate "
+"to a particular use case, use a query with a <literal>left join fetch</"
+"literal>."
+msgstr ""
+"å³æãã§ããã¯æ§ããã«ãã¾ããããäºæ¬¡ãã£ãã·ã¥ã«ã¯å®å
¨ã«ä¿æãããªããããª"
+"ã¯ã©ã¹ã®é¢é£ã«ã¯ããããã·ã¨é
延ã³ã¬ã¯ã·ã§ã³ã使ã£ã¦ãã ããããã£ãã·ã¥ãã"
+"ãã¯ã©ã¹ã®é¢é£ãã¤ã¾ããã£ãã·ã¥ããããããå¯è½æ§ãé常ã«é«ãé¢é£ã¯ã "
+"<literal>lazy=\"false\"</literal> ã§ç©æ¥µçãªãã§ãããæ示çã«ç¡å¹ã«ãã¦ãã "
+"ãããçµåãã§ãããé©åãªç¹å®ã®ã¦ã¼ã¹ã±ã¼ã¹ã«ã¯ãã¯ã¨ãªã§ <literal>left "
+"join fetch</literal> ã使ã£ã¦ãã ããã"
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
+"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr ""
+"ãã§ããããã¦ããªããã¼ã¿ã«é¢ããåé¡ãé¿ããããã«ã <emphasis>ãã¥ã¼ã®ä¸ã§"
+"ãªã¼ãã³ã»ãã·ã§ã³ã使ã (open session in view) </emphasis> ãã¿ã¼ã³ããçµ±å¶"
+"ããã <emphasis>çµã¿ç«ã¦ãã§ã¼ãº (assembly phase) </emphasis> ã使ãã¾ãã"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
+"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
+"purposes: first, they work around the problem that entity beans are not "
+"serializable; second, they implicitly define an assembly phase where all "
+"data to be used by the view is fetched and marshalled into the DTOs before "
+"returning control to the presentation tier. Hibernate eliminates the first "
+"purpose. Unless you are prepared to hold the persistence context (the "
+"session) open across the view rendering process, you will still need an "
+"assembly phase. Think of your business methods as having a strict contract "
+"with the presentation tier about what data is available in the detached "
+"objects. This is not a limitation of Hibernate. It is a fundamental "
+"requirement of safe transactional data access."
+msgstr ""
+"Hibernate 㯠<emphasis>Data Transfer Objects</emphasis> (DTO) ãæ¸ãéå±ãªä½"
+"æ¥ããéçºè
ã解æ¾ãã¾ããä¼çµ±ç㪠EJB ã¢ã¼ããã¯ãã£ã§ã¯ DTO ã¯2ã¤ç®çããã"
+"ã¾ãï¼ 1ã¤ç®ã¯ãã¨ã³ãã£ã㣠Bean ãã·ãªã¢ã©ã¤ãºãããªãåé¡ã¸ã®å¯¾çã§ãã2ã¤"
+"ç®ã¯ããã¬ã¼ã³ãã¼ã·ã§ã³å±¤ã«å¶å¾¡ãæ»ãåã«ããã¥ã¼ã«ä½¿ããããã¹ã¦ã®ãã¼ã¿ã"
+"ãã§ããããã¦ã DTO ã«å¾©å
ããããããªçµã¿ç«ã¦ãã§ã¼ãºãæé»çã«å®ç¾©ãã¾"
+"ãã Hibernate ã§ã¯1ã¤ç®ã®ç®çãä¸è¦ã«ãªãã¾ããããããã¥ã¼ã®ã¬ã³ããªã³ã°å¦"
+"çã®éãæ°¸ç¶ã³ã³ããã¹ãï¼ã»ãã·ã§ã³ï¼ããªã¼ãã³ã«ããã¾ã¾ã«ããªããã°ãçµã¿"
+"ç«ã¦ãã§ã¼ãºã¯ã¾ã å¿
è¦ã§ãï¼åé¢ãªãã¸ã§ã¯ãã®ä¸ã®ã©ã®ãã¼ã¿ãå©ç¨å¯è½ãã«ã¤"
+"ãã¦ããã¬ã¼ã³ãã¼ã·ã§ã³å±¤ã¨å³å¯ãªåã決ãããã¦ãããã¸ãã¹ã¡ã½ãããèãã¦"
+"ã¿ã¦ãã ããï¼ããã㯠Hibernate å´ã®åé¡ã§ã¯ããã¾ããããã©ã³ã¶ã¯ã·ã§ã³å
ã§"
+"å®å
¨ã«ãã¼ã¿ã¢ã¯ã»ã¹ããããã®åºæ¬çãªè¦ä»¶ã§ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr "Hibernate ãããã¸ãã¹ãã¸ãã¯ãæ½è±¡åãããã¨ãèãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hide Hibernate data-access code behind an interface. Combine the "
+"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
+"patterns. You can even have some classes persisted by handcoded JDBC "
+"associated to Hibernate via a <literal>UserType</literal>. This advice is, "
+"however, intended for \"sufficiently large\" applications. It is not "
+"appropriate for an application with five tables."
+msgstr ""
+"ã¤ã³ã¿ã¼ãã§ã¼ã¹ã§ï¼Hibernate ã®ï¼ãã¼ã¿ã¢ã¯ã»ã¹ã³ã¼ããé è½ãã¾ãããã "
+"<emphasis>DAO</emphasis> 㨠<emphasis>Thread Local Session</emphasis> ãã¿ã¼"
+"ã³ãçµã¿åããã¾ãããã <literal>UserType</literal> 㧠Hibernate ã«é¢é£ä»ã"
+"ãã¨ããã³ãã³ã¼ããã JDBC ã§æ°¸ç¶åããã¯ã©ã¹ãæã¤ãã¨ãã§ãã¾ããï¼ãã®ã¢"
+"ããã¤ã¹ã¯ãåå大ããªãã¢ããªã±ã¼ã·ã§ã³ã«å¯¾ãã¦ã®ãã®ã§ãããã¼ãã«ã5åãã"
+"ãªããããªã¢ããªã±ã¼ã·ã§ã³ã«ã¯å½ã¦ã¯ã¾ãã¾ãããï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr "çããé¢é£ãããã³ã°ã¯ä½¿ããªãããã«ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Practical test cases for real many-to-many associations are rare. Most of "
+"the time you need additional information stored in the \"link table\". In "
+"this case, it is much better to use two one-to-many associations to an "
+"intermediate link class. In fact, most associations are one-to-many and many-"
+"to-one. For this reason, you should proceed cautiously when using any other "
+"association style."
+msgstr ""
+"ããã¦ã¼ã¹ã±ã¼ã¹ã«æ¬å½ã®å¤å¯¾å¤é¢é£ããããã¨ã¯ç¨ã§ããã»ã¨ãã©ã®å ´åããªã³ã¯"
+"ãã¼ãã«ãã®ä»å çãªæ
å ±ãå¿
è¦ã«ãªãã¾ãããã®å ´åããªã³ã¯ã¯ã©ã¹ã«2ã¤ã®ä¸å¯¾å¤"
+"é¢é£ã使ãæ¹ããã£ã¨ããã§ããå®éã»ã¨ãã©ã®å ´åãé¢é£ã¯ä¸å¯¾å¤ã¨å¤å¯¾ä¸ãªã®"
+"ã§ãä»ã®ã¹ã¿ã¤ã«ã®é¢é£ã使ãã¨ãã¯æ¬å½ã«å¿
è¦ãã©ãããèãã¦ã¿ã¦ãã ããã"
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr "ãªãã¹ãåæ¹åé¢é£ã«ãã¾ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Unidirectional associations are more difficult to query. In a large "
+"application, almost all associations must be navigable in both directions in "
+"queries."
+msgstr ""
+"åæ¹åé¢é£ã¯åæ¹åã«æ¯ã¹ã¦æ¤ç´¢ãé£ãããªãã¾ãã大ããªã¢ããªã±ã¼ã·ã§ã³ã§ã¯ã"
+"ã»ã¨ãã©ãã¹ã¦ã®é¢é£ãåæ¹åã«ããã²ã¼ã·ã§ã³ã§ããªããã°ãªãã¾ããã"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/bibliography.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/bibliography.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/bibliography.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+# Language ja-JP translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2009-07-14 19:55+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/collection_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/collection_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/collection_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1999 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mapping"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®ãããã³ã°"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®æ°¸ç¶å"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate requires that persistent collection-valued fields be declared as "
+"an interface type. For example:"
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³åã®ãã£ã¼ã«ããæ°¸ç¶åããã«ã¯ããã®ã³ã¬ã¯ã·ã§ã³åãã¤ã³ã¿ã¼"
+"ãã§ã¼ã¹åã§ããå¿
è¦ãããã¾ããä¾ãã°ã"
+
+#. 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> ã®å®"
+"è£
ã¯ã©ã¹ãä½æããå¿
è¦ãããã¾ããï¼"
+
+#. 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> ã®å®è£
ã¯ã©ã¹ã«ç½®ãæãã¾ãããã®ããã次ã®ãããªã¨ã©ã¼ã«ã¯æ³¨æãå¿
è¦"
+"ã§ãã"
+
+#. 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> ã®ããã«"
+"æ¯èãã¾ãã"
+
+#. 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 ""
+"ã³ã¬ã¯ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ã¯ãå¤åã¨ãã¦æ®éã«æ¯èãã¾ããæ°¸ç¶åãªãã¸ã§ã¯ãã«"
+"åç
§ãããã¨ãã«èªåçã«æ°¸ç¶åãããåç
§ããªããªã£ãã¨ãã«èªåçã«åé¤ããã¾"
+"ããããããæ°¸ç¶åãªãã¸ã§ã¯ãããå¥ã®æ°¸ç¶åãªãã¸ã§ã¯ãã«æ¸¡ããããããã®è¦"
+"ç´ ã¯ç¾å¨ã®ãã¼ãã«ããå¥ã®ãã¼ãã«ã«ç§»åããããããã¾ãããï¼ã¤ã®ã¨ã³ãã£"
+"ãã£ãåãã³ã¬ã¯ã·ã§ã³ã¤ã³ã¹ã¿ã³ã¹ãå
±æãã¦ã¯ããã¾ããããªã¬ã¼ã·ã§ãã«ã¢ã"
+"ã«ããã¼ã¹ã«ãã¦ãããããã³ã¬ã¯ã·ã§ã³åã®ããããã£ã« null å¤ã代å
¥ãã¦ãæ"
+"å³ãããã¾ãããã¤ã¾ã 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 ã®ã³ã¬ã¯ã·ã§ã³ã¨"
+"åãããã«ãæ°¸ç¶åã³ã¬ã¯ã·ã§ã³ã使ã£ã¦ãã ãããåæ¹åé¢é£ã®æå³ãç解ããã°"
+"ããã®ã§ãï¼ããã¯å¾ã»ã©èª¬æãã¾ãï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®ãããã³ã°"
+
+#. 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 ""
+"å¤ãã®ä¸è¬çãªãªã¬ã¼ã·ã§ãã«ã¢ãã«ãã«ãã¼ããããã«ãã³ã¬ã¯ã·ã§ã³ã®ããã«å©"
+"ç¨ã§ãããããã³ã°ã«ã¯ããªãã®å¹
ãããã¾ããæ§ã
ãªãããã³ã°å®£è¨ãã©ã®ããã«"
+"ãã¼ã¿ãã¼ã¹ãã¼ãã«ã«å¤æãããããç¥ãããã«ãã¹ãã¼ãçæãã¼ã«ã使ã£ã¦ã¿"
+"ãã¨è¯ãã§ãããã"
+
+#. 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><set></literal> element is "
+"used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ããããã³ã°ããããã®ãããã³ã°è¦ç´ ã¯ãã¤ã³ã¿ã¼ãã§ã¼ã¹ã®åã«ä¾"
+"åãã¾ããä¾ãã°ã <literal><set></literal> è¦ç´ 㯠<literal>Set</"
+"literal> åã®ããããã£ããããã³ã°ããããã«ä½¿ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Apart from <literal><set></literal>, there is also <literal><"
+"list></literal>, <literal><map></literal>, <literal><bag></"
+"literal>, <literal><array></literal> and <literal><primitive-"
+"array></literal> mapping elements. The <literal><map></literal> "
+"element is representative:"
+msgstr ""
+"ãããã³ã°è¦ç´ ã«ã¯ <literal><set></literal> ã®ä»ã« <literal><"
+"list></literal>ã <literal><map></literal>ã <literal><bag></"
+"literal>ã <literal><array></literal>ã <literal><primitive-"
+"array></literal> ãããã¾ãã代表ã¨ãã¦ã <literal><map></literal> "
+"è¦ç´ ãä¸è¨ã«ç¤ºãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr "<literal>name</literal> ï¼ã³ã¬ã¯ã·ã§ã³åã§ããããããã£ã®åå"
+
+#. 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> ï¼ãªãã·ã§ã³ - ããã©ã«ãã¯ããããã£åï¼ï¼ã³ã¬ã¯"
+"ã·ã§ã³ãã¼ãã«ã®ååï¼ä¸å¯¾å¤é¢é£ã§ã¯ä½¿ç¨ãã¾ããï¼ã"
+
+#. 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> ï¼ãªãã·ã§ã³ï¼ï¼ãã¼ãã«ã¹ãã¼ãã®ååãã«ã¼ãè¦ç´ "
+"ã§å®£è¨ããã¦ããã¹ãã¼ãããåªå
ããã¾ãã"
+
+#. 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> ï¼ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>true</"
+"literal>ï¼ï¼ é
延ãã§ãããç¡å¹ã«ããé¢é£ã常ã«å³æã«ãã§ããã«ããããã«ä½¿ç¨"
+"ãã¾ããã¾ãã¯ããextra-lazyããã§ãããæå¹ã«ããããã«ä½¿ç¨ãã¾ããã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>ï¼ï¼ãã®ã³ã¬ã¯ã·ã§ã³ãåæ¹åé¢é£ã®ãéãå´ã§ããã¨ãã¼ã¯ãã¾ãã"
+
+#. 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>ï¼ï¼åã¨ã³ãã£ãã£ã¸ã®ã«ã¹ã±ã¼ãæä½ãæå¹ã«ãã¾ãã"
+
+#. 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> ãæå®ãã¾ããããã㯠Comparator ã¯ã©ã¹ã"
+"æå®ãã¾ãã"
+
+#. 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 ã®ã¿ï¼ <literal>Map</"
+"literal>ã <literal>Set</literal>ã bag ã®ã¤ãã¬ã¼ã·ã§ã³é åºãå®ç¾©ãããã¼ã"
+"ã«ã«ã©ã ãæå®ããã¨å
±ã«ããªãã·ã§ã³ã¨ã㦠<literal>asc</literal>ã "
+"<literal>desc</literal> ãæå®ãã¾ãã"
+
+#. 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 ã®<literal>WHERE</literal> æ¡ä»¶ãæå®ãã¾ã ï¼å©ç¨å¯è½ãªãã¼ã¿ã®ä¸é¨"
+"åã ããã³ã¬ã¯ã·ã§ã³ãå«ãã¹ãã¨ãã«ãããã¯æç¨ã§ãï¼ã"
+
+#. 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>ï¼ï¼å¤é¨çµåã«ãããã§ãããé 次é¸æãã§ãã ï¼sequential select "
+"fetchï¼ ãé 次ãµãã»ã¬ã¯ããã§ãã ï¼sequential subselect fetchï¼ ã®ã©ããã"
+"é¸æãã¦ãã ããã"
+
+#. 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>ï¼ï¼ã³ã¬ã¯ã·ã§ã³ã®ã¤ã³ã¹ã¿ã³ã¹ã®é
延ãã§ããã®ããã®ãããããµã¤ãºã"
+"ãæå®ãã¾ãã"
+
+#. 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> ï¼ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>property</"
+"literal>ï¼ï¼ã³ã¬ã¯ã·ã§ã³åããããã£ã®å¤ã«ã¢ã¯ã»ã¹ããããã«ä½¿ç¨ããæ¦ç¥ã§"
+"ãã"
+
+#. 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>optimistic-lock</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> å¤ã¯ãã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ãå¤æ´ãããªãã"
+"ã¨ã表ãã¾ã ï¼ããå ´åã«ã¯ãå°ãããã©ã¼ãã³ã¹ãé«ãã¾ãï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®å¤é¨ãã¼"
+
+#. 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><key></"
+"literal> element."
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ããã¼ã¿ãã¼ã¹å
ã§ã¯ããã®ã³ã¬ã¯ã·ã§ã³ãææãã"
+"ã¨ã³ãã£ãã£ã®å¤é¨ãã¼ã«ãã£ã¦èå¥ããã¾ãããã®å¤é¨ãã¼ã¯ã³ã¬ã¯ã·ã§ã³ãã¼ã"
+"ã«ã® <emphasis>ã³ã¬ã¯ã·ã§ã³ãã¼ã«ã©ã </emphasis> (ã¾ãã¯ã«ã©ã ) ã¨å¼ã°ãã¾"
+"ããã³ã¬ã¯ã·ã§ã³ãã¼ã«ã©ã 㯠<literal><key></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 ""
+"å¤é¨ãã¼ã«ã©ã ã«ã¯ null è¨å®å¶ç´ãããããããã¾ãããã»ã¨ãã©ã®ã³ã¬ã¯ã·ã§ã³"
+"ã«å½ã¦ã¯ã¾ãã§ããããåæ¹åã®ä¸å¯¾å¤é¢é£ã«ããã¦ãå¤é¨ãã¼ã«ã©ã ã¯ããã©ã«ã"
+"㧠null ã許ãè¨å®ã«ãªã£ã¦ãã¾ãããã£ã¦ã <literal>not-null=\"true\"</"
+"literal> ãæå®ããå¿
è¦ãããããããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+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><key></"
+"literal> element."
+msgstr ""
+"<literal><key></literal> è¦ç´ ã®ãã¹ã¦ã®å®ç¾©ã«ã¤ãã¦ã¯åã®ç« ãåç
§ãã¦ã"
+"ã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ "
+
+#. 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 ã®åã®ã»ã¨ãã©ï¼ãã¹ã¦ã®åºæ¬åãã«ã¹ã¿ã åãã³ã³"
+"ãã¼ãã³ããä»ã®ã¨ã³ãã£ãã£ã¸ã®åç
§ï¼ãæ ¼ç´ãããã¨ãã§ãã¾ãã次ã®ç¹ã¯éè¦"
+"ãªéãã«ãªãã¾ããã³ã¬ã¯ã·ã§ã³ã«æ ¼ç´ããããªãã¸ã§ã¯ãããå¤ãã»ãã³ãã£ã¯ã¹"
+"ã¨ãã¦æ±ãããã®ã ï¼ã©ã¤ããµã¤ã¯ã«ã¯ã³ã¬ã¯ã·ã§ã³ã®ãªã¼ãã¼ã«å®å
¨ã«ä¾åãã¾"
+"ãï¼ããããã¯ããèªèº«ã®ã©ã¤ããµã¤ã¯ã«ãæã£ãå¥ã®ã¨ã³ãã£ãã£ã¸ã®åç
§ã§ãã"
+"ãã®ãã¨ããéãã§ããå¾è
ã¯ã2ã¤ã®ãªãã¸ã§ã¯ãéã®ããªã³ã¯ããã³ã¬ã¯ã·ã§ã³ã«"
+"ä¿æãã¦ããã¨è¦ãªãã¦ããã ãã§ãã"
+
+#. 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><element></"
+"literal> or <literal><composite-element></literal>, or in the case of "
+"entity references, with <literal><one-to-many></literal> or "
+"<literal><many-to-many></literal>. The first two map elements with "
+"value semantics, the next two are used to map entity associations."
+msgstr ""
+"æ ¼ç´ãããå㯠<emphasis>ã³ã¬ã¯ã·ã§ã³è¦ç´ å</emphasis> ã¨å¼ã°ãã¾ããã³ã¬ã¯"
+"ã·ã§ã³è¦ç´ ã¯ã <literal><element></literal> ã¾ã㯠<literal><"
+"composite-element></literal> ã«ãããããã³ã°ãããã¨ã³ãã£ãã£ã¸ã®åç
§ã®"
+"å ´åã«ã¯ <literal><one-to-many></literal> ã¾ã㯠<literal><many-to-"
+"many></literal> ã«ãããããã³ã°ããã¾ããæåã®äºã¤ã¯å¤ã¨ãã¦è¦ç´ ãããã"
+"ã³ã°ãã次ã®äºã¤ã¯ã¨ã³ãã£ãã£ã®é¢é£ããããã³ã°ããã®ã«ä½¿ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr "ã¤ã³ããã¯ã¹ä»ãã®ã³ã¬ã¯ã·ã§ã³"
+
+#. 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><map-key></literal>. It can be "
+"an entity reference mapped with <literal><map-key-many-to-many></"
+"literal>, or it can be a composite type mapped with <literal><composite-"
+"map-key></literal>. The index of an array or list is always of type "
+"<literal>integer</literal> and is mapped using the <literal><list-"
+"index></literal> element. The mapped column contains sequential integers "
+"that are numbered from zero by default."
+msgstr ""
+"set 㨠bag ãé¤ãå
¨ã¦ã®ã³ã¬ã¯ã·ã§ã³ãããã³ã°ã«ã¯ãã³ã¬ã¯ã·ã§ã³ãã¼ãã«ã®ä¸"
+"ã« <emphasis>ã¤ã³ããã¯ã¹ç¨ã®ã«ã©ã </emphasis> ãå¿
è¦ã§ãããã®ã«ã©ã ã«ãé
å"
+"ã <literal>List</literal> ã®ã¤ã³ããã¯ã¹ãããã㯠<literal>Map</literal> ã®"
+"ãã¼ããããã³ã°ãã¾ãã <literal>Map</literal> ã®ã¤ã³ããã¯ã¹ã¯ã "
+"<literal><map-key></literal> ã«ãããããã³ã°ãããåºæ¬åãã "
+"<literal><map-key-many-to-many></literal> ã«ãããããã³ã°ãããã¨ã³"
+"ãã£ãã£ã®é¢é£ããããã㯠<literal><composite-map-key></literal> ã«ã"
+"ããããã³ã°ãããã³ã³ãã¸ããåã«ãªãã¾ããé
åããªã¹ãã®ã¤ã³ããã¯ã¹ã¯ã常"
+"ã« <literal>integer</literal> åã§ã <literal><list-index></literal> è¦"
+"ç´ ã«ãããããã³ã°ãã¾ãããããã³ã°ãããã«ã©ã ã«ã¯ã·ã¼ã±ã³ã·ã£ã«ãªæ´æ°ãæ ¼"
+"ç´ãã¾ã ï¼ããã©ã«ãã§ã¯0ããçªå·ãä»ãããã¾ãï¼ã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column_name</literal> (required): the name of the column holding "
+"the collection index values."
+msgstr "<literal>class</literal> ï¼å¿
é ï¼: é¢é£ã¯ã©ã¹ã®ååã"
+
+#. Tag: para
+#, 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
+#, 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
+msgid ""
+"<literal>formula</literal> (optional): a SQL formula used to evaluate the "
+"key of the map."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr "<literal>class</literal> ï¼å¿
é ï¼: é¢é£ã¯ã©ã¹ã®ååã"
+
+#. 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>schema</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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (required): the entity class used as the map key."
+msgstr "<literal>class</literal> ï¼å¿
é ï¼: é¢é£ã¯ã©ã¹ã®ååã"
+
+#. 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><bag></emphasis>. A bag does not retain its order "
+"when it is retrieved from the database, but it can be optionally sorted or "
+"ordered."
+msgstr ""
+"ãããã¼ãã«ã«ã¤ã³ããã¯ã¹ã«ã©ã ããªãã¦ããããããã£åã¨ã㦠"
+"<literal>List</literal> ã使ããããã°ã Hibernate ã® <emphasis><bag></"
+"emphasis> ã¨ãã¦ããããã£ããããã³ã°ãã¾ãã bag ã¯ãã¼ã¿ãã¼ã¹ãã復å
ãã"
+"ãæãé åºãä¿æãã¾ãããããããï¼ã¡ã¢ãªä¸ã§ï¼ã½ã¼ãããããï¼SQLã§ï¼é åºä»"
+"ããããï¼order byï¼ãããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of values and many-to-many associations"
+msgstr "å¤ã®ã³ã¬ã¯ã·ã§ã³ã¨å¤å¯¾å¤é¢é£"
+
+#. 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>ã³ã¬ã¯ã·ã§ã³ãã¼ãã«</"
+"emphasis> ãå¿
è¦ã§ãããã®ãã¼ãã«ã¯ãå¤é¨ãã¼ã«ã©ã ã¨ã <emphasis>ã³ã¬ã¯ã·ã§"
+"ã³è¦ç´ ã®ã«ã©ã </emphasis> ã¨ãå ´åã«ãã£ã¦ã¯ã¤ã³ããã¯ã¹ã«ã©ã ãæã¡ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For a collection of values use the <literal><element></literal> tag. "
+"For example:"
+msgstr ""
+"å¤ã®ã³ã¬ã¯ã·ã§ã³ã®ããã«ã <literal><element></literal> ã¿ã°ã使ç¨ãã¾"
+"ãã"
+
+#. Tag: para
+#, 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
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
+"element."
+msgstr ""
+"<literal>schema</literal> ï¼ãªãã·ã§ã³ï¼ï¼ãã¼ãã«ã¹ãã¼ãã®ååãã«ã¼ãè¦ç´ "
+"ã§å®£è¨ããã¦ããã¹ãã¼ãããåªå
ããã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>type</literal> (required): the type of the collection element."
+msgstr "<literal>class</literal> ï¼å¿
é ï¼: é¢é£ã¯ã©ã¹ã®ååã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>many-to-many association</emphasis> is specified using the "
+"<literal><many-to-many></literal> element."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the element foreign key "
+"column."
+msgstr "<literal>class</literal> ï¼å¿
é ï¼: é¢é£ã¯ã©ã¹ã®ååã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an SQL formula used to evaluate the "
+"element foreign key value."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr "<literal>class</literal> ï¼å¿
é ï¼: é¢é£ã¯ã©ã¹ã®ååã"
+
+#. 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><many-to-many></"
+"literal> nested element."
+msgstr ""
+
+#. 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 ""
+
+#. 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>ï¼: åç
§å
ã®è¡ããªããã£ãã·ã¥ãããèå¥åãã©ã®ããã«æ±ãããæå®ã"
+"ã¾ã: <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> ã®ä»£"
+"æ¿ã§ããé¢é£ã¯ã©ã¹ã®ã¨ã³ãã£ãã£åã <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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some examples."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A set of strings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A bag containing integers with an iteration order determined by the "
+"<literal>order-by</literal> attribute:"
+msgstr ""
+"æ´æ°å¤ãå«ã bag ï¼bag㯠<literal>order-by</literal> å±æ§ã«ãã£ã¦å復é åºãå®"
+"義ããã¦ãã¾ãï¼:"
+
+#. Tag: para
+#, no-c-format
+msgid "An array of entities, in this case, a many-to-many association:"
+msgstr "ã¨ã³ãã£ãã£ã®é
å - ãã®å ´åãå¤å¯¾å¤ã®é¢é£ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "æååã¨æ¥ä»ã® map"
+
+#. Tag: para
+#, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr "ã³ã³ãã¼ãã³ãã® list ï¼æ¬¡ã®ç« ã§è©³ãã説æãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "ä¸å¯¾å¤é¢é£"
+
+#. 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> ã¯ãã³ã¬ã¯ã·ã§ã³ãã¼ãã«ãä»ãããå¤é¨ãã¼ã«"
+"ãã2ã¤ã®ã¯ã©ã¹ã®ãã¼ãã«ãé¢é£ä»ãã¾ãããã®ãããã³ã°ã¯æ¨æºç㪠Java ã®ã³ã¬"
+"ã¯ã·ã§ã³ã®ã»ãã³ãã£ã¯ã¹ãããã¤ã失ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An instance of the contained entity class cannot belong to more than one "
+"instance of the collection."
+msgstr ""
+"ã¨ã³ãã£ãã£ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ã2ã¤ä»¥ä¸ã®ã³ã¬ã¯ã·ã§ã³ã®ã¤ã³ã¹ã¿ã³ã¹ã«å±ã"
+"ã¦ã¯ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An instance of the contained entity class cannot appear at more than one "
+"value of the collection index."
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ã«å«ã¾ããã¨ã³ãã£ãã£ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãã³ã¬ã¯ã·ã§ã³ã¤ã³"
+"ããã¯ã¹ã®å¤ã¨ãã¦2度以ä¸ç¾ãã¦ã¯ããã¾ããã"
+
+#. 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><one-to-many></"
+"literal> tag indicates that this is a one-to-many association."
+msgstr ""
+"<literal>Product</literal> ãã <literal>Part</literal> ã¸ã®é¢é£ã¯ã "
+"<literal>Part</literal> ãã¼ãã«ã¸ã®å¤é¨ãã¼ã«ã©ã ã¨ãå ´åã«ãã£ã¦ã¯ã¤ã³ãã"
+"ã¯ã¹ã«ã©ã ãå¿
è¦ã§ãã <literal><one-to-many></literal> ã¿ã°ã¯ãããã"
+"ä¸å¯¾å¤é¢é£ã§ãããã¨ã表ãã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>not-found</literal> (optional - defaults to <literal>exception</"
+"literal>): specifies how cached identifiers that reference missing rows will "
+"be handled. <literal>ignore</literal> will treat a missing row as a null "
+"association."
+msgstr ""
+"<literal>not-found</literal> ï¼ãªãã·ã§ã³ - ããã©ã«ã㯠<literal>exception</"
+"literal>ï¼: åç
§å
ã®è¡ããªããã£ãã·ã¥ãããèå¥åãã©ã®ããã«æ±ãããæå®ã"
+"ã¾ã: <literal>ignore</literal> ãæå®ããã¨ãè¡ããªããã¨ãé¢é£ããªããã®ã¨"
+"ãã¦æ±ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><one-to-many></literal> element does not need to declare "
+"any columns. Nor is it necessary to specify the <literal>table</literal> "
+"name anywhere."
+msgstr ""
+"<literal><one-to-many></literal> è¦ç´ ã¯ã«ã©ã ã宣è¨ããå¿
è¦ããªããã¨ã«"
+"注æãã¦ãã ãããåæ§ã« <literal>ãã¼ãã«</literal> åãæå®ããå¿
è¦ãããã¾"
+"ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the foreign key column of a <literal><one-to-many></literal> "
+"association is declared <literal>NOT NULL</literal>, you must declare the "
+"<literal><key></literal> mapping <literal>not-null=\"true\"</literal> "
+"or <emphasis>use a bidirectional association</emphasis> with the collection "
+"mapping marked <literal>inverse=\"true\"</literal>. See the discussion of "
+"bidirectional associations later in this chapter for more information."
+msgstr ""
+"<emphasis>ã¨ã¦ãéè¦ãªæ³¨æ:</emphasis> ãã <literal><one-to-many></"
+"literal> é¢é£ã®å¤é¨ãã¼ã«ã©ã ã <literal>NOT NULL</literal>ã¨å®£è¨ãããå ´"
+"åã <literal><key></literal> ãããã³ã°ã« <literal>not-null=\"true\"</"
+"literal> ã宣è¨ããããã³ã¬ã¯ã·ã§ã³ãããã³ã°ã« <literal>inverse=\"true\"</"
+"literal> ãä»ããä¸ã§ã <emphasis>åæ¹åé¢é£ã使ã</emphasis> å¿
è¦ãããã¾"
+"ããåæ¹åé¢é£ã«ã¤ãã¦ã¯ãã®ç« ã®å¾ã®ã»ãã§èª¬æãã¾ãã"
+
+#. 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> ã®æ°¸ç¶çãªããããã£ã§ãã "
+"<literal>partName</literal>ï¼ ã«ãã <literal>Part</literal> ã¨ã³ãã£ãã£ã® "
+"map ã表ãã¦ãã¾ãã formula ã«ããã¤ã³ããã¯ã¹ã使ã£ã¦ãããã¨ã«æ³¨æãã¦ãã "
+"ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr "é«åº¦ãªã³ã¬ã¯ã·ã§ã³ãããã³ã°"
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr "ã½ã¼ããããã³ã¬ã¯ã·ã§ã³"
+
+#. 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> ãå®è£
ããã³ã¬ã¯ã·ã§ã³ããµãã¼ããã¦ãã¾ããéçºè
ã¯ãã"
+"ãã³ã°å®ç¾©ãã¡ã¤ã«ã«ã³ã³ãã¬ã¼ã¿ãæå®ããªããã°ãªãã¾ãã: "
+
+#. 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> "
+"ãå®è£
ããã¯ã©ã¹ã®ååã§ãã"
+
+#. 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> ã®ããã«æ¯èãã¾ãã"
+
+#. 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 ããããã¯ãã以ä¸ã®ãã¼ã¸ã§"
+"ã³ã§å©ç¨å¯è½ã§ã ï¼<literal>LinkedHashSet</literal> ã¾ã㯠"
+"<literal>LinkedHashMap</literal>ã使ã£ã¦å®è£
ããã¦ãã¾ãï¼ãæ´åã¯ã¡ã¢ãªä¸ã§"
+"ã¯ãªãã SQL ã¯ã¨ãªå
ã§å®è¡ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注è¨"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The value of the <literal>order-by</literal> attribute is an SQL ordering, "
+"not an HQL ordering."
+msgstr ""
+"<literal>order-by</literal> å±æ§ã®å¤ã SQL å½ä»¤ã§ãã£ã¦ã HQL å½ä»¤ã§ã¯ãªãã"
+"ã¨ã«æ³¨æãã¦ãã ããã"
+
+#. 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> ã使ããã¨ã§ãå®è¡æã«ä»»æ"
+"ã® criteria ã«ãã£ã¦ã½ã¼ããããã¨ãå¯è½ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "åæ¹åé¢é£"
+
+#. 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> ã¯é¢é£ã®ã©ã¡ããå´ãããã§ãããã²ã¼ã·ã§ã³ã§"
+"ãã¾ãã2種é¡ã®åæ¹åé¢é£ããµãã¼ãããã¦ãã¾ãï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr "one-to-many"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr "çå´ã set ã bag ãããçæ¹ãåä¸å¤ã§ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr "many-to-many"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr "両å´ã set ã bag ã§ãã"
+
+#. 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 ""
+"2ã¤ã®å¤å¯¾å¤é¢é£ã§åããã¼ã¿ãã¼ã¹ãã¼ãã«ããããã³ã°ããçæ¹ã "
+"<emphasis>inverse</emphasis> ã¨ãã¦å®£è¨ãããã¨ã§ãåæ¹åã®å¤å¯¾å¤é¢é£ãæå®ã"
+"ããã¨ãåºæ¥ã¾ã ï¼ã©ã¡ãã inverse ã«é¸ãã ã¨ãã¦ãããã¡ãå´ã«ã¯ã¤ã³ããã¯"
+"ã¹ä»ãã®ã³ã¬ã¯ã·ã§ã³ã¯ä½¿ãã¾ããï¼ã"
+
+#. 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 ""
+"次ã«åæ¹åã®å¤å¯¾å¤é¢é£ã®ä¾ã示ãã¾ããåã«ãã´ãªã¯å¤æ°ã®ã¢ã¤ãã ãæã¤ãã¨ã"
+"ã§ããåã¢ã¤ãã ã¯å¤ãã®ã«ãã´ãªã«å±ãããã¨ãåºæ¥ã¾ãã"
+
+#. 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 ""
+"é¢é£ã® inverse å´ã«ã®ã¿è¡ãããå¤æ´ã¯æ°¸ç¶å <emphasis>ããã¾ãã</emphasis>ã"
+"ããã¯ã Hibernate ã¯å
¨ã¦ã®åæ¹åé¢é£ã«ã¤ãã¦ãã¡ã¢ãªä¸ã«ï¼ã¤ã®è¡¨ç¾ãæã£ã¦ã"
+"ãã¨ããæå³ã§ããã¤ã¾ãä¸ã¤ã¯ A ãã B ã¸ã®ãªã³ã¯ã§ãããä¸ã¤ã¯ B ãã A ã¸"
+"ã®ãªã³ã¯ã¨ãããã¨ã§ãã Java ã®ãªãã¸ã§ã¯ãã¢ãã«ã«ã¤ãã¦èãã Java ã§åæ¹"
+"åé¢ä¿ãã©ããã£ã¦ä½ãããèããã°ãããã¯ç解ããããã§ããä¸è¨ã«ã Java ã§"
+"ã®åæ¹åé¢é£ã示ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The non-inverse side is used to save the in-memory representation to the "
+"database."
+msgstr ""
+"é¢é£ã® inverse ã§ã¯ãªãå´ã¯ãã¡ã¢ãªä¸ã®è¡¨ç¾ããã¼ã¿ãã¼ã¹ã«ä¿åããã®ã«ä½¿ãã"
+"ã¾ãã"
+
+#. 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> ã¨å®£è¨ãã¾ãã"
+
+#. 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> ãè¨å®ãã¦ããã«ã¹ã±ã¼ãæä½"
+"ã«å½±é¿ãä¸ãã¾ããããããã¯ç´äº¤ããæ¦å¿µã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr "ã¤ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ã¨åæ¹åé¢é£"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A bidirectional association where one end is represented as a <literal><"
+"list></literal> or <literal><map></literal>, requires special "
+"consideration. If there is a property of the child class that maps to the "
+"index column you can use <literal>inverse=\"true\"</literal> on the "
+"collection mapping:"
+msgstr ""
+"çå´ã <literal><list></literal> ã <literal><map></literal> ã§ã"
+"ãåæ¹åé¢é£ã¯ãç¹ã«ããèããå¿
è¦ãããã¾ããã¤ã³ããã¯ã¹ã«ã©ã ã«ããããã"
+"ãåã¯ã©ã¹ã®ããããã£ãããå ´åã¯ãåé¡ãªãã§ããã³ã¬ã¯ã·ã§ã³ã®ãããã³ã°ã§ "
+"<literal>inverse=\"true\"</literal> ã使ãç¶ãããã¾ãã"
+
+#. Tag: 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> "
+"ããããã³ã°ã§ãã¾ããã代ããã«ã次ã®ãããªãããã³ã°ã使ãã¾ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that in this mapping, the collection-valued end of the association is "
+"responsible for updates to the foreign key."
+msgstr ""
+"注æï¼ ãã®ãããã³ã°ã§ã¯ãé¢é£ã®ã³ã¬ã¯ã·ã§ã³å¤ã®å´ã¯ãå¤é¨ãã¼ãã¢ãããã¼ã"
+"ãã責任ãããã¾ãã <!-- TODO: ããã¯æ¬å½ã«ããã¤ãã®ä¸å¿
è¦ãªã¢ãããã¼ãã¹"
+"ãã¼ãã¡ã³ããããããã®ã§ãããã? -->"
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr "3é
é¢é£"
+
+#. 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 ""
+"3é
é¢é£ã®ãããã³ã°ã«ã¯3ã¤ã®ã¢ããã¼ããããã¾ãã1ã¤ç®ã¯é¢é£ãã¤ã³ããã¯ã¹ã¨"
+"ã㦠<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 ""
+"2ã¤ç®ã¯åç´ã«é¢é£ãã¨ã³ãã£ãã£ã¯ã©ã¹ã¨ãã¦ã¢ãã«ãä½ãç´ãã¢ããã¼ãã§ãé »ç¹"
+"ã«ä½¿ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A final alternative is to use composite elements, which will be discussed "
+"later."
+msgstr ""
+"æå¾ã¯ composite è¦ç´ ã使ãã¢ããã¼ãã§ããããã«é¢ããè°è«ã¯å¾ã»ã©è¡ãã¾ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr "<idbag>ã®ä½¿ç¨"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The majority of the many-to-many associations and collections of values "
+"shown previously all map to tables with composite keys, even though it has "
+"been have suggested that entities should have synthetic identifiers "
+"(surrogate keys). A pure association table does not seem to benefit much "
+"from a surrogate key, although a collection of composite values "
+"<emphasis>might</emphasis>. It is for this reason that Hibernate provides a "
+"feature that allows you to map many-to-many associations and collections of "
+"values to a table with a surrogate key."
+msgstr ""
+"è¤åãã¼ã¯æªããã®ã§ãã¨ã³ãã£ãã£ã¯äººå·¥ã®èå¥å(代çãã¼)ãæã¤ã¹ãã§ããã¨"
+"ããèãæ¹ããã¯ãå¤å¯¾å¤é¢é£ã¨å¤ã®ã³ã¬ã¯ã·ã§ã³ãè¤åãã¼ãç¨ãããã¼ãã«ã¸"
+"ãããã³ã°ããã®ã¯å°ãå¥å¦ã«æããããããã¾ããã確ãã«ãã®èãæ¹ã«ã¯è°è«ã®"
+"ä½å°ãããã¾ããç´ç²ãªé¢é£ãã¼ãã«ã¯ä»£çãã¼ã使ã£ã¦ãå©çãå¾ãããªãããã«"
+"æããããã§ã ï¼åæå¤ã®ã³ã¬ã¯ã·ã§ã³ã¯å©çããã <emphasis>ãã</emphasis> "
+"ããã¾ãããï¼ãã¨ã¯ããã Hibernate ã¯ä»£çãã¼ãæã¤ãã¼ãã«ã¸å¤å¯¾å¤é¢é£ã¨å¤"
+"ã®ã³ã¬ã¯ã·ã§ã³ããããã³ã°ããæ©è½ãåãã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><idbag></literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+"bag ã®ã»ãã³ãã£ãã¯ã¹ãæã£ã <literal>List</literal>ï¼ã¾ã㯠"
+"<literal>Collection</literal>ï¼ã <literal><idbag></literal> è¦ç´ ã«ãã"
+"ãã³ã°ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An <literal><idbag></literal> has a synthetic id generator, just like "
+"an entity class. A different surrogate key is assigned to each collection "
+"row. Hibernate does not, however, provide any mechanism for discovering the "
+"surrogate key value of a particular row."
+msgstr ""
+"ãåç¥ã®ããã« <literal><idbag></literal> ã¯ã¨ã³ãã£ãã£ã¯ã©ã¹ã®ããã«"
+"人工ç㪠id ã¸ã§ãã¬ã¼ã¿ãæã£ã¦ãã¾ããç°ãªã代çãã¼ãããããã®ã³ã¬ã¯ã·ã§"
+"ã³ã®åã«å²ãå½ã¦ã¾ãããããã Hibernate ã¯ããè¡ã®ä»£çãã¼ã®å¤ãè¦ã¤ãåºãæ©"
+"æ§ãæã£ã¦ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The update performance of an <literal><idbag></literal> supersedes a "
+"regular <literal><bag></literal>. Hibernate can locate individual rows "
+"efficiently and update or delete them individually, similar to a list, map "
+"or set."
+msgstr ""
+"<literal><idbag></literal> ãæ´æ°ããããã©ã¼ãã³ã¹ã¯é常㮠"
+"<literal><bag></literal> ãããè¯ããã¨ã«æ³¨ç®ãã¦ãã ããã Hibernate "
+"ã¯åã
ã®è¡ãå¹æçã«è¦ã¤ãããã¨ãã§ãã list ã map ã set ã®ããã«åå¥ã«ã"
+"ã®è¡ãæ´æ°ãåé¤ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal><idbag></literal> "
+"collection identifiers."
+msgstr ""
+"ç¾å¨ã®å®è£
ã§ã¯ã <literal>native</literal> ã¨ãã id çææ¦ç¥ã <literal><"
+"idbag></literal> ã³ã¬ã¯ã·ã§ã³ã®èå¥åã«å¯¾ãã¦ä½¿ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®ä¾"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This section covers collection examples."
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®ä¾"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
+msgstr ""
+"以ä¸ã®ã³ã¼ãã使ãã°ãæ°ãã <literal>Child</literal> ã追å ãããã¨ãã§ãã¾"
+"ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If each child has, at most, one parent, the most natural mapping is a one-to-"
+"many association:"
+msgstr ""
+"ãã®ã¯ã©ã¹ã¯ <literal>Child</literal> ã¤ã³ã¹ã¿ã³ã¹ã®ã³ã¬ã¯ã·ã§ã³ãæã£ã¦ãã¾"
+"ããããåã
ã® child ãæ大ã§ãä¸ã¤ã® parent ãæã£ã¦ãããªãã°ãæãèªç¶ãª"
+"ãããã³ã°ã¯ä¸å¯¾å¤é¢é£ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr "ããã¯ä»¥ä¸ã®ãã¼ãã«å®ç¾©ã«ãããã³ã°ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-"
+"many association:"
+msgstr ""
+"ãã parent ã <emphasis>è¦æ±</emphasis> ããããªããåæ¹åã®ä¸å¯¾å¤é¢é£ã使ç¨"
+"ãã¦ãã ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "<literal>NOT NULL</literal> å¶ç´ã«æ³¨æãã¦ãã ããã"
+
+#. 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><key></"
+"literal> mapping:"
+msgstr ""
+"ãããã¯ããããã®é¢é£ã¯åæ¹åã§ããã¹ãã¨å¼·ã主張ããã®ã§ããã°ã "
+"<literal><key></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 ""
+"ä¸æ¹ã§ããã child ãè¤æ°ã® parent ãæã¦ããªãã°ãå¤å¯¾å¤é¢é£ã妥å½ã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+msgstr "ãã¼ãã«å®ç¾©ã¯ä»¥ä¸ã®ããã«ãªãã¾ã:"
+
+#. Tag: para
+#, 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 ""
+"parent/child é¢ä¿ã®ãããã³ã°ã«ã¤ãã¦ã®ããå¤ãã®ä¾ãå®å
¨ãªæé ãå¿
è¦ã§ãã"
+"ã°ã <xref linkend=\"example-parentchild\"/> ãã覧ãã ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Even more complex association mappings are covered in the next chapter."
+msgstr "ã¾ããããã«ç¹æ®ãªé¢é£ãããã³ã°ãå¯è½ã§ãã次ã®ç« ã§è©³ããè¿°ã¹ã¾ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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!"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+#~ msgstr "<key column=\"productSerialNumber\" not-null=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<key column=\"productSerialNumber\" on-delete=\"cascade\"/>]]>"
+#~ msgstr "<key column=\"productSerialNumber\" on-delete=\"cascade\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ " />"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sortedUsers = s.createFilter( group.getUsers(), \"order by this."
+#~ "name\" ).list();]]>"
+#~ msgstr ""
+#~ "sortedUsers = s.createFilter( group.getUsers(), \"order by this.name\" )."
+#~ "list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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=\"CATEGORY_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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/component_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/component_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/component_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,788 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-07 09:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr "ã³ã³ãã¼ãã³ãã®ãããã³ã°"
+
+#. 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>ã³ã³ãã¼ãã³ã</emphasis> ã®æ¦å¿µã¯ã Hibernate ãéãã¦æ§ã
ãªç¶æ³ã®"
+"ä¸ã§ç°ãªãç®çã®ããã«åå©ç¨ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr "ä¾åãªãã¸ã§ã¯ã"
+
+#. 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 ""
+"ã³ã³ãã¼ãã³ãã¯ãã¨ã³ãã£ãã£ã®åç
§ã§ã¯ãªãå¤åã¨ãã¦æ°¸ç¶åããããå
å«ãã"
+"ããªãã¸ã§ã¯ãã§ãããã³ã³ãã¼ãã³ããã¨ããè¨èã«ã¤ãã¦ã¯ãã³ã³ãã¸ã·ã§ã³ã¨"
+"ãããªãã¸ã§ã¯ãæåã®æ¦å¿µãåç
§ãã¦ãã ããï¼ã¢ã¼ããã¯ãã£ã¬ãã«ã®ã³ã³ãã¼"
+"ãã³ãã§ã¯ããã¾ããï¼ãä¾ãã°ã以ä¸ã® 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>Name</literal> ã¯æ°¸ç¶åå±æ§ã«"
+"対ã㦠getter ã setter ã¡ã½ãããå®ç¾©ãã¾ãããã¤ã³ã¿ã¼ãã§ã¼ã¹ãèå¥åãã"
+"ããã£ãå®ç¾©ããå¿
è¦ããªããã¨ã«æ³¨æãã¦ä¸ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr "ãããã³ã°å®ç¾©ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã"
+
+#. 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> ã«ã©ã ãæã¡ã¾ãã"
+
+#. 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 ã¯åãååãæã¤ãã¨ãã§ãã¾ãããäºã¤ã® Person ãªã"
+"ã¸ã§ã¯ãã¯ãå¤ãåãã ããã®å¥ã
ã® name ãªãã¸ã§ã¯ããå«ãã§ããã¨ãããã¨ã§"
+"ããã³ã³ãã¼ãã³ãã® null å¤ã®ã»ãã³ãã£ã¯ã¹ã¯ <emphasis>ã¢ãããã¯</"
+"emphasis> ã§ããã³ã³ãã¼ãã³ãã®ãªãã¸ã§ã¯ããåèªã¿è¾¼ã¿ããéã Hibernate ã¯"
+"ã³ã³ãã¼ãã³ãã®ãã¹ã¦ã®ã«ã©ã ã null ã§ãããªãã³ã³ãã¼ãã³ãèªä½ã null ã§"
+"ããã¨èãã¾ããããã¯å¤§æµã®å ´ååé¡ããã¾ããã"
+
+#. 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 ã®åã§ãæ§ãã¾ããï¼ã³ã¬ã¯ã·ã§ã³ã "
+"many-to-one é¢é£ãä»ã®ã³ã³ãã¼ãã³ããªã©ï¼ããã¹ããããã³ã³ãã¼ãã³ãã¯æ»
å¤"
+"ã«ä½¿ããªãã¨èããã¹ãã§ã¯ <emphasis>ããã¾ãã</emphasis> ã Hibernate ã¯é"
+"常ã«ããã®ç´°ãããªãã¸ã§ã¯ãã¢ãã«ããµãã¼ãããããã«æå³ããã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"<literal><component></literal> è¦ç´ ã¯ã親ã¨ã³ãã£ãã£ã¸æ»ãåç
§ã¨ãã¦ã"
+"ã³ã³ãã¼ãã³ãã®ã¯ã©ã¹ã®ããããã£ããããã³ã°ãã <literal><parent></"
+"literal> ãµãè¦ç´ ã許å¯ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr "å¾å±ãããªãã¸ã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections of components are supported (e.g. an array of type "
+"<literal>Name</literal>). Declare your component collection by replacing the "
+"<literal><element></literal> tag with a <literal><composite-"
+"element></literal> tag:"
+msgstr ""
+"Hibernate ã¯ã³ã³ãã¼ãã³ãã®ã³ã¬ã¯ã·ã§ã³ããµãã¼ããã¦ãã¾ãï¼ä¾ãã° "
+"<literal>Name</literal> åã®é
åï¼ã <literal><element></literal> ã¿ã°"
+"ã <literal><composite-element></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 ""
+"注è¨: ã³ã³ãã¸ããã¨ã¬ã¡ã³ãã® <literal>Set</literal> ãå®ç¾©ãããªãã "
+"<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><nested-composite-"
+"element></literal> tag. This case is a collection of components which "
+"themselves have components. You may want to consider if a one-to-many "
+"association is more appropriate. Remodel the composite element as an entity, "
+"but be aware that even though the Java model is the same, the relational "
+"model and persistence semantics are still slightly different."
+msgstr ""
+"ã³ã³ãã¸ããã¨ã¬ã¡ã³ãã¯ã³ã¬ã¯ã·ã§ã³ãå«ã¾ããã³ã³ãã¼ãã³ããå«ããã¨ããã"
+"ã¾ããã³ã³ãã¸ããã¨ã¬ã¡ã³ãèªèº«ãã³ã³ãã¼ãã³ããå«ãã§ããå ´å㯠"
+"<literal><nested-composite-element></literal> ã使ç¨ãã¦ãã ãããã³ã³"
+"ãã¼ãã³ãã®ã³ã¬ã¯ã·ã§ã³èªèº«ãã³ã³ãã¼ãã³ããæã¤ã¨ããã±ã¼ã¹ã¯ãã£ãã«ãã"
+"ã¾ããããã®æ®µéã¾ã§ã«ã one-to-many é¢é£ã®æ¹ãããé©åã§ãªããã¨çèãã¦ãã "
+"ãããã³ã³ãã¸ããã¨ã¬ã¡ã³ããã¨ã³ãã£ãã£ã¨ãã¦å度ã¢ããªã³ã°ãã¦ã¿ã¦ãã ã"
+"ããããããã㯠Java ã®ã¢ãã«ã¨ãã¦ã¯åãã§ããããªã¬ã¼ã·ã§ãã«ã¢ãã«ã¨æ°¸ç¶"
+"åä½ã¯ã¾ã è¥å¹²ç°ãªããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A composite element mapping does not support null-able properties if you are "
+"using a <literal><set></literal>. There is no separate primary key "
+"column in the composite element table. Hibernate uses each column's value to "
+"identify a record when deleting objects, which is not possible with null "
+"values. You have to either use only not-null properties in a composite-"
+"element or choose a <literal><list></literal>, <literal><map></"
+"literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr ""
+"ãã <literal><set></literal> ã使ç¨ããã®ã§ããã°ãã³ã³ãã¸ããã¨ã¬ã¡"
+"ã³ãã®ãããã³ã°ã null å¤ãå¯è½ãªå±æ§ããµãã¼ããã¦ããªããã¨ã«æ³¨æãã¦ãã "
+"ããã Hibernate ã¯ãªãã¸ã§ã¯ããåé¤ããã¨ããã¬ã³ã¼ããèå¥ããããã«ããã"
+"ãã®ã«ã©ã ã®å¤ã使ç¨ããå¿
è¦ãããããã null å¤ãæã¤ãã¨ãåºæ¥ã¾ãã ï¼ã³ã³"
+"ãã¸ããã¨ã¬ã¡ã³ããã¼ãã«ã«ã¯å¥ã®ä¸»ãã¼ã«ã©ã ã¯ããã¾ããï¼ã ã³ã³ãã¸ããã¨"
+"ã¬ã¡ã³ãã« not-null ã®å±æ§ã®ã¿ã使ç¨ããããã¾ã㯠<literal><list></"
+"literal>ã<literal><map></literal>ã <literal><bag></literal>ã"
+"<literal><idbag></literal> ãé¸æããå¿
è¦ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal><many-to-one></literal> element. This mapping allows you to "
+"map extra columns of a many-to-many association table to the composite "
+"element class. The following is a many-to-many association from "
+"<literal>Order</literal> to <literal>Item</literal>, where "
+"<literal>purchaseDate</literal>, <literal>price</literal> and "
+"<literal>quantity</literal> are properties of the association:"
+msgstr ""
+"ã³ã³ãã¸ããã¨ã¬ã¡ã³ãã®ç¹å¥ãªã±ã¼ã¹ã¨ãã¦ããã¹ãããã <literal><many-"
+"to-one></literal> å±æ§ãæã¤ã³ã³ãã¸ããã¨ã¬ã¡ã³ããããã¾ãããã®ãããã³"
+"ã°ã¯ãã³ã³ãã¸ããã¨ã¬ã¡ã³ãã¯ã©ã¹ãå¤å¯¾å¤é¢é£ãã¼ãã«ã®ä½åãªã«ã©ã ã¸ããã"
+"ã³ã°ãã¾ãã次ã®ä¾ã¯ <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 ""
+"ãã¡ãããåæ¹åé¢é£ã®ããã²ã¼ã·ã§ã³ã®ããã«å対å´ãã purchase ã¸ã®åç
§ãä½"
+"ããã¨ã¯åºæ¥ã¾ãããã³ã³ãã¼ãã³ãã¯å¤åã§ãããåç
§ãå
±æã§ããªããã¨ãè¦ã"
+"ã¦ããã¦ãã ãããä¸ã¤ã® <literal>Purchase</literal> ã¯ä¸ã¤ã® "
+"<literal>Order</literal> ã® set ã«åå¨ã§ãã¾ãããåæã« <literal>Item</"
+"literal> ããåç
§ãããã¨ã¯åºæ¥ã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr "3é
é¢é£ï¼ãããã¯4é
ãªã©ï¼ãå¯è½ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Composite elements can appear in queries using the same syntax as "
+"associations to other entities."
+msgstr ""
+"ã³ã³ãã¸ããã¨ã¬ã¡ã³ãã¯ä»ã®ã¨ã³ãã£ãã£ã¸ã®é¢é£ã¨ãã¦ãåãã·ã³ã¿ãã¯ã¹ã"
+"使ã£ã¦ããã¯ã¨ãªå
ã§ä½¿ç¨ã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr "Map ã®ã¤ã³ããã¯ã¹ã¨ãã¦ã®ã³ã³ãã¼ãã³ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><composite-map-key></literal> element allows you to map a "
+"component class as the key of a <literal>Map</literal>. Ensure that you "
+"override <literal>hashCode()</literal> and <literal>equals()</literal> "
+"correctly on the component class."
+msgstr ""
+"<literal><composite-map-key></literal> è¦ç´ 㯠<literal>Map</literal> ã®"
+"ãã¼ã¨ãã¦ã³ã³ãã¼ãã³ãã¯ã©ã¹ããããã³ã°ãã¾ããã³ã³ãã¼ãã³ãã¯ã©ã¹ä¸ã§ "
+"<literal>hashCode()</literal> 㨠<literal>equals()</literal> ãæ£ç¢ºã«ãªã¼ãã¼"
+"ã©ã¤ããã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr "è¤åèå¥åã¨ãã¦ã®ã³ã³ãã¼ãã³ã"
+
+#. 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 ""
+"ã³ã³ãã¼ãã³ããã¨ã³ãã£ãã£ã¯ã©ã¹ã®èå¥åã¨ãã¦ä½¿ããã¨ãã§ãã¾ããã³ã³ãã¼"
+"ãã³ãã¯ã©ã¹ã¯ä»¥ä¸ã®æ¡ä»¶ãæºããå¿
è¦ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr "<literal>java.io.Serializable</literal> ãå®è£
ããªããã°ãªãã¾ããã"
+
+#. 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> ãåå®è£
ããªããã°ãªãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注è¨"
+
+#. 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 ã«ããã¦ã2çªç®ã®æ¡ä»¶ã¯çµ¶å¯¾çãªæ¡ä»¶ã§ã¯ããã¾ãããããã§ããã¯ã"
+"æ¡ä»¶ãæºããã¦ãã ããã"
+
+#. 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> ã使ç¨ããã"
+"ã¨ã¯ã§ãã¾ããã代ããã«ã¢ããªã±ã¼ã·ã§ã³ãèå¥åãå²ãå½ã¦ãªãã¦ã¯ãªãã¾ã"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use the <literal><composite-id></literal> tag, with nested "
+"<literal><key-property></literal> elements, in place of the usual "
+"<literal><id></literal> declaration. For example, the "
+"<literal>OrderLine</literal> class has a primary key that depends upon the "
+"(composite) primary key of <literal>Order</literal>."
+msgstr ""
+"é常㮠<literal><id></literal> 宣è¨ã®ä»£ããã« <literal><composite-"
+"id></literal> ã¿ã°ã ï¼ãã¹ãããã <literal><key-property></"
+"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> ã¸ã®é¢é£ã¯æ¬¡ã®ããã«ãããã³ã°ããã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>column</literal> element is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>column</"
+"literal> element just gives more declaration options, which are mostly "
+"useful when utilizing <literal>hbm2ddl</literal>"
+msgstr ""
+"ï¼<literal><column></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>many-to-many</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> ã®ã³ã¬ã¯ã·ã§ã³ã¯"
+"次ã®ãã®ã使ç¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr ""
+"ï¼<literal><one-to-many></literal> å±æ§ã¯ãä¾ã«ãã£ã¦ã«ã©ã ã宣è¨ãã¾ã"
+"ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
+msgstr ""
+"<literal>OrderLine</literal> èªèº«ãã³ã¬ã¯ã·ã§ã³ãæã£ã¦ããå ´åãåæã«è¤åå¤"
+"é¨ãã¼ãæã£ã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr "åçã³ã³ãã¼ãã³ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr "<literal>Map</literal> åã®ããããã£ã®ãããã³ã°ãå¯è½ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The semantics of a <literal><dynamic-component></literal> mapping are "
+"identical to <literal><component></literal>. The advantage of this "
+"kind of mapping is the ability to determine the actual properties of the "
+"bean at deployment time just by editing the mapping document. Runtime "
+"manipulation of the mapping document is also possible, using a DOM parser. "
+"You can also access, and change, Hibernate's configuration-time metamodel "
+"via the <literal>Configuration</literal> object."
+msgstr ""
+"<literal><dynamic-component></literal> ãããã³ã°ã®ã»ãã³ãã£ã¯ã¹ã¯ "
+"<literal><component></literal> ã¨åä¸ã®ãã®ã§ãããã®ç¨®ã®ãããã³ã°ã®å©"
+"ç¹ã¯ããããã³ã°ããã¥ã¡ã³ãã®ç·¨éã«ãããé
ç½®æã« Bean ã®å±æ§ã決å®ã§ããç¹"
+"ã§ããã¾ãã DOM ãã¼ãµãå©ç¨ãã¦ããããã³ã°ããã¥ã¡ã³ãã®ã©ã³ã¿ã¤ã æä½ãå¯"
+"è½ã§ããããã«ã <literal>Configuration</literal> ãªãã¸ã§ã¯ãçµç±ã§ "
+"Hibernate ã®ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³æã®ã¡ã¿ã¢ãã«ã«ã¢ã¯ã»ã¹ï¼ã¾ãã¯å¤æ´ï¼ãå¯è½"
+"ã§ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <composite-element class=\"eg.Name\"> <!-- class attribute "
+#~ "required -->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </composite-element>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.Purchase\">\n"
+#~ " <property name=\"purchaseDate\"/>\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- "
+#~ "class attribute is optional -->\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/"
+#~ ">\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key "
+#~ "type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>]]>"
+#~ msgstr ""
+#~ "<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/configuration.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/configuration.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/configuration.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2905 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2009-12-21 17:12+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr "è¨å®"
+
+#. 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>etc/</literal> ãã©ã«ãã® <literal>hibernate.properties</literal> "
+"ã«ãã»ã¨ãã©ã®è¨å®è¦ç´ ã®é©åãªããã©ã«ãå¤ãè¨è¿°ããã¦ãã¾ãããã® "
+"<literal>hibernate.properties</literal> ãã¯ã©ã¹ãã¹ã«è¨å®ããè¨å®è¦ç´ ãã«ã¹"
+"ã¿ãã¤ãºããã ãã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr "ããã°ã©ã ä¸ã®è¨å®"
+
+#. 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 ""
+"<classname>org.hibernate.cfg.Configuration</classname> ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ã "
+"Java ã®å㨠SQL ãã¼ã¿ãã¼ã¹ã®ãããã³ã°æ
å ±ããã¹ã¦æã£ã¦ãã¾ãã "
+"<literal>Configuration</literal> ã¯ãï¼ä¸å¤ã®ï¼ "
+"<interfacename>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 ãããã³ã°ãã¡ã¤ã«ã«ãã£ã¦ç´æ¥åæåããã¾ããããããããã³ã°"
+"ãã¡ã¤ã«ãã¯ã©ã¹ãã¹ã«è¨å®ããã¦ããå ´åã次ã®ã¡ã½ããã使ã£ã¦ãã ããã "
+"<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 ã«ããããã³ã°ãã¡ã¤ã«ã è¦ã¤ãããã¦ãã ããï¼"
+
+#. 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 ã¯ãã¯ã©ã¹ãã¹ã«ãã以ä¸ã®ãããªååã®ãããã³ã°ãã¡ã¤ã«ãè¦ã¤ãã¾"
+"ãã <filename>/org/hibernate/auction/Item.hbm.xml</filename> ã <filename>/"
+"org/hibernate/auction/Bid.hbm.xml</filename> ããã®æ¹æ³ã ã¨ããã¼ãã³ã¼ãã£ã³"
+"ã°ããããã¡ã¤ã«åãæé¤ã§ãã¾ãã"
+
+#. 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> ã¯ãè¨å®ããããã£ãæ"
+"å®ãããã¨ãã§ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. Some "
+"alternative options include:"
+msgstr ""
+"Hibernate ã«è¨å®ããããã£ã渡ãæ¹æ³ã¯1ã¤ã§ã¯ããã¾ããããã¾ãã¾ãªãªãã·ã§ã³"
+"ãç¨æãã¦ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Pass an instance of <classname>java.util.Properties</classname> to "
+"<literal>Configuration.setProperties()</literal>."
+msgstr ""
+"<literal>java.util.Properties</literal> ã¤ã³ã¹ã¿ã³ã¹ã "
+"<literal>Configuration.setProperties()</literal> ã«æ¸¡ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Place a file named <filename>hibernate.properties</filename> in a root "
+"directory of the classpath."
+msgstr ""
+"<literal>hibernate.properties</literal> ãã¯ã©ã¹ãã¹ã®ã«ã¼ããã£ã¬ã¯ããªã«ç½®"
+"ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Set <literal>System</literal> properties using <literal>java -"
+"Dproperty=value</literal>."
+msgstr ""
+"<literal>System</literal> ããããã£ã <literal>java -Dproperty=value</"
+"literal> ã使ãããã«è¨å®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Include <literal><property></literal> elements in <literal>hibernate."
+"cfg.xml</literal> (this is discussed later)."
+msgstr ""
+"<literal><property></literal> è¦ç´ ã <filename>hibernate.cfg.xml</"
+"filename> ï¼å¾è¿°ï¼ã«è¨å®ãã¾ãã"
+
+#. Tag: para
+#, 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
+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> ã¯ãèµ·åæã«ã ããããª"
+"ãã¸ã§ã¯ãã§ãããä¸åº¦ <literal>SessionFactory</literal> ãçæããå¾ã¯ãç ´æ£"
+"ããããã¨ãæå³ãã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr "SessionFactory ãåå¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When all mappings have been parsed by the <classname>org.hibernate.cfg."
+"Configuration</classname>, the application must obtain a factory for "
+"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
+"is intended to be shared by all application threads:"
+msgstr ""
+"<classname>org.hibernate.cfg.Configuration</classname> ããã¹ã¦ã®ãããã³ã°æ
"
+"å ±ã解æããããã¢ããªã±ã¼ã·ã§ã³ã¯ã <classname>org.hibernate.Session</"
+"classname> ã¤ã³ã¹ã¿ã³ã¹ã®ããã«ãã¡ã¯ããªãåå¾ããªããã°ãªãã¾ããããã® "
+"SessionFactory ã¯ã Hibernate ã使ç¨ãããã¹ã¦ã®ã¹ã¬ããã§å
±æãããã¹ãã§ã:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does allow your application to instantiate more than one "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
+"if you are using more than one database."
+msgstr ""
+"Hibernate ã¯ãã¢ããªã±ã¼ã·ã§ã³ã <classname>org.hibernate.SessionFactory</"
+"classname> ãè¤æ°çæãããã¨ãå¯è½ã«ãã¾ããããã¯ãè¤æ°ã®ãã¼ã¿ãã¼ã¹ã使ç¨"
+"ããå ´åã«ä¾¿å©ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr "JDBC ã³ãã¯ã·ã§ã³"
+
+#. 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> ã"
+"çæãã SessionFactory 㧠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 ""
+"ããã ãã§ããã¼ãªã³ã°ãã 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 ""
+"ãã®ããã«ã¯ã JDBC ã³ãã¯ã·ã§ã³ã®ããããã£ã Hibernate ã«è¨å®ããå¿
è¦ããã"
+"ã¾ãããã¹ã¦ã® 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> ã使ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr "Hibernate JDBC ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr "ããããã£å"
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr "æå³"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "<property>hibernate.connection.driver_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "JDBC ã®ãã©ã¤ãã¼ã¯ã©ã¹"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr "<property>hibernate.connection.url</property>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr "JDBC ã®ãã©ã¤ãã¼ã¯ã©ã¹"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr "<property>hibernate.connection.username</property>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "<emphasis>ãã¼ã¿ãã¼ã¹ã¦ã¼ã¶</emphasis> (ãªãã·ã§ã³)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr "<property>hibernate.connection.password</property>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr "<emphasis>ãã¼ã¿ãã¼ã¹ã¦ã¼ã¶ã®ãã¹ã¯ã¼ã</emphasis> (ãªãã·ã§ã³)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "<property>hibernate.connection.pool_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "<emphasis>ãã¼ã«ããã³ãã¯ã·ã§ã³ã®æ大æ°</emphasis>"
+
+#. 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 ã"
+"使ãã¾ãã"
+
+#. 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 ã¯ãªã¼ãã³ã½ã¼ã¹ JDBC ã³ãã¯ã·ã§ã³ãã¼ã«ã§ã Hibernate ã® <literal>lib</"
+"literal> ãã£ã¬ã¯ããªã«ããã¾ããããã <literal>hibernate.c3p0.*</literal> "
+"ããããã£ãã»ããããã°ã Hibernate ã¯ã <literal>C3P0ConnectionProvider</"
+"literal> ã使ãã¾ãããã Proxool ã使ãããå ´åã¯ã <literal>hibernate."
+"properties</literal> ããã±ã¼ã¸ãåç
§ãããã Hibernate ã® Web ãµã¤ãã§ããå¤"
+"ãã®æ
å ±ãåå¾ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+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 ""
+"ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ä¸ã§ä½¿ãå ´åã¯ã Hibernate ãè¨å®ããã¢ããªã±ã¼ã·ã§ã³"
+"ãµã¼ãã¼ããã³ãã¯ã·ã§ã³ãåå¾ããããã«ãã¦ãã ããã <interfacename>javax."
+"sql.Datasource</interfacename> ã JNDI ã«ç»é²ãã¾ããããã¦ããããã£ã以ä¸ã®"
+"ããã«è¨å®ãã¦ãã ãã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr "Hibernate ãã¼ã¿ã½ã¼ã¹ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "<property>hibernate.connection.datasource</property>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "<emphasis>ãã¼ã¿ãã¼ã¹ã¦ã¼ã¶</emphasis> (ãªãã·ã§ã³)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "<property>hibernate.jndi.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr "<emphasis>JNDI ãããã¤ãã® URL</emphasis> (ãªãã·ã§ã³)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "<property>hibernate.jndi.class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
+"<emphasis>JNDI ã®ã¯ã©ã¹ <literal>InitialContextFactory</literal></emphasis> "
+"(ãªãã·ã§ã³)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr "<emphasis>ãã¼ã¿ãã¼ã¹ã¦ã¼ã¶</emphasis> (ãªãã·ã§ã³)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr "<emphasis>ãã¼ã¿ãã¼ã¹ã¦ã¼ã¶ã®ãã¹ã¯ã¼ã</emphasis> (ãªãã·ã§ã³)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example <filename>hibernate.properties</filename> file for an "
+"application server provided JNDI datasource:"
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ããæä¾ããã JNDI ãã¼ã¿ã½ã¼ã¹ã使ã "
+"<filename>hibernate.properties</filename> ãã¡ã¤ã«ã®ä¾ã示ãã¾ãï¼"
+
+#. 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 ã³ãã¯ã·ã§ã³ã¯ãã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã®"
+"ã³ã³ãã管çãã©ã³ã¶ã¯ã·ã§ã³ã«èªåçã«åå ãã¾ãã"
+
+#. 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 ""
+"ä»»æã®ã³ãã¯ã·ã§ã³ããããã£ã¯ã追å ããã \"<literal>hibernate.connnection</"
+"literal>\" ããããã£åã«ãã£ã¦ä¸ãããã¾ããä¾ãã°ã <property>charSet</"
+"property> ãè¨å®ãããå ´åã¯ã <property>hibernate.connection.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 ""
+"JDBC ã³ãã¯ã·ã§ã³ãåå¾ããæ¦ç¥ãæã¤ç¬èªã®ãã©ã°ã¤ã³ãå®ç¾©ããå ´åã¯ã "
+"<interfacename>org.hibernate.connection.ConnectionProvider</interfacename> ã¤"
+"ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ãã¦ãã ãããããã¦ãå®è£
ã¯ã©ã¹ã <property>hibernate."
+"connection.provider_class</property> ã«è¨å®ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr "ãªãã·ã§ã³è¨å®ããããã£"
+
+#. 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 ã®æåãå¶å¾¡ãããã®ã§ãããããã®"
+"ããããã£ã¯ãã¹ã¦å¦¥å½ãªããã©ã«ãå¤ããããä»»æã§è¨å®ãã¾ãã"
+
+#. 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."
+msgstr ""
+"<emphasis>注æï¼ãããã®ããããã£ã¯ãã·ã¹ãã ã¬ãã«ãã®ã¿ã§ãã</emphasis> "
+"ã·ã¹ãã ã¬ãã«ããããã£ã¯ <literal>java -Dproperty=value</literal> ãããã"
+"㯠<literal>hibernate.properties</literal> ã§ã®ã¿è¨å®å¯è½ã§ãããã以å¤ã®è¨å®"
+"æ¹æ³ã¯ <emphasis>ããã¾ãã</emphasis> ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr "Hibernate è¨å®ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr "<property>hibernate.dialect</property>"
+
+#. Tag: entry
+#, 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 ã®ã¯ã©ã¹å <classname>org.hibernate.dialect.Dialect</classname> ã"
+"å
¥ãã¾ããããã¯ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ãã¨ã«æé©åããã SQL ãçæãã¾"
+"ãã"
+
+#. 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>"
+
+#. 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 ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr "<property>hibernate.show_sql</property>"
+
+#. Tag: entry
+#, 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> ã« <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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr "<property>hibernate.format_sql</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr "ãã°ã¨ã³ã³ã½ã¼ã«ã® SQL ãæ´å½¢ãã¦è¡¨ç¤ºãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr "<property>hibernate.default_schema</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr "çæããã SQL æã®ãã¼ãã«ã«è¨å®ããã¹ãã¼ã/ãã¼ãã«ã¹ãã¼ã¹ã§ãã"
+
+#. 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "<property>hibernate.default_catalog</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr "çæããã SQL æã®ãã¼ãã«ã«è¨å®ããã«ã¿ãã°ã§ãã"
+
+#. 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "<property>hibernate.session_factory_name</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.SessionFactory</interfacename> will be "
+"automatically bound to this name in JNDI after it has been created."
+msgstr ""
+"<interfacename>org.hibernate.SessionFactory</interfacename> ã¯çæå¾ããã®å"
+"å㧠JNDI ã«èªåçã«ç»é²ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">ä¾</emphasis><literal>jndi/composite/name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "<property>hibernate.max_fetch_depth</property>"
+
+#. Tag: entry
+#, 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 ""
+"å¤é¨çµåãã§ããã®æ大深度ãè¨å®ãã¾ããçµåããé¢é£ã¯å¯¾ä¸é¢é£ã®ã¿ï¼ä¸å¯¾ä¸ã"
+"å¤å¯¾ä¸ï¼ã§ãã <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> ã®éã§ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "<property>hibernate.default_batch_fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr "é¢é£ãã§ããã®ããã©ã«ã Hibernate ããããµã¤ãºãæå®ãã¾ãã"
+
+#. 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> ã§ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "<property>hibernate.default_entity_mode</property>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>"
+msgstr ""
+"<literal>SessionFactory</literal> ããã»ãã·ã§ã³ããªã¼ãã³ããã¨ãã«ä½¿ç¨ãã"
+"ã¨ã³ãã£ãã£ã®ããã©ã«ãã¢ã¼ããè¨å®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+msgstr ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr "<property>hibernate.order_updates</property>"
+
+#. Tag: entry
+#, 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 ""
+"é
ç®ãæ´æ°ãããã¨ãã«ãå¥ã® SQL ã§ä¸»ãã¼ãæ´æ°ãããã¨ãå¼·å¶ãã¾ãããã®å ´"
+"åãåæå®è¡å¯è½ãªã·ã¹ãã ã§ã¯ãã¾ãã«ãããããã¯ãçºçããå¯è½æ§ãããã¾"
+"ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "<property>hibernate.generate_statistics</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+"æå¹ã®å ´åã Hibernate ã¯ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ã«æå¹ãªçµ±è¨æ
å ±ãåéãã¾"
+"ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "<property>hibernate.use_identifier_rollback</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
+msgstr ""
+"æå¹ã®å ´åããªãã¸ã§ã¯ããåé¤ãããã¨ãã«èå¥åããããã£ããªã»ããããã"
+"ãã©ã«ãå¤ã«ãããã®ãçæãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "<property>hibernate.use_sql_comments</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If turned on, Hibernate will generate comments inside the SQL, for easier "
+"debugging, defaults to <literal>false</literal>."
+msgstr ""
+"æå¹ã®å ´åã SQL å
ã«ã³ã¡ã³ããçæãã¾ããããã¯ãããã¯ã容æã«ãã¾ããã"
+"ãã©ã«ãã®å¤ã¯ <literal>false</literal> ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr "Hibernate JDBC ã¨ã³ãã¯ã·ã§ã³ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "<property>hibernate.jdbc.fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"å¤ã0ã§ãªãå ´åã JDBC ãã§ãããµã¤ãºã決å®ãã¾ã ( <literal>Statement."
+"setFetchSize()</literal> ãå¼ã³ã¾ã)ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "<property>hibernate.jdbc.batch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr "å¤ã0ã§ãªãå ´åã Hibernate ã JDBC2 ãããæ´æ°ã使ç¨ãã¾ãã"
+
+#. 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> ã®éã§ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "<property>hibernate.jdbc.batch_versioned_data</property>"
+
+#. Tag: entry
+#, 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>executeBatch()</literal> ã«ãã£ã¦æ£ç¢ºãªè¡æ°ãè¿"
+"ãå ´åããã®ããããã£ã <literal>true</literal> ã«ãã¦ãã ãã ï¼é常ã¯ãã®"
+"ãªãã·ã§ã³ã ON ããã®ãå®å
¨ã§ãï¼ã Hibernate ã¯ãèªåãã¼ã¸ã§ã³ãã¼ã¿ã®ãã"
+"ããã DML ã使ãã¾ããããã©ã«ãã®å¤ã¯ <literal>false</literal> ã§ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "<property>hibernate.jdbc.factory_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Most applications will not need this configuration property."
+msgstr ""
+"ã«ã¹ã¿ã <interfacename>org.hibernate.jdbc.Batcher</interfacename> ãé¸ã³ã¾"
+"ããã»ã¨ãã©ã®ã¢ããªã±ã¼ã·ã§ã³ã«ããã®è¨å®ããããã£ã¯å¿
è¦ããã¾ããã"
+
+#. 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.BatcherFactory</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
+"only necessary when using user-supplied JDBC connections. Hibernate uses "
+"connection metadata otherwise."
+msgstr ""
+"Hibernate ã«ãã JDBC2 ã®ã¹ã¯ãã¼ã«å¯è½ãªãªã¶ã«ãã»ããã®ä½¿ç¨ãæå¹ã«ãã¾ãã"
+"ãã®ããããã£ã¯ãã¦ã¼ã¶ã¼ã«ãã£ã¦æä¾ããã JDBC ã³ãã¯ã·ã§ã³ã使ç¨ãã¦ãã"
+"å ´åã®ã¿å¿
è¦ã§ãããã§ãªããã° Hibernate ã¯ã³ãã¯ã·ã§ã³ã¡ã¿ãã¼ã¿ã使ç¨ãã¾"
+"ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "<property>hibernate.jdbc.use_streams_for_binary</property>"
+
+#. Tag: entry
+#, 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> ã®"
+"æ¸ãè¾¼ã¿/èªã¿è¾¼ã¿ã¹ããªã¼ã ã使ãã¾ã (ã·ã¹ãã ã¬ãã«ã®ããããã£)ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "<property>hibernate.jdbc.use_get_generated_keys</property>"
+
+#. Tag: entry
+#, 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> ã®ä½¿ç¨ãæå¹ã«ãã¾"
+"ãããã㯠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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "<property>hibernate.connection.provider_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> which provides JDBC connections to "
+"Hibernate."
+msgstr ""
+"JDBC ã³ãã¯ã·ã§ã³ã Hibernate ã«æä¾ããç¬èªã® <literal>ConnectionProvider</"
+"literal> ã®ã¯ã©ã¹åã"
+
+#. 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "<property>hibernate.connection.isolation</property>"
+
+#. Tag: entry
+#, 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 ãã©ã³ã¶ã¯ã·ã§ã³åé¢ã¬ãã«ãè¨å®ãã¾ãã妥å½ãªå¤ã調ã¹ãããã«ã¯ "
+"<interfacename>java.sql.Connection</interfacename> ããã§ãã¯ãã¦ãã ãããã"
+"ãã使ç¨ãããã¼ã¿ãã¼ã¹ãããã¹ã¦ã®åé¢ã¬ãã«ããµãã¼ããã¦ããã¨ã¯éãã¾ã"
+"ãã"
+
+#. 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "<property>hibernate.connection.autocommit</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr ""
+"ãã¼ã«ããã¦ãã JDBC ã³ãã¯ã·ã§ã³ã®èªåã³ããããæå¹ã«ããï¼éæ¨å¥¨ï¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "<property>hibernate.connection.release_mode</property>"
+
+#. Tag: entry
+#, 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 ã³ãã¯ã·ã§ã³ããªãªã¼ã¹ããããæå®ãã¾ããããã©ã«ãã§"
+"ã¯ã»ãã·ã§ã³ãæ示çã«ã¯ãã¼ãºã¾ãã¯åæããã¦ãã³ãã¯ã·ã§ã³ã¯ä¿æãã¾ããã¢"
+"ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã® JTA ãã¼ã¿ã½ã¼ã¹ã®å ´åããã¹ã¦ã® JDBC ã³ã¼ã«ã®å¾ãå¼·"
+"å¶çã«ã³ãã¯ã·ã§ã³ããªãªã¼ã¹ããããã« <literal>after_statement</literal> ã"
+"使ã£ã¦ãã ãããé 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>"
+
+#. 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> ã®å®è£
ã«ãã£ã¦ãã³ãã¯ã·ã§ã³ã®"
+"ãªãªã¼ã¹ã¢ã¼ããè¨å®ãã¾ãã <xref linkend=\"architecture-current-session\"/"
+"> ãåç
§ãã¦ãã ããã"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+msgstr ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the JDBC property <emphasis><propertyName></emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
+"JDBC ãããã㣠<emphasis><propertyName></emphasis> ã "
+"<literal>DriverManager.getConnection()</literal> ã«æ¸¡ãã¾ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr ""
+"<literal>hibernate.jndi.</literal><emphasis><property></emphasis> ã"
+"使ã£ã¦ãã·ã¹ãã ããããã£ã¨ãã¦"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the property <emphasis><propertyName></emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
+"ãããã㣠<emphasis><propertyName></emphasis> ã JNDI "
+"<literal>InitialContextFactory</literal> ã«æ¸¡ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr "Hibernate ãã£ãã·ã¥ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "<literal>hibernate.cache.provider_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr "ã«ã¹ã¿ã <literal>CacheProvider</literal> ã®ã¯ã©ã¹åã§ãã"
+
+#. 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "<literal>hibernate.cache.use_minimal_puts</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Optimizes second-level cache operation to minimize writes, at the cost of "
+"more frequent reads. This setting is most useful for clustered caches and, "
+"in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr ""
+"æ¸ãè¾¼ã¿ãæå°éã«ããããã«ãäºæ¬¡ãã£ãã·ã¥ã®æä½ãæé©åãã¾ãããã®ä»£ãã"
+"ã«ãèªã¿è¾¼ã¿ãããé »ç¹ã«çºçããããã«ãªãã¾ãããã®ã»ããã£ã³ã°ã¯ã¯ã©ã¹ã¿"
+"ãã£ãã·ã¥ã§å½¹ã«ç«ã¡ã¾ãã Hibernate3 ã§ã¯ã¯ã©ã¹ã¿ãã£ãã·ã¥å®è£
ç¨ã«ããã©ã«"
+"ãã§ã¯æå¹ã«ãªã£ã¦ãã¾ãã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "<literal>hibernate.cache.use_query_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Enables the query cache. Individual queries still have to be set cachable."
+msgstr ""
+"ç¹å®ã®ã¯ã¨ãªããã£ãã·ã¥å¯è½ãªå ´åã«ãã¯ã¨ãªãã£ãã·ã¥ãæå¹ã«ãã¾ãã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "<literal>hibernate.cache.use_second_level_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Can be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal><cache></literal> "
+"mapping."
+msgstr ""
+"äºæ¬¡ãã£ãã·ã¥ãå®å
¨ã«ç¡å¹ã«ããå ´åã«ä½¿ãã¾ããããã©ã«ãã§ã¯æå¹ã§ãã¯ã©ã¹"
+"ã® <literal><cache></literal> ãããã³ã°ã§å¶å¾¡ãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "<literal>hibernate.cache.query_cache_factory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <literal>QueryCache</literal> interface, defaults "
+"to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+"ã«ã¹ã¿ã <literal>QueryCache</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ã¯ã©ã¹åãæå®ãã¾"
+"ããããã©ã«ãã§ã¯ <literal>StandardQueryCache</literal> ã«ãªãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "<literal>hibernate.cache.region_prefix</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr "äºæ¬¡ãã£ãã·ã¥ã®é ååã®æ¥é è¾ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+msgstr "<emphasis role=\"strong\">ä¾</emphasis><literal>prefix</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "<literal>hibernate.cache.use_structured_entries</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
+msgstr ""
+"äºæ¬¡ãã£ãã·ã¥ã«æ ¼ç´ãããã¼ã¿ãã人ãç解ãããããã©ã¼ãããã«ãã¾ãã "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr "Hibernate ãã©ã³ã¶ã¯ã·ã§ã³ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "<literal>hibernate.transaction.factory_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Hibernate <literal>Transaction</literal> API ã¨ä¸ç·ã«ä½¿ããã "
+"<literal>TransactionFactory</literal> ã®ã¯ã©ã¹åã§ãã ï¼ããã©ã«ãã§ã¯ "
+"<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>>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "<literal>jta.UserTransaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
+"JTA <literal>UserTransaction</literal> from the application server."
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ãã JTA <literal>UserTransaction</literal> ãåå¾ã"
+"ãããã« <literal>JTATransactionFactory</literal> ã«ä½¿ããã JNDI åã§ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr "<literal>hibernate.transaction. manager_lookup_class</literal>"
+
+#. Tag: entry
+#, 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> ã®ã¯ã©ã¹åã§ãã JTA ç°å¢ã«ãã"
+"ã¦ã JVM ã¬ãã«ã®ãã£ãã·ã¥ãæå¹ã«ããã¨ããã 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>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr "<literal>hibernate.transaction. flush_before_completion</literal>"
+
+#. Tag: entry
+#, 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 ""
+"æå¹ã®å ´åããã©ã³ã¶ã¯ã·ã§ã³ã® completion ãã§ã¼ãºã®åã«èªåçã«ã»ãã·ã§ã³ã"
+"ãã©ãã·ã¥ãã¾ããå
èµã®èªåã»ãã·ã§ã³ã³ã³ããã¹ã管çã«é©ãã¦ãã¾ãã <xref "
+"linkend=\"architecture-current-session\"/> ãåç
§ãã¦ãã ããã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr "<literal>hibernate.transaction. auto_close_session</literal>"
+
+#. Tag: entry
+#, 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 ""
+"æå¹ã®å ´åããã©ã³ã¶ã¯ã·ã§ã³ã® completion ãã§ã¼ãºã®å¾ã«ã»ãã·ã§ã³ãèªåçã«"
+"ã¯ãã¼ãºãã¾ããå
èµã®èªåã»ãã·ã§ã³ã³ã³ããã¹ã管çã«é©ãã¦ãã¾ãã <xref "
+"linkend=\"architecture-current-session\"/> ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr "ãã®ä»ã®ããããã£"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr "<literal>hibernate. current_session_context_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Supply a custom strategy for the scoping of the \"current\" "
+"<literal>Session</literal>. See <xref linkend=\"architecture-current-session"
+"\" /> for more information about the built-in strategies."
+msgstr ""
+"ãç¾å¨ã®ã <literal>Session</literal> ã®ããã®ï¼ã«ã¹ã¿ã ï¼æ¦ç¥ãæä¾ãã¾ãã"
+"ãã«ãã¤ã³ã¹ãã©ãã¸ã¼ã«é¢ãããã®ä»ã®æ
å ±ã«ã¤ãã¦ã¯ <xref linkend="
+"\"architecture-current-session\"/> ãåç
§ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ä¾</emphasis><literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "<literal>hibernate.query.factory_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr "HQL ãã¼ãµã¼ã®å®è£
ãé¸æãã¾ãã"
+
+#. 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> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "<literal>hibernate.query.substitutions</literal>"
+
+#. Tag: entry
+#, 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 ""
+"HQL 㨠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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "<literal>hibernate.hbm2ddl.auto</literal>"
+
+#. Tag: entry
+#, 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> ãçæããã¨ãã«ãèªåçã«ã¹ãã¼ã DDL ãæ"
+"å¹ã«ããã¼ã¿ãã¼ã¹ã«åºåãã¾ãã <literal>create-drop</literal> ã®å ´åã "
+"<literal>SessionFactory</literal> ãã¯ãã¼ãºããã¨ãã«ããã¼ã¿ãã¼ã¹ã¹ãã¼ã"
+"ããããããã¾ãã"
+
+#. 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>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr "<literal>hibernate.cglib. use_reflection_optimizer</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Enables the use of CGLIB instead of runtime reflection (System-level "
+"property). Reflection can sometimes be useful when troubleshooting. "
+"Hibernate always requires CGLIB even if you turn off the optimizer. You "
+"cannot set this property in <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+"å®è¡æãªãã¬ã¯ã·ã§ã³ã®ä»£ããã® CGLIB ã®ä½¿ç¨ãæå¹ã«ãã¾ã ï¼ã·ã¹ãã ã¬ãã«ã®"
+"ããããã£ï¼ ããªãã¬ã¯ã·ã§ã³ã¯ãã©ãã«ã·ã¥ã¼ãã£ã³ã°ã®ã¨ãã«å½¹ç«ã¤ãã¨ããã"
+"ã¾ãããªããã£ãã¤ã¶ããªãã«ãã¦ããã¨ãã§ããã Hibernate ã«ã¯å¿
ã CGLIB ã"
+"å¿
è¦ãªãã¨ã«æ³¨æãã¦ãã ããããã®ããããã£ã¯ <literal>hibernate.cfg.xml</"
+"literal> ã§è¨å®ã§ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "SQL Dialects"
+msgstr "SQL æ¹è¨ï¼Dialectï¼"
+
+#. 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 ã¯ä¸è¿°ããããããã£ã®ããã¤"
+"ãã«ã¤ãã¦ãããé©åãªããã©ã«ãå¤ã使ãã¾ããããããã°ãããããæä½æ¥ã§è¨"
+"å®ããæéãçãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr "RDBMS"
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr "DB2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr "DB2 AS/400"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr "DB2 OS390"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr "MySQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr "MySQL with InnoDB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr "MySQL with MyISAM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr "Oracle ï¼ãããã®ãã¼ã¸ã§ã³ã§ãï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.OracleDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 9i"
+msgstr "Oracle 9i"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 10g"
+msgstr "Oracle 10g"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr "Sybase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr "Sybase Anywhere"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr "Microsoft SQL Server"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr "SAP DB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr "Informix"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InformixDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr "HypersonicSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr "Ingres"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.IngresDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr "Progress"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr "Mckoi SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr "Interbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr "Pointbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr "FrontBase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr "Firebird"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr "å¤é¨çµåãã§ãã"
+
+#. 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>outer join fetching</emphasis> ã¯ããã¼ã¿ãã¼ã¹ã® SQL "
+"çºè¡åæ°ãç¯ç´ãããã©ã¼ãã³ã¹ãè¯ããã¾ãï¼ãã¼ã¿ãã¼ã¹å
ã§ããå¤ãã®å¦çã³"
+"ã¹ããçºçãã¾ãï¼ãå¤é¨çµåãã§ããã¯ãå¤å¯¾ä¸ãä¸å¯¾å¤ãå¤å¯¾å¤ãä¸å¯¾ä¸ã®ãªã"
+"ã¸ã§ã¯ãé¢é£ã§ã°ã«ã¼ããªãã¸ã§ã¯ãã1ã¤ã® SQL 㧠<literal>SELECT</literal> ã"
+"ã¾ãã"
+
+#. 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> ããã以ä¸ã®å¤ãè¨å®ããã¨ãå¤é¨çµå"
+"ãã§ãããæå¹ã«ãªããä¸å¯¾ä¸ã¨å¤å¯¾ä¸é¢é£ã <literal>fetch=\"join\"</literal> "
+"ã¨ãã¦ãããã³ã°ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr ""
+"ããã«æ
å ±ãè¦ãããã° <xref linkend=\"performance-fetching\"/> ãåç
§ãã¦ã"
+"ã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr "ãã¤ããªã¹ããªã¼ã "
+
+#. 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>byte</literal> é
åã®"
+"ãµã¤ãºãå¶éãã¾ãã <literal>binary</literal> ã <literal>serializable</"
+"literal> åã®å¤§ããªã¤ã³ã¹ã¿ã³ã¹ã使ããããã°ã <literal>hibernate.jdbc."
+"use_streams_for_binary</literal> ãæå¹ã«ãã¦ãã ããã ãã ã <emphasis>ãã"
+"ã¯ã·ã¹ãã ã¬ãã«ã®è¨å®ã ãã§ã</emphasis> ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr "ã次ãã£ãã·ã¥ã¨ã¯ã¨ãªãã£ãã·ã¥"
+
+#. 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\"/> ã«ããå¤ãã®è©³ç´°ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr "ã¯ã¨ãªè¨èªã®ç½®ãæã"
+
+#. 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 ã¯ã¨ãªãã¼ã¯ã³ãå®ç¾©ã§ãã¾ããä¾ï¼"
+
+#. 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 ã«ããã¦æ´æ°ãªãã©ã«ã«ç¿»è¨³ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr ""
+"ãã㯠SQL ã® <literal>LOWER</literal> é¢æ°ã®ååã®ä»ãæ¿ããå¯è½ã«ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr "Hibernate çµ±è¨"
+
+#. 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 ã¯ä¾¿å©ãªçµ±è¨æ
å ±ãåºåãã¾ãã JMX ãçµç±ã"
+"ã¦çµ±è¨æ
å ±ãåºåãããã¨ãå¯è½ã§ãã Javadoc ã® <literal>org.hibernate."
+"stats</literal> ããã±ã¼ã¸å
ã®ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«ã¯ããå¤ãã®æ
å ±ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr "ãã®ã³ã°"
+
+#. 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 ""
+
+#. 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 ã®ãã°"
+"ã¯èªã¿ããããã§ããéã詳細ã«ãªãããã«åªåããã¦ãã¾ããããã¯å¿
é ã®ãã©ã"
+"ã«ã·ã¥ã¼ãã£ã³ã°ããã¤ã¹ã§ãã以ä¸ã«éè¦ãªãã°ã®ã«ãã´ãªã示ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr "Hibernate ãã°ã«ãã´ãª"
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr "ã«ãã´ãª"
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr "æ©è½"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "<literal>org.hibernate.SQL</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr "å®è¡ãããã¹ã¦ã® SQLï¼DDLï¼ã¹ãã¼ãã¡ã³ãããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "<literal>org.hibernate.type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr "ãã¹ã¦ã® JDBC ãã©ã¡ã¼ã¿ããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr "<literal>org.hibernate.tool. hbm2ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr "å®è¡ãããã¹ã¦ã® SQLï¼DDLï¼ã¹ãã¼ãã¡ã³ãããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "<literal>org.hibernate.pretty</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log the state of all entities (max 20 entities) associated with the session "
+"at flush time"
+msgstr ""
+"session ã«é¢é£ãããã¹ã¦ã®ã¨ã³ãã£ãã£ï¼æ大ï¼ï¼ï¼ã®ãã©ãã·ã¥æéããã®ã³ã°"
+"ãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "<literal>org.hibernate.cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr "ãã¹ã¦ã®ã次ãã£ãã·ã¥ã®åä½ããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr "<literal>org.hibernate. transaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr "ãã©ã³ã¶ã¯ã·ã§ã³ã«é¢é£ããåä½ããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "<literal>org.hibernate.jdbc</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr "JDBC ãªã½ã¼ã¹åå¾ããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr "<literal>org.hibernate.hql. ast.AST</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr "HQL 㨠SQL ã® AST ã®ã¯ã¨ãªãã¼ã¹ããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "<literal>org.hibernate.secure</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr "ãã¹ã¦ã® JAAS åæããã®ã³ã°ãã¾ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "SessionFactory ã® JNDI ã¸ã®ç»é²"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log everything. This is a lot of information but it is useful for "
+"troubleshooting"
+msgstr ""
+"ãã¹ã¦ããã®ã³ã°ãã¾ããï¼æ
å ±ã大éã«ãªãã¾ããããã©ãã«ã·ã¥ã¼ãã£ã³ã°ã«ã¯"
+"便å©ã§ãï¼"
+
+#. 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> ããããã£ã"
+"æå¹ã«ããæ¹æ³ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr "<literal>NamingStrategy</literal> ãé¸æ"
+
+#. 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>net.sf.hibernate.cfg.NamingStrategy</literal> ã使"
+"ãã¨ãã¼ã¿ãã¼ã¹ãªãã¸ã§ã¯ãã¨ã¹ãã¼ãè¦ç´ ã®ããã®ãå½åæ¨æºããæå®ã§ãã¾"
+"ãã"
+
+#. 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 ã使ãããã©ã«ãã®æ¦ç¥ã¯ã"
+"ãªãæå°éã«è¿ããã®ã§ãã"
+
+#. 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> ãå¼ã¶ãã¨ã§ä»¥ä¸ã®ããã«ç°ãªãæ¦ç¥ãæå®ãããã¨ãã§ãã¾ãï¼"
+
+#. 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> ã¯çµã¿è¾¼ã¿ã®æ¦ç¥"
+"ã§ããããã¯ããã¤ãã®ã¢ããªã±ã¼ã·ã§ã³ã«ã¨ã£ã¦æç¨ãªéå§ç¹ã¨ãªãããããã¾ã"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr "XML è¨å®ãã¡ã¤ã«"
+
+#. 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 ""
+"ãã1ã¤ã®æ¹æ³ã¯ <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> ã® root ã«é
ç½®ãã¦"
+"ãã ããããããä¾ã§ãï¼"
+
+#. 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> ã® ã©ã¡ããã使ãããã¨ãè¦ãã¦ããã¦ãã ããã2ã¤ã¯åããã®ã§ãéã"
+"ã¨ããã¨ããã° XML æ§æã使ããã¨ã®å©ç¹ã ãã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr "XML è¨å®ã使ããã¨ã§ã Hibernate ã¯ä»¥ä¸ã®ããã«ã·ã³ãã«ã«ãªãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr "éã XML è¨å®ãã¡ã¤ã«ã使ããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr "J2EE ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã¨ã®çµ±å"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr "Hibernate 㯠J2EE æ§é ã¨çµ±åãããã¤ã³ãããµãã¼ããã¦ãã¾ã:"
+
+#. 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>ã³ã³ãã管çãã¼ã¿ã½ã¼ã¹</emphasis>ï¼ Hibernate 㯠JNDI ãæä¾ãã"
+"ã³ã³ããã管çãã JDBC ã³ãã¯ã·ã§ã³ã使ç¨ã§ãã¾ããé常ã JTA æºæ ã® "
+"<literal>TransactionManager</literal> 㨠<literal>ResourceManager</literal> "
+"ããã©ã³ã¶ã¯ã·ã§ã³ç®¡ç (CMT)ãç¹ã«æ§ã
ãªãã¼ã¿ã½ã¼ã¹ã«ã¾ãããåæ£ãã©ã³ã¶ã¯"
+"ã·ã§ã³ãæ±ãã¾ããå½ç¶ããã°ã©ã ã§ãã©ã³ã¶ã¯ã·ã§ã³å¢çãæå®ã§ãã¾ã (BMT)ã"
+"ãããã¯ãè¨è¿°ããã³ã¼ãã®ãã¼ã¿ããªãã£ãä¿ã¤ããã«ããªãã·ã§ã³ã® 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 㯠JNDI ãç«ã¡ä¸"
+"ãã£ãå¾ã« <literal>SessionFactory</literal> ãçæãã¾ãã"
+
+#. 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 ã»ãã·ã§ã³ãã¤ã³ãã£ã³ã°</emphasis>ï¼ Hibernate "
+"<literal>Session</literal> ã¯èªåçã« JTA ãã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ã³ã¼ãã«ãã¤ã³"
+"ãããã¾ããåç´ã« <literal>SessionFactory</literal> ã JNDI ãã lookup ã"
+"ã¦ãç¾å¨ã® <literal>Session</literal> ãåå¾ãã¾ãã JTA ãã©ã³ã¶ã¯ã·ã§ã³ãå®"
+"äºããã¨ãã«ã Hibernateã <literal>Session</literal> ããã©ãã·ã¥ããã¯ãã¼"
+"ãºãã¾ãããã©ã³ã¶ã¯ã·ã§ã³å¢çã¯ãå®£è¨ (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 ããã®ä»ãèµ·åããåã«ä½¿ç¨ã§ããããã«"
+"ããªããã°ãªãã¾ããï¼ã"
+
+#. 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."
+"aggressive_release</literal> ã true ã«ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr "ãã©ã³ã¶ã¯ã·ã§ã³æ¦ç¥è¨å®"
+
+#. 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 ã¯ãã¢ã¼ããã¯ãã£å
ã®ã·ã¹ãã ã®ç®¡è½"
+"ã§ãããããããã©ã³ã¶ã¯ã·ã§ã³ã«ä¾åãã¾ãããããã³ãã¯ã·ã§ã³ãã¼ã«ã® JDBC "
+"ãç´æ¥ä½¿ãããå ´åã JDBC API ãã ãã©ã³ã¶ã¯ã·ã§ã³ãå¼ã¶ãã¨ãã§ãã¾ããã"
+"ãã J2EE ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã§åä½ããããªãã Bean 管çãã©ã³ã¶ã¯ã·ã§"
+"ã³ã使ããå¿
è¦ã«å¿ã㦠<literal>UserTransaction</literal> ã JTA API ããå¼ã¶"
+"ãã¨ã«ãªãã§ãããã"
+
+#. 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 ""
+"2ã¤ï¼ãã以ä¸ï¼ã®ç°å¢ã§äºææ§ã®ããã³ã¼ããç¶æããããã«ããªãã·ã§ã³ã¨ãã¦æ ¹"
+"æ¬çãªã·ã¹ãã ãã©ããã³ã°ãã Hibernate <literal>Transaction</literal> API "
+"ãæ¨å¥¨ãã¾ãã Hibernate è¨å®ããããã£ã® <literal>hibernate.transaction."
+"factory_class</literal> ãè¨å®ãããã¨ã§ãããç¹å®ã® <literal>Transaction</"
+"literal> ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãæã¤ãã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr "3ã¤ã®åºæ¬çãªï¼æ¢ã«ããï¼é¸æãæãã¾ãï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr "ãã¼ã¿ãã¼ã¹ (JDBC) ãã©ã³ã¶ã¯ã·ã§ã³ã«å§è²ãã¾ãï¼ããã©ã«ãï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+
+#. 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 管çãã©ã³ã¶ã¯ã·ã§"
+"ã³ã使ããã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr "ã³ã³ãã管ç JTA ãã©ã³ã¶ã¯ã·ã§ã³ã«å§è²ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+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 ã®ããã¤ãã®æ©è½ï¼ä¾ãã°ãäºæ¬¡ãã£ãã·ã¥ã JTA ã«ããã³ã³ããã¹ã"
+"ã»ãã·ã§ã³çï¼ã¯ç®¡çãããç°å¢ã®ä¸ã® JTA <literal>TransactionManager</"
+"literal> ã¸ã®ã¢ã¯ã»ã¹ãè¦æ±ãã¾ãã J2EE ãã²ã¨ã¤ã®ã¡ã«ããºã ã«è¦æ ¼åããã¦ã"
+"ãªãã®ã§ãã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã«ããã¦ã Hibernateã "
+"<literal>TransactionManager</literal> ã®ãªãã¡ã¬ã³ã¹ãåå¾ããæ¹æ³ãæ確ã«ã"
+"ãå¿
è¦ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr "JTA ãã©ã³ã¶ã¯ã·ã§ã³ããã¼ã¸ã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr "Transaction Factory"
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr "Application Server"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JBossTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr "JBoss"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. WeblogicTransactionManagerLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr "Weblogic"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. WebSphereTransactionManagerLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr "WebSphere"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. WebSphereExtendedJTATransactionLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr "WebSphere 6"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. OrionTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr "Orion"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. ResinTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr "Resin"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JOTMTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr "JOTM"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JOnASTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr "JOnAS"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. JRun4TransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr "JRun4"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr ""
+"<literal>org.hibernate.transaction. BESTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr "Borland ES"
+
+#. Tag: title
+#, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr "<literal>SessionFactory</literal> ã® JNDI ã¸ã®ç»é²"
+
+#. 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> ã«ã¯é¢é£ããã両æ¹ã¨ãåã«å"
+"ãç»é²ã使ããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. 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>java:hibernate/SessionFactory</literal> ï¼"
+"ã <literal>hibernate.session_factory_name</literal> ããããã£ã«ä½¿ã£ã¦ãã ã"
+"ãããããã®ããããã£ãçç¥ããå ´åã <literal>SessionFactory</literal> 㯠"
+"JNDI ã«ç»é²ããã¾ãããï¼ãã㯠Tomcat ã®ãããªããã©ã«ãå®è£
㧠JNDI ãèªã¿å"
+"ãå°ç¨ã®ç°å¢ã®å ´åã¯ç¹ã«ä¾¿å©ã§ããï¼"
+
+#. 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> ãã¤ãã·ã£ã«ã³ã³ããã¹ãã¨ãã¦å
·ä½åãã¾ããããä½ãè¨å®ããª"
+"ãå ´åã¯ãããã©ã«ãã® <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 ãããã¤ã¡ã³ãã使ããªãé"
+"ããããã¯ãã®å¼ã³åºããã¢ããªã±ã¼ã·ã§ã³å
ã®ä½ããã®ã¹ã¿ã¼ãã¢ããã³ã¼ãï¼ã"
+"ããã¯ã¦ã¼ãã£ãªãã£ã¯ã©ã¹ï¼ ã«é
ç½®ããªããã°ãªããªããã¨ãæå³ãã¾ãï¼å¾ã§è°"
+"è«ãã¾ãï¼ã"
+
+#. 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> ãåå¾ãã¾ãã"
+
+#. 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—see chapter 1."
+msgstr ""
+"管çãããç°å¢ã§ã¯ <literal>SessionFactory</literal> ã JNDI ã«ãã¤ã³ãããã"
+"ãã§ãªããã° <literal>static</literal> ã·ã³ã°ã«ãã³ã使ããã¨ãæ¨å¥¨ãã¾ããã"
+"ããã£ã詳細ããã¢ããªã±ã¼ã·ã§ã³ã³ã¼ããä¿è·ããããã«ã "
+"<literal>HibernateUtil.getSessionFactory()</literal> ã®ãããªãã«ãã¼ã¯ã©ã¹ã®"
+"ä¸ã«ã <literal>SessionFactory</literal> ãã«ãã¯ã¢ããããã³ã¼ããé ããã¨ã"
+"æ¨å¥¨ãã¾ãããã®ãããªãã«ãã¼ã¯ã©ã¹ã¯ Hibernate ãéå§ãã便å©ãªæ段ã§ããã"
+"ã¾ãã - ï¼ç« ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Current Session context management with JTA"
+msgstr "JTA ã«ããç¾å¨ã®ã»ãã·ã§ã³ã³ã³ããã¹ãããã¼ã¸ã¡ã³ã"
+
+#. 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 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 ""
+"ãã£ã¨ãç°¡åã« <literal>Session</literal> ã¨ãã©ã³ã¶ã¯ã·ã§ã³ãæ±ãæ¹æ³ã¯ã "
+"Hibernate ãèªåçã«ãç¾å¨ã®ã <literal>Session</literal> ã管çãããã¨ã§"
+"ãã <xref linkend=\"architecture-current-session\"/> ã«ã¬ã³ãã»ãã·ã§ã³ã®èª¬"
+"æãåç
§ãã¦ãã ããããã <literal>\"jta\"</literal> ã»ãã·ã§ã³ã³ã³ããã¹ã"
+"ã使ã£ãä¸ã§ãç¾å¨ã® JTA ãã©ã³ã¶ã¯ã·ã§ã³ã¨ Hibernate <literal>Session</"
+"literal> ãé¢é£ãã¦ããªãå ´åã¯ãæåã« <literal>sessionFactory."
+"getCurrentSession()</literal> ãã³ã¼ã«ãã JTA ãã©ã³ã¶ã¯ã·ã§ã³ã¨ã®é¢é£ä»ãã"
+"è¡ã£ã¦ãã ããã <literal>\"jta\"</literal> ã³ã³ããã¹ãã® "
+"<literal>getCurrentSession()</literal> ãéãã¦åå¾ãã <literal>Session</"
+"literal> ã¯ããã©ã³ã¶ã¯ã·ã§ã³ãå®äºããåã«èªåçã«ãã©ãã·ã¥ããå®äºããå¾ã«"
+"ã¯èªåçã«ã¯ãã¼ãºãã¾ããã¾ããåã¹ãã¼ãã¡ã³ãå¾ã« JDBC ã³ãã¯ã·ã§ã³ãç©æ¥µ"
+"çã«ãªãªã¼ã¹ãã¾ããããã«ãã JTA ãã©ã³ã¶ã¯ã·ã§ã³ã®ã©ã¤ããµã¤ã¯ã«ã§ "
+"<literal>Session</literal> ã管çãããã¨ãã§ããã¦ã¼ã¶ã¼ã®ã³ã¼ããããã®ãã"
+"ãªç®¡çãããã³ã¼ããæé¤ã§ãã¾ãã <literal>UserTransaction</literal> ãéã"
+"㦠JTA ãããã°ã©ã ã§ç®¡çãããã¨ãã§ãã¾ããã¾ãã¯ãï¼ãã¼ã¿ãã«ãªã³ã¼ãã§ã"
+"ãã°ï¼ Hibernate <literal>Transaction</literal> API ããã©ã³ã¶ã¯ã·ã§ã³å¢çã¨"
+"ãã¦ä½¿ããã¨ãã§ãã¾ãã EJB ã³ã³ããã使ãã¨ãã¯ã CMT ã«ãã宣è¨çãã©ã³ã¶"
+"ã¯ã·ã§ã³å¢çã好ã¾ããã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr "JMX ãããã¤ã¡ã³ã"
+
+#. 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> ã®ãããªï¼ã <emphasis>managed service</"
+"emphasis> ã¨ã㦠Hibernate ããããã¤ããããã©ã¡ããã§å®è¡ã§ãã¾ãã"
+
+#. 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 ""
+"JBoss AS ã®ãã㪠JMX ã®æ©è½ã§ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã«ãããã¤ããããã« "
+"<literal>org.hibernate.jmx.HibernateService</literal> ã使ã£ã¦ãé
ç½®ãã¾ãã"
+"å®éã®ãããã¤ã¡ã³ãã¨è¨å®ã¯ãã³ãã¼ç¹æã§ããããã§ä¾ã¨ã㦠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> ãã£ã¬ã¯ããªã«é
ç½®ããã JAR ãã¡"
+"ã¤ã«ãæ¡å¼µãã <literal>.sar</literal> (service archive) ã§ããã±ã¼ã¸åããã¾"
+"ããåæ§ã« Hibernate ããã±ã¼ã¸ãå¿
è¦ã§ããã¾ãã Hibernate ã¯ãµã¼ããã¼ãã£"
+"ã®ã©ã¤ãã©ãªãè¦æ±ãã¾ããã³ã³ãã¤ã«ããæ°¸ç¶åã¯ã©ã¹ã¨ãã®ãããã³ã°ãã¡ã¤ã«"
+"ãåæ§ã«ã¢ã¼ã«ã¤ãï¼.sarãã¡ã¤ã«ï¼ã«å
¥ãã¾ããã¨ã³ã¿ã¼ãã©ã¤ãº Bean ï¼é常ã¯"
+"ã»ãã·ã§ã³ Bean ï¼ã¯èªèº«ã® JAR ãã¡ã¤ã«ãä¿æãã¾ããã1åã§ï¼ãããï¼ããã"
+"ã¤å¯è½ãªã¦ãããã®ããã«ã¡ã¤ã³ãµã¼ãã¹ã¢ã¼ã«ã¤ãã¨ãã¦ãã® EJB JAR ãã¡ã¤ã«ã"
+"å«ãããã¨ãã§ãã¾ãã JBoss AS ã®ããã¥ã¡ã³ãã« JXM ãµã¼ãã¹ã¨ EJB ãããã¤"
+"ã¡ã³ãã®ããå¤ãã®æ
å ±ãããã¾ãã"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");]]>"
+#~ msgstr ""
+#~ "Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);"
+
+#, fuzzy
+#~ 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 ""
+#~ "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\");"
+
+#, fuzzy
+#~ msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+#~ msgstr "SessionFactory sessions = cfg.buildSessionFactory();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
+#~ ">"
+#~ msgstr "Session session = sessions.openSession(); // open a new Session"
+
+#~ msgid "database user"
+#~ msgstr "ãã¼ã¿ãã¼ã¹ã®ã¦ã¼ã¶ã¼"
+
+#~ msgid "database user password"
+#~ msgstr "ãã¼ã¿ãã¼ã¹ã¦ã¼ã¶ã¼ãã¹ã¯ã¼ã"
+
+#, fuzzy
+#~ 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 ""
+#~ "hibernate.connection.driver_class = org.postgresql.Driver\n"
+#~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+#~ "hibernate.connection.username = myuser\n"
+#~ "hibernate.connection.password = secret\n"
+#~ "hibernate.c3p0.min_size=5\n"
+#~ "hibernate.c3p0.max_size=20\n"
+#~ "hibernate.c3p0.timeout=1800\n"
+#~ "hibernate.c3p0.max_statements=50\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect"
+
+#~ msgid "datasource JNDI name"
+#~ msgstr "ãã¼ã¿ã½ã¼ã¹ã® JNDI å"
+
+#, fuzzy
+#~ 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 ""
+#~ "hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+#~ "hibernate.transaction.factory_class = \\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ "hibernate.transaction.manager_lookup_class = \\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect"
+
+#~ msgid "<entry>DB2</entry>"
+#~ msgstr "<entry>DB2</entry>"
+
+#~ msgid "hibernate.query.substitutions true=1, false=0"
+#~ msgstr "hibernate.query.substitutions true=1, false=0"
+
+#~ msgid "hibernate.query.substitutions toLowercase=LOWER"
+#~ msgstr "hibernate.query.substitutions toLowercase=LOWER"
+
+#~ msgid "org.hibernate"
+#~ msgstr "org.hibernate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
+#~ "buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "SessionFactory sf = new Configuration().configure().buildSessionFactory();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/events.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/events.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/events.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,560 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr "ã¤ã³ã¿ã¼ã»ãã¿ã¨ã¤ãã³ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is useful for the application to react to certain events that occur "
+"inside Hibernate. This allows for the implementation of generic "
+"functionality and the extension of Hibernate functionality."
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã Hibernate ã®å
é¨ã§çºçããã¤ãã³ãã«å¯¾å¿ã§ããã¨å½¹ã«ç«ã¤ã"
+"ã¨ãããã¾ãããã種ã®ä¸è¬çãªæ©è½ãå®è£
ã§ããããã«ãªããã¾ã Hibernate ã®æ©"
+"è½ãæ¡å¼µãããã¨ãã§ããããã«ãªãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors"
+msgstr "ã¤ã³ã¿ã¼ã»ãã¿"
+
+#. Tag: para
+#, 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 ""
+"<literal>Interceptor</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã使ã£ã¦ãã»ãã·ã§ã³ããã¢ããª"
+"ã±ã¼ã·ã§ã³ã¸ã³ã¼ã«ããã¯ããããã¨ãã§ãã¾ããããã«ããæ°¸ç¶ãªãã¸ã§ã¯ãã®ä¿"
+"åãæ´æ°ãåé¤ãèªã¿è¾¼ã¿ã®åã«ãã¢ããªã±ã¼ã·ã§ã³ãããããã£ãæ¤æ»ãããæä½"
+"ãããã§ããããã«ãªãã¾ããããã¯ç£æ»æ
å ±ã®è¿½è·¡ã«å©ç¨ã§ãã¾ããä¸ã®ä¾ã§ "
+"<literal>Interceptor</literal> 㯠<literal>Auditable</literal> ãä½æãããã¨"
+"èªåçã« <literal>createTimestamp</literal> ãè¨å®ãã <literal>Auditable</"
+"literal> ãæ´æ°ãããã¨èªåçã« <literal>lastUpdateTimestamp</literal> ããã"
+"ãã£ãæ´æ°ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can either implement <literal>Interceptor</literal> directly or extend "
+"<literal>EmptyInterceptor</literal>."
+msgstr ""
+"<literal>Interceptor</literal> ãç´æ¥å®è£
ãããã ï¼ããã«ããã®ã¯ï¼ "
+"<literal>EmptyInterceptor</literal> ãæ¡å¼µãããã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"ã¤ã³ã¿ã¼ã»ãã¿ã«ã¯äºç¨®é¡ããã¾ãï¼ <literal>Session</literal> ã¹ã³ã¼ãã®ãã®"
+"㨠<literal>SessionFactory</literal> ã¹ã³ã¼ãã®ãã®ã§ãã"
+
+#. Tag: para
+#, 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 ""
+"<literal>Session</literal> ã¹ã³ã¼ãã®ã¤ã³ã¿ã¼ã»ãã¿ã¯ãã»ãã·ã§ã³ããªã¼ãã³ã"
+"ãã¨ãã«æå®ãã¾ãã <literal>Interceptor</literal> ãå¼æ°ã«åã "
+"SessionFactory.openSession() ã®ãªã¼ãã¼ãã¼ãã¡ã½ããã®ä¸ã¤ã使ãã¾ãã"
+
+#. Tag: para
+#, 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 ""
+"<literal>SessionFactory</literal> ã¹ã³ã¼ãã®ã¤ã³ã¿ã¼ã»ãã¿ã¯ "
+"<literal>Configuration</literal> ãªãã¸ã§ã¯ãã使ã£ã¦ç»é²ãã¾ãããã㯠"
+"<literal>SessionFactory</literal> ã®æ§ç¯ãããåªå
ããã¾ãããã®å ´åãæä¾ã"
+"ããã¤ã³ã¿ã¼ã»ãã¿ã¯ <literal>SessionFactory</literal> ãããªã¼ãã³ããããã¹"
+"ã¦ã®ã»ãã·ã§ã³ã«é©ç¨ããã¾ããããã¯ä½¿ç¨ããã¤ã³ã¿ã¼ã»ãã¿ãæ示çã«æå®ãã¦"
+"ã»ãã·ã§ã³ããªã¼ãã³ããªãéãããããªãã¾ãã <literal>SessionFactory</"
+"literal> ã¹ã³ã¼ãã®ã¤ã³ã¿ã¼ã»ãã¿ã¯ã¹ã¬ããã»ã¼ãã§ãªããã°ãªãã¾ãããè¤æ°ã®"
+"ã»ãã·ã§ã³ã ï¼æ½å¨çã«ï¼ ãã®ã¤ã³ã¿ã¼ã»ãã¿ãåæ並è¡ã§ä½¿ç¨ãããã¨ã«ãªãã"
+"ããã»ãã·ã§ã³åºæã®ç¶æ
ãæ ¼ç´ããªãããã«æ°ãã¤ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Event system"
+msgstr "ã¤ãã³ãã·ã¹ãã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you have to react to particular events in your persistence layer, you can "
+"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
+"system can be used in addition, or as a replacement, for interceptors."
+msgstr ""
+"æ°¸ç¶å層ã§ç¹å®ã®ã¤ãã³ãã«å¯¾å¿ããªããã°ãªããªãå ´åã Hibernate3 ã® "
+"<emphasis>ã¤ãã³ã</emphasis> ã¢ã¼ããã¯ãã£ã使ããã¨ãã§ãã¾ããã¤ãã³ãã·"
+"ã¹ãã ã¯ã¤ã³ã¿ã¼ã»ãã¿ã¨ä¸ç·ã«ä½¿ãããã¾ãã¯ã¤ã³ã¿ã¼ã»ãã¿ã®ä»£ããã¨ãã¦ä½¿ã"
+"ãã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, 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 ""
+"æ¬è³ªçã« <literal>Session</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ãã¹ã¦ã®ã¡ã½ããã¯ã1å"
+"ã®ã¤ãã³ãã¨ç¸äºã«é¢é£ãã¾ããä¾ãã° <literal>LoadEvent</literal> ã "
+"<literal>FlushEvent</literal> ãªã©ãããã¾ã ï¼å®ç¾©æ¸ã¿ã®ã¤ãã³ãåã®ä¸è¦§ã«ã¤"
+"ãã¦ã¯ã XML è¨å®ãã¡ã¤ã«ã® DTD ã <literal>org.hibernate.event</literal> "
+"ããã±ã¼ã¸ã調ã¹ã¦ãã ããï¼ ããªã¯ã¨ã¹ãããããã®ã¡ã½ããã®1ã¤ããä½ããã"
+"ã¨ãã Hibernate ã® <literal>Session</literal> ã¯é©åãªã¤ãã³ããçæãããã®"
+"ã¤ãã³ãåã«è¨å®ãããã¤ãã³ããªã¹ãã«æ¸¡ãã¾ãããã°ããããã¨ã«ããããã®ãª"
+"ã¹ãã¯ãã®ã¡ã½ããã¨åãå¦çãå®è£
ãã¾ããã¨ã¯ããããªã¹ãã¤ã³ã¿ã¼ãã§ã¼ã¹ã®"
+"ä¸ã¤ãèªç±ã«ã«ã¹ã¿ã å®è£
ã§ãã¾ã ï¼ã¤ã¾ãã <literal>LoadEvent</literal> ã¯ç»"
+"é²ããã <literal>LoadEventListener</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®å®è£
ã«ããå¦"
+"çããã¾ãï¼ããã®å ´åããã®å®è£
ã«ã¯ <literal>Session</literal> ããä½ããã"
+"ã©ã®ãã㪠<literal>load()</literal> ãªã¯ã¨ã¹ãããå¦çãã責任ãããã¾ãã"
+
+#. Tag: para
+#, 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
+#, 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 ""
+"ã«ã¹ã¿ã ãªã¹ãã¯å¦çãããã¤ãã³ãã«ã¤ãã¦é©åãªã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ããã¹"
+"ãã§ãã便å©ãªåºåºã¯ã©ã¹ã®ãã¡ã®ä¸ã¤ãç¶æ¿ãã¦ãããã§ã ï¼ã¾ã㯠Hibernate "
+"ãããã©ã«ãã§ä½¿ç¨ããã¤ãã³ããªã¹ããç¶æ¿ãã¦ãããã§ãããã°ããããã¨ã«ã"
+"ãã®ç®çã®ããã«é final ã¨ãã¦å®£è¨ããã¦ãã¾ãï¼ ãã«ã¹ã¿ã ãªã¹ã㯠"
+"<literal>Configuration</literal> ãªãã¸ã§ã¯ãã使ã£ã¦ããã°ã©ã ããç»é²ãã"
+"ãã Hibernate ã® XML è¨å®ãã¡ã¤ã«ã§æå®ã§ãã¾ã ï¼ããããã£ãã¡ã¤ã«ã§å®£è¨ç"
+"ã«è¨å®ããæ¹æ³ã¯ãµãã¼ãããã¦ãã¾ããï¼ ãã«ã¹ã¿ã ãã¼ãã¤ãã³ããªã¹ãã®ä¾ã"
+"示ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"ããã©ã«ããªã¹ã以å¤ã®ãªã¹ãã使ãã«ã¯ã Hibernate ã¸ã®è¨å®ãå¿
è¦ã§ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr "ã¾ããã®ä»ã«ãããã°ã©ã ã§ç»é²ããæ¹æ³ãããã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal><listener/></literal> elements, each "
+"reference will result in a separate instance of that class. If you need to "
+"share listener instances between listener types you must use the "
+"programmatic registration approach."
+msgstr ""
+"ãªã¹ãã宣è¨çã«ç»é²ããã¨ããã®ãªã¹ãã®ã¤ã³ã¹ã¿ã³ã¹ãå
±æã§ãã¾ãããè¤æ°ã® "
+"<literal><listener/></literal> è¦ç´ ã§åãã¯ã©ã¹åã使ãããã¨ããããã"
+"ã®åç
§ã¯ãã®ã¯ã©ã¹ã®å¥ã
ã®ã¤ã³ã¹ã¿ã³ã¹ãæããã¨ã«ãªãã¾ãããªã¹ãåã®éã§ãª"
+"ã¹ãã¤ã³ã¹ã¿ã³ã¹ãå
±æããå¿
è¦ãããã°ãããã°ã©ã ã§ç»é²ããæ¹æ³ãæ¡ããªãã"
+"ã°ãªãã¾ããã"
+
+#. Tag: para
+#, 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 ""
+"ãªãã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ãã¦ãç¹åããåãè¨å®æã«æå®ããã®ã§ããããï¼ãª"
+"ã¹ãã®å®è£
ã¯ã©ã¹ã«ãè¤æ°ã®ã¤ãã³ããªã¹ãã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ã§ããããã§"
+"ããç»é²æã«è¿½å ã§åãæå®ãããã¨ã§ãã«ã¹ã¿ã ãªã¹ãã® on/off ãè¨å®æã«ç°¡å"
+"ã«åãæ¿ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr "Hibernate ã®å®£è¨çãªã»ãã¥ãªãã£"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Usually, declarative security in Hibernate applications is managed in a "
+"session facade layer. Hibernate3 allows certain actions to be permissioned "
+"via JACC, and authorized via JAAS. This is an optional functionality that is "
+"built on top of the event architecture."
+msgstr ""
+"ä¸è¬çã« Hibernate ã¢ããªã±ã¼ã·ã§ã³ã®å®£è¨çãªã»ãã¥ãªãã£ã¯ãã»ãã·ã§ã³ãã¡"
+"ãµã¼ã層ã§ç®¡çãã¾ããç¾å¨ã Hiberenate3 㯠JACC ã§è¨±å¯ããããã« JAAS ã§èªè¨¼"
+"ããã¢ã¯ã·ã§ã³ã許ãã¦ãã¾ããããã¯ã¤ãã³ãã¢ã¼ããã¯ãã£ã®æä¸ä½ã«çµã¿è¾¼ã¾"
+"ãã¦ãããªãã·ã§ã³ã®æ©è½ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"ã¾ãæåã«ãé©åãªã¤ãã³ããªã¹ããè¨å®ã㦠JAAS èªè¨¼ã使ããããã«ããªããã°"
+"ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
+"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
+"></event></literal> when there is exactly one listener for a "
+"particular event type."
+msgstr ""
+"ç¹å®ã®ã¤ãã³ãåã«å¯¾ãã¦ã¡ããã©ä¸ã¤ã®ãªã¹ããããã¨ãã <literal><"
+"listener type=\"...\" class=\"...\"/></literal> 㯠<literal><event "
+"type=\"...\"><listener class=\"...\"/></event></literal> ã®ç°¡"
+"ç¥å½¢ã«éããªããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
+"permissions to roles:"
+msgstr ""
+"次ã«ãåãã <literal>hibernate.cfg.xml</literal> ã§ãã¼ã«ã«ãã¼ããã·ã§ã³ã"
+"ä¸ãã¦ãã ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr "ãã®ãã¼ã«åã¯ä½¿ç¨ãã JACC ãããã¤ãã«ç解ããããã¼ã«ã§ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "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,\n"
+#~ " \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#~ msgstr "Session session = sf.openSession( new AuditInterceptor() );"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+#~ msgstr "new Configuration().setInterceptor( new AuditInterceptor() );"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+#~ msgstr ""
+#~ "<grant role=\"admin\" entity-name=\"User\" actions=\"insert,update,read"
+#~ "\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_mappings.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_mappings.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_mappings.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1273 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-01-20 15:40+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr "ä¾ï¼ ãããããªãããã³ã°"
+
+#. Tag: para
+#, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr "ãã®ç« ã§ã¯ãããè¤éãªé¢é£ã®ãããã³ã°ãããã¤ãç´¹ä»ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr "éç¨è
/å¾æ¥å¡"
+
+#. Tag: para
+#, 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 ""
+"<literal>Employer</literal> 㨠<literal>Employee</literal> ã®é¢ä¿ã表ã以ä¸ã®"
+"ã¢ãã«ã¯ãé¢é£ã®è¡¨ç¾ã«å®éã®ã¨ã³ãã£ãã£ã¯ã©ã¹ ï¼ <literal>Employment</"
+"literal> ï¼ ã使ãã¾ãããªããªããåã2ã¤ã®ãã¼ãã£ã«è¤æ°ã®æééç¨ãããã¨ã"
+"ããã¨ãããããããã§ãããéã®å¤ã¨å¾æ¥å¡ã®ååãã¢ãã«åããããã«ã³ã³ãã¼"
+"ãã³ãã使ã£ã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr "ãããã³ã°ããã¥ã¡ã³ãã®ä¸ä¾ã§ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr "<literal>SchemaExport</literal> ã§çæãããã¼ãã«ã¹ãã¼ãã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr "ä½è
/ä½å"
+
+#. Tag: para
+#, 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 ""
+"<literal>Work</literal> ã <literal>Author</literal> ãã㦠<literal>Person</"
+"literal> ã®é¢ä¿ã表ã以ä¸ã®ã¢ãã«ãèãã¦ã¿ã¦ãã ããã <literal>Work</"
+"literal> 㨠<literal>Author</literal> ã®é¢ä¿ãå¤å¯¾å¤é¢é£ã§è¡¨ãã¦ãã¾ãã "
+"<literal>Author</literal> 㨠<literal>Person</literal> ã®é¢ä¿ã¯ä¸å¯¾ä¸é¢é£ã¨ã"
+"ã¦è¡¨ãã¦ãã¾ããä»ã«ã¯ <literal>Author</literal> ã <literal>Person</"
+"literal> ãæ¡å¼µããã¨ããæ¹æ³ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr "以ä¸ã®ãããã³ã°ããã¥ã¡ã³ãã¯ãã®ãããªé¢ä¿ãæ£ç¢ºã«è¡¨ç¾ãã¦ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are four tables in this mapping: <literal>works</literal>, "
+"<literal>authors</literal> and <literal>persons</literal> hold work, author "
+"and person data respectively. <literal>author_work</literal> is an "
+"association table linking authors to works. Here is the table schema, as "
+"generated by <literal>SchemaExport</literal>:"
+msgstr ""
+"ãã®ãããã³ã°ã«ã¯4ã¤ã®ãã¼ãã«ãããã¾ãã <literal>works</literal> ã "
+"<literal>authors</literal> , <literal>persons</literal> ã¯ãããããä»äºãä½"
+"è
ã人ã®ãã¼ã¿ãä¿æãã¾ãã <literal>author_work</literal> ã¯ä½è
ã¨ä½åããª"
+"ã³ã¯ããé¢é£ãã¼ãã«ã§ãã以ä¸ã¯ <literal>SchemaExport</literal> ã§çæãã"
+"ãã¼ãã«ã¹ãã¼ãã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr "顧客/注æ/製å"
+
+#. Tag: para
+#, 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 ""
+"ãã¦ã <literal>Customer</literal> ã <literal>Order</literal> ã "
+"<literal>LineItem</literal> ã <literal>Product</literal> ã®é¢ä¿ã表ãã¢ãã«"
+"ãèãã¦ã¿ã¾ãããã <literal>Customer</literal> 㨠<literal>Order</literal> "
+"ã¯ä¸å¯¾å¤ã®é¢é£ã§ããã <literal>Order</literal> / <literal>LineItem</"
+"literal> / <literal>Product</literal> ã¯ã©ã®ããã«è¡¨ç¾ããã¹ãã§ããããï¼ "
+"<literal>LineItem</literal> ãã <literal>Order</literal> 㨠"
+"<literal>Product</literal> ã®å¤å¯¾å¤é¢é£ã表ç¾ããé¢é£ã¯ã©ã¹ã¨ãã¦ãããã³ã°ã"
+"ã¾ããã Hibernate ã§ã¯ãããã³ã³ãã¸ããè¦ç´ ã¨å¼ã³ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping document will look like this:"
+msgstr "ãããã³ã°ããã¥ã¡ã³ãï¼"
+
+#. Tag: para
+#, 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 ""
+"<literal>customers</literal> ã <literal>orders</literal> ã "
+"<literal>line_items</literal> ã <literal>products</literal> ã¯ããããã顧"
+"客ã注æã注ææç´°ã製åã®ãã¼ã¿ãä¿æãã¾ãã <literal>line_items</literal> "
+"ã¯æ³¨æã¨è£½åããªã³ã¯ããé¢é£ãã¼ãã«ã¨ãã¦ãåãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr "種ã
éå¤ãªãããã³ã°ä¾"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"These examples are available from the Hibernate test suite. You will find "
+"many other useful example mappings there by searching in the <literal>test</"
+"literal> folder of the Hibernate distribution."
+msgstr ""
+"ããã«ããä¾ã¯ãã¹ã¦ Hibernate ã®ãã¹ãã¹ã¤ã¼ãããåãã¾ãããããã«ã¯ãä»ã«"
+"ãããããã®ãããã³ã°ã®ä¾ãããã¾ãã Hibernate ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã® "
+"<literal>test</literal> ãã©ã«ããè¦ã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr "ãåä»ãããããä¸å¯¾ä¸é¢é£"
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr "è¤åãã¼ã®ä¾"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr "è¤åãã¼å±æ§ãå
±æããå¤å¯¾å¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr "discrimination ã«åºã¥ãå
容"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr "代æ¿ãã¼ã®é¢é£"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_parentchild.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_parentchild.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_parentchild.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,602 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-01-20 15:29+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr "ä¾ï¼ 親/åä¾"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One of the first things that new users want to do with Hibernate is to model "
+"a parent/child type relationship. There are two different approaches to "
+"this. The most convenient approach, especially for new users, is to model "
+"both <literal>Parent</literal> and <literal>Child</literal> as entity "
+"classes with a <literal><one-to-many></literal> association from "
+"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
+"approach is to declare the <literal>Child</literal> as a <literal><"
+"composite-element></literal>. The default semantics of a one-to-many "
+"association in Hibernate are much less close to the usual semantics of a "
+"parent/child relationship than those of a composite element mapping. We will "
+"explain how to use a <emphasis>bidirectional one-to-many association with "
+"cascades</emphasis> to model a parent/child relationship efficiently and "
+"elegantly."
+msgstr ""
+"æ°è¦ã¦ã¼ã¶ã¼ã Hibernate ã使ã£ã¦ã¾ãæåã«æ±ãã¢ãã«ã®ä¸ã¤ã«ã親ååã®ã¢ãã«"
+"åãããã¾ãããã®ã¢ãã«åã«ã¯äºã¤ã®ã¢ããã¼ããåå¨ãã¾ããã¨ãããæ°è¦ã¦ã¼"
+"ã¶ã¼ã«ã¨ã£ã¦ããã¾ãã¾ãªçç±ããæã便å©ã ã¨æãããã¢ããã¼ãã¯ã <literal>"
+"親</literal> ãã <literal>åä¾</literal> ã¸ã® <literal><one-to-many></"
+"literal> é¢é£ã«ãã <literal>親</literal> 㨠<literal>åä¾</literal> ã®ä¸¡æ¹ã"
+"ã¨ã³ãã£ãã£ã¯ã©ã¹ã¨ãã¦ã¢ããªã³ã°ããæ¹æ³ã§ãï¼ããä¸ã¤ã®æ¹æ³ã¯ã <literal>"
+"åä¾</literal> ã <literal><composite-element></literal> ã¨ãã¦å®ç¾©ãã"
+"ãã®ã§ãï¼ãããã§ï¼ Hibernate ã«ãããï¼ä¸å¯¾å¤é¢é£ã®ããã©ã«ãã®ã»ãã³ãã£ã¯"
+"ã¹ããé常ã®è¤åè¦ç´ ã®ãããã³ã°ãããã親åé¢ä¿ã®ã»ãã³ãã£ã¯ã¹ããé ããã¨"
+"ããããã¾ããããã§ã¯è¦ªåé¢ä¿ãå¹ççãã¤ã¨ã¬ã¬ã³ãã«ã¢ããªã³ã°ããããã«ã "
+"<emphasis>ã«ã¹ã±ã¼ãæä½ã使ã£ãåæ¹åä¸å¯¾å¤é¢é£</emphasis> ã®æ±ãæ¹ã説æã"
+"ã¾ããããã¯ã¾ã£ããé£ãããã®ã§ã¯ããã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã«é¢ãã注æ"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate collections are considered to be a logical part of their owning "
+"entity and not of the contained entities. Be aware that this is a critical "
+"distinction that has the following consequences:"
+msgstr ""
+"Hibernate ã®ã³ã¬ã¯ã·ã§ã³ã¯èªèº«ã®ã¨ã³ãã£ãã£ã®è«ççãªé¨åã¨èãããã決ãã¦"
+"å
å«ããã¨ã³ãã£ãã£ã®ãã®ã§ã¯ããã¾ãããããã¯è´å½çãªéãã§ããããã¯ä»¥ä¸"
+"ã®ãããªçµæã«ãªãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"When you remove/add an object from/to a collection, the version number of "
+"the collection owner is incremented."
+msgstr ""
+"ãªãã¸ã§ã¯ããã³ã¬ã¯ã·ã§ã³ããåé¤ãã¾ãã¯ã³ã¬ã¯ã·ã§ã³ã«è¿½å ããã¨ããã³ã¬ã¯"
+"ã·ã§ã³ã®ãªã¼ãã¼ã®ãã¼ã¸ã§ã³çªå·ã¯ã¤ã³ã¯ãªã¡ã³ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If an object that was removed from a collection is an instance of a value "
+"type (e.g. a composite element), that object will cease to be persistent and "
+"its state will be completely removed from the database. Likewise, adding a "
+"value type instance to the collection will cause its state to be immediately "
+"persistent."
+msgstr ""
+"ããã³ã¬ã¯ã·ã§ã³ããåé¤ããããªãã¸ã§ã¯ããå¤åã®ã¤ã³ã¹ã¿ã³ã¹ï¼ä¾ãã°ã³ã³ã"
+"ã¸ããã¨ã¬ã¡ã³ã) ã ã£ããªãã°ããã®ãªãã¸ã§ã¯ãã¯æ°¸ç¶çã§ã¯ãªããªãããã®ç¶"
+"æ
ã¯ãã¼ã¿ãã¼ã¹ããå®å
¨ã«åé¤ããã¾ããåãããã«ãå¤åã®ã¤ã³ã¹ã¿ã³ã¹ãã³ã¬"
+"ã¯ã·ã§ã³ã«è¿½å ããã¨ããã®ç¶æ
ã¯ããã«æ°¸ç¶çã«ãªãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Conversely, if an entity is removed from a collection (a one-to-many or many-"
+"to-many association), it will not be deleted by default. This behavior is "
+"completely consistent; a change to the internal state of another entity "
+"should not cause the associated entity to vanish. Likewise, adding an entity "
+"to a collection does not cause that entity to become persistent, by default."
+msgstr ""
+"ä¸æ¹ãããã¨ã³ãã£ãã£ãã³ã¬ã¯ã·ã§ã³ï¼ä¸å¯¾å¤ã¾ãã¯å¤å¯¾å¤é¢é£) ããåé¤ããã¦"
+"ããããã©ã«ãã§ã¯ããã¯åé¤ããã¾ããããã®åä½ã¯å®å
¨ã«ä¸è²«ãã¦ãã¾ããããª"
+"ãã¡ãä»ã®ã¨ã³ãã£ãã£ã®å
é¨ç¶æ
ãå¤æ´ãã¦ããé¢é£ããã¨ã³ãã£ãã£ãæ¶æ»
ãã¹"
+"ãã§ã¯ãªãã¨ãããã¨ã§ããåæ§ã«ãã¨ã³ãã£ãã£ãã³ã¬ã¯ã·ã§ã³ã«è¿½å ããã¦ãã"
+"ããã©ã«ãã§ã¯ãã®ã¨ã³ãã£ãã£ã¯æ°¸ç¶çã«ã¯ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Adding an entity to a collection, by default, merely creates a link between "
+"the two entities. Removing the entity will remove the link. This is "
+"appropriate for all sorts of cases. However, it is not appropriate in the "
+"case of a parent/child relationship. In this case, the life of the child is "
+"bound to the life cycle of the parent."
+msgstr ""
+"ãã®ä»£ããã«ãããã©ã«ãã®åä½ã§ã¯ãã¨ã³ãã£ãã£ãã³ã¬ã¯ã·ã§ã³ã«è¿½å ããã¨å"
+"ã«äºã¤ã®ã¨ã³ãã£ãã£éã®ãªã³ã¯ãä½æããä¸æ¹ã¨ã³ãã£ãã£ãåé¤ããã¨ãªã³ã¯ã"
+"åé¤ãã¾ããããã¯ãã¹ã¦ã®ã±ã¼ã¹ã«ããã¦é常ã«é©åã§ãããããé©åã§ãªãã®ã¯"
+"親/åé¢ä¿ã®å ´åã§ãããã®å ´ååä¾ã®çåã¯è¦ªã®ã©ã¤ããµã¤ã¯ã«ã«å¶éãããããã§"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr "åæ¹åä¸å¯¾å¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we start with a simple <literal><one-to-many></literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+"<literal>Parent</literal> ãã <literal>Child</literal> ã¸ã®åç´ãª "
+"<literal><one-to-many></literal> é¢é£ããå§ããã¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "If we were to execute the following code:"
+msgstr "以ä¸ã®ã³ã¼ããå®è¡ããã¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr "Hibernate ã¯äºã¤ã® SQL æãçºè¡ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+"<literal>c</literal> ã«å¯¾ããã¬ã³ã¼ããçæãã <literal>INSERT</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
+"<literal>c</literal>"
+msgstr ""
+"<literal>p</literal> ãã <literal>c</literal> ã¸ã®ãªã³ã¯ãä½æãã "
+"<literal>UPDATE</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is not only inefficient, but also violates any <literal>NOT NULL</"
+"literal> constraint on the <literal>parent_id</literal> column. You can fix "
+"the nullability constraint violation by specifying <literal>not-null=\"true"
+"\"</literal> in the collection mapping:"
+msgstr ""
+"ããã¯éå¹ççãªã ãã§ã¯ãªãã <literal>parent_id</literal> ã«ã©ã ã«ãã㦠"
+"<literal>NOT NULL</literal> å¶ç´ã«éåãã¾ããã³ã¬ã¯ã·ã§ã³ã®ãããã³ã°ã§ "
+"<literal>not-null=\"true\"</literal> ã¨æå®ãããã¨ã§ã null å¶ç´éåã解決ã"
+"ããã¨ãã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr "ããããã®è§£æ±ºçã¯æ¨å¥¨ã§ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The underlying cause of this behavior is that the link (the foreign key "
+"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
+"literal> is not considered part of the state of the <literal>Child</literal> "
+"object and is therefore not created in the <literal>INSERT</literal>. The "
+"solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+"ãã®åä½ã®æ ¹æ¬çãªåå ã¯ã <literal>p</literal> ãã <literal>c</literal> ã¸"
+"ã®ãªã³ã¯ï¼å¤é¨ãã¼ <literal>parent_id</literal>) 㯠<literal>Child</literal> "
+"ãªãã¸ã§ã¯ãã®ç¶æ
ã®ä¸é¨ã¨ã¯èããããããã®ãã <literal>INSERT</literal> ã«"
+"ãã£ã¦ãªã³ã¯ãçæãããªããã¨ã§ããã§ãããã解決çã¯ãªã³ã¯ã Child ãããã³"
+"ã°ã®ä¸é¨ã«ãããã¨ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need to add the <literal>parent</literal> property to the "
+"<literal>Child</literal> class."
+msgstr ""
+"(ã¾ã <literal>Child</literal> ã¯ã©ã¹ã« <literal>parent</literal> ããããã£"
+"ã追å ããå¿
è¦ãããã¾ãã)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now that the <literal>Child</literal> entity is managing the state of the "
+"link, we tell the collection not to update the link. We use the "
+"<literal>inverse</literal> attribute to do this:"
+msgstr ""
+"ããã§ã¯ <literal>Child</literal> ã¨ã³ãã£ãã£ããªã³ã¯ã®ç¶æ
ãå¶å¾¡ããããã«"
+"ãªã£ãã®ã§ãã³ã¬ã¯ã·ã§ã³ããªã³ã¯ãæ´æ°ããªãããã«ãã¾ããããããã«ã¯ "
+"<literal>inverse</literal> å±æ§ã使ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr ""
+"以ä¸ã®ã³ã¼ãã使ãã°ãæ°ãã <literal>Child</literal> ã追å ãããã¨ãã§ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr ""
+"ããã«ããã SQL ã® <literal>INSERT</literal> æãä¸ã¤ã ããçºè¡ãããããã«"
+"ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You could also create an <literal>addChild()</literal> method of "
+"<literal>Parent</literal>."
+msgstr ""
+"ããå°ãå¼·åããã«ã¯ã <literal>Parent</literal> ã® <literal>addChild()</"
+"literal> ã¡ã½ãããä½æãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The code to add a <literal>Child</literal> looks like this:"
+msgstr "<literal>Child</literal> ã追å ããã³ã¼ãã¯ãã®ããã«ãªãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Cascading life cycle"
+msgstr "ã©ã¤ããµã¤ã¯ã«ã®ã«ã¹ã±ã¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can address the frustrations of the explicit call to <literal>save()</"
+"literal> by using cascades."
+msgstr ""
+"æ示çã« <literal>save()</literal> ãã³ã¼ã«ããã®ã¯ã¾ã ç
©ããããã®ã§ãããã"
+"ãã«ã¹ã±ã¼ãã使ã£ã¦å¯¾å¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "This simplifies the code above to:"
+msgstr "ããã«ããå
ã»ã©ã®ã³ã¼ãããã®ããã«åç´åãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Similarly, we do not need to iterate over the children when saving or "
+"deleting a <literal>Parent</literal>. The following removes <literal>p</"
+"literal> and all its children from the database."
+msgstr ""
+"åæ§ã« <literal>Parent</literal> ãä¿åã¾ãã¯åé¤ããã¨ãã«ãåä¾ãä¸ã¤ä¸ã¤å"
+"ãåºãã¦æ±ãå¿
è¦ã¯ããã¾ããã以ä¸ã®ã³ã¼ã㯠<literal>p</literal> ãåé¤ãã"
+"ããã¦ãã¼ã¿ãã¼ã¹ãããã®åä¾ããã¹ã¦åé¤ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "However, the following code:"
+msgstr "ããããã®ã³ã¼ãã¯"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"will not remove <literal>c</literal> from the database. In this case, it "
+"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
+"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
+"</literal> the <literal>Child</literal>."
+msgstr ""
+"ãã¼ã¿ãã¼ã¹ãã <literal>c</literal> ãåé¤ãã¾ããã <literal>p</literal> "
+"ã¸ã®ãªã³ã¯ãåé¤ããï¼ããã¦ãã®ã±ã¼ã¹ã§ã¯ <literal>NOT NULL</literal> å¶ç´é"
+"åãå¼ãèµ·ããï¼ã ãã§ãã <literal>Child</literal> ã® <literal>delete()</"
+"literal> ãæ示ããå¿
è¦ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In our case, a <literal>Child</literal> cannot exist without its parent. So "
+"if we remove a <literal>Child</literal> from the collection, we do want it "
+"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
+"\"</literal>."
+msgstr ""
+"ä»ãã®ã±ã¼ã¹ã§ã¯å®éã« <literal>Child</literal> ã親ãªãã§ã¯åå¨ã§ããªããã"
+"ã«ãªãã¾ããããã®ãããããã³ã¬ã¯ã·ã§ã³ãã <literal>Child</literal> ãåã"
+"é¤ãå ´åããããåé¤ãã¾ãããã®ããã«ã¯ <literal>cascade=\"all-delete-orphan"
+"\"</literal> ã使ããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Even though the collection mapping specifies <literal>inverse=\"true\"</"
+"literal>, cascades are still processed by iterating the collection elements. "
+"If you need an object be saved, deleted or updated by cascade, you must add "
+"it to the collection. It is not enough to simply call <literal>setParent()</"
+"literal>."
+msgstr ""
+"注è¨ï¼ã³ã¬ã¯ã·ã§ã³ã®ãããã³ã°ã§ <literal>inverse=\"true\"</literal> ã¨æå®ã"
+"ã¦ããã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã®ã¤ãã¬ã¼ã·ã§ã³ã«ãã£ã¦ãä¾ç¶ã«ã¹ã±ã¼ããå®è¡ããã¾"
+"ãããã®ãããããã«ã¹ã±ã¼ãã§ãªãã¸ã§ã¯ããã»ã¼ããåé¤ãæ´æ°ããå¿
è¦ããã"
+"ãªãããããã³ã¬ã¯ã·ã§ã³ã«è¿½å ããªããã°ãªãã¾ãããåã« <literal>setParent()"
+"</literal> ãå¼ã¶ã ãã§ã¯ä¸ååã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr "ã«ã¹ã±ã¼ã㨠unsaved-value"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
+"literal>, made some changes in a UI action and wanted to persist these "
+"changes in a new session by calling <literal>update()</literal>. The "
+"<literal>Parent</literal> will contain a collection of children and, since "
+"the cascading update is enabled, Hibernate needs to know which children are "
+"newly instantiated and which represent existing rows in the database. We "
+"will also assume that both <literal>Parent</literal> and <literal>Child</"
+"literal> have generated identifier properties of type <literal>Long</"
+"literal>. Hibernate will use the identifier and version/timestamp property "
+"value to determine which of the children are new. (See <xref linkend="
+"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
+"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
+"emphasis>"
+msgstr ""
+"<literal>Parent</literal> ãããã <literal>Session</literal> ã§ãã¼ãããã "
+"UI ã®ã¢ã¯ã·ã§ã³ã§å¤æ´ãå ãããã <literal>update()</literal> ãå¼ãã§ãã®å¤"
+"æ´ãæ°ããã»ãã·ã§ã³ã§æ°¸ç¶åãããã¨ãã¾ãã <literal>Parent</literal> ãåä¾"
+"ã®ã³ã¬ã¯ã·ã§ã³ãæã¡ãã«ã¹ã±ã¼ãæ´æ°ãæå¹ã«ãªã£ã¦ããããã Hibernate ã¯ã©ã®"
+"åä¾ãæ°ããã¤ã³ã¹ã¿ã³ã¹åãããããã©ãããã¼ã¿ãã¼ã¹ã®æ¢åã®è¡ã«ç¸å½ããã®"
+"ããç¥ãå¿
è¦ãããã¾ãã <literal>Parent</literal> 㨠<literal>Child</"
+"literal> ã®ä¸¡æ¹ã <literal>Long</literal> åã®èå¥ããããã£ãçæããã¨ãã¾"
+"ãããã Hibernate ã¯ã©ã®åä¾ãæ°ãããã®ãã決å®ããããã«èå¥ããããã£ã®å¤"
+"ã使ãã¾ã (<xref linkend=\"objectstate-saveorupdate\"/> åç
§)ã "
+"<emphasis>Hibernate3 ã«ãªã£ã¦ãæ示çã« <literal>unsaved-value</literal> ãæ"
+"å®ããå¿
è¦ã¯ãªããªãã¾ããã</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>:"
+msgstr ""
+"以ä¸ã®ã³ã¼ã㯠<literal>parent</literal> 㨠<literal>child</literal> ãæ´æ°"
+"ãã <literal>newChild</literal> ãæ¿å
¥ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This may be suitable for the case of a generated identifier, but what about "
+"assigned identifiers and composite identifiers? This is more difficult, "
+"since Hibernate cannot use the identifier property to distinguish between a "
+"newly instantiated object, with an identifier assigned by the user, and an "
+"object loaded in a previous session. In this case, Hibernate will either use "
+"the timestamp or version property, or will actually query the second-level "
+"cache or, worst case, the database, to see if the row exists."
+msgstr ""
+"ãããã¯çæãããèå¥åã®å ´åã«ã¯é常ã«è¯ãã®ã§ãããå²ãå½ã¦ãããèå¥åã¨"
+"è¤åèå¥åã®å ´åã¯ã©ãã§ããããï¼ãã㯠Hibernate ããï¼ã¦ã¼ã¶ã¼ã«ããå²ãå½"
+"ã¦ãããèå¥åãæã¤ï¼æ°ããã¤ã³ã¹ã¿ã³ã¹åããããªãã¸ã§ã¯ãã¨ã以åã® "
+"Session ã§ãã¼ãããããªãã¸ã§ã¯ããåºå¥ã§ããªããããããé£ããã§ãããã®å ´"
+"åã Hibernate ã¯ã¿ã¤ã ã¹ã¿ã³ãããã¼ã¸ã§ã³ã®ããããã£ã®ã©ã¡ããã使ãããäº"
+"次ãã£ãã·ã¥ã«åãåããã¾ããææªã®å ´åãè¡ãåå¨ãããã©ãããã¼ã¿ãã¼ã¹ã"
+"è¦ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr "çµè«"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The sections we have just covered can be a bit confusing. However, in "
+"practice, it all works out nicely. Most Hibernate applications use the "
+"parent/child pattern in many places."
+msgstr ""
+"ããã§ã¯ããªãã®éãè¦ç´ããã®ã§ãæåã®é ã¯æ··ä¹±ãã¦ããããã«æãããããã"
+"ãã¾ããããããå®éã¯ããã¹ã¦é常ã«è¯ãåä½ãã¾ããã»ã¨ãã©ã® Hibernate ã¢ã"
+"ãªã±ã¼ã·ã§ã³ã§ã¯ãå¤ãã®å ´é¢ã§è¦ªåãã¿ã¼ã³ã使ç¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"We mentioned an alternative in the first paragraph. None of the above issues "
+"exist in the case of <literal><composite-element></literal> mappings, "
+"which have exactly the semantics of a parent/child relationship. "
+"Unfortunately, there are two big limitations with composite element classes: "
+"composite elements cannot own collections and they should not be the child "
+"of any entity other than the unique parent."
+msgstr ""
+"æåã®æ®µè½ã§ä»£æ¿æ¹æ³ã«ã¤ãã¦è§¦ãã¾ãããä¸è¨ã®ãããªåé¡ã¯ <literal><"
+"composite-element></literal> ãããã³ã°ã®å ´åã¯åå¨ãããã«ããããããã"
+"ãã¯ç¢ºãã«è¦ªåé¢ä¿ã®ã»ãã³ãã£ã¯ã¹ãæã¡ã¾ãããããæ®å¿µãªãããè¤åè¦ç´ ã¯ã©"
+"ã¹ã«ã¯ï¼ã¤ã®å¤§ããªå¶éãããã¾ãï¼ 1ã¤ã¯è¤åè¦ç´ ã¯ã³ã¬ã¯ã·ã§ã³ãæã¤ãã¨ãã§"
+"ããªããã¨ã§ããããã²ã¨ã¤ã¯ãã¦ãã¼ã¯ãªè¦ªã§ã¯ãªãã¨ã³ãã£ãã£ã®åä¾ã¨ãªãã¹"
+"ãã§ã¯ãªãã¨ãããã¨ã§ã"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "session.delete(p);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "session.delete(p);\n"
+#~ "session.flush();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "<set name=\"children\" inverse=\"true\" cascade=\"all-delete-orphan"
+#~ "\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_weblog.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_weblog.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/example_weblog.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,863 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-01-20 15:34+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr "ä¾: Weblog ã¢ããªã±ã¼ã·ã§ã³"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "æ°¸ç¶ã¯ã©ã¹"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The persistent classes here represent a weblog and an item posted in a "
+"weblog. They are to be modelled as a standard parent/child relationship, but "
+"we will use an ordered bag, instead of a set:"
+msgstr ""
+"æ°¸ç¶ã¯ã©ã¹ãã¦ã§ããã°ã¨ãã¦ã§ããã°ã«æ²ç¤ºãããé
ç®ã表ãã¦ãã¾ãããããã¯"
+"é常ã®è¦ªåé¢ä¿ã¨ãã¦ã¢ããªã³ã°ããã¾ããã set ã§ã¯ãªãé åºãæã£ã bag ã使"
+"ç¨ãããã¨ã«ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr "Hibernate ã®ãããã³ã°"
+
+#. Tag: para
+#, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr "XML ãããã³ã°ã¯ãä»ã§ã¯ã¨ã¦ãç°¡åãªã¯ãã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr "Hibernate ã®ã³ã¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes using Hibernate:"
+msgstr ""
+"以ä¸ã®ã¯ã©ã¹ã¯ã Hibernate ã§ãããã®ã¯ã©ã¹ã使ã£ã¦ã§ããããã¤ãã®ãã¨ã示ã"
+"ã¦ãã¾ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/filters.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/filters.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/filters.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,324 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-01-18 15:28+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr "ãã¼ã¿ã®ãã£ã«ã¿ãªã³ã°"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 provides an innovative new approach to handling data with "
+"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
+"named, parameterized filter that can be enabled or disabled for a particular "
+"Hibernate session."
+msgstr ""
+"Hibernate3 ã§ã¯ãå¯è¦æ§ãã«ã¼ã«ã«åºã¥ãã¦ãã¼ã¿ãæ±ãããã®ç»æçãªæ¹æ³ãç¨æ"
+"ãã¦ãã¾ãã <emphasis>Hibernate filter</emphasis> ã¯ã°ãã¼ãã«ã§ãååä»ã"
+"ã§ããã©ã¡ã¼ã¿åããããã£ã«ã¿ã§ãããã㯠Hibernate ã»ãã·ã§ã³ãã¨ã«æå¹ç¡å¹"
+"ãåãæ¿ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate filters"
+msgstr "Hibernate ã®ãã£ã«ã¿"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 has the ability to pre-define filter criteria and attach those "
+"filters at both a class level and a collection level. A filter criteria "
+"allows you to define a restriction clause similar to the existing \"where\" "
+"attribute available on the class and various collection elements. These "
+"filter conditions, however, can be parameterized. The application can then "
+"decide at runtime whether certain filters should be enabled and what their "
+"parameter values should be. Filters can be used like database views, but "
+"they are parameterized inside the application."
+msgstr ""
+"Hibernate3 ã¯ãã£ã«ã¿ã¯ã©ã¤ããªã¢ããããããå®ç¾©ãããããã®ãã£ã«ã¿ãã¯ã©ã¹"
+"ãã³ã¬ã¯ã·ã§ã³ã¬ãã«ã«å ããæ©è½ãå ãã¾ããããã£ã«ã¿ã¯ã©ã¤ããªã¢ã¯å¶ç´ç¯ã"
+"å®ç¾©ããæ©è½ã§ãããããã®ãã£ã«ã¿æ¡ä»¶ã¯ãã©ã¡ã¼ã¿åã§ããã¨ãããã¨ãé¤ãã"
+"ã¯ã©ã¹ããã¾ãã¾ãªã³ã¬ã¯ã·ã§ã³è¦ç´ ã§å©ç¨å¯è½ãª ï½¢whereï½£ å¥ã«é常ã«ããä¼¼ã¦ãã¾"
+"ããã¢ããªã±ã¼ã·ã§ã³ã¯ãä¸ãããããã£ã«ã¿ãå¯è½ã«ãã¹ãããããã¦ãã®ãã©"
+"ã¡ã¼ã¿å¤ãä½ã«ãã¹ãããå®è¡æã«æ±ºå®ãããã¨ãã§ãã¾ãããã£ã«ã¿ã¯ãã¼ã¿ãã¼"
+"ã¹ãã¥ã¼ã®ããã«ä½¿ç¨ããã¾ãããã¢ããªã±ã¼ã·ã§ã³å
ã§ã¯ãã©ã¡ã¼ã¿åããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal><"
+"filter-def/></literal> element within a <literal><hibernate-mapping/"
+"></literal> element:"
+msgstr ""
+"ãã£ã«ã¿ã使ãããã«ã¯ã¾ããé©åãªãããã³ã°è¦ç´ ã«å®ç¾©ã追å ããªãã¦ã¯ãªãã¾"
+"ããããã£ã«ã¿ãå®ç¾©ããããã«ã¯ã <literal><hibernate-mapping/></"
+"literal> è¦ç´ å
㧠<literal><filter-def/></literal> è¦ç´ ã使ç¨ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr "ãããã¦ãã£ã«ã¿ã¯ã¯ã©ã¹ã¸ã¨çµã³ä»ãããã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to a collection:"
+msgstr "ã¾ããã³ã¬ã¯ã·ã§ã³ã«å¯¾ãã¦ã¯æ¬¡ã®ããã«ãªãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr "ã©ã¡ãã«å¯¾ãã¦ã (ã¾ãããããããè¤æ°) åæã«è¨å®ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, and <literal>disableFilter(String filterName)</literal>. By "
+"default, filters are <emphasis>not</emphasis> enabled for a given session. "
+"Filters must be enabled through use of the <literal>Session.enableFilter()</"
+"literal> method, which returns an instance of the <literal>Filter</literal> "
+"interface. If you used the simple filter defined above, it would look like "
+"this:"
+msgstr ""
+"<literal>Session</literal> ä¸ã®ã¡ã½ãã㯠<literal>enableFilter(String "
+"filterName)</literal>ã <literal>getEnabledFilter(String filterName)</"
+"literal>ã <literal>disableFilter(String filterName)</literal> ã§ããããã©ã«"
+"ãã§ã¯ããã£ã«ã¿ã¯ä¸ããããã»ãã·ã§ã³ã«å¯¾ãã¦ä½¿ç¨ <emphasis>ã§ãã¾ãã</"
+"emphasis> ã <literal>Filter</literal> ã¤ã³ã¹ã¿ã³ã¹ãè¿ãå¤ã¨ãã "
+"<literal>Session.enabledFilter()</literal> ã¡ã½ããã使ããã¨ã§ããã£ã«ã¿ã¯æ"
+"示çã«ä½¿ç¨å¯è½ã¨ãªãã¾ããä¸ã§å®ç¾©ããåç´ãªãã£ã«ã¿ã®ä½¿ç¨ã¯ããã®ããã«ãªã"
+"ã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Methods on the org.hibernate.Filter interface do allow the method-chaining "
+"common to much of Hibernate."
+msgstr ""
+"org.hibernate.Filter ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ã¡ã½ããã¯ã Hibernate ã®å¤ãã«å
±éã"
+"ã¦ããã¡ã½ããé£éã許ãã¦ãããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is a full example, using temporal data with an effective "
+"record date pattern:"
+msgstr "æå¹ãªã¬ã³ã¼ããã¼ã¿ãã¿ã¼ã³ãæã¤ä¸æãã¼ã¿ã使ã£ãå®å
¨ãªä¾ã§ãï¼"
+
+#. Tag: para
+#, 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: para
+#, no-c-format
+msgid ""
+"Even though a salary constraint was mentioned explicitly on the results in "
+"the above HQL, because of the enabled filter, the query will return only "
+"currently active employees who have a salary greater than one million "
+"dollars."
+msgstr ""
+"ä¸è¨ã® HQL ã§ã¯ãçµæã®çµ¦æã®å¶ç´ã«ã¤ãã¦æ示çã«è§¦ããã ãã§ãããæå¹ã«ãªã£"
+"ã¦ãããã£ã«ã¿ã®ãããã§ããã®ã¯ã¨ãªã¯çµ¦æã100ä¸ãã«ä»¥ä¸ã®ç¾å½¹ã®ç¤¾å¡ã ããè¿"
+"ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to use filters with outer joining, either through HQL or load "
+"fetching, be careful of the direction of the condition expression. It is "
+"safest to set this up for left outer joining. Place the parameter first "
+"followed by the column name(s) after the operator."
+msgstr ""
+"注è¨ï¼ (HQL ããã¼ããã§ããã§ï¼å¤é¨çµåãæã¤ãã£ã«ã¿ã使ãã¤ãããªããæ¡ä»¶"
+"å¼ã®æ¹åã«æ³¨æãã¦ãã ãããããã¯å·¦å¤é¨çµåã®ããã«è¨å®ããã®ãæãå®å
¨ã§"
+"ããä¸è¬çã«ãæ¼ç®åã®å¾ã«ã©ã åã«ç¶ãã¦æåã®ãã©ã¡ã¼ã¿ãé
ç½®ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After being defined, a filter might be attached to multiple entities and/or "
+"collections each with its own condition. This can be problematic when the "
+"conditions are the same each time. Using <literal><filter-def/></"
+"literal> allows you to definine a default condition, either as an attribute "
+"or CDATA:"
+msgstr ""
+"å®ç¾©ãããã¨ããã£ã«ã¿ã¯ãããããç¬èªã®ã³ã³ãã£ã·ã§ã³ãæã¤è¤æ°ã®ã¨ã³ãã£"
+"ãã£ãã³ã¬ã¯ã·ã§ã³ã«ã¢ã¿ããããã¾ããã³ã³ãã£ã·ã§ã³ããã¤ãåãå ´åãããã¯"
+"é¢åããããã¾ãããå¾ã£ã¦ã <literal><filter-def/></literal> ã¯ãå±æ§"
+"ã¾ã㯠CDATA ã¨ãã¦ããã©ã«ãã³ã³ãã£ã·ã§ã³ãå®ç¾©ãããã¨ãå¯è½ã«ãªãã¾ãï¼"
+
+#. Tag: para
+#, 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 ""
+"ãã®ããã©ã«ãã®ã³ã³ãã£ã·ã§ã³ã¯ãã³ã³ãã£ã·ã§ã³ãæå®ããã«ä½ãã«ã¢ã¿ããã"
+"ããå ´åãã¤ã§ã使ããã¾ããããã¯ãç¹å®ã®ã±ã¼ã¹ã«ããã¦ããã©ã«ãã®ã³ã³ãã£"
+"ã·ã§ã³ããªã¼ãã¼ã©ã¤ããããã£ã«ã¿ã¼ã®ã¢ã¿ããã¡ã³ãã®ä¸é¨ã¨ãã¦ãç¹å®ã®ã³ã³"
+"ãã£ã·ã§ã³ãä¸ãããã¨ãã§ãããã¨ãæå³ãã¾ãã"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+#~ msgstr ""
+#~ "<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+#~ msgstr ""
+#~ "session.enableFilter(\"myFilter\").setParameter(\"myFilterParam\", \"some-"
+#~ "value\");"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "Session session = ...;\n"
+#~ "session.enabledFilter(\"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();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+#~ msgstr ""
+#~ "<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/inheritance_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/inheritance_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/inheritance_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,935 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-07 09:59+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Inheritance mapping"
+msgstr "ç¶æ¿ãããã³ã°"
+
+#. Tag: title
+#, no-c-format
+msgid "The three strategies"
+msgstr "3ã¤ã®æ¦ç¥"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr "Hibernate ã¯3ã¤ã®åºæ¬çãªç¶æ¿ã®ãããã³ã°æ¦ç¥ããµãã¼ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr "ã¯ã©ã¹é層ãã¨ã®ãã¼ãã« ï¼table-per-class-hierarchyï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "table per subclass"
+msgstr "ãµãã¯ã©ã¹ãã¨ã®ãã¼ãã« ï¼table-per-subclassï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr "å
·è±¡ã¯ã©ã¹ãã¨ã®ãã¼ãã« ï¼table-per-concrete-classï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In addition, Hibernate supports a fourth, slightly different kind of "
+"polymorphism:"
+msgstr ""
+"å ãã¦4ã¤ç®ã«ã Hibernate ã¯ãããã«ç°ãªãæ§è³ªãæã£ãããªã¢ã¼ãã£ãºã ããµ"
+"ãã¼ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr "æé»çããªã¢ã¼ãã£ãºã "
+
+#. Tag: para
+#, 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><subclass></literal>, "
+"<literal><joined-subclass></literal> and <literal><union-"
+"subclass></literal> mappings under the same root <literal><class></"
+"literal> element. It is possible to mix together the table per hierarchy and "
+"table per subclass strategies under the the same <literal><class></"
+"literal> element, by combining the <literal><subclass></literal> and "
+"<literal><join></literal> elements (see below for an example)."
+msgstr ""
+"åä¸ã®ç¶æ¿é層ã®ç°ãªããã©ã³ãã«å¯¾ãã¦ç°ãªããããã³ã°æ¦ç¥ã使ããã¨ãã§ãã¾"
+"ãããã®å ´åã«ã¯å
¨ä½ã®é層ã«æ¸¡ãããªã¢ã¼ãã£ãºã ãå®ç¾ããããã«æé»çããª"
+"ã¢ã¼ãã£ãºã ã使ç¨ãã¾ãããããã Hibernate ã¯åãã«ã¼ã <literal><"
+"class></literal> è¦ç´ å
㧠<literal><subclass></literal> ãããã³"
+"ã°ã <literal><joined-subclass></literal> ãããã³ã°ã <literal><"
+"union-subclass></literal> ãããã³ã°ã®åæ使ç¨ããµãã¼ããã¦ãã¾ããã "
+"<literal><subclass></literal> è¦ç´ 㨠<literal><join></literal> è¦"
+"ç´ ãçµã¿åããããã¨ã§ãåä¸ <literal><class></literal> è¦ç´ å
ã§ã® "
+"table-per-hierarchy æ¦ç¥ã¨ table-per-subclass æ¦ç¥ã®åæ使ç¨ã¯å¯è½ã§ãã次ã®"
+"ä¾ãè¦ã¦ãã ããã"
+
+#. Tag: para
+#, 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 ""
+"<literal>subclass</literal>ã <literal>union-subclass</literal> 㨠"
+"<literal>joined-subclass</literal> ãããã³ã°ãè¤æ°ã®ãããã³ã°ããã¥ã¡ã³ãã«"
+"å®ç¾©ãããã¨ãåºæ¥ã <literal>hibernate-mapping</literal> ã®ç´ä¸ã«é
ç½®ãã¾"
+"ããããã¯æ°ãããããã³ã°ãã¡ã¤ã«ã追å ããã ãã§ãã¯ã©ã¹é層ãæ¡å¼µã§ããã¨"
+"ãããã¨ã§ããããããããããããã¹ã¼ãã¼ã¯ã©ã¹ãæå®ãã¦ããµãã¯ã©ã¹ããã"
+"ã³ã°ã« <literal>extends</literal> å±æ§ãè¨è¿°ããªããã°ãªãã¾ããã注è¨ï¼ãã®"
+"ç¹å¾´ã«ããã以åã¯ãããã³ã°ããã¥ã¡ã³ãã®é çªãéè¦ã§ããã Hibernate3 ãã"
+"ã¯ã extends ãã¼ã¯ã¼ãã使ãå ´åããããã³ã°ããã¥ã¡ã³ãã®é çªã¯åé¡ã«ãªãã¾"
+"ãããï¼ã¤ã®ãããã³ã°ãã¡ã¤ã«å
ã§é çªä»ããè¡ãã¨ãã¯ãä¾ç¶ã¨ãã¦ããµãã¯ã©"
+"ã¹ãå®ç¾©ããåã«ã¹ã¼ãã¼ã¯ã©ã¹ãå®ç¾©ããå¿
è¦ãããã¾ãã)"
+
+#. Tag: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr "ã¯ã©ã¹é層ãã¨ã®ãã¼ãã«ï¼table-per-class-hierarchyï¼"
+
+#. Tag: para
+#, 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 ""
+"ä¾ãã°ãã¤ã³ã¿ã¼ãã§ã¼ã¹ <literal>Payment</literal> ã¨ããããå®è£
ãã "
+"<literal>CreditCardPayment</literal>ã <literal>CashPayment</literal>ã "
+"<literal>ChequePayment</literal> ãããã¨ãã¾ããé層ãã¨ã®ãã¼ãã«ãããã³ã°"
+"ã¯ä»¥ä¸ã®ããã«ãªãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Exactly one table is required. There is a limitation of this mapping "
+"strategy: columns declared by the subclasses, such as <literal>CCTYPE</"
+"literal>, cannot have <literal>NOT NULL</literal> constraints."
+msgstr ""
+"ã¡ããã©ä¸ã¤ã®ãã¼ãã«ãå¿
è¦ã§ãããã®ãããã³ã°æ¦ç¥ã«ã¯ä¸ã¤å¤§ããªå¶éããã"
+"ã¾ãã <literal>CCTYPE</literal> ã®ãããªããµãã¯ã©ã¹ã§å®£è¨ãããã«ã©ã 㯠"
+"<literal>NOT NULL</literal> å¶ç´ãæã¦ã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass"
+msgstr "ãµãã¯ã©ã¹ãã¨ã®ãã¼ãã« ï¼table-per-subclassï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr "table-per-subclass ãããã³ã°ã¯ä»¥ä¸ã®ããã«ãªãã¾ã:"
+
+#. Tag: para
+#, 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 ""
+"ãã®ãããã³ã°ã«ã¯4ã¤ã®ãã¼ãã«ãå¿
è¦ã§ãã3ã¤ã®ãµãã¯ã©ã¹ãã¼ãã«ã¯ã¹ã¼ãã¼"
+"ã¯ã©ã¹ãã¼ãã«ã¨ã®é¢é£ã示ã主ãã¼ãæã£ã¦ãã¾ã ï¼å®éãé¢ä¿ã¢ãã«ä¸ã¯ä¸å¯¾ä¸"
+"é¢é£ã§ãï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr "discriminator ãç¨ãã table-per-subclass"
+
+#. Tag: para
+#, 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><subclass></literal> and "
+"<literal><join></literal>, as follows:"
+msgstr ""
+"Hibernate ã® table-per-subclass å®è£
ã¯ã discriminator ã«ã©ã ãå¿
è¦ã¨ããªãã"
+"ã¨ãè¦ãã¦ããã¦ãã ããã Hibernate 以å¤ã® O/R ãããã¼ã¯ã table-per-"
+"subclass ã«ç°ãªãå®è£
ãç¨ãã¾ããããã¯ãã¹ã¼ãã¼ã¯ã©ã¹ã®ãã¼ãã«ã«ã¿ã¤ã "
+"discriminator ã«ã©ã ãå¿
è¦ã¨ãã¾ãããã®ã¢ããã¼ãã¯å®è£
ãå°é£ã«ãªãã¾ããã"
+"é¢ä¿ã®è¦ç¹ããè¦ãã¨ãããæ£ç¢ºãªãã®ã§ãã table-per-subclass æ¦ç¥ã§ "
+"discriminator ã«ã©ã ã使ããããã°ã <literal><subclass></literal> 㨠"
+"<literal><join></literal> ã以ä¸ã®ããã«çµã¿åããã¦ä½¿ã£ã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate "
+"not to fetch the <literal>ChequePayment</literal> subclass data using an "
+"outer join when querying the superclass."
+msgstr ""
+"ãªãã·ã§ã³ã® <literal>fetch=\"select\"</literal> 宣è¨ã¯ãã¹ã¼ãã¼ã¯ã©ã¹ã®ã¯ã¨"
+"ãªå®è¡æã«å¤é¨çµåã使ã£ã¦ããµãã¯ã©ã¹ã® <literal>ChequePayment</literal> "
+"ãã¼ã¿ãåå¾ããªãããã«æå®ããããã®ãã®ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr "table-per-subclass 㨠table-per-class-hierarchy ã®æ··å"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can even mix the table per hierarchy and table per subclass strategies "
+"using the following approach:"
+msgstr ""
+"ãã®ã¢ããã¼ãã使ç¨ããã¨ã table-per-hierarchy 㨠table-per-subclass æ¦ç¥ã"
+"çµã¿åãããäºãå¯è½ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For any of these mapping strategies, a polymorphic association to the root "
+"<literal>Payment</literal> class is mapped using <literal><many-to-one>"
+"</literal>."
+msgstr ""
+"ãããã®ãããã³ã°æ¦ç¥ã§ãã£ã¦ããã«ã¼ãã§ãã <literal>Payment</literal> ã¯"
+"ã©ã¹ã¸ã®ããªã¢ã¼ãã£ãã¯ãªé¢é£ã¯ <literal><many-to-one></literal> ã"
+"使ã£ã¦ãããã³ã°ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr "å
·è±¡ã¯ã©ã¹ãã¨ã®ãã¼ãã«ï¼table-per-concrete-classï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two ways we can map the table per concrete class strategy. First, "
+"you can use <literal><union-subclass></literal>."
+msgstr ""
+"table-per-concrete-class æ¦ç¥ã®ãããã³ã°ã«å¯¾ããã¢ããã¼ãã¯ã2ã¤ããã¾ãã1"
+"ã¤ç®ã¯ <literal><union-subclass></literal> ãå©ç¨ããæ¹æ³ã§ãã"
+
+#. Tag: para
+#, 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 ""
+"ãµãã¯ã©ã¹ãã¨ã«3ã¤ã®ãã¼ãã«ãå¿
è¦ã§ããããããã®ãã¼ãã«ã¯ãç¶æ¿ããããã£"
+"ãå«ãã ãã¯ã©ã¹ã®å
¨ã¦ã®ããããã£ã«å¯¾ããã«ã©ã ãå®ç¾©ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ãã®ã¢ããã¼ãã«ã¯å¶éãããã¾ããããã¯ãããããã£ãã¹ã¼ãã¼ã¯ã©ã¹ã«ããã"
+"ã³ã°ããã¦ããå ´åãå
¨ã¦ã®ãµãã¯ã©ã¹ã«ããã¦ã«ã©ã åãåãã§ãªããã°ãªããªã"
+"ã¨ãããã®ã§ããï¼Hibernate ã®ä»å¾ã®ãªãªã¼ã¹ã§ç·©åãããããããã¾ããï¼ã "
+"union subclass ç¶æ¿ã§ã¯èå¥åçææ¦ç¥ã使ç¨ã§ãã¾ããã主ãã¼ãçæããããã®"
+"ã·ã¼ãã¯ãå
¨ã¦ã® union subclass ã®é層å
ã§å
±æããå¿
è¦ãããããã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your superclass is abstract, map it with <literal>abstract=\"true\"</"
+"literal>. If it is not abstract, an additional table (it defaults to "
+"<literal>PAYMENT</literal> in the example above), is needed to hold "
+"instances of the superclass."
+msgstr ""
+"ããã¹ã¼ãã¼ã¯ã©ã¹ãæ½è±¡ã¯ã©ã¹ãªãã <literal>abstract=\"true\"</literal> ã¨"
+"ãããã³ã°ãã¾ãããã¡ãããã¹ã¼ãã¼ã¯ã©ã¹ãæ½è±¡ã¯ã©ã¹ã§ãªããªããã¹ã¼ãã¼ã¯"
+"ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãä¿æããããã®ãã¼ãã«ã®è¿½å ãå¿
è¦ã¨ãªãã¾ã (ä¸ã®ä¾ã§ã®"
+"ããã©ã«ã㯠<literal>PAYMENT</literal> )ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr "æé»çããªã¢ã¼ãã£ãºã ãç¨ãã table-per-concrete-class"
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr "ããä¸ã¤ã®ã¢ããã¼ãã¯æé»çããªã¢ã¼ãã£ãºã ã®ä½¿ç¨ã§ãï¼"
+
+#. Tag: para
+#, 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>[ <!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> "
+"declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr ""
+"<literal>Payment</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ãã©ãã«ãæ示çã«ç¤ºããã¦ããªãã"
+"ã¨ã«æ³¨æãã¦ãã ãããããã¦ã <literal>Payment</literal> ããããã£ãããã"
+"ãã®ãµãã¯ã©ã¹ã«ãããã³ã°ããã¦ãããã¨ã«ã注æãã¦ãã ãããããéè¤ãé¿ã"
+"ããã®ã§ããã°ã XML ã¨ã³ãã£ãã£ã®å©ç¨ãèãã¦ãã ããã ï¼ä¾ï¼ "
+"<literal>DOCTYPE</literal> 宣è¨ã«ããã <literal>[ <!ENTITY allproperties "
+"SYSTEM \"allproperties.xml\"> ]</literal> ã¨ããããã³ã°ã«ããã "
+"<literal>&allproperties;</literal>ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The disadvantage of this approach is that Hibernate does not generate SQL "
+"<literal>UNION</literal>s when performing polymorphic queries."
+msgstr ""
+"ãã®ã¢ããã¼ãã®æ¬ ç¹ã¯ã Hibernate ãããªã¢ã¼ãã£ãã¯ãªã¯ã¨ãªã®å®è¡æã« SQL "
+"<literal>UNION</literal> ãçæããªãç¹ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For this mapping strategy, a polymorphic association to <literal>Payment</"
+"literal> is usually mapped using <literal><any></literal>."
+msgstr ""
+"ãã®ãããã³ã°æ¦ç¥ã«å¯¾ãã¦ã¯ã <literal>Payment</literal> ã¸ã®ããªã¢ã¼ãã£ã"
+"ã¯ãªé¢é£ã¯å¸¸ã«ã <literal><any></literal> ã使ã£ã¦ãããã³ã°ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr "ä»ã®ç¶æ¿ãããã³ã°ã¨æé»çããªã¢ã¼ãã£ãºã ã®çµã¿åãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Since the subclasses are each mapped in their own <literal><class></"
+"literal> element, and since <literal>Payment</literal> is just an "
+"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 ""
+"ãã®ãããã³ã°ã«ã¤ãã¦ã®æ´ãªã注æç¹ãããã¾ãããµãã¯ã©ã¹ãèªèº«ã "
+"<literal><class></literal> è¦ç´ ã¨ãã¦ãããã³ã°ãã¦ããã®ã§ãï¼ã㤠"
+"<literal>Payment</literal> ã¯åãªãã¤ã³ã¿ã¼ãã§ã¼ã¹ãªã®ã§ï¼ãããããã®ãµãã¯"
+"ã©ã¹ã¯ç°¡åã«ãã®ä»ã®ç¶æ¿é層ã®ä¸é¨ã¨ãªãã¾ããï¼ããããä»ã¾ã§ã©ãã "
+"<literal>Payment</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å¯¾ããããªã¢ã¼ãã£ãã¯ãªã¯ã¨ãªã"
+"使ç¨ãããã¨ãã§ãã¾ãï¼"
+
+#. Tag: para
+#, 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 ""
+"ããä¸åº¦è¿°ã¹ã¾ããã <literal>Payment</literal> ã¯æ示çã«å®ç¾©ããã¾ãããã"
+"ãã <literal>Payment</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã«å¯¾ãã¦ã¯ã¨ãªãå®è¡ãããªã "
+"ï¼ä¾ãã° <literal>from Payment</literal> ç¯ã使ã£ã¦ï¼ã Hibernate ã¯èªåçã« "
+"<literal>CreditCardPayment</literal> ï¼ã¨ CreditCardPayment ã®ãµãã¯ã©ã¹ã "
+"<literal>Payment</literal> ã®å®è£
ã§ããããï¼ãããã³ã "
+"<literal>CashPayment</literal> ã <literal>ChequePayment</literal> ã®ã¤ã³ã¹ã¿"
+"ã³ã¹ãè¿ãã¾ãã <literal>NonelectronicTransaction</literal> ã¤ã³ã¹ã¿ã³ã¹ã¯è¿"
+"ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Limitations"
+msgstr "å¶é"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are limitations to the \"implicit polymorphism\" approach to the table "
+"per concrete-class mapping strategy. There are somewhat less restrictive "
+"limitations to <literal><union-subclass></literal> mappings."
+msgstr ""
+"table-per-concrete-class ãããã³ã°æ¦ç¥ã¸ã®ãæé»çããªã¢ã¼ãã£ãºã ãã¢ããã¼"
+"ãã«ã¯ããã¤ãã®å¶éãããã¾ãã <literal><union-subclass></literal> "
+"ãããã³ã°ã«å¯¾ãã¦ãå°ãå¼±ãã®å¶éãããã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table shows the limitations of table per concrete-class "
+"mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+"次ã®ãã¼ãã«ã«ã Hibernate ã«ããã table-per-concrete-class ãããã³ã°ã®å¶é"
+"ãæé»çããªã¢ã¼ãã£ãºã ã®å¶éã示ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr "ç¶æ¿ãããã³ã°ã®æ©è½"
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr "ç¶æ¿æ¦ç¥"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr "å¤å¯¾å¤ã®ããªã¢ã¼ãã£ãºã "
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr "ä¸å¯¾ä¸ã®ããªã¢ã¼ãã£ãºã "
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr "ä¸å¯¾å¤ã®ããªã¢ã¼ãã£ãºã "
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr "å¤å¯¾å¤ã®ããªã¢ã¼ãã£ãºã "
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr "ããªã¢ã¼ãã£ãã¯ãª <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "ããªã¢ã¼ãã£ãºã ã使ã£ãã¯ã¨ãª"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr "ããªã¢ã¼ãã£ãºã ã使ã£ãçµå"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Outer join fetching"
+msgstr "å¤é¨çµåã«ãããã§ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "table per class-hierarchy"
+msgstr "ã¯ã©ã¹é層ãã¨ã®ãã¼ãã« ï¼table-per-class-hierarchyï¼"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr "<many-to-one>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr "<one-to-one>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr "<one-to-many>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr "<many-to-many>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr "s.get(Payment.class, id)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr "ããªã¢ã¼ãã£ãã¯ãª <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr "table per concrete-class (union-subclass)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+msgstr ""
+"<literal><one-to-many></literal> ( <literal>inverse=\"true\"</literal> "
+"ã®ããã«éããã)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr "table per concrete class (implicit polymorphism)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><any></literal>"
+msgstr "ããªã¢ã¼ãã£ãã¯ãª <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr "<many-to-any>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+msgstr ""
+"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
+
+#, fuzzy
+#~ msgid "table per class-heirarchy"
+#~ msgstr "table per class-hierarchy"
+
+#, fuzzy
+#~ msgid "Polymorphic many-to-one: <code><any></code>"
+#~ msgstr "å¤å¯¾ä¸ã®ããªã¢ã¼ãã£ãºã "
+
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "<para>ãµãã¯ã©ã¹ãã¨ã®ãã¼ãã« ï¼table-per-subclassï¼ </para>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ " <hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value="
+#~ "\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-"
+#~ "value=\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class="
+#~ "\"Payment\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/"
+#~ ">\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN"
+#~ "\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "<entry>table per subclass</entry>"
+
+#~ msgid "from Payment p"
+#~ msgstr "from Payment p"
+
+#~ msgid "supported"
+#~ msgstr "ãµãã¼ã"
+
+#~ msgid "<any>"
+#~ msgstr "<any>"
+
+#~ msgid "not supported"
+#~ msgstr "ãµãã¼ããã¦ãã¾ãã"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/performance.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/performance.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/performance.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2608 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-20 14:25+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr "ããã©ã¼ãã³ã¹ã®æ¹å"
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr "ãã§ããæ¦ç¥"
+
+#. 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 ""
+"<emphasis>ãã§ããæ¦ç¥</emphasis> ã¯ãã¢ããªã±ã¼ã·ã§ã³ãé¢é£ãããã²ã¼ããã"
+"å¿
è¦ãããã¨ãã«ã Hibernate ãé¢é£ãªãã¸ã§ã¯ãã復å
ããããã«ä½¿ç¨ããæ¦ç¥ã§"
+"ãããã§ããæ¦ç¥ã¯ O/R ãããã³ã°ã®ã¡ã¿ãã¼ã¿ã«å®£è¨ããããç¹å®ã® HQL ã "
+"<literal>Criteria</literal> ã¯ã¨ãªã§ãªã¼ãã¼ã©ã¤ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr "Hibernate3 ã¯æ¬¡ã«ç¤ºããã§ããæ¦ç¥ãå®ç¾©ãã¦ãã¾ã:"
+
+#. 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>çµåãã§ãã</emphasis> - Hibernate 㯠<literal>OUTER JOIN</"
+"literal> ã使ã£ã¦ãé¢é£ããã¤ã³ã¹ã¿ã³ã¹ãã³ã¬ã¯ã·ã§ã³ãï¼ã¤ã® "
+"<literal>SELECT</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>ã»ã¬ã¯ããã§ãã</emphasis> - 2åç®ã® <literal>SELECT</literal> ã§"
+"é¢é£ããã¨ã³ãã£ãã£ãã³ã¬ã¯ã·ã§ã³ã復å
ãã¾ãã <literal>lazy=\"false\"</"
+"literal> ã§æ示çã«é
延ãã§ãããç¡å¹ã«ããªããã°ããã®2åç®ã® 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>ãµãã»ã¬ã¯ããã§ãã</emphasis> - 2åç®ã® <literal>SELECT</"
+"literal> ã§ãç´åã®ã¯ã¨ãªããã§ããã§å¾©å
ãããã¹ã¦ã®è¦ç´ ã«é¢é£ããã³ã¬ã¯ã·ã§"
+"ã³ã復å
ãã¾ãã <literal>lazy=\"false\"</literal> ã§æ示çã«é
延ãã§ãããç¡"
+"å¹ã«ããªããã°ããã®2åç®ã® 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>ããããã§ãã</emphasis> - ã»ã¬ã¯ããã§ããã®ããã®æé©åãããæ¦"
+"ç¥ - Hibernate ã¯ã¨ã³ãã£ãã£ã®ã¤ã³ã¹ã¿ã³ã¹ãã³ã¬ã¯ã·ã§ã³ã®ä¸ç¾¤ã1åã® "
+"<literal>SELECT</literal> ã§å¾©å
ãã¾ããããã¯ä¸»ãã¼ãå¤é¨ãã¼ã®ãªã¹ããæå®"
+"ãããã¨ã«ããè¡ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr "Hibernate ã¯æ¬¡ã«ç¤ºãæ¦ç¥ã¨ãåºå¥ããã¾ã: "
+
+#. 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>å³æãã§ãã</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>é
延ã³ã¬ã¯ã·ã§ã³ãã§ãã</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>ãç¹å¥ãªé
延ãã³ã¬ã¯ã·ã§ã³ãã§ãã</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>ãããã·ãã§ãã</emphasis> - åä¸å¤é¢é£ã¯ãèå¥åã® getter 以å¤ã®"
+"ã¡ã½ãããé¢é£ãªãã¸ã§ã¯ãã§å¼ã³åºãããã¨ãã«ãã§ããããã¾ãã"
+
+#. 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>ããããã·ãªãããã§ãã</emphasis> - åä¸å¤é¢é£ã¯ãã¤ã³ã¹ã¿ã³ã¹å¤"
+"æ°ã«ã¢ã¯ã»ã¹ãããã¨ãã«ãã§ããããã¾ãããããã·ãã§ããã¨æ¯è¼ããã¨ããã®"
+"æ¹æ³ã¯é
延ã®åº¦åããå°ãªãï¼é¢é£ã¯èå¥åã«ã¢ã¯ã»ã¹ããã ãã§ããã§ããããã¾"
+"ãï¼ã§ãããããééçã§ãã¢ããªã±ã¼ã·ã§ã³ã«ãããã·ãåå¨ããªãããã«è¦ãã¾"
+"ãããã®æ¹æ³ã¯ãã«ãæã®ãã¤ãã³ã¼ãçµã¿è¾¼ã¿ãå¿
è¦ã«ãªãã使ãå ´é¢ã¯ã¾ãã§"
+"ãã"
+
+#. 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>é
延å±æ§ãã§ãã</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>fetch</literal> ã¯ããã©ã¼"
+"ãã³ã¹ãã¥ã¼ãã³ã°ã«ä½¿ãã¾ãã <literal>lazy</literal> ã¯ããã¯ã©ã¹ã®åé¢ãã"
+"ãã¤ã³ã¹ã¿ã³ã¹ã®ãã¡ãã©ã®ãã¼ã¿ã常ã«ä½¿ç¨å¯è½ã«ãããã®åã決ããå®ç¾©ãã¾"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr "é
延é¢é£ã®åã"
+
+#. 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 ""
+"ããã©ã«ãã§ã¯ã Hibernate3 ã¯ã³ã¬ã¯ã·ã§ã³ã«å¯¾ãã¦ã¯é
延ã»ã¬ã¯ããã§ããã使"
+"ããåä¸å¤é¢é£ã«ã¯é
延ãããã·ãã§ããã使ãã¾ãããããã®ããã©ã«ãåä½ã¯ã»"
+"ã¼ãã¹ã¦ã®ã¢ããªã±ã¼ã·ã§ã³ã®ã»ã¼ãã¹ã¦ã®é¢é£ã§æå³ãããã¾ãã"
+
+#. 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 ""
+"<emphasis>注:</emphasis><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 ããªã¼ãã³ãã¦ããã³ã³ããã¹ãã®å¤ããé
延é¢é£ã«ã¢ã¯ã»ã¹"
+"ããã¨ãä¾å¤ãçºçãã¾ããä¾ï¼"
+
+#. 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> ãã¯ãã¼ãºãããã¨ãã permissions ã³ã¬ã¯ã·ã§ã³ã¯"
+"åæåããã¦ããªãããããã®ã³ã¬ã¯ã·ã§ã³ã¯èªèº«ã®ç¶æ
ããã¼ãã§ãã¾ããã "
+"<emphasis>Hibernate ã¯åãé¢ããããªãã¸ã§ã¯ãã®é
延åæåã¯ãµãã¼ããã¦ãã¾"
+"ãã</emphasis> ãä¿®æ£æ¹æ³ã¨ãã¦ãã³ã¬ã¯ã·ã§ã³ããèªã¿è¾¼ã¿ãè¡ãã³ã¼ãããã©"
+"ã³ã¶ã¯ã·ã§ã³ãã³ãããããç´åã«ç§»åããã¾ãã"
+
+#. 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 ã¯æçµçã«ã¯ãã©ã³ã¶ã¯ã·ã§ã³æ¯ã«ã»ã¼å®å
¨ãªãã¼ã¿ãã¼ã¹ãã¡ã¢ãªã®ä¸"
+"ã«ãã§ãããããã¨ã«ãªãã§ãããã"
+
+#. 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 ""
+"ä»æ¹ã§ã¯ãç¹å®ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«ããã¦ã»ã¬ã¯ããã§ããã®ä»£ããã«çµåãã§ã"
+"ãï¼å½ç¶ããã¯é
延å¦çã§ã¯ãªããªãã¾ãï¼ãé¸æããããã¨ãæã
ããã¾ãããã"
+"ãããã§ããæ¦ç¥ãã«ã¹ã¿ãã¤ãºããæ¹æ³ããè¦ããã¾ãã Hibernate3 ã§ã¯ã"
+"ãã§ããæ¦ç¥ãé¸æããä»çµã¿ã¯åä¸å¤é¢é£ã¨ã³ã¬ã¯ã·ã§ã³ã§å¤ããã¯ããã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr "ãã§ããæ¦ç¥ã®ãã¥ã¼ãã³ã°"
+
+#. 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 ã»ã¬ã¯ãåé¡ã¨ãã大ããªå¼±ç¹ãããããã"
+"ãããã³ã°å®ç¾©ã§çµåãã§ãããæå¹ã«ãããã¨ãã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+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> ã«ãã復å
"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval that happens implicitly when an association is navigated"
+msgstr "é¢é£ã«ããã²ã¼ãããã¨ãã«çºçããæé»çãªå¾©å
"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr "<literal>Criteria</literal> ã¯ã¨ãª"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr "<literal>ãµãã»ã¬ã¯ã</literal> ãã§ããã使ã HQL ã¯ã¨ãª"
+
+#. 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 ã¯ã¨ãªãå®è¡ããããã«ããã¤ã"
+"ã® SELECT æãå³æå®è¡ããããã¨ãããã®ã§æ³¨æãã¦ãã ããã"
+
+#. 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 ã«ååã®ã»ã¬ã¯ãã§å¤é¨çµåã使ã£ã¦é¢é£ãå
ã«ãã§ããããããã«æå®"
+"ãã¦ãã¾ãã <literal>Criteria</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> ã§ä½¿ããããã§ãã"
+"æ¦ç¥ãå¤ãããã¨æããã¨ãã«ã¯ãåç´ã« <literal>Criteria</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\" ã¨å¼ãã§ãããã®ã¨åã"
+"ã§ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
+msgstr ""
+"N+1 ã»ã¬ã¯ãåé¡ãé¿ããããã®ã¾ã£ããéãæ¹æ³ã¯ã第2ã¬ãã«ãã£ãã·ã¥ã使ãã"
+"ã¨ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr "åä¸ç«¯é¢é£ãããã·"
+
+#. 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 ""
+"ã³ã¬ã¯ã·ã§ã³ã®é
延ãã§ããã¯ã Hibernate èªèº«ã®å®è£
ã«ããæ°¸ç¶ã³ã¬ã¯ã·ã§ã³ã"
+"使ã£ã¦å®ç¾ãã¦ãã¾ããããããåä¸ç«¯é¢é£ã«ãããé
延å¦çã§ã¯ãéãä»çµã¿ãå¿
"
+"è¦ã§ãã対象ã®é¢é£ã¨ã³ãã£ãã£ã¯ãããã·ã§ãªããã°ãªãã¾ããã Hibernate ã¯"
+"ï¼ãã°ããã 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> é¢é£ã®é
延ãã§ãããå¯è½ã«ãã¦ãã¾ãã"
+
+#. 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> å±æ§ã«ãã£ã¦ãã¯ã©ã¹ã®ãããã·"
+"ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¨ãã¦ä½¿ãã¤ã³ã¿ã¼ãã§ã¼ã¹ã宣è¨ã§ãã¾ããããã©ã«ãã§ã¯ã "
+"Hibernate ã¯ãã®ã¯ã©ã¹ã®ãµãã¯ã©ã¹ã使ãã¾ãã <emphasis>ãããã·ã¯ã©ã¹ã¯å°ãª"
+"ãã¨ãããã±ã¼ã¸å¯è¦ã§ããã©ã«ãã³ã³ã¹ãã©ã¯ã¿ãå®è£
ããªããã°ãªããªããã¨ã«"
+"注æãã¦ãã ããããã¹ã¦ã®æ°¸ç¶ã¯ã©ã¹ã«ãã®ã³ã³ã¹ãã©ã¯ã¿ãæ¨å¥¨ãã¾ãã</"
+"emphasis>"
+
+#. Tag: para
+#, no-c-format
+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> ã§ãã£ãã¨ãã¦ãã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr "第äºã«ããããã·ã® <literal>==</literal> ã¯æç«ããªããã¨ãããã¾ãã"
+
+#. 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 ""
+"ããããããã¯è¦ããã»ã©æªãç¶æ³ã¨ããããã§ã¯ããã¾ããããã¨ãç°ãªã£ããã"
+"ãã·ãªãã¸ã§ã¯ãã¸ã®äºã¤ã®åç
§ããã£ãã¨ãã¦ããåºã¨ãªãã¤ã³ã¹ã¿ã³ã¹ã¯åããª"
+"ãã¸ã§ã¯ãã§ã:"
+
+#. 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 ãããã·ã使ãã¾ããã"
+
+#. 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 ""
+"æå¾ã«ãããæ°¸ç¶ãªãã¸ã§ã¯ãã®ã¤ã³ã¹ã¿ã³ã¹åæ (ä¾ãã°ãåæåå¦çãããã©ã«"
+"ãã³ã³ã¹ãã©ã¯ã¿ã®ä¸ã§) ã«ãªãããã®ãªã½ã¼ã¹ãå¿
è¦ã¨ãªããªãããã®ãªã½ã¼ã¹ã"
+"ã¾ããããã·ãéãã¦åå¾ããã¾ããå®éã«ã¯ããããã·ã¯ã©ã¹ã¯æ°¸ç¶ã¯ã©ã¹ã®ãµã"
+"ã¯ã©ã¹ã§ãã"
+
+#. 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 ã®åä¸ç¶æ¿ã¢ãã«ã®åçä¸ã®å¶éã®ããã§ãããããããã®å"
+"é¡ãé¿ãããã®ãªãããã¸ãã¹ã¡ã½ããã宣è¨ããã¤ã³ã¿ã¼ãã§ã¼ã¹ãããããæ°¸ç¶"
+"ã¯ã©ã¹ã§å®è£
ããªããã°ãªãã¾ããããããã³ã°ãã¡ã¤ã«ã§ãããã®ã¤ã³ã¿ã¼ãã§ã¼"
+"ã¹ãæå®ããå¿
è¦ãããã¾ããä¾ï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Then proxies for instances of <literal>Cat</literal> and "
+"<literal>DomesticCat</literal> can be returned by <literal>load()</literal> "
+"or <literal>iterate()</literal>."
+msgstr ""
+"第ä¸ã«ã <literal>Cat</literal> ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ <literal>DomesticCat</"
+"literal> ã«ãã£ã¹ãã§ãã¾ããããã¨ãåºã¨ãªãã¤ã³ã¹ã¿ã³ã¹ã "
+"<literal>DomesticCat</literal> ã§ãã£ãã¨ãã¦ãã§ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr "<literal>full join</literal> (ããã¦ãã®å ´å使ãã¥ãã)"
+
+#. 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> ã§ã¯ããã¾ã"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+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> ããªã¼"
+"ãã¼ã©ã¤ãããªãã¨ãï¼"
+
+#. 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> ã"
+"ãªã¼ãã¼ã©ã¤ãããªãã¨ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr "èå¥åã® getter ã¡ã½ãã"
+
+#. 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> ã"
+"ãªã¼ãã¼ã©ã¤ãããæ°¸ç¶ã¯ã©ã¹ãæ¤åºãã¾ãã"
+
+#. 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=\"proxy\"</literal> ã®ä»£ããã«ã <literal>lazy="
+"\"no-proxy\"</literal> ãé¸ãã ãã¨ã§ãåå¤æã«é¢é£ããåé¡ãåé¿ãããã¨ãåº"
+"æ¥ã¾ãããããããã«ãæã®ãã¤ãã³ã¼ãçµã¿è¾¼ã¿ãå¿
è¦ã«ãªããã©ã®ãããªæä½ã§"
+"ãã£ã¦ãããã ã¡ã«ãããã·ã®åæåãè¡ããã¨ã«ãªãã§ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã¨ãããã·ã®åæå"
+
+#. 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>LazyInitializationException</literal> ã¯ã <literal>Session</"
+"literal> ã®ã¹ã³ã¼ãå¤ããåæåãã¦ããªãã³ã¬ã¯ã·ã§ã³ããããã·ã«ã¢ã¯ã»ã¹ãã"
+"ãã¨ãã«ã Hibernate ã«ãã£ã¦ã¹ãã¼ããã¾ããããªãã¡ãã³ã¬ã¯ã·ã§ã³ããããã·"
+"ã¸ã®åç
§ãæã¤ã¨ã³ãã£ãã£ãåé¢ãããç¶æ
ã®æã§ãã"
+
+#. 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 ""
+"<literal>Session</literal> ãã¯ãã¼ãºããåã«ãããã·ãã³ã¬ã¯ã·ã§ã³ã®åæåã"
+"確å®ã«è¡ãããã¨ããããã¾ãããã¡ããã <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 ""
+"static ã¡ã½ããã® <literal>Hibernate.initialize()</literal> ã "
+"<literal>Hibernate.isInitialized()</literal> ã¯é
延åæåã®ã³ã¬ã¯ã·ã§ã³ããã"
+"ãã·ãæ±ãã¨ãã«ä¾¿å©ãªæ¹æ³ãã¢ããªã±ã¼ã·ã§ã³ã«æä¾ãã¾ãã "
+"<literal>Hibernate.initialize(cat)</literal> ã¯ã <literal>Session</literal> "
+"ããªã¼ãã³ãã¦ããéã㯠<literal>cat</literal> ãããã·ãå¼·å¶çã«åæåãã¾"
+"ãã <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> ããªã¼ãã³ã«ãã¦ããæ¹æ³ãããã¾ããããã¤ãã®ã¢ã"
+"ãªã±ã¼ã·ã§ã³ã®ã¢ã¼ããã¯ãã£ã§ã¯ãç¹ã« Hibernate ã«ãããã¼ã¿ã¢ã¯ã»ã¹ãè¡ã"
+"ã³ã¼ãã¨ãããã使ãã³ã¼ããç°ãªãã¢ããªã±ã¼ã·ã§ã³ã®ã¬ã¤ã¤ã¼ããç©ççã«ç°ãª"
+"ãããã»ããµã®ã¨ãã«ã¯ãã³ã¬ã¯ã·ã§ã³ãåæåãããã¨ãã« <literal>Session</"
+"literal> ããªã¼ãã³ãã¦ãããã¨ãä¿è¨¼ããåé¡ãããã¾ãããã®åé¡ã«å¯¾ãã¦ã¯2"
+"ã¤ã®åºæ¬çãªæ¹æ³ãããã¾ã:"
+
+#. 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 ãã¼ã¹ã®ã¢ããªã±ã¼ã·ã§ã³ã§ã¯ããã¥ã¼ã®ã¬ã³ããªã³ã°ãå®äºãããªã¯ã¨ã¹ãã"
+"çµããä¸çªæå¾ã§ <literal>Session</literal> ãã¯ãã¼ãºããããã«ããµã¼ãã¬ã"
+"ããã£ã«ã¿ã使ããã¨ãã§ãã¾ãï¼ <emphasis>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> ãå¼ã³åºããï¼ãã®å¼ã³åºãã¯ã»ã"
+"ã·ã§ã³ãã¯ãã¼ãºããåã«è¡ãå¿
è¦ãããã¾ãï¼ã Hibernate ã¯ã¨ãªã® "
+"<literal>FETCH</literal> ç¯ã <literal>Criteria</literal> ã® "
+"<literal>FetchMode.JOIN</literal> ã使ã£ã¦ã³ã¬ã¯ã·ã§ã³ãå
ã«å¾©å
ãã¾ããæ®é"
+"㯠<emphasis>Session Facade</emphasis> ãã¿ã¼ã³ã®ä»£ããã« <emphasis>Command</"
+"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> ã"
+
+#. 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 ""
+"大ããªã³ã¬ã¯ã·ã§ã³ãåæåãããã¯ãªãããã³ã¬ã¯ã·ã§ã³ã«ã¤ãã¦ã®ãªãããã®æ
"
+"å ±ï¼ãµã¤ãºã®ãããªï¼ããã¼ã¿ã®ãµãã»ãããå¿
è¦ã¨ãããã¨ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> ã¡ã½ããã¯ãã³ã¬ã¯ã·ã§ã³å
¨ä½ãåæåããå¿
"
+"è¦ãªãã«ãã³ã¬ã¯ã·ã§ã³ã®ãµãã»ããã復å
ããããã«å¹æçã«ä½¿ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr "ããããã§ããã®ä½¿ç¨"
+
+#. 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 ã¯ããã¤ãã®åæåãã¦ããªãããã"
+"ã·ããã¼ããããã¨ãã§ãã¾ããããããã§ããã¯é
延ã»ã¬ã¯ããã§ããæ¦ç¥ã«å¯¾ã"
+"ãæé©åã§ããããããã§ããã®èª¿æ´ã«ã¯ï¼ã¤ã®æ¹æ³ãããã¾ããã¯ã©ã¹ã¬ãã«ã¨ã³"
+"ã¬ã¯ã·ã§ã³ã¬ãã«ã§ãã"
+
+#. 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> ã®ã"
+"ããã·ã§ãããã³ã°ããã¦ãã¾ããããä»ãã¹ã¦ã® Cat ã«å¯¾ãã¦ç¹°ãè¿ã "
+"<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."
+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>Cat</literal> ã®é
延ã³ã¬ã¯ã·ã§ã³ãæã£"
+"ã¦ããã 10 åã® Person ã <literal>Sesssion</literal> ã«ãã¼ããããã¨ãã"
+"ã¨ããã¹ã¦ã® Person ã«å¯¾ãã¦ç¹°ãè¿ã <literal>getCats()</literal> ãå¼ã³åºã"
+"ãã¨ã§ãè¨10åã® <literal>SELECT</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 㯠4 åã® "
+"<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 ""
+"ã³ã¬ã¯ã·ã§ã³ã®ããããã§ããã¯ã¢ã¤ãã ã®ãã¹ãããããªã¼ãããªãã¡ã代表çãª"
+"é¨å表ã®ãã¿ã¼ã³ãããå ´åã«ç¹ã«æç¨ã§ããï¼ããããèªã¿è¾¼ã¿ãå¤ãããªã¼ã§ã¯ "
+"<emphasis>ãã¹ããã set</emphasis> ã <emphasis>å
·ä½åãããã¹</emphasis> ã"
+"ããããé¸æã«ãªãã¾ããï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr "ãµãã»ã¬ã¯ããã§ããã®ä½¿ç¨"
+
+#. 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 ã¯ããããã¹ã¦ããã¼ããããµãã»ã¬ã¯ãã®ãªãªã¸ãã«ã¯ã¨ãªãå度å®è¡"
+"ããã¾ããããã¯ããããã§ããã¨åãæ¹æ³ã§åããå°ããã¤ã®ãã¼ãã¯è¡ãã¾ã"
+"ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Fetch profiles"
+msgstr "ãã§ããæ¦ç¥"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another way to affect the fetching strategy for loading associated objects "
+"is through something called a fetch profile, which is a named configuration "
+"associated with the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> but enabled, by name, on the <interfacename>org.hibernate."
+"Session</interfacename>. Once enabled on a <interfacename>org.hibernate."
+"Session</interfacename>, the fetch profile wull be in affect for that "
+"<interfacename>org.hibernate.Session</interfacename> until it is explicitly "
+"disabled."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"So what does that mean? Well lets explain that by way of an example. Say we "
+"have the following mappings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now normally when you get a reference to a particular customer, that "
+"customer's set of orders will be lazy meaning we will not yet have loaded "
+"those orders from the database. Normally this is a good thing. Now lets say "
+"that you have a certain use case where it is more efficient to load the "
+"customer and their orders together. One way certainly is to use \"dynamic "
+"fetching\" strategies via an HQL or criteria queries. But another option is "
+"to use a fetch profile to achieve that. Just add the following to your "
+"mapping:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now the following code will actually load both the customer <emphasis>and "
+"their orders</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Currently only join style fetch profiles are supported, but they plan is to "
+"support additional styles. See <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr "é
延ããããã£ãã§ããã®ä½¿ç¨"
+
+#. 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>ã°ã«ã¼ãã®ãã§ãã</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> å±æ§ãã»ãããã¦ãã ãã:"
+
+#. 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 ""
+"é
延ããããã£èªã¿è¾¼ã¿ã¯ãã«ãæã®ãã¤ãã³ã¼ãçµã¿è¾¼ã¿ãå¿
è¦ã¨ãã¾ããããæ°¸"
+"ç¶ã¯ã©ã¹ã«çµã¿è¾¼ã¿ãããã¦ããªããªãã Hibernate ã¯é»ã£ã¦é
延ããããã£ã®è¨å®"
+"ãç¡è¦ãã¦ãå³æãã§ããã«æ»ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "For bytecode instrumentation, use the following Ant task:"
+msgstr "ãã¤ãã³ã¼ãçµã¿è¾¼ã¿ã¯ä»¥ä¸ã® Ant ã¿ã¹ã¯ã使ã£ã¦ãã ãã: "
+
+#. 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 ã Criteria ã¯ã¨ãªã®å°å½±æ©è½ã使ããã¨ã§"
+"ãããã®æ¹æ³ã¯ãã«ãæã®ãã¤ãã³ã¼ãçµã¿è¾¼ã¿ãä¸è¦ã«ãªããããè¯ã解決æ¹æ³ã§"
+"ãã"
+
+#. 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>fetch all properties</literal> ã使ããã¨ã§ãæ®éã©ããã®ãã"
+"ããã£ã®å³æãã§ããã³ã°ãå¼·å¶ãããã¨ãåºæ¥ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr "第2ã¬ãã«ãã£ãã·ã¥"
+
+#. 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> ã¯æ°¸ç¶ãã¼ã¿ã®ãã©ã³ã¶ã¯ã·ã§ã³ã¬ãã«"
+"ã®ãã£ãã·ã¥ã§ãã class-by-class 㨠collection-by-collection ãã¨ã®ãã¯ã©ã¹"
+"ã¿ã¬ãã«ã 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 ""
+"Hibernate ã使ç¨ãããã£ãã·ã¥å®è£
ã¯ã <literal>hibernate.cache."
+"provider_class</literal> ããããã£ã« <literal>org.hibernate.cache."
+"CacheProvider</literal> ãå®è£
ããã¯ã©ã¹åãæå®ãããã¨ã§å¤æ´ã§ãã¾ãã "
+"Hibernate ã¯å¤ãã®ãªã¼ãã³ã½ã¼ã¹ã®ãã£ãã·ã¥ãããã¤ãããã«ãã¤ã³å®è£
ã§æã£"
+"ã¦ãã¾ãï¼å¾ã«ãªã¹ããããã¾ãï¼ãå ãã¦ãåã«èª¬æããããã«ãããªãèªèº«ãç¬"
+"èªã®å®è£
ããã¦ããããçµã¿è¾¼ããã¨ãåºæ¥ã¾ãããã¼ã¸ã§ã³3.2ããåã§ã¯ "
+"EhCache ãããã©ã«ãã®ãã£ãã·ã¥ãããã¤ãã§ãããã¨ã«æ³¨æãã¦ãã ããããã¼"
+"ã¸ã§ã³3.2ã§ã¯ããã¯å½ã¦ã¯ã¾ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr "ãã£ãã·ã¥ãããã¤ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr "ãã£ãã·ã¥"
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr "ãããã¤ãã¯ã©ã¹"
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr "ã¿ã¤ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr "ã¯ã©ã¹ã¿ã»ã¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr "ã¯ã¨ãªãã£ãã·ã¥ã®ãµãã¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr "Hashtableï¼è£½åç¨ã¨ãã¦æå³ãã¦ãã¾ããï¼"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr "ã¡ã¢ãª"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "EHCache"
+msgstr "EHCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr "ã¡ã¢ãªããã£ã¹ã¯"
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr "OSCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr "SwarmCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr "ã¯ã©ã¹ã¿ï¼ip ãã«ããã£ã¹ãï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr "yesï¼ã¯ã©ã¹ã¿ç¡å¹åï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr "ã¯ã©ã¹ã¿ï¼ip ãã«ããã£ã¹ãï¼ããã©ã³ã¶ã¯ã·ã§ãã«"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr "yesï¼è¤è£½ï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr "yesï¼æå»åæãå¿
è¦ï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 2"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr "<literal>org.hibernate.cache.jbc2.JBossCacheRegionFactory</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr "yesï¼ã¯ã©ã¹ã¿ç¡å¹åï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr "ãã£ãã·ã¥ã®ãããã³ã°"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><cache></literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"ã¯ã©ã¹ãã³ã¬ã¯ã·ã§ã³ã®ãããã³ã°ã® <literal><cache></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>"
+
+#. 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> (ãªãã·ã§ã³ãã¯ã©ã¹ã¾ãã¯ã³ã¬ã¯ã·ã§ã³ã®ãã¼ã«ãã¼ã "
+"ã®ããã©ã«ã) 2次ã¬ãã«ã®ãã£ãã·ã¥é åã®ååãæå®ãã¾ã"
+
+#. 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> ã¯ã å±æ§ã¬ãã«ã® lazy ãã§ããæå¹ã«"
+"ãªã£ã¦ããå ´å <literal>lazy=\"true\"</literal> ã§ãããã³ã°ãããã¨ã³ãã£"
+"ãã£ã®ããããã£ã¯ãã£ãã·ã¥ãããªãã¦ããããã¨ãæå®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Alternatively, you can specify <literal><class-cache></literal> and "
+"<literal><collection-cache></literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"ã¾ãã¯ï¼ããããæ¹æ³ã¨ãã¦ï¼ï¼ã <literal>hibernate.cfg.xml</literal> ã« "
+"<literal><class-cache></literal> 㨠<literal><collection-cache></"
+"literal> è¦ç´ ãæå®ãããã¨ãåºæ¥ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>usage</literal> attribute specifies a <emphasis>cache "
+"concurrency strategy</emphasis>."
+msgstr ""
+"<literal>usage</literal> å±æ§ã¯ <emphasis>ãã£ãã·ã¥ã®ä¸¦åæ§æ¦ç¥</emphasis> "
+"ãæå®ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr "read only æ¦ç¥"
+
+#. 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>read-only</literal> ãã£ãã·ã¥ã使ããã¨ãåºæ¥ã¾ããããã¯"
+"ãã£ã¨ãåç´ã§ãã£ã¨ãããã©ã¼ãã³ã¹ã®è¯ãæ¦ç¥ã§ããã¯ã©ã¹ã¿ã§ã®ä½¿ç¨ãå®å
¨ã«"
+"å®å
¨ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr "read/write æ¦ç¥"
+
+#. 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>read-write</"
+"literal> ãã£ãã·ã¥ãé©å½ããããã¾ããããã®ãã£ãã·ã¥æ¦ç¥ã¯ãã·ãªã¢ã©ã¤ã¶ã"
+"ã«ãªãã©ã³ã¶ã¯ã·ã§ã³åé¢ã¬ãã«ãè¦æ±ããããªãã決ãã¦ä½¿ãã¹ãã§ã¯ããã¾ã"
+"ãããããã£ãã·ã¥ã JTA ç°å¢ã§ä½¿ããããªãã JTA "
+"<literal>TransactionManager</literal> ãåå¾ããããã®æ¹æ³ã示ã "
+"<literal>hibernate.transaction.manager_lookup_class</literal> ããããã£ãæ"
+"å®ããªããã°ãªãã¾ãããä»ã®ç°å¢ã§ã¯ã <literal>Session.close()</literal> ã "
+"<literal>Session.disconnect()</literal> ãå¼ã°ããã¨ãã«ã確å®ã«ãã©ã³ã¶ã¯"
+"ã·ã§ã³ãå®äºãã¦ããªããã°ãªãã¾ãããããã¯ã©ã¹ã¿ã§ãã®æ¦ç¥ã使ããããªãã"
+"åºã¨ãªããã£ãã·ã¥ã®å®è£
ãããã¯ããµãã¼ããã¦ãããã¨ãä¿è¨¼ããªããã°ãªãã¾"
+"ãããçµã¿è¾¼ã¿ã®ãã£ãã·ã¥ãããã¤ã㯠<emphasis>ãµãã¼ããã¦ãã¾ãã</"
+"emphasis> ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr "å³å¯ã§ã¯ãªã read/write æ¦ç¥"
+
+#. 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>nonstrict-read-"
+"write</literal> ãã£ãã·ã¥ãé©å½ããããã¾ããããããã£ãã·ã¥ã JTA ç°å¢ã§ä½¿"
+"ããããªãã <literal>hibernate.transaction.manager_lookup_class</literal> ã"
+"æå®ããªããã°ãªãã¾ãããä»ã®ç°å¢ã§ã¯ã <literal>Session.close()</literal> "
+"ã <literal>Session.disconnect()</literal> ãå¼ã°ããã¨ãã«ã確å®ã«ãã©ã³ã¶ã¯"
+"ã·ã§ã³ãå®äºãã¦ããªããã°ãªãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr "transactional æ¦ç¥"
+
+#. 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 ""
+"<literal>transactional</literal> ãã£ãã·ã¥æ¦ç¥ã¯ JBoss TreeCache ã®ãããªå®"
+"å
¨ãªãã©ã³ã¶ã¯ã·ã§ãã«ãã£ãã·ã¥ãããã¤ãã®ãµãã¼ããæä¾ãã¾ãããã®ãããª"
+"ãã£ãã·ã¥ã¯ JTA ç°å¢ã§ã®ã¿ä½¿ç¨å¯è½ã§ã <literal>hibernate.transaction."
+"manager_lookup_class</literal> ãæå®ããªããã°ãªãã¾ããã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr "åæ並è¡æ§ãã£ãã·ã¥æ¦ç¥ã®ãµãã¼ã"
+
+#. Tag: para
+#, no-c-format
+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 ""
+"以ä¸ã®è¡¨ã¯ã©ã®ãããã¤ããã©ã®åæ並åæ§æ¦ç¥ã«å¯¾å¿ãããã表ãã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Concurrency Strategy Support"
+msgstr "åæ並è¡æ§ãã£ãã·ã¥æ¦ç¥ã®ãµãã¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr "read-only"
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr "å³å¯ã§ã¯ãªã read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr "read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr "transactional"
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr "ãã£ãã·ã¥ã®ç®¡ç"
+
+#. 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> ã®"
+"å
é¨ãã£ãã·ã¥ã«è¿½å ããã¾ãã"
+
+#. 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 ""
+"次㫠<literal>flush()</literal> ãå¼ã°ããã¨ããªãã¸ã§ã¯ãã®ç¶æ
ã¯ãã¼ã¿ãã¼"
+"ã¹ã¨åæåããã¾ãããããã®åæãèµ·ãããã¨ãæã¾ãªãã¨ãããè¨å¤§ãªæ°ã®ãªã"
+"ã¸ã§ã¯ããå¦çãã¦ãã¦ã¡ã¢ãªãå¹ççã«æ±ãå¿
è¦ãããã¨ãã¯ã <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 ""
+"<literal>Session</literal> ã¯ã¤ã³ã¹ã¿ã³ã¹ãã»ãã·ã§ã³ãã£ãã·ã¥ã«å«ã¾ãããã©"
+"ãããå¤æããããã® <literal>contains()</literal> ã¡ã½ãããæä¾ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To evict all objects from the session cache, call <literal>Session.clear()</"
+"literal>"
+msgstr ""
+"ãã¹ã¦ã®ãªãã¸ã§ã¯ããã»ãã·ã§ã³ãã£ãã·ã¥ããå®å
¨ã«åãé¤ãã«ã¯ã "
+"<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> ã«ã¯ã¤ã³ã¹ã¿ã³ã¹ã"
+"ã¯ã©ã¹å
¨ä½ãã³ã¬ã¯ã·ã§ã³ã®ã¤ã³ã¹ã¿ã³ã¹ãã³ã¬ã¯ã·ã§ã³å
¨ä½ããã£ãã·ã¥ããåé¤"
+"ããããã®ã¡ã½ãããããããå®ç¾©ããã¦ãã¾ãã"
+
+#. 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> ã¯ç¹å®ã®ã»ãã·ã§ã³ãäºæ¬¡ãã£ãã·ã¥ã¨ã©ã®ããã«ç¸"
+"äºä½ç¨ããããæå®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
+msgstr ""
+"<literal>CacheMode.NORMAL</literal> - ã¢ã¤ãã ã®èªã¿è¾¼ã¿ã¨æ¸ãè¾¼ã¿ã§äºæ¬¡"
+"ãã£ãã·ã¥ã使ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.GET</literal>: will read items from the second-level "
+"cache. Do not write to the second-level cache except when updating data"
+msgstr ""
+"<literal>CacheMode.GET</literal> - èªã¿è¾¼ã¿ã¯äºæ¬¡ãã£ãã·ã¥ããè¡ãã¾ããã"
+"ãã¼ã¿ãæ´æ°ããå ´åãé¤ãã¦äºæ¬¡ãã£ãã·ã¥ã«æ¸ãè¾¼ã¿ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.PUT</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache"
+msgstr ""
+"<literal>CacheMode.PUT</literal> - äºæ¬¡ãã£ãã·ã¥ã«ã¢ã¤ãã ãæ¸ãè¾¼ã¿ã¾ããã"
+"èªã¿è¾¼ã¿ã«ã¯äºæ¬¡ãã£ãã·ã¥ã使ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.REFRESH</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache. Bypass the effect of "
+"<literal>hibernate.cache.use_minimal_puts</literal> forcing a refresh of the "
+"second-level cache for all items read from the database"
+msgstr ""
+"<literal>CacheMode.REFRESH</literal> - äºæ¬¡ãã£ãã·ã¥ã«ã¢ã¤ãã ãæ¸ãè¾¼ã¿ã¾ã"
+"ããèªã¿è¾¼ã¿ã«ã¯äºæ¬¡ãã£ãã·ã¥ã使ããã <literal>hibernate.cache."
+"use_minimal_puts</literal> ã®å½±é¿ãåããã«ããã¼ã¿ãã¼ã¹ããèªã¿è¾¼ããã¹ã¦ã®"
+"ã¢ã¤ãã ã®äºæ¬¡ãã£ãã·ã¥ãå¼·å¶çã«ãªãã¬ãã·ã¥ãã¾ãã"
+
+#. Tag: para
+#, 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 ã使ã£ã¦ãã ãã:"
+
+#. 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 ã«å¼·å¶ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr "ã¯ã¨ãªãã£ãã·ã¥"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Query result sets can also be cached. This is only useful for queries that "
+"are run frequently with the same parameters."
+msgstr ""
+"ã¯ã¨ãªã®ãªã¶ã«ãã»ããããã£ãã·ã¥åºæ¥ã¾ããããã¯åããã©ã¡ã¼ã¿ã§ä½åº¦ãå®è¡"
+"ãããã¯ã¨ãªã«å¯¾ãã¦ã®ã¿æç¨ã§ããã¯ã¨ãªãã£ãã·ã¥ã使ãã«ã¯ãã¾ãè¨å®ã§æå¹"
+"ã«ããªãã¦ã¯ãªãã¾ãã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Caching of query results introduces some overhead in terms of your "
+"applications normal transactional processing. For example, if you cache "
+"results of a query against Person Hibernate will need to keep track of when "
+"those results should be invalidated because changes have been committed "
+"against Person. That, coupled with the fact that most applications simply "
+"gain no benefit from caching query results, leads Hibernate to disable "
+"caching of query results by default. To use query caching, you will first "
+"need to enable the query cache:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the "
+"cached query results"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding "
+"timestamps of the most recent updates to queryable tables. These are used to "
+"validate the results as they are served from the query cache."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you configure your underlying cache implementation to use expiry or "
+"timeouts is is very important that the cache timeout of the underlying cache "
+"region for the UpdateTimestampsCache be set to a higher value than the "
+"timeouts of any of the query caches. In fact, we recommend that the the "
+"UpdateTimestampsCache region not be configured for expiry at all. Note, in "
+"particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As mentioned above, most queries do not benefit from caching or their "
+"results. So by default, individual queries are not cached even after "
+"enabling query caching. To enable results caching for a particular query, "
+"call <literal>org.hibernate.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 ""
+"ã»ã¨ãã©ã®ã¯ã¨ãªã¯ãã£ãã·ã¥ã®æ©æµãåããªãã®ã§ãããã©ã«ãã§ã¯ã¯ã¨ãªã¯"
+"ãã£ãã·ã¥ããã¾ããããã£ãã·ã¥ãæå¹ã«ããã«ã¯ã <literal>Query."
+"setCacheable(true)</literal> ãå¼ã³åºãã¦ãã ãããããããã°ã¯ã¨ãªãæ¢åã®"
+"ãã£ãã·ã¥çµæãæ¢ããã¯ã¨ãªå®è¡æã«ãã®çµæããã£ãã·ã¥ã«è¿½å ããããã«ãªã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query cache does not cache the state of the actual entities in the "
+"cache; it caches only identifier values and results of value type. For this "
+"reaso, the query cache should always be used in conjunction with the second-"
+"level cache for those entities expected to be cached as part of a query "
+"result cache (just as with collection caching)."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Query cache regions"
+msgstr "ã¯ã¨ãªãã£ãã·ã¥ã®ãµãã¼ã"
+
+#. 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> ãå¼ã³åºãã¦ç¹å®ã®ã¯ã¨ãªã«å¯¾ãããã£ãã·ã¥é åãæ"
+"å®ãããã¨ãåºæ¥ã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to force the query cache to refresh one of its regions "
+"(disregard any cached results it finds there) you can use <literal>org."
+"hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction "
+"with the region you have defined for the given query, Hibernate will "
+"selectively force the results cached in that particular region to be "
+"refreshed. This is particularly useful in cases where underlying data may "
+"have been updated via a separate process and is a far more efficient "
+"alternative to bulk eviction of the region via <literal>org.hibernate."
+"SessionFactory.evictQueries()</literal>."
+msgstr ""
+"ã¯ã¨ãªãèªèº«ã®ã¯ã¨ãªãã£ãã·ã¥é åã®ãªãã¬ãã·ã¥ãå¼·å¶ããªããã°ãªããªããª"
+"ãã <literal>Query.setCacheMode(CacheMode.REFRESH)</literal> ãå¼ã³åºãã¹ã"
+"ã§ããããã¯å
ã¨ãªããã¼ã¿ãå¥ã®ããã»ã¹ã«ãã£ã¦æ´æ°ããããï¼ããªãã¡ "
+"Hibernate ãéãã¦æ´æ°ãããªãï¼ãã¢ããªã±ã¼ã·ã§ã³ã«ç¹å®ã®ã¯ã¨ãªãªã¶ã«ãã»ã"
+"ããé¸æãã¦ãªãã¬ãã·ã¥ãããå ´åã«ç¹ã«æç¨ã§ããããã«æç¨ãªããä¸ã¤ã®æ¹æ³"
+"ã¯ã <literal>SessionFactory.evictQueries()</literal> ã«ãã£ã¦ã¯ã¨ãªãã£ã"
+"ã·ã¥é åãæ¶å»ãããã¨ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®ããã©ã¼ãã³ã¹ã®ç解"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr "åé¡"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr "Hibernate ã¯3ã¤ã®åºæ¬çãªã³ã¬ã¯ã·ã§ã³ã®ç¨®é¡ãå®ç¾©ãã¦ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr "å¤ã®ã³ã¬ã¯ã·ã§ã³"
+
+#. Tag: para
+#, no-c-format
+msgid "one-to-many associations"
+msgstr "ä¸å¯¾å¤é¢é£"
+
+#. Tag: para
+#, no-c-format
+msgid "many-to-many associations"
+msgstr "å¤å¯¾å¤é¢é£"
+
+#. 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 ãã³ã¬ã¯ã·ã§ã³ã®è¡ãæ´æ°ãåé¤ããã"
+"ãã«ä½¿ã主ãã¼ã®æ§é ãã¾ãèããªããã°ãªãã¾ãããããã¯ä»¥ä¸ã®åé¡ãæ示ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr "ã¤ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³"
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr "set"
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr "bag"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal><key></literal> and <literal><index></"
+"literal> columns. In this case, collection updates are extremely efficient. "
+"The primary key can be efficiently indexed and a particular row can be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"ãã¹ã¦ã®ã¤ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ ï¼ãããããªã¹ããé
åï¼ ã¯ "
+"<literal><key></literal> 㨠<literal><index></literal> ã«ã©ã ãã"
+"ãªã主ãã¼ãæã£ã¦ãã¾ãããã®å ´åã¯ã³ã¬ã¯ã·ã§ã³ã®æ´æ°ã¯é常ã«å¹ççã§ãã主"
+"ãã¼ã¯æç¨ãªã¤ã³ããã¯ã¹ã«ãªãã Hibernate ãç¹å®ã®è¡ãæ´æ°ã¾ãã¯åé¤ããã¨ã"
+"ã«ããã®è¡ãå¹ççã«è¦ã¤ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal><key></literal> and "
+"element columns. This can be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields, as "
+"the database may not be able to index a complex primary key as efficiently. "
+"However, for one-to-many or many-to-many associations, particularly in the "
+"case of synthetic identifiers, it is likely to be just as efficient. If you "
+"want <literal>SchemaExport</literal> to actually create the primary key of a "
+"<literal><set></literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"set 㯠<literal><key></literal> ãããªã主ãã¼ã¨è¦ç´ ã®ã«ã©ã ãæã£ã¦ã"
+"ã¾ããããã¯ã³ã¬ã¯ã·ã§ã³è¦ç´ ã®ããã¤ãã®åã«ã¤ãã¦ã¯å¹ççã§ã¯ãªãããããã¾"
+"ãããç¹ã«è¤åè¦ç´ ã大ããªããã¹ãããã¤ããªãã£ã¼ã«ãã§ã¯éå¹çã§ãããã¼ã¿"
+"ãã¼ã¹ã¯è¤å主ãã¼ã«å¹ççã«ã¤ã³ããã¯ã¹ãä»ãããã¨ãã§ããªãããã§ããä¸"
+"æ¹ãä¸å¯¾å¤ãå¤å¯¾å¤é¢é£ã«ããã¦ãç¹ã«äººå·¥èå¥åã®å ´åã¯åããããå¹ççã§ãã"
+"ï¼ä½è«ï¼ <literal>SchemaExport</literal> ã§å®éã« <literal><set></"
+"literal> ã®ä¸»ãã¼ãä½ããããªãããã¹ã¦ã®ã«ã©ã 㧠<literal>not-null=\"true"
+"\"</literal> ã宣è¨ããªããã°ãªãã¾ãããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><idbag></literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"<literal><idbag></literal> ãããã³ã°ã¯ä»£çãã¼ãå®ç¾©ãã¾ãããã®ããæ´"
+"æ°ã¯å¸¸ã«é常ã«å¹ççã§ããäºå®ä¸ãããã¯æåã®ã±ã¼ã¹ã§ãã"
+
+#. 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 ã¯ãã®åé¡ã®è§£æ±ºã®ããã«ãå¤æ´ããã£ãã¨ã"
+"ã«ã¯å¸¸ã«å®å
¨ãªåé¤ï¼ä¸ã¤ã® <literal>DELETE</literal> ã«ããï¼ãè¡ããã³ã¬ã¯"
+"ã·ã§ã³ã®åä½æãè¡ãã¾ããããã¯é常ã«éå¹ççããããã¾ããã"
+
+#. 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ãã³ã¬ã¯ã·ã§ã³ã®åã
ã®è¡ãã©ããã£ã¦ãè¦ã¤ããããã表ãã¦ã"
+"ã¾ããï¼"
+
+#. Tag: title
+#, no-c-format
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
+msgstr "æ´æ°ã«ãã£ã¨ãå¹ççãªã³ã¬ã¯ã·ã§ã³ listãmapãidbagãset"
+
+#. 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 ã¯è¦ç´ ã®è¿½å ãå"
+"é¤ãæ´æ°ã§ãã£ã¨ãå¹ççãªæä½ãåºæ¥ããã¨ã¯æããã§ãã"
+
+#. 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> ã«ãã£"
+"ã¦è¡ãã¾ããç¹°ãè¿ãã¾ãããããã¯ä¸å¯¾å¤é¢é£ã«ã¯å½ã¦ã¯ã¾ãã¾ããã"
+
+#. 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ãidbag ã"
+"ãã£ã¨ãããã©ã¼ãã³ã¹ã®è¯ãï¼inverse ã§ã¯ãªãï¼ã³ã¬ã¯ã·ã§ã³ã¿ã¤ãã¨ãªãã¾"
+"ãã 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> ãæå®ããä¸å¯¾å¤é¢é£ã§"
+"ãããããã®é¢é£ã§ã¯ãæ´æ°ã¯å¤å¯¾ä¸ã®é¢é£ç«¯ã§æ±ãããã³ã¬ã¯ã·ã§ã³ã®æ´æ°ã"
+"ãã©ã¼ãã³ã¹ã®åé¡ã¯å½ã¦ã¯ã¾ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr "inverse ã³ã¬ã¯ã·ã§ã³ã«ãã£ã¨ãæé©ãª bag 㨠list"
+
+#. 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> ã®"
+"ã³ã¬ã¯ã·ã§ã³ï¼ä¸è¬çãªä¸å¯¾å¤é¢é£ã®ä½¿ãæ¹ãªã©ï¼ã§ã bag ã®è¦ç´ ãåæåï¼ãã§ã"
+"ãï¼ããå¿
è¦ãªã bag ã list ã«è¦ç´ ã追å ã§ãã¾ãããã㯠"
+"<literal>Collection.add()</literal> ã <literal>Collection.addAll()</"
+"literal> 㯠bag ã <literal>List</literal> ã§ã¯å¸¸ã« true ãè¿ããªããã°ãªããª"
+"ãããã§ã ï¼ <literal>Set</literal> ã¨ã¯ç°ãªãã¾ãï¼ãããã¯ä»¥ä¸ã®å
±éå¦çã"
+"ããéããããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr "ä¸æ¬åé¤"
+
+#. 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 ã¯æãã§ã¯ãªãã®ã§ãæ°ãã空ã®ã³ã¬ã¯ã·ã§ã³ã®å ´å"
+"ï¼ <literal>list.clear()</literal> ãå¼ã³åºããå ´åãªã©ï¼ã§ã¯ããããã¹ãã§ãª"
+"ããã¨ãç¥ã£ã¦ãã¾ãããã®å ´åã¯ã Hibernate 㯠<literal>DELETE</literal> ã"
+"ä¸åçºè¡ãã¦ãããã§ãã¹ã¦çµããã¾ãã"
+
+#. 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 ã§ãªããã°ï¼ã"
+"ããã¯ç¢ºãã«æã¾ããåä½ã§ãã"
+
+#. 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ã¤æ°ããè¦ç´ ã追å ããã¨ãã¾"
+"ãããã®ã¨ãäºã¤ã®æ¹æ³ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr "18è¡ãä¸ã¤ä¸ã¤åé¤ãã¦ã3è¡ã追å ãã"
+
+#. 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"
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³å
¨ä½ãåé¤ï¼ <literal>DELETE</literal> ã® SQL ãä¸åï¼ããããã¦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 ã¯ãã®å ´åã«2çªç®ã®æ¹æ³ãããéãã ããã¨ãããã»ã©è³¢ãã¯ããã¾ã"
+"ããï¼ãã㦠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 ""
+"幸ãã«ããå
ã®ã³ã¬ã¯ã·ã§ã³ãæ¨ã¦ï¼ã¤ã¾ãåç
§ãããã¦ï¼ãç¾å¨ã®è¦ç´ ããã¹ã¦æ"
+"ã¤æ°ããã³ã¬ã¯ã·ã§ã³ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ããã¨ã§ããã¤ã§ããã®æ¯ãèãï¼2çªç®ã®"
+"æ¦ç¥ï¼ãå¼·å¶ãããã¨ãåºæ¥ã¾ããæã«ããã¯ã¨ã¦ã便å©ã§å¼·åã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"ãã¡ãããä¸æ¬åé¤ã¯ <literal>inverse=\"true\"</literal> ãæå®ããã³ã¬ã¯ã·ã§"
+"ã³ã«ã¯è¡ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr "ããã©ã¼ãã³ã¹ã®ã¢ãã¿ãªã³ã°"
+
+#. 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 ã¯å
é¨å¦çã®ãã¹ã¦ã®ç¯å²ã®æ°å¤ãæä¾ãã¾ãã Hibernate ã®çµ±è¨æ
å ±"
+"㯠<literal>SessionFactory</literal> åä½ã§åå¾å¯è½ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr "SessionFactory ã®ã¢ãã¿ãªã³ã°"
+
+#. 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> ã®ã¡ããªã¯ã¹ã«ã¢ã¯ã»ã¹ããã«ã¯2ã¤ã®æ¹æ³ãã"
+"ãã¾ããæåã®æ¹æ³ã¯ã <literal>sessionFactory.getStatistics()</literal> ãå¼"
+"ã³åºããèªå㧠<literal>Statistics</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 ã使ã£ã¦ã¡ããªã¯ã¹ãçºè¡ãããã¨ãã§ãã¾ãã1ã¤ã® MBean ããã¹ã¦ã® "
+"<literal>SessionFactory</literal> ã«å¯¾ãã¦æå¹ã«ãããã SessionFactory ãã¨"
+"ã«ä¸ã¤ã® MBean ãæå¹ã«ãããã¨ãåºæ¥ã¾ããæå°éã®è¨å®ä¾ã§ãã以ä¸ã®ã³ã¼ãã"
+"è¦ã¦ãã ãã:"
+
+#. Tag: para
+#, no-c-format
+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>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> ãå¼"
+"ã³åºãã¾ã"
+
+#. 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> ã¡ã½ããã使ã£ã¦ logger ã«é"
+"ããã¨ãåºæ¥ã¾ãï¼info ã¬ãã«ã§ãï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr "ã¡ããªã¯ã¹"
+
+#. 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 ""
+"å¤ãã®ãã®ãããã¾ãããã¹ã¦ã®ä½¿ç¨å¯è½ãªã«ã¦ã³ã¿ã¯ <literal>Statistics</"
+"literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã® API ã«æ¸ããã¦ããã3ã¤ã®åé¡ãããã¾ã:"
+
+#. 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> ã®ä½¿ãæ¹ã¨é¢ä¿ãã¦ãã¾ãã"
+"ãªã¼ãã³ããã»ãã·ã§ã³ã®æ°ã JDBC ã³ãã¯ã·ã§ã³ã¨é¢é£ãã¦ããã®ã¨åãã§ãã"
+
+#. Tag: para
+#, no-c-format
+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."
+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ç§åä½ã§ããæ£ç¢ºã§ãªãããããã¾ããã"
+
+#. 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 ã® javadoc ãåç
§ãã¦ãã ããã以ä¸ã®ã³ã¼ãã¯ç°¡åãªä¾ã§ã:"
+
+#. 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 ""
+#~ "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> ï¼ãä¿æãããã1ã¤ã¯ã¯ã¨ãªå¯è½ãªãã¼ãã«ã¸ã®ææ°ã®æ´æ°ã¿ã¤ã ã¹ã¿"
+#~ "ã³ã ï¼ <literal>org.hibernate.cache.UpdateTimestampsCache</literal> ï¼ã"
+#~ "ä¿æãã¾ããã¯ã¨ãªãã£ãã·ã¥ã¯ãªã¶ã«ãã»ããã®å®éã®è¦ç´ ã®ç¶æ
ã¯ãã£ãã·ã¥"
+#~ "ããªããã¨ã«æ³¨æãã¦ãã ããããã£ãã·ã¥ããã®ã¯èå¥åã®å¤ã¨ãå¤åã®çµæã®"
+#~ "ã¿ã§ãããã®ãããã¯ã¨ãªãã£ãã·ã¥ã¯å¸¸ã«äºæ¬¡ãã£ãã·ã¥ã¨ä¸ç·ã«ä½¿ãã¹ãã§"
+#~ "ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "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!"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set]]>"
+#~ msgstr ""
+#~ "<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>]]>"
+#~ msgstr "<many-to-one name=\"mother\" class=\"Cat\" fetch=\"join\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0]]>"
+#~ msgstr ""
+#~ "cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+#~ "Iterator iter = session.iterate(\"from CatImpl as cat where cat."
+#~ "name='fritz'\");\n"
+#~ "Cat fritz = (Cat) iter.next();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" )."
+#~ "list().get(0) ).intValue()]]>"
+#~ msgstr ""
+#~ "( (Integer) s.createFilter( collection, \"select count(*)\" ).list().get"
+#~ "(0) ).intValue()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+#~ "setMaxResults(10).list();]]>"
+#~ msgstr ""
+#~ "s.createFilter( lazyCollection, \"\").setFirstResult(0).setMaxResults(10)."
+#~ "list();"
+
+#, fuzzy
+#~ msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+#~ msgstr "<class name=\"Person\" batch-size=\"10\">...</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<target name=\"instrument\" depends=\"compile\">\n"
+#~ " <taskdef name=\"instrument\" classname=\"org.hibernate.tool."
+#~ "instrument.InstrumentTask\">\n"
+#~ " <classpath path=\"${jar.path}\"/>\n"
+#~ " <classpath path=\"${classes.dir}\"/>\n"
+#~ " <classpath refid=\"lib.class.path\"/>\n"
+#~ " </taskdef>\n"
+#~ "\n"
+#~ " <instrument verbose=\"true\">\n"
+#~ " <fileset dir=\"${testclasses.dir}/org/hibernate/auction/"
+#~ "model\">\n"
+#~ " <include name=\"*.class\"/>\n"
+#~ " </fileset>\n"
+#~ " </instrument>\n"
+#~ "</target>"
+
+#~ msgid "<entry>yes</entry>"
+#~ msgstr "<entry>yes</entry>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<class name=\"eg.Cat\" .... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"kittens\" ... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();]]>"
+#~ msgstr ""
+#~ "Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true]]>"
+#~ msgstr ""
+#~ "hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true"
+
+#, fuzzy
+#~ msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
+#~ msgstr "hibernate.cache.use_query_cache true"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "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\" );"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/persistent_classes.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/persistent_classes.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/persistent_classes.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1066 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-04 13:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "æ°¸ç¶ã¯ã©ã¹"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Persistent classes are classes in an application that implement the entities "
+"of the business problem (e.g. Customer and Order in an E-commerce "
+"application). Not all instances of a persistent class are considered to be "
+"in the persistent state. For example, an instance can instead be transient "
+"or detached."
+msgstr ""
+"æ°¸ç¶ã¯ã©ã¹ã¯ãã¸ãã¹ä¸ã®åé¡ã®ã¨ã³ãã£ãã£ï¼ä¾ãã°ã E ã³ãã¼ã¹ã¢ããªã±ã¼ã·ã§"
+"ã³ã®é¡§å®¢ã注æï¼ ãå®è£
ããã¢ããªã±ã¼ã·ã§ã³ã®ã¯ã©ã¹ã§ããæ°¸ç¶ã¯ã©ã¹ã®ãã¹ã¦ã®"
+"ã¤ã³ã¹ã¿ã³ã¹ãæ°¸ç¶ç¶æ
ã§ããã¨è¦ãªãããããã§ã¯ããã¾ãããã¤ã³ã¹ã¿ã³ã¹ã¯é"
+"ã«ä¸æçï¼transientï¼ã§ãã£ãããåé¢ç¶æ
ï¼detachedï¼ã§ãã£ããããããããã¾"
+"ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate works best if these classes follow some simple rules, also known "
+"as the Plain Old Java Object (POJO) programming model. However, none of "
+"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
+"about the nature of your persistent objects. You can express a domain model "
+"in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr ""
+"Plain Old Java Object (POJO)ããã°ã©ãã³ã°ã¢ãã«ã¨ãã¦ãç¥ãããããã¤ãã®å"
+"ç´ãªã«ã¼ã«ã«å¾ããªãã Hibernate ã¯æãããåãã¾ããããããããã®ã«ã¼ã«ã¯é£"
+"ãããã®ã§ã¯ããã¾ãããå®é Hibernate3 ã¯æ°¸ç¶ãªãã¸ã§ã¯ãã®æ§è³ªã«ã»ã¨ãã©ä½"
+"ã®åæãç½®ãã¦ãã¾ããããã¡ã¤ã³ã¢ãã«ã¯ä»ã®æ¹æ³ã§è¡¨ç¾ãããã¨ãã§ãã¾ããä¾"
+"ãã° <literal>Map</literal> ã¤ã³ã¹ã¿ã³ã¹ã®ããªã¼ã使ãæ¹æ³ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr "åç´ãª POJO ã®ä¾"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Most Java applications require a persistent class representing felines. For "
+"example:"
+msgstr "以ä¸ã¯ãã³ç§ã®åç©ã表ç¾ããæ°¸ç¶ã¯ã©ã¹ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The four main rules of persistent classes are explored in more detail in the "
+"following sections."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr "å¼æ°ã®ãªãã³ã³ã¹ãã©ã¯ã¿ãå®è£
ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
+"must have a default constructor (which can be non-public) so that Hibernate "
+"can instantiate them using <literal>Constructor.newInstance()</literal>. It "
+"is recommended that you have a default constructor with at least "
+"<emphasis>package</emphasis> visibility for runtime proxy generation in "
+"Hibernate."
+msgstr ""
+"<literal>Cat</literal> ã«ã¯å¼æ°ã®ãªãã³ã³ã¹ãã©ã¯ã¿ãããã¾ãã Hibernate ã "
+"<literal>Constructor.newInstance()</literal> ã使ã£ã¦æ°¸ç¶ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹"
+"åãè¡ããããã«ããã¹ã¦ã®æ°¸ç¶ã¯ã©ã¹ã«ã¯ããã©ã«ãã³ã³ã¹ãã©ã¯ã¿ ï¼public ã§"
+"ãªãã¦ãæ§ãã¾ããï¼ ããªããã°ãªãã¾ããã Hibernate ã®å®è¡æãããã·çæã®"
+"ããã«ãå°ãªãã¨ã <emphasis>package</emphasis> ã®å¯è¦æ§ãæã¤ããã©ã«ãã³ã³"
+"ã¹ãã©ã¯ã¿ãå¼·ããå§ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr "èå¥åããããã£ãç¨æããï¼ãªãã·ã§ã³ï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> has a property called <literal>id</literal>. This "
+"property maps to the primary key column of a database table. The property "
+"might have been called anything, and its type might have been any primitive "
+"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
+"<literal>java.util.Date</literal>. If your legacy database table has "
+"composite keys, you can use a user-defined class with properties of these "
+"types (see the section on composite identifiers later in the chapter.)"
+msgstr ""
+"<literal>Cat</literal> ã«ã¯ <literal>id</literal> ã¨ããããããã£ãããã¾"
+"ãããã®ããããã£ã¯ãã¼ã¿ãã¼ã¹ãã¼ãã«ã®ä¸»ãã¼ã«ã©ã ã¸ãããã³ã°ããã¾ãã"
+"ãã®ããããã£ã®ååã¯ä½ã§ãæ§ãã¾ããããåã¯ã©ã®ãããªããªããã£ãåã§ãã"
+"ããªããã£ãã®ãã©ããã¼ãåã§ãã <literal>java.lang.String</literal> ã "
+"<literal>java.util.Date</literal> ã§ãæ§ãã¾ããã ï¼ããã¬ã¬ã·ã¼ãã¼ã¿ãã¼ã¹"
+"ãã¼ãã«ãè¤åãã¼ãæã¤ãªãã°ãä»è¿°ã¹ããããªåã®ããããã£ãæã¤ã¦ã¼ã¶ã¼å®"
+"義ã®ã¯ã©ã¹ã使ããã¨ããå¯è½ã§ããå¾ã§è¤åèå¥åã®ã»ã¯ã·ã§ã³ãè¦ã¦ãã ã"
+"ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The identifier property is strictly optional. You can leave them off and let "
+"Hibernate keep track of object identifiers internally. We do not recommend "
+"this, however."
+msgstr ""
+"èå¥åããããã£ã¯å³å¯ã«ã¯ãªãã·ã§ã³ã§ãããããçç¥ãã¦ã Hibernate ã«å
é¨ç"
+"ã«ãªãã¸ã§ã¯ãã®èå¥åã追跡ããããã¨ã¯å¯è½ã§ããããããå§ãã¯ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In fact, some functionality is available only to classes that declare an "
+"identifier property:"
+msgstr ""
+"å®éã«ãèå¥åããããã£ã宣è¨ããã¯ã©ã¹ã ããå©ç¨å¯è½ãªæ©è½ãããã¤ãããã¾"
+"ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Transitive reattachment for detached objects (cascade update or cascade "
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr ""
+"åé¢ãªãã¸ã§ã¯ãã®é£éçãªå追å ï¼ã«ã¹ã±ã¼ãæ´æ°ãã«ã¹ã±ã¼ããã¼ã¸ï¼ - <xref "
+"linkend=\"objectstate-transitive\" />次ãåç
§ãã¦ãã ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "<xref linkend=\"objectstate-transitive\" />"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr "<literal>Session.merge()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"We recommend that you declare consistently-named identifier properties on "
+"persistent classes and that you use a nullable (i.e., non-primitive) type."
+msgstr ""
+"æ°¸ç¶ã¯ã©ã¹ã«ã¯ãä¸è²«ããååã®èå¥åããããã£ãå®ç¾©ãããã¨ããå§ããã¾ãã"
+"ããã« null å¤ãåãã(ã¤ã¾ãããªããã£ãã§ã¯ãªã)åã使ã£ãæ¹ãããã§ãã"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr "final ã¯ã©ã¹ã«ããªãï¼ãªãã·ã§ã³ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
+"the persistent class being either non-final, or the implementation of an "
+"interface that declares all public methods."
+msgstr ""
+"Hibernate ã®ä¸å¿çãªç¹å¾´ã§ãã <emphasis>ãããã·</emphasis> ã¯ãæ°¸ç¶ã¯ã©ã¹"
+"ã final ã§ãªããã¨ãã¾ãã¯ã¡ã½ãããå
¨é¨ public ã§å®£è¨ãã¦ããã¤ã³ã¿ã¼ãã§ã¼"
+"ã¹ãå®è£
ããã¦ãããã«ä¾åãã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can persist <literal>final</literal> classes that do not implement an "
+"interface with Hibernate. You will not, however, be able to use proxies for "
+"lazy association fetching which will ultimately limit your options for "
+"performance tuning."
+msgstr ""
+"Hibernate ã§ã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®è£
ãã¦ããªã <literal>final</literal> ã¯ã©ã¹"
+"ãæ°¸ç¶åãããã¨ã¯ã§ãã¾ãããé
延é¢é£ãã§ããã«å¯¾ãã¦ãããã·ã使ããã¨ã¯ã§"
+"ããªããªãã¾ããããã¯ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ã¸ã®é¸æè¢ãçãããã¨ã«ãªã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You should also avoid declaring <literal>public final</literal> methods on "
+"the non-final classes. If you want to use a class with a <literal>public "
+"final</literal> method, you must explicitly disable proxying by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"final ã§ã¯ãªãã¯ã©ã¹ã§ <literal>public final</literal> ã¡ã½ãããå®ç¾©ãããã¨"
+"ãé¿ããã¹ãã§ãã <literal>public final</literal> ã¡ã½ãããæã¤ã¯ã©ã¹ã使ã"
+"ãããã°ã <literal>lazy=\"false\"</literal> ã¨è¨å®ãã¦æ示çã«ãããã·ãç¡å¹"
+"ã«ããªããã°ãªãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr "æ°¸ç¶ãã£ã¼ã«ãã«å¯¾ããã¢ã¯ã»ãµã¨ãã¥ã¼ãã¼ã¿ãå®ç¾©ããï¼ãªãã·ã§ã³ï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> declares accessor methods for all its persistent "
+"fields. Many other ORM tools directly persist instance variables. It is "
+"better to provide an indirection between the relational schema and internal "
+"data structures of the class. By default, Hibernate persists JavaBeans style "
+"properties and recognizes method names of the form <literal>getFoo</"
+"literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If "
+"required, you can switch to direct field access for particular properties."
+msgstr ""
+"<literal>Cat</literal> ã§ã¯ãã¹ã¦ã®æ°¸ç¶ãã£ã¼ã«ãã«å¯¾ãã¦ã¢ã¯ã»ãµã¡ã½ãããå®"
+"義ãã¦ãã¾ããä»ã®å¤ãã® ORM ãã¼ã«ã¯ãæ°¸ç¶ã¤ã³ã¹ã¿ã³ã¹å¤æ°ãç´æ¥æ°¸ç¶åãã¾"
+"ããç§ãã¡ã¯ãªã¬ã¼ã·ã§ãã«ã¹ãã¼ãã¨ã¯ã©ã¹ã®å
é¨æ§é ãåé¢ããæ¹ãè¯ãã¨ä¿¡ã"
+"ã¦ãã¾ããããã©ã«ãã§ã¯ã Hibernate 㯠JavaBean ã¹ã¿ã¤ã«ã®ããããã£ãæ°¸ç¶å"
+"ãã <literal>getFoo</literal>, <literal>isFoo</literal>, <literal>setFoo</"
+"literal> å½¢å¼ã®ã¡ã½ããåãèªèãã¾ãããããå¿
è¦ãªããç¹å®ã®ããããã£ã«å¯¾ã"
+"ã¦ãç´æ¥ã®ãã£ã¼ã«ãã¢ã¯ã»ã¹ã«åãæ¿ãããã¨ã¯å¯è½ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
+"persist a property with a default, <literal>protected</literal> or "
+"<literal>private</literal> get / set pair."
+msgstr ""
+"ããããã£ã¯ public ã§å®£è¨ããå¿
è¦ã¯ <emphasis>ããã¾ãã</emphasis> ã "
+"Hibernate ã¯ããã©ã«ãã§ã <literal>protected</literal> ããã㯠"
+"<literal>private</literal> ã® get / set ã®ãã¢ãæã¤ããããã£ãæ°¸ç¶åããã"
+"ã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr "ç¶æ¿ã®å®è£
"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A subclass must also observe the first and second rules. It inherits its "
+"identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr ""
+"ãµãã¯ã©ã¹ã1çªç®ã¨2çªç®ã®ã«ã¼ã«ãå®ããªããã°ãªãã¾ããããµãã¯ã©ã¹ã¯ã¹ã¼"
+"ãã¼ã¯ã©ã¹ <literal>Cat</literal> ããèå¥åããããã£ãç¶æ¿ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid ""
+"Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr "<literal>equals()</literal> 㨠<literal>hashCode()</literal>ã®å®è£
"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You have to override the <literal>equals()</literal> and <literal>hashCode()"
+"</literal> methods if you:"
+msgstr ""
+"以ä¸ã®æ¡ä»¶ã®å ´åã <literal>equals()</literal> 㨠<literal>hashCode()</"
+"literal> ã¡ã½ããããªã¼ãã¼ã©ã¤ãããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"intend to put instances of persistent classes in a <literal>Set</literal> "
+"(the recommended way to represent many-valued associations); <emphasis>and</"
+"emphasis>"
+msgstr ""
+"æ°¸ç¶ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã <literal>Set</literal> ã«ç½®ãå ´åã ï¼ããã¯å¤å¤ã®"
+"é¢é£ã表ç¾ããããããã®æ¹æ³ã§ãï¼ <emphasis>ããã¦åæã«</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr "åé¢ã¤ã³ã¹ã¿ã³ã¹ãã»ãã·ã§ã³ã¸å追å ããå ´åã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate guarantees equivalence of persistent identity (database row) and "
+"Java identity only inside a particular session scope. When you mix instances "
+"retrieved in different sessions, you must implement <literal>equals()</"
+"literal> and <literal>hashCode()</literal> if you wish to have meaningful "
+"semantics for <literal>Set</literal>s."
+msgstr ""
+"Hibernate ã¯ãæ°¸ç¶ ID ï¼ãã¼ã¿ãã¼ã¹ã®è¡ï¼ã¨ãç¹å®ã®ã»ãã·ã§ã³ã¹ã³ã¼ãå
ã«é"
+"å®ã§ãã Java ID ã¨ãç価ã§ãããã¨ãä¿è¨¼ãã¾ããã§ãããç°ãªãã»ãã·ã§ã³ã§æ¤"
+"ç´¢ããã¤ã³ã¹ã¿ã³ã¹ãçµã¿åãããå ´åã <literal>Set</literal> ã«æå³ã®ããã»"
+"ãã³ãã£ã¯ã¹ãæããããã¨æã£ã¦ãããªãããã« <literal>equals()</literal> "
+"㨠<literal>hashCode()</literal> ãå®è£
ããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The most obvious way is to implement <literal>equals()</literal>/"
+"<literal>hashCode()</literal> by comparing the identifier value of both "
+"objects. If the value is the same, both must be the same database row, "
+"because they are equal. If both are added to a <literal>Set</literal>, you "
+"will only have one element in the <literal>Set</literal>). Unfortunately, "
+"you cannot use that approach with generated identifiers. Hibernate will only "
+"assign identifier values to objects that are persistent; a newly created "
+"instance will not have any identifier value. Furthermore, if an instance is "
+"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
+"identifier value to the object. If <literal>equals()</literal> and "
+"<literal>hashCode()</literal> are based on the identifier value, the hash "
+"code would change, breaking the contract of the <literal>Set</literal>. See "
+"the Hibernate website for a full discussion of this problem. This is not a "
+"Hibernate issue, but normal Java semantics of object identity and equality."
+msgstr ""
+"æãæç½ãªæ¹æ³ã¯ã両æ¹ã®ãªãã¸ã§ã¯ãã®èå¥åã®å¤ã®æ¯è¼ã«ãã£ã¦ "
+"<literal>equals()</literal>㨠<literal>hashCode()</literal> ãå®è£
ããæ¹æ³ã§"
+"ããå¤ãåããªãã両è
ã¯ãã¼ã¿ãã¼ã¹ã®åãè¡ã§ãªããã°ãªããªãããçãããªã"
+"ã¾ãã ï¼ä¸¡è
ã <literal>Set</literal> ã«è¿½å ããã¦ãã <literal>Set</"
+"literal> ã«ã¯1åã®è¦ç´ ãããªããã¨ã«ãªãã¾ãï¼ æ®å¿µãªãã¨ã«ãçæãããèå¥å"
+"ã«ã¯ãã®ã¢ããã¼ãã使ããã¨ãã§ãã¾ããã Hibernate ã¯æ°¸ç¶åããããªãã¸ã§ã¯"
+"ãã¸èå¥åã®å¤ã代å
¥ããã ãã§ãããæ°ããä½æãããã¤ã³ã¹ã¿ã³ã¹ã¯ã©ã®ãããª"
+"èå¥åã®å¤ãæã£ã¦ãã¾ãããããã«ãã¤ã³ã¹ã¿ã³ã¹ãã»ã¼ãããã¦ããããç¾å¨ "
+"<literal>Set</literal> ã®ä¸ã«ããã°ãã»ã¼ãããã¨ãªãã¸ã§ã¯ãã¸èå¥åã®å¤ã代"
+"å
¥ãããã¨ã«ãªãã¾ãããã <literal>equals()</literal> 㨠<literal>hashCode()"
+"</literal> ãèå¥åã®å¤ã«åºã¥ãã¦ãããªããããã·ã¥ã³ã¼ããå¤æ´ããã㨠"
+"<literal>Set</literal> ã®è¦ç´ãç ´ããã¾ãããã®åé¡ã«ã¤ãã¦ã®å®å
¨ãªè°è«ã¯ã "
+"Hibernate ã®ã¦ã§ããµã¤ããè¦ã¦ãã ããããã㯠Hibernate ã®åé¡ã§ã¯ãªãããªã"
+"ã¸ã§ã¯ãã®åä¸æ§ã¨ç価æ§ã«ã¤ãã¦ã®ãé常㮠Java ã®ã»ãã³ãã£ã¯ã¹ã§ãããã¨ã«"
+"注æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is recommended that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> using <emphasis>Business key equality</"
+"emphasis>. Business key equality means that the <literal>equals()</literal> "
+"method compares only the properties that form the business key. It is a key "
+"that would identify our instance in the real world (a <emphasis>natural</"
+"emphasis> candidate key):"
+msgstr ""
+"<emphasis>ãã¸ãã¹ãã¼ã®ç価æ§</emphasis> ã使ã£ã¦ã <literal>equals()</"
+"literal> 㨠<literal>hashCode()</literal> ãå®è£
ãããã¨ããå§ããã¾ãããã¸"
+"ãã¹ãã¼ã®ç価æ§ã¨ã¯ã <literal>equals()</literal> ã¡ã½ãããããã¸ãã¹ãã¼ã"
+"ã¤ã¾ãç¾å®ã®ä¸çã«ããã¦ã¤ã³ã¹ã¿ã³ã¹ãç¹å®ãããã¼ï¼<emphasis>èªç¶</"
+"emphasis> åè£ãã¼ï¼ ãå½¢æããããããã£ã ããæ¯è¼ãããã¨ãæå³ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A business key does not have to be as solid as a database primary key "
+"candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable "
+"or unique properties are usually good candidates for a business key."
+msgstr ""
+"ãã¸ãã¹ãã¼ã¯ãã¼ã¿ãã¼ã¹ã®ä¸»ãã¼åè£ã»ã©å®å®ã§ããå¿
è¦ã¯ãªããã¨ã«æ³¨æãã¦"
+"ãã ãã ï¼<xref linkend=\"transactions-basics-identity\"/> ãåç
§ãã¦ãã ã"
+"ãï¼ãæ´æ°ä¸å¯ãªããããã£ãã¦ãã¼ã¯ãªããããã£ã¯ãé常ãã¸ãã¹ãã¼ã®ããå"
+"è£ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr "åçã¢ãã«"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
+msgstr ""
+"以ä¸ã®æ©è½ã¯ç¾å¨å®é¨æ®µéã«ããã¨è¦ãªããã¦ãããè¿ãå°æ¥å¤æ´ãããå¯è½æ§ãã"
+"ããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Persistent entities do not necessarily have to be represented as POJO "
+"classes or as JavaBean objects at runtime. Hibernate also supports dynamic "
+"models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) "
+"and the representation of entities as DOM4J trees. With this approach, you "
+"do not write persistent classes, only mapping files."
+msgstr ""
+"æ°¸ç¶ã¨ã³ãã£ãã£ã¯ãå¿
ãããå®è¡æã« POJO ã¯ã©ã¹ã JavaBean ãªãã¸ã§ã¯ãã§è¡¨"
+"ç¾ããå¿
è¦ã¯ããã¾ããã Hibernate ã¯ï¼å®è¡æã« <literal>Map</literal> ã® "
+"<literal>Map</literal> ã使ãï¼åçã¢ãã«ã¨ã DOM4J ããªã¼ã¨ãã¦ã®ã¨ã³ãã£"
+"ãã£ã®è¡¨ç¾ããµãã¼ããã¾ãããã®ã¢ããã¼ãã使ãã¨æ°¸ç¶ã¯ã©ã¹ãæ¸ãããããã"
+"ã³ã°ãã¡ã¤ã«ã ããæ¸ããã¨ã«ãªãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By default, Hibernate works in normal POJO mode. You can set a default "
+"entity representation mode for a particular <literal>SessionFactory</"
+"literal> using the <literal>default_entity_mode</literal> configuration "
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr ""
+"ããã©ã«ãã§ã¯ã Hibernate ã¯é常㮠POJO ã¢ã¼ãã§åä½ãã¾ãã "
+"<literal>default_entity_mode</literal> è¨å®ãªãã·ã§ã³ã使ã£ã¦ãç¹å®ã® "
+"<literal>SessionFactory</literal> ã«å¯¾ããããã©ã«ãã®ã¨ã³ãã£ãã£è¡¨ç¾ã¢ã¼ã"
+"ãè¨å®ãããã¨ãã§ãã¾ã ï¼<xref linkend=\"configuration-optional-properties"
+"\"/> ãè¦ã¦ãã ããï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following examples demonstrate the representation using <literal>Map</"
+"literal>s. First, in the mapping file an <literal>entity-name</literal> has "
+"to be declared instead of, or in addition to, a class name:"
+msgstr ""
+"以ä¸ã®ä¾ã§ã¯ <literal>Map</literal> ã使ã£ã表ç¾ãç´¹ä»ãã¾ããã¾ããããã³ã°"
+"ãã¡ã¤ã«ã§ãã¯ã©ã¹åã®ä»£ããã«ï¼ã¾ãã¯ããã«å ãã¦ï¼ <literal>entity-name</"
+"literal> ãå®ç¾©ããªããã°ãªãã¾ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Even though associations are declared using target class names, the target "
+"type of associations can also be a dynamic entity instead of a POJO."
+msgstr ""
+"é¢é£ãã¿ã¼ã²ããã®ã¯ã©ã¹åã使ã£ã¦å®ç¾©ãã¦ããã¨ãã¦ããé¢é£ã®ã¿ã¼ã²ããåã "
+"POJO ã§ã¯ãªãåçãªã¨ã³ãã£ãã£ã§ãæ§ããªããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After setting the default entity mode to <literal>dynamic-map</literal> for "
+"the <literal>SessionFactory</literal>, you can, at runtime, work with "
+"<literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr ""
+"<literal>SessionFactory</literal> ã«å¯¾ãã¦ããã©ã«ãã®ã¨ã³ãã£ãã£ã¢ã¼ãã "
+"<literal>dynamic-map</literal> ã«è¨å®ããå¾ãå®è¡æã« <literal>Map</literal> "
+"ã® <literal>Map</literal> ã使ããã¨ãã§ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One of the main advantages of dynamic mapping is quick turnaround time for "
+"prototyping, without the need for entity class implementation. However, you "
+"lose compile-time type checking and will likely deal with many exceptions at "
+"runtime. As a result of the Hibernate mapping, the database schema can "
+"easily be normalized and sound, allowing to add a proper domain model "
+"implementation on top later on."
+msgstr ""
+"åçãªãããã³ã°ã®å©ç¹ã¯ãã¨ã³ãã£ãã£ã¯ã©ã¹ã®å®è£
ãå¿
è¦ã¨ããªããããããã"
+"ã¿ã¤ãã³ã°ã«è¦ããã¿ã¼ã³ã¢ã©ã¦ã³ãã¿ã¤ã ãæ©ãã¨ãããã¨ã§ãããããã³ã³ãã¤"
+"ã«æã®åãã§ãã¯ããªãã®ã§ãå®è¡æã«é常ã«å¤ãã®ä¾å¤å¦çãæ±ããªããã°ãªããª"
+"ãã§ãããã Hibernate ãããã³ã°ã®ãããã§ããã¼ã¿ãã¼ã¹ã¹ãã¼ãã¯å®¹æã«æ£è¦"
+"åã§ããå¥å
¨ã«ãªããå¾ã§é©åãªãã¡ã¤ã³ã¢ãã«ã®å®è£
ã追å ãããã¨ãå¯è½ã«ãªã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Entity representation modes can also be set on a per <literal>Session</"
+"literal> basis:"
+msgstr ""
+"ã¨ã³ãã£ãã£è¡¨ç¾ã¢ã¼ã㯠<literal>Session</literal> ãã¨ã«è¨å®ãããã¨ãå¯è½"
+"ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please note that the call to <literal>getSession()</literal> using an "
+"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
+"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
+"literal> shares the underlying JDBC connection, transaction, and other "
+"context information. This means you do not have to call <literal>flush()</"
+"literal> and <literal>close()</literal> on the secondary <literal>Session</"
+"literal>, and also leave the transaction and connection handling to the "
+"primary unit of work."
+msgstr ""
+"<literal>EntityMode</literal> ã使ã£ã <literal>getSession()</literal> ã®å¼ã³"
+"åºã㯠<literal>SessionFactory</literal> ã§ã¯ãªã <literal>Session</literal> "
+"APIã«ãããã¨ã«æ³¨æãã¦ãã ããããã®æ¹æ³ã§ã¯ãæ°ãã <literal>Session</"
+"literal> ã¯ããã¼ã¹ã¨ãªã JDBC ã³ãã¯ã·ã§ã³ããã©ã³ã¶ã¯ã·ã§ã³ããã®ä»ã®ã³ã³ã"
+"ãã¹ãæ
å ±ãå
±æãã¾ããããã¯2çªç®ã® <literal>Session</literal> ã§ã¯ "
+"<literal>flush()</literal> 㨠<literal>close()</literal> ãå¼ã¶å¿
è¦ããªãã¨ã"
+"ããã¨ããã®ãããã©ã³ã¶ã¯ã·ã§ã³ã¨ã³ãã¯ã·ã§ã³ã®ç®¡çã1çªç®ã®ä½æ¥åä½(Unit "
+"of Work)ã«ä»»ãããã¨ãã§ããã¨ãããã¨ã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"More information about the XML representation capabilities can be found in "
+"<xref linkend=\"xml\" />."
+msgstr ""
+"XML 表ç¾ã®è½åã«ã¤ãã¦ã®ãããªãæ
å ±ã¯ <xref linkend=\"xml\"/> ã«è¨è¿°ããã¦ã"
+"ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr "Tuplizer"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing that knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the corresponding tuplizer knows how create the POJO "
+"through its constructor. It also knows how to access the POJO properties "
+"using the defined property accessors."
+msgstr ""
+"<literal>org.hibernate.tuple.Tuplizer</literal> ã¨ãã®ãµãã¤ã³ã¿ã¼ãã§ã¼ã¹"
+"ã¯ã表ç¾ã® <literal>org.hibernate.EntityMode</literal> ãå©ç¨ãã¦ããã¼ã¿æç"
+"ã®ãã表ç¾ã®ç®¡çã«è²¬ä»»ãæã¡ã¾ããä¸ãããããã¼ã¿æçããã¼ã¿æ§é ã¨ãã¦èã"
+"ããªãã Tuplizer ã¯ãã®ãããªãã¼ã¿æ§é ãã©ã®ããã«ä½æããããç¥ãããã®ã"
+"ããªãã¼ã¿æ§é ããã©ã®ããã«å¤ãæ½åºãã注å
¥ããããç¥ã£ã¦ãã¾ããä¾ãã° "
+"POJO ã¨ã³ãã£ãã£ã¢ã¼ãã§ã¯ã対å¿ãã Tuplizer ã¯ã³ã³ã¹ãã©ã¯ã¿ãéãã¦ã "
+"POJO ãã©ã®ããã«ä½æããããå®ç¾©ãããããããã£ã¢ã¯ã»ãµã使ãã POJO ããã"
+"ãã£ã«ã©ã®ããã«ã¢ã¯ã»ã¹ããããç¥ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two high-level types of Tuplizers, represented by the <literal>org."
+"hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate."
+"tuple.component.ComponentTuplizer</literal> interfaces. "
+"<literal>EntityTuplizer</literal>s are responsible for managing the above "
+"mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
+msgstr ""
+"Tuplizer ã«ã¯äºã¤ã®ãã¤ã¬ãã«ã®åãããã¾ãããããã¯ã<literal>org."
+"hibernate.tuple.entity.EntityTuplizer</literal> 㨠<literal>org.hibernate."
+"tuple.component.ComponentTuplizer</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã§è¡¨ç¾ããã¾ãã "
+"<literal>EntityTuplizer</literal> ã¯ä¸ã§è¿°ã¹ããããªã¨ã³ãã£ãã£ã«é¢ããå¥ç´"
+"ã®ç®¡çã«è²¬ä»»ãæã¡ã¾ããä¸æ¹ã <literal>ComponentTuplizer</literal> ã¯ã³ã³"
+"ãã¼ãã³ãã«é¢ããå¥ç´ã®ç®¡çã«è²¬ä»»ãæã¡ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Users can also plug in their own tuplizers. Perhaps you require that a "
+"<literal>java.util.Map</literal> implementation other than <literal>java."
+"util.HashMap</literal> be used while in the dynamic-map entity-mode. Or "
+"perhaps you need to define a different proxy generation strategy than the "
+"one used by default. Both would be achieved by defining a custom tuplizer "
+"implementation. Tuplizer definitions are attached to the entity or component "
+"mapping they are meant to manage. Going back to the example of our customer "
+"entity:"
+msgstr ""
+"ã¦ã¼ã¶ã¼ã¯ç¬èªã® Tuplizer ã«å·®ãæ¿ãããã¨ãå¯è½ã§ãããããã dynamic-map "
+"entity-mode ã®éã« <literal>java.util.HashMap</literal> ã使ãã®ã§ã¯ãªãã "
+"<literal>java.util.Map</literal> ã®å®è£
ãå¿
è¦ã§ãããããããã¯ãããããã"
+"ãã©ã«ãã®ãã®ã§ã¯ãªããå¥ã®ãããã·çææ¦ç¥ã®å®ç¾©ãå¿
è¦ã§ãããã両è
ã¨ãã"
+"ã«ã¹ã¿ã ã® Tuplizer å®è£
ãå®ç¾©ãããã¨ã§éæããã¾ãã Tuplizer ã®å®ç¾©ã¯ã管"
+"çãããã¨ããã¨ã³ãã£ãã£ãã³ã³ãã¼ãã³ãã®ãããã³ã°ã«çµã³ä»ãããã¾ãã顧"
+"客ã¨ã³ãã£ãã£ã®ä¾ã¯ä»¥ä¸ã«ãªãã¾ãï¼"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "EntityNameResolvers"
+msgstr "ã¨ã³ãã£ãã£ãªã¾ã«ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"interface is a contract for resolving the entity name of a given entity "
+"instance. The interface defines a single method "
+"<methodname>resolveEntityName</methodname> which is passed the entity "
+"instance and is expected to return the appropriate entity name (null is "
+"allowed and would indicate that the resolver does not know how to resolve "
+"the entity name of the given entity instance). Generally speaking, an "
+"<interfacename>org.hibernate.EntityNameResolver</interfacename> is going to "
+"be most useful in the case of dynamic models. One example might be using "
+"proxied interfaces as your domain model. The hibernate test suite has an "
+"example of this exact style of usage under the <package>org.hibernate.test."
+"dynamicentity.tuplizer2</package>. Here is some of the code from that "
+"package for illustration."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
+"interfacename> users must either:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
+"method."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (which is the implementation class for <interfacename>org."
+"hibernate.SessionFactory</interfacename>) using the "
+"<methodname>registerEntityNameResolver</methodname> method."
+msgstr ""
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "}"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/portability.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/portability.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/portability.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,244 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: portability.xml:31
+#, no-c-format
+msgid "Database Portability Considerations"
+msgstr ""
+
+#. Tag: title
+#: portability.xml:34
+#, no-c-format
+msgid "Portability Basics"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:36
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:47
+#, no-c-format
+msgid "Dialect"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:49
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:60
+#, no-c-format
+msgid "Dialect resolution"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:62
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:69
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:77
+#, no-c-format
+msgid ""
+"Starting with version 3.3, Hibernate has a fare more powerful way to "
+"automatically determine which dialect to should be used by relying on a "
+"series of delegates which implement the <interfacename>org.hibernate.dialect."
+"resolver.DialectResolver</interfacename> which defines only a single method:"
+"<programlisting role=\"JAVA\"><![CDATA[public Dialect resolveDialect"
+"(DatabaseMetaData metaData) throws JDBCConnectionException]]></"
+"programlisting>. The basic contract here is that if the resolver "
+"'understands' the given database metadata then it returns the corresponding "
+"Dialect; if not it returns null and the process continues to the next "
+"resolver. The signature also identifies <exceptionname>org.hibernate."
+"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
+"A JDBCConnectionException here is interpreted to imply a \"non transient"
+"\" (aka non-recoverable) connection problem and is used to indicate an "
+"immediate stop to resolution attempts. All other exceptions result in a "
+"warning and continuing on to the next resolver."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:90
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:103
+#, no-c-format
+msgid "Identifier generation"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:105
+#, no-c-format
+msgid ""
+"When considering portability between databases, another important decision "
+"is selecting the identifier generation stratagy you want to use. Originally "
+"Hibernate provided the <emphasis>native</emphasis> generator for this "
+"purpose, which was intended to select between a <emphasis>sequence</"
+"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
+"strategy depending on the capability of the underlying database. However, an "
+"insidious implication of this approach comes about when targtetting some "
+"databases which support <emphasis>identity</emphasis> generation and some "
+"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
+"definition of an IDENTITY (or auto-increment) column to manage the "
+"identifier value; it is what is known as a post-insert generation strategy "
+"becauase the insert must actually happen before we can know the identifier "
+"value. Because Hibernate relies on this identifier value to uniquely "
+"reference entities within a persistence context it must then issue the "
+"insert immediately when the users requests the entitiy be associated with "
+"the session (like via save() e.g.) regardless of current transactional "
+"semantics. <note> <para> Hibernate was changed slightly once the implication "
+"of this was better understood so that the insert is delayed in cases where "
+"that is feasible. </para> </note> The underlying issue is that the actual "
+"semanctics of the application itself changes in these cases."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:130
+#, no-c-format
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way. <note> <para> There are "
+"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
+"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
+"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
+"listitem> </itemizedlist> </para> </note> The idea behind these generators "
+"is to port the actual semantics of the identifer value generation to the "
+"different databases. For example, the <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
+"databases which do not support sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#: portability.xml:159
+#, no-c-format
+msgid "Database functions"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:162
+#, no-c-format
+msgid ""
+"This is an area in Hibernate in need of improvement. In terms of portability "
+"concerns, this function handling currently works pretty well from HQL; "
+"however, it is quite lacking in all other aspects."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:169
+#, no-c-format
+msgid ""
+"SQL functions can be referenced in many ways by users. However, not all "
+"databases support the same set of functions. Hibernate, provides a means of "
+"mapping a <emphasis>logical</emphasis> function name to a delegate which "
+"knows how to render that particular function, perhaps even using a totally "
+"different physical function call."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:175
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:182
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:192
+#, no-c-format
+msgid "Type mappings"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:194
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+#~ msgstr ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+
+#, fuzzy
+#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/preface.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/preface.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/preface.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,189 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2009-12-21 17:17+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "åæ¸ã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Working with object-oriented software and a relational database can be "
+"cumbersome and time consuming in today's enterprise environments. Hibernate "
+"is an Object/Relational Mapping tool for Java environments. The term Object/"
+"Relational Mapping (ORM) refers to the technique of mapping a data "
+"representation from an object model to a relational data model with a SQL-"
+"based schema."
+msgstr ""
+"ãªãã¸ã§ã¯ãæåã®ã½ããã¦ã§ã¢ããªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã®ä½¿ç¨ã¯ã ä»æ¥ã®ã¨"
+"ã³ã¿ã¼ãã©ã¤ãºç°å¢ã§ã¯é常ã«ç¹éã§æéã®ãããä½æ¥ã¨ãªãã¾ãã Hibernate 㯠"
+"Java ç°å¢ç¨ã®ãªãã¸ã§ã¯ã/ãªã¬ã¼ã·ã§ãã«ãããã³ã°ãã¼ã«ã§ãã ãªãã¸ã§ã¯ã/"
+"ãªã¬ã¼ã·ã§ãã«ãããã³ã° (ORM) ã¨ã¯ãã¼ã¿è¡¨ç¾ããªãã¸ã§ã¯ãã¢ãã«ãã SQL "
+"ãã¼ã¹ã®ã¹ãã¼ãã«ãããªã¬ã¼ã·ã§ãã«ãã¼ã¿ã¢ãã«ã«ãããã³ã°ããæè¡ã®ãã¨ã"
+"æãã¾ãã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate not only takes care of the mapping from Java classes to database "
+"tables (and from Java data types to SQL data types), but also provides data "
+"query and retrieval facilities. It can also significantly reduce development "
+"time otherwise spent with manual data handling in SQL and JDBC."
+msgstr ""
+"Hibernate 㯠Java ã¯ã©ã¹ãããã¼ã¿ãã¼ã¹ãã¼ãã«ã¸ã®ãããã³ã°(åã³ Java ãã¼"
+"ã¿ã¿ã¤ããã SQL ãã¼ã¿ã¿ã¤ãã¸ã®ãããã³ã°)ãè¡ãã ãã§ãªããã¼ã¿ã®ã¯ã¨ãªã"
+"æ¤ç´¢æ©è½ãæä¾ããããã SQL ã JDBC ã§ã®æä½æ¥ã«ãããã¼ã¿å¦çãé¤ãéçºã«è¦"
+"ããæéã大å¹
ã«åæ¸ãããã¨ãå¯è½ã«ãªãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate's goal is to relieve the developer from 95 percent of common data "
+"persistence related programming tasks. Hibernate may not be the best "
+"solution for data-centric applications that only use stored-procedures to "
+"implement the business logic in the database, it is most useful with object-"
+"oriented domain models and business logic in the Java-based middle-tier. "
+"However, Hibernate can certainly help you to remove or encapsulate vendor-"
+"specific SQL code and will help with the common task of result set "
+"translation from a tabular representation to a graph of objects."
+msgstr ""
+"Hibernate ã®ç®æ¨ã¯ã éçºè
ã«ã¨ã£ã¦ã®ããã°ã©ãã³ã°ã«ãããä¸è¬çãªãã¼ã¿æ°¸ç¶"
+"æ§ã®ä½æ¥ã® 95 % ã軽æ¸ãããã¨ã§ãã Hibernate ãã¼ã¿ãã¼ã¹å
ã§ãã¸ãã¹ãã¸ã"
+"ã¯ãå®ç¾ããã¹ãã¢ãããã·ã¼ã¸ã£ã®ã¿ã使ç¨ãããã¼ã¿å¦çä¸å¿ã®ã¢ããªã±ã¼ã·ã§"
+"ã³ã«å¯¾ãã¦ã¯æé©ã§ã¯ãªãããããã¾ãããã Java ãã¼ã¹ã®ä¸é層ã§ã®ãã¸ãã¹ã"
+"ã¸ãã¯åã³ãªãã¸ã§ã¯ãæåã®ãã¡ã¤ã³ã¢ãã«ã使ç¨ããå ´åã«æãå½¹ã«ç«ã¡ã¾ãã "
+"Hibernate ã¯éçºè
ããã³ãã¼åºæã® SQL ã³ã¼ãã®é¤å»ãããã¯ã«ãã»ã«åãè¡ãé"
+"ã«ä¾¿å©ãªããã 表形å¼ã®è¡¨ç¾ãããªãã¸ã§ã¯ãã®ã°ã©ãã¸ã®çµæã»ããã®å¤æã«é¢ã"
+"ãä¸è¬çãªä½æ¥ã«å½¹ç«ã¡ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you are new to Hibernate and Object/Relational Mapping or even Java, "
+"please follow these steps:"
+msgstr ""
+"Hibernate åã³ãªãã¸ã§ã¯ã/ãªã¬ã¼ã·ã§ãã«ãããã³ã°ã ããã㯠Java ãä¸æ
£ã"
+"ãªæ¹ã¯ã 次ã®æé ãè¡ã£ã¦ãã ããã"
+
+#. Tag: para
+#, 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
+#, fuzzy, no-c-format
+msgid ""
+"Read <xref linkend=\"architecture\" /> to understand the environments where "
+"Hibernate can be used."
+msgstr ""
+"Hibernate ã使ç¨ã§ããç°å¢ã«ã¤ãã¦ç解ããããã <xref linkend=\"architecture"
+"\"/> ããèªã¿ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
+"contains a simple standalone application. Copy your JDBC driver to the "
+"<literal>lib/</literal> directory and edit <literal>etc/hibernate."
+"properties</literal>, specifying correct values for your database. From a "
+"command prompt in the distribution directory, type <literal>ant eg</literal> "
+"(using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr ""
+"Hibernate ãã£ã¹ããªãã¥ã¼ã·ã§ã³å
ã® <literal>eg/</literal> ãã£ã¬ã¯ããªå
ã"
+"è¦ã¦ãã ããã ã·ã³ãã«ãªã¹ã¿ã³ãã¢ãã¼ã³ã®ã¢ããªã±ã¼ã·ã§ã³ãå«ã¾ãã¦ãã¾"
+"ãã ã使ç¨ã® JDBC ãã©ã¤ãã <literal>lib/</literal> ãã£ã¬ã¯ããªã«ã³ãã¼ã"
+"ã¦ãã使ç¨ãããã¼ã¿ãã¼ã¹ã«å¯¾ãã¦æ£ããå¤ãæå®ãããã <literal>etc/"
+"hibernate.properties</literal> ãç·¨éãã¾ãã ãã£ã¹ããªãã¥ã¼ã·ã§ã³ãã£ã¬ã¯"
+"ããªå
ã®ã³ãã³ãããã³ããããã <literal>ant eg</literal> (Ant ã使ç¨)ã¨å
¥å"
+"ãããã Windows ç°å¢ã®å ´å㯠<literal>build eg</literal> ã¨å
¥åãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use this reference documentation as your primary source of information. "
+"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
+"more help with application design, or if you prefer a step-by-step tutorial. "
+"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
+"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr ""
+"ãããªæ
å ±æºã¨ãã¦æ¬ãªãã¡ã¬ã³ã¹ããã¥ã¡ã³ãããå©ç¨ãã ããã ã¢ããªã±ã¼ã·ã§"
+"ã³ã®ãã¶ã¤ã³ã«é¢ãã詳細ã ã¹ããããã¤ã¹ãããã«ãã解説ãå¿
è¦ãªå ´åã¯ã "
+"<emphasis>Hibernate in Action</emphasis> (http://www.manning.com/bauer) ãã"
+"èªã¿ã«ãªã£ã¦ãããã§ãããã ã¾ãã http://caveatemptor.hibernate.org ãã "
+"Hibernate in Action ã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ããã¦ã³ãã¼ããããã¨ãã§ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr "ãããã質åã¨ãã®çã (FAQ) 㯠Hibernate ã¦ã§ããµã¤ãã§ã覧ãã ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Links to third party demos, examples, and tutorials are maintained on the "
+"Hibernate website."
+msgstr ""
+"ãµã¼ããã¼ãã£ã®ãã¢ã ãµã³ãã«ã ãã¥ã¼ããªã¢ã«ãªã©ã¯ Hibernate ã®ã¦ã§ããµã¤"
+"ãä¸ã«ãªã³ã¯ããã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The Community Area on the Hibernate website is a good resource for design "
+"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
+"etc.)."
+msgstr ""
+"Hibernate ã¦ã§ããµã¤ãä¸ã® Community Area ã¯ãã¶ã¤ã³ã®ãã¿ã¼ã³ããã¾ãã¾ãªçµ±"
+"åã½ãªã¥ã¼ã·ã§ã³ (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 (åé¡è¿½è·¡"
+"ã·ã¹ãã ) ãæä¾ãã¦ãã¾ãã 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 Enterprise Middleware System (JEMS) ã¹ã£ã¼ã製åã®éè¦ãªã³ã³ãã¼ãã³ã"
+"ã«ãªãã¾ãã"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_criteria.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_criteria.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_criteria.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,903 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-18 13:38+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr "Criteria ã¯ã¨ãª"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate features an intuitive, extensible criteria query API."
+msgstr ""
+"Hibernate ã«ã¯ãç´æçã§æ¡å¼µå¯è½ãª criteria ã¯ã¨ãª API ãç¨æããã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr "<literal>Criteria</literal> ã¤ã³ã¹ã¿ã³ã¹ã®ä½æ"
+
+#. 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> ã¤ã³ã¹ã¿ã³ã¹ã®ãã¡ã¯ããªã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr "ãªã¶ã«ãã»ããã®çµè¾¼ã¿"
+
+#. 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> åãåå¾ããããã®ãã¡ã¯ããªã¡ã½ãããæã£"
+"ã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr "Restriction ï¼éå®ï¼ã¯ãè«ççã«ã°ã«ã¼ãåã§ãã¾ãã"
+
+#. 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 ""
+"å
ã
ãã 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."
+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 ""
+"criterion ãå¾ãå¥ã®æ段ã¯ã <literal>Property</literal> ã¤ã³ã¹ã¿ã³ã¹ããåå¾"
+"ãããã¨ã§ãã <literal>Property.forName()</literal> ãå¼ã³åºãã¦ã "
+"<literal>Property</literal> ã¤ã³ã¹ã¿ã³ã¹ãä½æã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr "çµæã®æ´å"
+
+#. 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> ã使ã£ã¦çµæã並ã³æ¿ãããã¨"
+"ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr "é¢é£"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By navigating associations using <literal>createCriteria()</literal> you can "
+"specify constraints upon related entities:"
+msgstr ""
+
+#. 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 ""
+"2çªç®ã® <literal>createCriteria()</literal> ã¯ã <literal>kittens</literal> "
+"ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ãåç
§ããæ°ãã <literal>Criteria</literal> ã¤ã³ã¹ã¿ã³ã¹ã"
+"è¿ããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+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> ã¤ã³"
+"ã¹ã¿ã³ã¹ãä½æãã¾ãããï¼"
+
+#. 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 ""
+"åã®2ã¤ã®ã¯ã¨ãªã«ãã£ã¦è¿ããã <literal>Cat</literal> ã¤ã³ã¹ã¿ã³ã¹ã«ãã£ã¦ä¿"
+"æããã kittens ã³ã¬ã¯ã·ã§ã³ã¯ã criteria ã«ãã£ã¦äºåã«ãã£ã«ã¿ãªã³ã° "
+"<emphasis>ãããªã</emphasis> ãã¨ã«æ³¨æãã¦ãã ããããã criteria ã«é©åã"
+"ã kitten ãåå¾ããããªãã <literal>ResultTransformer</literal> ã使ããªã"
+"ãã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will return all of the <literal>Cat</literal>s with a mate whose name "
+"starts with \"good\" ordered by their mate's age, and all cats who do not "
+"have a mate. This is useful when there is a need to order or limit in the "
+"database prior to returning complex/large result sets, and removes many "
+"instances where multiple queries would have to be performed and the results "
+"unioned by java in memory."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Without this feature, first all of the cats without a mate would need to be "
+"loaded in one query."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A second query would need to retreive the cats with mates who's name started "
+"with \"good\" sorted by the mates age."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr "é¢é£ã®åçãã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"<literal>setFetchMode()</literal> ã使ããå®è¡æã«é¢é£ã®å¾©å
æ¹æ³ãæå®ãã¦ã"
+"ããã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This query will fetch both <literal>mate</literal> and <literal>kittens</"
+"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
+"more information."
+msgstr ""
+"ãã®ã¯ã¨ãªã¯å¤é¨çµåã«ãã <literal>mate</literal> 㨠<literal>kittens</"
+"literal> ã®ä¸¡æ¹ããã§ãããã¾ãã詳細ã«ã¤ãã¦ã¯ <xref linkend=\"performance-"
+"fetching\"/> ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr "ã¯ã¨ãªã®ä¾"
+
+#. 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> ã¯ã©ã¹ã¯ãä¸ããããã¤ã³ã¹"
+"ã¿ã³ã¹ããã¯ã¨ãªã¯ã©ã¤ããªãªã³ãæ§ç¯ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
+msgstr ""
+"ãã¼ã¸ã§ã³ããããã£ãèå¥åãé¢é£ã¯ç¡è¦ããã¾ããããã©ã«ãã§ã¯ null å¤ã®ã"
+"ãããã£ã¯é¤å¤ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr ""
+"ã©ã®ããã« <literal>Example</literal> ãé©ç¨ããã調æ´ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even use examples to place criteria upon associated objects."
+msgstr ""
+"é¢é£ãªãã¸ã§ã¯ãã« criteria ãæå®ããããã«ã example ã使ããã¨ãå¯è½ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr "å°å½±ãéç´ãã°ã«ã¼ãå"
+
+#. 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> ãå¼ã³åºããã¨ã§ãã¯ã¨ãªã«å°å½±ãé©ç¨ãã¾"
+"ãã"
+
+#. 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 ""
+"å¿
è¦ã§ãã£ã¦ãã criteria ã¯ã¨ãªã«ãgroup byããæ示ããå¿
è¦ã¯ããã¾ãããã"
+"ã種㮠Projection å㯠<emphasis>ã°ã«ã¼ãåå°å½±</emphasis> ã¨ãã¦å®ç¾©ããã "
+"SQL ã® <literal>group by</literal> ç¯ã«ãç¾ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An alias can be assigned to a projection so that the projected value can be "
+"referred to in restrictions or orderings. Here are two different ways to do "
+"this:"
+msgstr ""
+"ä»»æã§å°å½±ã«å¥åãä»ãããããããå°å½±ãããå¤ã¯ restriction ã ordering å
ã"
+"ãåç
§ã§ãã¾ããå¥åãã¤ããï¼ã¤ã®ç°ãªãæ¹æ³ã示ãã¾ã:"
+
+#. 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> ã¡ã½ããã¯ã "
+"Projection ã¤ã³ã¹ã¿ã³ã¹ãå¥ã®ååã® <literal>Projection</literal> ã¤ã³ã¹ã¿ã³"
+"ã¹ã§ã©ããããã ãã§ããã·ã§ã¼ãã«ããã¨ãã¦ãå°å½±ãå°å½±ãªã¹ãã«è¿½å ããé"
+"ã«ãå¥åãã¤ãããã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
+msgstr "å°å½±ã®å¼ã« <literal>Property.forName()</literal> ã使ç¨ã§ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr "ã¯ã¨ãªããã³ãµãã¯ã¨ãªã®åé¢"
+
+#. 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> ã¯ã©ã¹ã«ãããã»ãã·ã§ã³ã¹ã³ã¼ãå¤ã«ã¯ã¨"
+"ãªãä½æã§ãã¾ããå¾ã§ãä»»æã® <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> ã¯ããµãã¯ã¨ãªã表ç¾ããããã«ã使ãã¾"
+"ãããµãã¯ã¨ãªãä¼´ã Criterion ã¤ã³ã¹ã¿ã³ã¹ã¯ã <literal>Subqueries</"
+"literal> ããã㯠<literal>Property</literal> ããå¾ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr "ç¸äºé¢ä¿ããããµãã¯ã¨ãªã§ãããå¯è½ã§ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr "èªç¶èå¥åã«ããã¯ã¨ãª"
+
+#. 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 ""
+"criteria ã¯ã¨ãªãå«ãããã¦ãã®ã¯ã¨ãªã«ã¨ã£ã¦ãã¯ã¨ãªãã£ãã·ã¥ã¯ãã¾ãå¹çã"
+"ãããªãã§ãããªããªããã¯ã¨ãªãã£ãã·ã¥ãé »ç¹ã«ç¡å¹ã«ãªãããã§ããããããª"
+"ããããã£ãã·ã¥ãç¡å¹ã«ããã¢ã«ã´ãªãºã ãæé©åã§ããç¹å¥ãªã¯ã¨ãªã®ç¨®é¡ãï¼"
+"ã¤ããã¾ããæ´æ°ãããªãèªç¶ãã¼ã«ããæ¤ç´¢ã§ããããã¤ãã®ã¢ããªã±ã¼ã·ã§ã³ã§"
+"ã¯ããã®ç¨®é¡ã®ã¯ã¨ãªãé »ç¹ã«ç¾ãã¾ãããã®ãããªä½¿ããæ¹ã®ããã«ã criteria "
+"API ã¯ç¹å¥ãªå¯¾çãæä¾ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, map the natural key of your entity using <literal><natural-id></"
+"literal> and enable use of the second-level cache."
+msgstr ""
+"æåã«ã <literal><natural-id></literal> ã使ã£ã¦ãã¨ã³ãã£ãã£ã®èªç¶"
+"ãã¼ãããããã¦ãã ãããããã¦ãäºæ¬¡ãã£ãã·ã¥ãæå¹ã«ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"注è¨ï¼ <emphasis>å¤æ´ããã</emphasis> èªç¶ãã¼ãæã¤ã¨ã³ãã£ãã£ã«ãã®æ©è½ã"
+"使ãã®ã¯ãæå³ããã¦ããªã使ãæ¹ã§ãã"
+
+#. 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> ã«ãããããå¹ççãª"
+"ãã£ãã·ã¥ã¢ã«ã´ãªãºã ã使ç¨ã§ãã¾ãã"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgstr ""
+#~ "Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", Hibernate.STRING) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", \n"
+#~ " Hibernate.STRING) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat."
+#~ "class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
+#~ "class, \"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, "
+#~ "\"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeightForSex) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_hql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_hql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_hql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2326 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-01-13 17:08+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr "HQL: Hibernate ã¯ã¨ãªè¨èª"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate uses a powerful query language (HQL) that is similar in appearance "
+"to SQL. Compared with SQL, however, HQL is fully object-oriented and "
+"understands notions like inheritance, polymorphism and association."
+msgstr ""
+"Hibernate 㯠SQL ã«é常ã«ããä¼¼ã (æå³çã«ä¼¼ãã) å¼·åãªåãåããè¨èªãåã"
+"ã¦ãã¾ããããã SQL ã«ä¼¼ãæ§æã«æããããªãã§ãã ããã HQL ã¯å®å
¨ã«ãªã"
+"ã¸ã§ã¯ãæåã§ãããç¶æ¿ãããªã¢ã¼ãã£ãºã ãé¢é£ã¨ãã£ãæ¦å¿µãç解ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr "大æåã¨å°æåã®åºå¥"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"With the exception of names of Java classes and properties, queries are case-"
+"insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</"
+"literal> is the same as <literal>SELECT</literal>, but <literal>org."
+"hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, "
+"and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr ""
+"ã¯ã¨ãªã¯ Java ã®ã¯ã©ã¹åã¨ããããã£åãé¤ãã¦å¤§æåãå°æåãåºå¥ãã¾ããã"
+"å¾ã£ã¦ <literal>SeLeCT</literal> 㯠<literal>sELEct</literal> ã¨åãã§ãã㤠"
+"<literal>SELECT</literal> ã¨ãåãã§ãã <literal>org.hibernate.eg.FOO</"
+"literal> 㯠<literal>org.hibernate.eg.Foo</literal> ã¨ã¯éããã㤠"
+"<literal>foo.barSet</literal> 㯠<literal>foo.BARSET</literal> ã¨ãéãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This manual uses lowercase HQL keywords. Some users find queries with "
+"uppercase keywords more readable, but this convention is unsuitable for "
+"queries embedded in Java code."
+msgstr ""
+"ãã®ããã¥ã¢ã«ã§ã¯å°æåã® HQL ãã¼ã¯ã¼ãã使ç¨ãã¾ãã大æåã®ãã¼ã¯ã¼ãã®ã¯"
+"ã¨ãªã®æ¹ãèªã¿ãããã¨æããã¦ã¼ã¶ã¼ãããã¨æãã¾ããã§ããã Java ã³ã¼ãå
"
+"ã«åãè¾¼ã¾ããã¨ãã«ã¯è¦ã¥ããã¨æãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr "from ç¯"
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr "ãã£ã¨ãåç´ãª Hibernate ã¯ã¨ãªã¯æ¬¡ã®å½¢å¼ã§ã:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This returns all instances of the class <literal>eg.Cat</literal>. You do "
+"not usually need to qualify the class name, since <literal>auto-import</"
+"literal> is the default. For example:"
+msgstr ""
+"ããã¯åç´ã«ã <literal>eg.Cat</literal>ã ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ããã¹ã¦è¿ãã¾"
+"ããå¿
ãããã¯ã©ã¹åã修飾ããï¼ã¯ã©ã¹ã«ããã±ã¼ã¸åãä»ããï¼å¿
è¦ã¯ããã¾ã"
+"ããã¨ããã®ãã <literal>auto-import</literal> ãããã©ã«ãã«ãªã£ã¦ãããã"
+"ã§ãããã®ããã»ã¨ãã©ã®å ´åããã®ããã«æ¸ãã ãã§ååã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to refer to the <literal>Cat</literal> in other parts of the query, "
+"you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query assigns the alias <literal>cat</literal> to <literal>Cat</"
+"literal> instances, so you can use that alias later in the query. The "
+"<literal>as</literal> keyword is optional. You could also write:"
+msgstr ""
+"ãã®ã¯ã¨ãªã§ã¯ <literal>Cat</literal> ã¤ã³ã¹ã¿ã³ã¹ã« <literal>cat</literal> "
+"ã¨ããå¥åãä»ãã¦ãã¾ãããã®ãããå¾ã§ãã®ã¯ã¨ãªå
ã§ããã®å¥åã使ããã¨ã"
+"ã§ãã¾ãã <literal>as</literal> ãã¼ã¯ã¼ãã¯ãªãã·ã§ã³ã§ããã¤ã¾ããã®ããã«"
+"æ¸ããã¨ãã§ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
+"join."
+msgstr ""
+"ç´ç©ããããã¯ãã¯ãã¹ãçµåã«ãã£ã¦å¤æ°ã®ã¯ã©ã¹ãåºç¾ãããã¨ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is good practice to name query aliases using an initial lowercase as this "
+"is consistent with Java naming standards for local variables (e.g. "
+"<literal>domesticCat</literal>)."
+msgstr ""
+"ãã¼ã«ã«å¤æ°ã® Java ã®ãã¼ãã³ã°åºæºã¨ä¸è´ãããé æåã«å°æåã使ã£ãã¯ã¨ãª"
+"ã®å¥åãä»ãããã¨ã¯ããç¿æ
£ã§ã (ä¾ãã° <literal>domesticCat</literal>)ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr "é¢é£ã¨çµå"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also assign aliases to associated entities or to elements of a "
+"collection of values using a <literal>join</literal>. For example:"
+msgstr ""
+"é¢é£ããã¨ã³ãã£ãã£ãããã¯å¤ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã«ãã <literal>çµå</"
+"literal> ã使ã£ã¦å¥åãå²ãå½ã¦ããã¨ãåºæ¥ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "ãµãã¼ããã¦ããçµåã®ã¿ã¤ã㯠ANSI SQL ã¨åãã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "<literal>inner join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>left outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr "<literal>right outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr "<literal>full join</literal> (ããã¦ãã®å ´å使ãã¥ãã)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> and "
+"<literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+"<literal>inner join</literal>ã <literal>left outer join</literal>ã "
+"<literal>right outer join</literal> ã«ã¯çç¥å½¢ã使ããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You may supply extra join conditions using the HQL <literal>with</literal> "
+"keyword."
+msgstr ""
+"HQL ã® <literal>with</literal> ãã¼ã¯ã¼ãã使ãã¨ãçµåæ¡ä»¶ãä»ãå ãããã¨ã"
+"ã§ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A \"fetch\" join allows associations or collections of values to be "
+"initialized along with their parent objects using a single select. This is "
+"particularly useful in the case of a collection. It effectively overrides "
+"the outer join and lazy declarations of the mapping file for associations "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
+"information."
+msgstr ""
+"å ãã¦ãããã§ãããçµåã¯é¢é£ãå¤ã®ã³ã¬ã¯ã·ã§ã³ã親ãªãã¸ã§ã¯ãã¨ä¸ç·ã«1度"
+"ã® select å¥ã§åæåãã¾ããããã¯ç¹ã«ã³ã¬ã¯ã·ã§ã³ã®å ´åã«æç¨ã§ããããã¯å®"
+"質ä¸ãé¢é£ã¨ã³ã¬ã¯ã·ã§ã³ã«å¯¾ãããããã³ã°å®ç¾©ãã¡ã¤ã«ã®å¤é¨çµå㨠lazy åæ"
+"åã®å®ç¾©ãä¸æ¸ããããã¨ã«ãªãã¾ãã <xref linkend=\"performance-fetching\"/"
+"> ã«ããå¤ãã®æ
å ±ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A fetch join does not usually need to assign an alias, because the "
+"associated objects should not be used in the <literal>where</literal> clause "
+"(or any other clause). The associated objects are also not returned directly "
+"in the query results. Instead, they may be accessed via the parent object. "
+"The only reason you might need an alias is if you are recursively join "
+"fetching a further collection:"
+msgstr ""
+"çµåã«ãããã§ããã¯é¢é£ãããªãã¸ã§ã¯ãã <literal>where</literal> ç¯ (ã¾ã"
+"ã¯ä»ã®ã©ããªç¯ã§ã) ã§ä½¿ããã¦ã¯ãªããªãã®ã§ãé常å¥åãå²ãå½ã¦ãå¿
è¦ããã"
+"ã¾ãããã¾ãé¢é£ãªãã¸ã§ã¯ãã¯åãåããçµæã¨ãã¦ç´æ¥è¿ããã¾ããã代ããã«"
+"親ãªãã¸ã§ã¯ããéãã¦ã¢ã¯ã»ã¹ã§ãã¾ããã³ã¬ã¯ã·ã§ã³ãå帰çã«çµåãã§ããã"
+"ãå ´åã®ã¿ãå¥åãå¿
è¦ã«ãªãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> construct cannot be used in queries called "
+"using <literal>iterate()</literal> (though <literal>scroll()</literal> can "
+"be used). <literal>Fetch</literal> should be used together with "
+"<literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, "
+"as these operations are based on the result rows which usually contain "
+"duplicates for eager collection fetching, hence, the number of rows is not "
+"what you would expect. <literal>Fetch</literal> should also not be used "
+"together with impromptu <literal>with</literal> condition. It is possible to "
+"create a cartesian product by join fetching more than one collection in a "
+"query, so take care in this case. Join fetching multiple collection roles "
+"can produce unexpected results for bag mappings, so user discretion is "
+"advised when formulating queries in this case. Finally, note that "
+"<literal>full join fetch</literal> and <literal>right join fetch</literal> "
+"are not meaningful."
+msgstr ""
+"<literal>fetch</literal> æ§æ㯠<literal>iterate()</literal> ã使ã£ãã¯ã¨ãªå¼"
+"ã³åºãã§ä½¿ç¨ã§ããªããã¨ã«æ³¨æãã¦ãã ãã ï¼ä¸æ¹ã§ <literal>scroll()</"
+"literal> ã¯ä½¿ç¨ã§ãã¾ãï¼ãã¾ãããããã®æä½ã¯çµæã®è¡ã«åºã¥ãã¦ããããã "
+"<literal>fetch</literal> 㯠<literal>setMaxResults()</literal> ã "
+"<literal>setFirstResult()</literal> ã¨ä¸ç·ã«ä½¿ç¨ãã¹ãã§ã¯ããã¾ãããé常 "
+"eager ãªã³ã¬ã¯ã·ã§ã³ãã§ãããããã¨éè¤ãåºã¦ãã¾ããããããªããæå¾
ããã"
+"ããªè¡æ°ã«ã¯ãªããªãã®ã§ããããã¦ã¾ã <literal>fetch</literal> ã¯ãã¢ããã"
+"ã¯ãª <literal>with</literal> æ¡ä»¶ãä¸ç·ã«ä½¿ããã¨ãã§ãã¾ãããä¸ã¤ã®ã¯ã¨ãªã§"
+"è¤æ°ã®ã³ã¬ã¯ã·ã§ã³ãçµåãã§ãããããã¨ã«ããç´ç©ãä½æã§ããã®ã§ããã®å ´å"
+"注æãã¦ãã ãããã¾ããè¤æ°ã®ã³ã¬ã¯ã·ã§ã³ã«å¯¾ããçµåãã§ãã㯠bag ãããã³"
+"ã°ã«å¯¾ãã¦äºæãã¬çµæããããããã¨ãããã®ã§ããã®å ´åã®ã¯ã¨ãªã®ä½æã«ã¯æ³¨"
+"æãã¦ãã ãããæå¾ã« <literal>å
¨å¤é¨çµåã«ãããã§ãã</literal> 㨠"
+"<literal>å³å¤é¨çµåã«ãããã§ãã</literal> ã¯æç¨ã§ã¯ãªããã¨ã«æ³¨æãã¦ãã "
+"ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you are using property-level lazy fetching (with bytecode "
+"instrumentation), it is possible to force Hibernate to fetch the lazy "
+"properties in the first query immediately using <literal>fetch all "
+"properties</literal>."
+msgstr ""
+"ããããããã£ã¬ãã«ã®é
延ãã§ããã使ãå ´åï¼å
é¨çã«ãã¤ãã³ã¼ãå¦çããã"
+"å ´åï¼ã <literal>fetch all properties</literal> ã使ããã¨ã§ Hibernate ã«é
"
+"延ããããã£ãéããã«ï¼æåã®ã¯ã¨ãªã§ï¼ãã§ããããããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr "çµåæ§æã®å½¢å¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
+msgstr ""
+"HQL ã¯ï¼ã¤ã®é¢é£çµåå½¢å¼ããµãã¼ããã¾ãï¼ <literal>æé»ç</literal> 㨠"
+"<literal>æ示ç</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The queries shown in the previous section all use the <literal>explicit</"
+"literal> form, that is, where the join keyword is explicitly used in the "
+"from clause. This is the recommended form."
+msgstr ""
+"ããã¾ã§ã®ã»ã¯ã·ã§ã³ã§ãè¦ããã使ãæ¹ã¯ãã¹ã¦ <literal>æ示çãª</literal> å½¢"
+"å¼ã§ã from ç¯ã§æ示çã« join ãã¼ã¯ã¼ãã使ã£ã¦ãã¾ãããã®å½¢å¼ãããããã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+"<literal>æé»ç</literal> ãã©ã¼ã ã¯ã join ãã¼ã¯ã¼ãã使ãã¾ããã代ãã"
+"ã«ãåç
§ããé¢é£ã«ããã表è¨ã使ãã¾ãã <literal>æé»ç</literal> çµåã¯ãã"
+"ã¾ãã¾ãª HQL ã«åºã¦ãã¾ãã <literal>æé»ç</literal> çµåã®çµæã¯ã SQL ã¹"
+"ãã¼ãã¡ã³ãã®å
é¨çµåçµæã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Referring to identifier property"
+msgstr "èå¥åããããã£ã®åç
§"
+
+#. Tag: para
+#, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr "ã¨ã³ãã£ãã£ã®èå¥åããããã£ã¯ãä¸è¬çã«2ã¤ã®æ¹æ³ã§åç
§ããã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the identifier property of an entity <emphasis>provided that the "
+"entity does not define a non-identifier property named id</emphasis>."
+msgstr ""
+"ç¹å¥ãªãããã㣠(å°æå) <literal>id</literal> ã¯ã <emphasis>id ã¨åä»ãã"
+"ããéèå¥åããããã£ãå®ç¾©ããªãã¨ã³ãã£ãã£ãä¸ãããã</emphasis> ã¨ã³"
+"ãã£ãã£ã®èå¥åããããã£ãåç
§ããã®ã«ä½¿ç¨ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the entity defines a named identifier property, you can use that property "
+"name."
+msgstr ""
+"ããã¨ã³ãã£ãã£ãåä»ããããèå¥åããããã£ãå®ç¾©ãããããã®ããããã£å"
+"ã使ç¨ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"References to composite identifier properties follow the same naming rules. "
+"If the entity has a non-identifier property named id, the composite "
+"identifier property can only be referenced by its defined named. Otherwise, "
+"the special <literal>id</literal> property can be used to reference the "
+"identifier property."
+msgstr ""
+"è¤åèå¥åããããã£ã¸ã®åç
§ã¯åãå½åã«ã¼ã«ã«å¾ãã¾ããããã¨ã³ãã£ãã£ã "
+"id ã¨åä»ããããéèå¥åããããã£ãæã£ã¦ããããè¤åèå¥åããããã£ã¯ãã®"
+"å®ç¾©ãããååã§åç
§ãããã¨ãã§ãã¾ããããã§ãªãã¨ãç¹å¥ãª <literal>id</"
+"literal> ããããã£ã¯ãèå¥åããããã£ãåç
§ããã®ã«ä½¿ç¨ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please note that, starting in version 3.2.2, this has changed significantly. "
+"In previous versions, <literal>id</literal> <emphasis>always</emphasis> "
+"referred to the identifier property regardless of its actual name. A "
+"ramification of that decision was that non-identifier properties named "
+"<literal>id</literal> could never be referenced in Hibernate queries."
+msgstr ""
+"注è¨: ããã¯ããã¼ã¸ã§ã³ 3.2.2 ãã大å¹
ã«å¤æ´ãã¾ãããåãã¼ã¸ã§ã³ã§ã¯ã "
+"<literal>id</literal> ã¯ããã®å®éã®ååã«é¢ä¿ãªã <emphasis>常ã«</emphasis> "
+"èå¥åããããã£ãåç
§ãã¦ãã¾ããããã®çµæã <literal>id</literal> ã¨åä»ã"
+"ãããéèå¥åããããã£ã¯ã Hibernate ã§æ±ºãã¦åç
§ããã¾ããã§ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr "Select ç¯"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>select</literal> clause picks which objects and properties to "
+"return in the query result set. Consider the following:"
+msgstr ""
+"<literal>select</literal> ç¯ã¯ä»¥ä¸ã®ããã«ã©ã®ãªãã¸ã§ã¯ãã¨å±æ§ãã¯ã¨ãªãªã¶"
+"ã«ãã»ããã«è¿ãããé¸æãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. You can express this query more compactly as:"
+msgstr ""
+"ä¸è¨ã®ã¯ã¨ãªã¯ä»ã® <literal>Cat</literal> ã® <literal>mate</literal> ãé¸æã"
+"ã¾ããå®éã«ã¯æ¬¡ã®ããã«ãããç°¡æ½ã«è¡¨ç¾ã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Queries can return properties of any value type including properties of "
+"component type:"
+msgstr ""
+"ã¯ã¨ãªã¯ã³ã³ãã¼ãã³ãåã®ããããã£ãå«ããããããå¤åã®ããããã£ãè¿ãã¾"
+"ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Queries can return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>:"
+msgstr ""
+"ã¯ã¨ãªã¯è¤æ°ã®ãªãã¸ã§ã¯ã㨠(ã¾ãã¯) ããããã£ã <literal>Object[]</"
+"literal> åã®é
åã¨ãã¦è¿ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr "ããã㯠<literal>List</literal> ã¨ãã¦ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Or - assuming that the class <literal>Family</literal> has an appropriate "
+"constructor - as an actual typesafe Java object:"
+msgstr ""
+"ããã㯠<literal>Family</literal> ã¯ã©ã¹ãé©åãªã³ã³ã¹ãã©ã¯ã¿ãæã£ã¦ããã¨"
+"ãããªãã°ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr "select ç¯ã« <literal>as</literal> ã使ã£ã¦å¥åãã¤ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal>:"
+msgstr "<literal>select new map</literal> ã¨ä¸ç·ã«ä½¿ãã¨ãã«æãå½¹ç«ã¡ã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+"ãã®ã¯ã¨ãªã¯å¥åãã select ããå¤ã¸ <literal>Map</literal> ãè¿ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr "éç´é¢æ°"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL queries can even return the results of aggregate functions on properties:"
+msgstr "HQL ã®ã¯ã¨ãªã¯ããããã£ã®éç´é¢æ°ã®çµæãè¿ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr "ãµãã¼ããã¦ããéç´é¢æ°ã¯ä»¥ä¸ã®ãã®ã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "<literal>count(*)</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause:"
+msgstr ""
+"select ç¯ã«ããã¦ç®è¡æä½ãé£çµã¨æ¿èªããã SQL é¢æ°ã使ããã¨ãã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords can be "
+"used and have the same semantics as in SQL."
+msgstr ""
+"SQL ã¨åãæå³ãæ㤠<literal>distinct</literal> 㨠<literal>all</literal> "
+"ãã¼ã¯ã¼ãã使ããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "ããªã¢ã¼ãã£ãºã ã使ã£ãã¯ã¨ãª"
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr "次ã®ãããªã¯ã¨ãªï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"returns instances not only of <literal>Cat</literal>, but also of subclasses "
+"like <literal>DomesticCat</literal>. Hibernate queries can name "
+"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
+"literal> clause. The query will return instances of all persistent classes "
+"that extend that class or implement the interface. The following query would "
+"return all persistent objects:"
+msgstr ""
+"<literal>Cat</literal> ã¤ã³ã¹ã¿ã³ã¹ã ãã§ã¯ãªãã <literal>DomesticCat</"
+"literal> ã®ãããªãµãã¯ã©ã¹ãè¿ããã¾ãã Hibernate ã¯ã¨ãªã¯ <emphasis>ã©ããª"
+"</emphasis> Java ã¯ã©ã¹ãã¤ã³ã¿ã¼ãã§ã¼ã¹ã <literal>from</literal> ç¯ã«å
¥ã"
+"ããã¨ãã§ãã¾ããã¯ã¨ãªã¯ãã®ã¯ã©ã¹ãæ¡å¼µããããããã¯ã¤ã³ã¿ã¼ãã§ã¼ã¹ãå®"
+"è£
ããå
¨ã¦ã®æ°¸ç¶ã¯ã©ã¹ãè¿ãã¾ãã次ã®ã¯ã¨ãªã¯æ°¸ç¶ãªãã¸ã§ã¯ãããã¹ã¦è¿ãã¾"
+"ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+"<literal>Named</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯æ§ã
ãªæ°¸ç¶ã¯ã©ã¹ã«ãã£ã¦å®è£
ããã¾"
+"ãã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"These last two queries will require more than one SQL <literal>SELECT</"
+"literal>. This means that the <literal>order by</literal> clause does not "
+"correctly order the whole result set. It also means you cannot call these "
+"queries using <literal>Query.scroll()</literal>."
+msgstr ""
+"æå¾ã®2ã¤ã®ã¯ã¨ãªã¯ã2ã¤ä»¥ä¸ã® SQL <literal>SELECT</literal> ãè¦æ±ãã¦ããã"
+"ã¨ã«æ³¨æãã¦ãã ããããã®ãã¨ã¯ <literal>order by</literal> ç¯ããªã¶ã«ãã»ã"
+"ãå
¨ä½ãæ£ç¢ºã«ã¯æ´åããªããã¨ãæå³ãã¾ã (ããã«ããã¯ã <literal>Query."
+"scroll()</literal> ã使ç¨ãã¦ãããã®ã¯ã¨ãªãå¼ã¶ãã¨ãã§ããªããã¨ãæå³ãã¾"
+"ãã)ã"
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr "where ç¯"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>where</literal> clause allows you to refine the list of "
+"instances returned. If no alias exists, you can refer to properties by name:"
+msgstr ""
+"<literal>where</literal> ç¯ã¯è¿ãããã¤ã³ã¹ã¿ã³ã¹ã®ãªã¹ããçµããã¨ãã§ãã¾"
+"ããããå¥åããªãå ´åãååã§ããããã£ãåç
§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr "ããå¥åãããå ´åã修飾åã使ã£ã¦ãã ãã:"
+
+#. Tag: para
+#, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr ""
+"ååã 'Fritz' ã¨ãã <literal>Cat</literal> ã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"returns all instances of <literal>Foo</literal> with an instance of "
+"<literal>bar</literal> with a <literal>date</literal> property equal to the "
+"<literal>startDate</literal> property of the <literal>Foo</literal>. "
+"Compound path expressions make the <literal>where</literal> clause extremely "
+"powerful. Consider the following:"
+msgstr ""
+"ä¸ã® HQL ã¯ã <literal>Foo</literal> ã® <literal>startDate</literal> ããã"
+"ãã£ã¨çãã <literal>date</literal> ããããã£ãæã£ã <literal>bar</"
+"literal> ã¤ã³ã¹ã¿ã³ã¹ãåå¨ããããã¹ã¦ã® <literal>Foo</literal> ã¤ã³ã¹ã¿ã³ã¹"
+"ãè¿ãã¾ããã³ã³ãã¦ã³ããã¹å¼ã¯ <literal>where</literal> ç¯ãé常ã«å¼·åã«ã"
+"ã¾ãã注ç®ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query translates to an SQL query with a table (inner) join. For example:"
+msgstr ""
+"ãã®ã¯ã¨ãªã¯ãã¼ãã«çµåï¼å
é¨çµåï¼ãæ㤠SQL ã¯ã¨ãªã«å¤æããã¾ãããã®ä»£ã"
+"ãã«ä»¥ä¸ã®ããã«æ¸ãã¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr ""
+"ããä¸ã®ã¯ã¨ãªãè¨è¿°ãããã¯ã¨ãªå
ã«4ã¤ã®ãã¼ãã«çµåãå¿
è¦ã¨ãã SQL ã¯ã¨ãª"
+"ã«å¤æããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>=</literal> operator can be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+"<literal>=</literal> æ¼ç®åã¯ä»¥ä¸ã®ããã«ãããããã£ã ãã§ãªãã¤ã³ã¹ã¿ã³ã¹ã"
+"æ¯è¼ããããã«ã使ããã¾ããï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> can be used to "
+"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
+"identifier-property\" /> for more information."
+msgstr ""
+"<literal>id</literal> (å°æå) ã¯ç¹å¥ãªããããã£ã§ããããªãã¸ã§ã¯ãã®ã¦ãã¼"
+"ã¯ãªèå¥åãåç
§ããããã«ä½¿ç¨ã§ãã¾ãã詳細ã«ã¤ãã¦ã¯ <xref linkend="
+"\"queryhql-identifier-property\"/> ãåç
§ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr "2çªç®ã®ã¯ã¨ãªã¯å¹ççã§ãããã¼ãã«çµåãå¿
è¦ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties of composite identifiers can also be used. Consider the following "
+"example where <literal>Person</literal> has composite identifiers consisting "
+"of <literal>country</literal> and <literal>medicareNumber</literal>:"
+msgstr ""
+"ã¾ãè¤åèå¥åã®ããããã£ã使ç¨ã§ãã¾ãããã㧠<literal>Person</literal> "
+"ã <literal>country</literal> 㨠<literal>medicareNumber</literal> ãããªãè¤"
+"åèå¥åãæã¤ã¨ä»®å®ãã¾ããèå¥åããããã£åç
§ã«ã¤ãã¦ã®è©³ç´°ã¯ãååã¨åæ§"
+"ã« <xref linkend=\"queryhql-identifier-property\"/> ãåç
§ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr "ç¹°ãè¿ãã¾ããã2çªç®ã®ã¯ã¨ãªã«ã¯ãã¼ãã«çµåãå¿
è¦ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
+"regarding referencing identifier properties)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property <literal>class</literal> accesses the discriminator "
+"value of an instance in the case of polymorphic persistence. A Java class "
+"name embedded in the where clause will be translated to its discriminator "
+"value."
+msgstr ""
+"åæ§ã« <literal>class</literal> ã¯ç¹å¥ãªããããã£ã§ãããããªã¢ã¼ãã£ãã¯ãª"
+"æ°¸ç¶åã«ãããã¤ã³ã¹ã¿ã³ã¹ã® discriminator å¤ã«ã¢ã¯ã»ã¹ãã¾ãã where ç¯ã«å"
+"ãè¾¼ã¾ãã Java ã®ã¯ã©ã¹åã¯ãã® discriminator å¤ã«å¤æããã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also use components or composite user types, or properties of said "
+"component types. See <xref linkend=\"queryhql-components\" /> for more "
+"information."
+msgstr ""
+"ã¾ãã³ã³ãã¼ãã³ããè¤åã¦ã¼ã¶ã¼åãåã¯ãã®ã³ã³ãã¼ãã³ãã®ããããã£ã使ç¨"
+"ã§ãã¾ãã詳細ã«ã¤ãã¦ã¯ã <xref linkend=\"queryhql-components\"/> ãåç
§ä¸ã"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal> that allows you to express a join in the following "
+"way (where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal><any></literal>):"
+msgstr ""
+"\"any\" åã¯ç¹å¥ãªããããã£ã§ãã <literal>id</literal> 㨠<literal>class</"
+"literal> ãæã¡ã以ä¸ã®æ¹æ³ã§çµåã表ç¾ãããã¨ãå¯è½ã«ãã¾ã "
+"(<literal>AuditLog.item</literal> 㯠<literal><any></literal> ã§ããã"
+"ã³ã°ãããããããã£ã§ã)ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>log.item.class</literal> and <literal>payment.class</literal> "
+"would refer to the values of completely different database columns in the "
+"above query."
+msgstr ""
+"<literal>log.item.class</literal> 㨠<literal>payment.class</literal> ãä¸è¨"
+"ã®ã¯ã¨ãªä¸ã§å
¨ãç°ãªããã¼ã¿ãã¼ã¹ã«ã©ã ã®å¤ãåç
§ããã¨ãããã¨ã«æ³¨æãã¦ã"
+"ã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr "Expressions å¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Expressions used in the <literal>where</literal> clause include the "
+"following:"
+msgstr ""
+"SQL ã® <literal>where</literal> ç¯ã§è¨è¿°ãããã¨ãåºæ¥ãå¼ã®ã»ã¨ãã©ã HQL ã§"
+"ãè¨è¿°ã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr "ç®è¡æ¼ç®åï¼<literal>+, -, *, /</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
+"literal>"
+msgstr "2é
æ¯è¼æ¼ç®åï¼<literal>=, >=, <=, <>, !=, like</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr "è«çæ¼ç®åï¼<literal>and, or, not</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr "ã°ã«ã¼ãåãã表ãæ¬å¼§ï¼<literal>( )</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+"\"ã·ã³ãã«\"㪠case <literal>case ... when ... then ... else ... end</"
+"literal>ã \"æ¢ç´¢ç\"㪠case <literal>case when ... then ... else ... end</"
+"literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
+"</literal>"
+msgstr ""
+"ã¹ããªã³ã°ã®é£çµ <literal>...||...</literal> ã¾ã㯠<literal>concat(...,...)"
+"</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"and <literal>year(...)</literal>"
+msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>,"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
+"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
+"</literal>"
+msgstr ""
+"EJB-QL 3.0 ã§å®ç¾©ããã¦ããé¢æ°ãæ¼ç®å: <literal>substring(), trim(), lower"
+"(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr "<literal>coalesce()</literal> 㨠<literal>nullif()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>str()</literal> for converting numeric or temporal values to a "
+"readable string"
+msgstr "æ°åãæéã®å¤ã String ã«ã³ã³ãã¼ããã <literal>str()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cast(... as ...)</literal>, where the second argument is the name "
+"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
+"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
+"the underlying database"
+msgstr ""
+"2çªç®ã®å¼æ°ã Hibernate åã®ååã§ãã <literal>cast(... as ...)</literal> "
+"㨠<literal>extract(... from ...)</literal>ããã ã使ç¨ãããã¼ã¿ãã¼ã¹ã "
+"ANSI <literal>cast()</literal> 㨠<literal>extract()</literal> ããµãã¼ããã"
+"å ´åã«éãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the HQL <literal>index()</literal> function, that applies to aliases of a "
+"joined indexed collection"
+msgstr ""
+"çµåããã¤ã³ããã¯ã¹ä»ãã®ã³ã¬ã¯ã·ã§ã³ã®å¥åã«é©ç¨ããã HQL ã® "
+"<literal>index()</literal> é¢æ°ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL functions that take collection-valued path expressions: <literal>size(), "
+"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
+"special <literal>elements()</literal> and <literal>indices</literal> "
+"functions that can be quantified using <literal>some, all, exists, any, in</"
+"literal>."
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³å¤ã®ãã¹å¼ãåã HQL é¢æ°ï¼ <literal>size(), minelement(), "
+"maxelement(), minindex(), maxindex()</literal> ã <literal>some, all, "
+"exists, any, in</literal> ã使ã£ã¦ä¿®é£¾ãããã¨ãã§ããç¹å¥ãª "
+"<literal>elements()</literal> 㨠<literal>indices</literal> é¢æ°ã¨ä¸ç·ã«ä½¿ã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any database-supported SQL scalar function like <literal>sign()</literal>, "
+"<literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</"
+"literal>"
+msgstr ""
+"<literal>sign()</literal>ã <literal>trunc()</literal>ã <literal>rtrim()</"
+"literal>ã <literal>sin()</literal> ã®ãããªãã¼ã¿ãã¼ã¹ããµãã¼ããã SQL ã¹"
+"ã«ã©é¢æ°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr "JDBC ã¹ã¿ã¤ã«ã®ä½ç½®ãã©ã¡ã¼ã¿ <literal>?</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"and <literal>:x1</literal>"
+msgstr ""
+"ååä»ããã©ã¡ã¼ã¿: <literal>:name</literal>, <literal>:start_date</"
+"literal>, <literal>:x1</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+"SQL ãªãã©ã«ï¼ <literal>'foo'</literal>ã <literal>69</literal>ã "
+"<literal>6.66E+2</literal>ã <literal>'1970-01-01 10:00:01.0'</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+"Java ã® <literal>public static final</literal> å®æ°ï¼ <literal>eg.Color."
+"TABBY</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr ""
+"<literal>in</literal> 㨠<literal>between</literal> ã¯ä»¥ä¸ã®ããã«ä½¿ç¨ã§ãã¾"
+"ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr "ã¾ããå¦å®å½¢ã§è¨è¿°ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Similarly, <literal>is null</literal> and <literal>is not null</literal> can "
+"be used to test for null values."
+msgstr ""
+"åæ§ã« <literal>is null</literal> ã <literal>is not null</literal> 㯠null "
+"å¤ããã¹ãããããã«ä½¿ç¨ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Booleans can be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+"Hibernate è¨å®ãã¡ã¤ã«ã§ HQL query substitutions ãå®ç¾©ããã°ã boolean å¤ã"
+"å¼ã®ä¸ã§ç°¡åã«ä½¿ç¨ã§ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
+msgstr ""
+"ãããããã¨ã§ä¸è¨ã® HQL ã SQL ã«å¤æããã¨ãã« <literal>true</literal> ã "
+"<literal>false</literal> ãã¼ã¯ã¼ã㯠<literal>1</literal> ã <literal>0</"
+"literal> ã«ç½®ãæãããã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can test the size of a collection with the special property "
+"<literal>size</literal> or the special <literal>size()</literal> function."
+msgstr ""
+"ç¹å¥ãªãããã㣠<literal>size</literal>ãã¾ãã¯ç¹å¥ãªé¢æ° <literal>size()</"
+"literal> ã使ã£ã¦ã³ã¬ã¯ã·ã§ã³ã®ãµã¤ãºããã¹ãã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For indexed collections, you can refer to the minimum and maximum indices "
+"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
+"Similarly, you can refer to the minimum and maximum elements of a collection "
+"of basic type using the <literal>minelement</literal> and "
+"<literal>maxelement</literal> functions. For example:"
+msgstr ""
+"ã¤ã³ããã¯ã¹ä»ãã®ã³ã¬ã¯ã·ã§ã³ã§ã¯ã <literal>minindex</literal> 㨠"
+"<literal>maxindex</literal> é¢æ°ã使ã£ã¦ãã¤ã³ããã¯ã¹ã®æå°å¤ã¨æ大å¤ãåç
§"
+"ã§ãã¾ããåæ§ã«ã <literal>minelement</literal> 㨠<literal>maxelement</"
+"literal> ã使ã£ã¦ãåºæ¬åã®ã³ã¬ã¯ã·ã§ã³è¦ç´ ã®æå°å¤ã¨æ大å¤ãåç
§ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The SQL functions <literal>any, some, all, exists, in</literal> are "
+"supported when passed the element or index set of a collection "
+"(<literal>elements</literal> and <literal>indices</literal> functions) or "
+"the result of a subquery (see below):"
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ãã¤ã³ããã¯ã¹ã®ã»ããï¼<literal>elements</literal> 㨠"
+"<literal>indices</literal> é¢æ°ï¼ãã¾ãã¯å¯åãåããï¼å¾è¿°ï¼ã®çµæãåãåã"
+"ãã¨ãã¯ã SQL é¢æ° <literal>any, some, all, exists, in</literal> ããµãã¼ã"
+"ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that these constructs - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - can only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+"<literal>size</literal>ã <literal>elements</literal>ã <literal>indices</"
+"literal>ã <literal>minindex</literal>ã <literal>maxindex</literal>ã "
+"<literal>minelement</literal>ã <literal>maxelement</literal> 㯠Hibernate3 "
+"ã® where ç¯ã ãã§å©ç¨å¯è½ã§ãããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Elements of indexed collections (arrays, lists, and maps) can be referred to "
+"by index in a where clause only:"
+msgstr ""
+"ã¤ã³ããã¯ã¹ä»ãã®ã³ã¬ã¯ã·ã§ã³ï¼arrays, lists, mapsï¼ã®è¦ç´ ã¯ãã¤ã³ããã¯ã¹ã§"
+"åç
§ã§ãã¾ãï¼whereç¯å
ã§ã®ã¿ï¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> can even be an arithmetic "
+"expression:"
+msgstr "<literal>[]</literal> å
é¨ã®å¼ã¯ãç®è¡å¼ã§ãæ§ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function for "
+"elements of a one-to-many association or collection of values."
+msgstr ""
+"ä¸å¯¾å¤é¢é£ãå¤ã®ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã«å¯¾ãã¦ã¯ã HQL ã¯çµã¿è¾¼ã¿ã® "
+"<literal>index()</literal> é¢æ°ãç¨æãã¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr ""
+"ãã¼ã¹ã¨ãªããã¼ã¿ãã¼ã¹ããµãã¼ããã¦ããã¹ã«ã©ã¼ SQL é¢æ°ã使ç¨ã§ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Consider how much longer and less readable the following query would be in "
+"SQL:"
+msgstr ""
+"ããã¾ã å
¨ã¦ãç解ãã¦ããªããªããä¸ã®ã¯ã¨ãªã SQL ã§ã©ãã ãé·ããèªã¿ã¥ãã"
+"åºæ¥ããèãã¦ãã ãã:"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr "<emphasis>ãã³ã:</emphasis> ä¾ãã°ãã®ããã«åºæ¥ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr "order by ç¯"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The list returned by a query can be ordered by any property of a returned "
+"class or components:"
+msgstr ""
+"ã¯ã¨ãªãè¿ã list ã¯ãè¿ãããã¯ã©ã¹ãã³ã³ãã¼ãã³ãã®ä»»æã®å±æ§ã«ãã£ã¦ä¸¦ã¹"
+"æ¿ãããã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+"ãªãã·ã§ã³ã® <literal>asc</literal> 㨠<literal>desc</literal> ã¯ããããæé "
+"ãéé ã®æ´åã示ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr "group by ç¯"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A query that returns aggregate values can be grouped by any property of a "
+"returned class or components:"
+msgstr ""
+"éç´å¤ãè¿ãã¯ã¨ãªã¯ãè¿ãããã¯ã©ã¹ãã³ã³ãã¼ãã³ãã®ä»»æã®ããããã£ã«ãã£"
+"ã¦ã°ã«ã¼ãåã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr "<literal>having</literal> ç¯ã使ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses if they are supported by "
+"the underlying database (i.e., not in MySQL)."
+msgstr ""
+"ãã使ç¨ãããã¼ã¿ãã¼ã¹ããµãã¼ããã¦ãããªãã <literal>having</literal> "
+"㨠<literal>order by</literal> ç¯ã§ SQL é¢æ°ã¨éç´é¢æ°ã使ãã¾ãï¼ä¾ãã° "
+"MySQL ã«ã¯ããã¾ããï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Neither the <literal>group by</literal> clause nor the <literal>order by</"
+"literal> clause can contain arithmetic expressions. Hibernate also does not "
+"currently expand a grouped entity, so you cannot write <literal>group by "
+"cat</literal> if all properties of <literal>cat</literal> are non-"
+"aggregated. You have to list all non-aggregated properties explicitly."
+msgstr ""
+"<literal>group by</literal> ç¯ã <literal>order by</literal> ç¯ã«ç®è¡å¼ãå«ã"
+"ãã¨ãã§ããªããã¨ã«æ³¨æãã¦ãã ãããã¾ãã Hibernate ã¯ä»ã®ã¨ããã°ã«ã¼ã"
+"ã¨ã³ãã£ãã£ãæ¡å¼µããªããã¨ã«ã注æãã¦ãã ããããããã£ã¦ããã "
+"<literal>cat</literal> ã®å
¨ã¦ã®ããããã£ãééåä½ã®å ´åã <literal>group "
+"by cat</literal> ãæ¸ããã¨ã¯ã§ãã¾ãããå
¨ã¦ã®ééåä½ã®ããããã£ãæ示çã«"
+"ãªã¹ãããå¿
è¦ãããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr "å¯åãåãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For databases that support subselects, Hibernate supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+"ãµãã»ã¬ã¯ãããµãã¼ããããã¼ã¿ãã¼ã¹ã®ããã Hibernate ã¯å¯åãåããããµ"
+"ãã¼ããã¦ãã¾ããå¯åãåããã¯æ¬å¼§ã§å²ã¾ãªããã°ãªãã¾ããï¼ SQL ã®éç´é¢æ°"
+"å¼ã³åºãã«ããäºãå¤ãã§ãï¼ãé¢é£å¯åãåãã (å¤é¨ã¯ã¨ãªä¸ã®å¥åãåç
§ãã"
+"å¯åãåããã®ãã¨) ãã許å¯ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr ""
+"HQL å¯åãåããã¯ã select ã¾ã㯠where ç¯ã ãã§ä½¿ããããã¨ã«æ³¨æãã¦ãã ã"
+"ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
+msgstr ""
+"ãµãã¯ã¨ãªã¯ <literal>row value constructor</literal> æ§æã使ç¨ã§ãããã¨ã"
+"è¦ãã¦ããã¦ãã ããã詳細ã«ã¤ãã¦ã¯ <xref linkend=\"queryhql-tuple\"/> ãå"
+"ç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr "HQL ã®ä¾"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate queries can be quite powerful and complex. In fact, the power of "
+"the query language is one of Hibernate's main strengths. The following "
+"example queries are similar to queries that have been used on recent "
+"projects. Please note that most queries you will write will be much simpler "
+"than the following examples."
+msgstr ""
+"Hibernate ã¯ã¨ãªã¯é常ã«å¼·åã§è¤éã«ã§ãã¾ããå®éãã¯ã¨ãªè¨èªã®å¨å㯠"
+"Hibernate ã®ä¸»è¦ãªã»ã¼ã«ã¹ãã¤ã³ãã®ä¸ã¤ã§ããããã«æè¿ã®ããã¸ã§ã¯ãã§ä½¿ç¨"
+"ããã¯ã¨ãªã¨é常ã«ããä¼¼ãä¾ãããã¾ããã»ã¨ãã©ã®ã¯ã¨ãªã¯ãããã®ä¾ããç°¡å"
+"ã«è¨è¿°ã§ãããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following query returns the order id, number of items, the given minimum "
+"total value and the total value of the order for all unpaid orders for a "
+"particular customer. The results are ordered by total value. In determining "
+"the prices, it uses the current catalog. The resulting SQL query, against "
+"the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
+"<literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</"
+"literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr ""
+"以ä¸ã®ã¯ã¨ãªã¯ç¹å®ã®é¡§å®¢ã¨ä¸ããããæå°ã®åè¨å¤ã«å¯¾ããæªæã注æã®æ³¨æ "
+"ID ãååã®æ°ã注æã®åè¨ãåè¨å¤ã§æ´åãã¦è¿ãã¾ããä¾¡æ ¼ã決å®ããéãç¾å¨ã®"
+"ã«ã¿ãã°ã使ãã¾ããçµæã¨ãã¦è¿ããã SQL ã¯ã¨ãªã¯ <literal>ORDER</"
+"literal>ã <literal>ORDER_LINE</literal>ã <literal>PRODUCT</literal>ã "
+"<literal>CATALOG</literal> ããã³ <literal>PRICE</literal> ãã¼ãã«ã«å¯¾ã4ã¤"
+"ã®å
é¨çµå㨠(é¢é£ããªã) å¯åãåãããæã¡ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+"ä½ã¦å·¨å¤§ãªã¯ã¨ãªãªã®ã§ããããæ®æ®µç§ã¯å¯åãåããããã¾ã使ãã¾ããããã"
+"ãã£ã¦ç§ã®ã¯ã¨ãªã¯å®éã«ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+"次ã®ã¯ã¨ãªã¯åã¹ãã¼ã¿ã¹ã®æ¯æãæ°ãæ°ãã¾ãããã ããã¹ã¦ã®æ¯æããç¾å¨ã®å©"
+"ç¨è
ã«ããææ°ã®ã¹ãã¼ã¿ã¹å¤æ´ã§ãã <literal>AWAITING_APPROVAL</literal> ã§"
+"ããå ´åãé¤ãã¾ãããã®ã¯ã¨ãªã¯2ã¤ã®å
é¨çµå㨠<literal>PAYMENT</literal>, "
+"<literal>PAYMENT_STATUS</literal> ããã³ <literal>PAYMENT_STATUS_CHANGE</"
+"literal> ãã¼ãã«ã«å¯¾ããé¢é£å¯åãåãããåãã SQL ã¯ã¨ãªã«å¤æããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>statusChanges</literal> collection was mapped as a list, "
+"instead of a set, the query would have been much simpler to write."
+msgstr ""
+"ãã set ã®ä»£ããã« list ã¨ã㦠<literal>statusChanges</literal> ã³ã¬ã¯ã·ã§ã³"
+"ããããã³ã°ãããªãã°ãã¯ããã«ç°¡åã«ã¯ã¨ãªãè¨è¿°ã§ããã§ãããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+"次ã®ã¯ã¨ãªã¯ç¾å¨ã®ã¦ã¼ã¶ã¼ãæå±ããçµç¹ã«å¯¾ããã¢ã«ã¦ã³ãããã³æªæãã®æ¯æ"
+"ãããã¹ã¦è¿ã MS SQL Server ã® <literal>isNull()</literal> é¢æ°ã使ç¨ãã¦ã"
+"ã¾ãããã®ã¯ã¨ãªã¯3ã¤ã®å
é¨çµåã¨1ã¤ã®å¤é¨çµåããã㦠<literal>ACCOUNT</"
+"literal>ã <literal>PAYMENT</literal>ã <literal>PAYMENT_STATUS</literal>ã "
+"<literal>ACCOUNT_TYPE</literal>ã <literal>ORGANIZATION</literal> ããã³ "
+"<literal>ORG_USER</literal> ãã¼ãã«ã«å¯¾ããå¯åãåããæã£ã SQL ã«å¤æãã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+"ããã¤ãã®ãã¼ã¿ãã¼ã¹ã«ã¤ãã¦ã¯ã (é¢é£ããããã) å¯åãåããã®ä½¿ç¨ãé¿ã"
+"ãå¿
è¦ãããã§ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr "大éã® UPDATE 㨠DELETE"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
+"<literal>insert ... select ...</literal> statements. See <xref linkend="
+"\"batch-direct\" /> for more information."
+msgstr ""
+"HQL ã¯ç¾å¨ <literal>update</literal> 㨠<literal>delete</literal>ã "
+"<literal>insert ... select ...</literal> ã¹ãã¼ãã¡ã³ãããµãã¼ããã¦ãã¾ãã"
+"詳細ã«ã¤ãã¦ã¯ <xref linkend=\"batch-direct\"/> ãåç
§ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr "Tips & Tricks"
+
+#. Tag: para
+#, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr "å®éã«çµæãè¿ããªãã¦ãã¯ã¨ãªã®çµææ°ãæ°ãããã¨ãã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ã®ãµã¤ãºã«ããçµæã並ã¹æ¿ããããã«ã¯ä»¥ä¸ã®ã¯ã¨ãªã使ç¨ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+"使ç¨ãã¦ãããã¼ã¿ãã¼ã¹ããµãã»ã¬ã¯ãããµãã¼ãããå ´åãã¯ã¨ãªã® where ç¯ã§"
+"ãµã¤ãºã«ããé¸ææ¡ä»¶ãè¨å®ã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr ""
+"使ç¨ãã¦ãããã¼ã¿ãã¼ã¹ããµãã»ã¬ã¯ãããµãã¼ãããªãå ´åã¯ã次ã®ã¯ã¨ãªã使"
+"ç¨ãã¦ãã ãã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As this solution cannot return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+"å
é¨çµåããã¦ããããã§ä¸ã®è§£æ±ºæ³ã message ã®ä»¶æ°ãã¼ãã® <literal>User</"
+"literal> ãè¿ããã¨ãã§ããªããªãã°ã以ä¸ã®å½¢å¼ã使ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr ""
+"JavaBean ã®ããããã£ã¯ãååä»ãã®ã¯ã¨ãªãã©ã¡ã¼ã¿ã«çµã³ã¤ãããã¨ãåºæ¥ã¾"
+"ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections are pageable by using the <literal>Query</literal> interface "
+"with a filter:"
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ã¯ãã£ã«ã¿ä»ã <literal>Query</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã使ç¨ã"
+"ããã¨ã§ãã¼ã¸ãã¤ãããã¨ãã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr ""
+"ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã¯ã¯ã¨ãªãã£ã«ã¿ã使ã£ã¦ã並ã¹æ¿ããã°ã«ã¼ãåããåºæ¥ã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr "ã³ã¬ã¯ã·ã§ã³ãåæåããã«ã³ã¬ã¯ã·ã§ã³ã®ãµã¤ãºãå¾ããã¨ãã§ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr "ã³ã³ãã¼ãã³ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Components can be used similarly to the simple value types that are used in "
+"HQL queries. They can appear in the <literal>select</literal> clause as "
+"follows:"
+msgstr ""
+"HQL ã¯ã¨ãªã§ã·ã³ãã«ãªå¤åã使ç¨ã§ããã®ã§ãã³ã³ãã¼ãã³ãã¯ãããããç¹ã§ä½¿"
+"ç¨ã§ãã¾ãããã㯠<literal>select</literal> ç¯ã®ä¸ã«ç¾ããã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"where the Person's name property is a component. Components can also be used "
+"in the <literal>where</literal> clause:"
+msgstr ""
+"人åã®ããããã£ãã³ã³ãã¼ãã³ãã®å ´æãã³ã³ãã¼ãã³ãã¯ã <literal>where</"
+"literal> ç¯ã§ã使ç¨å¯è½ã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr "ã³ã³ãã¼ãã³ã㯠<literal>order by</literal> ç¯ã§ã使ç¨å¯è½ã§ã:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+msgstr ""
+"ã³ã³ãã¼ãã³ãã®ä»ã®ä¸è¬çãªä½¿ç¨ã¯ã <xref linkend=\"queryhql-tuple\"/> è¡å¤"
+"ã³ã³ã¹ãã©ã¯ã¿ã«ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr "è¡å¤ã³ã³ã¹ãã©ã¯ã¿æ§æ"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
+"syntax, sometimes referred to AS <literal>tuple</literal> syntax, even "
+"though the underlying database may not support that notion. Here, we are "
+"generally referring to multi-valued comparisons, typically associated with "
+"components. Consider an entity Person which defines a name component:"
+msgstr ""
+"ä¸ã«ä½ç½®ãããã¼ã¿ãã¼ã¹ã ANSI SQL <literal>row value constructor</literal> "
+"æ§æ (<literal>tuple</literal> æ§æã¨ãã°ãããã¨ãããã¾ã) ããµãã¼ããã¦ã"
+"ãªãã¨ãã¦ãã HQL ã¯ãã®ä½¿ç¨ããµãã¼ããã¦ãã¾ããããã§ã¯ãä¸è¬çã«ã³ã³ãã¼"
+"ãã³ãã¨é£ç¹ãããã«ãããªã¥ã¼æ¯è¼ã«ã¤ãã¦è§¦ãã¾ãããã¼ã ã³ã³ãã¼ãã³ããå®"
+"義ãã Person ã¨ã³ãã£ãã£ãèãã¾ããã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"That is valid syntax although it is a little verbose. You can make this more "
+"concise by using <literal>row value constructor</literal> syntax:"
+msgstr ""
+"ããã¯å°ã
詳細ã«ãªãã¾ãããæå¹ãªæ§æã§ããããç°¡æ½ã«ãã <literal>row "
+"value constructor</literal> æ§æã使ç¨ããã®ãããã§ããã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It can also be useful to specify this in the <literal>select</literal> "
+"clause:"
+msgstr "ããã <literal>select</literal> ç¯ã§æå®ããã®ãå¹æçã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Using <literal>row value constructor</literal> syntax can also be beneficial "
+"when using subqueries that need to compare against multiple values:"
+msgstr ""
+"次㫠<literal>row value constructor</literal> æ§æã®ä½¿ç¨ãæå¹ãªã¨ãã¯ããµã"
+"ã¯ã¨ãªã使ç¨ãã¦è¤æ°ã®å¤ã¨æ¯è¼ããå¿
è¦ãããã¨ãã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One thing to consider when deciding if you want to use this syntax, is that "
+"the query will be dependent upon the ordering of the component sub-"
+"properties in the metadata."
+msgstr ""
+"ãã®æ§æã使ç¨ãããã©ãã決å®ããã¨ãã«èæ
®ããªããã°ãªããªããã¨ã¯ãã¯ã¨ãª"
+"ãã¡ã¿ãã¼ã¿å
ã®ã³ã³ãã¼ãã³ãã®ãµãããããã£ã®é çªã«ä¾åãã¦ãããã¨ã§ãã"
+
+#, fuzzy
+#~ msgid "<![CDATA[from eg.Cat]]>"
+#~ 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"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat]]>"
+#~ msgstr "from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula, Parameter]]>"
+#~ msgstr "from Formula, Parameter"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula as form, Parameter as param]]>"
+#~ msgstr "from Formula as form, Parameter as param"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
+#~ msgstr "from Cat as cat left join cat.mate.kittens as kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula form full join form.parameter param]]>"
+#~ msgstr "from Formula form full join form.parameter param"
+
+#~ msgid "inner join"
+#~ msgstr "inner join"
+
+#~ msgid "left outer join"
+#~ 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"
+#~ " left join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " join cat.mate as mate\n"
+#~ " left join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Document fetch all properties order by name]]>"
+#~ msgstr "from Document fetch all properties order by name"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Document doc fetch all properties where lower(doc.name) "
+#~ "like '%cats%']]>"
+#~ msgstr ""
+#~ "from Document doc fetch all properties where lower(doc.name) like '%"
+#~ "cats%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
+#~ msgstr "from Cat as cat where cat.mate.name like '%s%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate]]>"
+#~ msgstr ""
+#~ "select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cat.mate from Cat cat]]>"
+#~ msgstr "select cat.mate from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%']]>"
+#~ msgstr ""
+#~ "select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
+#~ msgstr "select cust.name.firstName from Customer as cust"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, "
+#~ "count(*) as n )\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n )\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count"
+#~ "(cat)\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
+#~ "from Cat cat"
+
+#~ msgid "count(*)"
+#~ msgstr "count(*)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight]]>"
+#~ msgstr ""
+#~ "select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from "
+#~ "Person]]>"
+#~ msgstr "select firstName||' '||initial||' '||upper(lastName) from Person"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat]]>"
+#~ msgstr ""
+#~ "select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from java.lang.Object o]]>"
+#~ msgstr "from java.lang.Object o"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
+#~ msgstr "from Named n, Named m where n.name = m.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat where name='Fritz']]>"
+#~ msgstr "from Cat where name='Fritz'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+#~ msgstr "from Cat as cat where cat.name='Fritz'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date]]>"
+#~ msgstr ""
+#~ "select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
+#~ msgstr "from Cat cat where cat.mate.name is not null"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null]]>"
+#~ msgstr ""
+#~ "from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
+#~ msgstr "from Cat cat, Cat rival where cat.mate = rival.mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate]]>"
+#~ msgstr ""
+#~ "select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69]]>"
+#~ msgstr ""
+#~ "from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
+#~ msgstr "from Cat cat where cat.class = DomesticCat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id]]>"
+#~ msgstr ""
+#~ "from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name not between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', "
+#~ "'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
+#~ msgstr "from Cat cat where cat.alive = true"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
+#~ msgstr "from Cat cat where cat.kittens.size > 0"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
+#~ msgstr "from Cat cat where size(cat.kittens) > 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]"
+#~ ">"
+#~ msgstr "from Calendar cal where maxelement(cal.holidays) > current_date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
+#~ msgstr "from Order order where maxindex(order.items) > 100"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
+#~ msgstr "from Order order where minelement(order.items) > 10000"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)]]>"
+#~ msgstr ""
+#~ "select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)]]>"
+#~ msgstr ""
+#~ "select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
+#~ msgstr "from Cat cat where exists elements(cat.kittens)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
+#~ msgstr "from Player p where 3 > all elements(p.scores)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
+#~ msgstr "from Show show where 'fizard' in indices(show.acts)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
+#~ msgstr "from Order order where order.items[0].id = 1234"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar]]>"
+#~ msgstr ""
+#~ "select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5]]>"
+#~ msgstr ""
+#~ "select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
+#~ msgstr "from DomesticCat cat where upper(cat.name) like 'FRI%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)]]>"
+#~ msgstr ""
+#~ "select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust."
+#~ "current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )]]>"
+#~ msgstr ""
+#~ "SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate]]>"
+#~ msgstr ""
+#~ "from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id]]>"
+#~ msgstr ""
+#~ "select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc]]>"
+#~ msgstr ""
+#~ "select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat]]>"
+#~ msgstr ""
+#~ "select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :"
+#~ "currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <"
+#~ "> :currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue()]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
+#~ msgstr "from User usr where size(usr.messages) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:"
+#~ "name and foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name and "
+#~ "foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial "
+#~ "filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createFilter( collection, \"\" ); // the trivial filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection orderedCollection = s.filter( collection, \"order by "
+#~ "this.amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );]]>"
+#~ msgstr ""
+#~ "Collection orderedCollection = s.filter( collection, \"order by this."
+#~ "amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue();]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue();"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name from Person p]]>"
+#~ msgstr "select p.name from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name.first from Person p]]>"
+#~ msgstr "select p.name.first from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name = :name]]>"
+#~ msgstr "from from Person p where p.name = :name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name.first = :firstName]]>"
+#~ msgstr "from from Person p where p.name.first = :firstName"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name]]>"
+#~ msgstr "from from Person p order by p.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name.first]]>"
+#~ msgstr "from from Person p order by p.name.first"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name.first='John' and p.name."
+#~ "last='Jingleheimer-Schmidt']]>"
+#~ msgstr ""
+#~ "from Person p where p.name.first='John' and p.name.last='Jingleheimer-"
+#~ "Schmidt'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
+#~ msgstr "from Person p where p.name=('John', 'Jingleheimer-Schmidt')"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_sql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_sql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/query_sql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1618 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:47\n"
+"PO-Revision-Date: 2010-01-18 15:09+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr "ãã¤ãã£ã SQL"
+
+#. 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 ""
+"ãã¼ã¿ãã¼ã¹ã®ãã¤ãã£ã 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 ï¼ã¹ãã¢"
+"ãããã·ã¼ã¸ã£ãå«ãï¼ãææ¸ãã§ãã¾ãã"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr "ããã㯠<literal>List</literal> ã¨ãã¦ã"
+
+#. 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>SQLQuery</literal> ã¤ã³ã¿ã¼ãã§ã¼ã¹ã¯ "
+"<literal>Session.createSQLQuery()</literal> ãå¼ã³åºãã¦åå¾ãã¾ãããã® API "
+"ã使ã£ã¦åãåããããæ¹æ³ã以ä¸ã§èª¬æãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr "ã¹ã«ã©ã¼ã®ã¯ã¨ãª"
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr "æãåºæ¬ç㪠SQL ã¯ã¨ãªã¯ã¹ã«ã©ã¼ï¼å¤ï¼ã®ãªã¹ããå¾ããã¨ã§ãã"
+
+#. 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 ""
+"ãããã¯ã©ã¡ããã CATS ãã¼ãã«ã®åã«ã©ã ã®ã¹ã«ã©ã¼å¤ãå«ã Object é
å"
+"ï¼Object[]ï¼ã®ãªã¹ããè¿ãã¾ããè¿ãã¹ã«ã©ã¼å¤ã®å®éã®é çªã¨åãæ¨å®ãããã"
+"ã«ã 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> ã使"
+"ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr "ãã®ã¯ã¨ãªã§æå®ããã¦ãããã®ãä¸è¨ã«ç¤ºãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr "SQL ã¯ã¨ãªæåå"
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr "è¿ãããã«ã©ã ã¨å"
+
+#. 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 ã¨ãã¦æ示çã«åå¾ãã¾ãããã"
+"ã¯ï¼ã¤ã®ã«ã©ã ãè¿ãã®ã¿ã§ãããã¨ãæå³ãã¾ãããã¨ããã¯ã¨ãªã <literal>*</"
+"literal> ã使ç¨ããåæããï¼ã¤ããå¤ãã®ã«ã©ã ãè¿ããã¨ãã¦ãã§ãã"
+
+#. Tag: para
+#, no-c-format
+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 ""
+"ããã¯æ¬è³ªçã«åã¨åãã¯ã¨ãªã§ããã NAME 㨠BIRTHDATE ã®åã決ããããã« "
+"<literal>ResultSetMetaData</literal> ã使ç¨ãã¾ããä¸æ¹ã 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 ãå¶å¾¡ãã¾ããæ示ãããåããããã³ã°ããã¦ããªãããçµ"
+"æã®åãæå¾
ãããã®ã¨ç°ãªãå ´åã Dialect ã® "
+"<literal>registerHibernateType</literal> ãå¼ã³åºããã«ã¹ã¿ãã¤ãºã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr "ã¨ã³ãã£ãã£ã®ã¯ã¨ãª"
+
+#. 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 ""
+"ããã¾ã§ã®ã¯ã¨ãªã¯ããã¹ã¦ã¹ã«ã©ã¼å¤ãè¿ããã®ã§ãããåºæ¬çã«ããªã¶ã«ãã»ã"
+"ããããæªå å·¥ãã®å¤ãè¿ãã¾ãã以éã§ã¯ã <literal>addEntity()</literal> ã«"
+"ããããã¤ãã£ã SQL ã¯ã¨ãªããã¨ã³ãã£ãã£ãªãã¸ã§ã¯ããåå¾ããæ¹æ³ã示ãã¾"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr "ã¯ã¨ãªãè¿ãã¨ã³ãã£ãã£ã¨ SQL ãã¼ãã«ã®å¥å"
+
+#. 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 ã®ã«ã©ã ã使ã£ã¦ã¯ã©ã¹ã«ãããã³ã°ãããå ´åã"
+"ä¸è¨ã®ã¯ã¨ãªã¯ã©ã¡ãããè¦ç´ ã 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>å¤å¯¾ä¸</literal> ã§ãããã³ã°ãã¦ã"
+"ãå ´åã¯ããã¤ãã£ãã¯ã¨ãªãå®è¡ããéã«ããã®å¥ã®ã¨ã³ãã£ãã£ãè¿ããã¨ãè¦"
+"æ±ãã¾ãããããªããã°ããã¼ã¿ãã¼ã¹åºæã®ãcolumn not found(ã«ã©ã ãè¦ã¤ãã"
+"ã¾ãã)ãã¨ã©ã¼ãçºçãã¾ãã * 表è¨ã使ç¨ããéã¯ã追å ã®ã«ã©ã ãèªåçã«è¿"
+"ããã¾ããã次ã®ä¾ã®ããã«ã <literal>Dog</literal> ã« <literal>å¤å¯¾ä¸</"
+"literal> ã§ãããã¨ãæ示ãããã¨ãç§ãã¡ã¯å¥½ã¿ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr "ããã«ãã cat.getDog() ãæ£ããæ©è½ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr "é¢é£ã¨ã³ã¬ã¯ã·ã§ã³ã®æä½"
+
+#. 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> ã®"
+"ä¸ã§å³æçµåã§ãã¾ãããã㯠<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ãï¼ã追å ãããã¨ã«æ³¨æ"
+"ãã¦ãã ãããã³ã¬ã¯ã·ã§ã³ã®å³æçµåãåãããã«ã§ãã¾ãããã¨ãã°ã "
+"<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 ""
+"ç¾å¨ã®ã¨ããã Hibernate ã§ä½¿ããããããããã® SQL ã¯ã¨ãªã®æ¡å¼µãªãã«ããã¤"
+"ãã£ãã¯ã¨ãªã§ä½ããå¯è½ã«ããéçã«æ¥ã¦ãã¾ããåãåã®ã¨ã³ãã£ãã£ãè¤æ°è¿"
+"ãéããããã©ã«ãã®å¥åãååã§ååã§ã¯ãªãå ´åã«ãåé¡ã¯èµ·ããå§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr "è¤æ°ã¨ã³ãã£ãã£ã®åå¾"
+
+#. 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 ã¯ã¨ãªã§åé¡ã¨ãªãå ´åãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
+msgstr ""
+"ä¸è¨ã®ãããªï¼å¤±æããããªï¼ã¯ã¨ãªã§ã¯ãã«ã©ã å¥åã¤ã³ã¸ã§ã¯ã·ã§ã³ï¼column "
+"alias injectionï¼ãå¿
è¦ã§ãï¼"
+
+#. 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 ã¤ã³ã¹ã¿ã³ã¹ãã¤ã¾ãç«ã¨ãã®æ¯è¦ªãè¿"
+"ãã¨ãããã¨ã§ããåãã«ã©ã åã«ãããã³ã°ãããã¨ã«ããååãè¡çªããããã"
+"ãã®ã¯ã¨ãªã¯å¤±æãã¾ãããã¼ã¿ãã¼ã¹ã«ãã£ã¦ã¯ãè¿ãããã«ã©ã ã®å¥åã \"c.ID"
+"\"ã\"c.NAME\" ãªã©ã®å½¢å¼ã§ããããããã³ã°ã§æå®ãããã«ã©ã ï¼\"ID\" 㨠"
+"\"NAME\"ï¼ã¨çãããªãããã失æãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following form is not vulnerable to column name duplication:"
+msgstr "ä¸è¨ã®å½¢å¼ã¯ãã«ã©ã åãéè¤ãã¦ã大ä¸å¤«ã§ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
+msgstr ""
+"SQL ã¯ã¨ãªæåå ï¼Hibernate ãã«ã©ã ã®å¥åãæ¿å
¥ããããã®ãã¬ã¼ã¹ãã«ããå«"
+"ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr "ã¯ã¨ãªã«ãã£ã¦è¿ãããã¨ã³ãã£ãã£"
+
+#. 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 ç¯ã®ä¸ã§"
+"ããããããã£ã®å¥åã使ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr "å¥åã¨ããããã£ã®ãªãã¡ã¬ã³ã¹"
+
+#. 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 ã¯é©åãªå¥å"
+"ãæ¿å
¥ã§ãã¾ãã"
+
+#. 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 ""
+"å¥åã¤ã³ã¸ã§ã¯ã·ã§ã³ã¨ãã¦ä½¿ç¨ã§ãããã®ãä¸è¡¨ã«ç¤ºãã¾ãã注è¨ï¼ä¸è¡¨ã®å¥åã¯"
+"ä¸ä¾ã§ããããããã®å¥åã¯ä¸æã§ããã使ç¨ããéã«ã¯ããããç°ãªãååãæã¡"
+"ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr "å¥åã«æ¿å
¥ããåå"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "説æ"
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr "æ§æ"
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr "ä¾"
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr "åç´ãªããããã£"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "<literal>{[aliasname].[propertyname]</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr "è¤åããããã£"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
+"literal>"
+msgstr ""
+"<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr "ã¨ã³ãã£ãã£ã®ã¯ã©ã¹ãèå¥ããå¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr "ã¨ã³ãã£ãã£ã®å
¨ããããã£"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®ãã¼"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>{coll.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã® ID"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>{coll.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ "
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "property of the element in the collection"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã®ããããã£"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã®å
¨ããããã£"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "All properties of the collection"
+msgstr "ã³ã¬ã¯ã·ã§ã³ã®å
¨ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr "管çããã¦ããªãã¨ã³ãã£ãã£ã®åå¾"
+
+#. 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 ãé©ç¨ã§ãã¾ããä¸è¨ã®ããã«ãä¾ã"
+"ã°ã管çããã¦ããªãã¨ã³ãã£ãã£ãè¿ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr "çµæãå¤æãããã®"
+
+#. 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 ""
+"ä¸è¨ã®ã¯ã¨ãªã¯ãã¤ã³ã¹ã¿ã³ã¹åãã NAME 㨠BIRTHDATE ã®å¤ã対å¿ããããããã£"
+"ãããã¯ãã£ã¼ã«ãã«æ¿å
¥ãã <literal>CatDTO</literal> ã®ãªã¹ããè¿ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr "ç¶æ¿ã®å¶å¾¡"
+
+#. 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 ã¯ã¨"
+"ãªã¯ããã¼ã¹ã®ã¯ã©ã¹ã¨ãã®ãã¹ã¦ã®ãµãã¯ã©ã¹ã®ããããã£ãã¹ã¦ãå«ã¾ãªããã°"
+"ãªãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr "ãã©ã¡ã¼ã¿"
+
+#. Tag: para
+#, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr ""
+"ãã¤ãã£ã SQL ã¯ã¨ãªã¯ã以ä¸ã®ããã«ãååä»ããã©ã¡ã¼ã¿ï¼:nameï¼ã¨åæ§ã«ä½"
+"ç½®ãã©ã¡ã¼ã¿ããµãã¼ããã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr "ååä»ã SQL ã¯ã¨ãª"
+
+#. 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 ""
+"ååä»ã SQL ã¯ã¨ãªã¯ãããã³ã°ããã¥ã¡ã³ãã§å®ç¾©ãããã¨ãã§ããååä»ã "
+"HQL ã¯ã¨ãªã¨å
¨ãåãæ¹æ³ã§å¼ã¶ãã¨ãã§ãã¾ãããã®å ´åã <literal>addEntity()"
+"</literal> ãå¼ã³åºãå¿
è¦ã¯ <emphasis>ããã¾ãã</emphasis> ã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><return-join></literal> element is use to join "
+"associations and the <literal><load-collection></literal> element is "
+"used to define queries which initialize collections,"
+msgstr ""
+"é¢é£ãçµåããããã¨ã³ã¬ã¯ã·ã§ã³ãåæåããã¯ã¨ãªãå®ç¾©ããããã«ããããã "
+"<literal><return-join></literal> 㨠<literal><load-collection></"
+"literal> è¦ç´ ã使ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal><return-scalar></literal> "
+"element:"
+msgstr ""
+"ååä»ã SQL ã¯ã¨ãªã¯ã¹ã«ã©å¤ãè¿ããã¨ãã§ãã¾ãã <literal><return-"
+"scalar></literal> è¦ç´ ã使ã£ã¦ãåã®å¥å㨠Hibernate ã®åã宣è¨ããªããã°"
+"ãªãã¾ãã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can externalize the resultset mapping information in a <literal><"
+"resultset></literal> element which will allow you to either reuse them "
+"across several named queries or through the <literal>setResultSetMapping()</"
+"literal> API."
+msgstr ""
+"ãªã¶ã«ãã»ããã®ãããã³ã°æ
å ±ã <literal><resultset></literal> ã«å¤é¨"
+"åãããã¨ãã§ãã¾ããè¤æ°ã®ååä»ãã¯ã¨ãªã§åå©ç¨ãããã "
+"<literal>setResultSetMapping()</literal> API ãéãã¦åå©ç¨ãããã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can, alternatively, use the resultset mapping information in your hbm "
+"files directly in java code."
+msgstr ""
+"代ããã«ã hbm ãã¡ã¤ã«å
ã®ãªã¶ã«ãã»ããã®ãããã³ã°æ
å ±ãç´æ¥ Java ã³ã¼ãã®"
+"ä¸ã§ä½¿ç¨ã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr "åã¨åã®å¥åãæ示çã«æå®ããããã« return-property ã使ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can explicitly tell Hibernate what column aliases to use with "
+"<literal><return-property></literal>, instead of using the <literal>{}"
+"</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+"å¥åãæ¿å
¥ããããã« <literal>{}</literal> æ§æã使ã代ããã«ã <literal><"
+"return-property></literal> ã使ããã©ã®åã®å¥åã使ãã®ããæ示ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><return-property></literal> also works with multiple columns. "
+"This solves a limitation with the <literal>{}</literal>-syntax which cannot "
+"allow fine grained control of multi-column properties."
+msgstr ""
+"<literal><return-property></literal> ã¯è¤æ°ã®åãæ±ãã¾ããããã¯ãè¤æ°"
+"åã®ããããã£ãããç´°ããå¶å¾¡ã§ããªãã¨ããã <literal>{}</literal> æ§æã®å¶"
+"éã解決ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In this example <literal><return-property></literal> was used in "
+"combination with the <literal>{}</literal>-syntax for injection. This allows "
+"users to choose how they want to refer column and properties."
+msgstr ""
+"ãã®ä¾ã§ã¯ãæ¿å
¥ã®ããã® <literal>{}</literal> æ§æã¨ãã£ããã«ã "
+"<literal><return-property></literal> ã使ã£ã¦ãããã¨ã«æ³¨æãã¦ãã ã"
+"ããåã¨ããããã£ãã©ã®ããã«åç
§ããããé¸ã¹ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your mapping has a discriminator you must use <literal><return-"
+"discriminator></literal> to specify the discriminator column."
+msgstr ""
+"ãããã³ã°ã« discriminator ãå«ã¾ãã¦ããå ´åã discriminator ã®åãæå®ãã"
+"ããã«ã <literal><return-discriminator></literal> ã使ããªããã°ãªãã¾"
+"ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr "åãåããããããã«ã¹ãã¢ãããã·ã¼ã¸ã£ã使ã"
+
+#. 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ãããã¹ãã¢ãããã·ã¼ã¸ã£ã¨ã¹ãã¢ãé¢æ°çµç±ã®åãåã"
+"ãããµãã¼ãããã¾ããã以éã®ææ¸ã®å¤ãã¯ã両æ¹ã«å½ã¦ã¯ã¾ãã¾ããã¹ãã¢ãã"
+"ãã·ã¼ã¸ã£ãã¹ãã¢ãé¢æ°ã Hibernate ã§ä½¿ãããã«ã¯ã1çªç®ã®åºåãã©ã¡ã¼ã¿ã¨"
+"ãã¦ãªã¶ã«ãã»ãããè¿ããªããã°ãªãã¾ããã Oracle 9ï¼ãããã¯ãã以ä¸ã®ãã¼"
+"ã¸ã§ã³ï¼ã®ã¹ãã¢ãããã·ã¼ã¸ã£ã®ä¾ã以ä¸ã«ç¤ºãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "To use this query in Hibernate you need to map it via a named query."
+msgstr ""
+"Hibernate ã§ãã®ã¯ã¨ãªã使ãããã«ã¯ãååä»ãã¯ã¨ãªã§ãããã³ã°ããå¿
è¦ãã"
+"ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures currently only return scalars and entities. <literal><"
+"return-join></literal> and <literal><load-collection></literal> are "
+"not supported."
+msgstr ""
+"注è¨ï¼ä»ã®ã¨ãããã¹ãã¢ãããã·ã¼ã¸ã£ã¯ã¹ã«ã©ã¨ã¨ã³ãã£ãã£ãè¿ãã®ã¿ã§ãã "
+"<literal><return-join></literal> 㨠<literal><load-collection></"
+"literal> ã¯ãµãã¼ãããã¦ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr "ã¹ãã¢ãããã·ã¼ã¸ã£ã使ãä¸ã§ã®ã«ã¼ã«ã¨å¶é"
+
+#. 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 ã§ã¹ãã¢ãããã·ã¼ã¸ã£ãé¢æ°ã使ãããã«ã¯ããã®ããã·ã¼ã¸ã£ã¯ãã"
+"ã¤ãã®ã«ã¼ã«ã«æºæ ããå¿
è¦ãããã¾ããã«ã¼ã«ã«æºæ ãã¦ããªãããã·ã¼ã¸ã£ã¯ã "
+"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> ã使ã£ã¦ãã¹ãã¢ããã"
+"ã·ã¼ã¸ã£ã¯ã¨ãªããã¼ã¸åããããã¨ã¯ã§ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(<parameters>) }</literal> or <literal>{ ? = call procedureName(<"
+"parameters>}</literal>. Native call syntax is not supported."
+msgstr ""
+"æ¨å¥¨ããå¼ã³åºãæ¹ã¯ãæ¨æºã§ãã SQL92 ã«å¾ããã¨ã§ãã <literal>{ ? = call "
+"functionName(<parameters>) }</literal> ã <literal>{ ? = call "
+"procedureName(<parameters>}</literal> ã§ãããã¤ãã£ããªå¼ã³åºãæ§æã¯"
+"ãµãã¼ãããã¦ãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr "Oracle ã«ã¯ä¸è¨ã®ã«ã¼ã«ãé©ç¨ããã¾ã:"
+
+#. 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 ã®æç®ãåç
§ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr "Sybase 㨠MS SQL ãµã¼ãã¼ã«é©ç¨ãããã«ã¼ã«ãä¸è¨ã«ç¤ºãã¾ã:"
+
+#. 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 ""
+"ããã·ã¼ã¸ã£ã¯ãªã¶ã«ãã»ãããè¿ããªããã°ãªãã¾ããããµã¼ãã¼ã¯è¤æ°ã®ãªã¶ã«"
+"ãã»ããã¨æ´æ°ã«ã¦ã³ããè¿ãã¾ããã Hibernate ã¯1ã¤ç®ã®ãªã¶ã«ãã»ããã ãã"
+"è¿ããã¨ã«æ³¨æãã¦ãã ããããã®ä»ã¯ãã¹ã¦æ¨ã¦ããã¾ãã"
+
+#. 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> ãæå¹ã«ã§ããã°ãããã"
+"ãå¹çããããªãã§ããããããããããã¯å¿
è¦æ¡ä»¶ã§ã¯ããã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr "ä½æãæ´æ°ãåé¤ã®ããã®ã«ã¹ã¿ã SQL"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 can use custom SQL for create, update, and delete operations. The "
+"SQL can be overridden at the statement level or inidividual column level. "
+"This section describes statement overrides. For columns, see <xref linkend="
+"\"mapping-column-read-and-write\" />."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class and collection persisters in Hibernate already contain a set of "
+"configuration time generated strings (insertsql, deletesql, updatesql etc.). "
+"The mapping tags <literal><sql-insert></literal>, <literal><sql-"
+"delete></literal>, and <literal><sql-update></literal> override "
+"these strings:"
+msgstr ""
+"Hibernate3 ã¯ä½æãæ´æ°ãåé¤å¦çã®ããã®ã«ã¹ã¿ã SQL æã使ç¨ã§ãã¾ããã¯ã©"
+"ã¹ã¨ã³ã¬ã¯ã·ã§ã³ã®æ°¸ç¶åæ©æ§ã¯ãã³ã³ãã£ã°ã¬ã¼ã·ã§ã³æã«çæãããæåå "
+"ï¼insertsqlãdeletesqlãupdatesql ãªã©ï¼ã®ã»ããããã§ã«ä¿æãã¦ãã¾ãããã"
+"ãã®æååããã <literal><sql-insert></literal>ã <literal><sql-"
+"delete></literal>ã <literal><sql-update></literal> ã¨ãããããã³ã°"
+"ã¿ã°ãåªå
ããã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The SQL is directly executed in your database, so you can use any dialect "
+"you like. This will reduce the portability of your mapping if you use "
+"database specific SQL."
+msgstr ""
+"SQL ãç´æ¥ãã¼ã¿ãã¼ã¹ã§å®è¡ããããã好ã¿ã®æ¹è¨ãèªç±ã«ä½¿ç¨ã§ãã¾ãããã¼ã¿"
+"ãã¼ã¹ç¬èªã® SQL ã使ãã°ãå½ç¶ãããã³ã°ã®ãã¼ã¿ããªãã£ãä¸ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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."
+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> ã¬ãã«ã®ãããã°ãã°ãæå¹"
+"ã«ãããã¨ã«ãã£ã¦ãæå¾
ãããé çªã確ããããã¾ãããã®ã¬ãã«ãæå¹ã«ããã"
+"ã¨ã«ãããã¨ã³ãã£ãã£ã®ä½æãæ´æ°ãåé¤ãªã©ã§ä½¿ç¨ãããéç㪠SQL ãåºåãã"
+"ã¾ããï¼æå¾
ãããé åºã確èªããããã«ã¯ã Hibernate ãçæããéç㪠SQL ã"
+"ãªã¼ãã¼ã©ã¤ãããã«ã¹ã¿ã 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 ã SQL æã®æ"
+"åããã§ãã¯ããããã§ãã Hibernate ã¯ã CUD å¦çã®ããã®æ°å¤ã®åºåãã©ã¡ã¼"
+"ã¿ã¨ãã¦ã SQL æã®æåã®ãã©ã¡ã¼ã¿ããã¤ãè¨é²ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr "ãã¼ãã®ããã®ã«ã¹ã¿ã SQL"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also declare your own SQL (or HQL) queries for entity loading. As "
+"with inserts, updates, and deletes, this can be done at the individual "
+"column level as described in <xref linkend=\"mapping-column-read-and-write"
+"\" /> or at the statement level. Here is an example of a statement level "
+"override:"
+msgstr ""
+
+#. 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 ""
+"ããã¯ãã¾ãã«ï¼ä»¥åè°è«ããï¼ååä»ãã¯ã¨ãªã®å®£è¨ã§ãããã®ååä»ãã¯ã¨ãªã"
+"ã¯ã©ã¹ã®ãããã³ã°ããåç
§ã§ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr "ããã¯ã¹ãã¢ãããã·ã¼ã¸ã£ã§ãããåä½ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr "次ã®ããã«ãã³ã¬ã¯ã·ã§ã³ããã¼ãããããã®ã¯ã¨ãªããå®ç¾©ãã¦ããã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also define an entity loader that loads a collection by join "
+"fetching:"
+msgstr ""
+"次ã®ããã«ãçµåãã§ããã«ããã³ã¬ã¯ã·ã§ã³ããã¼ãããã¨ã³ãã£ãã£ãã¼ãã¼ã"
+"å®ç¾©ã§ãã¾ã:"
+
+#~ msgid ""
+#~ "You can also declare your own SQL (or HQL) queries for entity loading:"
+#~ msgstr ""
+#~ "ã¨ã³ãã£ãã£ãèªã¿è¾¼ãããã®ç¬èªã® SQL ï¼ããã㯠HQLï¼ã¯ã¨ãªã宣è¨ã§ãã¾"
+#~ "ã:"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat."
+#~ "class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM "
+#~ "CATS\").addEntity(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS\")."
+#~ "addEntity(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, "
+#~ "D_ID, D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, D_NAME "
+#~ "FROM CATS c, DOGS d \n"
+#~ " WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, "
+#~ "CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, CAT_ID "
+#~ "FROM CATS c, DOGS d\n"
+#~ " WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE "
+#~ "c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE c."
+#~ "MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, "
+#~ "CATS m WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, CATS m "
+#~ "WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()"
+
+#, 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.*}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE "
+#~ "NAME like ?\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list(); ]]>"
+#~ msgstr ""
+#~ "Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like ?"
+#~ "\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/"
+#~ ">\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-"
+#~ "insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )"
+#~ "</sql-insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-"
+#~ "update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-"
+#~ "insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-"
+#~ "delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-"
+#~ "update>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</"
+#~ "sql-insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</"
+#~ "sql-delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}"
+#~ "</sql-update>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/"
+#~ ">\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/quickstart.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/quickstart.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/quickstart.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,12 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=utf-8\n"
+msgid "ROLES_OF_TRANSLATORS"
+msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+msgid "CREDIT_FOR_TRANSLATORS"
+msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/readonly.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/readonly.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/readonly.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1124 @@
+# Language ja-JP translations for PACKAGE package.
+# Automatically generated, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-25 06:26+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: readonly.xml:33
+#, no-c-format
+msgid "Read-only entities"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:36
+#, no-c-format
+msgid ""
+"Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ "
+"from what you may have encountered elsewhere. Incorrect usage may cause "
+"unexpected results."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:43
+#, no-c-format
+msgid "When an entity is read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:48
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check the entity's simple properties or single-"
+"ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:54
+#, no-c-format
+msgid ""
+"Hibernate will not update simple properties or updatable single-ended "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:60
+#, no-c-format
+msgid ""
+"Hibernate will not update the version of the read-only entity if only simple "
+"properties or single-ended updatable associations are changed;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:69
+#, no-c-format
+msgid ""
+"In some ways, Hibernate treats read-only entities the same as entities that "
+"are not read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:75
+#, no-c-format
+msgid ""
+"Hibernate cascades operations to associations as defined in the entity "
+"mapping."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:81
+#, no-c-format
+msgid ""
+"Hibernate updates the version if the entity has a collection with changes "
+"that dirties the entity;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:87
+#, no-c-format
+msgid "A read-only entity can be deleted."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:94
+#, no-c-format
+msgid ""
+"Even if an entity is not read-only, its collection association can be "
+"affected if it contains a read-only entity."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:99
+#, no-c-format
+msgid ""
+"For details about the affect of read-only entities on different property and "
+"association types, see <xref linkend=\"readonly-proptypes\"/>."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:105
+#, no-c-format
+msgid "For details about how to make entities read-only, see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:110
+#, no-c-format
+msgid "Hibernate does some optimizing for read-only entities:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:115
+#, no-c-format
+msgid ""
+"It saves execution time by not dirty-checking simple properties or single-"
+"ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:121
+#, no-c-format
+msgid "It saves memory by deleting database snapshots."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:128
+#, no-c-format
+msgid "Making persistent entities read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:130
+#, no-c-format
+msgid ""
+"Only persistent entities can be made read-only. Transient and detached "
+"entities must be put in persistent state before they can be made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:136
+#, no-c-format
+msgid ""
+"Hibernate provides the following ways to make persistent entities read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:142
+#, no-c-format
+msgid ""
+"you can map an entity class as <emphasis>immutable</emphasis>; when an "
+"entity of an immutable class is made persistent, Hibernate automatically "
+"makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for "
+"details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:150
+#, no-c-format
+msgid ""
+"you can change a default so that entities loaded into the session by "
+"Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-"
+"loaddefault\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:157
+#, no-c-format
+msgid ""
+"you can make an HQL query or criteria read-only so that entities loaded when "
+"the query or criteria executes, scrolls, or iterates, are automatically made "
+"read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:165
+#, no-c-format
+msgid ""
+"you can make a persistent entity that is already in the in the session read-"
+"only; see <xref linkend=\"readonly-api-entity\"/> for details"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:174
+#, no-c-format
+msgid "Entities of immutable classes"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:176
+#, no-c-format
+msgid ""
+"When an entity instance of an immutable class is made persistent, Hibernate "
+"automatically makes it read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:180
+#, no-c-format
+msgid ""
+"An entity of an immutable class can created and deleted the same as an "
+"entity of a mutable class."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:185
+#, no-c-format
+msgid ""
+"Hibernate treats a persistent entity of an immutable class the same way as a "
+"read-only persistent entity of a mutable class. The only exception is that "
+"Hibernate will not allow an entity of an immutable class to be changed so it "
+"is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:196
+#, no-c-format
+msgid "Loading persistent entities as read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:199 readonly.xml:286
+#, no-c-format
+msgid "Entities of immutable classes are automatically loaded as read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:205
+#, no-c-format
+msgid ""
+"To change the default behavior so Hibernate loads entity instances of "
+"mutable classes into the session and automatically makes them read-only, "
+"call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:210
+#, no-c-format
+msgid "Session.setDefaultReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:212
+#, no-c-format
+msgid ""
+"To change the default back so entities loaded by Hibernate are not made read-"
+"only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:216
+#, no-c-format
+msgid "Session.setDefaultReadOnly( false );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:218
+#, no-c-format
+msgid "You can determine the current setting by calling:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:221
+#, no-c-format
+msgid "Session.isDefaultReadOnly();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:223
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, entities loaded by the "
+"following are automatically made read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:229
+#, no-c-format
+msgid "Session.load()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:234
+#, no-c-format
+msgid "Session.get()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:239
+#, no-c-format
+msgid "Session.merge()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:244
+#, no-c-format
+msgid ""
+"executing, scrolling, or iterating HQL queries and criteria; to override "
+"this setting for a particular HQL query or criteria see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:253
+#, no-c-format
+msgid "Changing this default has no effect on:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:258
+#, no-c-format
+msgid "persistent entities already in the session when the default was changed"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:264
+#, no-c-format
+msgid ""
+"persistent entities that are refreshed via Session.refresh(); a refreshed "
+"persistent entity will only be read-only if it was read-only before "
+"refreshing"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:272
+#, no-c-format
+msgid ""
+"persistent entities added by the application via Session.persist(), Session."
+"save(), and Session.update() Session.saveOrUpdate()"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:283
+#, no-c-format
+msgid "Loading read-only entities from an HQL query/criteria"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:292
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns false (the default) when an HQL query "
+"or criteria executes, then entities and proxies of mutable classes loaded by "
+"the query will not be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:299
+#, no-c-format
+msgid ""
+"You can override this behavior so that entities and proxies loaded by an HQL "
+"query or criteria are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:304
+#, no-c-format
+msgid "For an HQL query, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:307
+#, no-c-format
+msgid "Query.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:309
+#, no-c-format
+msgid ""
+"<literal>Query.setReadOnly( true )</literal> must be called before "
+"<literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, "
+"<literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:315
+#, no-c-format
+msgid "For an HQL criteria, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:318
+#, no-c-format
+msgid "Criteria.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:320
+#, no-c-format
+msgid ""
+"<literal>Criteria.setReadOnly( true )</literal> must be called before "
+"<literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</"
+"literal>, or <literal>Criteria.scroll()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:326
+#, no-c-format
+msgid ""
+"Entities and proxies that exist in the session before being returned by an "
+"HQL query or criteria are not affected."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:331
+#, no-c-format
+msgid ""
+"Uninitialized persistent collections returned by the query are not affected. "
+"Later, when the collection is initialized, entities loaded into the session "
+"will be read-only if Session.isDefaultReadOnly() returns true."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:338
+#, no-c-format
+msgid ""
+"Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria."
+"setReadOnly( true )</literal> works well when a single HQL query or criteria "
+"loads all the entities and intializes all the proxies and collections that "
+"the application needs to be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:346
+#, no-c-format
+msgid ""
+"When it is not possible to load and initialize all necessary entities in a "
+"single query or criteria, you can temporarily change the session default to "
+"load entities as read-only before the query is executed. Then you can "
+"explicitly initialize proxies and collections before restoring the session "
+"default."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:355
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+" \n"
+"setDefaultReadOnly( true );\n"
+"Contract contract = \n"
+" ( Contract ) session.createQuery(\n"
+" \"from Contract where customerName = 'Sherman'\" )\n"
+" .uniqueResult();\n"
+"Hibernate.initialize( contract.getPlan() );\n"
+"Hibernate.initialize( contract.getVariations() );\n"
+"Hibernate.initialize( contract.getNotes() );\n"
+"setDefaultReadOnly( false );\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:357
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, then you can use Query."
+"setReadOnly( false ) and Criteria.setReadOnly( false ) to override this "
+"session setting and load entities that are not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:367
+#, no-c-format
+msgid "Making a persistent entity read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:369
+#, no-c-format
+msgid ""
+"Persistent entities of immutable classes are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:375
+#, no-c-format
+msgid "To make a persistent entity or proxy read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:378
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, true)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:380
+#, no-c-format
+msgid ""
+"To change a read-only entity or proxy of a mutable class so it is no longer "
+"read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:384
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, false)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:387
+#, no-c-format
+msgid ""
+"When a read-only entity or proxy is changed so it is no longer read-only, "
+"Hibernate assumes that the current state of the read-only entity is "
+"consistent with its database representation. If this is not true, then any "
+"non-flushed changes made before or while the entity was read-only, will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:396
+#, no-c-format
+msgid ""
+"To throw away non-flushed changes and make the persistent entity consistent "
+"with its database representation, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:400
+#, no-c-format
+msgid "session.refresh( entity );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:402
+#, no-c-format
+msgid ""
+"To flush changes made before or while the entity was read-only and make the "
+"database representation consistent with the current state of the persistent "
+"entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:408
+#, no-c-format
+msgid ""
+"// evict the read-only entity so it is detached\n"
+"session.evict( entity );\n"
+"\n"
+"// make the detached entity (with the non-flushed changes) persistent\n"
+"session.update( entity );\n"
+"\n"
+"// now entity is no longer read-only and its changes can be flushed\n"
+"s.flush();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:413
+#, no-c-format
+msgid "Read-only affect on property type"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:415
+#, no-c-format
+msgid ""
+"The following table summarizes how different property types are affected by "
+"making an entity read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:421
+#, no-c-format
+msgid "Affect of read-only entity on property types"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:427
+#, no-c-format
+msgid "Property/Association Type"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:428
+#, no-c-format
+msgid "Changes flushed to DB?"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:433
+#, no-c-format
+msgid "Simple"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:435
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:439
+#, no-c-format
+msgid "<entry>no*</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:443
+#, no-c-format
+msgid "Unidirectional one-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:444
+#, no-c-format
+msgid "Unidirectional many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:445
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:451 readonly.xml:452
+#, no-c-format
+msgid "<para>no*</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:457
+#, no-c-format
+msgid "Unidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:458
+#, no-c-format
+msgid "Unidirectional many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:459
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:464 readonly.xml:465 readonly.xml:489
+#, no-c-format
+msgid "<para>yes</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:470
+#, no-c-format
+msgid "<para>Bidirectional one-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:471
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:475
+#, no-c-format
+msgid "only if the owning entity is not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:479
+#, no-c-format
+msgid "<para>Bidirectional one-to-many/many-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:480
+#, no-c-format
+msgid "inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:481
+#, no-c-format
+msgid "non-inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:482
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:488
+#, no-c-format
+msgid "only added/removed entities that are not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:494
+#, no-c-format
+msgid "<para>Bidirectional many-to-many</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:495
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:499
+#, no-c-format
+msgid "<entry>yes</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:505
+#, no-c-format
+msgid ""
+"* Behavior is different when the entity having the property/association is "
+"read-only, compared to when it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:511
+#, no-c-format
+msgid "Simple properties"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:513
+#, no-c-format
+msgid ""
+"When a persistent object is read-only, Hibernate does not dirty-check simple "
+"properties."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:518
+#, no-c-format
+msgid ""
+"Hibernate will not synchronize simple property state changes to the "
+"database. If you have automatic versioning, Hibernate will not increment the "
+"version if any simple properties change."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:524
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"// get a contract and make it read-only\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"\n"
+"// contract.getCustomerName() is \"Sherman\"\n"
+"contract.setCustomerName( \"Yogi\" );\n"
+"tx.commit();\n"
+"\n"
+"tx = session.beginTransaction();\n"
+"\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"// contract.getCustomerName() is still \"Sherman\"\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:529
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:532
+#, no-c-format
+msgid "Unidirectional one-to-one and many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:534
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-one and many-to-one associations in "
+"the same way when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:540
+#, no-c-format
+msgid ""
+"We use the term <emphasis>unidirectional single-ended association</emphasis> "
+"when referring to functionality that is common to unidirectional one-to-one "
+"and many-to-one associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:547
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check unidirectional single-ended associations when "
+"the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:552
+#, no-c-format
+msgid ""
+"If you change a read-only entity's reference to a unidirectional single-"
+"ended association to null, or to refer to a different entity, that change "
+"will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:560
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, then its references to unidirectional "
+"single-ended associations must be assigned when that entity is first "
+"created. Because the entity is automatically made read-only, these "
+"references can not be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:570
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to unidirectional single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:576
+#, no-c-format
+msgid ""
+"In the following examples, Contract has a unidirectional many-to-one "
+"association with Plan. Contract cascades save and update operations to the "
+"association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:582
+#, no-c-format
+msgid ""
+"The following shows that changing a read-only entity's many-to-one "
+"association reference to null has no effect on the entity's database "
+"representation."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:588
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and set its plan to null \n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"contract.setPlan( null );\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:590
+#, no-c-format
+msgid ""
+"The following shows that, even though an update to a read-only entity's many-"
+"to-one association has no affect on the entity's database representation, "
+"flush still cascades the save-update operation to the locally changed "
+"association."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:599
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and change to a new plan\n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"Plan newPlan = new Plan( \"new plan\"\n"
+"contract.setPlan( newPlan);\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"// newPlan is non-null because it was persisted when \n"
+"// the previous transaction was committed; \n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:604
+#, no-c-format
+msgid "Unidirectional one-to-many and many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:606
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-many and many-to-many associations "
+"owned by a read-only entity the same as when owned by an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:613
+#, no-c-format
+msgid ""
+"Hibernate dirty-checks unidirectional one-to-many and many-to-many "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:618
+#, no-c-format
+msgid ""
+"The collection can contain entities that are read-only, as well as entities "
+"that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:624
+#, no-c-format
+msgid ""
+"Entities can be added and removed from the collection; changes are flushed "
+"to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:629
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in the collection if they dirty the owning entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:640
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:643
+#, no-c-format
+msgid "<title>Bidirectional one-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:645
+#, no-c-format
+msgid "If a read-only entity owns a bidirectional one-to-one association:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:652
+#, no-c-format
+msgid "Hibernate does not dirty-check the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:657
+#, no-c-format
+msgid ""
+"updates that change the association reference to null or to refer to a "
+"different entity will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:664
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:673
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, and it owns a bidirectional one-to-"
+"one association, then its reference must be assigned when that entity is "
+"first created. Because the entity is automatically made read-only, these "
+"references cannot be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:683
+#, no-c-format
+msgid ""
+"When the owner is not read-only, Hibernate treats an association with a read-"
+"only entity the same as when the association is with an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:693
+#, no-c-format
+msgid "<title>Bidirectional one-to-many/many-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:695
+#, no-c-format
+msgid ""
+"A read-only entity has no impact on a bidirectional one-to-many/many-to-one "
+"association if:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:702
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using an inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:708
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using a non-inverse "
+"collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:714
+#, no-c-format
+msgid ""
+"the one-to-many side uses a non-inverse collection that contains the read-"
+"only entity"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:721
+#, no-c-format
+msgid "When the one-to-many side uses an inverse collection:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:727
+#, no-c-format
+msgid ""
+"a read-only entity can only be added to the collection when it is created;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:733
+#, no-c-format
+msgid ""
+"a read-only entity can only be removed from the collection by an orphan "
+"delete or by explicitly deleting the entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:744
+#, no-c-format
+msgid "<title>Bidirectional many-to-many</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:745
+#, no-c-format
+msgid ""
+"Hibernate treats bidirectional many-to-many associations owned by a read-"
+"only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:752
+#, no-c-format
+msgid "Hibernate dirty-checks bidirectional many-to-many associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:757
+#, no-c-format
+msgid ""
+"The collection on either side of the association can contain entities that "
+"are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:763
+#, no-c-format
+msgid ""
+"Entities are added and removed from both sides of the collection; changes "
+"are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:769
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in both sides of the collection if they dirty the entity owning the "
+"respective collections."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/session_api.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/session_api.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/session_api.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2232 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr "ãªãã¸ã§ã¯ããæ±ã"
+
+#. 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>ç¶æ
管ç</emphasis> ãè¡ãã¾ããããã¯ã JDBC/SQL æ°¸ç¶å±¤ã¨åããã"
+"㪠SQL <literal>statements</literal> ã®ç®¡çã¨ã¯ç°ãªãã 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>ç¶æ
</emphasis> ã«ã¤ãã¦ã¯å¸¸ã«æèãã¹ãã§ããã SQL æã®å®è¡ã«ã¤ã"
+"ã¦ã¯å¿
ãããããã§ã¯ããã¾ããããã®é¨åã¯ãé常ã Hibernate ãå¦çããã·ã¹ã"
+"ã ã®ããã©ã¼ãã³ã¹ããã¥ã¼ãã³ã°ããã¨ãã«ã ããåé¡ã«ãªã£ã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr "Hibernate ã«ããããªãã¸ã§ã¯ãã®ç¶æ
"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr "Hibernate ã¯æ¬¡ã®ãããªãªãã¸ã§ã¯ãã®ç¶æ
ãå®ç¾©ãããµãã¼ããã¦ãã¾ã:"
+
+#. 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 ã¤ã³ã¹ã¿ã³ã¹ã¯ãã¢"
+"ããªã±ã¼ã·ã§ã³ããã®åç
§ãã©ãã«ãä¿æããªãå ´åã«ãã¬ãã¼ã¸ã³ã¬ã¯ã¿ã«ãã£ã¦"
+"ç ´æ£ããã¾ãããªãã¸ã§ã¯ããæ°¸ç¶ç (persistent) ãªç¶æ
ã«ããããã«ã¯ã "
+"Hibernate ã® <literal>Session</literal> ã使ãã¾ãããï¼ãã®ç¶æ
é·ç§»ã«å¿
è¦ã¨"
+"ãªã SQL æã®çºè¡ã¯ã Hibernate ã«ä»»ãã¾ãããï¼ã"
+
+#. 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> - æ°¸ç¶çãªã¤ã³ã¹ã¿ã³ã¹ã¯ãã¼ã¿ãã¼ã¹"
+"ã«æ°¸ç¶çãªè¡¨ç¾ãæã¡ãèå¥åã¨ãªãå¤ãæã£ã¦ãã¾ããããã¯ãã»ã¼ãããããã"
+"ãã¼ãããããããããããã¾ããããå®ç¾©ä¸ã¯ã <literal>Session</literal> ã®"
+"ã¹ã³ã¼ãã®ä¸ã«åå¨ãã¦ãã¾ãã Hibernate ã¯ãä½æ¥åä½ï¼Unit of Workï¼ãå®äºã"
+"ãã¨ãã«ãæ°¸ç¶ç¶æ
ã®ãªãã¸ã§ã¯ãã«å ããããå¤æ´ãæ¤åºãããªãã¸ã§ã¯ãã®ç¶æ
"
+"ã¨ãã¼ã¿ãã¼ã¹ãåæãã¾ãããªãã¸ã§ã¯ãã transient ã«ããã¨ãã¯ãéçºè
ã¯ã"
+"æä½æ¥ã§ <literal>UPDATE</literal> æã <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> - detached ã¤ã³ã¹ã¿ã³ã¹ã¨ã¯ãæ°¸ç¶åããã¦ãã"
+"ããããã¨é¢é£ä»ãã¦ãã <literal>Session</literal> ãã¯ãã¼ãºããã¦ãããªã"
+"ã¸ã§ã¯ãã®ãã¨ã§ãããã®ãªãã¸ã§ã¯ãã¸ã®åç
§ã¯ãä¾ç¶ã¨ãã¦æå¹ã§ããããã¦ã"
+"ãã¡ãããdetached ã¤ã³ã¹ã¿ã³ã¹ã¯ãã®ç¶æ
ã«ä¿®æ£ãããã¨ããã§ãã¾ãã "
+"detached ã¤ã³ã¹ã¿ã³ã¹ã¯ãããä¸åº¦æ°¸ç¶åãããï¼ããã¦ããã¹ã¦ã®å¤æ´ãæ°¸ç¶åã"
+"ããï¼ã¨ãã«ãæ°ãã <literal>Session</literal> ã«å追å ã§ãã¾ãããã®æ©è½"
+"ã¯ãã¦ã¼ã¶ã¼ãèããæéãå¿
è¦ã¨ãããããªãé·æéã«åã¶ä½æ¥åä½ã«å¯¾ãããã"
+"ã°ã©ãã³ã°ã¢ãã«ãå¯è½ã«ãã¾ããæã
ã¯ãããã <emphasis>ã¢ããªã±ã¼ã·ã§ã³ã®ã"
+"ã©ã³ã¶ã¯ã·ã§ã³ï¼application transactionsï¼</emphasis> ã¨å¼ãã§ãã¾ããããªã"
+"ã¡ãã¦ã¼ã¶ã¼ããè¦ãä½æ¥åä½ã ã¨ãããã¨ã§ãã"
+
+#. 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 ""
+"ãããããç¶æ
ã¨ç¶æ
é·ç§»ï¼ããã¦ãé·ç§»ã®ãã£ããã¨ãªã Hibernate ã®ã¡ã½ããï¼"
+"ã«ã¤ãã¦ã詳細ã«è¿°ã¹ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr "ãªãã¸ã§ã¯ããæ°¸ç¶ç¶æ
ã«ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Newly instantiated instances of a persistent class are considered "
+"<emphasis>transient</emphasis> by Hibernate. We can make a transient "
+"instance <emphasis>persistent</emphasis> by associating it with a session:"
+msgstr ""
+"æ°ããã¤ã³ã¹ã¿ã³ã¹åãããæ°¸ç¶ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ã Hibernate ã§ã¯ "
+"<emphasis>transient</emphasis> ã¨è¦ãªããã¾ãã以ä¸ã®ããã«ãã»ãã·ã§ã³ã¨é¢é£"
+"ã¥ãããã¨ã§ã transient ã¤ã³ã¹ã¿ã³ã¹ã <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> ã¯ã©ã¹ã®èå¥åãèªåçæãããã®ã§ããã°ã "
+"<literal>save()</literal> ãå¼ã°ããã¨ãã«ãèå¥åãçæããã <literal>cat</"
+"literal> ã¤ã³ã¹ã¿ã³ã¹ã«å²ãå½ã¦ããã¾ãã <literal>Cat</literal> ã®èå¥åã "
+"<literal>assigned</literal> èå¥åãæã¤ããè¤åãã¼ã§ãããªãã "
+"<literal>save()</literal> ãå¼ã³åºãåã«ãèå¥åã <literal>cat</literal> ã¤"
+"ã³ã¹ã¿ã³ã¹ãå²ãå½ã¦ãªããã°ãªãã¾ããã <literal>save()</literal> ã®ä»£ãã"
+"ã«ã EJB3 ã®åæãã©ããã§å®ç¾©ããã <literal>persist()</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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+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 ""
+"æ°¸ç¶åãããªãã¸ã§ã¯ããé¢é£ãªãã¸ã§ã¯ããæã£ã¦ããå ´å ï¼ä¾ãã°ãåã®ä¾ã«ã"
+"ãã <literal>kittens</literal> ã³ã¬ã¯ã·ã§ã³ã®ããã«ï¼ãå¤é¨ãã¼ã«ã©ã ã«ã "
+"<literal>NOT NULL</literal> å¶ç´ãã¤ããªãéãã¯ããããã®ä¸é£ã®ãªãã¸ã§ã¯ã"
+"ãã©ããªé çªã§æ°¸ç¶åãã¦ããã¾ãã¾ãããå¤é¨ãã¼å¶ç´ãéåããæãã¯ããã¾ã"
+"ãããããã <literal>NOT NULL</literal> å¶ç´ãããå ´åãééã£ãé çªã§ãªã"
+"ã¸ã§ã¯ãã <literal>save()</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 ããã¹ã¦é¢åãã¿ã¦ããã¾ããé·ç§»çãªæ°¸ç¶åã¯ããã®"
+"ç« ã®å¾åã«æ¸ããã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr "ãªãã¸ã§ã¯ãã®ãã¼ã"
+
+#. 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 ""
+"æ°¸ç¶åãããã¤ã³ã¹ã¿ã³ã¹ã®èå¥åããããããåãã£ã¦ãããªãã "
+"<literal>Session</literal> ã® <literal>load()</literal> ã¡ã½ããã使ã£ã¦ã復"
+"å
ã§ãã¾ãã <literal>load()</literal> ã¯ã Class ãªãã¸ã§ã¯ããå¼æ°ã«ã¨ãã"
+"ãã®ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãæ°ãã«çæããç¶æ
ããã¼ããã¾ãããã®ã¤ã³ã¹ã¿ã³ã¹"
+"ã®ç¶æ
ã¯ãæ°¸ç¶ (persistent) ç¶æ
ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+msgstr ""
+"ãããã¯ã以ä¸ã®ããã«ãæ¢åã®ã¤ã³ã¹ã¿ã³ã¹ã«ç¶æ
ããã¼ããããã¨ãã§ãã¾ã:"
+
+#. 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 ""
+"DB ã«è©²å½ããè¡ãç¡ãå ´åã <literal>load()</literal> ã¯å復ä¸å¯è½ãªä¾å¤ãæ"
+"ãããã¨ã«æ³¨æãã¾ãããããã®ã¯ã©ã¹ããããã·ã使ã£ã¦ãããã³ã°ããã¦ããå ´"
+"åã <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 ãè¿ãã¾ãã"
+
+#. 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> ã使ãã°ã <literal>SELECT ... FOR UPDATE</"
+"literal> ã¨ãã SQL ã使ã£ã¦ãªãã¸ã§ã¯ãããã¼ããããã¨ãã§ãã¾ãã詳細ãªæ
"
+"å ±ã¯ã 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 ""
+"é¢é£ã«å¯¾ããã«ã¹ã±ã¼ãæ¹æ³ã¨ã㦠<literal>lock</literal> ã <literal>all</"
+"literal> ãæå®ããªãéããé¢é£ããã¤ã³ã¹ã¿ã³ã¹ãå«ã¾ããã³ã¬ã¯ã·ã§ã³ã¯ "
+"<literal>FOR UPDATE</literal> ã§å¾©å
<emphasis>ãããªã</emphasis> ãã¨ã«æ³¨æ"
+"ãã¾ãããã"
+
+#. 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> ã¡ã½ããã使ããã¨ã§ãã©ããªã¨ãã§ãããªãã¸ã§ã¯"
+"ãããã®ã³ã¬ã¯ã·ã§ã³ããªãã¼ããããã¨ãã§ãã¾ãããã¼ã¿ãã¼ã¹ã®ããªã¬ããã¼"
+"ãã«ãæ´æ°ããéã«ããã®ãã¼ãã«ã«å¯¾å¿ãããªãã¸ã§ã¯ãã®ããããã£ãåæãã"
+"å ´åããã®ã¡ã½ãããå½¹ã«ç«ã¡ã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"How much does Hibernate load from the database and how many SQL "
+"<literal>SELECT</literal>s will it use? This depends on the "
+"<emphasis>fetching strategy</emphasis>. This is explained in <xref linkend="
+"\"performance-fetching\" />."
+msgstr ""
+"大åãªåé¡ã¯ããã¤ã次ã®ç¹ã«é¢ãããã®ã§ããããã¯ã Hibernate ããã¼ã¿ãã¼ã¹"
+"ãããã©ã®ãããã®éã復å
ããã®ãã¨ãã©ã®ãããã®æ°ã® SQL ã® "
+"<literal>SELECT</literal> æã使ãããã®ãã§ããããã¯ã <emphasis>ãã§ããã®"
+"æ¦ç¥</emphasis> ã«ããã¾ããããã«ã¤ãã¦ã¯ã <xref linkend=\"performance-"
+"fetching\"/> ã§èª¬æãã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr "ã¯ã¨ãª"
+
+#. 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 ã¯æ´ç·´ãã"
+"ã Criteria 㨠Example ã¯ã¨ãªæ©è½ (QBC 㨠QBEï¼ ããµãã¼ããã¦ãã¾ãã "
+"ResultSet ããªãã¸ã§ã¯ãã«å¤æãã Hibernate ã®ãªãã·ã§ã³æ©è½ã使ããã¨ã§ã"
+"ãã¼ã¿ãã¼ã¹ã®ãã¤ãã£ã㪠SQL ã§ã¯ã¨ãªã表ç¾ãããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr "ã¯ã¨ãªã®å®è¡"
+
+#. 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 ã¯ã¨ãªã¯ã <literal>org.hibernate.Query</literal> ã®ã¤"
+"ã³ã¹ã¿ã³ã¹ã¨ãã¦è¡¨ç¾ããã¾ãããã®ã¤ã³ã¿ãã§ã¼ã¹ã¯ããã©ã¡ã¼ã¿ãã¤ã³ãã£ã³ã°"
+"ã ResultSet ã®ãã³ããªã³ã°ãã¯ã¨ãªã®å®è¡ãè¡ãã¡ã½ãããç¨æãã¦ãã¾ããé"
+"常ã <literal>Query</literal> ã¯ã以ä¸ã«ç¤ºãããã«ããã®æç¹ã® "
+"<literal>Session</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> ãå¼ã³åºããã¨ã«ãã£ã¦å®è¡ããã¾"
+"ããã¯ã¨ãªã®çµæã¯ãã¡ã¢ãªä¸ã«ããã³ã¬ã¯ã·ã§ã³ã«ãã¹ã¦ãã¼ãããã¾ããã¯ã¨ãª"
+"ã«ãã£ã¦å¾©å
ãããã¨ã³ãã£ãã£ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãæ°¸ç¶ç¶æ
ã§ãããããã¯ã¨ãªã"
+"ãã£ã1åã®ã¤ã³ã¹ã¿ã³ã¹ãè¿ãã¨åãã£ã¦ãããªãã <literal>uniqueResult()</"
+"literal> ã¡ã½ãããæã£åãæ©ãæ¹æ³ã§ããå³æãã§ãããå©ç¨ããã¯ã¨ãªã®å ´åã"
+"ãµã¤ããå¾ãããã³ã¬ã¯ã·ã§ã³ã«ã¯ãã«ã¼ãã®ãªãã¸ã§ã¯ããéè¤ãã¦å«ã¾ãã¦ãã¾"
+"ãï¼ããããã«ã¼ããæã¤ã³ã¬ã¯ã·ã§ã³ã¯åæå (ãã¼ãï¼ããã¦ãã¾ãï¼ããã®é"
+"è¤ã¯ <literal>Set</literal> ã使ã£ã¦åãé¤ããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr "çµæãã¤ãã¬ã¼ããã"
+
+#. 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> ã¡ã½ããã使ã£ã¦ã¯ã¨ãªãå®è¡ãããã¨ã§ã"
+"ããè¯ãããã©ã¼ãã³ã¹ãå¾ããã¨ãã§ãã¾ããããã¯ãé常ãã¯ã¨ãªã«ãã£ã¦å¾ã"
+"ããå®éã®ã¨ã³ãã£ãã£ã®ã¤ã³ã¹ã¿ã³ã¹ãããã§ã«ã»ãã·ã§ã³ã¾ãã¯äºæ¬¡ãã£ãã·ã¥"
+"ã«åå¨ãããã¨ãæå¾
ã§ããå ´åã ãã§ãããããããã¾ã ãã£ãã·ã¥ããã¦ããªã"
+"ãªãã <literal>iterate()</literal> ã¯ã <literal>list()</literal> ãããé
"
+"ããç°¡åãªã¯ã¨ãªã«å¯¾ãã¦ãå¤ãã®ãã¼ã¿ãã¼ã¹ã¢ã¯ã»ã¹ãå¿
è¦ã¨ãã¾ãããã®ã¢ã¯"
+"ã»ã¹ã¨ã¯ãèå¥åã ããåå¾ããããã®æåã® select <emphasis>ï¼å</emphasis> "
+"ã¨ãå®éã®ã¤ã³ã¹ã¿ã³ã¹ãåæåããããã«å¾ããè¡ã <emphasis>nå</emphasis> "
+"ã® select ã®ãã¨ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr "ãªãã¸ã§ã¯ãã®çµï¼tupleï¼ãè¿ãã¯ã¨ãª"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
+"as an array:"
+msgstr ""
+"Hibernate ã®ã¯ã¨ãªã§ã¯ãæã
ããªãã¸ã§ã¯ãã®çµãè¿ããã¨ãããã¾ãããã®å ´å"
+"ã¯ãåã¿ãã«ã¯é
åã¨ãã¦è¿ããã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr "ã¹ã«ã©ã¼ã®çµæ"
+
+#. 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 ã®éåé¢æ°ãå¼ã¶ãã¨ãã§ãã¾ããããããã£ãéåé¢æ°ã¯ãï¼æ°¸ç¶ç¶æ
ã®"
+"ã¨ã³ãã£ãã£ã§ã¯ãªãï¼ãã¹ã«ã©ã¼å¤ãã§ããã¨è¦ãªããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr "ãã©ã¡ã¼ã¿ã®ãã¤ã³ã"
+
+#. 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> ã¯ãååä»ãã®ãã©ã¡ã¼ã¿ã JDBC ã¹ã¿ã¤ã«ã® "
+"<literal>?</literal> ãã©ã¡ã¼ã¿ã«å¤ããã¤ã³ãããããã®ã¡ã½ãããæã£ã¦ãã¾"
+"ãã <emphasis> JDBC ã¨ã¯éãã Hibernate ã¯ãã©ã¡ã¼ã¿ã«ã¼ãããçªå·ãæ¯ã£ã¦"
+"ããã¾ãã</emphasis>ååä»ãã®ãã©ã¡ã¼ã¿ã¨ã¯ãã¯ã¨ãªæååã®ãªãã«ãã "
+"<literal>:name</literal> å½¢å¼ã®èå¥åã§ããååä»ããã©ã¡ã¼ã¿ã®å©ç¹ã¯æ¬¡ã®éã"
+"ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
+msgstr "ååä»ããã©ã¡ã¼ã¿ã¯ãã¯ã¨ãªæååã«ç»å ´ããé çªã¨ç¡é¢ä¿ã§ã"
+
+#. Tag: para
+#, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr "åãã¯ã¨ãªå
ã«è¤æ°åç»å ´ãããã¨ãã§ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr "èªåèªèº«ã説æãã¾ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr "ãã¼ã¸åã"
+
+#. 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 ""
+"ResultSet ã«å¶éï¼å¾©å
ãããæ大è¡æ°ã復å
ãããæåã®è¡ï¼ãå ããå¿
è¦ããã"
+"ã°ã以ä¸ã®ããã«ã <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 ""
+"å¶éä»ãã®ã¯ã¨ãªã DBMS ã®ãã¤ãã£ã㪠SQL ã«å¤æããæ¹æ³ãã Hibernate ã¯"
+"ç¥ã£ã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "ã¹ã¯ãã¼ã«å¯è½ãªã¤ãã¬ã¼ã·ã§ã³"
+
+#. 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>ResultSet</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 ""
+"ãã®æ©è½ã«ã¯ãªã¼ãã³ç¶æ
ã®ãã¼ã¿ãã¼ã¹ã³ãã¯ã·ã§ã³ãå¿
è¦ã§ãããã¨ã«æ³¨æãã¦"
+"ãã ãããããããªãã©ã¤ã³ã®ãã¼ã¸åãæ©è½ãå¿
è¦ã§ããã°ã "
+"<literal>setMaxResult()</literal> / <literal>setFirstResult()</literal> ã使"
+"ãã¾ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr "ååä»ãã¯ã¨ãªã®å¤åºã"
+
+#. 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 ""
+"ãããã³ã°ããã¥ã¡ã³ãã«ååä»ãã®ã¯ã¨ãªãå®ç¾©ãããã¨ãã§ãã¾ããï¼ãã¼ã¯"
+"ã¢ããã¨è§£éãããæåãã¯ã¨ãªã«å«ã¾ãããªãã <literal>CDATA</literal> ã»ã¯"
+"ã·ã§ã³ã使ããã¨ãå¿ããªãããã«ãã¾ããããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr ""
+"ãã©ã¡ã¼ã¿ã®ãã¤ã³ãã£ã³ã°ã¨å®è¡ã¯ã以ä¸ã®ãããªããã°ã©ã ã§è¡ããã¾ã:"
+
+#. 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 ã¯ã¨ãªãå®ç¾©ãããã¨ãã§ãã¾ããã¾ãã"
+"æ¢åã®ã¯ã¨ãªããããã³ã°ãã¡ã¤ã«ã«ç§»ããã¨ã§ã Hibernate ã«ç§»è¡ãããã¨ãã§ã"
+"ã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Also note that a query declaration inside a <literal><hibernate-"
+"mapping></literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal><class></literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+"<literal><hibernate-mapping></literal> è¦ç´ ã®ä¸ã®ã¯ã¨ãªå®ç¾©ã¯ãã¯ã¨ãªã«"
+"対ããã¦ãã¼ã¯ãªååãå¿
è¦ãªãã¨ã«ã注æãã¦ãã ãããããã«å¯¾ãã¦ã "
+"<literal><class></literal> è¦ç´ ã®ä¸ã®ã¯ã¨ãªå®ç¾©ã¯ãã¯ã©ã¹ã®å®å
¨éå®åã"
+"åã«ä»ããããã®ã§ãèªåçã«ã¦ãã¼ã¯ãªååã«ãªãã¾ããä¾ï¼ <literal>eg.Cat."
+"ByNameAndMaximumWeight</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr "ãã£ã«ã¿ãªã³ã°ã³ã¬ã¯ã·ã§ã³"
+
+#. 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>ãã£ã«ã¿</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 ã¨ã¿ãªããã¾ããããã¦ãããã¯ãã¨ã®ã³ã¬ã¯ã·ã§ã³ã®"
+"ã³ãã¼ã«ãªãã¾ããå
ã®ã³ã¬ã¯ã·ã§ã³ã¯ä¿®æ£ããã¾ããï¼ããã¯ã \"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 ""
+"ãã£ã«ã¿ã«ã¯ <literal>from</literal> ç¯ãä¸è¦ã§ãããã¨ã«æ°ã¥ãã§ãããï¼å¿
è¦"
+"ãªããæã¤ãã¨ãå¯è½ã§ããï¼ããã£ã«ã¿ã¯ãã³ã¬ã¯ã·ã§ã³ã®è¦ç´ èªä½ãè¿ãã¦æ§ã"
+"ã¾ããã"
+
+#. 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 ""
+"ã¯ã¨ãªãå«ã¾ãªããã£ã«ã¿ãå½¹ã«ç«ã¡ã¾ããä¾ãã°ãé常ã«å¤§ããªã³ã¬ã¯ã·ã§ã³ã®é¨"
+"åéåããã¼ãããããã«ä½¿ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr "ã¯ã©ã¤ããªã¢ã®ã¯ã¨ãª"
+
+#. 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 ã"
+"使ã£ã¦åçã«ã¯ã¨ãªãä½ãæ¹ã好ãéçºè
ããã¾ãããããã£ãå ´åã®ããã«ã "
+"Hibernate ã¯ç´æç㪠<literal>Criteria</literal> ã¯ã¨ãª API ãæä¾ãã¦ãã¾"
+"ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Criteria</literal> and the associated <literal>Example</"
+"literal> API are discussed in more detail in <xref linkend=\"querycriteria"
+"\" />."
+msgstr ""
+"<literal>Criteria</literal> 㨠<literal>Example</literal> API ã®è©³ç´°ã¯ã "
+"<xref linkend=\"querycriteria\"/> ã«è¿°ã¹ããã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr "ãã¤ãã£ã SQL ã®ã¯ã¨ãª"
+
+#. 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 ã«ã ResultSet ãããªãã¸ã§ã¯ãã¸ã®ãããã³ã°ãã¾"
+"ããã¾ãã <literal>session.connection()</literal> ãå¼ã¹ã°ã©ããªã¨ãã§ããç´"
+"æ¥ã JDBC <literal>Connection</literal> ã使ç¨ã§ãããã¨ãè¦ãã¦ããã¾ãã"
+"ããããã Hibernate API ã使ãã®ã§ããã°ãä¸è¨ã®ããã« SQL ã®å¥åãæ¬å¼§ã§ã"
+"ãããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"SQL queries can contain named and positional parameters, just like Hibernate "
+"queries. More information about native SQL queries in Hibernate can be found "
+"in <xref linkend=\"querysql\" />."
+msgstr ""
+"SQL ã¯ã¨ãªã¯ã Hibernate ã¯ã¨ãªã¨åãããã«ãååä»ãã®ãã©ã¡ã¼ã¿ã¨ä½ç½®ãã©"
+"ã¡ã¼ã¿ãæã¤ãã¨ãã§ãã¾ãã Hibernate ã«ããããã¤ãã£ã㪠SQL ã¯ã¨ãªã®è©³ç´°"
+"ã«ã¤ãã¦ã¯ã <xref linkend=\"querysql\"/> ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr "æ°¸ç¶ãªãã¸ã§ã¯ãã®ä¿®æ£"
+
+#. 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>ãã©ãã·ã¥</emphasis> ãããã¨ãã«ãæ°¸ç¶åããã¾ãï¼ã"
+"ãã¯ããã®ç« ã®å¾åã§è¿°ã¹ã¦ãã¾ãï¼ãå¤æ´ãæ°¸ç¶åããããã«ãç¹æ®ãªã¡ã½ãã"
+"ï¼ <literal>update()</literal> ã®ãããªãã®ãããã¯ãå¥ã®ç®çã§ä½¿ç¨ãã¾ãï¼ã"
+"å¼ã¶å¿
è¦ã¯ããã¾ããããªãã¸ã§ã¯ãã®ç¶æ
ãæ´æ°ããä¸çªç°¡åãªæ¹æ³ã¯ããªãã¸ã§"
+"ã¯ãã <literal>load()</literal> ãã <literal>Session</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 ""
+"ï¼ãªãã¸ã§ã¯ãããã¼ãããããã®ï¼ SQL ã® <literal>SELECT</literal> ã¨ï¼æ´æ°"
+"ãããç¶æ
ãæ°¸ç¶åããããã®ï¼ SQL ã® <literal>UPDATE</literal> ãåãã»ã"
+"ã·ã§ã³ã§å¿
è¦ã¨ãªãã®ã§ããã®ããã°ã©ãã³ã°ã¢ãã«ã¯ãå¹çãæªããªãå ´åããã"
+"ã¾ãããã®ããã Hibernate ã¯å¥ã®æ¹æ³ãç¨æãã¦ãã¾ããããã¯ã detached ã¤ã³"
+"ã¹ã¿ã³ã¹ã使ç¨ããæ¹æ³ã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not offer its own API for direct execution of "
+"<literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate "
+"is a <emphasis>state management</emphasis> service, you do not have to think "
+"in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for "
+"executing SQL statements, you can get a JDBC <literal>Connection</literal> "
+"at any time by calling <literal>session.connection()</literal>. Furthermore, "
+"the notion of mass operations conflicts with object/relational mapping for "
+"online transaction processing-oriented applications. Future versions of "
+"Hibernate can, however, provide special mass operation functions. See <xref "
+"linkend=\"batch\" /> for some possible batch operation tricks."
+msgstr ""
+"Hibernate ã¯ã <literal>UPDATE</literal> æã <literal>DELETE</literal> æã"
+"ç´æ¥å®è¡ãã API ãç¨æãã¦ãã¾ããã Hibernate ã¯ã <emphasis>ã¹ãã¼ãããã¼"
+"ã¸ã¡ã³ã</emphasis> ãµã¼ãã¹ã§ãããããã使ãã®ã« <emphasis>ã¹ãã¼ãã¡ã³ã</"
+"emphasis> ã®ãã¨ãéçºè
ãèããå¿
è¦ã¯ããã¾ããã JDBC 㯠SQL æãå®è¡ããå®"
+"ç§ãª API ã§ããã <literal>session.connection()</literal> ãå¼ã¶ãã¨ã§ãã¤ã§"
+"ãã JDBC <literal>Connection</literal> ãéçºè
ã¯åå¾ã§ãã¾ããããã«ã大é"
+"ã®ãã¼ã¿æä½ã®èãæ¹ã¯ããªã³ã©ã¤ã³ãã©ã³ã¶ã¯ã·ã§ã³å¦çåãã¢ããªã±ã¼ã·ã§ã³ã®"
+"ãªãã¸ã§ã¯ã/ãªã¬ã¼ã·ã§ãã«ãããã³ã°ã¨è¡çªãã¾ãããããã Hibernate ã®ä»å¾"
+"ã®ãã¼ã¸ã§ã³ã§ã¯ã大éãã¼ã¿ãå¦çããç¹å¥ãªæ©è½ãæä¾ããããããã¾ããã"
+"ãããæä½ã«å©ç¨ã§ããããã¤ãã®å·¥å¤«ã«ã¤ãã¦ã¯ã <xref linkend=\"batch\"/> ã"
+"åç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr "detached ãªãã¸ã§ã¯ãã®ä¿®æ£"
+
+#. 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 ""
+"å¤ãã®ã¢ããªã±ã¼ã·ã§ã³ã§ã¯æ¬¡ã®ãã¨ãå¿
è¦ã«ãªãã¾ããããã¯ããããã©ã³ã¶ã¯"
+"ã·ã§ã³ã§ãªãã¸ã§ã¯ãã復å
ããæä½ããããã«ããã UI 層ã«éãããã®å¾ã«ãæ°"
+"ãããã©ã³ã¶ã¯ã·ã§ã³ã§å¤æ´ãã»ã¼ãããã¨ãã£ããã¨ã§ãã並è¡æ§ã®é«ãç°å¢ã§ã"
+"ãã®ã¿ã¤ãã®ã¢ããã¼ãã使ãã¢ããªã±ã¼ã·ã§ã³ã§ã¯ããæéã®é·ããä½æ¥åä½ã®é"
+"é¢æ§ãä¿è¨¼ããããã«ããã¼ã¸ã§ã³ãã¼ã¿ãé常使ããã¾ãã"
+
+#. 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> ã¡ã½ããã使ã£ã¦ã detached ã¤ã³ã¹ã¿ã³ã¹ãå追å ãããã¨ã§ããã®"
+"ã¢ãã«ã«å¯¾å¿ãã¾ãã"
+
+#. 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>secondSession</literal> ã§ãã¼ãããã¦ããå ´åã¯ãå追å ãããã¨ãã"
+"ã¨ãã«ãä¾å¤ãæãããã¾ãã"
+
+#. 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 ""
+"åãèå¥åãæã¤æ°¸ç¶ã¤ã³ã¹ã¿ã³ã¹ãã»ãã·ã§ã³ãæ¢ã«ä¿æãã¦ããªããã¨ã確信ã§"
+"ãããªã <literal>update()</literal> ã使ãã¾ããããã¦ãã»ãã·ã§ã³ã®ç¶æ
ãè"
+"ããã«ãã©ããªå ´åã§ãå¤æ´ããã¼ã¸ãããå ´åã¯ã <literal>merge()</literal> "
+"ã使ãã¾ããããªãã¡ã detached ã¤ã³ã¹ã¿ã³ã¹ã®å追å æä½ããæåã«å®è¡ããã"
+"ãã¨ã確å®ã«ããããã«ãé常㯠<literal>update()</literal> ãæ°ããã»ãã·ã§ã³"
+"ã®ãªãã§æåã«å¼ã°ããã¡ã½ããã«ãªãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The application should individually <literal>update()</literal> detached "
+"instances that are reachable from the given detached instance "
+"<emphasis>only</emphasis> if it wants their state to be updated. This can be "
+"automated using <emphasis>transitive persistence</emphasis>. See <xref "
+"linkend=\"objectstate-transitive\" /> for more information."
+msgstr ""
+"detached ã¤ã³ã¹ã¿ã³ã¹ããå°éå¯è½ãªã detached ã¤ã³ã¹ã¿ã³ã¹ãã¢ããªã±ã¼ã·ã§ã³"
+"ã¯åå¥ã« <literal>update()</literal> ãã¹ãã§ããããã¯ããã®ç¶æ
ãæ´æ°ããã"
+"å ´åã« <emphasis>éãã¾ãã</emphasis> <emphasis>é·ç§»çãªæ°¸ç¶å</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> ã¡ã½ããã§ãã¾ããæ°ããã»ãã·ã§ã³ã«ãªãã¸ã§ã¯ãã"
+"åé¢é£ä»ãã§ãã¾ãããããã 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 ããã¥ã¡ã³ãã¨ãã©ã³ã¶ã¯ã·ã§ã³å¦çã®ç« ãåç
§"
+"ãã¦ãã ãããå追å ã®ã¨ãã«ã ãã <literal>lock()</literal> ã使ãããããã§"
+"ã¯ããã¾ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\" />."
+msgstr ""
+"æéã®é·ãä½æ¥åä½ã®ããã®ä»ã®ã¢ãã«ã¯ã <xref linkend=\"transactions-"
+"optimistic\"/> ã§è¿°ã¹ã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr "èªåçãªç¶æ
æ¤åº"
+
+#. 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 ã®ã¦ã¼ã¶ã¼ã¯æ¬¡ã®2ã¤ã®ã±ã¼ã¹ã®ã©ã¡ãã«ã使ããæ±ç¨çãªã¡ã½ãããè¦æ±"
+"ãã¦ãã¾ãããããã¯ãæ°ããèå¥åãçæã㦠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> ã®ä½¿ç¨æ¹æ³ã¨æå³ã¯ãæ°ããã¦ã¼ã¶ã¼ã«ã¨ã£ã¦"
+"æ··ä¹±ãæãããããã¾ãããã¾ã第ä¸ã«ãããã»ãã·ã§ã³ã§ä½¿ç¨ããã¤ã³ã¹ã¿ã³ã¹ã"
+"å¥ã®æ°ããã»ãã·ã§ã³ã§ä½¿ããã¨ããªãéãã <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> ã¯æ¬¡"
+"ã®ã·ããªãªã§ä½¿ããã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr "ã¢ããªã±ã¼ã·ã§ã³ãæåã®ã»ãã·ã§ã³ã§ãªãã¸ã§ã¯ãããã¼ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr "ãªãã¸ã§ã¯ãã UI 層ã«éããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr "ãªãã¸ã§ã¯ãã«å¯¾ãã¦å¤æ´ãå ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr "ãªãã¸ã§ã¯ãããã¸ãã¹ãã¸ãã¯å±¤ã«éããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã¯ã2çªç®ã®ã»ãã·ã§ã³ã§ <literal>update()</literal> ãå¼ã¶ã"
+"ã¨ã§ããããã®å¤æ´ãæ°¸ç¶åãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr "<literal>saveOrUpdate()</literal> ã¯ä»¥ä¸ã®ãã¨ãè¡ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr ""
+"ãªãã¸ã§ã¯ãããã®ã»ãã·ã§ã³ã§ããã§ã«æ°¸ç¶åããã¦ããã°ãä½ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"ãã®ã»ãã·ã§ã³ã«é¢é£ã¥ãã¦ããå¥ã®ãªãã¸ã§ã¯ããåãèå¥åãæã£ã¦ãããªãã"
+"ä¾å¤ãæãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object has no identifier property, <literal>save()</literal> it"
+msgstr ""
+"ãªãã¸ã§ã¯ãã®èå¥åãå¤ãæããªããªãã°ã <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 ""
+"ãªãã¸ã§ã¯ãã®èå¥åãå¤ãæã¡ããã®å¤ãæ°ãã«ã¤ã³ã¹ã¿ã³ã¹åããããªãã¸ã§ã¯"
+"ãã®ããã®å¤ã§ããå ´åããã®ãªãã¸ã§ã¯ãã <literal>save()</literal> ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if the object is versioned by a <literal><version></literal> or "
+"<literal><timestamp></literal>, and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"ãªãã¸ã§ã¯ããï¼ <literal><version></literal> ã <literal><"
+"timestamp></literal> ã«ãã£ã¦ï¼ãã¼ã¸ã§ã³ã¥ãããã¦ãã¦ããã¼ã¸ã§ã³ã®ãã"
+"ããã£ãå¤ãæã¡ããã®å¤ãæ°ããã¤ã³ã¹ã¿ã³ã¹åããããªãã¸ã§ã¯ãã®ããã®å¤ã§"
+"ããå ´åããã®ãªãã¸ã§ã¯ãã <literal>save()</literal> ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr ""
+"ããã§ãªãå ´åã¯ããã®ãªãã¸ã§ã¯ãã <literal>update()</literal> ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr "ããã¦ã <literal>merge()</literal> ã¯ä»¥ä¸ã®ããã«é常ã«ç°ãªãã¾ã:"
+
+#. 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 ""
+"åãèå¥åãæã¤æ°¸ç¶åã¤ã³ã¹ã¿ã³ã¹ããã®æç¹ã§ã»ãã·ã§ã³ã¨é¢é£ä»ãã¦ãããªã"
+"ã°ãå¼æ°ã§åãåã£ããªãã¸ã§ã¯ãã®ç¶æ
ãæ°¸ç¶åã¤ã³ã¹ã¿ã³ã¹ã«ã³ãã¼ãã¾ãã"
+
+#. 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 ""
+"æ°¸ç¶åã¤ã³ã¹ã¿ã³ã¹ããã®æç¹ã§ã»ãã·ã§ã³ã«é¢é£ä»ãã¦ããªããªãããã¼ã¿ãã¼ã¹"
+"ããããããã¼ããããããããã¯ãæ°ããæ°¸ç¶åã¤ã³ã¹ã¿ã³ã¹ãä½æãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr "æ°¸ç¶åã¤ã³ã¹ã¿ã³ã¹ãè¿ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
+msgstr ""
+"å¼æ°ã¨ãã¦ä¸ããã¤ã³ã¹ã¿ã³ã¹ã¯ã»ãã·ã§ã³ã¨é¢é£ãæã¡ã¾ãããããã¯ãåé¢ç¶æ
"
+"ã®ã¾ã¾ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr "æ°¸ç¶ãªãã¸ã§ã¯ãã®åé¤"
+
+#. 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 ã«ãããã®ã¨èããã®ãä¸çªã§ãã"
+
+#. 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> å¶ç´ã«éåããå¯è½æ§ãããã¾ããä¾ãã°ã親ãªã"
+"ã¸ã§ã¯ããåé¤ããã¨ãã«ãåä¾ãªãã¸ã§ã¯ããåé¤ãå¿ããå ´åã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr "ç°ãªãäºã¤ã®ãã¼ã¿ã¹ãã¢éã§ã®ãªãã¸ã§ã¯ãã®ã¬ããªã±ã¼ã·ã§ã³"
+
+#. 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 ""
+"æ°¸ç¶ã¤ã³ã¹ã¿ã³ã¹ã®ã°ã©ããå¥ã®ãã¼ã¿ã¹ãã¢ã«æ°¸ç¶åããå ´åã«ãèå¥åã®å¤ãå"
+"çæããã«ããã¨ä¾¿å©ãªå ´åãããã¾ãã"
+
+#. 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>replicate()</"
+"literal> ãè¡çªãã©ã®ããã«æ±ããã <literal>ReplicationMode</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> - åãèå¥åãæã¤è¡ããã¼ã¿ãã¼ã¹"
+"ã«åå¨ãããªãããã®ãªãã¸ã§ã¯ããç¡è¦ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> - åãèå¥åãæã¤è¡ããã¼ã¿ãã¼"
+"ã¹ã«åå¨ãããªããä¾å¤ãæãã¾ãã"
+
+#. 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> - è¡ã«ä¿åããã¦ãããã¼"
+"ã¸ã§ã³çªå·ããå¼æ°ã®ãªãã¸ã§ã¯ãã®ãã¼ã¸ã§ã³çªå·ããå¤ããªãã°ããã®è¡ãä¸æ¸"
+"ããã¾ãã"
+
+#. 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 ""
+"次ã®ãããªã±ã¼ã¹ã§ããã®æ©è½ã使ç¨ãã¾ããç°ãªããã¼ã¿ãã¼ã¹ã¤ã³ã¹ã¿ã³ã¹ã«å
¥"
+"ãããããã¼ã¿ã®åæã製åæ´æ°æã«ãããã·ã¹ãã è¨å®æ
å ±ã®æ´æ°ãé ACID ãã©"
+"ã³ã¶ã¯ã·ã§ã³ã®ãªãã§å ããããå¤æ´ã®ãã¼ã«ããã¯ãªã©ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr "ã»ãã·ã§ã³ã®ãã©ãã·ã¥"
+
+#. 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 ""
+"JDBC ã³ãã¯ã·ã§ã³ã®ç¶æ
ã¨ã¡ã¢ãªä¸ã®ãªãã¸ã§ã¯ãã®ç¶æ
ãåæãããããã«å¿
è¦"
+"㪠SQL æã <literal>Session</literal> ãå®è¡ãããã¨ãã¨ãã©ãããã¾ãããã®"
+"å¦ç <emphasis>flush</emphasis> ã¯ãããã©ã«ãã§ã¯æ¬¡ã®ã¨ãã«èµ·ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr "ã¯ã¨ãªãå®è¡ããå"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "<literal>org.hibernate.Transaction.commit()</literal> ãå®è¡ããã¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr "<literal>Session.flush()</literal> ãå®è¡ããã¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr "SQL æã¯ä»¥ä¸ã®é çªã§çºè¡ããã¾ãã"
+
+#. 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> ã使ã£"
+"ã¦ã»ã¼ããããªãã¸ã§ã¯ãã®é ã«å®è¡ãã¦ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr "ãã¹ã¦ã®ã¨ã³ãã£ãã£ã®æ´æ°"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr "ãã¹ã¦ã®ã³ã¬ã¯ã·ã§ã³ã®åé¤"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr "ãã¹ã¦ã®ã³ã¬ã¯ã·ã§ã³ã®è¦ç´ ã«å¯¾ããåé¤ãæ´æ°ãæ¿å
¥"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr "ãã¹ã¦ã®ã³ã¬ã¯ã·ã§ã³ã®æ¿å
¥"
+
+#. 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> ã"
+"使ã£ã¦åé¤ãããªãã¸ã§ã¯ãã®é ã«å®è¡ãã¦ããã¾ãã"
+
+#. 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 çæã使ã£ããªãã¸ã§ã¯ã"
+"ã¯ãããããã»ã¼ããããã¨ãã«æ¿å
¥ããã¾ããï¼"
+
+#. 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> ããã¨ããé¤ãã¦ã <emphasis>ãã¤</"
+"emphasis> <literal>Session</literal> ã JDBC ãã³ã¼ã«ããã®ãã«ã¤ãã¦çµ¶å¯¾çãª"
+"ä¿è¨¼ã¯ããã¾ããããã ããããããå®è¡ããã <emphasis>é çª</emphasis> ã ãã¯"
+"ä¿è¨¼ããã¾ããã¾ãã Hibernate ã¯ã <literal>Query.list(..)</literal> ãå¤ã"
+"ãã¼ã¿ãééã£ããã¼ã¿è¿ããªããã¨ãä¿è¨¼ãã¦ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to change the default behavior so that flush occurs less "
+"frequently. The <literal>FlushMode</literal> class defines three different "
+"modes: only flush at commit time when the Hibernate <literal>Transaction</"
+"literal> API is used, flush automatically using the explained routine, or "
+"never flush unless <literal>flush()</literal> is called explicitly. The last "
+"mode is useful for long running units of work, where a <literal>Session</"
+"literal> is kept open and disconnected for a long time (see <xref linkend="
+"\"transactions-optimistic-longsession\" />)."
+msgstr ""
+"ãã©ãã·ã¥ãé »ç¹ã«èµ·ãããªãããã«ããã©ã«ãã®æ¯ãèããå¤ãããã¨ãã§ãã¾"
+"ãã <literal>FlushMode</literal> ã¯ã©ã¹ã¯3ã¤ã®ç°ãªãã¢ã¼ããå®ç¾©ãã¾ãããã"
+"ã¯ãã³ãããæã«ã ããã©ãã·ã¥ããã¢ã¼ãï¼Hibernate ã® <literal>Transaction</"
+"literal> API ã使ãããå ´åã ãã§ãï¼ã説æã®ãã£ãå¦çé ã«åºã¥ãã¦èªåã§ã"
+"ã©ãã·ã¥ããã¢ã¼ãã <literal>flush()</literal> ãæ示çã«å¼ã°ããªãéãã"
+"ã©ãã·ã¥ããªãã¢ã¼ãã®ï¼ã¤ã§ããæå¾ã®ã¢ã¼ãã¯ãä½æ¥åä½ãé·æéã«åã¶å ´åã«"
+"å½¹ã«ç«ã¡ã¾ã ( <xref linkend=\"transactions-optimistic-longsession\"/> ãåç
§"
+"ãã¦ãã ãã)ã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"During flush, an exception might occur (e.g. if a DML operation violates a "
+"constraint). Since handling exceptions involves some understanding of "
+"Hibernate's transactional behavior, we discuss it in <xref linkend="
+"\"transactions\" />."
+msgstr ""
+"ãã©ãã·ã¥ã®ã¨ããä¾å¤ãçºçããããããã¾ããï¼ä¾ãã°ã DML æä½ãå¶ç´ãéå"
+"ãããããªå ´åã§ãï¼ãä¾å¤å¦çãç解ããããã«ã¯ã Hibernate ã®ãã©ã³ã¶ã¯ã·ã§"
+"ã³ã®æ¯ãèããç解ããå¿
è¦ãããããã <xref linkend=\"transactions\"/> ã§èª¬"
+"æãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr "é£éçãªæ°¸ç¶å"
+
+#. 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 ""
+"åã
ã®ãªãã¸ã§ã¯ããã»ã¼ãããããåé¤ããããå追å ããããããã¨ã¯ããªãé¢"
+"åã§ããç¹ã«ãé¢é£ãããªãã¸ã§ã¯ããæ±ããããªå ´åã«ã¯éç«ã¡ã¾ããããããã®"
+"ã¯ã親åé¢ä¿ãæ±ãã±ã¼ã¹ã§ãã以ä¸ã®ä¾ãèãã¦ã¿ã¾ããã:"
+
+#. 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 ""
+"ããã親åé¢ä¿ã®åãå¤åãªãï¼ä¾ãã°ãä½æãæååã®ã³ã¬ã¯ã·ã§ã³ï¼ããããã®"
+"ã©ã¤ããµã¤ã¯ã«ã¯è¦ªã«ä¾åãã¦ããã便å©ãªç¶æ
å¤åã®ãã«ã¹ã±ã¼ããã使ããã"
+"ã«ã追å ã®ä½æ¥ã¯å¿
è¦ã¯ããã¾ããã親ãã»ã¼ããããã¨ããå¤åã®åãªãã¸ã§ã¯ã"
+"ãåãããã«ã»ã¼ãããã¾ããã親ãåé¤ãããã¨ãã¯ãåãåé¤ããã¾ãããã®ä»"
+"ã®æä½ãåãã§ããã³ã¬ã¯ã·ã§ã³ãã1ã¤ã®åãåé¤ãããããªæä½ã§ããã¾ãããã¾"
+"ããããªãã¡ã 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 ""
+"ããã§ã親ã¨åãå¤åã§ãªãã¨ã³ãã£ãã£ã§ããã¨ãã¦åãã·ããªãªãèãã¦ã¿ã¾"
+"ããããï¼ä¾ãã°ãã«ãã´ãªã¼ã¨åç®ã®é¢ä¿ã親ã¨åã®ç«ã®é¢ä¿ã§ããï¼ã¨ã³ãã£"
+"ãã£ã¯ãããèªèº«ãã©ã¤ããµã¤ã¯ã«ãæã¡ãåç
§ã®å
±æããµãã¼ããã¾ããï¼ãã®ã"
+"ããã³ã¬ã¯ã·ã§ã³ããã¨ã³ãã£ãã£ãåé¤ãããã¨ã¯ãã¨ã³ãã£ãã£èªèº«ã®åé¤ãæ"
+"å³ãã¾ãããï¼ã¾ããã¨ã³ãã£ãã£ã¯ãããã©ã«ãã§ã¯ãé¢é£ããä»ã®ã¨ã³ãã£ãã£"
+"ã¸ç¶æ
ãã«ã¹ã±ã¼ããããã¨ã¯ããã¾ããã Hibernate 㯠<emphasis>å°éå¯è½æ§ã«"
+"ããæ°¸ç¶å</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> ãå«ã¾ãã¾"
+"ãï¼ã«å¯¾ãã¦ãããããã«å¯¾å¿ããã«ã¹ã±ã¼ãã¹ã¿ã¤ã«ãããã¾ããããããã®ã«ã¹"
+"ã±ã¼ãã¹ã¿ã¤ã«ã«ã¯ã <literal>create, merge, save-update, delete, lock, "
+"refresh, evict, replicate</literal> ã¨ããååãã¤ãã¦ãã¾ãããããé¢é£ã«"
+"沿ã£ã¦ã«ã¹ã±ã¼ãããããæä½ããããªãããããã³ã°ãã¡ã¤ã«ã«ããæå®ããªãã"
+"ã°ãªãã¾ãããä¾ãã°ã以ä¸ã®ããã«ãã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr "ã«ã¹ã±ã¼ãã¹ã¿ã¤ã«ã¯ãçµã¿åããããã¨ãã§ãã¾ã:"
+
+#. 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 ""
+"<emphasis>ãã¹ã¦ã®</emphasis> æä½ãé¢é£ã«æ²¿ã£ã¦ã«ã¹ã±ã¼ãããããæå®ããã¨"
+"ãã¯ã <literal>cascade=\"all\"</literal> ã使ãã¾ããããã©ã«ãã® "
+"<literal>cascade=\"none\"</literal> ã¯ãã©ã®æä½ãã«ã¹ã±ã¼ãããªããã¨ãæå³"
+"ãã¾ãã"
+
+#. 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 ""
+"ç¹æ®ãªã«ã¹ã±ã¼ãã¹ã¿ã¤ã« <literal>delete-orphan</literal> ã¯ãä¸å¯¾å¤é¢é£ã«ã "
+"ãé©ç¨ã§ãã¾ããããã¯ãé¢é£ããåé¤ãããåä¾ã®ãªãã¸ã§ã¯ãã«å¯¾ãã¦ã "
+"<literal>delete()</literal> æä½ãé©ç¨ããããã¨ãæå³ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr "ããããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It does not usually make sense to enable cascade on a <literal><many-to-"
+"one></literal> or <literal><many-to-many></literal> association. "
+"Cascade is often useful for <literal><one-to-one></literal> and "
+"<literal><one-to-many></literal> associations."
+msgstr ""
+"æ®éã <literal><many-to-one></literal> ã <literal><many-to-"
+"many></literal> é¢é£ã«å¯¾ãã¦ã¯ãã«ã¹ã±ã¼ããè¨å®ããæå³ã¯ããã¾ããã "
+"<literal><one-to-one></literal> 㨠<literal><one-to-many></"
+"literal> é¢é£ã«å¯¾ãã¦ã¯ãã«ã¹ã±ã¼ããå½¹ã«ç«ã¤ãã¨ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make it a <emphasis>life cycle object</emphasis> by specifying "
+"<literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr ""
+"åä¾ãªãã¸ã§ã¯ãã®å¯¿å½ã親ãªãã¸ã§ã¯ãã®å¯¿å½ã«å¶éãåãããªãã°ã "
+"<literal>cascade=\"all,delete-orphan\"</literal> ãæå®ããåä¾ãªãã¸ã§ã¯ã"
+"ã <emphasis>ã©ã¤ããµã¤ã¯ã«ãªãã¸ã§ã¯ã</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 ""
+"ãã以å¤ã®å ´åã¯ãã«ã¹ã±ã¼ãã¯ã»ã¨ãã©å¿
è¦ãªãã§ããããããããåããã©ã³ã¶"
+"ã¯ã·ã§ã³ã®ãªãã§è¦ªã¨åãä¸ç·ã«åä½ãããã¨ãå¤ãã¨æããããããã®ã³ã¼ããæ¸"
+"ãæéãçãããã®ã§ããã°ã <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> ã¹ã¿ã¤ã«ã®é¢é£ã¨ãã¼ã¯ããã¾ããããã¯ã親"
+"ã®ã»ã¼ã/æ´æ°/åé¤ããåã®ã»ã¼ã/æ´æ°/åé¤ãå¼ãèµ·ããé¢ä¿ã®ãã¨ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Furthermore, a mere reference to a child from a persistent parent will "
+"result in save/update of the child. This metaphor is incomplete, however. A "
+"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal><one-to-many></"
+"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
+"literal>. The precise semantics of cascading operations for a parent/child "
+"relationship are as follows:"
+msgstr ""
+"ããã«ãæ°¸ç¶åããã親ãåãåã«åç
§ãã¦ããã ãã§ãåã®ã»ã¼ã/æ´æ°ãå¼ãèµ·ã"
+"ãã¾ãããããããã®ã¡ã¿ãã¡ã¼ã¯ä¸å®å
¨ã§ãã親ããåç
§ãããªããªã£ãåã¯ãèª"
+"åçã«åé¤ <emphasis>ããã¾ãã</emphasis> ããã ãã <literal>cascade="
+"\"delete-orphan\"</literal> ã§ãããã³ã°ããã <literal><one-to-many></"
+"literal> é¢é£ãé¤ãã¦ã§ãã親åé¢ä¿ã®ã«ã¹ã±ã¼ãæä½ã®æ£ç¢ºãªæå³ã¯ä»¥ä¸ã®ããã«"
+"ãªãã¾ã:"
+
+#. 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> ã«æ¸¡ããã¾ãã"
+
+#. 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> ã«æ¸¡ããã¾ãã"
+
+#. 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> ã«æ¸¡ããã¾ãã"
+
+#. 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> ã«æ¸¡ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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 ""
+"åãæ°¸ç¶åããã親ããåç
§ãããªããªã£ãã¨ãã¯ã <emphasis>ç¹ã«ä½ãèµ·ããã¾ã"
+"ã</emphasis> ããã£ã¦ãã¢ããªã±ã¼ã·ã§ã³ãå¿
è¦ã§ããã°ãæ示çã«åé¤ããå¿
è¦"
+"ãããã¾ãããã ãã <literal>cascade=\"delete-orphan\"</literal> ã®å ´åãé¤"
+"ãã¾ãããã®å ´åãã親ã®ãªããåã¯åé¤ããã¾ãã"
+
+#. 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>ã³ã¼"
+"ã«ããæ</emphasis> ãããã¯ã <emphasis>flushããæ</emphasis> ã§ãããã¨ã«"
+"注æãã¦ãã ããããã¹ã¦ã®æä½ã¯ããã®æä½ãå®è¡ãããã¨ãã«ãå°éå¯è½ãªé¢é£"
+"ããã¨ã³ãã£ãã£ã«å¯¾ãã¦ã«ã¹ã±ã¼ããå¯è½ãªãã«ã¹ã±ã¼ããã¾ãããããã "
+"<literal>save-upate</literal> 㨠<literal>delete-orphan</literal> ã¯ã "
+"<literal>Session</literal> ã flush ãã¦ããéã«ããã¹ã¦ã®å°éå¯è½ãªé¢é£ãã"
+"ã¨ã³ãã£ãã£ã«ä¼æãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr "ã¡ã¿ãã¼ã¿ã®ä½¿ç¨"
+
+#. 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 ã¯ããã¹ã¦ã®ã¨ã³ãã£ãã£ã¨å¤åã®é常ã«ãªãããªã¡ã¿ã¬ãã«ã®ã¢ãã«ã"
+"å¿
è¦ã¨ãã¾ããã¨ãã©ãããã®ã¢ãã«ã¯ã¢ããªã±ã¼ã·ã§ã³ã«ã¨ã£ã¦ã¨ã¦ãå½¹ã«ç«ã¡ã¾"
+"ããä¾ãã°ãã¢ããªã±ã¼ã·ã§ã³ã¯ã 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> ããå¾ããã¾ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "DomesticCat fritz = new DomesticCat();\n"
+#~ "fritz.setColor(Color.GINGER);\n"
+#~ "fritz.setSex('M');\n"
+#~ "fritz.setName(\"Fritz\");\n"
+#~ "Long generatedId = (Long) sess.save(fritz);"
+
+#, fuzzy
+#~ 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 ""
+#~ "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) );"
+
+#, fuzzy
+#~ msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
+#~ msgstr "Cat fritz = (Cat) sess.load(Cat.class, generatedId);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[// you need to wrap primitive identifiers\n"
+#~ "long id = 1234;\n"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );]]>"
+#~ msgstr ""
+#~ "// you need to wrap primitive identifiers\n"
+#~ "long id = 1234;\n"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );"
+
+#, fuzzy
+#~ 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 ""
+#~ "Cat cat = new DomesticCat();\n"
+#~ "// load pk's state into cat\n"
+#~ "sess.load( cat, new Long(pkId) );\n"
+#~ "Set kittens = cat.getKittens();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
+#~ msgstr "Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);"
+
+#, fuzzy
+#~ 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 ""
+#~ "sess.save(cat);\n"
+#~ "sess.flush(); //force the SQL INSERT\n"
+#~ "sess.refresh(cat); //re-read the state (after the trigger executes)"
+
+#, fuzzy
+#~ 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 ""
+#~ "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());"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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 = tuple[0];\n"
+#~ " Cat mother = tuple[1];\n"
+#~ " ....\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "//positional parameter\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
+#~ "q.setString(0, \"Izi\");\n"
+#~ "Iterator cats = q.iterate();"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "q.setFirstResult(20);\n"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "q.setFirstResult(20);\n"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>]]>"
+#~ msgstr ""
+#~ "<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "Collection blackKittens = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"where this.color = ?\")\n"
+#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+#~ " .list()\n"
+#~ ");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection tenKittens = session.createFilter(\n"
+#~ " mother.getKittens(), \"\")\n"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Collection tenKittens = session.createFilter(\n"
+#~ " mother.getKittens(), \"\")\n"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "Criteria crit = session.createCriteria(Cat.class);\n"
+#~ "crit.add( Expression.eq( \"color\", eg.Color.BLACK ) );\n"
+#~ "crit.setMaxResults(10);\n"
+#~ "List cats = crit.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT "
+#~ "{cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list();]]>"
+#~ msgstr ""
+#~ "List cats = session.createSQLQuery(\n"
+#~ " \"SELECT {cat.*} FROM CAT {cat} WHERE ROWNUM<10\",\n"
+#~ " \"cat\",\n"
+#~ " Cat.class\n"
+#~ ").list();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ " \"cat\",\n"
+#~ " Cat.class\n"
+#~ ").list()"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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);"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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)"
+
+#, fuzzy
+#~ msgid "<![CDATA[sess.delete(cat);]]>"
+#~ msgstr "sess.delete(cat);"
+
+#, fuzzy
+#~ 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 ""
+#~ "//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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" cascade=\"persist\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/toolset_guide.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/toolset_guide.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/toolset_guide.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1181 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-01-20 15:00+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr "ãã¼ã«ã»ããã¬ã¤ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
+"plugins, commandline tools, and Ant tasks."
+msgstr ""
+"Hibernate ã使ã£ãã©ã¦ã³ãããªããã¨ã³ã¸ãã¢ãªã³ã°ã¯ã Eclipse ãã©ã°ã¤ã³ãã³"
+"ãã³ãã©ã¤ã³ãã¼ã«ããã¡ãã Ant ã¿ã¹ã¯ã使ããã¨ã§å¯è½ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Hibernate Tools</emphasis> currently include plugins for the "
+"Eclipse IDE as well as Ant tasks for reverse engineering of existing "
+"databases:"
+msgstr ""
+"<emphasis>Hibernate Tools</emphasis> ã¯ç¾å¨ãæ¢åãã¼ã¿ãã¼ã¹ã®ãªãã¼ã¹ã¨ã³ã¸"
+"ãã¢ãªã³ã°ã® Ant ã¿ã¹ã¯ã«å ãã¦ã Eclipse IDE ã®ãã©ã°ã¤ã³ãå«ã¿ã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
+"files that supports auto-completion and syntax highlighting. It also "
+"supports semantic auto-completion for class names and property/field names, "
+"making it more versatile than a normal XML editor."
+msgstr ""
+"<emphasis>ãããã³ã°ã¨ãã£ã¿:</emphasis> Hibernate ã® XML ãããã³ã°ãã¡ã¤ã«"
+"ç¨ã®ã¨ãã£ã¿ã§ãèªåè£å®ã¨æ§æ強調表示ããµãã¼ããã¦ãã¾ããã¯ã©ã¹åãããã"
+"ãã£/ãã£ã¼ã«ãåã«å¯¾ããèªåè£å®ããµãã¼ãããé常㮠XML ã¨ãã£ã¿ãããå¼·å"
+"ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
+"addition to a tree overview of your console configurations, you are also "
+"provided with an interactive view of your persistent classes and their "
+"relationships. The console allows you to execute HQL queries against your "
+"database and browse the result directly in Eclipse."
+msgstr ""
+"<emphasis>Console:</emphasis> ã³ã³ã½ã¼ã«ã¯ã¨ã¯ãªãã¹ã®æ°ãããã¥ã¼ã§ããã³ã³"
+"ã½ã¼ã«ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã®ããªã¼ãªã¼ãã¼ãã¥ã¼ã«å ãã¦ãæ°¸ç¶ã¯ã©ã¹ã¨ãã®"
+"é¢é£ã®ç¸äºä½ç¨ãã¥ã¼ãå¾ããã¾ãããã¼ã¿ãã¼ã¹ã« HQL ãå®è¡ããçµæãç´æ¥ã¨ã¯"
+"ãªãã¹ä¸ã§è¦ããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Development Wizards:</emphasis> several wizards are provided with "
+"the Hibernate Eclipse tools. You can use a wizard to quickly generate "
+"Hibernate configuration (cfg.xml) files, or to reverse engineer an existing "
+"database schema into POJO source files and Hibernate mapping files. The "
+"reverse engineering wizard supports customizable templates."
+msgstr ""
+"<emphasis>éçºã¦ã£ã¶ã¼ã</emphasis> Hibernate ã® Eclipse ãã¼ã«ã¯ããã¤ãã®"
+"ã¦ã£ã¶ã¼ããæä¾ãã¾ããã¦ã£ã¶ã¼ãã使ã£ã¦ Hibernate ã®è¨å®ãã¡ã¤ã« (cfg."
+"xml) ããã°ããçæããããæ¢åã®ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã POJO ã®ã½ã¼ã¹ãã¡ã¤ã«"
+"㨠Hibernate ã®ãããã³ã°ãã¡ã¤ã«ã¸ã¨ãå®å
¨ã«ãªãã¼ã¹ã¨ã³ã¸ãã¢ãªã³ã°ãããã¨"
+"ãã§ãã¾ãããªãã¼ã¹ã¨ã³ã¸ãã¢ãªã³ã°ã¦ã£ã¶ã¼ãã¯ã«ã¹ã¿ãã¤ãºå¯è½ãªãã³ãã¬ã¼"
+"ãããµãã¼ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
+"documentation for more information."
+msgstr ""
+"ãã詳ããæ
å ±ã¯ <emphasis>Hibernate Tools</emphasis> ããã±ã¼ã¸ã¨ãã®ããã¥"
+"ã¡ã³ããåç
§ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"However, the Hibernate main package comes bundled with an integrated tool : "
+"<emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even "
+"be used from \"inside\" Hibernate."
+msgstr ""
+"ãããã Hibernate ã®ã¡ã¤ã³ããã±ã¼ã¸ã¯ <emphasis>SchemaExport</emphasis> ã"
+"å¥å <literal>hbm2ddl</literal> ãå«ã¿ã¾ã(Hibernate ãå
ãã§ãªã³ã¶ãã©ã¤ã§ä½¿"
+"ç¨ã§ãã¾ã)ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr "ã¹ãã¼ãã®èªåçæ"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"DDL can be generated from your mapping files by a Hibernate utility. The "
+"generated schema includes referential integrity constraints, primary and "
+"foreign keys, for entity and collection tables. Tables and sequences are "
+"also created for mapped identifier generators."
+msgstr ""
+"DDL 㯠Hibernate ã¦ã¼ãã£ãªãã£ã«ãããããã³ã°ãã¡ã¤ã«ããçæãããã¨ãã§ã"
+"ã¾ããçæãããã¹ãã¼ãã¯ã¨ã³ãã£ãã£ãã³ã¬ã¯ã·ã§ã³ã®ãã¼ãã«ã«å¯¾ããåç
§æ´"
+"åæ§å¶ç´ (主ãã¼ã¨å¤é¨ãã¼) ãå«ã¿ã¾ãããã¼ãã«ã¨ã·ã¼ã±ã³ã¹ã¯ãããã³ã°ãã"
+"èå¥åã¸ã§ãã¬ã¼ã¿ã«å¯¾ãã¦çæããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via "
+"the <literal>hibernate.dialect</literal> property when using this tool, as "
+"DDL is highly vendor-specific."
+msgstr ""
+"DDL ã¯ãã³ãã¼ä¾åãªã®ã§ããã®ãã¼ã«ã使ãã¨ãã¯ã <literal>hibernate."
+"dialect</literal> ããããã£ã§ SQL ã® <literal>æ¹è¨</literal> ãæå® "
+"<emphasis>ããªããã°ãªãã¾ãã</emphasis> ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must customize your mapping files to improve the generated "
+"schema. The next section covers schema customization."
+msgstr ""
+"ã¾ããçæãããã¹ãã¼ããæ¹åããããã«ããããã³ã°ãã¡ã¤ã«ãã«ã¹ã¿ãã¤ãºã"
+"ã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing the schema"
+msgstr "ã¹ãã¼ãã®ã«ã¹ã¿ãã¤ãº"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many Hibernate mapping elements define optional attributes named "
+"<literal>length</literal>, <literal>precision</literal> and <literal>scale</"
+"literal>. You can set the length, precision and scale of a column with this "
+"attribute."
+msgstr ""
+"å¤ãã® Hibernate ã®ãããã³ã°è¦ç´ ã§ã¯ããªãã·ã§ã³ã® <literal>length</"
+"literal>ã <literal>precision</literal>ã <literal>scale</literal> ã¨ããåã®"
+"å±æ§ãå®ç¾©ãã¦ãã¾ãããã®å±æ§ã§ã«ã©ã ã®é·ãã精度ãã¹ã±ã¼ã«ãè¨å®ãããã¨ã"
+"ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Some tags also accept a <literal>not-null</literal> attribute for generating "
+"a <literal>NOT NULL</literal> constraint on table columns, and a "
+"<literal>unique</literal> attribute for generating <literal>UNIQUE</literal> "
+"constraint on table columns."
+msgstr ""
+"<literal>not-null</literal> å±æ§ï¼ãã¼ãã«ã®ã«ã©ã 㸠<literal>NOT NULL</"
+"literal> å¶ç´ãçæããï¼ã¨ <literal>unique</literal> å±æ§ï¼ãã¼ãã«ã®ã«ã©ã "
+"㸠<literal>UNIQUE</literal> å¶ç´ãçæããï¼ãè¨å®ã§ããã¿ã°ãããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>unique-key</literal> attribute can be used to group columns in a "
+"single, unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL. It is only used to group the "
+"columns in the mapping file."
+msgstr ""
+"<literal>unique-key</literal> å±æ§ã¯ã«ã©ã ãã°ã«ã¼ãåãã¦ä¸ã¤ã®ãã¼å¶ç´ã«ã"
+"ãããã«ä½¿ããã¾ããç¾å¨ã <literal>unique-key</literal> å±æ§ã§æå®ãããå¤ã¯"
+"å¶ç´ã®æå®ã«ã¯ <emphasis>使ããã</emphasis> ããããã³ã°ãã¡ã¤ã«ã§ã«ã©ã ãã°"
+"ã«ã¼ãåãããã¨ã«ã®ã¿ä½¿ããã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns can be "
+"grouped into the same index by simply specifying the same index name."
+msgstr ""
+"<literal>index</literal> å±æ§ã¯ãããã³ã°ããã«ã©ã ã使ã£ã¦çæããã¤ã³ããã¯"
+"ã¹ã®ååãæå®ãã¾ããè¤æ°ã«ã©ã ãï¼ã¤ã®ã¤ã³ããã¯ã¹ã«ã°ã«ã¼ãåã§ãã¾ããå"
+"ã«ãåãã¤ã³ããã¯ã¹åãæå®ããã ãã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>foreign-key</literal> attribute can be used to override the name "
+"of any generated foreign key constraint."
+msgstr ""
+"<literal>foreign-key</literal> å±æ§ã¯ãçæãããå¤é¨ãã¼å¶ç´ã®ååããªã¼ãã¼"
+"ã©ã¤ãããããã«ä½¿ç¨ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many mapping elements also accept a child <literal><column></literal> "
+"element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+"å¤ãã®ãããã³ã°è¦ç´ ã¯ãå <literal><column></literal> è¦ç´ ãè¨è¿°ã§ãã¾"
+"ããããã¯è¤æ°ã«ã©ã åã®ãããã³ã°ã«ã¯ç¹ã«æç¨ã§ã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>default</literal> attribute allows you to specify a default "
+"value for a column.You should assign the same value to the mapped property "
+"before saving a new instance of the mapped class."
+msgstr ""
+"<literal>default</literal> å±æ§ã¯ã«ã©ã ã®ããã©ã«ãå¤ãæå®ãã¾ã (ãããã³ã°"
+"ããã¯ã©ã¹ã®æ°ããã¤ã³ã¹ã¿ã³ã¹ãä¿åããåã«ããããã³ã°ããããããã£ã¸åã"
+"å¤ã代å
¥ãã¹ãã§ã)ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>sql-type</literal> attribute allows the user to override the "
+"default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+"<literal>sql-type</literal> å±æ§ã§ãããã©ã«ãã® Hibernate åãã SQL ã®ãã¼"
+"ã¿åã¸ã®ãããã³ã°ããªã¼ãã¼ã©ã¤ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>check</literal> attribute allows you to specify a check "
+"constraint."
+msgstr "<literal>check</literal> å±æ§ã§ãã§ãã¯å¶ç´ãæå®ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "è¦ç´"
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr "å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr "å¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr "説æ"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>length</literal>"
+msgstr "<literal>length</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr "æ°å¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr "ã«ã©ã ã®é·ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "<literal>precision</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr "ã«ã©ã ã® DECIMAL åã®ç²¾åº¦ï¼precisionï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "<literal>scale</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr "ã«ã©ã ã® DECIMAL åã®ã¹ã±ã¼ã«ï¼scaleï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "<literal>not-null</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "<literal>true|false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr "ã«ã©ã ã null å¤ãåããªããã¨ãæå®ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "<literal>unique</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr "ã«ã©ã ãã¦ãã¼ã¯å¶ç´ãæã¤ãã¨ãæå®ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index</literal>"
+msgstr "<literal>index</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "ã¤ã³ããã¯ã¹å"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr "(è¤æ°ã«ã©ã ã®)ã¤ã³ããã¯ã¹ã®ååãæå®ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>unique-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "ã¦ãã¼ã¯ãã¼å"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr "è¤æ°ã«ã©ã ã®ã¦ãã¼ã¯å¶ç´ã®ååãæå®ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>foreign-key</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr "å¤é¨ãã¼å"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"specifies the name of the foreign key constraint generated for an "
+"association, for a <literal><one-to-one></literal>, <literal><many-"
+"to-one></literal>, <literal><key></literal>, or <literal><many-"
+"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
+"literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+"<literal><one-to-one></literal>ã <literal><many-to-one></"
+"literal>ã <literal><key></literal>ã ã¾ã㯠<literal><many-to-"
+"many></literal> ãããã³ã°ã¨ã¬ã¡ã³ãã®ããã«ãé¢é£ã«å¯¾ãã¦çæãããå¤é¨"
+"ãã¼å¶ç´ã®ååãæå®ãã¾ãã <literal>inverse=\"true\"</literal> å´ã¯ "
+"<literal>SchemaExport</literal> ã«ãã£ã¦èæ
®ãããªããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>sql-type</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr "<literal>sql-type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"overrides the default column type (attribute of <literal><column></"
+"literal> element only)"
+msgstr ""
+"ããã©ã«ãã®ã«ã©ã åããªã¼ãã¼ã©ã¤ããã¾ã ( <literal><column></"
+"literal> è¦ç´ ã®å±æ§ã«éã)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>default</literal>"
+msgstr "<literal>default</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr "SQL å¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr "ã«ã©ã ã®ããã©ã«ãå¤ãæå®ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>check</literal>"
+msgstr "<literal>check</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr "ã«ã©ã ããã¼ãã«ã« SQL ã®ãã§ãã¯å¶ç´ãä½æãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><comment></literal> element allows you to specify "
+"comments for the generated schema."
+msgstr ""
+"<literal><comment></literal> è¦ç´ ã§çæããã¹ãã¼ãã«ã³ã¡ã³ããæå®ãã"
+"ãã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This results in a <literal>comment on table</literal> or <literal>comment on "
+"column</literal> statement in the generated DDL where supported."
+msgstr ""
+"ããã«ãããçæãã DDL ã« <literal>comment on table</literal> ã "
+"<literal>comment on column</literal> æãæ¸ããã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr "ãã¼ã«ã®å®è¡"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
+"and/or executes the DDL statements."
+msgstr ""
+"<literal>SchemaExport</literal> ã¯æ¨æºåºåã«å¯¾ã㦠DDL ã¹ã¯ãªãããæ¸ãåº"
+"ãã DDL æãå®è¡ãããããã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaExport</literal> command "
+"line options"
+msgstr "<literal>SchemaExport</literal> ã®ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr "<literal>SchemaExport</literal> ã®ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³"
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr "ãªãã·ã§ã³"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "説æ"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>--quiet</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not output the script to stdout"
+msgstr "æ¨æºåºåã«ã¹ã¯ãªãããåºåãã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "<literal>--drop</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr "ãã¼ãã«ã®åé¤ã ããè¡ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "<literal>--create</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr "ãã¼ãã«ã®çæã®ã¿ãè¡ãã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "<literal>--text</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export to the database"
+msgstr "ãã¼ã¿ãã¼ã¹ã«ã¨ã¯ã¹ãã¼ããã¾ãã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>scale</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr "DDL ã¹ã¯ãªããããã¡ã¤ã«ã«åºåãã¾ã"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr "<literal>NamingStrategy</literal> ãé¸æ"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr "XML ãã¡ã¤ã«ãã Hibernate ã®å®ç¾©æ
å ±ãèªã¿è¾¼ã¿ã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read database properties from a file"
+msgstr "ãã¡ã¤ã«ãããã¼ã¿ãã¼ã¹ã®ããããã£ãèªã¿è¾¼ã¿ã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "<literal>--format</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr "ã¹ã¯ãªããå
ã«çæãã SQL ãèªã¿ãããããã«ãã©ã¼ããããã¾ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>--delimiter=;</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr "ã¹ã¯ãªããã®è¡åºåãæåãè¨å®ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã« <literal>SchemaExport</literal> ãçµã¿è¾¼ããã¨ãã§ãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "ããããã£"
+
+#. Tag: para
+#, no-c-format
+msgid "Database properties can be specified:"
+msgstr "次ã®ããã«ããã¼ã¿ãã¼ã¹ã®ããããã£ãæå®ãããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"as system properties with <literal>-D</literal><emphasis><property></"
+"emphasis>"
+msgstr ""
+"<literal>-D</literal><emphasis><property></emphasis> ã使ã£ã¦ãã·ã¹ãã "
+"ããããã£ã¨ãã¦"
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr "<literal>hibernate.properties</literal> ãã¡ã¤ã«å
ã§"
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr "<literal>--properties</literal> ã使ã£ã¦æå®ããããããã£ãã¡ã¤ã«å
ã§"
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr "å¿
è¦ãªããããã£ã¯ä»¥ä¸ã®ãã®ã§ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr "SchemaExport ã³ãã¯ã·ã§ã³ããããã£"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr "ããããã£å"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "<literal>hibernate.connection.driver_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr "jdbc ã®ãã©ã¤ãã¼ã¯ã©ã¹"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.connection.url</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr "jdbc ã® url"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.connection.username</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr "ãã¼ã¿ãã¼ã¹ã®ã¦ã¼ã¶ã¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.connection.password</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr "ã¦ã¼ã¶ã¼ãã¹ã¯ã¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr "ãã¼ã¿ãã¼ã¹æ¹è¨"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr "Ant ã使ç¨ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr ""
+"Ant ã®ãã«ãã¹ã¯ãªãããã <literal>SchemaExport</literal> ãå¼ã³åºããã¨ãã§"
+"ãã¾ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr "ã¤ã³ã¯ãªã¡ã³ã¿ã«ãªã¹ãã¼ãæ´æ°"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaUpdate</literal> tool will update an existing schema with "
+"\"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon "
+"the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr ""
+"<literal>SchemaUpdate</literal> ãã¼ã«ã¯æ¢åã®ã¹ãã¼ããã¤ã³ã¯ãªã¡ã³ã¿ã«ã«æ´"
+"æ°ãã¾ãã <literal>SchemaUpdate</literal> 㯠JDBC ã®ã¡ã¿ãã¼ã¿ API ã«å¼·ãä¾"
+"åãã¾ãããã®ããããã¹ã¦ã® JDBC ãã©ã¤ãã§ãã¾ãããã¨ã¯éããªããã¨ã«æ³¨æ"
+"ãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr "<literal>SchemaUpdate</literal> ã®ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export the script to the database"
+msgstr "ãã¼ã¿ãã¼ã¹ã«ã¹ã¯ãªãããã¨ã¯ã¹ãã¼ããã¾ãã"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr "<literal>.cfg.xml</literal> ãã¡ã¤ã«ãæå®"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã« <literal>SchemaUpdate</literal> ãçµã¿è¾¼ããã¨ãã§ãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr "ã¤ã³ã¯ãªã¡ã³ã¿ã«ãªã¹ãã¼ãæ´æ°ã«å¯¾ãã Ant ã®ä½¿ç¨"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr ""
+"Ant ã¹ã¯ãªãããã <literal>SchemaUpdate</literal> ãå¼ã³åºããã¨ãã§ãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr "Schema validation"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaValidator</literal> tool will validate that the existing "
+"database schema \"matches\" your mapping documents. The "
+"<literal>SchemaValidator</literal> depends heavily upon the JDBC metadata "
+"API and, as such, will not work with all JDBC drivers. This tool is "
+"extremely useful for testing."
+msgstr ""
+"<literal>SchemaValidator</literal> ãã¼ã«ã¯ãæ¢åã®ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã¨ä½æ"
+"ãããããã³ã°ããã¥ã¡ã³ãããä¸è´ããããã¨ãæ¤è¨¼ãã¾ãã "
+"<literal>SchemaValidator</literal> 㯠JDBC ã®ã¡ã¿ãã¼ã¿ API ã«å¼·ãä¾åããã"
+"ã¨ã«æ³¨æãã¦ãã ããããã®ããããã¹ã¦ã® JDBC ãã©ã¤ãã¼ã§ä½åãããã®ã§ã¯ã"
+"ãã¾ããããã®ãã¼ã«ã¯ãã¹ãæã«é常ã«æç¨ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr "<literal>SchemaValidator</literal> ã®ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr "<literal>SchemaValidator</literal> ã®ã³ãã³ãã©ã¤ã³ãªãã·ã§ã³"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr ""
+"<literal>SchemaValidator</literal> ãã¢ããªã±ã¼ã·ã§ã³ã«çµã¿è¾¼ããã¨ãåºæ¥ã¾"
+"ã:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr "ã¹ãã¼ãã®ããªãã¼ã·ã§ã³ã« Ant ã使ç¨ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
+msgstr "Ant ã¹ã¯ãªãããã <literal>SchemaValidator</literal> ãå¼ã³åºãã¾ã:"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
+#~ msgstr "<property name=\"zip\" length=\"5\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
+#~ msgstr "<property name=\"balance\" precision=\"12\" scale=\"2\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key="
+#~ "\"OrgEmployeeId\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"org\" column=\"orgId\" unique-key=\"OrgEmployeeId"
+#~ "\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30"
+#~ "\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20"
+#~ "\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"30\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"20\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>"
+
+#~ msgid "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 "ã¤ã³ããã¯ã¹å"
+
+#~ msgid "unique-key"
+#~ msgstr "unique-key"
+
+#~ msgid "unique_key_name"
+#~ msgstr "ã¦ãã¼ã¯ãã¼å"
+
+#~ 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"
+
+#~ msgid "check"
+#~ msgstr "check"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>"
+
+#~ msgid "--quiet"
+#~ msgstr "--quiet"
+
+#~ msgid "--drop"
+#~ msgstr "--drop"
+
+#~ msgid "--create"
+#~ msgstr "--create"
+
+#~ 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"
+
+#~ msgid "--format"
+#~ msgstr "--format"
+
+#~ msgid "--delimiter=;"
+#~ msgstr "--delimiter=x"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);]]>"
+#~ msgstr ""
+#~ "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"
+
+#~ msgid "hibernate.connection.username"
+#~ msgstr "hibernate.connection.username"
+
+#~ msgid "hibernate.connection.password"
+#~ msgstr "hibernate.connection.password"
+
+#~ msgid "hibernate.dialect"
+#~ msgstr "hibernate.dialect"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemavalidator>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/transactions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/transactions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/transactions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2059 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-01-13 11:23+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Transactions and Concurrency"
+msgstr "ãã©ã³ã¶ã¯ã·ã§ã³ã¨ä¸¦è¡æ§"
+
+#. 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 ãããã³ãã¼ã¿ãã¼ã¹ç®¡çã·ã¹ãã "
+"ï¼DBMSï¼ã®ãã©ã³ã¶ã¯ã·ã§ã³åé¢ã®ä»æ§ãå°ãæéãããã¦åå¼·ãããã¨ãå¼·ãæ¨å¥¨"
+"ãã¾ãã"
+
+#. 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> ã®ãé°ã§ã"
+"èå¥åãã¯ã¨ãªã«ããæ¤ç´¢ããã¨ã³ãã£ãã£ã¯ãªãã¼ã¿ãã«ãªã¼ãã«ãªãã¾ãï¼ã¹ã«"
+"ã©ã¼å¤ãè¿ããããªã¬ãã¼ãã¯ã¨ãªã¯éãã¾ãï¼ã"
+
+#. 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 ""
+"ãã¼ã¸ã§ãã³ã°ã«ããèªåçãªæ¥½è¦³çåæå®è¡å¶å¾¡ã«å ãã¦ã <literal>SELECT FOR "
+"UPDATE</literal> æã使ç¨ãã¦ãè¡ãæ²è¦³çããã¯ããããã®ï¼ãã¤ãã¼ãªï¼ API "
+"ãæä¾ãã¾ãã楽観çåæå®è¡å¶å¾¡ã¨ãã® 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 ""
+"ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãé·ã対話ï¼conversationããã³ã°ãã©ã³ã¶ã¯ã·ã§"
+"ã³ï¼ã ãã§ãªãã <literal>Configuration</literal>ã<literal>SessionFactory</"
+"literal>ãããã³ <literal>Session</literal> ã¨ããç²åº¦ã§ Hibernate ãè¡ãåæ"
+"å®è¡å¶å¾¡ã®è°è«ãå§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr "session ã¹ã³ã¼ã㨠transaction ã¹ã³ã¼ã"
+
+#. 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>Configuration</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> ã¯é«ä¾¡ã§ã¯ãªããã¹ã¬ããã»ã¼ããªãªãã¸ã§ã¯ãã§ãã"
+"ãã¾ããããã£ã¦ãï¼ã¤ã®è¦æ±ãï¼ã¤ã®å¯¾è©±ãï¼ã¤ã®ä½æ¥åä½ï¼unit of workï¼ã«å¯¾"
+"ãã¦ï¼åº¦ã ã使ãããã®å¾ã§æ¨ã¦ãã¹ãã§ãã <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 ""
+"ãã®ç¶æ³ãå®äºãããããã«ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã«ã¤ãã¦ãèããªãã"
+"ã°ãªãã¾ããããã¼ã¿ãã¼ã¹å
ã®ããã¯ã®ç«¶åãå°ãªãããããã«ããã¼ã¿ãã¼ã¹ã"
+"ã©ã³ã¶ã¯ã·ã§ã³ã¯å¯è½ãªéãçãããã¹ãã§ããé·ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³"
+"ã¯ãã¢ããªã±ã¼ã·ã§ã³ã®é«ã並åå®è¡æ§ãé»å®³ãã¾ããããã«ãã¦ã¼ã¶ã¼ãèãã¦ã"
+"ãéï¼ä½æ¥åä½ãå®äºããã¾ã§ï¼ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãéããã¾ã¾ã«ãã"
+"ã®ã¯ãããã¦ãã®å ´åããè¨è¨ã¨ã¯ããã¾ããã"
+
+#. 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 ""
+"ä½æ¥åä½ã¨ããã¹ã³ã¼ãã¨ã¯ä½ã§ããããï¼ï¼ã¤ã® Hibernate <literal>Session</"
+"literal> ã¯ãããã¤ãã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãã¾ããããã¨ãã§ããã§"
+"ããããï¼ã¾ãã¯ãã¹ã³ã¼ãã¨ä¸å¯¾ä¸ã®é¢ä¿ã§ããããï¼ã㤠<literal>Session</"
+"literal> ãéããéããã¹ãã§ããããï¼ããã¦ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³å¢"
+"çãã©ã®ããã«åããã®ã§ããããï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+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 ""
+
+#. 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> ãéãã¦ãéãã¦ã¯ããã¾ããããã¡ããããã¼ã¿"
+"ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã«ã¤ãã¦ãåæ§ã§ããã¢ããªã±ã¼ã·ã§ã³ä¸ã®ãã¼ã¿ãã¼ã¹å¼"
+"ã³åºãã¯ãè¨ç»ãããã·ã¼ã±ã³ã¹ï¼planned sequenceï¼ã使ããã¢ãããã¯ãªä½æ¥å"
+"ä½ã«åé¡ããã¾ããï¼ï¼ã¤ã® SQL æãã¨ã«ã³ãããããèªåã³ããããã使ãããªã"
+"ã¨ããæå³ã§ããããã¨ã«æ³¨æãã¦ãã ãããèªåã³ãããã¯ã SQL ã³ã³ã½ã¼ã«ã§ã¢"
+"ãããã¯ãªä½æ¥ãããéã«ä½¿ããã®ã§ãã Hibernate ã¯ç´ã¡ã«èªåã³ãããã¢ã¼ãã"
+"ç¡å¹ã«ãã¾ãããããã¯ãã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ãç¡å¹åãããã¨ãæå¾
ãã¾"
+"ããï¼ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãªãã·ã§ã³ã§ã¯ããã¾ããããã¼ã¿ãã¼ã¹ã¨"
+"ã®ãã¹ã¦ã®éä¿¡ã¯ããã¼ã¿ã®èªã¿è¾¼ã¿ã§ãã£ã¦ããæ¸ãè¾¼ã¿ã§ãã£ã¦ãããã©ã³ã¶ã¯"
+"ã·ã§ã³ã®ä¸ã§è¡ããªããã°ãªãã¾ããã説æããã¨ããã¼ã¿èªã¿è¾¼ã¿ã«å¯¾ãã¦ãèªå"
+"ã³ãããã¯é¿ããã¹ãã§ãããªããªããå¤æ°ã®å°ããªãã©ã³ã¶ã¯ã·ã§ã³ã¯ãæ確ã«å®"
+"義ãããï¼ã¤ã®ä½æ¥åä½ã¨æ¯ã¹ã¦ãããã©ã¼ãã³ã¹ããããªããã¨ã¯ããã¾ãããå¾"
+"è
ã¯ä¿å®æ§ãæ¡å¼µæ§ããããããã¦ãã¾ãã"
+
+#. 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 ""
+"ãã«ãã¦ã¼ã¶ã¼ã®ã¯ã©ã¤ã¢ã³ãï¼ãµã¼ãã¼ã¢ããªã±ã¼ã·ã§ã³ã®ä¸ã§ãæããã使ãã"
+"ããã¿ã¼ã³ã¯ã <emphasis>session-per-request</emphasis> ã§ãããã®ã¢ãã«ã®ä¸"
+"ã§ã¯ãã¯ã©ã¤ã¢ã³ãããï¼ Hibernate æ°¸ç¶å層ãåä½ããï¼ãµã¼ãã¼ã¸ãªã¯ã¨ã¹ãã"
+"éãããæ°ãã Hibernate <literal>Session</literal> ãéããã¾ããããã¦ãã"
+"ã®ä½æ¥åä½ã®ä¸ã§ãã¹ã¦ã®ãã¼ã¿ãã¼ã¹å¦çãå®è¡ããã¾ããä½æ¥ãå®äºããï¼ãã"
+"ã¦ãã¯ã©ã¤ã¢ã³ãã¸ã®ã¬ã¹ãã³ã¹ãæºåã§ããï¼æç¹ã§ã session ããã©ãã·ã¥ãã"
+"éãã¾ããã¯ã©ã¤ã¢ã³ãã®è¦æ±ãå¦çããããã«ãï¼ã¤ã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯"
+"ã·ã§ã³ã使ç¨ããã§ãããã <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 ã¯åç´ãªãã®ãã¿ã¼ã³ã®ããã«ã"
+"äºãçµã¿è¾¼ã¾ãã \"current session\" ã®ç®¡çãæä¾ãã¾ãããµã¼ãã¼ãªã¯ã¨ã¹ãã"
+"å¦çããéã¯ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããªããã°ãªãã¾ãããããã¦ãã¬ã¹ãã³ã¹ã"
+"ã¯ã©ã¤ã¢ã³ãã«éä¿¡ããåã«ãã©ã³ã¶ã¯ã·ã§ã³ãçµãããã¾ãã好ããªæ¹æ³ã§å®ç¾ã§"
+"ãã¾ããä¸è¬çãªè§£æ±ºç㯠<literal>ServletFilter</literal> ããµã¼ãã¹ã¡ã½ãã"
+"ããã¤ã³ãã«ããã㦠AOP ã¤ã³ã¿ã¼ã»ãã¿ã¼ã proxy/interception ã³ã³ããã§"
+"ãã EJB ã³ã³ãã㯠EJB ã»ãã·ã§ã³ Bean ããã©ã³ã¶ã¯ã·ã§ã³å¢çã¨ãã¦ã¢ã¹ãã¯"
+"ããã¯ãã¹ã«ããããå®è£
ã®æ¨æºçãªæ¹æ³ã§ãï¼ CMT ã«ãã宣è¨çï¼ãããã°ã©ã ã«"
+"ãããã©ã³ã¶ã¯ã·ã§ã³å¢çã使ãã¨æ±ºããå ´åãç°¡åã«ä½¿ããããäºææ§ã®ããã³ã¼"
+"ãã«ããããã«ããã®ç« ã®å¾ã®ã»ãã«ãã Hibernate <literal>Transaction</"
+"literal> API ã®ã»ããããã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Your application code can access a \"current session\" to process the "
+"request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
+"You will always get a <literal>Session</literal> scoped to the current "
+"database transaction. This has to be configured for either resource-local or "
+"JTA environments, see <xref linkend=\"architecture-current-session\" />."
+msgstr ""
+"ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã¼ãã¯ãå¿
è¦ãªã¨ãã«ã©ãã§ããä½åã§ããåã« "
+"<literal>sessionFactory.getCurrentSession()</literal> ãå¼ã³åºãã ãã§ãç¾å¨"
+"ã®ã»ãã·ã§ã³ãã«ã¢ã¯ã»ã¹ã§ãã¾ããç¾å¨ã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã¸ã® "
+"<literal>ã»ãã·ã§ã³</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>ã»ãã·ã§ã³</literal> ã¨ãã¼ã¿ãã¼"
+"ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ã³ã¼ããæ¡å¼µããã¨ä¾¿å©ãªãã¨ãããã¾ããããã¯ãè¦æ±ã®"
+"å¦çã¨æç»ã®ãã§ã¼ãºãåãã¦ãããµã¼ãã¬ããã¢ããªã±ã¼ã·ã§ã³ã«ããã¦ç¹ã«å½¹ç«"
+"ã¡ã¾ããç¬èªã®ã¤ã³ã¿ã¼ã»ãã¿ãå®è£
ããã°ããã¥ã¼ãæç»ããã¾ã§ãã¼ã¿ãã¼ã¹ã"
+"ã©ã³ã¶ã¯ã·ã§ã³ãæ¡å¼µããã®ã¯ç°¡åã§ããããããã³ã³ãã管çãã©ã³ã¶ã¯ã·ã§ã³ã® "
+"EJB ã«é ¼ãå ´åã¯ãç°¡åã«ã¯ã§ãã¾ããããªããªãããã¥ã¼ã®æç»ãéå§ããåã«ã "
+"EJB ã®ã¡ã½ããããªã¿ã¼ã³ããéã«ããã©ã³ã¶ã¯ã·ã§ã³ãå®äºããããã§ãããã® "
+"<emphasis>Open Session in View</emphasis> ãã¿ã¼ã³ã«é¢é£ãããã³ãã¨ä¾ã«ã¤ã"
+"ã¦ã¯ã Hibernate ã® Web ãµã¤ãããã©ã¼ã©ã ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr "é·ã対話"
+
+#. 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 ã¨ã¨ã³ã¿ã¼ã"
+"ã©ã¤ãºã¢ããªã±ã¼ã·ã§ã³ã§ã¯ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãã¦ã¼ã¶ã¼ã¨ã®ç¸äºä½"
+"ç¨ã«ã¾ã§æ¸¡ããã¨ã¯è¨±ããã¾ããã次ã®ä¾ãããèãã¦ã¿ã¦ãã ãã: "
+
+#. 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> ã¨ãã¼ã¿ãã¼"
+"ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®ä¸ã§ãã¼ãããããã¼ã¿ãã¦ã¼ã¶ã¼ã«è¦ãã¾ããã¦ã¼ã¶ã¼ã¯ãª"
+"ãã¸ã§ã¯ããèªç±ã«ä¿®æ£ã§ãã¾ãã"
+
+#. 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åå¾ã«ã¦ã¼ã¶ã¼ã¯ \"Save\" ãã¯ãªãã¯ããä¿®æ£ãæ°¸ç¶åãããã®ãæå¾
ãã¾ããã¾"
+"ãããã®æ
å ±ãç·¨éããã®ã¯èªåï¼äººã ãã§ãä¿®æ£ã®ã³ã³ããªã¯ãã¯çºçããªãã¨æ"
+"å¾
ãã¾ãã"
+
+#. 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> ï¼ããã"
+"ã¯ã<emphasis>ã¢ããªã±ã¼ã·ã§ã³ãã©ã³ã¶ã¯ã·ã§ã³</emphasis> ï¼ã¨å¼ã³ã¾ããã¢ã"
+"ãªã±ã¼ã·ã§ã³ã«ãããå®è£
ããæ¹æ³ã¯ããããããã¾ãã"
+
+#. 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> ã¨"
+"ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãéããã¾ã¾ã«ãã¦ãããã¨ã§ããåæã«ä¿®æ£ãã"
+"ããåé¢ã¨ååæ§ãä¿è¨¼ãããããã«ããã¼ã¿ãã¼ã¹å
ã®ããã¯ã¯ä¿æããã¾ã¾ã«ã"
+"ã¾ãããã¡ãããããã¯ã¢ã³ããã¿ã¼ã³ã§ãããªããªããããã¯ã®ç«¶åãçºçãã"
+"ã¨ãã¢ããªã±ã¼ã·ã§ã³ãåæã¦ã¼ã¶ã¼æ°ã«å¿ãã¦ã¹ã±ã¼ã«ã¢ããã§ããªããªãããã§"
+"ãã"
+
+#. 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 ã®æ©è½ã使ãã®ã§ããã°ãç¹ã«ç°¡å"
+"ã§ã:"
+
+#. 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 ã¯èªåçã«æ¥½è¦³çåæå®è¡"
+"å¶å¾¡ãã§ãã¾ããã¦ã¼ã¶ã¼ãèãã¦ããéã«åæã«ä¿®æ£ããããå ´åãèªåçã«æ¤åº"
+"ã§ãã¾ããé常ã対話ã®çµäºæã«ãã§ãã¯ããã ãã§ãã"
+
+#. 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>åé¢ï¼Detachedï¼ãªãã¸ã§ã¯ã</emphasis> - ãã§ã«è°è«ãã "
+"<emphasis>session-per-request</emphasis> ãã¿ã¼ã³ã使ãã¨æ±ºå®ããå ´åããã¼ã"
+"ããããã¹ã¦ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãã¦ã¼ã¶ã¼ãèãã¦ããéã¯ãã»ãã·ã§ã³ããåé¢ã"
+"ããç¶æ
ã«ãªãã¾ãããªãã¸ã§ã¯ããã»ãã·ã§ã³ã«å追å ããä¿®æ£ãæ°¸ç¶åã§ãã¾"
+"ããããã <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>æ¡å¼µï¼ãããã¯ãé·ãï¼ã»ãã·ã§ã³</emphasis> - Hibernate ã® "
+"<literal>Session</literal> ã¯ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãã³ãããããå¾ã"
+"è£ã§çµã³ã¤ãã¦ãã JDBC ã³ãã¯ã·ã§ã³ãåæã§ãã¾ããããã¦ãã¯ã©ã¤ã¢ã³ããã"
+"ã®æ°ããè¦æ±ãçºçããéã«ãåæ¥ç¶ã§ãã¾ãããã®ãã¿ã¼ã³ã¯ã "
+"<emphasis>session-per-conversation</emphasis> ã¨ããåã§ç¥ããã¦ããããªã"
+"ã¸ã§ã¯ããã»ãã·ã§ã³ã¸å追å ãããã¨ããä¸è¦ã«ãã¾ããèªåãã¼ã¸ã§ãã³ã°ã使"
+"ããã¨ã§ãåæã«è¡ãããä¿®æ£ãåé¢ã§ãã¾ããé常 <literal>Session</literal> "
+"ãèªåçã«ãã©ãã·ã¥ããããæ示çã«ãã©ãã·ã¥ãã¾ãã"
+
+#. 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> ã®ï¼ã¤ã¯ãå©ç¹ã¨æ¬ ç¹ãæã£ã¦ã"
+"ã¾ããããã«ã¤ãã¦ã¯ããã®ç« ã®å¾ã®ã»ãã§ã楽観çåæå®è¡å¶å¾¡ã®æèã®ä¸ã§è°è«"
+"ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr "ãªãã¸ã§ã¯ãèå¥åãèãã"
+
+#. 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> ã¤ã³ã¹ã¿"
+"ã³ã¹ãæ°¸ç¶æ§ã¯ã©ã¹ã®ï¼ã¤ã®ã¤ã³ã¹ã¿ã³ã¹ãå
±æãããã¨ã¯ã§ãã¾ãããããã«ãè"
+"å¥åã«ã¯ï¼ã¤ã®ç°ãªãæ¦å¿µãããã¨ãããã¨ã«ãªãã¾ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr "ãã¼ã¿ãã¼ã¹èå¥å"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr "JVM èå¥å"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr ""
+
+#. 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 ãä¿è¨¼ãã¾ããããããã¢ããªã±ã¼ã·ã§ã³ãï¼ã¤ã®ç°ãªãã»ãã·ã§ã³"
+"ãããåããï¼æ°¸ç¶æ§èå¥åã®ï¼ãã¸ãã¹ãªãã¸ã§ã¯ãã«åæã«ã¢ã¯ã»ã¹ããéãã"
+"ï¼ã¤ã®ã¤ã³ã¹ã¿ã³ã¹ã¯å®éã«ï¼ 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> ãã¨ã«ï¼ã¤ã®ã¹ã¬ãããè²¼ãä»ããéããã¢ããªã±ã¼"
+"ã·ã§ã³ã¯ãã¸ãã¹ãªãã¸ã§ã¯ãã synchronize ããå¿
è¦ã¯ããã¾ããã "
+"<literal>Session</literal> å
ã§ã¯ãã¢ããªã±ã¼ã·ã§ã³ã¯ãªãã¸ã§ã¯ããæ¯è¼ããã"
+"ãã«ã <literal>==</literal> ãå®å
¨ã«ä½¿ç¨ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"<literal>Session</literal> might produce unexpected results. This might "
+"occur even in some unexpected places. For example, if you put two detached "
+"instances into the same <literal>Set</literal>, both might have the same "
+"database identity (i.e., they represent the same row). JVM identity, "
+"however, is by definition not guaranteed for instances in a detached state. "
+"The developer has to override the <literal>equals()</literal> and "
+"<literal>hashCode()</literal> methods in persistent classes and implement "
+"their own notion of object equality. There is one caveat: never use the "
+"database identifier to implement equality. Use a business key that is a "
+"combination of unique, usually immutable, attributes. The database "
+"identifier will change if a transient object is made persistent. If the "
+"transient instance (usually together with detached instances) is held in a "
+"<literal>Set</literal>, changing the hashcode breaks the contract of the "
+"<literal>Set</literal>. Attributes for business keys do not have to be as "
+"stable as database primary keys; you only have to guarantee stability as "
+"long as the objects are in the same <literal>Set</literal>. See the "
+"Hibernate website for a more thorough discussion of this issue. Please note "
+"that this is not a Hibernate issue, but simply how Java object identity and "
+"equality has to be implemented."
+msgstr ""
+"ããã©ãã <literal>Session</literal> ã®å¤ã§ <literal>==</literal> ã使ãã¢ã"
+"ãªã±ã¼ã·ã§ã³ã¯ãäºæããªãçµæã«ééãã¾ããããã¯äºæããªãå ´æã§èµ·ãããã¾"
+"ããä¾ãã°ãï¼ã¤ã®åé¢ã¤ã³ã¹ã¿ã³ã¹ãåã <literal>Set</literal> ã« put ããã¨"
+"ããªã©ã§ãã両æ¹ã¨ãåããã¼ã¿ãã¼ã¹èå¥åãæã¡ã¾ãï¼ããªãã¡ãåãè¡ã表ã"
+"ã¾ãï¼ãããããåé¢ç¶æ
ã®ã¤ã³ã¹ã¿ã³ã¹ã® JVM èå¥åã¯å½ç¶ä¿è¨¼ããã¾ãããéçº"
+"è
ã¯ãæ°¸ç¶æ§ã¯ã©ã¹ã® <literal>equals()</literal> 㨠<literal>hashCode()</"
+"literal> ã¡ã½ããããªã¼ãã¼ã©ã¤ããããªãã¸ã§ã¯ãç価æ§ã®æ¦å¿µãå®è£
ãã¹ãã§"
+"ããè¦åãï¼ã¤ããã¾ããç価æ§ã®å®è£
ã«ãã¼ã¿ãã¼ã¹èå¥åã使ããªãã§ãã ã"
+"ããã¦ãã¼ã¯ãªï¼æ®éã¯ä¸å¤ã®ï¼å±æ§ã®çµã¿åããã§ãããã¸ãã¹ãã¼ã使ã£ã¦ãã "
+"ããããããä¸æãªãã¸ã§ã¯ããæ°¸ç¶åãããå ´åããã¼ã¿ãã¼ã¹èå¥åãå¤ããã¾"
+"ããä¸æãªãã¸ã§ã¯ããï¼é常åé¢ã¤ã³ã¹ã¿ã³ã¹ã¨å
±ã«ï¼ <literal>Set</literal> "
+"ã«ä¿æããå ´åãããã·ã¥ã³ã¼ããå¤ããã¨ãããã¨ã¯ã <literal>Set</literal> "
+"ã®å¥ç´ãç ´ãã¨ãããã¨ã§ãããã¸ãã¹ãã¼ã®ããã®å±æ§ã¯ããã¼ã¿ãã¼ã¹ã®ä¸»ãã¼"
+"ã»ã©å®å®ãã¹ãã§ã¯ãªãã§ãããªãã¸ã§ã¯ããåã <literal>Set</literal> ã®ä¸ã«"
+"ããéã ããå®å®ãä¿è¨¼ãã¹ãã§ãããã®åé¡ã®ããå¾¹åºçãªè°è«ã¯ã Hibernate "
+"ã® Web ãµã¤ããåç
§ãã¦ãã ãããã¾ãããã㯠Hibernate ã®åé¡ã§ã¯ãªããåã« "
+"Java ãªãã¸ã§ã¯ãã®èå¥åãç価æ§ãã©ã®ããã«å®è£
ãã¹ããã¨ãããã¨ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr "ä¸è¬çãªåé¡"
+
+#. 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> ã¢ã³ããã¿ã¼ã³ã¯ä½¿ã£ã¦ã¯ããã¾ããï¼ãã¡ãããã¾ãã«ä¾"
+"å¤ãããã¾ãï¼ã注è¨ï¼ä¸è¨ã®åé¡ã®ããã¤ãã¯ãæ¨å¥¨ããããã¿ã¼ã³ã¨ãã¦ãåºç¾"
+"ãã¾ããè¨è¨ã決å®ããåã«ãè£ã®æå³ãç解ããããã«ãã¦ãã ããã"
+
+#. 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> ã¯ã¹ã¬ããã»ã¼ãã§ã¯ããã¾ããã HTTP ãªã¯ã¨ã¹ãã"
+"ã»ãã·ã§ã³ Bean ã Swing ã¯ã¼ã«ã¼ã®ããã«ãåæå®è¡ãå¯è½ãªãã®ã "
+"<literal>Session</literal> ã¤ã³ã¹ã¿ã³ã¹ãå
±æããã¨ã競åç¶æ
ãå¼ãèµ·ããã¾"
+"ããï¼å¾ã§è°è«ããï¼ <literal>HttpSession</literal> ã®ä¸ã§ Hibernate "
+"<literal>Session</literal> ãä¿æããå ´åã HttpSession ã¸ã®ã¢ã¯ã»ã¹ãåæå"
+"ãããã¨ãèæ
®ãã¹ãã§ãããããªããã°ãã¦ã¼ã¶ã¼ãååæ©ããªãã¼ããã¯ãªãã¯"
+"ããã¨ãåæã«èµ°ãï¼ã¤ã®ã¹ã¬ããã®ä¸ã§ãåã <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> ãã¢ããªã±ã¼ã·ã§ã³ã«çµã³ä»ãããã¦ããã®ã§"
+"ããã°ãã¢ããªã±ã¼ã·ã§ã³ãåæ¢ãã¹ãã§ãããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ããã¼"
+"ã«ããã¯ãã¦ãããã¸ãã¹ãªãã¸ã§ã¯ãã¯ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããã¨ãã®ç¶æ
ã«"
+"æ»ãã¾ãããããã¯ããã¼ã¿ãã¼ã¹ã®ç¶æ
ã¨ãã¸ãã¹ãªãã¸ã§ã¯ãã¯åæãã¦ããªã"
+"ãã¨ãæå³ãã¾ããé常ããã¯åé¡ã«ãªãã¾ããããªããªããä¾å¤ã¯å復ã§ããªãã"
+"ãã§ããã¨ã«ãããã¼ã«ããã¯ããå¾ã«ããç´ãã¹ãã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Session</literal> caches every object that is in a persistent "
+"state (watched and checked for dirty state by Hibernate). If you keep it "
+"open for a long time or simply load too much data, it will grow endlessly "
+"until you get an OutOfMemoryException. One solution is to call <literal>clear"
+"()</literal> and <literal>evict()</literal> to manage the <literal>Session</"
+"literal> cache, but you should consider a Stored Procedure if you need mass "
+"data operations. Some solutions are shown in <xref linkend=\"batch\" />. "
+"Keeping a <literal>Session</literal> open for the duration of a user session "
+"also means a higher probability of stale data."
+msgstr ""
+"<literal>Session</literal> ã¯æ°¸ç¶ ï¼persistentï¼ ç¶æ
ã®ãã¹ã¦ã®ãªãã¸ã§ã¯ãã"
+"ãã£ãã·ã¥ãã¾ãï¼ Hibernate ã¯ç£è¦ãããã¼ãã£ç¶æ
ããã§ãã¯ãã¾ãï¼ããã"
+"ã¯ãé·ãéã»ãã·ã§ã³ãéããã¾ã¾ã«ããããé常ã«å¤ãã®ãã¼ã¿ããã¼ããç¶ãã"
+"ãããå ´åã¯ã OutOfMemoryException ãçºçããã¾ã§ç¡éã«å¤§ãããªããã¨ãæå³"
+"ãã¾ãã解決çã®ï¼ã¤ã¯ã<literal>Session</literal> ãã£ãã·ã¥ã管çãããã"
+"ã«ã <literal>clear()</literal> ã <literal>evict()</literal> ãå¼ã¶ãã¨ã§"
+"ãããããã大ããªãã¼ã¿ãå¦çããå¿
è¦ããããªãããã¶ãã¹ãã¢ãããã·ã¼ã¸ã£"
+"ãèæ
®ããã¹ãã§ããããããã¤ãã®è§£æ±ºçã¯ã <xref linkend=\"batch\"/> ã§ç´¹ä»"
+"ããã¦ãã¾ããã¦ã¼ã¶ã¼ã»ãã·ã§ã³ã®éã <literal>Session</literal> ãéããã¾"
+"ã¾ã«ããã¨ãããã¨ã¯ããã¼ã¿ãæ°é®®ã§ãªããªã確çãé«ããªããã¨ãæå³ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr "ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³å¢ç"
+
+#. 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 ""
+"ãã¼ã¿ãã¼ã¹ ï¼ãããã¯ã·ã¹ãã ï¼ ãã©ã³ã¶ã¯ã·ã§ã³ã®å¢çã¯ã常ã«å¿
è¦ã§ãã"
+"ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®å¤ã§ããã¼ã¿ãã¼ã¹ã¨ã®éä¿¡ã¯èµ·ãã¾ãã ï¼ããã¯"
+"èªåã³ãããã¢ã¼ãã«æ
£ãã¦ããå¤ãã®éçºè
ãæ··ä¹±ãããããããã¾ããï¼ ãèªã¿"
+"è¾¼ãã ãã®æä½ã«ã§ãããã¤ãæ確ãªãã©ã³ã¶ã¯ã·ã§ã³å¢çã使ç¨ãã¦ãã ãããå"
+"é¢ã¬ãã«ã¨ãã¼ã¿ãã¼ã¹ã®è½å次第ã§ãããã¯å¿
è¦ãªãããããã¾ãããã常ã«ãã©"
+"ã³ã¶ã¯ã·ã§ã³å¢çãæ示çã«æå®ãã¦ãããã¤ãã¹é¢ã¯å
¨ãããã¾ããã確ãã«ãï¼"
+"ã¤ã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã¯å¤æ°ã®å°ããªãã©ã³ã¶ã¯ã·ã§ã³ãã ï¼ãã¼ã¿ã®"
+"èªã¿è¾¼ã¿ã§ãã£ã¦ãï¼ ããã©ã¼ãã³ã¹ããããã¦ãã¾ãã"
+
+#. 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 ""
+"J2EE ç°å¢ã«ç®¡çããã¦ããªãç¶æ
ï¼ããªãã¡ãã¹ã¿ã³ãã¢ãã³ãåç´ãª Web ã "
+"Swing ã¢ããªã±ã¼ã·ã§ã³ï¼ã§ãã管çãããç¶æ
ã§ãã Hibernate ã¢ããªã±ã¼ã·ã§ã³"
+"ãå®è¡ã§ãã¾ãã管çããã¦ããªãç°å¢ã§ã¯ã Hiberante ããã¼ã¿ãã¼ã¹ã®ã³ãã¯"
+"ã·ã§ã³ãã¼ã«ãæä¾ãã¾ããã¢ããªã±ã¼ã·ã§ã³éçºè
ã¯ããã©ã³ã¶ã¯ã·ã§ã³å¢çãæ"
+"åã§è¨å®ããªããã°ãªãã¾ãããè¨ãæããã¨ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®é"
+"å§ãã³ãããããã¼ã«ããã¯ãéçºè
èªèº«ãè¨å®ããå¿
è¦ãããã¨ãããã¨ã§ããé"
+"常ã管çãããç°å¢ã§ã¯ãã³ã³ãã管çã«ãããã©ã³ã¶ã¯ã·ã§ã³ ï¼CMTï¼ ãæä¾ãã"
+"ã¾ããä¾ãã°ãã»ãã·ã§ã³ Bean ã®ãããã¤ã¡ã³ããã£ã¹ã¯ãªãã¿ã§å®£è¨çã«å®ç¾©"
+"ãããã©ã³ã¶ã¯ã·ã§ã³ãçµã¿ç«ã¦ã¾ããããã°ã©ã ã«ãããã©ã³ã¶ã¯ã·ã§ã³å¢çã¯ã"
+"ãå¿
è¦ããã¾ããã"
+
+#. 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 ã«ä¾åããã·ã¹ã"
+"ã ï¼CMT ã§ã¯ãªã BMTï¼ ã®ä¸¡æ¹ã«ãæ°¸ç¶å層ããã¼ã¿ãã«ã«ä¿ã¤ã®ã¯ããã°ãã°æ"
+"ã¾ãããã¨ã§ãããããã¤ç°å¢ã®ãã¤ãã£ãã®ãã©ã³ã¶ã¯ã·ã§ã³ã·ã¹ãã ãå¼ã³åºã "
+"<literal>Transaction</literal> ã¨ããã©ããã¼ API ã Hibernate ãæä¾ãã¾ãã"
+"ãã® API ã使ããã¯ä»»æã§ããã CMT ã®ã»ãã·ã§ã³ Bean ã使ããªãã®ã§ããã°ã"
+"使ããã¨ãå¼·ãæ¨å¥¨ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr ""
+"é常ã <literal>Session</literal> çµäºã¯ãï¼ã¤ã®ç°ãªããã§ã¼ãºãå«ã¿ã¾ã:"
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr "ã»ãã·ã§ã³ã®ãã©ãã·ã¥"
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr "ãã©ã³ã¶ã¯ã·ã§ã³ã®ã³ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr "ã»ãã·ã§ã³ã®ã¯ãã¼ãº"
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr "ä¾å¤ã®ãã³ããªã³ã°"
+
+#. 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 ""
+"ã»ãã·ã§ã³ã®ãã©ãã·ã¥ã«ã¤ãã¦ã¯ãåã®æ¹ã§æ¢ã«è°è«ãã¾ããã管çãããç°å¢ã¨"
+"管çããã¦ããªãç°å¢ã®ä¸¡æ¹ã«ã¤ãã¦ããã©ã³ã¶ã¯ã·ã§ã³å¢çã¨ä¾å¤ãã³ããªã³ã°ã"
+"ãã£ã¨è©³ããè¦ã¦ããã¾ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr "管çããã¦ããªãç°å¢"
+
+#. 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 ""
+"Hibernate æ°¸ç¶å層ã管çããã¦ããªãç°å¢ã§å®è£
ããå ´åã¯ãé常åç´ãªã³ãã¯"
+"ã·ã§ã³ãã¼ã« ï¼ããªãã¡ DataSource ã§ã¯ãªãï¼ ã«ãã£ã¦ããã¼ã¿ãã¼ã¹ã³ãã¯"
+"ã·ã§ã³ãå¶å¾¡ãã¾ãã Hibernate ã¯ãã®ã³ãã¯ã·ã§ã³ãã¼ã«ããå¿
è¦ãªã³ãã¯ã·ã§ã³"
+"ãåå¾ãã¾ããã»ãã·ã§ã³ï¼ãã©ã³ã¶ã¯ã·ã§ã³å¶å¾¡ã®ã¤ãã£ãªã ã¯æ¬¡ã®ããã«ãªãã¾"
+"ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You do not have to <literal>flush()</literal> the <literal>Session</literal> "
+"explicitly: the call to <literal>commit()</literal> automatically triggers "
+"the synchronization depending on the <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> for the session. A call to <literal>close()</literal> "
+"marks the end of a session. The main implication of <literal>close()</"
+"literal> is that the JDBC connection will be relinquished by the session. "
+"This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+"æ示çã« <literal>Session</literal> ã® <literal>flush()</literal> ãå¼ã³åºã"
+"ã¹ãã§ã¯ãªãã <literal>commit()</literal> ãå¼ã³åºããã¨ã«ãããèªåçã«åæ"
+"åå¦çãå®è¡ããã¾ã ï¼ã»ãã·ã§ã³ã® <xref linkend=\"objectstate-flushing\"/> "
+"FlushMode ã«ä¾åãã¦ããï¼ã <literal>close()</literal> ãå¼ã³åºããã¨ã«ã"
+"ããã»ãã·ã§ã³ã®çµãããæ確ã«ãã¾ãã <literal>close()</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"
+"\" ã³ã³ããã¹ã管çã§ããè¨èã§èª¬æããããä¸è¨ãè¦ãã»ããéãã§ãããã"
+
+#. 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> ã«ã¢ã¯ã»ã¹ãããã¨ã ãã§ããä¾å¤å¦çã¯ãã"
+"ã®ç« ã®å¾ã®ã»ãã§è°è«ãã¾ãã"
+
+#. 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> ãé¸æããã¹ãã§ãã第2ã®ç¨ä¾ã¨ãã¦ã¯ã "
+"<literal>hibernate.current_session_context_class</literal> ã <literal>"
+"\"thread\"</literal> ã¨ããã¨ããã§ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr "JTA ã使ç¨ãã"
+
+#. 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 ã»ãã·ã§ã³ Bean ã®èå¾ï¼ ã§"
+"å®è¡ããå ´åã Hibernate ããåå¾ãããã¹ã¦ã®ãã¼ã¿ã½ã¼ã¹ã³ãã¯ã·ã§ã³ã¯ãèªå"
+"çã«ã°ãã¼ãã« JTA ãã©ã³ã¶ã¯ã·ã§ã³ã®ä¸é¨ã«ãªãã¾ãã EJB ã使ããã«ãã¹ã¿ã³"
+"ãã¢ãã³ã® JTA å®è£
ãå°å
¥ãããã¨ãã§ãã¾ãã JTA çµ±åã®ããã«ã Hibernate ã¯"
+"ï¼ã¤ã®æ¦ç¥ãæä¾ãã¾ãã"
+
+#. 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ï¼ã使ãã <literal>Transaction</literal> API "
+"ã使ãå ´åã Hibernate ã¯ã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã« 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 ãç´æ¥ä½¿ç¨ãã¹ãã§ãã"
+"ãã"
+
+#. 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 ã§ã¯ããã©ã³ã¶ã¯ã·ã§ã³å¢çãã»ãã·ã§ã³ 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 ã®ä¸ã§ã¯ã常ã«ãã¼ã«ããã¯ãèªåçã«å®æ½ããã¾ãããªããªããã»ãã·ã§"
+"ã³ Bean ã®ã¡ã½ããã«ããæããããå¶å¾¡ããã¦ããªã "
+"<literal>RuntimeException</literal> ã¯ãã°ãã¼ãã«ãã©ã³ã¶ã¯ã·ã§ã³ããã¼ã«"
+"ããã¯ããããã«ã³ã³ããã«ä¼ããããã§ãã <emphasis>ããã¯ã BMT ããã㯠"
+"CMT ã¨ä¸ç·ã« Hibernate <literal>Transaction</literal> API ã使ãå¿
è¦ã¯ã¾ã£ã"
+"ããªãã¨ãããã¨ãæå³ãããã©ã³ã¶ã¯ã·ã§ã³ã«ãã¤ã³ããããç¾å¨ã®ãã»ãã·ã§ã³"
+"ãèªåä¼æ¬ã§ãã¾ãã</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 ã®ãã©ã³ã¶ã¯ã·ã§ã³ãã¡ã¯ããªãè¨å®ããéã«ã JTA ãç´æ¥ä½¿ã ï¼BMT"
+"ã®ï¼ å ´å㯠<literal>org.hibernate.transaction.JTATransactionFactory</"
+"literal> ãã CMT ã»ãã·ã§ã³ 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 ä»æ§ã®æããªå¶"
+"ç´ã®ããã«ã <literal>scroll()</literal> ã¾ã㯠<literal>iterate()</literal> "
+"ãè¿ãããéãããã¦ããªã <literal>ScrollableResults</literal> ã¾ã㯠"
+"<literal>Iterator</literal> ã¤ã³ã¹ã¿ã³ã¹ã Hibernate ãèªåçã«ã¯ãªã¼ã³ã¢ãã"
+"ãããã¨ã¯ã§ãã¾ããã <literal>finally</literal> ãããã¯ã®ä¸ã§ã "
+"<literal>ScrollableResults.close()</literal> ã¾ã㯠<literal>Hibernate.close"
+"(Iterator)</literal> ãæ示çã«å¼ã³åºãã¦ãè£ã«æ½ãã ãã¼ã¿ãã¼ã¹ã«ã¼ã½ã«ã解"
+"æ¾ <emphasis>ããªããã°ãªãã¾ãã</emphasis>ã ï¼ãã¡ãããå¤ãã®ã¢ããªã±ã¼"
+"ã·ã§ã³ã§ã¯ã JTA ã CMT ã³ã¼ã㧠<literal>scroll()</literal> ã "
+"<literal>iterate()</literal> ã®ä½¿ç¨ãé¿ããã®ã¯å®¹æã§ããï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr "ä¾å¤ãã³ããªã³ã°"
+
+#. 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> ã®ããã¤ãã®ã¡ã½ããã¯ã"
+"ã»ãã·ã§ã³ã®ç¶æ
ã <emphasis>çç¾ããã¾ã¾</emphasis> ã«ãã¾ãã 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> 以å¤ã®æ¤æ»ãããªãä¾å¤ãæãããã¨ã«æ³¨"
+"æãã¦ãã ãããããããã¾ããå復ä¸å¯è½ã§ãããé©åãªå¦çãå®æ½ãã¹ãã§ãã"
+
+#. 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> ã <literal>JDBCException</literal> ã§ã©ãããã¾ããå®ã¯ãä¾å¤ããã"
+"æå³ã®ãã <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> ã¯è¨å®ããã¦ãã SQL "
+"æ¹è¨ã«ããå®ç¾©ããã¾ããä¸æ¹ã§ãç¬èªã®å®è£
ã«å·®ãæ¿ãããã¨ãã§ãã¾ã ï¼è©³ç´°"
+"ã¯ã <literal>SQLExceptionConverterFactory</literal> ã¯ã©ã¹ã® Javadoc ãåç
§"
+"ãã¦ãã ããï¼ãæ¨æºç㪠<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 éä¿¡ã®ã¨ã©ã¼ã表"
+"ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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> - ä½ããã®å½¢å¼ã®å®å
¨æ§å¶ç´é"
+"åã表ãã¾ãã"
+
+#. 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> - è¦æ±ãããæä½ãå®æ½ããã®ã«å¿
"
+"è¦ãªããã¯ã¬ãã«ãå¾ãéã®ã¨ã©ã¼ã表ãã¾ãã"
+
+#. 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> - ä»ã®ã«ãã´ãªã«ä¸è´ããªãã£ãä¸è¬ç"
+"ãªä¾å¤ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr "ãã©ã³ã¶ã¯ã·ã§ã³ã®ã¿ã¤ã ã¢ã¦ã"
+
+#. 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 ã¯ãã®æ©è½ããã«ã«æä¾ã§ãã¾ãããããããªã"
+"ãã Hibernate ã¯æ¬¡ã®ãããªãã¼ã¿ã¢ã¯ã»ã¹æä½ã®å¶å¾¡ãããã¯ã§ãã¾ãããã¼ã¿"
+"ãã¼ã¹ã¬ãã«ã®ãããããã¯ã大ããªãªã¶ã«ãã»ãããè¿ãã¯ã¨ãªãå®ç¾©ãããã¿ã¤"
+"ã ã¢ã¦ãã«ãã£ã¦ç¢ºå®ã«å¶éãã¾ãã管çãããç°å¢ã§ã¯ã 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 ""
+"CMT Bean ã®ä¸ã§ã¯ <literal>setTimeout()</literal> ãå¼ã³åºããªããã¨ã«æ³¨æã"
+"ã¦ãã ããããã©ã³ã¶ã¯ã·ã§ã³ã¿ã¤ã ã¢ã¦ãã¯å®£è¨çã«å®ç¾©ãããã¹ãã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr "楽観çåæå®è¡å¶å¾¡"
+
+#. 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 ã¯ã楽観çåæå®è¡ãè¡ãã¢ããªã±ã¼ã·ã§"
+"ã³ã³ã¼ããæ¸ãããã®ã¢ããã¼ããï¼ã¤æä¾ãã¾ããç§ãã¡ãè¦ããã¦ã¼ã¹ã±ã¼ã¹"
+"ã¯ãé·ã対話ãæã¡ã¾ããããã¼ã¸ã§ã³ãã§ãã¯ã¯ã¾ã ï¼ã¤ã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶"
+"ã¯ã·ã§ã³ã®ä¸ã§æ´æ°ã失ããã¨ãé²ãå©ç¹ãæã£ã¦ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr "ã¢ããªã±ã¼ã·ã§ã³ã«ãããã¼ã¸ã§ã³ãã§ãã¯"
+
+#. 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> ã®ä¸ã§èµ·ããã¾ããéçºè
"
+"ã¯ããã¹ã¦ã®æ°¸ç¶æ§ã¤ã³ã¹ã¿ã³ã¹ãæä½ããåã«ããã¼ã¿ãã¼ã¹ããåèªã¿è¾¼ã¿ãã"
+"責åãããã¾ãããã®ã¢ããã¼ãã§ã¯ã対話ãã©ã³ã¶ã¯ã·ã§ã³ã®åé¢ãå®ãããã«ã"
+"ã¢ããªã±ã¼ã·ã§ã³èªèº«ããã¼ã¸ã§ã³ãã§ãã¯ãè¡ãå¿
è¦ãããã¾ãããã®ã¢ããã¼ã"
+"ã¯ããã¼ã¿ãã¼ã¹ã¢ã¯ã»ã¹ã®ä¸ã§ã¯ãæãéå¹çã§ããã¨ã³ãã£ã㣠EJB ã¨æãä¼¼ã¦"
+"ããã¢ããã¼ãã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal><"
+"version></literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"<literal><version></literal> ã使ã£ã¦ã <literal>version</literal> ãã"
+"ããã£ããããã³ã°ãã¾ãã Hibernate ã¯ãã¨ã³ãã£ãã£ããã¼ãã£ã§ããå ´åãã"
+"ã©ãã·ã¥ãããã®éã« <literal>version</literal> ããããã£ãèªåçã«ã¤ã³ã¯ãª"
+"ã¡ã³ããã¾ãã"
+
+#. 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> ãããã©"
+"ã«ãã®æ¦ç¥ã§ãããããã®ã¢ããã¼ãã¯ãã¢ããªã±ã¼ã·ã§ã³ã®ã¦ã¼ã¶ã¼ãæ··ä¹±ããã"
+"ãããããªããã¨ãå¿ã«çãã¦ç½®ãã¦ãã ãããããã¯ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã競åã"
+"ãå¤æ´ããã¼ã¸ããæ©ä¼ããªãã¾ã¾ãæ´æ°ã失ãå¯è½æ§ãããããã§ãã"
+
+#. 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> ãåé¢ãããã¤ã³ã¹ã¿ã³ã¹ãèªåçã«ãã¼ã¸ã§ã³ãã§ãã¯ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr "æ¡å¼µã»ãã·ã§ã³ã¨èªåãã¼ã¸ã§ãã³ã°"
+
+#. 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 ã¯ãã©ãã·ã¥ããéã«ãã¤ã³ã¹ã¿ã³ã¹ã®ãã¼ã¸ã§ã³ããã§ãã¯ã"
+"ã¾ããåæã«ä¿®æ£ããããã¨ãæ¤åºããã¨ãä¾å¤ãæãã¾ãããã®ä¾å¤ããã£ããã"
+"ã¦æ±ãã®ã¯ãéçºè
ã®è²¬ä»»ã§ã ï¼ä¸è¬çãªé¸æè¢ã¯ãå¤æ´ããã¼ã¸ãããå¤ããªã"
+"ãã¼ã¿ã§ãã¸ãã¹å¯¾è©±ãåã¹ã¿ã¼ãããæ©ä¼ãã¦ã¼ã¶ã¼ã«æä¾ãããã¨ã§ãï¼ã"
+
+#. 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 ã³ãã¯ã·ã§ã³ããåãé¢ãã¾ãããã®ã¢ããã¼ãã¯ããã¼ã¿ãã¼ã¹ã¢ã¯ã»ã¹ã®ä¸"
+"ã§ã¯ãæãå¹ççã§ããã¢ããªã±ã¼ã·ã§ã³ã¯ããã¼ã¸ã§ã³ãã§ãã¯ãåé¢ãããã¤ã³"
+"ã¹ã¿ã³ã¹ãå追å ãããã¨ã«é¢å¿ãæã¤å¿
è¦ã¯ããã¾ãããã¾ãããããããã¼ã¿"
+"ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®ä¸ã§ã¤ã³ã¹ã¿ã³ã¹ãåèªã¿è¾¼ã¿ããå¿
è¦ã¯ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>foo</literal> object knows which <literal>Session</literal> it "
+"was loaded in. Beginning a new database transaction on an old session "
+"obtains a new connection and resumes the session. Committing a database "
+"transaction disconnects a session from the JDBC connection and returns the "
+"connection to the pool. After reconnection, to force a version check on data "
+"you are not updating, you can call <literal>Session.lock()</literal> with "
+"<literal>LockMode.READ</literal> on any objects that might have been updated "
+"by another transaction. You do not need to lock any data that you "
+"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
+"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
+"last database transaction cycle is allowed to actually persist all "
+"modifications made in this conversation. Only this last database transaction "
+"will include the <literal>flush()</literal> operation, and then "
+"<literal>close()</literal> the session to end the conversation."
+msgstr ""
+"<literal>foo</literal> ãªãã¸ã§ã¯ãã¯ãèªåããã¼ããã <literal>Session</"
+"literal> ãã¾ã ç¥ã£ã¦ãã¾ããå¤ãã»ãã·ã§ã³ã®ä¸ã§æ°ãããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯"
+"ã·ã§ã³ãéå§ãããã¨ã§ãæ°ããã³ãã¯ã·ã§ã³ãåå¾ãããã®ã»ãã·ã§ã³ãåéãã"
+"ã¾ãããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ãã³ããããããã¨ã§ãã»ãã·ã§ã³ãã JDBC "
+"ã³ãã¯ã·ã§ã³ãåæããã³ãã¯ã·ã§ã³ããã¼ã«ã«è¿ãã¾ããåæ¥ç¶ããå¾ãæ´æ°ãã¦"
+"ããªããã¼ã¿ã®ãã¼ã¸ã§ã³ãã§ãã¯ãå¼·å¶ããããã«ãä»ã®ãã©ã³ã¶ã¯ã·ã§ã³ã«ãã"
+"æ´æ°ããã¦ãããããããªããªãã¸ã§ã¯ãã«é¢ãã¦ã <literal>LockMode.READ</"
+"literal> ãã¤ã㦠<literal>Session.lock()</literal> ãå¼ã³åºããã¨ãã§ãã¾"
+"ããæ´æ°ã㦠<emphasis>ãã</emphasis> ãã¼ã¿ãããã¯ããå¿
è¦ã¯ããã¾ãããé"
+"常ãæ¡å¼µ <literal>Session</literal> ã« <literal>FlushMode.MANUAL</literal> ã"
+"ã»ãããã¾ããæå¾ã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®å¨æã§ã®ã¿ã対話ã®ä¸ã§å¤æ´"
+"ããããã¹ã¦ãå®éã«æ°¸ç¶åãããããã§ããããã«ãæå¾ã®ãã¼ã¿ãã¼ã¹ãã©ã³ã¶"
+"ã¯ã·ã§ã³ã®ã¿ <literal>flush()</literal> ãªãã¬ã¼ã·ã§ã³ãå«ã¿ã¾ããããã¦ã対"
+"話ãçµããããããã«ãã»ãã·ã§ã³ã <literal>close()</literal> ãã¾ãã"
+
+#. 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> 㯠ï¼å¼·å¶çã«ï¼ ï¼æ¬¡ãã£ãã·ã¥ã§ãããããã¼ããã"
+"ãªãã¸ã§ã¯ãããã¹ã¦ä¿æãã¾ããããããããªã¯ã¨ã¹ãï¼ã¬ã¹ãã³ã¹ã®ãµã¤ã¯ã«ã"
+"æ°åã§ããã°ããã®æ¦ç¥ã使ãã¾ããï¼ã¤ã®å¯¾è©±ã®ããã ãã« <literal>Session</"
+"literal> ã使ãã¹ãã§ãããªããªããããã«æ°é®®ã§ãªããã¼ã¿ãæã¤ããã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注è¨"
+
+#. 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> ã®åæã¨"
+"åæ¥ç¶ãå¿
è¦ã ã£ããã¨ã«æ³¨æãã¦ãã ããããããã®ã¡ã½ããã¯éæ¨å¥¨ã«ãªãã¾ã"
+"ãããªããªãããã©ã³ã¶ã¯ã·ã§ã³ã®éå§ã¨çµäºã¯åãå¹æãããããã§ãã"
+
+#. 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> ãæ°¸ç¶å層ã®è¿ãã§ä¿æãã¹ãã§ãããã¨ã«"
+"注æãã¦ãã ãããè¨ãæããã¨ãï¼å±¤ç°å¢ã®ä¸ã§ <literal>Session</literal> ã"
+"ä¿æããããã«ã EJB ã¹ãã¼ããã«ã»ãã·ã§ã³ Bean ã使ã£ã¦ãã ããã "
+"<literal>HttpSession</literal> ã«æ ¼ç´ããããã«ã Web 層ã«è»¢éããªãã§ãã ã"
+"ã ï¼å¥ã®å±¤ã¸ã®ã·ãªã¢ã©ã¤ãºãããªãã§ãã ããï¼ã"
+
+#. 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 ""
+"æ¡å¼µã»ãã·ã§ã³ãã¿ã¼ã³ ï¼ãããã¯ã <emphasis>session-per-conversation</"
+"emphasis> ï¼ ã¯ãèªåçãªã«ã¬ã³ãã»ãã·ã§ã³ã³ã³ããã¹ã管çãå®æ½ããããé£ã"
+"ãããã®ããã«ãããªã㯠<literal>CurrentSessionContext</literal> ã®å®è£
ãä¾"
+"給ããå¿
è¦ãããã¾ãã Hibernate Wiki ã«ããä¾ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr "ãã¿ããããããªãã¸ã§ã¯ãã¨èªåãã¼ã¸ã§ãã³ã°"
+
+#. 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> ã使ã£ã¦ããããã®ã¤ã³ã¹ã¿"
+"ã³ã¹ãå追å ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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>update()</"
+"literal> ã®ä»£ããã«ã <literal>LockMode.READ</literal> ã使ã£ã¦ã "
+"<literal>lock()</literal> ãå¼ã³åºããã¨ãã§ãã¾ã ï¼ãã¹ã¦ã®ãã£ãã·ã¥ãè¿å"
+"ãããã¼ã¸ã§ã³ãã§ãã¯ãå®æ½ãã¾ãï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr "èªåãã¼ã¸ã§ãã³ã°ã®ã«ã¹ã¿ãã¤ãº"
+
+#. 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> ãè¨å®ãããã¨ã«ãããç¹å®ã®ããããã£ãã³ã¬ã¯ã·ã§ã³ã®ããã«èªåãã¼"
+"ã¸ã§ã³ã¤ã³ã¯ãªã¡ã³ããç¡å¹ã«ã§ãã¾ããããããã£ããã¼ãã£ã§ãã£ã¦ãããã¼"
+"ã¸ã§ã³ãã¤ã³ã¯ãªã¡ã³ããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Legacy database schemas are often static and cannot be modified. Or, other "
+"applications might access the same database and will not know how to handle "
+"version numbers or even timestamps. In both cases, versioning cannot rely on "
+"a particular column in a table. To force a version check with a comparison "
+"of the state of all fields in a row but without a version or timestamp "
+"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal><class></literal> mapping. This conceptually only works if "
+"Hibernate can compare the old and the new state (i.e., if you use a single "
+"long <literal>Session</literal> and not session-per-request-with-detached-"
+"objects)."
+msgstr ""
+"ã¬ã¬ã·ã¼ã®ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã¯ããã°ãã°åºå®çã§ãããå¤æ´ã§ãã¾ãããã¾ã"
+"ã¯ãä»ã®ã¢ããªã±ã¼ã·ã§ã³ãåããã¼ã¿ãã¼ã¹ã«ã¢ã¯ã»ã¹ããªããã°ãªããããã®ã¢"
+"ããªã±ã¼ã·ã§ã³ã¯ãã¼ã¸ã§ã³çªå·ãã¿ã¤ã ã¹ã¿ã³ãããæä½ããæ¹æ³ãç¥ãã¾ããã"
+"ã©ã¡ãã®å ´åãããã¼ãã«ã®ç¹å®ã®ã«ã©ã ãå½ã¦ã«ãã¦ããã¼ã¸ã§ãã³ã°ãè¡ãã¾ã"
+"ãããã¼ã¸ã§ã³ãã¿ã¤ã ã¹ã¿ã³ãã®ããããã£ããããã³ã°ããã«ããã¼ã¸ã§ã³"
+"ãã§ãã¯ãããããã«ã <literal><class></literal> ãããã³ã°ã« "
+"<literal>optimistic-lock=\"all\"</literal> ãæå®ãã¦ãã ãããè¡ã®ãã¹ã¦ã®"
+"ãã£ã¼ã«ãã®ç¶æ
ãæ¯è¼ããããã«ãªãã¾ããããã¯ã Hibernate ãå¤ãç¶æ
ã¨æ°ã"
+"ãç¶æ
ãæ¯è¼ã§ããå ´åã«ãçè«çã«åä½ããã ãã§ãããã¨ã«æ³¨æãã¦ãã ããã"
+"ä¾ãã°ã session-per-request-with-detached-objects ã§ã¯ãªããï¼ã¤ã®é·ã "
+"<literal>Session</literal> ã使ãå ´åã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Concurrent modification can be permitted in instances where the changes that "
+"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
+"\"</literal> when mapping the <literal><class></literal>, Hibernate "
+"will only compare dirty fields during flush."
+msgstr ""
+"ã¨ãã©ããè¡ãããå¤æ´ãéãªããªãéããåæã«è¡ãããå¤æ´ãåãå
¥ãããã¨ã"
+"ã§ãã¾ãã <literal><class></literal> ãããã³ã°ã« <literal>optimistic-"
+"lock=\"dirty\"</literal> ãè¨å®ããå ´åããã©ãã·ã¥ããéã«ã Hibernate ã¯"
+"ãã¼ãã£ãã£ã¼ã«ãã®ã¿ãæ¯è¼ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with a full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate may execute unnecessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal><class></literal> mapping, forcing Hibernate "
+"to <literal>SELECT</literal> the instance to ensure that changes did occur "
+"before updating the row."
+msgstr ""
+"å°ç¨ã®ãã¼ã¸ã§ã³ï¼ã¿ã¤ã ã¹ã¿ã³ãã®ã«ã©ã ã使ãå ´åããããã¯ãã¹ã¦ï¼ãã¼ãã£"
+"ã®ãã£ã¼ã«ããæ¯è¼ããå ´åã©ã¡ãã§ãã£ã¦ãã Hibernate ã¯ã¨ã³ãã£ãã£ãã¨ã«1"
+"ã¤ã® <literal>UPDATE</literal> æã ï¼é©å㪠<literal>WHERE</literal> ç¯ã¨å
±"
+"ã«ï¼ 使ãããã¼ã¸ã§ã³ãã§ãã¯ã¨æ
å ±ã®æ´æ°ãè¡ãã¾ããé¢é£ããã¨ã³ãã£ãã£ã®å"
+"追å ãã«ã¹ã±ã¼ãããããã«ãé£éçãªæ°¸ç¶åã使ç¨ããå ´åãä¸å¿
è¦ãªæ´æ°ãå®è¡"
+"ããããããã¾ãããããã¯é常åé¡ã«ãªãã¾ãããããããåé¢ããã¤ã³ã¹ã¿ã³ã¹"
+"ãå¤æ´ãã¦ããªãã¨ãããã¼ã¿ãã¼ã¹ã® <emphasis>on update</emphasis> ããªã¬ã¼"
+"ãå®è¡ãããããããã¾ããã <literal><class></literal> ãããã³ã°ã« "
+"<literal>select-before-update=\"true\"</literal> ãè¨å®ãããã¨ã«ãã£ã¦ããã®"
+"æ¯ãèããã«ã¹ã¿ãã¤ãºã§ãã¾ãã確å®ã«å¤æ´ããããã確èªããããã«ãè¡ãæ´æ°"
+"ããåã«ãå¿
ãã¤ã³ã¹ã¿ã³ã¹ã <literal>SELECT</literal> ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Pessimistic locking"
+msgstr "æ²è¦³çããã¯"
+
+#. 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 ã³ãã¯ã·ã§ã³ã«åé¢ã¬ãã«ãæå®ããåã«ãã¼ã¿ãã¼ã¹ã«ãã¹ã¦ã®ä»äºã"
+"ãããã°ååã§ããããããªãããé«åº¦ãªã¦ã¼ã¶ã¼ã¯ãæä»çãªæ²è¦³çããã¯ãç²å¾"
+"ãããã¨ããæ°ãããã©ã³ã¶ã¯ã·ã§ã³ãéå§ãããéã«ããã¯ãåç²å¾ãããã¨ãã¨"
+"ãã©ãæãããããã¾ããã"
+
+#. Tag: para
+#, no-c-format
+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 ãç²å¾ã§ããç°ãªãããã¯ã¬ã"
+"ã«ãå®ç¾©ãã¾ãã以ä¸ã®ä»çµã¿ã«ãããããã¯ãç²å¾ã§ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"<literal>LockMode.WRITE</literal> ã¯ã Hibernate ãè¡ãæ´æ°ãããã¯æ¿å
¥ããé"
+"ã«èªåçã«å¾ããã¾ãã"
+
+#. 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 ""
+"<literal>LockMode.UPGRADE</literal> ã¯ããã¼ã¿ãã¼ã¹ã§ãµãã¼ãããã¦ããææ³ "
+"<literal>SELECT ... FOR UPDATE</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 ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> ã¯ã Oracle 㧠"
+"<literal>SELECT ... FOR UPDATE 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 ""
+"<literal>LockMode.READ</literal> ã¯ã Repeatable Read ããã㯠Serializable "
+"ã®åé¢ã¬ãã«ã§ããã¼ã¿ãèªãã éã«èªåçã«å¾ããã¾ãããããããæ示çãªã¦ã¼"
+"ã¶ã¼è¦æ±ã«ãããååå¾ããã¾ãã"
+
+#. 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> ã®çµããã«ããã¹ã¦ã®ãªãã¸ã§ã¯ãã¯ãã®ããã¯"
+"ã¢ã¼ãã«åãæ¿ããã¾ãã <literal>update()</literal> ã <literal>saveOrUpdate"
+"()</literal> ãå¼ã³åºããã¨ã«ãã£ã¦ãã»ãã·ã§ã³ã«é¢é£ä»ãããããªãã¸ã§ã¯ã"
+"ãããã®ããã¯ã¢ã¼ãã§åºçºãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+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>LockMode</literal> ãæå®ãã <literal>Session.load()</literal> ã®å¼"
+"ã³åºãã"
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr "<literal>Session.lock()</literal> ã®å¼ã³åºãã"
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr "<literal>Query.setLockMode()</literal> ã®å¼ã³åºãã"
+
+#. 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> ãå¼ã³åºããããã¤è¦æ±ããããªãã¸ã§"
+"ã¯ããã»ãã·ã§ã³ã«ãã£ã¦ã¾ã ãã¼ãããã¦ããªãã£ãå ´åã¯ã "
+"<literal>SELECT ... FOR UPDATE</literal> ã使ã£ã¦ããªãã¸ã§ã¯ãããã¼ãããã¾"
+"ãã <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> ã使ããã¾ããï¼"
+
+#. 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 ã¯"
+"ï¼ä¾å¤ãæãã代ããã«ãï¼é©åãªä»£ããã®ã¢ã¼ãã使ãã¾ããããã¯ãã¢ããªã±ã¼"
+"ã·ã§ã³ããã¼ã¿ãã«ã§ãããã¨ãä¿è¨¼ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Connection release modes"
+msgstr "ã³ãã¯ã·ã§ã³éæ¾ã¢ã¼ã"
+
+#. 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 ã®ã¬ã¬ã·ã¼ï¼2.xï¼ã® JDBC ã³ãã¯ã·ã§ã³ç®¡çã«é¢ããæ¯ãèãã¯ãæåã«"
+"å¿
è¦ã¨ããéã« <literal>Session</literal> ãã³ãã¯ã·ã§ã³ãå¾ãã¨ãããã®ã§ã"
+"ããããã¦ãã»ãã·ã§ã³ãéããããã¾ã§ããã®ã³ãã¯ã·ã§ã³ãä¿æãã¾ããã "
+"Hibernate 3.x ã¯ãã»ãã·ã§ã³ã« 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 ã»ãã·ã§ã³ã¯æåã« JDBC ã¢ã¯ã»ã¹ãå®è¡ããå¿
è¦ãããéã«ã³ãã¯ã·ã§"
+"ã³ãå¾ã¾ããããã¦ãã»ãã·ã§ã³ãéããããã¾ã§ãã³ãã¯ã·ã§ã³ãä¿æãã¾ãã"
+
+#. 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> ãå®äºããå¾ãã³ãã¯ã·ã§ã³ãéæ¾ãã¾ãã"
+
+#. 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> ï¼ç©æ¥µçãªéæ¾ã¨ãå¼ã°ããï¼ - ãã¹ã¦ã®ã¹"
+"ãã¼ãã¡ã³ããããããå®è¡ãããå¾ãã³ãã¯ã·ã§ã³ãéæ¾ããã¾ããã¹ãã¼ãã¡ã³"
+"ããã»ãã·ã§ã³ã«é¢é£ãããªã½ã¼ã¹ãéããã¾ã¾ã«ããå ´åã¯ããã®ç©æ¥µçãªéæ¾ã¯"
+"ã¹ãããããã¾ããä»ã®ã¨ããããããèµ·ããã®ã¯ <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> ã¯ã使ç¨ããéæ¾ã¢ã¼ããæå®ããããã«ä½¿ãã¾ããæå®ã§ããå¤ã¯æ¬¡ã®é"
+"ãã§ã:"
+
+#. 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 ãè¿ãã¾"
+"ãããã®ããã©ã«ãã®æ¯ãèããå¤ãã¦ãã¾ããã£ã試ããããã¾ãããããã¯ãã"
+"ã®è¨å®å¤ãåå ã§èµ·ããé害ã¯ãã¦ã¼ã¶ã¼ã³ã¼ãã®ä¸ã§ãã°ãééã£ãæ¡ä»¶ã«ãªãã"
+"ããããã§ãã"
+
+#. 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 ã使ãã¾ãããã®"
+"è¨å®ã¯å¾æ¹äºæã®ããã«æ®ããã¦ãã¾ããã使ããªããã¨ãå¼·ãå§ãã¾ãã"
+
+#. 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 ãæå®ããèªåã³ãããã¢ã¼ãã®ä¸"
+"ã§ã¯ãéæ¾ã¢ã¼ãã 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 ã³ãã¯ã·ã§ã³ãåããã®ãåå¾ã§ãã"
+"ããåãã³ãã¯ã·ã§ã³ãå¾ããããã¨ãåé¡ã¨ãªããªãèªåã³ãããç°å¢ã®ä¸ã§ãã"
+
+#~ msgid "foo==bar"
+#~ msgstr "foo==bar"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ..."
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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"
+
+#, fuzzy
+#~ 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 ""
+#~ "// 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();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/tutorial.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/tutorial.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/tutorial.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2795 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-01-21 16:43+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The distribution contains another example application under the "
+"<filename>tutorial/eg</filename> project source directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr "ãã¼ã1 - åãã¦ã® Hibernate ã¢ããªã±ã¼ã·ã§ã³"
+
+#. 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 ""
+"ä»®ã«å°ããªãã¼ã¿ãã¼ã¹ã¢ããªã±ã¼ã·ã§ã³ãå¿
è¦ã ã¨ãã¾ãããããã®ã¢ããªã±ã¼"
+"ã·ã§ã³ã«ã¯åºå¸ãããã¤ãã³ãã¨ããã®ã¤ãã³ãã®ãã¹ãã«ã¤ãã¦ã®æ
å ±ãæ ¼ç´ãã"
+"ãã®ã¨ãã¾ãã"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is not a requirement to use Maven. If you wish to use something else to "
+"build this tutoial (such as Ant), the layout will remain the same. The only "
+"change is that you will need to manually account for all the needed "
+"dependencies. If you use something like <ulink url=\"http://ant.apache.org/"
+"ivy/\">Ivy</ulink> providing transitive dependency management you would "
+"still use the dependencies mentioned below. Otherwise, you'd need to grab "
+"<emphasis>all</emphasis> dependencies, both explicit and transitive, and add "
+"them to the project's classpath. If working from the Hibernate distribution "
+"bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts "
+"in the <filename>lib/required</filename> directory and all files from either "
+"the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/"
+"javassist</filename> directory; additionally you will need both the servlet-"
+"api jar and one of the slf4j logging backends."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr "æåã®ã¯ã©ã¹"
+
+#. 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 "次ã«ãã¼ã¿ãã¼ã¹ã«æ ¼ç´ããã¤ãã³ãã表ãã¯ã©ã¹ãä½æãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This class uses standard JavaBean naming conventions for property getter and "
+"setter methods, as well as private visibility for the fields. Although this "
+"is the recommended design, it is not required. Hibernate can also access "
+"fields directly, the benefit of accessor methods is robustness for "
+"refactoring."
+msgstr ""
+"ã覧ã®ã¨ããããã®ã¯ã©ã¹ã¯ãã£ã¼ã«ãã private ã®å¯è¦æ§ãæã£ã¦ããã®ã¨åæ"
+"ã«ã JavaBean æ¨æºã®ã²ãã¿ã¼ãã»ãã¿ã¼ã¡ã½ããã®å½åè¦ç´ã«å¾ã£ã¦ãã¾ãããã®"
+"ãããªè¨è¨ã¯æ¨å¥¨ããã¦ãã¾ããå¿
é ã§ã¯ããã¾ãããã¢ã¯ã»ãµã¡ã½ãããè¨ããã®"
+"ã¯ãªãã¡ã¯ã¿ãªã³ã°ãèããé å¥æ§ã®ããã§ã Hibernate ã¯ãã£ã¼ã«ãã«ç´æ¥ã¢ã¯ã»"
+"ã¹ãããã¨ãå¯è½ã§ããå¼æ°ã®ãªãã³ã³ã¹ãã©ã¯ã¿ã¯ããªãã¬ã¯ã·ã§ã³ã§ãã®ã¯ã©ã¹"
+"ã®ã¤ã³ã¹ã¿ã³ã¹ãä½æããããã«å¿
è¦ã§ãã"
+
+#. 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 ""
+"<literal>id</literal> ããããã£ã¯ãããç¹å®ã®ã¤ãã³ãã«å¯¾ããã¦ãã¼ã¯ãªèå¥"
+"åã®å¤ãä¿æãã¾ãã Hibernate ã®å®å
¨ãªæ©è½ã使ããããã°ããã¹ã¦ã®æ°¸ç¶ã¨ã³"
+"ãã£ãã£ã¯ã©ã¹ ï¼ããã»ã©éè¦ã§ã¯ãªãä¾åã¯ã©ã¹ã¨ãããã®ãããã¾ãï¼ ã«ãã®"
+"ãããªèå¥åããããã£ãå¿
è¦ã«ãªãã¾ããäºå®ä¸ã»ã¨ãã©ã®ã¢ããªã±ã¼ã·ã§ã³ "
+"ï¼ ç¹ã« web ã¢ããªã±ã¼ã·ã§ã³ï¼ ã§ã¯ãèå¥åã§ãªãã¸ã§ã¯ããåºå¥ããå¿
è¦ããã"
+"ãããããã¯å¶éã¨ãããããç¹å¾´ã§ããã¨èããã¹ãã§ãããããé常ãªãã¸ã§ã¯"
+"ãã® ID ãæä½ãããããªãã¨ã¯ãã¾ããããã®ããã»ãã¿ã¼ã¡ã½ãã㯠private ã«"
+"ããã¹ãã§ãã Hibernate ã ãããªãã¸ã§ã¯ããã»ã¼ããããã¨ãã«èå¥åã¸å¤ã代"
+"å
¥ãã¾ãã Hibernate ãï¼public, private, protectedï¼ãã£ã¼ã«ãã«ç´æ¥ã¢ã¯ã»ã¹"
+"ã§ããã®ã¨åæ§ã«ã public, private, protected ã®ã¢ã¯ã»ãµã¡ã½ããã«ã¢ã¯ã»ã¹ã§"
+"ããã¨ãããã¨ããããã§ããããé¸æã¯ããªãã«ä»»ããã¦ããã®ã§ãããªãã®ã¢ã"
+"ãªã±ã¼ã·ã§ã³ã®è¨è¨ã«åããããã¨ãã§ãã¾ãã"
+
+#. 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 ""
+"å¼æ°ã®ãªãã³ã³ã¹ãã©ã¯ã¿ã¯ãã¹ã¦ã®æ°¸ç¶ã¯ã©ã¹ã«å¿
é ã§ãããã㯠Hibernate ã "
+"Java ã®ãªãã¬ã¯ã·ã§ã³ã使ã£ã¦ããªãã¸ã§ã¯ããä½æããªããã°ãªããªãããã§ãã"
+"ã³ã³ã¹ãã©ã¯ã¿ã private ã«ãããã¨ã¯å¯è½ã§ãããå®è¡æã®ãããã·çæã¨ããã¤"
+"ãã³ã¼ãæä½ãªãã®å¹ççãªãã¼ã¿ã®æ½åºã«ã¯ã package å¯è¦æ§ãå¿
è¦ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr "ãããã³ã°ãã¡ã¤ã«"
+
+#. 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 ã¯ãã©ã®ããã«æ°¸ç¶ã¯ã©ã¹ã®ãªãã¸ã§ã¯ãããã¼ããæ ¼ç´ããã°ãããã"
+"ç¥ãå¿
è¦ãããã¾ãããã㧠Hibernate ãããã³ã°ãã¡ã¤ã«ãç»å ´ãã¾ãããããã³"
+"ã°ãã¡ã¤ã«ã¯ããã¼ã¿ãã¼ã¹å
ã®ã©ã®ãã¼ãã«ã«ã¢ã¯ã»ã¹ããªããã°ãªããªãããã"
+"ã®ãã¼ãã«ã®ã©ã®ã«ã©ã ã使ãã¹ãããã Hibernate ã«æãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr "ãããã³ã°ãã¡ã¤ã«ã®åºæ¬çãªæ§é ã¯ãã®ããã«ãªãã¾ãï¼"
+
+#. 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 ãé常ã«æ´ç·´ããã¦ãããã¨ã«æ³¨ç®ãã¦ãã ããããã® DTD ã¯ãã¨"
+"ãã£ã¿ã IDE ã§ã® XML ãããã³ã°è¦ç´ ã¨å±æ§ã®ãªã¼ãã³ã³ããªã¼ã·ã§ã³æ©è½ã«å©ç¨"
+"ã§ãã¾ããã¾ã DTD ãã¡ã¤ã«ãããã¹ãã¨ãã£ã¿ã§éãã¦ã¿ã¦ãã ãããã¨ããã®"
+"ãããã¹ã¦ã®è¦ç´ ã¨å±æ§ãæ¦è¦³ããã³ã¡ã³ããããã©ã«ãã®å¤ãè¦ãã«ã¯ä¸çªç°¡åãª"
+"æ¹æ³ã ããã§ãã Hibernate ã¯ã web ãã DTD ãã¡ã¤ã«ããã¼ãããã«ãã¾ãã¢ã"
+"ãªã±ã¼ã·ã§ã³ã®ã¯ã©ã¹ãã¹ãããããæ¢ãåºããã¨ãããã¨ã«æ³¨æãã¦ãã ããã "
+"DTD ãã¡ã¤ã«ã¯ Hibernate ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã® <literal>src/</literal> "
+"ãã£ã¬ã¯ããªã¨åæ§ã<literal>hibernate3.jar</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 宣è¨ãçç¥ãã¾ããå½ç¶ã§ããããã¯ãªã"
+"ã·ã§ã³ã§ã¯ããã¾ããã"
+
+#. 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 ""
+"2ã¤ã® <literal>hibernate-mapping</literal> ã¿ã°ã®éã« <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 ""
+"ããã¾ã§ç§ãã¡ã¯ã <literal>Event</literal> ã¯ã©ã¹ã®ãªãã¸ã§ã¯ãã "
+"<literal>EVENTS</literal> ãã¼ãã«ã«å¯¾ãã¦ãã©ã®ããã«æ°¸ç¶åããããã¼ããã"
+"ãããã®ãã Hibernate ã«æãã¦ãã¾ãããããã¦åã
ã®ã¤ã³ã¹ã¿ã³ã¹ã¯ãã¼ãã«ã®"
+"è¡ã¨ãã¦è¡¨ç¾ããã¾ããããã§ã¯å¼ãç¶ããã¼ãã«ã®ä¸»ãã¼ã«å¯¾ããã¦ãã¼ã¯ãªèå¥"
+"åããããã£ããããã³ã°ãã¦ããã¾ããããã«ããã®èå¥åã®æ±ãã«æ°ã使ããã"
+"ãªãã£ãã®ã¨åæ§ã«ã代çã®ä¸»ãã¼ã«ã©ã ã«å¯¾ãã 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>native</literal> is no longer consider the best strategy in terms "
+"of portability. for further discussion, see <xref linkend=\"portability-idgen"
+"\" />"
+msgstr ""
+
+#. 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 ""
+"æå¾ã«ã¯ã©ã¹ã®æ°¸ç¶ããããã£ã®å®£è¨ããããã³ã°ãã¡ã¤ã«ã«å«ãã¾ããããã©ã«ã"
+"ã§ã¯ãã¯ã©ã¹ã®ããããã£ã¯æ°¸ç¶ã¨è¦ãªããã¾ããï¼"
+
+#. 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 ã«æãã¾ãããã®ä¾ã§ã¯ã Hibernate 㯠<literal>getDate()/setDate"
+"()</literal> 㨠<literal>getTitle()/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> å±æ§ãããã <literal>title</literal> ããããã£ã«ã¯ãªãã®ã§ããã"
+"ãï¼ <literal>column</literal> å±æ§ããªããã°ã Hibernate ã¯ããã©ã«ãã§ãã"
+"ããã£åãã«ã©ã åã¨ãã¦ä½¿ãã¾ãããã㯠<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> å±æ§ããæ¬ ãã¦ããç¹ã§ãããããã³ã°ãã¡ã¤ã«ã§å®£è¨ãã¦ä½¿ã type ã¯ã"
+"ããããããããã¾ããã Java ã®ãã¼ã¿åã§ã¯ããã¾ããã SQL ãã¼ã¿ãã¼ã¹ã®å"
+"ã§ãããã¾ããããã㯠<emphasis>Hibernateãããã³ã°å</emphasis> ã¨å¼ã°ã"
+"ãã Java ãã SQL ãã¼ã¿ã®åã¸ã¾ã㯠SQL ãã Java ãã¼ã¿åã¸ç¿»è¨³ããã³ã³"
+"ãã¼ã¿ã§ããç¹°ãè¿ãã«ãªãã¾ããã Hibernate 㯠<literal>type</literal> å±æ§"
+"ããããã³ã°ãã¡ã¤ã«å
ã«ãªããã°ãæ£ããã³ã³ãã¼ã¸ã§ã³ã¨ãããã³ã°åãèªåã§"
+"解決ãããã¨ãã¾ãã ï¼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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this mapping file as <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr "Hibernate ã®è¨å®"
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will utilize the Maven exec plugin to launch the HSQLDB server by "
+"running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
+"Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see "
+"it start up and bind to a TCP/IP socket; this is where our application will "
+"connect later. If you want to start with a fresh database during this "
+"tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</"
+"filename> directory, and start HSQLDB again."
+msgstr ""
+"<literal>data</literal> ã¨ãããã£ã¬ã¯ããªãéçºãã£ã¬ã¯ããªã®ã«ã¼ãã«ä½æã"
+"ã¦ãã ããã HSQL DB ã¯ããã«ãã¼ã¿ãã¡ã¤ã«ãæ ¼ç´ãã¾ãããã®ãã¼ã¿ãã£ã¬ã¯ã"
+"ãªã«ãã㦠<literal>java -classpath ../lib/hsqldb.jar org.hsqldb.Server</"
+"literal> ãå®è¡ãããã¼ã¿ãã¼ã¹ãèµ·åããã¦ãã ãããåä½ã®éå§ã¨ã TCP/IP ã½"
+"ã±ããã®ãã¤ã³ãã確èªã§ãã¾ããå¾ã»ã©ä½æããã¢ããªã±ã¼ã·ã§ã³ã¯ããã«æ¥ç¶ã"
+"ã¾ãããããã®ãã¥ã¼ããªã¢ã«ä¸ã«ãã¼ã¿ãã¼ã¹ãåæåããããã°ã HSQL DB ã"
+"ã·ã£ãããã¦ã³ãã¦ï¼ä½æ¥ã¦ã£ã³ãã¦ã§ <literal>CTRL + C</literal> ãæ¼ãã¾"
+"ãï¼ <literal>data/</literal> ãã£ã¬ã¯ããªå
ã®ãã¡ã¤ã«ãå
¨ã¦æ¶å»ããå¾ã "
+"HSQL DB ãåèµ·åãã¾ãã"
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in Hibernate connection pool is in no way intended for production "
+"use. It lacks several features found on any decent connection pool."
+msgstr ""
+
+#. 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> ãã¡ã¤"
+"ã«ãã¾ãã¯å®å
¨ã«ããã°ã©ã ä¸ã§ã»ããã¢ããããæ¹æ³ãå©ç¨ã§ãã¾ããã»ã¨ãã©ã®"
+"ã¦ã¼ã¶ã¼ã好ãã®ã¯ XML è¨å®ãã¡ã¤ã«ã§ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr "ãã® XML ã®è¨å®ãç°ãªã DTD ã使ããã¨ã«æ³¨æãã¦ãã ããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
+"is a global factory responsible for a particular database. If you have "
+"several databases, for easier startup you should use several <literal><"
+"session-factory></literal> configurations in several configuration files."
+msgstr ""
+"ç¹å®ã®ãã¼ã¿ãã¼ã¹ãåãæã¤ã°ãã¼ãã«ãã¡ã¯ããªã§ãã Hibernate ã® "
+"<literal>SessionFactory</literal> ãè¨å®ãã¾ããããè¤æ°ã®ãã¼ã¿ãã¼ã¹ããã"
+"å ´åã«ã¯ã ï¼ã¹ã¿ã¼ãã¢ãããç°¡åã«ããããï¼é常ããã¤ãã®è¨å®ãã¡ã¤ã«å
ã§ã"
+"ããã¤ãã® <literal><session-factory></literal> ã使ãè¨å®ã«ãã¦ãã ã"
+"ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The first four <literal>property</literal> elements contain the necessary "
+"configuration for the JDBC connection. The dialect <literal>property</"
+"literal> element specifies the particular SQL variant Hibernate generates."
+msgstr ""
+"æåã®4ã¤ã® <literal>property</literal> è¦ç´ 㯠JDBC ã³ãã¯ã·ã§ã³ã«å¿
è¦ãªè¨å®"
+"ãå«ãã§ãã¾ãã dialect ã¨ããååã® <literal>property</literal> è¦ç´ ã¯ã "
+"Hibernate ãçæããç¹å®ã® SQL æ¹è¨ãæå®ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In most cases, Hibernate is able to properly determine which dialect to use. "
+"See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr ""
+
+#. 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 ""
+"æ°¸ç¶çãªã³ã³ããã¹ãã«å¯¾ãã Hibernate ã®ã»ãã·ã§ã³ã®èªå管çã¯ãå¾ã®ä¾ã§ãã"
+"ã«ãããããã«ãå½¹ã«ç«ã¤ãã¨ã§ãããã <literal>hbm2ddl.auto</literal> ãªã"
+"ã·ã§ã³ã¯ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã®èªåçæã on ã«ãã¾ããããã¯ç´æ¥ãã¼ã¿ãã¼ã¹"
+"ã«å¯¾ãã¦çæããã¾ããå½ç¶ï¼config ãªãã·ã§ã³ãåé¤ãã¦ï¼ off ã«ãããã "
+"<literal>SchemaExport</literal> ã¨ãã Ant ã¿ã¹ã¯ã®å©ããåãã¦ãã¡ã¤ã«ã«ãªã"
+"ã¤ã¬ã¯ããããã§ãã¾ããæå¾ã«æ°¸ç¶ã¯ã©ã¹ã®ããã®ãããã³ã°ãã¡ã¤ã«ãè¨å®ã«è¿½"
+"å ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>hibernate.cfg.xml</filename> into the "
+"<filename>src/main/resources</filename> directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Building with Maven"
+msgstr "Maven ã«ãããã«ã"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr "ã¹ã¿ã¼ãã¢ããã¨ãã«ã"
+
+#. 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>SessionFactory</literal> ãª"
+"ãã¸ã§ã¯ããçæãã¦ããããã¢ããªã±ã¼ã·ã§ã³ã®ã³ã¼ãã§ã¢ã¯ã»ã¹ããããå ´æã«"
+"æ ¼ç´ãããã¨ãå«ã¾ãã¾ãã <interfacename>org.hibernate.SessionFactory</"
+"interfacename> ã¯æ°ãã <interfacename>org.hibernate.Session</interfacename> "
+"ããªã¼ãã³ãããã¨ãã§ãã¾ãã <interfacename>org.hibernate.Session</"
+"interfacename> ã¯ã·ã³ã°ã«ã¹ã¬ããã®ä½æ¥åä½(Unit of Work)ã表ç¾ãã¾ããããã«"
+"対ã <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 ""
+"ããã§ã¹ã¿ã¼ãã¢ãããè¡ãã便å©ã« <interfacename>org.hibernate."
+"SessionFactory</interfacename> ã¸ã¢ã¯ã»ã¹ãã <literal>HibernateUtil</"
+"literal> ãã«ãã¯ã©ã¹ãä½æãã¾ããå®è£
ãè¦ã¦ã¿ã¾ãããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
+"HibernateUtil.java</filename>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This class not only produces the global <interfacename>org.hibernate."
+"SessionFactory</interfacename> reference in its static initializer; it also "
+"hides the fact that it uses a static singleton. We might just as well have "
+"looked up the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"reference from JNDI in an application server or any other location for that "
+"matter."
+msgstr ""
+"ãã®ã¯ã©ã¹ã¯éçåæåãããã¯ï¼ã¯ã©ã¹ããã¼ããããã¨ãã« JVM ã«ãã£ã¦ä¸åº¦ã "
+"ãå¼ã°ããï¼ ã§ã°ãã¼ãã«ã® <interfacename>org.hibernate.SessionFactory</"
+"interfacename> ãçæããã ãã§ã¯ãªããéçã·ã³ã°ã«ãã³ã®ä½¿ç¨ãé è½ãã¾ããã¢"
+"ããªã±ã¼ã·ã§ã³ãµã¼ãã¼ã® JNDI ãã <interfacename>org.hibernate."
+"SessionFactory</interfacename> ãã«ãã¯ã¢ããããã®ã¨åæ§ã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you give the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"a name in your configuration, Hibernate will try to bind it to JNDI under "
+"that name after it has been built. Another, better option is to use a JMX "
+"deployment and let the JMX-capable container instantiate and bind a "
+"<literal>HibernateService</literal> to JNDI. Such advanced options are "
+"discussed later."
+msgstr ""
+"è¨å®ãã¡ã¤ã«å
㧠<interfacename>org.hibernate.SessionFactory</interfacename> "
+"ã«ååãä¸ããã¨ã Hibernate 㯠<interfacename>org.hibernate.SessionFactory</"
+"interfacename> æ§ç¯å¾ã« JNDI ã«å¯¾ããã¤ã³ããè¡ããã¨ãã¾ãããã®ã³ã¼ããå®å
¨"
+"ã«æé¤ããããã«ã¯ã JMX ãããã¤ã¡ã³ããå©ç¨ã㦠JMX ãå©ç¨ã§ããã³ã³ããã"
+"ã¤ã³ã¹ã¿ã³ã¹åãã <literal>HibernateService</literal> ã JNDI ã¸ãã¤ã³ããã"
+"ãã¨ãã§ãã¾ãããããã®é«åº¦ãªãªãã·ã§ã³ã¯ã Hibernate ã®ãªãã¡ã¬ã³ã¹ããã¥ã¡"
+"ã³ãã§èª¬æããã¦ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You now need to configure a logging system. Hibernate uses commons logging "
+"and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer "
+"Log4j: copy <literal>log4j.properties</literal> from the Hibernate "
+"distribution in the <literal>etc/</literal> directory to your <literal>src</"
+"literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you "
+"prefer to have more verbose output than that provided in the example "
+"configuration, you can change the settings. By default, only the Hibernate "
+"startup message is shown on stdout."
+msgstr ""
+"ããã¯åé¡ãªãåã³ã³ãã¤ã«ã§ããã¯ãã§ããæå¾ã«ãã®ã³ã°ã·ã¹ãã ãè¨å®ããå¿
"
+"è¦ãããã¾ãã Hibernate 㯠commons logging ã使ãããã Log4j 㨠JDK 1.4 "
+"logging ã®é¸æãããå¿
è¦ãããã¾ãããã»ã¨ãã©ã®éçºè
ã好ãã®ã¯ 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."
+msgstr ""
+"ãã¥ã¼ããªã¢ã«ã®ã¤ã³ãã©ã¯å®å
¨ã§ãã Hibernate ã使ã£ã¦å®éã®ä½æ¥ãããæºåã"
+"æ´ãã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr "ãªãã¸ã§ã¯ãã®ãã¼ãã¨æ ¼ç´"
+
+#. 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> ã¯ã©"
+"ã¹ãæ¸ãã¾ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</"
+"literal> object and handed it over to Hibernate. At that point, Hibernate "
+"takes care of the SQL and executes an <literal>INSERT</literal> on the "
+"database."
+msgstr ""
+"æ°ãã <literal>Event</literal> ãªãã¸ã§ã¯ããçæããããã Hibernate ã«æ¸¡ã"
+"ã¾ãã Hibernate ã SQL ãå¦çãããã¼ã¿ãã¼ã¹ã§ <literal>INSERT</literal> ã"
+"å®è¡ãã¾ããå®è¡åã«l <literal>Session</literal> 㨠<literal>Transaction</"
+"literal> ãå¦çããã³ã¼ãã確èªãã¦ãã ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <interface>org.hibernate.Session</interface> is designed to represent a "
+"single unit of work (a single atmoic piece of work to be performed). For now "
+"we will keep things simple and assume a one-to-one granularity between a "
+"Hibernate <interface>org.hibernate.Session</interface> and a database "
+"transaction. To shield our code from the actual underlying transaction "
+"system we use the Hibernate <interfacename>org.hibernate.Transaction</"
+"interfacename> API. In this particular case we are using JDBC-based "
+"transactional semantics, but it could also run with JTA."
+msgstr ""
+"<interface>org.hibernate.Session</interface> ã¯1ã¤ã®ä½æ¥åä½ (Unit of Work) "
+"ã§ããå½åã®éã話ãç°¡åã«ããããã«ã <interface>org.hibernate.Session</"
+"interface> 㨠<literal>Transaction</literal> ã®å¯¾å¿ãä¸å¯¾ä¸ã¨ä»®å®ãã¾ãã使ç¨"
+"ãã¦ãããã©ã³ã¶ã¯ã·ã§ã³ã·ã¹ãã ï¼ãã®ã±ã¼ã¹ã§ã¯ JTA ã¨å
±åã§ããåç´ãª "
+"JDBCï¼ããã³ã¼ããä¿è·ããããã«ã Hibernate <literal>Session</literal> ä¸ã§"
+"å©ç¨å¯è½ãª <interfacename>org.hibernate.Transaction</interfacename> API ã使"
+"ç¨ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
+"you can call it as many times and anywhere you like once you get hold of "
+"your <interfacename>org.hibernate.SessionFactory</interfacename>. The "
+"<literal>getCurrentSession()</literal> method always returns the \"current\" "
+"unit of work. Remember that we switched the configuration option for this "
+"mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg."
+"xml</filename>? Due to that setting, the context of a current unit of work "
+"is bound to the current Java thread that executes the application."
+msgstr ""
+"<literal>sessionFactory.getCurrentSession()</literal> ã¯ä½ãããã®ã§ããã"
+"ãï¼ã¾ãããã£ãã <interfacename>org.hibernate.SessionFactory</"
+"interfacename> ãåå¾ãä¿æããã° ï¼ <literal>HibernateUtil</literal> ã®ãã"
+"ãã§ç°¡åã§ãï¼ããã®ã¡ã½ãããä½åº¦ã§ããã©ãããã§ãå¼ã³åºããã¨ãã§ãã¾ãã "
+"<literal>getCurrentSession()</literal> ã¡ã½ããã¯å¸¸ã«ãç¾å¨ã®ãä½æ¥åä½(Unit "
+"of Work)ãè¿ãã¾ãã <filename>src/main/resources/hibernate.cfg.xml</"
+"filename> ã®ãã®æ©è½ã®è¨å®ã§ã\"thread\"ãæå®ãããã¨ãæãåºãã¦ãã ããã"
+"ãã®ããç¾å¨ã®ä½æ¥åä½ã®ã¹ã³ã¼ãã¯ããã®ã¢ããªã±ã¼ã·ã§ã³ãå®è¡ããç¾å¨ã® "
+"Java ã¹ã¬ããã§ãããããããã§å
¨ã¦ã§ã¯ããã¾ãããä½æ¥åä½ã®éå§æã¨çµäºæã«"
+"ã¯ã¹ã³ã¼ããèæ
®ããå¿
è¦ãããã¾ãã"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <interface>org.hibernate.Session</interface> begins when the first call to "
+"<literal>getCurrentSession()</literal> is made for the current thread. It is "
+"then bound by Hibernate to the current thread. When the transaction ends, "
+"either through commit or rollback, Hibernate automatically unbinds the "
+"<interface>org.hibernate.Session</interface> from the thread and closes it "
+"for you. If you call <literal>getCurrentSession()</literal> again, you get a "
+"new <interface>org.hibernate.Session</interface> and can start a new unit of "
+"work."
+msgstr ""
+"<interface>org.hibernate.Session</interface> ã¯æåã«å¿
è¦ã¨ãªã£ãã¨ããã¤ã¾ã"
+"æåã« <literal>getCurrentSession()</literal> ãå¼ã°ããã¨ãã«éå§ãã¾ããã"
+"ã®ã¨ã Hibernate ã«ããç¾å¨ã®ã¹ã¬ããã«çµã³ä»ãããã¾ãããã©ã³ã¶ã¯ã·ã§ã³ãçµ"
+"äºï¼ã³ããããããã¯ãã¼ã«ããã¯ï¼ããã¨ãã Hibernate ãã¹ã¬ãããã "
+"<interface>org.hibernate.Session</interface> ãåãé¢ããã¯ãã¼ãºãã¾ããå"
+"ã³ <literal>getCurrentSession()</literal> ãå¼ã¶ã¨ãæ°ãã <interface>org."
+"hibernate.Session</interface> ãåå¾ãã¦æ°ããä½æ¥åä½ãã¹ã¿ã¼ãã§ãã¾ããã"
+"ã® <emphasis>thread-bound</emphasis> ããã°ã©ãã³ã°ã¢ãã«ã¯ãã³ã¼ãã®ãã¬ãã·"
+"ãã«ãªã¬ã¤ã¤ãªã³ã°ãå¯è½ã«ããã®ã§ã Hibernate ãå©ç¨ããä¸ã§æã人æ°ãããã¾"
+"ã (ãã®ãã¥ã¼ããªã¢ã«ã§å¾ã»ã©è§¦ãã¾ãããã©ã³ã¶ã¯ã·ã§ã³å¢çã³ã¼ãã¯ãã¼ã¿ã¢"
+"ã¯ã»ã¹ã³ã¼ãã¨ã¯åºå¥ããã¾ã)ã"
+
+#. 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 ""
+"ä½æ¥åä½ (Unit of Work) ã®ç¯å²ã«é¢ãã¦ã Hibernate ã® <interface>org."
+"hibernate.Session</interface> ã¯1ã¤ã¾ãã¯ããã¤ãã®ãã¼ã¿ãã¼ã¹ãªãã¬ã¼ã·ã§ã³"
+"ãå®è¡ããããã«ä½¿ç¨ãããã¹ãã§ããããï¼ä¸è¨ã®ä¾ã¯ãï¼ã¤ã®ãªãã¬ã¼ã·ã§ã³ã§1"
+"ã¤ã® <interface>org.hibernate.Session</interface> ã使ç¨ãã¾ããããã¯ç´ç²ãª"
+"å¶ç¶ã§ãä¾ã¯ãã®ä»ã®ã¢ããã¼ãã示ãã»ã©è¾¼ã¿å
¥ã£ã¦ãã¾ããã Hibernate ã® "
+"<interface>org.hibernate.Session</interface> ã®ç¯å²ã¯æè»ã§ããã <emphasis>"
+"å
¨ã¦ã®</emphasis> ãã¼ã¿ãã¼ã¹ãªãã¬ã¼ã·ã§ã³ã®ããã«æ°ãã Hibernate "
+"<interface>org.hibernate.Session</interface> ã使ç¨ããããã«ã¢ããªã±ã¼ã·ã§ã³"
+"ããã¶ã¤ã³ããã¹ãã§ã¯ããã¾ãããå¾ã£ã¦ãããããã以ä¸ã® (æ®éã®) ä¾ã§ä½åº¦"
+"ãè¦ãã¨ãã¦ããã¢ã³ããã¿ã¼ã³ã§ãã <emphasis>ãªãã¬ã¼ã·ã§ã³æ¯ã® Session</"
+"emphasis> ãèæ
®ãã¦ãã ãããå®éã® (ã¦ã§ã) ã¢ããªã±ã¼ã·ã§ã³ã¯ããã®ãã¥ã¼"
+"ããªã¢ã«ã§å¾ã«è¦ããã¨ãã§ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"See <xref linkend=\"transactions\" /> for more information about transaction "
+"handling and demarcation. The previous example also skipped any error "
+"handling and rollback."
+msgstr ""
+"ãã©ã³ã¶ã¯ã·ã§ã³ã®æ±ãã¨å¢çã®è©³ããæ
å ±ã«ã¤ãã¦ã¯ã <xref linkend="
+"\"transactions\"/> ãè¦ã¦ãã ããããã®ä¾ã§ã¯ã¨ã©ã¼å¦çããã¼ã«ããã¯ãå²æã"
+"ã¾ãã"
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr ""
+
+#. 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 ãã¹ã¿ã¼ãããè¨å®ã«ããã¾ãããå¤ãã®ãã°åºåã"
+"ããã¯ãã§ãããã®æå¾ã«ã¯ä»¥ä¸ã®è¡ãããã§ãããï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr "HQL ã® <literal>INSERT</literal> æã®å®è¡ä¾ã§ãï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr ""
+"ããã§ã¯åãããã«æ ¼ç´ãããã¤ãã³ãã®ä¸è¦§ãè¦ããã¨æãã¾ãããã®ããã¡ã¤ã³"
+"ã¡ã½ããã«ãªãã·ã§ã³ã追å ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+msgstr "æ°ãã <literal>listEvents()ã¡ã½ãã</literal> ã追å ãã¾ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here, we are using a Hibernate Query Language (HQL) query to load all "
+"existing <literal>Event</literal> objects from the database. Hibernate will "
+"generate the appropriate SQL, send it to the database and populate "
+"<literal>Event</literal> objects with the data. You can create more complex "
+"queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
+msgstr ""
+"ããã§ãããã¨ã¯ããã¼ã¿ãã¼ã¹ããåå¨ãããã¹ã¦ã® <literal>Event</literal> "
+"ãªãã¸ã§ã¯ãããã¼ããã HQL (Hibernate Query Language) ã¯ã¨ãªã使ããã¨ã§"
+"ãã Hibernate ã¯é©å㪠SQL ãçæããããããã¼ã¿ãã¼ã¹ã«éãããã®ãã¼ã¿ã"
+"使ã£ã¦ <literal>Event</literal> ãªãã¸ã§ã¯ããçæãã¾ããå½ç¶ HQL ã§ããã«è¤"
+"éãªã¯ã¨ãªãä½æã§ãã¾ãã"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr "ãã¼ã2 - é¢é£ã®ãããã³ã°"
+
+#. 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 ""
+"æ°¸ç¶ã¨ã³ãã£ãã£ã¯ã©ã¹ããã¼ãã«ã«ãããã³ã°ãã¾ãããããã«ãã®ä¸ã«ããã¤ã"
+"ã®ã¯ã©ã¹ã®é¢é£ã追å ãã¾ããããã¾ãåãã«ã¢ããªã±ã¼ã·ã§ã³ã«äººã
ã追å ããå½¼"
+"ããåå ããã¤ãã³ãã®ãªã¹ããæ ¼ç´ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr "Person ã¯ã©ã¹ã®ãããã³ã°"
+
+#. Tag: para
+#, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr "æåã® <literal>Person</literal> ã¯ã©ã¹ã¯åç´ã§ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
+"domain/Person.java</filename>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr "æå¾ã« Hibernate ã®è¨å®ã«æ°ãããããã³ã°ã追å ãã¦ãã ããï¼"
+
+#. 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 ""
+"ããã§ã¯ããã2ã¤ã®ã¨ã³ãã£ãã£éã®é¢é£ãä½æãã¾ãã人ã
ãã¤ãã³ãã«åå ã§"
+"ããã¤ãã³ããåå è
ãæã¤ã®ã¯æããã§ããæ±ããªããã°ãªããªãè¨è¨ã®åé¡ã¯ã"
+"æ¹åãå¤é度ãã³ã¬ã¯ã·ã§ã³ã®æ¯ãèãã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr "åæ¹å Set ãã¼ã¹é¢é£"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By adding a collection of events to the <literal>Person</literal> class, you "
+"can easily navigate to the events for a particular person, without executing "
+"an explicit query - by calling <literal>Person#getEvents</literal>. Multi-"
+"valued associations are represented in Hibernate by one of the Java "
+"Collection Framework contracts; here we choose a <interfacename>java.util."
+"Set</interfacename> because the collection will not contain duplicate "
+"elements and the ordering is not relevant to our examples:"
+msgstr ""
+"ã¤ãã³ãã®ã³ã¬ã¯ã·ã§ã³ã <literal>Person</literal> ã¯ã©ã¹ã«è¿½å ãã¾ããããã"
+"ã¦ããã¨ãæ示çãªã¯ã¨ãªãã¤ã¾ããããã <literal>aPerson.getEvents()</"
+"literal> ãå¼ã³åºããã«ãç¹å®ã®äººã«ç´ä»ãã¤ãã³ããç°¡åã«ããã²ã¼ããããã¨ã"
+"ã§ãã¾ããç§ãã¡ã¯ Java ã®ã³ã¬ã¯ã·ã§ã³ã<interfacename>java.util.Set</"
+"interfacename> ã使ãã¾ããã³ã¬ã¯ã·ã§ã³ã¯éè¤è¦ç´ ãæããªãããé çªã¯ç§ãã¡ã«"
+"ã¯æå³ããªãããã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Before mapping this association, let's consider the other side. We could "
+"just keep this unidirectional or create another collection on the "
+"<literal>Event</literal>, if we wanted to be able to navigate it from both "
+"directions. This is not necessary, from a functional perspective. You can "
+"always execute an explicit query to retrieve the participants for a "
+"particular event. This is a design choice left to you, but what is clear "
+"from this discussion is the multiplicity of the association: \"many\" valued "
+"on both sides is called a <emphasis>many-to-many</emphasis> association. "
+"Hence, we use Hibernate's many-to-many mapping:"
+msgstr ""
+"ãã®é¢é£ããããã³ã°ããåã«ãå対å´ã«ã¤ãã¦èãã¦ãã ãããæãããªãã¨ã§ã"
+"ããä»ã¯ãããåæ¹åã«ããã ãã§ããéã«ã <literal>Event</literal> å´ã«ãå¥"
+"ã®ã³ã¬ã¯ã·ã§ã³ãä½ããã¨ãã§ãã¾ããä¾ãã° <literal>anEvent.getParticipants()"
+"</literal> ã®ããã«ãåæ¹åã«ããã²ã¼ãããããã°ããããããã¨ãã§ãã¾ããã"
+"ãã¯æ©è½çã«ã¿ã¦å¿
è¦ã§ã¯ããã¾ãããç¹å®ã®ã¤ãã³ãã«é¢ä¿ãããã¼ã¿ãåå¾ãã"
+"æ確ãªã¯ã¨ãªãããã¤ã§ãå®è¡ãããã¨ãåºæ¥ã¾ããããã®è¨è¨ã®é¸æã¯éçºè
ã«ä»»"
+"ããã¦ãã¦ããã®è°è«ã«ããæãããªã®ã¯é¢é£ã®å¤é度ã§ããã¤ã¾ã両å´ããå¤ãå¤"
+"ã«ããã <emphasis>å¤å¯¾å¤</emphasis> ã¨å¼ã°ããé¢é£ã§ãããã®ãã Hibernate "
+"ã®å¤å¯¾å¤ãããã³ã°ã使ãã¾ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate supports a broad range of collection mappings, a <literal>set</"
+"literal> being most common. For a many-to-many association, or <emphasis>n:"
+"m</emphasis> entity relationship, an association table is required. Each row "
+"in this table represents a link between a person and an event. The table "
+"name is decalred using the <literal>table</literal> attribute of the "
+"<literal>set</literal> element. The identifier column name in the "
+"association, for the person side, is defined with the <literal>key</literal> "
+"element, the column name for the event's side with the <literal>column</"
+"literal> attribute of the <literal>many-to-many</literal>. You also have to "
+"tell Hibernate the class of the objects in your collection (the class on the "
+"other side of the collection of references)."
+msgstr ""
+"Hibernate ã¯ããã¨ãããã種é¡ã®ã³ã¬ã¯ã·ã§ã³ãããã³ã°ããµãã¼ããã¦ãã¾ã"
+"ããæãä¸è¬çãªãã®ã <literal>set</literal> ã§ãã å¤å¯¾å¤é¢é£ï¼ã¾ã㯠"
+"<emphasis>n:m</emphasis> ã¨ã³ãã£ãã£ãªã¬ã¼ã·ã§ã³ã·ããï¼ã«ã¯ãé¢é£ãã¼ãã«ã"
+"å¿
è¦ã§ãããã®ãã¼ãã«ã®ããããã®è¡ã¯ã人ã¨ã¤ãã³ãéã®ãªã³ã¯ã表ç¾ãã¾ãã"
+"ãã¼ãã«å㯠<literal>set</literal> è¦ç´ ã® <literal>table</literal> å±æ§ã§è¨"
+"å®ãã¾ãã人å´ã®é¢é£ã®èå¥åã«ã©ã å㯠<literal>key</literal> è¦ç´ ã§ãã¤ãã³"
+"ãå´ã®ã«ã©ã å㯠<literal>many-to-many</literal> ã® <literal>column</"
+"literal> å±æ§ã§å®ç¾©ãã¾ãã Hibernate ã«ã³ã¬ã¯ã·ã§ã³ã®ãªãã¸ã§ã¯ãã®ã¯ã©ã¹ "
+"ï¼æ£ç¢ºã«ã¯ãåç
§ã®ã³ã¬ã¯ã·ã§ã³ã®å対å´ã®ã¯ã©ã¹ï¼ãæããªããã°ãªãã¾ããã"
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr "ãã®ãããã®ãããã³ã°ã®ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã¯ä»¥ä¸ã®ããã«ãªãã¾ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr "é¢é£ãåããã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now we will bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
+msgstr ""
+"<literal>EventManager</literal> ã®æ°ããã¡ã½ããã§äººã
ã¨ã¤ãã³ããä¸ç·ã«ãã¾"
+"ãããï¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After loading a <literal>Person</literal> and an <literal>Event</literal>, "
+"simply modify the collection using the normal collection methods. There is "
+"no explicit call to <literal>update()</literal> or <literal>save()</"
+"literal>; Hibernate automatically detects that the collection has been "
+"modified and needs to be updated. This is called <emphasis>automatic dirty "
+"checking</emphasis>. You can also try it by modifying the name or the date "
+"property of any of your objects. As long as they are in "
+"<emphasis>persistent</emphasis> state, that is, bound to a particular "
+"Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate "
+"monitors any changes and executes SQL in a write-behind fashion. The process "
+"of synchronizing the memory state with the database, usually only at the end "
+"of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the "
+"unit of work ends with a commit, or rollback, of the database transaction."
+msgstr ""
+"<literal>Person</literal> 㨠<literal>Event</literal> ããã¼ãããå¾ãæ®éã®"
+"ã³ã¬ã¯ã·ã§ã³ã¡ã½ããã使ã£ã¦åç´ã«ãã®ã³ã¬ã¯ã·ã§ã³ãä¿®æ£ãã¦ãã ãããã覧ã®"
+"ã¨ãã <literal>update()</literal> ã <literal>save()</literal> ã®æ示çãªå¼"
+"ã³åºãã¯ããã¾ããã Hibernate ã¯ãä¿®æ£ããããã¨ã«ããæ´æ°ããå¿
è¦ã®ããã³ã¬"
+"ã¯ã·ã§ã³ãèªåçã«æ¤ç¥ãã¾ãããã㯠<emphasis>èªåãã¼ãã£ãã§ãã¯</"
+"emphasis> ã¨å¼ã°ãããªãã¸ã§ã¯ãã®ååã date ããããã£ãä¿®æ£ãããã¨ã§è©¦ã"
+"ãã¨ãå¯è½ã§ãããããã <emphasis>æ°¸ç¶</emphasis> ç¶æ
ã«ããéããã¤ã¾ãç¹å®"
+"ã® Hibernate <literal>Session</literal> ã«ãã¤ã³ãããã¦ããéã ï¼ä¾ãã°ä½æ¥"
+"åä½ (Unit of Work) ã®ä¸ã§åã«ãã¼ãã¾ãã¯ã»ã¼ããããï¼ã Hibernate ã¯ã©ããª"
+"å¤æ´ãã¢ãã¿ã¼ããé
延æ¸ã込㿠(write-behind) 㧠SQL ãå®è¡ãã¾ããé常ãä½æ¥"
+"åä½ (Unit of Work) ã®æå¾ã«ã ãè¡ããããã¼ã¿ãã¼ã¹ã¨ã¡ã¢ãªã®ç¶æ
ãåæãã"
+"ãå¦çã¯ã <emphasis>ãã©ãã·ã¥</emphasis> ã¨å¼ã°ãã¾ãããã®ã³ã¼ãã§ã¯ãä½æ¥"
+"åä½ (Unit of Work) ã¯ãã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ã®ã³ãããï¼ãããã¯ãã¼ã«"
+"ããã¯ï¼ã§çµäºãã¾ããããã¯ã <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 ""
+"ç°ãªãä½æ¥åä½ (Unit of Work) ã§äººã
ã¨ã¤ãã³ãããã¼ããããã¨ãå½ç¶ã§ãã¾"
+"ããããã§ãªããã°ãæ°¸ç¶ç¶æ
ã«ãªãã¨ãï¼ä»¥åã«æ°¸ç¶ã§ãã£ããªãããã®ç¶æ
ã "
+"<emphasis>åé¢ï¼detachedï¼</emphasis> ã¨å¼ã³ã¾ãï¼ã <interfacename>org."
+"hibernate.Session</interfacename> ã®å¤é¨ã§ãªãã¸ã§ã¯ããä¿®æ£ãã¾ããåé¢ãã"
+"ãã¨ãã«ã¯ã³ã¬ã¯ã·ã§ã³ãå¤æ´ãããã¨ãå¯è½ã§ãï¼"
+
+#. 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> ã®å¼ã³åºãã¯åé¢ãªãã¸ã§ã¯ããåã³æ°¸ç¶åãã¾ããã"
+"ãã¯ãæ°ããä½æ¥åä½ (Unit of Work) ã«ãã¤ã³ãããã¨è¨ããã§ãããããã®ãã"
+"åé¢ã®éã«å ããããã©ã®ãããªä¿®æ£ããã¼ã¿ãã¼ã¹ã«ã»ã¼ãã§ãã¾ããã¨ã³ãã£"
+"ãã£ãªãã¸ã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ã¸ã®ä¿®æ£ï¼è¿½å ï½¥åé¤ï¼ãåæ§ã«ã»ã¼ãã§ãã¾ãã"
+
+#. 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> ã®ã¡ã¤ã³ã¡ã½ããã«æ°ããã¢ã¯ã·ã§ã³ã追å ãã¦"
+"ã³ãã³ãã©ã¤ã³ããå¼ã³åºãã¦ã¿ã¾ãããã人ãã¤ãã³ãã®èå¥åãå¿
è¦ãªãã "
+"<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 ""
+"ããã¯åãããã«éè¦ãª2ã¤ã®ã¯ã©ã¹ãã¤ã¾ã2ã¤ã®ã¨ã³ãã£ãã£éã®é¢é£ã®ä¾ã§ã"
+"ããåã«è¿°ã¹ãããã«ãå
¸åçãªã¢ãã«ã«ã¯ãæ®éãæ¯è¼çéè¦ã§ã¯ãªããä»ã®ã¯ã©"
+"ã¹ã¨åãããã¾ããããã¾ã§ã«è¦ããã㪠<literal>int</literal> ã "
+"<classname>java.lang.String</classname> ã®ãããªãã®ã§ãããã®ãããªã¯ã©ã¹ã "
+"<emphasis>å¤å</emphasis> ã¨è¨ãã¾ãããã®ã¤ã³ã¹ã¿ã³ã¹ã¯ç¹å®ã®ã¨ã³ãã£ãã£ã« "
+"<emphasis>ä¾å</emphasis> ãã¾ãããã®åã®ã¤ã³ã¹ã¿ã³ã¹ã¯ç¬èªã® ID ãæã¡ã¾ã"
+"ãããã¨ã³ãã£ãã£éã§å
±æããããã¨ãããã¾ãã ï¼ãã¡ã¼ã¹ããã¼ã ãåãã ã£"
+"ãã¨ãã¦ãã2人ã®äººã¯åã <literal>firstname</literal> ãªãã¸ã§ã¯ããåç
§ãã¾"
+"ããï¼ãå¤åã¯ãã¡ãã 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 ã§ã¯ã»ã¨ãã©åãããã«è¦ã"
+"ã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr "å¤ã®ã³ã¬ã¯ã·ã§ã³"
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr "ãã® <literal>Set</literal> ã®ãããã³ã°ã§ãï¼"
+
+#. 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> ã®é¨åã§ããã "
+"Hibernate ã«ãã®ã³ã¬ã¯ã·ã§ã³ãä»ã®ã¨ã³ãã£ãã£ã¸ã®åç
§ãå«ã¾ãã "
+"<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
+msgid "Here is the updated schema:"
+msgstr "æ´æ°ããã¹ãã¼ããè¦ã¦ãã ããï¼"
+
+#. 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 ""
+"ã³ã¬ã¯ã·ã§ã³ãã¼ãã«ã®ä¸»ãã¼ã¯ãå®éã¯ä¸¡æ¹ã®ã«ã©ã ã使ã£ãè¤åãã¼ã§ãããã¨"
+"ããããã¾ããããã¯äººãã¨ã« E ã¡ã¼ã«ã¢ãã¬ã¹ãéè¤ã§ããªãã¨ãããã¨ã§ã "
+"Java ã® 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 ""
+"以å人ã¨ã¤ãã³ããé¢é£ã¥ããã¨ãã¨å
¨ãåãããã«ãä»ã試ãã«ã³ã¬ã¯ã·ã§ã³ã«è¦"
+"ç´ ã追å ãããã¨ãã§ããããã«ãªãã¾ããã 両æ¹ã¨ã Java ã§ã¯åãã³ã¼ãã§ãã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This time we did not use a <emphasis>fetch</emphasis> query to initialize "
+"the collection. Monitor the SQL log and try to optimize this with an eager "
+"fetch."
+msgstr ""
+"ä»åãã³ã¬ã¯ã·ã§ã³ã®åæåã« <emphasis>fetch</emphasis> ã¯ã¨ãªã使ç¨ãã¾ãã"
+"ã§ããããã®ããã getter ã¡ã½ããã®å¼ã³åºãã«ãã£ã¦ã³ã¬ã¯ã·ã§ã³ãåæåãã"
+"ããã® SELECT ãå®è¡ãããã®ã§ãã³ã¬ã¯ã·ã§ã³ã«è¦ç´ ã追å ã§ãã¾ãã SQL ã®ãã°"
+"ãç£è¦ãã¦ãå³æãã§ããã使ã£ã¦æé©åãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr "åæ¹åé¢é£"
+
+#. 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 ""
+"次ã«åæ¹åé¢é£ããããã³ã°ãã¾ãã Java ã§ä¸¡å´ãã人ã¨ã¤ãã³ãã®é¢é£ãåä½ã"
+"ãã¾ãããã¡ããããã¼ã¿ãã¼ã¹ã¹ãã¼ãã¯å¤ããã¾ããããå¤é度ã¯å¤å¯¾å¤ã®ã¾ã¾"
+"ã§ãã"
+
+#. 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 ""
+"ãªã¬ã¼ã·ã§ãã«ãã¼ã¿ãã¼ã¹ã¯ãããã¯ã¼ã¯ããã°ã©ãã³ã°è¨èªãããæè»ãªã®ã§ã"
+"ããã²ã¼ã·ã§ã³ã®æ¹åã®ãããªãã®ãå¿
è¦ã¨ãã¾ããããã¼ã¿ã¯ããããæ¹æ³ã§è¦ã"
+"ã復å
ã§ããã¨ãããã¨ã§ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"class:"
+msgstr ""
+"ã¾ã <literal>Event</literal> ã¤ãã³ãã¯ã©ã¹ã«åå è
ã®ã³ã¬ã¯ã·ã§ã³ã追å ãã¾"
+"ãï¼"
+
+#. Tag: para
+#, no-c-format
+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 ""
+"ã覧ã®ã¨ããããããã®ãããã³ã°ããã¥ã¡ã³ã (XMLãã¡ã¤ã«) ã§ããæ®éã® "
+"<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 ""
+"ãã®æå®ã®æå³ã¯ã2ã¤ã®éã®ã¨ã³ãã£ãã£éã®ãªã³ã¯ã«ã¤ãã¦ã®æ
å ±ãæ¢ãå¿
è¦ãã"
+"ãã¨ãã Hibernate ã¯å対å´ã®ã¨ã³ãã£ãã£ãã¤ã¾ã <literal>Person</literal> "
+"ã¯ã©ã¹ããæ¢ãã¨ãããã¨ã§ããä¸åº¦2ã¤ã®ã¨ã³ãã£ãã£éã®åæ¹åãªã³ã¯ãã©ã®ãã"
+"ã«ä½æããããããããã°ããããç解ãããã¨ã¯ã¨ã¦ãç°¡åã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr "åæ¹åãªã³ã¯ã®åä½"
+
+#. 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>Person</literal> ã®ã¤ã³ã¹ã¿ã³ã¹ã®ã¤ãã³ãã¸ã®åç
§ã®ã³ã¬ã¯ã·ã§ã³ã« "
+"<literal>Event</literal> ã®ã¤ã³ã¹ã¿ã³ã¹ã追å ãã¾ããããã®ãããã®ãªã³ã¯ãå"
+"æ¹åã«ããããã°ãå½ããåã§ããå対å´ã«ãåããã¨ãããªããã°ãªãã¾ããã "
+"<literal>Event</literal> ã®ã³ã¬ã¯ã·ã§ã³ã« <literal>Person</literal> ã¸ã®åç
§"
+"ã追å ããã¨ãããã¨ã§ãããã®ã両å´ã§ãªã³ã¯ãè¨å®ãããã¨ãã¯çµ¶å¯¾ã«å¿
è¦ãªã®"
+"ã§ã決ãã¦å¿ããªãã§ãã ããã"
+
+#. 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> ã§ã¯ä»¥ä¸"
+"ã®ããã«ãªãã¾ããï¼"
+
+#. 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 ""
+"ã³ã¬ã¯ã·ã§ã³ã®ã²ããã¨ã»ããã¡ã½ãããç¾å¨ 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 ã¯ï¼å¶ç´éåãé¿ããããã«ï¼ SQL ã® <literal>INSERT</"
+"literal> 㨠<literal>UPDATE</literal> æãæ£ç¢ºã«å¤æ´ããããã®ååãªæ
å ±ã"
+"æã£ã¦ããªãã®ã§ãåæ¹åé¢é£ããããã£ãæ±ãããã®ä½ããã®å©ããå¿
è¦ã¨ãã¾"
+"ããé¢é£ã®çå´ã <literal>inverse</literal> ã«è¨å®ãããã¨ã§ã Hibernate ã¯åº"
+"æ¬çã«ã¯è¨å®ããå´ãç¡è¦ããå対å´ã® <emphasis>é¡</emphasis> ã¨ãã¦èãã¾ãã"
+"ããã ãã§ã Hibernate ã¯æ¹åãæã¤ããã²ã¼ã·ã§ã³ã¢ãã«ã SQL ãã¼ã¿ãã¼ã¹ã¹"
+"ãã¼ãã¸å¤æããã¨ãã®ãã¹ã¦ã®åé¡ã«ãã¾ã対å¦ã§ãã¾ããè¦ãã¦ãããªããã°ãª"
+"ããªãã«ã¼ã«ã¯ç°¡åã§ããåæ¹åé¢é£ã¯å¿
ãçå´ã <literal>inverse</literal> ã«"
+"ããå¿
è¦ãããã¨ãããã¨ã§ããä¸å¯¾å¤é¢é£ã§ã¯ããã¯å¤å´ã§ãªããã°ãªãã¾ããã"
+"å¤å¯¾å¤é¢é£ã§ã¯ã©ã¡ãå´ã§ãæ§ãã¾ãããã©ã¡ãã§ãéãã¯ããã¾ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr "ãã¼ã3 - EventManager Web ã¢ããªã±ã¼ã·ã§ã³"
+
+#. 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> ã使ç¨ãã¾"
+"ãããããããã¤ãã®ä¸è¬çãªãã¿ã¼ã³ãå½¹ç«ã¡ã¾ãããã㧠"
+"<literal>EventManagerServlet</literal> ãä½æãã¾ãããã®ãµã¼ãã¬ããã¯ããã¼"
+"ã¿ãã¼ã¹ã«æ ¼ç´ããå
¨ã¦ã®ã¤ãã³ãããªã¹ãã«ã§ããããã« HTML ãã©ã¼ã ããæ°ã"
+"ãã¤ãã³ããå
¥åã§ãããã®ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr "åºæ¬ç㪠Servlet ã®è¨è¿°"
+
+#. 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> ãå®è£
ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/"
+"EventManagerServlet.java</filename>"
+msgstr ""
+
+#. 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 ""
+"ãã㯠<emphasis>session-per-request</emphasis> ã¨ãããã¿ã¼ã³ã§ãã Servlet "
+"ããªã¯ã¨ã¹ããåãåãã¨ã <literal>SessionFactory</literal> ã® "
+"<literal>getCurrentSession()</literal> ã®æåã®å¼ã³åºãã§ã Hibernate ã®æ°ã"
+"ã <literal>Session</literal> ãéããã¾ãããã®ã¨ããã¼ã¿ãã¼ã¹ãã©ã³ã¶ã¯"
+"ã·ã§ã³ãéå§ããã¾ãããã¼ã¿ã®èªã¿æ¸ãã«é¢ãããããã¹ã¦ã®ãã¼ã¿ã¢ã¯ã»ã¹ã¯ã"
+"ã©ã³ã¶ã¯ã·ã§ã³å
ã§è¡ãã¾ãï¼ã¢ããªã±ã¼ã·ã§ã³å
ã§ã¯ãªã¼ãã³ãããã¢ã¼ãã使ç¨"
+"ãã¾ããï¼ã"
+
+#. 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 ""
+"å
¨ã¦ã®ãã¼ã¿ãã¼ã¹ãªãã¬ã¼ã·ã§ã³ã§æ°ãã Hibernate <literal>Session</"
+"literal> ãä½¿ç¨ <emphasis>ããªãã§ãã ãã</emphasis> ãå
¨ã¦ã®ãªã¯ã¨ã¹ãã§æ©"
+"è½ãããï¼ã¤ã® Hibernate <literal>Session</literal> ã使ç¨ãã¦ãã ãããèªå"
+"çã«ç¾å¨ã® Java ã¹ã¬ããã«ãã¤ã³ããããã®ã§ã <literal>getCurrentSession()</"
+"literal> ã使ç¨ãã¦ãã ããã"
+
+#. 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 ãæç»ããã¾"
+"ããããã«ã¤ãã¦ã¯ããã«èª¬æãã¾ãã"
+
+#. 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 ""
+"æå¾ã«ãªã¯ã¨ã¹ãã®å¦ç㨠HTML æç»ãå®äºããã¨ãã«ãä½æ¥åä½ (Unit of Work) "
+"ãçµäºãã¾ããããå¦çãæç»ä¸ã«åé¡ãçºçããå ´åãä¾å¤ãéåºããã¦ã¦ãã¼ã¿"
+"ãã¼ã¹ãã©ã³ã¶ã¯ã·ã§ã³ããã¼ã«ããã¯ãã¾ãããã㧠<literal>session-per-"
+"request</literal> ãã¿ã¼ã³ãå®äºãã¾ããå
¨ã¦ã®ãµã¼ãã¬ããã«ãã©ã³ã¶ã¯ã·ã§ã³"
+"å¢çã®ã³ã¼ããæ¸ã代ããã«ããµã¼ãã¬ãããã£ã«ã¿ã«è¨è¿°ãããã¨ãå¯è½ã§ãã "
+"<emphasis>Open Session in View</emphasis> ã¨å¼ã°ãããã®ãã¿ã¼ã³ã«ã¤ãã¦ã¯ã "
+"Hibernate ã® Web ãµã¤ãã Wiki ãåç
§ãã¦ãã ããããµã¼ãã¬ããã§ã¯ãªã JSP "
+"㧠HTML æç»ããããã¨ããã¨ãããã«ãã®ãã¿ã¼ã³ã«ã¤ãã¦ã®æ
å ±ãå¿
è¦ã«ãªãã§"
+"ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr "å¦çã¨æç»"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now you can implement the processing of the request and the rendering of the "
+"page."
+msgstr "ã§ã¯ããªã¯ã¨ã¹ãã®å¦çã¨ãã¼ã¸ã®æç»ãå®è£
ãã¾ãã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This coding style, with a mix of Java and HTML, would not scale in a more "
+"complex application—keep in mind that we are only illustrating basic "
+"Hibernate concepts in this tutorial. The code prints an HTML header and a "
+"footer. Inside this page, an HTML form for event entry and a list of all "
+"events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
+msgstr ""
+"Java 㨠HTML ãæ··å¨ããã³ã¼ãã£ã³ã°ã¹ã¿ã¤ã«ã¯ãããè¤éãªã¢ããªã±ã¼ã·ã§ã³ã«ã¯"
+"é©ãã¦ããªãã§ããã ï¼ãã®ãã¥ã¼ããªã¢ã«ã§ã¯ãåºæ¬ç㪠Hibernate ã®ã³ã³ã»ã"
+"ãã示ãã¦ããã ãã§ãããã¨ãè¦ãã¦ããã¦ãã ããï¼ããã®ã³ã¼ã㯠HTML ã®"
+"ãããã¼ã¨ããã¿ã¼ã®è¨è¿°ã§ãããã®ãã¼ã¸ã«ã¯ãã¤ãã³ããå
¥åãã HTML ãã©ã¼"
+"ã ã¨ããã¼ã¿ãã¼ã¹ã«ããå
¨ã¦ã®ã¤ãã³ãã®ãªã¹ãã表示ããã¾ããæåã®ã¡ã½ãã"
+"ã¯ããåç´ãª 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> ã使ç¨ãã¦ãã¯ã¨ãªãå®è¡ãã¾ãã"
+
+#. 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> ãå©ç¨ãã¾ãã"
+
+#. 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 ""
+"ããã§ãµã¼ãã¬ããã®å®æã§ãããµã¼ãã¬ããã¸ã®ãªã¯ã¨ã¹ãã¯ã1ã¤ã® "
+"<literal>Session</literal> 㨠<literal>Transaction</literal> ã§å¦çãããã§"
+"ããããæåã®ã¹ã¿ã³ãã¢ãã¼ã³ã®ã¢ããªã±ã¼ã·ã§ã³ã®ããã«ã Hibernate ã¯èªåç"
+"ã«ãããã®ãªãã¸ã§ã¯ããå®è¡ããã¹ã¬ããã«çµã³ä»ãããã¨ãã§ãã¾ããããã«ã"
+"ããéçºè
ãèªç±ã«ã³ã¼ããã¬ã¤ã¤ã¼åãã§ãã好ããªæ¹æ³ã§ "
+"<literal>SessionFactory</literal> ã¸ã®ã¢ã¯ã»ã¹ãã§ããããã«ãªãã¾ããé常ã"
+"éçºè
ã¯ããæ´ç·´ããããã¶ã¤ã³ã使ç¨ãã¦ããã¼ã¿ã¢ã¯ã»ã¹ã®ã³ã¼ãããã¼ã¿ã¢ã¯"
+"ã»ã¹ãªãã¸ã§ã¯ãã«ç§»åããã§ãããï¼DAOãã¿ã¼ã³ï¼ãããå¤ãã®ä¾ã¯ã "
+"Hibernate ã® Wiki ãåç
§ãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr "ãããã¤ã¨ãã¹ã"
+
+#. 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 ""
+
+#. 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>mvn package</"
+"literal> ãå¼ã³åºãã <literal>hibernate-tutorial.war</literal> ãã¡ã¤ã«ã "
+"Tomcat ã® <literal>webapp</literal> ãã£ã¬ã¯ããªã«ã³ãã¼ãã¦ãã ããã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you do not have Tomcat installed, download it from <ulink url=\"http://"
+"tomcat.apache.org/\" /> and follow the installation instructions. Our "
+"application requires no changes to the standard Tomcat configuration."
+msgstr ""
+"ã¾ã Tomcat ãã¤ã³ã¹ãã¼ã«ãã¦ããªããã°ããã¦ã³ãã¼ããã¦ãã¤ã³ã¹ãã¼ã«ã¬ã¤"
+"ãã«å¾ã£ã¦ãã ããããããããã®ã¢ããªã±ã¼ã·ã§ã³ã®ãããã¤ããããã«ã "
+"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> ã§ã¢ããªã±ã¼ã·ã§ã³ã¸ã®ã¢ã¯ã»ã¹ãå¯"
+"è½ã§ããæåã®ãªã¯ã¨ã¹ããä½æãããµã¼ãã¬ããã«æ¸¡ã£ãã¨ãã«ã Tomcat ã®ãã°"
+"㧠Hibernate ã®åæåå¦çã確èªãã¦ãã ãã ï¼ <literal>HibernateUtil</"
+"literal> å
ã®éçåæåãããã¯ãå¼ã°ãã¦ãã¾ãï¼ãã¾ããä¾å¤ãçºçãããªã詳"
+"ç´°ã確èªãã¦ãã ããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "è¦ç´"
+
+#. 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 ã¢ããªã±ã¼ã·ã§ã³ã¨"
+"å°è¦æ¨¡ã® Web ã¢ããªã±ã¼ã·ã§ã³ãæ¸ãããã®åºæ¬ãç´¹ä»ãã¾ããã"
+
+#, fuzzy
+#~ 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 ""
+#~ "package events;\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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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>\n"
+#~ "[...]\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<?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\">create</property>\n"
+#~ "\n"
+#~ " <mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>"
+
+#, fuzzy
+#~ 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 ""
+#~ "package util;\n"
+#~ "\n"
+#~ "import org.hibernate.*;\n"
+#~ "import org.hibernate.cfg.*;\n"
+#~ "\n"
+#~ "public class HibernateUtil {\n"
+#~ "\n"
+#~ " private static final SessionFactory sessionFactory;\n"
+#~ "\n"
+#~ " static {\n"
+#~ " try {\n"
+#~ " // Create the SessionFactory from hibernate.cfg.xml\n"
+#~ " sessionFactory = new Configuration().configure()."
+#~ "buildSessionFactory();\n"
+#~ " } catch (Throwable ex) {\n"
+#~ " // Make sure you log the exception, as it might be swallowed\n"
+#~ " System.err.println(\"Initial SessionFactory creation failed."
+#~ "\" + ex);\n"
+#~ " throw new ExceptionInInitializerError(ex);\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ " public static SessionFactory getSessionFactory() {\n"
+#~ " return sessionFactory;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "package events;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "import util.HibernateUtil;\n"
+#~ "\n"
+#~ "public class EventManager {\n"
+#~ "\n"
+#~ " public static void main(String[] args) {\n"
+#~ " EventManager mgr = new EventManager();\n"
+#~ "\n"
+#~ " if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " }\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory().close();\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void createAndStoreEvent(String title, Date theDate) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " session.save(theEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, "
+#~ "EVENT_ID) values (?, ?, ?)]]>"
+#~ msgstr ""
+#~ "[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values "
+#~ "(?, ?, ?)"
+
+#, fuzzy
+#~ 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 ""
+#~ "if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ "}\n"
+#~ "else if (args[0].equals(\"list\")) {\n"
+#~ " List events = mgr.listEvents();\n"
+#~ " for (int i = 0; i < events.size(); i++) {\n"
+#~ " Event theEvent = (Event) events.get(i);\n"
+#~ " System.out.println(\"Event: \" + theEvent.getTitle() +\n"
+#~ " \" Time: \" + theEvent.getDate());\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private List listEvents() {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " List result = session.createQuery(\"from Event\").list();\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " return result;\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "package events;\n"
+#~ "\n"
+#~ "public class Person {\n"
+#~ "\n"
+#~ " private Long id;\n"
+#~ " private int age;\n"
+#~ " private String firstname;\n"
+#~ " private String lastname;\n"
+#~ "\n"
+#~ " public Person() {}\n"
+#~ "\n"
+#~ " // Accessor methods for all properties, private setter for 'id'\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>]]>"
+#~ msgstr ""
+#~ "<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ "\n"
+#~ " <set name=\"events\" table=\"PERSON_EVENT\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <many-to-many column=\"EVENT_ID\" class=\"events.Event\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | |\n"
+#~ " |_____________| |__________________| | PERSON |\n"
+#~ " | | | | |_____________|\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | |\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE |\n"
+#~ " |_____________| | FIRSTNAME |\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session\n"
+#~ " .createQuery(\"select p from Person p left join fetch p."
+#~ "events where p.id = :pid\")\n"
+#~ " .setParameter(\"pid\", personId)\n"
+#~ " .uniqueResult(); // Eager fetch the collection so we can use "
+#~ "it detached\n"
+#~ "\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " // End of first unit of work\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent); // aPerson (and its collection) is "
+#~ "detached\n"
+#~ "\n"
+#~ " // Begin second unit of work\n"
+#~ "\n"
+#~ " Session session2 = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session2.beginTransaction();\n"
+#~ "\n"
+#~ " session2.update(aPerson); // Reattachment of aPerson\n"
+#~ "\n"
+#~ " session2.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "private Set emailAddresses = new HashSet();\n"
+#~ "\n"
+#~ "public Set getEmailAddresses() {\n"
+#~ " return emailAddresses;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setEmailAddresses(Set emailAddresses) {\n"
+#~ " this.emailAddresses = emailAddresses;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[ <set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR"
+#~ "\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ " </set>]]>"
+#~ msgstr ""
+#~ "<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | | "
+#~ "___________________\n"
+#~ " |_____________| |__________________| | PERSON | "
+#~ "| |\n"
+#~ " | | | | |_____________| | "
+#~ "PERSON_EMAIL_ADDR |\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | "
+#~ "| |___________________|\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | "
+#~ "<--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE | | "
+#~ "*EMAIL_ADDR |\n"
+#~ " |_____________| | FIRSTNAME | |"
+#~ "___________________|\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addEmailToPerson(Long personId, String emailAddress) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ "\n"
+#~ " // The getEmailAddresses() might trigger a lazy load of the "
+#~ "collection\n"
+#~ " aPerson.getEmailAddresses().add(emailAddress);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private Set participants = new HashSet();\n"
+#~ "\n"
+#~ "public Set getParticipants() {\n"
+#~ " return participants;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setParticipants(Set participants) {\n"
+#~ " this.participants = participants;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[ <set name=\"participants\" table=\"PERSON_EVENT\" "
+#~ "inverse=\"true\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ " </set>]]>"
+#~ msgstr ""
+#~ "<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true"
+#~ "\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "protected void doGet(HttpServletRequest request,\n"
+#~ " HttpServletResponse response)\n"
+#~ " throws ServletException, IOException {\n"
+#~ "\n"
+#~ " SimpleDateFormat dateFormatter = new SimpleDateFormat(\"dd.MM.yyyy"
+#~ "\");\n"
+#~ "\n"
+#~ " try {\n"
+#~ " // Begin unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // Process request and render page...\n"
+#~ "\n"
+#~ " // End unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().commit();\n"
+#~ "\n"
+#~ " } catch (Exception ex) {\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().rollback();\n"
+#~ " throw new ServletException(ex);\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "// Write HTML header\n"
+#~ "PrintWriter out = response.getWriter();\n"
+#~ "out.println(\"<html><head><title>Event Manager</"
+#~ "title></head><body>\");\n"
+#~ "\n"
+#~ "// Handle actions\n"
+#~ "if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
+#~ "\n"
+#~ " String eventTitle = request.getParameter(\"eventTitle\");\n"
+#~ " String eventDate = request.getParameter(\"eventDate\");\n"
+#~ "\n"
+#~ " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
+#~ " out.println(\"<b><i>Please enter event title and date."
+#~ "</i></b>\");\n"
+#~ " } else {\n"
+#~ " createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n"
+#~ " out.println(\"<b><i>Added event.</i></b>"
+#~ "\");\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "// Print page\n"
+#~ "printEventForm(out);\n"
+#~ "listEvents(out, dateFormatter);\n"
+#~ "\n"
+#~ "// Write HTML footer\n"
+#~ "out.println(\"</body></html>\");\n"
+#~ "out.flush();\n"
+#~ "out.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void printEventForm(PrintWriter out) {\n"
+#~ " out.println(\"<h2>Add new event:</h2>\");\n"
+#~ " out.println(\"<form>\");\n"
+#~ " out.println(\"Title: <input name='eventTitle' length='50'/><"
+#~ "br/>\");\n"
+#~ " out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
+#~ "length='10'/><br/>\");\n"
+#~ " out.println(\"<input type='submit' name='action' value='store'/>"
+#~ "\");\n"
+#~ " out.println(\"</form>\");\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) "
+#~ "{\n"
+#~ "\n"
+#~ " List result = HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().createCriteria(Event.class).list"
+#~ "();\n"
+#~ " if (result.size() > 0) {\n"
+#~ " out.println(\"<h2>Events in database:</h2>\");\n"
+#~ " out.println(\"<table border='1'>\");\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<th>Event title</th>\");\n"
+#~ " out.println(\"<th>Event date</th>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " for (Iterator it = result.iterator(); it.hasNext();) {\n"
+#~ " Event event = (Event) it.next();\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<td>\" + event.getTitle() + \"</td>"
+#~ "\");\n"
+#~ " out.println(\"<td>\" + dateFormatter.format(event."
+#~ "getDate()) + \"</td>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " }\n"
+#~ " out.println(\"</table>\");\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "protected void createAndStoreEvent(String title, Date theDate) {\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().save(theEvent);\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun."
+#~ "com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>org.hibernate.tutorial.web.EventManagerServlet</"
+#~ "servlet-class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee\n"
+#~ " http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>events.EventManagerServlet</servlet-"
+#~ "class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/xml.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/xml.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/content/xml.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,541 @@
+# translation of Collection_Mapping.po to
+# Xi HUANG <xhuang at redhat.com>, 2007, 2010.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-01-18 15:42+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+msgstr "XML ãããã³ã°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
+"currently under active development. </emphasis>"
+msgstr ""
+"XML ãããã³ã°ã¯ Hibernate3.0 ã§ã¯è©¦é¨çãªæ©è½ã§ãããé常ã«æ´»åçã«éçºä¸ã§"
+"ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr "XML ãã¼ã¿ã§ã®ä½æ¥"
+
+#. 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 ã§ã¯æ°¸ç¶æ§ã® POJO ã使ã£ã¦ä½æ¥ããã®ã¨ã»ã¼åããããªããæ¹ã§ãæ°¸ç¶"
+"æ§ã® XML ãã¼ã¿ã使ã£ã¦ä½æ¥ã§ãã¾ãã解æããã 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 㯠XML ããªã¼ãæä½ããããã® API ã¨ã㦠dom4j ããµãã¼ããã¦ãã¾"
+"ãããã¼ã¿ãã¼ã¹ãã dom4j ã®ããªã¼ã復å
ããã¯ã¨ãªãæ¸ããã¨ãã§ããããªã¼ã«"
+"対ãã¦è¡ã£ãä¿®æ£ã¯èªåçã«ãã¼ã¿ãã¼ã¹ã¨åæããã¾ããã¾ã XML ããã¥ã¡ã³ãã"
+"åå¾ãããã¨ãã§ãã dom4j ã使ã£ã¦ããã¥ã¡ã³ãããã¼ã¹ãã Hibernate ã®ä»»æ"
+"ã®åºæ¬æä½ã使ã£ã¦ãã¼ã¿ãã¼ã¹ã¸æ¸ãè¾¼ããã¨ãã§ãã¾ããï¼ ã¤ã¾ãã "
+"<literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</literal> "
+"æä½ã§ã (ãã¼ã¸ã¯ã¾ã ãµãã¼ããã¦ãã¾ãã)ã"
+
+#. 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 ãã¼ã¹ã®ã¬ãã¼ããªã©ããã®æ©è½ã«ã¯å¤ãã®ç¨éãããã¾ãã"
+
+#. 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 ã ãããããã³ã°ããããã«ä½¿ããã¨ãã§ãã¾ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying XML and class mapping together"
+msgstr "XML ã¨ã¯ã©ã¹ã®ãããã³ã°ãåæã«æå®ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr "ãã㯠POJO 㨠XML ãåæã«ãããã³ã°ããä¾ã§ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr "XML ãããã³ã°ã ããæå®ãã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr "ãã㯠POJO ã¯ã©ã¹ããªããããã³ã°ã®ä¾ã§ãï¼"
+
+#. 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 ã¯ã¨ãªå
ã§åç
§ã§ããç´ç²ãªè«çæ§é ã§ãã"
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr "XML ãããã³ã°ã®ã¡ã¿ãã¼ã¿"
+
+#. 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> å±æ§ã®ãã©ã¼ãããã¯ä»¥ä¸ã®ä¸ã®1ã¤ã§ãª"
+"ããã°ãªãã¾ããï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"element-name\"</literal>: map to the named XML element"
+msgstr ""
+"<literal>\"element-name\"</literal> - æå®ãã XML è¦ç´ ã¸ãããã³ã°ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
+msgstr ""
+"<literal>\"@attribute-name\"</literal> - æå®ãã XML å±æ§ã¸ãããã³ã°ãã¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr "<literal>\".\"</literal> - 親è¦ç´ ã¸ãããã³ã°ãã¾ã"
+
+#. 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> - æå®ããã¨ã¬ã¡ã³ãã®æ"
+"å®ããå±æ§ã¸ãããã³ã°ãã¾ã"
+
+#. 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> ã¨è¨å®ãã"
+"å ´åãé¢é£ããã¨ã³ãã£ã㣠(å¤åã®ã³ã¬ã¯ã·ã§ã³) ã® 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 ""
+"ãã¾ãã«å¤ãã®é¢é£ã«å¯¾ã㦠<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 ã®ãã¼ã¿ã§ã¯ãªãã account ã® id ã®ã³ã¬ã¯ã·ã§ã³ã"
+"åãè¾¼ããã¨ã«ãã¾ãããç¶ãã® HQL ã¯ã¨ãªã§ãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "would return datasets such as this:"
+msgstr "ãã®ãããªãã¼ã¿ã»ãããè¿ãã§ããã:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
+"many></literal> mapping, the data might look more like this:"
+msgstr ""
+"<literal><one-to-many></literal> ãããã³ã°ã§ <literal>embed-xml=\"true"
+"\"</literal> ã¨è¨å®ããå ´åããã¼ã¿ã¯ãã®ããã«ãªãã§ãããã"
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr "XML ãã¼ã¿ãæ±ã"
+
+#. 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 ã®ã»ãã·ã§ã³ãåå¾ãããã¨ã§è¡ãã¾ãï¼"
+
+#. 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 ""
+"XML ãã¼ã¹ã®ãã¼ã¿ã®ã¤ã³ãã¼ã/ã¨ã¯ã¹ãã¼ããå®è£
ããããã«ã Hibernate ã® "
+"<literal>replicate()</literal> æä½ããã®æ©è½ã«çµã³ã¤ããã®ã¯æ¥µãã¦æå¹ã§ãã"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Customer c left join fetch c.accounts where c.lastName "
+#~ "like :lastName]]>"
+#~ msgstr ""
+#~ "from Customer c left join fetch c.accounts where c.lastName like :lastName"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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();"
+
+#, fuzzy
+#~ 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 ""
+#~ "Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " //change the customer name in the XML and database\n"
+#~ " Element name = customer.element(\"name\");\n"
+#~ " name.element(\"first-name\").setText(firstName);\n"
+#~ " name.element(\"initial\").setText(initial);\n"
+#~ " name.element(\"last-name\").setText(lastName);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Conventions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Conventions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Conventions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,214 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-02-04T04:51:23\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,23 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-02-04T04:51:23\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/fallback_content/Legal_Notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,19 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-02-04T04:51:23\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/legal_notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/legal_notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ja-JP/legal_notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,78 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr "Legal Notice"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
+"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
+"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
+"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
+"Triangle Park</city>, <state>NC</state><postcode>27709</"
+"postcode><country>USA</country> </address>"
+msgstr ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
+"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
+"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
+"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
+"<state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+msgstr ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+msgstr ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+msgstr ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr "The GPG fingerprint of the security at redhat.com key is:"
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Book_Info.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Book_Info.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Book_Info.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,29 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-02-04T04:51:21\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,23 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#~ msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+#~ msgstr "HIBERNATE - ê°ì±ìë ìë°ë¥¼ ìí ê´ê³ ìì"
+
+#~ msgid "Hibernate Reference Documentation"
+#~ msgstr "íì´ë²ë¤ì´í¸ 참조 문ì"
+
+#~ msgid "©rightHolder;"
+#~ msgstr "©rightHolder;"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Hibernate_Reference.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Hibernate_Reference.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/Hibernate_Reference.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,30 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\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-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/author_group.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/author_group.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/author_group.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,149 @@
+# Language ko-KR translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2009-07-14 19:55+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: 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 ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/architecture.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/architecture.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/architecture.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,590 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-01-12 20:35+0900\n"
+"Last-Translator: Jongdae Kim <jdkim528 at korea.com>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr "ìí¤í
ì²"
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr "ê°ì"
+
+#. Tag: para
+#, no-c-format
+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ë ì ì°íë©° ëªëª ë¤ë¥¸ ì ê·¼ë²ë¤ì ì "
+"ê³µíë¤. íì§ë§ ì°ë¦¬ë ë ê°ì§ ê·¹ë¨ì ë³´ì¬ì¤ ê²ì´ë¤. \"ìµì\" ìí¤í
ì²ì \"ì¢
"
+"í©\" ìí¤í
ì²."
+
+#. 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 ""
+"ì´ ë¤ì ë¤ì´ì´ê·¸ë¨ì íì´ë²ë¤ì´í¸ê° ììí ìë¹ì¤ë¤ê³¼ ìì ê°ì²´ë¤ì ì´í리ì¼"
+"ì´ì
ì ì ê³µí기 ìí´ ë°ì´í°ë² ì´ì¤ì 컨í¼ê·¸ë ì´ì
ë°ì´í°ë¥¼ ì´ë»ê² ì´ì©íëì§"
+"를 ì¤ëª
íë¤."
+
+#. 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 커ë¥ì
ë¤ì ê°ì§"
+"ê³ ê·¸ê² ìì ì í¸ëìì
ë¤ì ê´ë¦¬íëë¡ íë¤. ì´ ì ê·¼ë²ì íì´ë²ë¤ì´í¸ 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ë¡ë¶í° ì´í리ì¼ì´ì
ì ì¶ìí ìí¤ê³ "
+"Hibernateë¡ íì¬ê¸ ì¸ë¶ì ì¸ ê²ì ê´ë¦¬íëë¡ íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr "ë¤ìì ë¤ì´ì´ê·¸ë¨ì ëí´ëì´ ìë ê°ì²´ë¤ì ëí ëªê°ì§ ì ìë¤ì´ë¤:"
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+
+#. 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>ì í´ë¼ì´ì¸í¸ë íë¡ì¸ì¤ ë 벨 ë"
+"ë í´ë¬ì¤í° ë 벨ìì í¸ëìì
ë¤ ì¬ì´ì ì¬ì¬ì©ì´ ê°ë¥í ë°ì´í°ì ëí ì íì "
+"ì¸ (second-level) ìºì를 ë³´ì í ì ìë¤."
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr "Session (<literal>org.hibernate.Session</literal>)"
+
+#. 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>ì ì"
+"í í©í 리ì´ë¤. <literal>Session</literal>ì ê°ì²´ ê·¸ëí를 ë¤ë¹ê²ì´í¸ íê±°ë "
+"ìë³ìë¡ì ê°ì²´ë¤ì íìí ë ì¬ì©ëë ìì ê°ì²´ë¤ì ëí íìì ì¸ ì²« ë²ì§¸ ë "
+"벨 ìºì를 ë³´ì íê³ ìë¤."
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr "ìì ê°ì²´ë¤ê³¼ ì½ë ì
ë¤"
+
+#. 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 ""
+"ìì ìíì ë¹ì§ëì¤ ê¸°ë¥ì í¬í¨íë ìëª
ì´ ì§§ì, ë¨ì¼ ì°ë ë ê°ì²´ë¤. ì´ê²ë¤"
+"ì íµìì ìë°ë¹ì¦/POJOë¤ì¼ ì ìë¤. ê·¸ê²ë¤ì ì íí í ê°ì "
+"<literal>Session</literal>ê³¼ ì°ê´ì§ìì§ë¤. <literal>Session</literal>ì´ ë«í"
+"ë ìê°, ê·¸ê²ë¤ì ë¶ë¦¬ë ê²ì´ê³ ììì ì´í리ì¼ì´ì
ê³ì¸µìì ì¬ì©ì´ ìì ë¡ì"
+"ì§ë¤(ì를 ë¤ë©´. ì§ì ì ì¼ë¡ í리ì í
ì´ì
ê³ì¸µ ì¬ì´ì ë°ì´í° ì ì¡ ê°ì²´ë¤ë¡ì)."
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr "ì ì´(Transient, íì 주-ê³¼ë) ê°ì²´ë¤ê³¼ ì½ë ì
ë¤"
+
+#. 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>ì ìí´ ì´ê¸°í ëìì ì ìë¤."
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
+
+#. 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> ì¤ ì´ëê²ì ì¬ì©íë í¸ëìì
ê²½"
+"ê³ ì¤ì ì ê²°ì½ ìµì
ì´ ìëë¤."
+
+#. Tag: term
+#, no-c-format
+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 ì°ê²°ë¤ì ìí í©í 리, ê·¸ë¦¬ê³ ê·¸ê²ë¤ì pool. ê·¸ê²ì 기본 "
+"<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>)"
+
+#. 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> ì¸ì¤í´ì¤ë¤ì ìí í©í 리. ê·¸ê²ì ì´í리"
+"ì¼ì´ì
ì ë
¸ì¶ëì§ ìì§ë§, ê·¸ê²ì ê°ë°ìì ìí´ íì¥ ê·¸ë¦¬ê³ /ëë 구í ë ì "
+"ìë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr "Extension Interfaces"
+
+#. 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 ""
+"íì´ë²ë¤ì´í¸ë ë¹ì ì´ ë¹ì ì ìì ê³ì¸µì íì를 ë§ì¶¤í ìí¤ê¸° ìí´ êµ¬íí ì "
+"ìë ì íì ì¸ íì¥ ì¸í°íì´ì¤ë¤ì ììì ì ê³µíë¤. ìì¸í ê²ì 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 ""
+"\"ìµì\" ìí¤í
ì²ì ê²½ì°, ì´í리ì¼ì´ì
ì JTA ëë JDBCì ì§ì íµì í기 ìí´ "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> ê·¸ë¦¬ê³ /"
+"ëë <literal>ConnectionProvider</literal> APIë¤ì 무ìíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr "ì¸ì¤í´ì¤ ìíë¤"
+
+#. 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>ìì 컨í
ì¤í¸</emphasis>ì ê´ë ¨íì¬ ì ìëë¤. íì´ë²ë¤ì´í¸ "
+"<literal>Session</literal> ê°ì²´ë ìì 컨í
ì¤í¸ì´ë¤. ì¸ ê°ì ë¤ë¥¸ ìíë¤ì ë¤"
+"ìê³¼ ê°ë¤:"
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr "transient"
+
+#. 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 ""
+"ê·¸ ì¸ì¤í´ì¤ë ììì ìì 컨í
ì¤í¸ì ì°ê´ì§ìì ¸ ìì§ ìë¤. ê·¸ê²ì ìì ìë³"
+"ì ëë íë¼ì´ë¨¸ë¦¬ í¤ ê°ì ê°ì§ ìëë¤."
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr "persistent"
+
+#. 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 ""
+"ê·¸ ì¸ì¤í´ì¤ë íì¬ ìì 컨í
ì¤í¸ì ì°ê´ëì´ ìë¤. ê·¸ê²ì ìì ìë³ì(íë¼ì´ë¨¸"
+"리 í¤ ê°)ì ê°ê³ ìê³ ë°ì´í°ë² ì´ì¤ ë´ìì íëì ëìíë íì ê°ì§ ì ìë¤. "
+"í¹ì ìì 컨í
ì¤í¸ì ê²½ì°, íì´ë²ë¤ì´í¸ë ìì ìë³ìê° ê°ì²´ì ë©ëª¨ë¦¬ ë´ ìì¹"
+"ì ê´íì¬ ìë° ìë³ìì ëë±í¨ì <emphasis>ë³´ì¦íë¤</emphasis>."
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr "detached"
+
+#. 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 ""
+"ê·¸ ì¸ì¤í´ì¤ë ì¼ë¨ ìì 컨í
ì¤í¸ì ì°ê´ëìì§ë§, ê·¸ 컨í
ì¤í¸ê° ë«íì¡ê±°ë, ë"
+"ë ê·¸ ì¸ì¤í´ì¤ê° ë ë¤ë¥¸ íë¡ì¸ì¤ì ì§ë ¬í ëìë¤. ê·¸ê²ì ìì ìë³ì를 ê°ê³ "
+"ìì¼ë©°, ë°ì´í°ë² ì´ì¤ ë´ìì íëì ëìíë íì ê°ì§ ì ìë¤. ë¶ë¦¬ë ì¸ì¤í´"
+"ì¤ë¤ì ê²½ì°, íì´ë²ë¤ì´í¸ë ìì ìë³ìì ìë° ìë³ì ì¬ì´ì ê´ê³ë¥¼ ë³´ì¦íì§ "
+"ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr "JMX íµí©"
+
+#. 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ë ìë° ì»´í¬ëí¸ ê´ë¦¬ë¥¼ ìí J2EE íì¤ì´ë¤. íì´ë²ë¤ì´í¸ë 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 ì´í리ì¼ì´ì
ìë² ìì JMX ìë¹ì¤ë¡ì íì´ë²ë¤ì´í¸ë¥¼ ë°°í¬íë ë°©ë²ì ë"
+"í ìì ë JBoss ì¬ì©ì ê°ì´ë를 보길 ë°ëë¤. ë¹ì ì´ JMX를 ì¬ì©íì¬ ë°°í¬í ê²½"
+"ì°, 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>: íì´ë²ë¤ì´í¸ <literal>Session</literal>ì ì"
+"ëª
주기ë JTA í¸ëìì
ì ììì ìëì ì¼ë¡ 묶ì¬ì§ ì ìë¤. ì´ê²ì ë¹ì ì´ "
+"<literal>Session</literal>ì ë ì´ì ììì
ì¼ë¡ ì´ê±°ë ë«ì§ ììë ë¨ì ì미"
+"íë¤; ì´ê²ì JBoss ì¸í°ì
í°ì ìì
ì´ ëë¤. ë¹ì ì ëí ë ì´ì ë¹ì ì ì½ë ë´"
+"ìì í¸ëìì
격리ì ëí´ ê±±ì íì§ ììë ëë¤(ë§ì¼ ë¹ì ì´ ì´ìê°ë¥í ìì ê³"
+"층ì ìì±íê³ ì ìí ê²½ì° ì´ê²ì ìí´ ì íì ì¼ë¡ íì´ë²ë¤ì´í¸ "
+"<literal>Transaction</literal> API를 ì¬ì©íë¼). ë¹ì ì <literal>Session</"
+"literal>ì ì ê·¼í기 ìí´ <literal>HibernateContext</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ê° íì´ë²ë¤ì´í¸ <literal>SessionFactory</"
+"literal>ì ê±°ì 모ë êµ¬ì± ìµì
ë¤ì ì§ìíë¯ë¡, íì´ë²ë¤ì´í¸ JMS ìë¹ì¤ë "
+"JBoss ìë¹ì¤ ë°°í¬ ëì¤í¬ë¦½í°ë¥¼ ì¬ì©íì¬ EAR ê·¸ë¦¬ê³ /ëë SAR íì¼ë¡ì ë°°í¬ë"
+"ë¤. íì§ë§ ë¹ì ì ì¬ì í ë°°í¬ ëì¤í¬ë¦½í° ë´ì 모ë ë¹ì ì 매í íì¼ë¤ì ëª
ëª
"
+"í íìê° ìë¤. ë§ì¼ ë¹ì ì´ ì íì ì¸ HAR ë°°í¬ë¥¼ ì¬ì©í ê²½ì°, JBossë ë¹ì ì "
+"HAR íì¼ ë´ì ìë 모ë 매í íì¼ë¤ì ìëì ì¼ë¡ ê²ì¶í ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Consult the JBoss AS user guide for more information about these options."
+msgstr ""
+"ì´ë¤ ìµì
ë¤ì ëí ì¶ê° ì ë³´ë JBoss ì´í리ì¼ì´ì
ìë² ì¬ì©ì ê°ì´ë를 참조í"
+"ë¼."
+
+#. Tag: para
+#, 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 ""
+"JMX ìë¹ì¤ë¡ì ì´ì© ê°ë¥í ëë¤ë¥¸ í¹ì§ì ë°íì íì´ë²ë¤ì´í¸ íµê³ì´ë¤. ë¶ê° "
+"ì ë³´ë <xref linkend=\"configuration-optional-statistics\"/>를 ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr "JCA ì§ì"
+
+#. 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 ""
+"íì´ë²ë¤ì´í¸ë ëí JCA 커ë¥í°ë¡ì 구ì±ë ìë ìë¤. ë¶ê° ì ë³´ë ì¹ ì¬ì´í¸ë¥¼ "
+"보길 ë°ëë¤. íì§ë§ í ë¨ê²ìì íì´ë²ë¤ì´í¸ JCA ì§ìì ê°ë° ì¤ì ììì ì¼ë"
+"ì ë길 ë°ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Contextual sessions"
+msgstr "컨í
ì¤í¸ì ì¸ì
ë¤"
+
+#. 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 ""
+"íì´ë²ë¤ì´í¸ë¥¼ ì¬ì©íë ëë¶ë¶ì ì´í리ì¼ì´ì
ë¤ì \"컨í
ì¤í¸ìì(contextual)"
+"\" ì¸ì
ì ëí ì´ë¤ íìì íìë¡ íë©°, ì¬ê¸°ì 주ì´ì§ ì¸ì
ì 주ì´ì§ 컨í
ì¤í¸"
+"ì ìì ë´ìì í¨ê³¼ê° ìë¤. íì§ë§ ì´í리ì¼ì´ì
ë¤ì ê°ë¡ì§ë¬ ì´ë 컨í
ì¤í¸ë¥¼ "
+"구ì±íë ê²ì ëí ì ìë ì¼ë°ì ì¼ë¡ ë¤ë¥´ë¤; ê·¸ë¦¬ê³ ë¤ë¥¸ 컨í
ì¤í¸ë¤ì´ íì¬ë¼"
+"ê³ íë ê°ë
ì ëí´ ë¤ë¥¸ ììë¤ì ì ìíë¤. ë²ì 3.0 ì´ì ì íì´ë²ë¤ì´í¸ë¥¼ ì¬"
+"ì©íë ì´í리ì¼ì´ì
ë¤ì <literal>HibernateUtil</literal>ê³¼ ê°ì helper í´ëì¤"
+"ë¤ì¸, ìê°ìì°ë <literal>ThreadLocal</literal>-기ë°ì 컨í
ì¤í¸ ì¸ì
ë¤ì íì©"
+"íë ¤ê³ íê±°ë, íë½ì/ì¸í°ì
ì
기ë°ì 컨í
ì¤í¸ ì¸ì
ë¤ì ì ê³µí´ì£¼ìë, Spring"
+"ì´ë Picoì ê°ì ì 3ì íë ììë¤ì íì©íë¤."
+
+#. 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ììë¶í°, íì´ë²ë¤ì´í¸ë <literal>SessionFactory.getCurrentSession"
+"()</literal> ë©ìë를 ì¶ê°íë¤. ì´ê¸°ì ì´ê²ì <literal>JTA</literal> í¸ëì"
+"ì
ì¬ì©ì ì ì íì¼ë©°, <literal>JTA</literal> í¸ëìì
ì í ì¸ì
ì ìì ë° ì»¨"
+"í
ì¤í¸ ë ë¤ ì ìíë¤. ë§ì ì¤í ëì¼ë¡ <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>ê° íì¬ ì¸ì
ë¤ì ì ìíë ìì ë° ì»¨í
"
+"ì¤í¸ì íë¬ê·¸ ê°ë¥ì±ì íì©íëë¡ ì¶ê°ëìë¤."
+
+#. 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> ì¸í°íì´ì¤ì ê´í javadocs를 ë³´ë¼. ê·¸ê²ì í"
+"ëì ë©ìë, <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-ì ì© ì ê·¼ë²ê³¼ ì ííê² ê°ë¤. ìì¸í ê²ì Javadocs를 ë³´ë¼."
+
+#. 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> :íì¬ ì¸ì
"
+"ë¤ì ì¤í ì°ë ëì ìí´ ì¶ì ëë¤. ìì¸í ê²ì ë¤ì javadocs를 ë³´ë¼."
+
+#. 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> ì¸ì¤í´ì¤ë¥¼ "
+"ì´ í´ëì¤ ìì ìë static ë©ìëë¤ì ë°ì¸ë©ìí¤ê³ ì¸ë°ì¸ë© ìí¬ ì±
ìì´ ë¹ì "
+"ìê² ìë¤: ê·¸ê²ì <literal>Session</literal>ì ì´ì§ë flush ìí¤ê±°ë ë«ì§ ì"
+"ëë¤."
+
+#. Tag: para
+#, 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 ""
+"첫 ë ê°ì 구íë¤ì \"í ê°ì ì¸ì
- í ê°ì ë°ì´í°ë² ì´ì¤ í¸ëìì
\" íë¡ê·¸ë"
+"ë° ëª¨íì ì ê³µíë¤. ì´ê²ì ëí <emphasis>ìì² ë¹ ì¸ì
</emphasis>ì¼ë¡ ìë ¤"
+"ì ¸ ìê³ ì¬ì©ëë¤. íì´ë²ë¤ì´í¸ ì¸ì
ì ììê³¼ ëì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì¡´"
+"ì 기ê°ì ìí´ ì ìëë¤. ë§ì¼ ë¹ì ì´ JTAìì´ íë²í JSEìì íë¡ê·¸ë¨ ìì í¸"
+"ëìì
격리를 ì¬ì©í ê²½ì°, ë¹ì ìê² ë¹ì ì ì½ëìì 기본 í¸ëìì
ìì¤í
ì ì"
+"íìí¤ëë° íì´ë²ë¤ì´í¸ <literal>Transaction</literal> API를 ì¬ì©íëë¡ ê¶ì¥"
+"ëë¤.ë§ì¼ ë¹ì ì´ CMT를 ì§ìíë EJB 컨í
ì´ë ë´ìì ì¤íí ê²½ì°, í¸ëìì
ê²½"
+"ê³ë¤ì ì ì¸ì ì¼ë¡ ì ìëë©° ë¹ì ì´ ë¹ì ì ì½ëì ììì í¸ëìì
ëë ì¸ì
ê²½"
+"ê³ì¤ì ì¤í¼ë ì´ì
ì íìë¡ íì§ ìëë¤. ë§ì¼ ë¹ì ì´ 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>"
+"ì´ êµ¬ì±ëë ê²½ì°ì, íì´ë²ë¤ì´í¸ë <literal>org.hibernate.context."
+"JTASessionContext</literal>를 ì¬ì©í ê²ì´ë¤. ì¼ë°ì ì¼ë¡, ì´ íë¼ë¯¸í°ì ê°ì "
+"ë¨ì§ ì¬ì©í 구í í´ëì¤ë¥¼ ëª
ëª
í ê²ì´ë¤; íì§ë§ ì¸ ê°ì ë¹ê³µìì ì¸ êµ¬íë¤ì "
+"ëí´, ì¸ ê°ì ëìíë 짧ì ì´ë¦ë¤ \"jta\"ì \"thread\", ê·¸ë¦¬ê³ \"managed"
+"\"ê° ì¡´ì¬íë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/association_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/association_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/association_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1118 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-01-12 20:59+0900\n"
+"Last-Translator: Jongdae Kim <jdkim528 at korea.com>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr "ì°ê´ 매íë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr "ê°ì"
+
+#. Tag: para
+#, 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 ""
+"ì°ê´ 매íë¤ì ì¢
ì¢
ì ííê² êµ¬ííë ê²ì´ ê°ì¥ ì´ë ¤ì´ ê²ì´ë¤. ì´ ì ìì ì°ë¦¬"
+"ë ë¨ë°©í¥ 매íë¤ìì ììíì¬, ìë°©í¥ ë§¤íì ê²½ì°ê¹ì§ íëì© ëªëª ì ê·ì ì¸ ê²½"
+"ì°ë¤ì ë
¼ìí ê²ì´ë¤. ì°ë¦¬ë 모ë ìì ë¤ìì <literal>Person</literal>ê³¼ "
+"<literal>Address</literal>를 ì¬ì©í ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations will be classified by multiplicity and whether or not they map "
+"to an intervening join table."
+msgstr ""
+"ì°ê´ë¤ì ë¤ê°ì± ê·¸ë¦¬ê³ ì¤ì¬íë join í
ì´ë¸ë¡ 매íìí¬ ê²ì¸ì§ ì¬ë¶ì ë°ë¼ ë¶"
+"ë¥ë ê²ì´ë¤."
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr "ë¨ë°©í¥ ì°ê´ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "ë¤-ë-ì¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr ""
+"<emphasis>ë¨ë°©í¥ many-to-one ì°ê´</emphasis>ì ê°ì¥ ê³µíµì ì¸ ì¢
ë¥ì ë¨ë°©í¥ ì°"
+"ê´ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "ì¼-ë-ì¼"
+
+#. Tag: para
+#, 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 ""
+"<emphasis>foreign í¤ì ëí ë¨ë°©í¥ one-to-one ì°ê´ì ëê° ì주 ëì¼íë¤.</"
+"emphasis> ì ì¼í ì°¨ì´ì ì ì»¬ë¼ ì ì¼(unique) 컨ì¤í¸ë ì¸í¸ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a primary key</"
+"emphasis> usually uses a special id generator In this example, however, we "
+"have reversed the direction of the association:"
+msgstr ""
+"<emphasis>íë¼ì´ë¨¸ë¦¬ í¤ì ëí ë¨ë°©í¥ ì¼-ë-ì¼ ì°ê´</emphasis>ì ëê° í¹ë³í "
+"id ìì±ì를 ì¬ì©íë¤. íì§ë§ ì´ ìì ìì ì°ë¦¬ë ì°ê´ì ë°©í¥ì ìì ìì¼°ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many"
+msgstr "ì¼-ë-ë¤ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-many association on a foreign key</"
+"emphasis> is an unusual case, and is not recommended."
+msgstr ""
+"<emphasis>ì¸ë í¤ì ëí ë¨ë°©í¥ ì¼-ë-ë¤ ì°ê´</emphasis>ì ìë¤ë¥¸ ê²½ì°ì´ë©°, "
+"ê¶ì¥ëì§ ìëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr ""
+"ëì ì ë¹ì ì ì´ë° ì¢
ë¥ì ì°ê´ì ëí´ íëì join í
ì´ë¸ì ì¬ì©í´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr "join í
ì´ë¸ë¤ì ëí ë¨ë°©í¥ ì°ê´ë¤"
+
+#. Tag: para
+#, 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 ""
+"<emphasis>join í
ì´ë¸ì ëí ë¨ë°©í¥ ì¼-ë-ë¤ ì°ê´</emphasis>ì ì í¸ëë ìµì
"
+"ì´ë¤. <literal>unique=\"true\"</literal>를 ì§ì íì¬, ë¤-ë-ë¤ìì ì¼-ë-ë¤ë¡ "
+"ë¤ì¤ê°ì ë³ê²½ìì¼ë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association on a join table</"
+"emphasis> is common when the association is optional. For example:"
+msgstr ""
+"<emphasis>join í
ì´ë¸ì ëí ë¨ë°©í¥ ë¤-ë-ì¼ ì°ê´</emphasis>ì ê·¸ ì°ê´ì´ ì í"
+"ì ì¼ ë ê³µíµì ì´ë¤. ì를 ë¤ë©´:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"<emphasis>join í
ì´ë¸ì ëí ë¨ë°©í¥ ì¼-ë-ì¼ ì°ê´</emphasis>ì ê°ë¥íì§ë§, ê·¹"
+"í íµìì ì´ì§ ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many"
+msgstr "ë¤-ë-ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Finally, here is an example of a <emphasis>unidirectional many-to-many "
+"association</emphasis>."
+msgstr ""
+"ë§ì§ë§ì¼ë¡, ë¤ìì <emphasis>ë¨ë°©í¥ ë¤-ë-ë¤ ì°ê´</emphasis>ì ëí ìì ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "ìë°©í¥ ì°ê´ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr "ì¼-ë-ë¤ / ë¤-ë-ì¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional many-to-one association</emphasis> is the most "
+"common kind of association. The following example illustrates the standard "
+"parent/child relationship."
+msgstr ""
+"<emphasis>ìë°©í¥ ë¤-ë-ì¼ ì°ê´</emphasis>ì ê°ì¥ ê³µíµë ì¢
ë¥ì ì°ê´ì´ë¤. ë¤"
+"ì ìì ë íì¤ ë¶ëª¨/ìì ê´ê³ë¥¼ ì¤ëª
íë¤."
+
+#. Tag: para
+#, 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 ""
+"ë§ì¼ ë¹ì ì´ <literal>List</literal>, ëë ë¤ë¥¸ ì¸ë±ì± ë ì½ë ì
ì ì¬ì©í ê²½"
+"ì°, ì¸ë í¤ì <literal>key</literal> 컬ë¼ì <literal>not null</literal>ë¡ ì¤"
+"ì íë¼. íì´ë²ë¤ì´í¸ë ê°ê°ì ììì ì¸ë±ì¤ë¥¼ ê´ë¦¬í기 ìí´ <literal>update="
+"\"false\"</literal>ì <literal>insert=\"false\"</literal>를 ì¤ì íì¬ ë¤ë¥¸ 측"
+"ì ê°ìì ì¼ë¡ ìíìí´ì¼ë¡ì ì½ë ì
ë¤ ì¸¡ìì ê·¸ ì°ê´ì ê´ë¦¬í ê²ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
+"important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal><key></literal> element of the collection mapping. Do not "
+"only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal><column></literal> element, but on the <literal><key></"
+"literal> element."
+msgstr ""
+"ë§ì¼ 기본 ì¸ë í¤ ì»¬ë¼ì´ <literal>NOT NULL</literal>ì¼ ê²½ì°, ë¹ì ì´ ì½ë ì
매"
+"íì <literal><key></literal>ì <literal>not-null=\"true\"</literal>를 "
+"ì ìíë ê²ì´ ì¤ìíë¤. <literal>not-null=\"true\"</literal>를 ê°ë¥í ë´í¬"
+"ë <literal><column></literal> ìì ë¿ë§ ìëë¼, <literal><key></"
+"literal> ìì ììë ì ì¸íë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is common:"
+msgstr "<emphasis>ì¸ë í¤ì ëí ìë°©í¥ì¼-ë-ì¼ ì°ê´</emphasis>ì ê³µíµì ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator:"
+msgstr ""
+"<emphasis>íë¼ì´ë¨¸ë¦¬ í¤ì ëí ìë°©í¥ ì¼-ë-ì¼ ì°ê´</emphasis>ì í¹ë³í id ì"
+"ì±ì를 ì¬ì©íë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr "join í
ì´ë¸ë¤ì ëí ìë°©í¥ ì°ê´ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of a <emphasis>bidirectional one-to-many "
+"association on a join table</emphasis>. The <literal>inverse=\"true\"</"
+"literal> can go on either end of the association, on the collection, or on "
+"the join."
+msgstr ""
+"ë¤ìì <emphasis>join í
ì´ë¸ì ëí ìë°©í¥ ì¼-ë-ë¤ ì°ê´</emphasis>ì ëí ì"
+"ì ì´ë¤. <literal>inverse=\"true\"</literal>ë ì°ê´ì ì´ë 측ì´ë ì§, ì½ë ì
측"
+"ìë, ëë join 측ìë ì¸ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "one to one"
+msgstr "one to one"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"<emphasis>join í
ì´ë¸ì ëí ìë°©í¥ ì¼-ë-ì¼ ì°ê´</emphasis>ì´ ê°ë¥íì§ë§, ê·¹"
+"í íµìì ì´ì§ ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example of a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
+msgstr "ì´ê²ì <emphasis>ìë°©í¥ ë¤-ë-ë¤ ì°ê´</emphasis>ì ëí ìì ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr "ë³´ë¤ ë³µì¡í ì°ê´ 매íë¤"
+
+#. Tag: para
+#, 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 ""
+"ë³´ë¤ ë³µì¡í ì°ê´ joinë¤ì <emphasis>ê·¹í</emphasis> ë물ë¤. íì´ë²ë¤ì´í¸ë 매"
+"í 문ìë¤ ë´ì ì½ì
ë SQL ì¡°ê°ë¤ì ì¬ì©íì¬ ë³´ë¤ ë³µì¡í ìí©ë¤ì ì²ë¦¬íë¤. ì"
+"를 ë¤ì´, ë§ì¼ ê³ì¢ ë´ì ì ë³´ ë°ì´í°ë¥¼ ê°ì§ í
ì´ë¸ì´ <literal>accountNumber</"
+"literal>, <literal>effectiveEndDate</literal> ê·¸ë¦¬ê³ "
+"<literal>effectiveStartDate</literal> 컬ë¼ë¤ì ì ìíê³ ìë¤ë©´, ê·¸ê²ì ë¤ì"
+"ê³¼ ê°ì´ 매íë ê²ì´ë¤:"
+
+#. Tag: para
+#, 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 ""
+"ê·¸ë ë¹ì ì ë¤ìì ì¬ì©íì¬ íëì ì°ê´ì ëì´ íì©ëë "
+"<literal>effectiveEndDate</literal>를 ê°ì§, <emphasis>current</emphasis> ì¸ì¤"
+"í´ì¤ì 매íìí¬ ì ìë¤:"
+
+#. Tag: para
+#, 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 ""
+"ë³´ë¤ ë³µì¡í ìì ìì, <literal>Employee</literal>ì <literal>Organization</"
+"literal> ì¬ì´ì ì°ê´ì´ ì ì²´ ê³ ì© ë´ì ë°ì´í°ë¥¼ ê°ì§ <literal>Employment</"
+"literal> í
ì´ë¸ ë´ì ì ì§ëë¤ê³ ê°ì íì. ì¢
ì
ìì <emphasis>ê°ì¥ ìµê·¼ì</"
+"emphasis> ê³ ì©ì£¼ì ëí ì°ê´, ê°ì¥ ìµê·¼ì <literal>startDate</literal>를 ê°"
+"ì§ ì°ê´ì´ ë¤ì ë°©ë²ì¼ë¡ 매íë ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This functionality allows a degree of creativity and flexibility, but it is "
+"more practical to handle these kinds of cases using HQL or a criteria query."
+msgstr ""
+"ì´ ê¸°ë¥ì ìì°ì±ê³¼ ì ì°ì± ì ê³ ë¥¼ íì©íì§ë§, HQLì´ë criteria ì§ì를 ì¬ì©í"
+"ì¬ ì´ë¤ ì¢
ë¥ì ê²½ì°ë¤ì ì²ë¦¬íë ê²ì´ ë³´ë¤ ì¤ì©ì ì´ë¤."
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/basic_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/basic_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/basic_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,4381 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr "기본 O/R 매í"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr "매í ì ì¸"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Object/relational mappings are usually defined in an XML document. The "
+"mapping document is designed to be readable and hand-editable. The mapping "
+"language is Java-centric, meaning that mappings are constructed around "
+"persistent class declarations and not table declarations."
+msgstr ""
+"ê°ì²´/ê´ê³í 매íë¤ì ëê° XML 문ì ë´ì ì ìëë¤. 매í 문ìë ê°ë
ì±ì´ ìê³ "
+"ììì
í¸ì§ì´ ê°ë¥íëë¡ ì¤ê³ëì´ ìë¤. 매í ì¸ì´ë 매íë¤ì´ í
ì´ë¸ ì ì¸ë¤ì´ "
+"ìë, ìì í´ëì¤ ì ì¸ë¤ë¡ ìì±ëë¤ë ì미ìì ìë° ì¤ì¬ì ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please note that even though many Hibernate users choose to write the XML by "
+"hand, a number of tools exist to generate the mapping document. These "
+"include XDoclet, Middlegen and AndroMDA."
+msgstr ""
+"ì¬ì§ì´ ë§ì Hibernate ì¬ì©ìë¤ì´ ììì
ì¼ë¡ XMLì ìì±íê³ ì ì íí ì§ë¼ë, "
+"XDoclet, Middlegen, ê·¸ë¦¬ê³ AndroMDA를 í¬í¨íë, 매í 문ì를 ìì±ìí¤ë ë§ì "
+"ë구ë¤ì´ ì¡´ì¬íë¤ë ì ì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is an example mapping:"
+msgstr "ìì 매íì¼ë¡ ììíì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will now discuss the content of the mapping document. We will only "
+"describe, however, the document elements and attributes that are used by "
+"Hibernate at runtime. The mapping document also contains some extra optional "
+"attributes and elements that affect the database schemas exported by the "
+"schema export tool (for example, the <literal> not-null</literal> attribute)."
+msgstr ""
+"ì°ë¦¬ë ì´ì 매í 문ìì ë´ì©ì ë
¼ìí ê²ì´ë¤. ì°ë¦¬ë Hibernateì ìí´ ì¤í ì"
+"ì ì¬ì©ëë 문ì ììë¤ê³¼ ìì±ë¤ ë§ì ì¤ëª
í ê²ì´ë¤. 매í 문ìë ëí ì¤í¤ë§ "
+"ë´ë³´ë´ê¸° ë구ì ìí´ ë´ë³´ë´ì§ ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ì ìí¥ì 주ë ì´ë¤ í¹ë³í "
+"ìµì
ìì±ë¤ê³¼ ììë¤ì í¬í¨íë¤. (ì를 ë¤ì´ <literal>not-null</literal> ì"
+"ì±.)"
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr "Doctype"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All XML mappings should declare the doctype shown. The actual DTD can be "
+"found at the URL above, in the directory <literal>hibernate-x.x.x/src/org/"
+"hibernate </literal>, or in <literal>hibernate3.jar</literal>. Hibernate "
+"will always look for the DTD in its classpath first. If you experience "
+"lookups of the DTD using an Internet connection, check the DTD declaration "
+"against the contents of your classpath."
+msgstr ""
+"모ë XML 매íë¤ì doctypeì´ ë³´ì´ê² ì ì¸í´ì¼ íë¤. ì¤ì DTDë ìì URLìì, "
+"<literal>hibernate-x.x.x/src/org/hibernate</literal> ëë í 리 ë´ìì ëë "
+"<literal>hibernate3.jar</literal> ë´ìì ì°¾ì ì ìë¤. Hibernateë íì 첫 ë²"
+"ì§¸ë¡ ê·¸ê²ì classpath ììì DTD를 ì°¾ê² ë ê²ì´ë¤. ë§ì¼ ë¹ì ì´ ì¸í°ë· ì°ê²°ì "
+"ì¬ì©íë DTDì ëí 룩ì
ë¤ì ê²ªê² ë ê²½ì°, ë¹ì ì classpathì 컨í
ì¸ ì ëí´ "
+"ë¹ì ì DTD ì ì¸ì ì²´í¬íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr "EntityResolver"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will first attempt to resolve DTDs in its classpath. It does this "
+"is by registering a custom <literal>org.xml.sax.EntityResolver</literal> "
+"implementation with the SAXReader it uses to read in the xml files. This "
+"custom <literal>EntityResolver</literal> recognizes two different systemId "
+"namespaces:"
+msgstr ""
+"ìì ì¸ê¸íë¯ì´, Hibernateë 먼ì ê·¸ê²ì classpathìì DTDë¤ì í´ìíë ¤ê³ ì"
+"ëí ê²ì´ë¤. Hibernateê° ì´ê²ì ííë ë°©ë²ì ê·¸ê²ì´ xml íì¼ë¤ì ì½ì´ë¤ì´ë"
+"ë° ì¬ì©íë SAXReaderì ë§ì¶¤í <literal>org.xml.sax.EntityResolver</literal> "
+"구íì ë±ë¡íë ê²ì´ë¤. ì´ ë§ì¶¤í <literal>EntityResolver</literal>ë ë ê°"
+"ì ë¤ë¥¸ systemId namespaceë¤ì ì¸ì§í´ë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"a <literal>hibernate namespace</literal> is recognized whenever the resolver "
+"encounters a systemId starting with <literal>http://hibernate.sourceforge."
+"net/</literal>. The resolver attempts to resolve these entities via the "
+"classloader which loaded the Hibernate classes."
+msgstr ""
+"<literal>hibernate namespace</literal>ë resolverê° <literal>http://"
+"hibernate.sourceforge.net/</literal>ë¡ ììíë íëì systemIdì ë§ë ëë§ë¤ "
+"ì¸ì§ëë¤; resolverë Hibernate í´ëì¤ë¤ì ë¡ëìì¼°ë í´ëì¤ë¡ë를 íµí´ ì´ë¤ "
+"ìí°í°ë¤ì í´ìíë ¤ê³ ìëíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"a <literal>user namespace</literal> is recognized whenever the resolver "
+"encounters a systemId using a <literal>classpath://</literal> URL protocol. "
+"The resolver will attempt to resolve these entities via (1) the current "
+"thread context classloader and (2) the classloader which loaded the "
+"Hibernate classes."
+msgstr ""
+"<literal>user namespace</literal>ë resolverê° <literal>classpath://</"
+"literal> URL íë¡í ì½ì ì¬ì©íë systemId를 ë§ë ëë§ë¤ ì¸ì§ëë¤; resolverë "
+"(1)íì¬ ì°ë ë 컨í
ì¤í¸ í´ëì¤ë¡ëì (2)Hibernate í´ëì¤ë¤ì ë¡ëìì¼°ë í´ë"
+"ì¤ë¡ë를 íµí´ ì´ë¤ ìí°í°ë¤ì í´ìíë ¤ê³ ìëí ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr "user namespacingì íì©íë ìì :"
+
+#. 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 <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
+msgstr ""
+"ì¬ê¸°ì <literal>types.xml</literal>ì <literal>your.domain</literal> í¨í¤ì§ "
+"ë´ì ìë 리ìì¤ì´ê³ ë§ì¶¤í <xref linkend=\"mapping-types-custom\">typedef</"
+"xref>를 í¬í¨íë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Hibernate-mapping"
+msgstr "hibernate-mapping"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This element has several optional attributes. The <literal>schema</literal> "
+"and <literal>catalog</literal> attributes specify that tables referred to in "
+"this mapping belong to the named schema and/or catalog. If they are "
+"specified, tablenames will be qualified by the given schema and catalog "
+"names. If they are missing, tablenames will be unqualified. The "
+"<literal>default-cascade</literal> attribute specifies what cascade style "
+"should be assumed for properties and collections that do not specify a "
+"<literal>cascade</literal> attribute. By default, the <literal>auto-import</"
+"literal> attribute allows you to use unqualified class names in the query "
+"language."
+msgstr ""
+"ì´ ììë ëª ê°ì ì íì ì¸ ìì±ë¤ì ê°ëë¤. <literal>schema</literal> ìì±ê³¼ "
+"<literal>catalog</literal> ìì±ì ì´ ë§¤í ë´ìì 참조ë í
ì´ë¸ë¤ì´ ëª
ëª
ë "
+"schema ì/ëë catalogì ìíë¤ë ì ì ì§ì íë¤. ë§ì¼ ì§ì ë ê²½ì°, í
ì´ë¸ ì´"
+"ë¦ë¤ì 주ì´ì§ schema ì´ë¦ê³¼ catalog ì´ë¦ì ìí´ íì (ìì)ë ê²ì´ë¤. ëë½ë "
+"ê²½ì°, í
ì´ë¸ ì´ë¦ë¤ì íì ëì§((ììì´ê° ë¶ì§) ìì ê²ì´ë¤. <literal>default-"
+"cascade</literal> ìì±ì <literal>cascade</literal> ìì±ì ì§ì íì§ ìì íë¡"
+"í¼í°ë¤ê³¼ ì½ë ì
ë¤ì ëí´ ì ì ë <literal>cascade</literal> ì¤íì¼ì´ 무ìì¸ì§"
+"를 ì§ì íë¤. <literal>auto-import</literal> ìì±ì ëí´í¸ë¡ ì°ë¦¬ê° ì§ì ì¸ì´ "
+"ììì ììì´ê° ë¶ì§ ìì(unqualified) í´ëì¤ ì´ë¦ë¤ì ì¬ì©íê² í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr "<literal>schema</literal> (ìµì
): ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr "<literal>catalog</literal> (ìµì
): ë°ì´í°ë² ì´ì¤ ì¹´ë¤ë¡ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>default-cascade</literal> (optional - defaults to <literal>none</"
+"literal>): a default cascade style."
+msgstr ""
+"<literal>default-cascade</literal> (ìµì
- ëí´í¸ë <literal>none</"
+"literal>): ëí´í¸ cascade ì¤íì¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>default-access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate should use for accessing all properties. "
+"It can be a custom implementation of <literal>PropertyAccessor</literal>."
+msgstr ""
+"<literal>default-access</literal> (ìµì
- ëí´í¸ë <literal>property</"
+"literal>): Hibernateê° ëª¨ë íë¡í¼í°ë¤ì ì¡ì¸ì¤íëë° ì¬ì©íê² ë ë°©ë. "
+"<literal>PropertyAccessor</literal>ì ëí ë§ì¶¤í 구íì¼ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>default-lazy</literal> (optional - defaults to <literal>true</"
+"literal>): the default value for unspecified <literal>lazy</literal> "
+"attributes of class and collection mappings."
+msgstr ""
+"<literal>default-lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"class ë° collection 매íë¤ì ì§ì ëì§ ìì <literal>lazy</literal> ìì±ë¤ì "
+"ëí ëí´í¸ ê°."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>auto-import</literal> (optional - defaults to <literal>true</"
+"literal>): specifies whether we can use unqualified class names of classes "
+"in this mapping in the query language."
+msgstr ""
+"<literal>auto-import</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): ì°"
+"ë¦¬ê° ì§ì ì¸ì´ ë´ì (ì´ ë§¤íìì í´ëì¤ë¤ì ëí´) ììì´ê° ë¶ì§ ìì í´ëì¤ "
+"ì´ë¦ë¤ì ì¬ì©í ì ìëì§ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>package</literal> (optional): specifies a package prefix to use for "
+"unqualified class names in the mapping document."
+msgstr ""
+"<literal>package</literal> (ìµì
): 매í 문ì ë´ìì ììì´ê° ë¶ì§ ìì í´ë"
+"ì¤ ì´ë¦ë¤ì ëí´ ê°ì í í¨í¤ì§ ì ëì´ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you have two persistent classes with the same unqualified name, you "
+"should set <literal>auto-import=\"false\"</literal>. An exception will "
+"result if you attempt to assign two classes to the same \"imported\" name."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ëì¼í (ììì´ê° ë¶ì§ ìì) ì´ë¦ì ê°ì§ ë ê°ì ìì í´ëì¤ë¤ì "
+"ê°ê³ ìë¤ë©´, ë¹ì ì <literal>auto-import=\"false\"</literal>를 ì¤ì í´ì¼ í"
+"ë¤. ë§ì¼ ë¹ì ì´ ë ê°ì í´ëì¤ë¤ì ëì¼í \"imported\" ì´ë¦ì í ë¹íë ¤ê³ ìë"
+"í ê²½ì°ì Hibernateë ìì¸ìí©ì ëì§ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>hibernate-mapping</literal> element allows you to nest several "
+"persistent <literal><class></literal> mappings, as shown above. It is, "
+"however, good practice (and expected by some tools) to map only a single "
+"persistent class, or a single class hierarchy, in one mapping file and name "
+"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
+"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
+"<literal>Animal.hbm.xml</literal>."
+msgstr ""
+"ìì ë³´ì¬ì§ ê²ì²ë¼ <literal>hibernate-mapping</literal> ììë ëªëª ìì "
+"<literal><class></literal> 매íë¤ì ë´ë¶ì í¬í¨íë ê²ì íì©í´ì¤ë¤ë "
+"ì ì ë
¸í¸íë¼. íì§ë§ í ê°ì 매í íì¼ ìì í ê°ì ìì í´ëì¤(ëë í ê°"
+"ì í´ëì¤ ê³ì¸µêµ¬ì¡°) ë§ì 매ííê³ ìì ìë¸ í´ëì¤ ë¤ì ê·¸ê²ì ëª
ëª
íë ê²ì´ "
+"ì¢ì ì°ìµì´ë¤ (ê·¸ë¦¬ê³ ëªëª ë구ë¤ì ìí´ ê¸°ëëë¤). ì를 ë¤ë©´ <literal>Cat."
+"hbm.xml</literal>, <literal>Dog.hbm.xml</literal> ëë ììì ì¬ì©í ê²½ì°ì"
+"ë <literal>Animal.hbm.xml</literal>."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Class"
+msgstr "class"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can declare a persistent class using the <literal>class</literal> "
+"element. For example:"
+msgstr ""
+"ë¹ì ì <literal>class</literal> ìì를 ì¬ì©íì¬ ìì í´ëì¤ë¥¼ ì ì¸í ìë ì"
+"ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal> (optional): the fully qualified Java class name of "
+"the persistent class or interface. If this attribute is missing, it is "
+"assumed that the mapping is for a non-POJO entity."
+msgstr ""
+"<literal>name</literal> (ìµì
): ìì í´ëì¤(ëë ì¸í°íì´ì¤)ì ì ì²´ ììì´ê° "
+"ë¶ì Java í´ëì¤ ì´ë¦. ë§ì¼ ì´ ìì±ì´ ëë½ë ê²½ì°, 매íì´ non-POJO ìí°í°ë¼"
+"ê³ ê°ì ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>table</literal> (optional - defaults to the unqualified class "
+"name): the name of its database table."
+msgstr ""
+"<literal>table</literal> (ìµì
- ëí´í¸ë ììì´ê° ë¶ì§ ìì í´ëì¤ëª
): ê·¸ê²"
+"ì ë°ì´í°ë² ì´ì¤ í
ì´ë¸ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): a value that distinguishes individual subclasses that is used for "
+"polymorphic behavior. Acceptable values include <literal>null</literal> and "
+"<literal>not null</literal>."
+msgstr ""
+"<literal>discriminator-value</literal> (ìµì
- ëí´í¸ë í´ëì¤ ì´ë¦): ë¤íì±"
+"(polymorphic) í¹ì§ì ì¬ì©ëë, ê°ë³ ìë¸ í´ëì¤ë¤ë¥¼ 구ë³ì§ë ê°. íì©ê°ë¥í "
+"ê°ë¤ì<literal>null</literal>ê³¼ <literal>not null</literal>ì í¬í¨íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
+"specifies that instances of the class are (not) mutable."
+msgstr ""
+"<literal>mutable</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): í´ëì¤"
+"ë¤ì ì¸ì¤í´ì¤ë¤ì´ ê°ë³ì ì¸ì§ë¥¼ (ê°ë³ì ì´ì§ ììì§ë¥¼) ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): overrides the schema name specified by "
+"the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>schema</literal> (ìµì
): ë£¨í¸ <literal><hibernate-mapping></"
+"literal> ììì ìí´ ì§ì ë ì¤í¤ë§ ì´ë¦ì ì¤ë²ë¼ì´ë ìí¨ë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>schema</literal> (ìµì
): ë£¨í¸ <literal><hibernate-mapping></"
+"literal> ììì ìí´ ì§ì ë ì¤í¤ë§ ì´ë¦ì ì¤ë²ë¼ì´ë ìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>catalog</literal> (optional): overrides the catalog name specified "
+"by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>catalog</literal> (ìµì
): ë£¨í¸ <literal><hibernate-mapping></"
+"literal> ììì ìí´ ì§ì ë ì¹´ë¤ë¡ ì´ë¦ì ì¤ë²ë¼ì´ë ìí¨ë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>catalog</literal> (ìµì
): ë£¨í¸ <literal><hibernate-mapping></"
+"literal> ììì ìí´ ì§ì ë ì¹´íë¡ ì´ë¦ì ì¤ë²ë¼ì´ë ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies an interface to use for lazy "
+"initializing proxies. You can specify the name of the class itself."
+msgstr ""
+"<literal>proxy</literal> (ìµì
): lazy initializing proxyë¤ì ì¬ì©í ì¸í°íì´"
+"ì¤ë¥¼ ì§ì íë¤. ë¹ì ì í´ëì¤ ê·¸ ìì²´ì ì´ë¦ì ì§ì í ì ë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>dynamic-update</literal> (optional - defaults to <literal>false</"
+"literal>): specifies that <literal>UPDATE</literal> SQL should be generated "
+"at runtime and can contain only those columns whose values have changed."
+msgstr ""
+"<literal>dynamic-update</literal> (ìµì
- ëí´í¸ë <literal>false</"
+"literal>): <literal>UPDATE</literal> SQLì´ ì¤í ìì ìì±ëê³ ê·¸ë¤ ì»¬ë¼ë¤ì "
+"ê°ë¤ì´ ë³ê²½ë ê·¸ë¤ ì»¬ë¼ë¤ ë§ì í¬í¨í ê²ì¸ì§ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>dynamic-insert</literal> (optional - defaults to <literal>false</"
+"literal>): specifies that <literal>INSERT</literal> SQL should be generated "
+"at runtime and contain only the columns whose values are not null."
+msgstr ""
+"<literal>dynamic-insert</literal> (ìµì
- ëí´í¸ë <literal>false</"
+"literal>): ìì±ë <literal>INSERT</literal>ì´ ì¤í ìì ìì±ëê³ ê·¸ë¤ ì»¬ë¼ë¤"
+"ì ê°ì´ nullì´ ìë 컬ë¼ë¤ ë§ì í¬í¨í ê²ì¸ì§ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>select-before-update</literal> (optional - defaults to "
+"<literal>false</literal>): specifies that Hibernate should <emphasis>never</"
+"emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that "
+"an object is actually modified. Only when a transient object has been "
+"associated with a new session using <literal>update()</literal>, will "
+"Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an "
+"<literal>UPDATE</literal> is actually required."
+msgstr ""
+"<literal>select-before-update</literal> (ìµì
- ëí´í¸ë <literal>false</"
+"literal>): ê°ì²´ê° ì¤ì ë¡ ë³ê²½ëë ê²ì´ íì¤íì§ ìë í, Hibernateê° SQL "
+"<literal>UPDATE</literal>를 <emphasis>ê²°ì½</emphasis> ì¤ííì§ ìì ê²ìì ì§"
+"ì íë¤. ì´ë¤ ê²½ì°ë¤ìì(ì¤ì ë¡ transient ê°ì²´ê° <literal>update()</literal>"
+"를 ì¬ì©íì¬ ìë¡ì´ sessionì ì°ê´ëìì ëìë§), ì´ê²ì íëì "
+"<literal>UPDATE</literal>ê° ì¤ì ë¡ íìí ê²½ì°ì¸ì§ ì¬ë¶ë¥¼ ê²°ì í기 ìí´ "
+"Hibernateë í¹ë³í SQL <literal>SELECT</literal>를 ì¤íí ê²ìì ì미íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>polymorphism</literal> (optional - defaults to <literal>implicit</"
+"literal>): determines whether implicit or explicit query polymorphism is "
+"used."
+msgstr ""
+"<literal>polymorphism</literal> (ìµì
- ëí´í¸ë <literal>implicit</"
+"literal>): implicit ì§ì ë¤íì±ì´ë explicit ì§ì ë¤íì± ì¤ ì´ë ê²ì´ ì¬ì©ë "
+"ê²ì¸ì§ë¥¼ ê²°ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>where</literal> (optional): specifies an arbitrary SQL "
+"<literal>WHERE</literal> condition to be used when retrieving objects of "
+"this class."
+msgstr ""
+"<literal>where</literal> (ìµì
) ì´ í´ëì¤ì ê°ì²´ë¤ì ê²ìí ë ì¬ì©ë ììì "
+"ì¸ SQL <literal>WHERE</literal> ì¡°ê±´ì ì§ì íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>persister</literal> (optional): specifies a custom "
+"<literal>ClassPersister</literal>."
+msgstr ""
+"<literal>persister</literal> (ìµì
): ë§ì¶¤í <literal>ClassPersister</literal>"
+"를 ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>batch-size</literal> (optional - defaults to <literal>1</literal>): "
+"specifies a \"batch size\" for fetching instances of this class by "
+"identifier."
+msgstr ""
+"<literal>batch-size</literal> (ìµì
- ëí´í¸ë <literal>1</literal>) ìë³ì"
+"ì ìí´ ì´ í´ëì¤ì ì¸ì¤í´ì¤ë¤ì íì¹ìí¤ë \"ë°°ì¹ ì¬ì´ì¦\"를 ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>version</"
+"literal>): determines the optimistic locking strategy."
+msgstr ""
+"<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>version</"
+"literal>): optimistic ì ê¸ ë°©ë를 ê²°ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional): lazy fetching can be disabled by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"<literal>lazy</literal> (ìµì
): <literal>lazy=\"false\"</literal>를 ì¤ì í¨ì¼"
+"ë¡ì¨ Lazy fetchingì´ ì ì²´ì ì¼ë¡ ì¬ì©ë¶ê°ë¥íê² ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional - defaults to the class name): "
+"Hibernate3 allows a class to be mapped multiple times, potentially to "
+"different tables. It also allows entity mappings that are represented by "
+"Maps or XML at the Java level. In these cases, you should provide an "
+"explicit arbitrary name for the entity. See <xref linkend=\"persistent-"
+"classes-dynamicmodels\" /> and <xref linkend=\"xml\" /> for more information."
+msgstr ""
+"<literal>entity-name</literal>(ìµì
, ëí´í¸ë í´ëì¤ ì´ë¦): Hibernate3ë íë"
+"ì í´ëì¤ê° (ì ì ì ì¼ë¡ ë¤ë¥¸ í
ì´ë¸ë¤ë¡) ì¬ë¬ë² 매íëë ê²ì íì©í´ì£¼ê³ , "
+"Java ë 벨ìì Map ëë XMLì ìí´ íí ëë ìí°í° 매íë¤ì íì©íë¤. ì´ë¤ ê²½"
+"ì°ë¤ìì, ë¹ì ì ê·¸ ìí°í°ì ëí ëª
ìì ì¸ ììì ì´ë¦ì ì ê³µí´ì¼ íë¤. "
+"<literal>entity-name</literal> (ìµì
): Hibernate3ë íëì í´ëì¤ê° (ì ì ì ì¼"
+"ë¡ ë¤ë¥¸ í
ì´ë¸ë¤ë¡) ì¬ë¬ ë² ë§¤íëë ê²ì íì©íë©°, ìë° ë 벨ìì Mapë¤ ëë "
+"XMLì ìí´ ííëë ìí°í° 매íë¤ì íì©íë¤. ì´ë¤ ê²½ì°ë¤ìì, ë¹ì ì ê·¸ ìí°"
+"í°ë¤ì ëí ëª
ìì ì¸ ììì ì´ë¦ì ì ê³µí´ì¼ íë¤. ì¶ê° ì ë³´ë <xref linkend="
+"\"persistent-classes-dynamicmodels\"/>ê³¼ <xref linkend=\"xml\"/>ì ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>check</literal> (optional): an SQL expression used to generate a "
+"multi-row <emphasis>check</emphasis> constraint for automatic schema "
+"generation."
+msgstr ""
+"<literal>check</literal> (ìµì
): ìëì ì¸ ì¤í¤ë§ ìì±ì ìí ë¤ì¤-í "
+"<emphasis>check</emphasis> constraint를 ìì±ìí¤ëë° ì¬ì©ëë SQL ííì."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>rowid</literal> (optional): Hibernate can use ROWIDs on databases. "
+"On Oracle, for example, Hibernate can use the <literal>rowid</literal> extra "
+"column for fast updates once this option has been set to <literal>rowid</"
+"literal>. A ROWID is an implementation detail and represents the physical "
+"location of a stored tuple."
+msgstr ""
+"<literal>rowid</literal> (ìµì
): Hibernateë ì§ìëë ë°ì´í°ë² ì´ì¤ë¤, ì를 ë¤"
+"ì´ Oracle ììì ì´ë¥¸ë° ROWIDë¤ì ì¬ì©í ì ìê³ , Hibernateë ë¹ì ì´ ì´ ìµì
"
+"ì <literal>rowid</literal>ë¡ ì¤ì íë ê²½ì°ì ë¹ ë¥¸ ì
ë°ì´í¸ë¥¼ ìí í¹ë³í "
+"<literal>rowid</literal> 컬ë¼ì ì¬ì©í ì ìë¤. ROWIDë 구í ìì¸ì´ê³ ì ì¥ë "
+"íí(tuple)ì 물리ì ì´ë ìì¹ë¥¼ íííë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>subselect</literal> (optional): maps an immutable and read-only "
+"entity to a database subselect. This is useful if you want to have a view "
+"instead of a base table. See below for more information."
+msgstr ""
+"<literal>subselect</literal> (ìµì
): ë¶ë³ì ì½ê¸° ì ì© ìí°í°ë¥¼ ë°ì´í°ë² ì´ì¤ "
+"subselectë¡ ë§¤íìí¨ë¤. ë¹ì ì´ ê¸°ë³¸ í
ì´ë¸ ëì ì 뷰를 ê°ê³ ì ìí ê²½ì°ì ì "
+"ì©íì§ë§, ì¬ì©ì ìì íë¼. ì¶ê° ì ë³´ë ìë를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>abstract</literal> (optional): is used to mark abstract "
+"superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal> (ìµì
): <literal><union-subclass></"
+"literal> ê³ì¸µ êµ¬ì¡°ë¤ ë´ìì abstract ìí¼í´ëì¤ë¤ì ë§í¬íëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is acceptable for the named persistent class to be an interface. You can "
+"declare implementing classes of that interface using the <literal><"
+"subclass></literal> element. You can persist any <emphasis>static</"
+"emphasis> inner class. Specify the class name using the standard form i.e. "
+"<literal>e.g.Foo$Bar</literal>."
+msgstr ""
+"ëª
ëª
ë ìì í´ëì¤ê° ì¸í°íì´ì¤ê° ëë ê²ì ìì í ìì©ê°ë¥íë¤. ê·¸ë° ë¤ì ë¹"
+"ì ì <literal><subclass></literal> ìì를 ì¬ì©íì¬ ê·¸ ì¸í°íì´ì¤ì ë"
+"í 구í í´ëì¤ë¤ì ì ì¸í ê²ì´ë¤. ë¹ì ì ììì <emphasis>static</emphasis> "
+"inner í´ëì¤ë¥¼ ììí ìí¬ ì ìë¤. ë¹ì ì íì¤ íì, ì를 ë¤ì´ <literal>eg."
+"Foo$Bar</literal>를 ì¬ì©íì¬ í´ëì¤ ì´ë¦ì ì§ì í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated "
+"or deleted by the application. This allows Hibernate to make some minor "
+"performance optimizations."
+msgstr ""
+"ë¶ë³ì í´ëì¤, <literal>mutable=\"false\"</literal>ë ì´í리ì¼ì´ì
ì ìí´ ì
"
+"ë°ì´í¸ëì§ ìì ê²ì´ê±°ë ìì ëì§ ìì ê²ì´ë¤. ì´ê²ì Hibernateë¡ íì¬ê¸ ì´"
+"ë¤ ë§ì´ë í¼í¬ë¨¼ì¤ ìµì í를 ííê²ë íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The optional <literal>proxy</literal> attribute enables lazy initialization "
+"of persistent instances of the class. Hibernate will initially return CGLIB "
+"proxies that implement the named interface. The persistent object will load "
+"when a method of the proxy is invoked. See \"Initializing collections and "
+"proxies\" below."
+msgstr ""
+"ì íì ì¸ <literal>proxy</literal> ìì±ì ê·¸ í´ëì¤ì ìì ì¸ì¤í´ì¤ë¤ì ëí "
+"lazy ì´ê¸°í를 ê°ë¥íê² í´ì¤ë¤. Hibernateë ëª
ëª
ë ì¸í°íì´ì¤ë¥¼ 구ííë "
+"CGLIB íë½ìë¤ì ì´ê¸°ì ë°íí ê²ì´ë¤. ì¤ì ìì ê°ì²´ë íë½ìì ë©ìëê° í¸"
+"ì¶ë ë ë¡ëë ê²ì´ë¤. ìë \"Lazy ì´ê¸°í를 ìí íë½ìë¤\"ì ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Implicit</emphasis> polymorphism means that instances of the class "
+"will be returned by a query that names any superclass or implemented "
+"interface or class, and that instances of any subclass of the class will be "
+"returned by a query that names the class itself. <emphasis>Explicit</"
+"emphasis> polymorphism means that class instances will be returned only by "
+"queries that explicitly name that class. Queries that name the class will "
+"return only instances of subclasses mapped inside this <literal><class>"
+"</literal> declaration as a <literal><subclass></literal> or "
+"<literal><joined-subclass></literal>. For most purposes, the default "
+"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
+"polymorphism is useful when two different classes are mapped to the same "
+"table This allows a \"lightweight\" class that contains a subset of the "
+"table columns."
+msgstr ""
+"<emphasis>Implicit</emphasis> ë¤íì±ì í´ëì¤ì ì¸ì¤í´ì¤ë¤ì´ ì´ë¤ ìë¸í´ëì¤"
+"ë 구íë ì¸í°íì´ì¤ ëë í´ëì¤ë¥¼ ëª
ëª
íë ì§ìì ìí´ ë°íë ê²ìì ì미í"
+"ê³ ê·¸ í´ëì¤ì ì´ë¤ ìë¸í´ëì¤ì ëí ì¸ì¤í´ì¤ë¤ì´ ê·¸ í´ëì¤ ì체를 ëª
ëª
íë "
+"ì§ìì ìí´ ë°íë ê²ìì ì미íë¤. <emphasis>Explicit</emphasis> ë¤íì±ì í´"
+"ëì¤ ì¸ì¤í´ì¤ë¤ì´ ê·¸ í´ëì¤ë¥¼ ëª
ìì ì¼ë¡ ëª
ëª
íë ì§ìë¤ì ìí´ìë§ ë°íë ê²"
+"ìì ìë¯¸ê³ ê·¸ í´ëì¤ë¥¼ ëª
ëª
íë ì§ìë¤ì´ ì´ <literal><class></"
+"literal> ì ì¸ ë´ë¶ìì <literal><subclass></literal> ëë <literal><"
+"joined-subclass></literal>ë¡ ë§¤íë ìë¸ í´ëì¤ë¤ì ì¸ì¤í´ì¤ë¤ ë§ì ë°íí"
+"ê² ë ê²ìì ì미íë¤. ëë¶ë¶ì ì©ëë¡, ëí´í¸ì¸ <literal>polymorphism="
+"\"implicit\"</literal>ê° ì ì íë¤.ë ê°ì ë¤ë¥¸ í´ëì¤ë¤ì´ ëì¼í í
ì´ë¸ë¡ 매"
+"íë ë Explicit ë¤íì±ì´ ì ì©íë¤(ì´ê²ì í
ì´ë¸ 컬ë¼ë¤ì ìë¸ì
ì í¬í¨íë "
+"\"ê²½ëê¸\" í´ëì¤ë¥¼ íì©íë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>persister</literal> attribute lets you customize the "
+"persistence strategy used for the class. You can, for example, specify your "
+"own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, "
+"or you can even provide a completely new implementation of the interface "
+"<literal>org.hibernate.persister.ClassPersister</literal> that implements, "
+"for example, persistence via stored procedure calls, serialization to flat "
+"files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for "
+"a simple example of \"persistence\" to a <literal>Hashtable</literal>."
+msgstr ""
+"<literal>persister</literal> ìì±ì í´ëì¤ì ì¬ì©ëë ììí ë°©ë를 ë¹ì ì´ ì»¤"
+"ì¤í¸ë§ì´ì§ í ì ìëë¡ í´ì¤ë¤. ì를 ë¤ì´ ë¹ì ì <literal>org.hibernate."
+"persister.EntityPersister</literal>ì ëí ë¹ì ìì ì ìë¸í´ëì¤ë¥¼ ì§ì í ì"
+"ë ìê±°ë ë¹ì ì ì¬ì§ì´ ì를 ë¤ì´ íë« íì¼ë¤ì´ë LDAPë¡ì ì§ë ¬í,ë´ì¥ íë¡ì"
+"ì í¸ì¶ë¤ì íµí´ ììí를 구ííë ì¸í°íì´ì¤ <literal>org.hibernate."
+"persister.ClassPersister</literal>ì ëí ìì í ìë¡ì´ 구íì ì ê³µí ìë ì"
+"ë¤. (<literal>Hashtable</literal>ë¡ì \"ììì±\"ì ê´í) ê°ë¨í ìì ë "
+"<literal>org.hibernate.test.CustomPersister</literal>를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> "
+"settings are not inherited by subclasses, so they can also be specified on "
+"the <literal><subclass></literal> or <literal><joined-subclass></"
+"literal> elements. Although these settings can increase performance in some "
+"cases, they can actually decrease performance in others."
+msgstr ""
+"<literal>dynamic-update</literal> ì¤ì ê³¼ <literal>dynamic-insert</literal> ì¤"
+"ì ì ìë¸í´ëì¤ë¤ì ìí´ ììëì§ ìê³ ë°ë¼ì ëí <literal><subclass>"
+"</literal> ëë <literal><joined-subclass></literal> ììë¤ ìì ì§ì "
+"ë ìë ììì ë
¸í¸íë¼. ì´ë¤ ì¤ì ë¤ì ëªëª ê²½ì°ë¤ìì í¼í¬ë¨¼ì¤ë¥¼ ì¦ê°ìí¤ì§"
+"ë§ ë¤ë¥¸ ê²½ì°ë¤ììë í¼í¬ë¨¼ì¤ë¥¼ ì¤ì ë¡ ê°ììí¬ ìë ìë¤. ì ì íê² ì¬ì©íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use of <literal>select-before-update</literal> will usually decrease "
+"performance. It is useful to prevent a database update trigger being called "
+"unnecessarily if you reattach a graph of detached instances to a "
+"<literal>Session</literal>."
+msgstr ""
+"<literal>select-before-update</literal> ì¬ì©ì ëê° í¼í¬ë¨¼ì¤ë¥¼ ê°ììí¬ ê²ì´"
+"ë¤. ë¹ì ì´ detached ì¸ì¤í´ì¤ë¤ì ê·¸ëí를 <literal>Session</literal>ì ë¤ì "
+"첨ë¶í ê²½ì°ì ê·¸ê²ì ë°ì´í°ë² ì´ì¤ ì
ë°ì´í¸ í¸ë¦¬ê±°ê° ë¶íìíê² í¸ì¶ëë ê²ì "
+"ë°©ì§íëë° ë§¤ì° ì ì©íë¤."
+
+#. 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>를 ì¬ì©ê°ë¥íê² í ê²½ì°, ë¹ì ì ë¤ì "
+"optimistic ì ê¸ ì ëµë¤ì ì ííê² ë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr "<literal>version</literal>ì version/timestamp 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>dirty</literal>: check the changed columns, allowing some "
+"concurrent updates"
+msgstr ""
+"<literal>dirty</literal>ë ëªëª ëìì± ì
ë°ì´í¸ë¤ì íì©íì¬, ë³ê²½ë 컬ë¼ë¤"
+"ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr "<literal>none</literal>ì optimistic ì ê¸ì ì¬ì©íì§ ìëë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is <emphasis>strongly</emphasis> recommended that you use version/"
+"timestamp columns for optimistic locking with Hibernate. This strategy "
+"optimizes performance and correctly handles modifications made to detached "
+"instances (i.e. when <literal>Session.merge()</literal> is used)."
+msgstr ""
+"ì°ë¦¬ë ë¹ì ì´ Hibernateìì optimistic ì ê¸ì ìí´ version/timestamp 컬ë¼ë¤"
+"ì ì¬ì©í ê²ì <emphasis>매ì°</emphasis> ê°ë ¥íê² ê¶ì¥íë¤. ì´ê²ì í¼í¬ë¨¼ì¤"
+"ì ëí´ ìµì ì ë°©ëì´ê³ detached ì¸ì¤í´ì¤ë¤ì ëí´ íí´ì§ ë³ê²½ë¤ì ì ííê² "
+"í¸ë¤ë§íë ì ì¼í ë°©ëì´ë¤(ì를 ë¤ì´ <literal>Session.merge()</literal>ê° ì¬"
+"ì©ë ë)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is no difference between a view and a base table for a Hibernate "
+"mapping. This is transparent at the database level, although some DBMS do "
+"not support views properly, especially with updates. Sometimes you want to "
+"use a view, but you cannot create one in the database (i.e. with a legacy "
+"schema). In this case, you can map an immutable and read-only entity to a "
+"given SQL subselect expression:"
+msgstr ""
+"Hibernate 매íì ê²½ì°ì ë² ì´ì¤ í
ì´ë¸ê³¼ ë·° ì¬ì´ì ì°¨ì´ì ì´ ì¡´ì¬íì§ ìëë¤. "
+"ìëíë©´ ì´ê²ì´ ë°ì´í°ë² ì´ì¤ ë 벨ììë í¬ëª
íë¤ê³ 기ëë기 ë문ì´ë¤(ëªëª "
+"DBMSë 뷰를 ê³ ì íê² ì§ìíì§ ìê³ í¹í ë·° ì
ë°ì´í¸ë¥¼ ì§ìíì§ ììì ë
¸í¸í"
+"ë¼). ëëë¡ ë¹ì ì´ ë·°ë¥¼ ì¬ì©íê³ ì ìíì§ë§, (ì를 ë¤ì´ 리거ì ì¤í¤ë§ë¡) ë°ì´"
+"í°ë² ì´ì¤ ìì 뷰를 ìì±ìí¬ ì ìë¤. ì´ ê²½ì°ì, ë¹ì ì ë¶ë³ì ì½ê¸° ì ì© ìí°"
+"í°ë¥¼ 주ì´ì§ SQL subselect ííìì¼ë¡ 매íìí¬ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Declare the tables to synchronize this entity with, ensuring that auto-flush "
+"happens correctly and that queries against the derived entity do not return "
+"stale data. The <literal><subselect></literal> is available both as an "
+"attribute and a nested mapping element."
+msgstr ""
+"auto-flushê° ì ííê² ë°ìíëë¡ íê³ , ê·¸ë¦¬ê³ íìë ìí°í°ì ëí ì§ìë¤ì´ "
+"ì¸í¨ì± ìë ë°ì´í°ë¥¼ ë°ííì§ ìëë¡ í¨ì¼ë¡ì¨, ì´ ìí°í°ì ë기í ë í
ì´ë¸"
+"ì ì ì¸íë¼. <literal><subselect></literal>ë ìì±ê³¼ ë´í¬ë 매í ìì "
+"ììë¡ì ì´ì© ê°ë¥íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "id"
+msgstr "id"
+
+#. 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><id></"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"매íë í´ëì¤ë¤ì ë°ì´í°ë² ì´ì¤ í
ì´ë¸ì íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼ì ì ì¸<emphasis>í´"
+"ì¼ íë¤</emphasis>. ëë¶ë¶ì í´ëì¤ë¤ì ëí ì¸ì¤í´ì¤ì ì ì¼ ìë³ì를 ìì í"
+"ë ìë°ë¹ì¦-ì¤íì¼ íë¡í¼í°ë¥¼ ê°ì§ ê²ì´ë¤. <literal><id></literal> ìì"
+"ë ê·¸ íë¡í¼í°ë¡ë¶í° íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼ì¼ë¡ì 매íì ì ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+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."
+msgstr "<literal>type</literal> (ìµì
): Hibernate íì
ì ëíë´ë ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the primary key column."
+msgstr ""
+"<literal>column</literal> (ìµì
- ëí´í¸ë íë¡í¼í° ì´ë¦): íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼"
+"ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to a \"sensible\" "
+"value): an identifier property value that indicates an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session."
+msgstr ""
+"<literal>unsaved-value</literal> (ìµì
- ëí´í¸ë \"sensible\" ê°): ì´ì ì¸ì
"
+"ìì ì ì¥ëìê±°ë ë¡ëëìë detached(ë¶ë¦¬ë) ì¸ì¤í´ì¤ë¤ë¡ë¶í° ê·¸ê²ì 구ë¶ì§"
+"ì°ëë¡, ì¸ì¤í´ì¤ê° ìë¡ì´ ì´ê¸°íëì´ ìì(ì ì¥ëì´ ìì§ ìì)ì ëíë´ë ìë³"
+"ì íë¡í¼í° ê°."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate should use for accessing the property "
+"value."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼ íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>name</literal> attribute is missing, it is assumed that the "
+"class has no identifier property."
+msgstr ""
+"<literal>name</literal> ìì±ì´ ëë½ëë©´, í´ëì¤ë ìë³ì íë¡í¼í°ë¥¼ ê°ì§ ìë"
+"ë¤ê³ ê°ì ëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>unsaved-value</literal> attribute is almost never needed in "
+"Hibernate3."
+msgstr ""
+"<literal>unsaved-value</literal> ìì±ì Hibernate3ììë ê±°ì íìíì§ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is an alternative <literal><composite-id></literal> declaration "
+"that allows access to legacy data with composite keys. Its use is strongly "
+"discouraged for anything else."
+msgstr ""
+"composite í¤ë¤ë¡ì 리거ì ë°ì´í°ì ì¡ì¸ì¤íë ê²ì íì©í´ì£¼ë ëì²´ì ì¸ "
+"<literal><composite-id></literal> ì ì¸ì´ ì¡´ì¬íë¤. ì°ë¦¬ë ê·¸ ë°ì ì´ë¤"
+"ê²ì ëí ê·¸ê²ì ì¬ì©ì ëí´ ê°ë ¥íê² ë°ëíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr "Generator"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><generator></literal> child element names a Java "
+"class used to generate unique identifiers for instances of the persistent "
+"class. If any parameters are required to configure or initialize the "
+"generator instance, they are passed using the <literal><param></"
+"literal> element."
+msgstr ""
+"ì íì ì¸ <literal><generator></literal> ìì ììë ìì í´ëì¤ì ì¸ì¤"
+"í´ì¤ë¤ì ëí ì ì¼ ìë³ìë¤ì ìì±ìí¤ëë° ì¬ì©ëë ìë° í´ëì¤ë¥¼ ëª
ëª
íë¤. "
+"ë§ì¼ ììì íë¼ë¯¸í°ë¤ì´ ìì±ê¸° ì¸ì¤í´ì¤ë¥¼ 구ì±íê±°ë ì´ê¸°í ìí¤ëë° íìí "
+"ê²½ì°, ê·¸ê²ë¤ì <literal><param></literal> ìì 를 ì¬ì©íì¬ ì ë¬ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All generators implement the interface <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. This is a very simple interface. Some "
+"applications can choose to provide their own specialized implementations, "
+"however, Hibernate provides a range of built-in implementations. The "
+"shortcut names for the built-in generators are as follows:"
+msgstr ""
+"모ë ìì±ê¸°ë¤ì <literal>org.hibernate.id.IdentifierGenerator</literal> ì¸í°"
+"íì´ì¤ë¥¼ 구ííë¤. ì´ê²ì ë§¤ì° ê°ë¨í ì¸í°íì´ì¤ì´ë¤; ëªëª ì´í리ì¼ì´ì
ë¤ì "
+"ê·¸ê²ë¤ ìì ì í¹íë 구íë¤ì ì ê³µíëë¡ ì íí ì ìë¤. íì§ë§ Hibernateë "
+"미리 ë¹ëë 구íë¤ì ììë¤ì ì ê³µíë¤. ë¹ë-ì¸ ìì±ê¸°(generator)ë¤ì ëí ë¨"
+"ì¶ ì´ë¦ë¤ì´ ì¡´ì¬íë¤: <placeholder-1/>"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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>"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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> íì
ì´ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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ìì ìíì¤ë¥¼ ì¬ì©íê±°ë Interbaseìì "
+"ìì±ê¸°(generator)를 ì¬ì©íë¤. ë°íëë ìë³ìë <literal>long</literal>, "
+"<literal>short</literal> ëë <literal>int</literal> íì
ì´ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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>hibernate_unique_key</literal>ì "
+"<literal>next_hi</literal>)ì´ hi ê°ë¤ì ìì¤ë¡ì 주ì´ì§ë©´, <literal>long</"
+"literal>, <literal>short</literal> ëë <literal>int</literal> íì
ì ìë³ì"
+"ë¤ì í¨ê³¼ì ì¼ë¡ ìì±ìí¤ëë° hi/lo ìê³ ë¦¬ì¦ì ì¬ì©íë¤. hi/lo ìê³ ë¦¬ì¦ì í¹"
+"ì ë°ì´í°ë² ì´ì¤ì ëí´ìë§ ì ì¼í ìë³ìë¤ì ìì±ìí¨ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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> íì
ì ìë³ìë¤ì í¨ê³¼ì "
+"ì¼ë¡ ìì±ìí¤ëë° hi/lo ìê³ ë¦¬ì¦ì ì¬ì©íë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"uses a 128-bit UUID algorithm to generate identifiers of type string that "
+"are unique within a network (the IP address is used). The UUID is encoded as "
+"a string of 32 hexadecimal digits in length."
+msgstr ""
+"ë¤í¸ì ë´ìì ì ì¼í(IP 주ìê° ì¬ì©ëë¤) string íì
ì ìë³ìë¤ì ìì±ìí¤ê¸° "
+"ìí´ 128 ë¹í¸ UUID ìê³ ë¦¬ì¦ì ì¬ì©íë¤. UUIDë 길ì´ê° 32ì¸ 16ì§ìë¤ì 문ìì´"
+"ë¡ì ì¸ì½ë© ëë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr "MS SQL Serverì MySQL ììì ë°ì´í°ë² ì´ì¤ ìì± GUID 문ìì´ì ì¬ì©íë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"selects <literal>identity</literal>, <literal>sequence</literal> or "
+"<literal>hilo</literal> depending upon the capabilities of the underlying "
+"database."
+msgstr ""
+"기본 ë°ì´í°ë² ì´ì¤ì ê°ì©ì±ë¤ì ìì¡´íì¬ <literal>identity</literal>, "
+"<literal>sequence</literal> ëë <literal>hilo</literal>를 ì°¾ìë¸ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"lets the application assign an identifier to the object before <literal>save"
+"()</literal> is called. This is the default strategy if no <literal><"
+"generator></literal> element is specified."
+msgstr ""
+"ì´í리ì¼ì´ì
ì¼ë¡ íì¬ê¸ <literal>save()</literal>ê° í¸ì¶ë기 ì ì ìë³ì를 ê°"
+"ì²´ì í ë¹íëë¡ íë¤. <literal><generator></literal> ììê° ì§ì ëì§ ì"
+"ì ê²½ì° ì´ê²ì´ ëí´í¸ ë°©ëì´ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"retrieves a primary key, assigned by a database trigger, by selecting the "
+"row by some unique key and retrieving the primary key value."
+msgstr ""
+"ì´ë¤ ì ì¼ í¤ì ìí´ íì selectíê³ íë¼ì´ë¨¸ë¦¬ í¤ ê°ì ê²ìí¨ì¼ë¡ì¨ ë°ì´í°ë² "
+"ì´ì¤ í¸ë¦¬ê±°ì ìí´ í ë¹ë íë¼ì´ë¨¸ë¦¬ í¤ë¥¼ ê²ìíë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"uses the identifier of another associated object. It is usually used in "
+"conjunction with a <literal><one-to-one></literal> primary key "
+"association."
+msgstr ""
+"ë ë¤ë¥¸ ì°ê´ë ê°ì²´ì ìë³ì를 ì¬ì©íë¤. ëê° <literal><one-to-one></"
+"literal> íë¼ì´ë¨¸ë¦¬ í¤ ì°ê´ê´ê³ì í¨ê» ì¬ì©ëë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"a specialized sequence generation strategy that utilizes a database sequence "
+"for the actual value generation, but combines this with JDBC3 "
+"getGeneratedKeys to return the generated identifier value as part of the "
+"insert statement execution. This strategy is only supported on Oracle 10g "
+"drivers targeted for JDK 1.4. Comments on these insert statements are "
+"disabled due to a bug in the Oracle drivers."
+msgstr ""
+"ì¤ì ê° ìì±ì ìí´ ë°ì´í°ë² ì´ì¤ ìíì¤ë¥¼ íì©íì§ë§, ìì±ë ìë³ì ê°ì "
+"insert ë¬¸ì¥ ì¤íì ë¶ë¶ì¼ë¡ì ì¤ì ë¡ ë°íìí¤ê¸° ìí´ ì´ê²ì JDBC3 "
+"getGeneratedKeysì ê²°í©ìí¨ í¹íë ìíì¤ ìì± ë°©ë. ì´ ë°©ëë JDK 1.4ì ëì"
+"íë Oracle 10g ëë¼ì´ë²ë¤ ìììë§ ì§ìëë ê±°ì¹ë¡ ìë ¤ì ¸ ìë¤. ì´ë¤ insert "
+"문ì¥ë¤ì ëí 주ìë¤ì Oracle ëë¼ì´ë²ë¤ ë´ì ìë ë²ê·¸ ë문ì ì¬ì©ë¶ê°ë¥í"
+"ê² ëì´ ììì ë
¸í¸íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr "Hi/lo algorithm"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>hilo</literal> and <literal>seqhilo</literal> generators "
+"provide two alternate implementations of the hi/lo algorithm. The first "
+"implementation requires a \"special\" database table to hold the next "
+"available \"hi\" value. Where supported, the second uses an Oracle-style "
+"sequence."
+msgstr ""
+"<literal>hilo</literal>ì <literal>seqhilo</literal> ìì±ê¸°ë¤ì ìë³ì ìì±"
+"ì ëí ë§ìì ëë ì ê·¼ë²ì¸, hi/lo ìê³ ë¦¬ì¦ì ëí ë ê°ì ëì²´ 구íë¤ì ì "
+"ê³µíë¤. 첫 ë²ì§¸ 구íì ë¤ìì ì´ì© ê°ë¥í \"hi\" ê°ì ìì©í기 ìí \"í¹ë³í"
+"\" ë°ì´í°ë² ì´ì¤ í
ì´ë¸ì íìë¡ íë¤. ë ë²ì§¸ë (ì§ìëë) Oracle ì¤íì¼ì ì"
+"íì¤ë¥¼ ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, you cannot use <literal>hilo</literal> when supplying your "
+"own <literal>Connection</literal> to Hibernate. When Hibernate uses an "
+"application server datasource to obtain connections enlisted with JTA, you "
+"must configure the <literal>hibernate.transaction.manager_lookup_class</"
+"literal>."
+msgstr ""
+"ë¶ííë ë¹ì ì Hibernateì ë¹ì ìì ì <literal>Connection</literal>ì ì ê³µ"
+"í ë <literal>hilo</literal>를 ì¬ì©í ì ìë¤. Hibernateê° JTAì ëìì ë°"
+"ë 커ë¥ì
ë¤ì ì»ê¸° ìí´ ì´í리ì¼ì´ì
ìë² ë°ì´í°ìì¤ë¥¼ ì¬ì©í ë ë¹ì ì "
+"<literal>hibernate.transaction.manager_lookup_class</literal>를 ì ì íê² êµ¬ì±"
+"í´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr "UUID ìê³ ë¦¬ì¦"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The UUID contains: IP address, startup time of the JVM that is accurate to a "
+"quarter second, system time and a counter value that is unique within the "
+"JVM. It is not possible to obtain a MAC address or memory address from Java "
+"code, so this is the best option without using JNI."
+msgstr ""
+"UUID ë ë¤ìì í¬í¨íë¤: IP 주ì, JVMì ìì ìê°(ì íí 1/4 ì´), ìì¤í
ìê°"
+"ê³¼ (JVM ë´ìì ì ì¼í) counter ê°. Java ì½ëë¡ë¶í° MAC 주ì ëë ë©ëª¨ë¦¬ 주ì"
+"를 ì»ë ê²ì ë¶ê°ë¥íì¬ì, ì´ê²ì ì°ë¦¬ê° JNI를 ì¬ì©íì§ ìê³ ì íí ì ìë "
+"ìµìì ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr "ìë³ ì»¬ë¼ë¤ê³¼ ìíì¤ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For databases that support identity columns (DB2, MySQL, Sybase, MS SQL), "
+"you can use <literal>identity</literal> key generation. For databases that "
+"support sequences (DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB) you "
+"can use <literal>sequence</literal> style key generation. Both of these "
+"strategies require two SQL queries to insert a new object. For example:"
+msgstr ""
+"ìë³ ì»¬ë¼ë¤ì ì§ìíë ë°ì´í°ë² ì´ì¤ë¤(DB2, MySQL, Sybase, MS SQL)ì ê²½ì°, ë¹"
+"ì ì <literal>identity</literal> í¤ ìì±ì ì¬ì©í ì ìë¤. ìíì¤ë¤ì ì§ìí"
+"ë ë°ì´í°ë² ì´ì¤ë¤(DB2, Oracle, PostgreSQL, Interbase, McKoi, SAP DB)ì ê²½ì°, "
+"ë¹ì ì <literal>sequence</literal> ì¤íì¼ í¤ ìì±ì ì¬ì©í ìë ìë¤. ì´ë¤ ë°©"
+"ëë¤ ëª¨ë ìë¡ì´ ê°ì²´ë¥¼ insertí기 ìí´ ë ê°ì SQL ì§ìë¤ì íìë¡ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For cross-platform development, the <literal>native</literal> strategy will, "
+"depending on the capabilities of the underlying database, choose from the "
+"<literal>identity</literal>, <literal>sequence</literal> and <literal>hilo</"
+"literal> strategies."
+msgstr ""
+"í¬ë¡ì¤ íë«í¼ ê°ë°ì ìí´ì, <literal>native</literal> ë°©ëê° ê¸°ì¤ ë°ì´í°ë² ì´"
+"ì¤ë¤ì ê°ì©ì±ë¤ì ë°ë¼ <literal>identity</literal>, <literal>sequence</"
+"literal>, <literal>hilo</literal> ë°©ë ì¤ìì ì íë ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr "í ë¹ë ìë³ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want the application to assign identifiers, as opposed to having "
+"Hibernate generate them, you can use the <literal>assigned</literal> "
+"generator. This special generator uses the identifier value already assigned "
+"to the object's identifier property. The generator is used when the primary "
+"key is a natural key instead of a surrogate key. This is the default "
+"behavior if you do not specify a <literal><generator></literal> "
+"element."
+msgstr ""
+"(Hibernateë¡ íì¬ê¸ ìë³ìë¤ì ìì±ìí¤ëë¡ íë ê²ê³¼ë ë°ëë¡) ë¹ì ì´ ì´í리"
+"ì¼ì´ì
ì¼ë¡ íì¬ê¸ ìë³ìë¤ì í ë¹íëë¡ ìí ê²½ì°, ë¹ì ì <literal>assigned</"
+"literal> ìì±ê¸°ë¥¼ ì¬ì©í ì ìë¤. ì´ í¹ë³í ìì±ê¸°ë ê°ì²´ì identifier íë¡í¼"
+"í°ì ì´ë¯¸ í ë¹ë ìë³ì ê°ì ì¬ì©í ê²ì´ë¤. ì´ ìì±ê¸°(generator)ë íë¼ì´ë¨¸"
+"리 í¤ê° ëì©(surrogate ) í¤ ëì ì natural í¤ì¼ ë ì¬ì©ëë¤. ë¹ì ì´ "
+"<literal><generator></literal> ìì를 ì§ì íì§ ìì ê²½ì°ì ì´ê²ì´ ëí´"
+"í¸ í¹ì§ì´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>assigned</literal> generator makes Hibernate use "
+"<literal>unsaved-value=\"undefined\"</literal>. This forces Hibernate to go "
+"to the database to determine if an instance is transient or detached, unless "
+"there is a version or timestamp property, or you define <literal>Interceptor."
+"isUnsaved()</literal>."
+msgstr ""
+"<literal>assigned</literal> ìì±ê¸°(generator)를 ì ííë ê²ì , version ëë "
+"timestamp íë¡í¼í°ê° ì¡´ì¬íì§ ìë í ëë ë¹ì ì´ <literal>Interceptor."
+"isUnsaved()</literal>를 ì ìíì§ ìë í, íëì ì¸ì¤í´ì¤ê° transient ëë "
+"detachedì¸ì§ë¥¼ ê²°ì í기 ìí´ Hibernaeë¡ íì¬ê¸ ë°ì´í°ë² ì´ì¤ì ì ì´íëë¡ ê°ì "
+"íë, <literal>unsaved-value=\"undefined\"</literal>를 Hibernateìê² ì¬ì©íë"
+"ë¡ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr "í¸ë¦¬ê±°ë¤ì ìí´ í ë¹ë íë¼ì´ë¨¸ë¦¬ í¤ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr ""
+"리거ì ì¤í¤ë§ì ëí´ìë§(Hibernateë í¸ë¦¬ê±°ë¤ì ê°ì§ DDLì ìì±ìí¤ì§ ìë"
+"ë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In the above example, there is a unique valued property named "
+"<literal>socialSecurityNumber</literal>. It is defined by the class, as a "
+"natural key and a surrogate key named <literal>person_id</literal>, whose "
+"value is generated by a trigger."
+msgstr ""
+"ìì ìì ìì, natural í¤ë¡ì í´ëì¤ì ìí´ <literal>socialSecurityNumber</"
+"literal>ë¡ ëª
ëª
ë ì ì¼ ê°ì ê°ì§ íë¡í¼í°ê° ì¡´ì¬íê³ , í¸ë¦¬ê±°ì ìí´ ê·¸ ê°ì´ "
+"ìì±ëë <literal>person_id</literal>ë¡ ëª
ëª
ë ëì©í¤ê° ì¡´ì¬íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Enhanced identifier generators"
+msgstr "NOT TRANSLATED!Enhanced identifier generators"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Starting with release 3.2.3, there are 2 new generators which represent a re-"
+"thinking of 2 different aspects of identifier generation. The first aspect "
+"is database portability; the second is optimization Optimization means that "
+"you do not have to query the database for every request for a new identifier "
+"value. These two new generators are intended to take the place of some of "
+"the named generators described above, starting in 3.3.x. However, they are "
+"included in the current releases and can be referenced by FQN."
+msgstr ""
+"Starting with release 3.2.3, there are 2 new generators which represent a re-"
+"thinking of 2 different aspects of identifier generation. The first aspect "
+"is database portability; the second is optimization (not having to query the "
+"database for every request for a new identifier value). These two new "
+"generators are intended to take the place of some of the named generators "
+"described above (starting in 3.3.x); however, they are included in the "
+"current releases and can be referenced by FQN."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first of these new generators is <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal> which is intended, firstly, as a "
+"replacement for the <literal>sequence</literal> generator and, secondly, as "
+"a better portability generator than <literal>native</literal>. This is "
+"because <literal>native</literal> generally chooses between "
+"<literal>identity</literal> and <literal>sequence</literal> which have "
+"largely different semantics that can cause subtle issues in applications "
+"eyeing portability. <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal>, however, achieves portability in a "
+"different manner. It chooses between a table or a sequence in the database "
+"to store its incrementing values, depending on the capabilities of the "
+"dialect being used. The difference between this and <literal>native</"
+"literal> is that table-based and sequence-based storage have the same exact "
+"semantic. In fact, sequences are exactly what Hibernate tries to emulate "
+"with its table-based generators. This generator has a number of "
+"configuration parameters:"
+msgstr ""
+"The first of these new generators is <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal> which is intended firstly as a replacement "
+"for the <literal>sequence</literal> generator and secondly as a better "
+"portability generator than <literal>native</literal> (because "
+"<literal>native</literal> (generally) chooses between <literal>identity</"
+"literal> and <literal>sequence</literal> which have largely different "
+"semantics which can cause subtle isssues in applications eyeing "
+"portability). <literal>org.hibernate.id.enhanced.SequenceStyleGenerator</"
+"literal> however achieves portability in a different manner. It chooses "
+"between using a table or a sequence in the database to store its "
+"incrementing values depending on the capabilities of the dialect being used. "
+"The difference between this and <literal>native</literal> is that table-"
+"based and sequence-based storage have the same exact semantic (in fact "
+"sequences are exactly what Hibernate tries to emmulate with its table-based "
+"generators). This generator has a number of configuration parameters: "
+"<placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>sequence_name</literal> (optional, defaults to "
+"<literal>hibernate_sequence</literal>): the name of the sequence or table to "
+"be used."
+msgstr ""
+"<literal>sequence_name</literal> (optional, defaults to "
+"<literal>hibernate_sequence</literal>): The name of the sequence (or table) "
+"to be used."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): the initial value to be retrieved from the sequence/table. In "
+"sequence creation terms, this is analogous to the clause typically named "
+"\"STARTS WITH\"."
+msgstr ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the sequence/table. In "
+"sequence creation terms, this is analogous to the clause typical named "
+"\"STARTS WITH\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>increment_size</literal> (optional - defaults to <literal>1</"
+"literal>): the value by which subsequent calls to the sequence/table should "
+"differ. In sequence creation terms, this is analogous to the clause "
+"typically named \"INCREMENT BY\"."
+msgstr ""
+"<literal>increment_size</literal> (optional, defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the sequence/table should "
+"differ. In sequence creation terms, this is analogous to the clause typical "
+"named \"INCREMENT BY\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>force_table_use</literal> (optional - defaults to <literal>false</"
+"literal>): should we force the use of a table as the backing structure even "
+"though the dialect might support sequence?"
+msgstr ""
+"<literal>force_table_use</literal> (optional, defaults to <literal>false</"
+"literal>): Should we force the use of a table as the backing structure even "
+"though the dialect might support sequence?"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>value_column</literal> (optional - defaults to <literal>next_val</"
+"literal>): only relevant for table structures, it is the name of the column "
+"on the table which is used to hold the value."
+msgstr ""
+"<literal>value_column</literal> (optional, defaults to <literal>next_val</"
+"literal>): Only relevant for table structures! The name of the column on the "
+"table which is used to hold the value."
+
+#. Tag: para
+#, fuzzy, 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> (optional, defaults to <literal>none</"
+"literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\"/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The second of these new generators is <literal>org.hibernate.id.enhanced."
+"TableGenerator</literal>, which is intended, firstly, as a replacement for "
+"the <literal>table</literal> generator, even though it actually functions "
+"much more like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</"
+"literal>, and secondly, as a re-implementation of <literal>org.hibernate.id."
+"MultipleHiLoPerTableGenerator</literal> that utilizes the notion of "
+"pluggable optimizers. Essentially this generator defines a table capable of "
+"holding a number of different increment values simultaneously by using "
+"multiple distinctly keyed rows. This generator has a number of configuration "
+"parameters:"
+msgstr ""
+"The second of these new generators is <literal>org.hibernate.id.enhanced."
+"TableGenerator</literal> which is intended firstly as a replacement for the "
+"<literal>table</literal> generator (although it actually functions much more "
+"like <literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>) and "
+"secondly as a re-implementation of <literal>org.hibernate.id."
+"MultipleHiLoPerTableGenerator</literal> utilizing the notion of pluggable "
+"optimiziers. Essentially this generator defines a table capable of holding a "
+"number of different increment values simultaneously by using multiple "
+"distinctly keyed rows. This generator has a number of configuration "
+"parameters: <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>table_name</literal> (optional - defaults to "
+"<literal>hibernate_sequences</literal>): the name of the table to be used."
+msgstr ""
+"<literal>table_name</literal> (optional, defaults to "
+"<literal>hibernate_sequences</literal>): The name of the table to be used."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>value_column_name</literal> (optional - defaults to "
+"<literal>next_val</literal>): the name of the column on the table that is "
+"used to hold the value."
+msgstr ""
+"<literal>value_column_name</literal> (optional, defaults to "
+"<literal>next_val</literal>): The name of the column on the table which is "
+"used to hold the value."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>segment_column_name</literal> (optional - defaults to "
+"<literal>sequence_name</literal>): the name of the column on the table that "
+"is used to hold the \"segment key\". This is the value which identifies "
+"which increment value to use."
+msgstr ""
+"<literal>segment_column_name</literal> (optional, defaults to "
+"<literal>sequence_name</literal>): The name of the column on the table which "
+"is used to hold the \"segement key\". This is the value which distinctly "
+"identifies which increment value to use."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>segment_value</literal> (optional - defaults to <literal>default</"
+"literal>): The \"segment key\" value for the segment from which we want to "
+"pull increment values for this generator."
+msgstr ""
+"<literal>segment_value</literal> (optional, defaults to <literal>default</"
+"literal>): The \"segment key\" value for the segment from which we want to "
+"pull increment values for this generator."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>segment_value_length</literal> (optional - defaults to "
+"<literal>255</literal>): Used for schema generation; the column size to "
+"create this segment key column."
+msgstr ""
+"<literal>segment_value_length</literal> (optional, defaults to <literal>255</"
+"literal>): Used for schema generation; the column size to create this "
+"segment key column."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>initial_value</literal> (optional - defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the table."
+msgstr ""
+"<literal>initial_value</literal> (optional, defaults to <literal>1</"
+"literal>): The initial value to be retrieved from the table."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>increment_size</literal> (optional - defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the table should differ."
+msgstr ""
+"<literal>increment_size</literal> (optional, defaults to <literal>1</"
+"literal>): The value by which subsequent calls to the table should differ."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimizer</literal> (optional - defaults to <literal></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\"/>"
+
+#. Tag: title
+#, no-c-format
+msgid "Identifier generator optimization"
+msgstr "NOT TRANSLATED! Identifier generator optimization"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For identifier generators that store values in the database, it is "
+"inefficient for them to hit the database on each and every call to generate "
+"a new identifier value. Instead, you can group a bunch of them in memory and "
+"only hit the database when you have exhausted your in-memory value group. "
+"This is the role of the pluggable optimizers. Currently only the two "
+"enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced\" /> "
+"support this operation."
+msgstr ""
+"For identifier generators which store values in the database, it is "
+"inefficient for them to hit the database on each and every call to generate "
+"a new identifier value. Instead, you'd ideally want to group a bunch of them "
+"in memory and only hit the database when you have exhausted your in-memory "
+"value group. This is the role of the pluggable optimizers. Currently only "
+"the two enhanced generators (<xref linkend=\"mapping-declaration-id-enhanced"
+"\"/> support this notion. <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>none</literal> (generally this is the default if no optimizer was "
+"specified): this will not perform any optimizations and hit the database for "
+"each and every request."
+msgstr ""
+"<literal>none</literal> (generally this is the default if no optimizer was "
+"specified): This says to not perform any optimizations, and hit the database "
+"each and every request."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
+"retrieved values. The values from the database for this optimizer are "
+"expected to be sequential. The values retrieved from the database structure "
+"for this optimizer indicates the \"group number\". The "
+"<literal>increment_size</literal> is multiplied by that value in memory to "
+"define a group \"hi value\"."
+msgstr ""
+"<literal>hilo</literal>: applies a hi/lo algorithm around the database "
+"retrieved values. The values from the database for this optimizer are "
+"expected to be sequential. The values retrieved from the database structure "
+"for this optimizer indicates the \"group number\"; the "
+"<literal>increment_size</literal> is multiplied by that value in memory to "
+"define a group \"hi value\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>pooled</literal>: as with the case of <literal>hilo</literal>, this "
+"optimizer attempts to minimize the number of hits to the database. Here, "
+"however, we simply store the starting value for the \"next group\" into the "
+"database structure rather than a sequential value in combination with an in-"
+"memory grouping algorithm. Here, <literal>increment_size</literal> refers to "
+"the values coming from the database."
+msgstr ""
+"<literal>pooled</literal>: like was discussed for <literal>hilo</literal>, "
+"this optimizers attempts to minimize the number of hits to the database. "
+"Here, however, we simply store the starting value for the \"next group\" "
+"into the database structure rather than a sequential value in combination "
+"with an in-memory grouping algorithm. <literal>increment_size</literal> here "
+"refers to the values coming from the database."
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr "composite-id"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A table with a composite key can be mapped with multiple properties of the "
+"class as identifier properties. The <literal><composite-id></literal> "
+"element accepts <literal><key-property></literal> property mappings "
+"and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr ""
+"composite í¤ë¥¼ ê°ì§ í
ì´ë¸ì ê²½ì°, ë¹ì ì í´ëì¤ì ì¬ë¬ íë¡í¼í°ë¤ì ìë³ì "
+"íë¡í¼í°ë¤ë¡ì 매íí ì ìë¤. <literal><composite-id></literal> ìì"
+"ë ìì ììë¤ë¡ì <literal><key-property></literal> íë¡í¼í° 매íê³¼ "
+"<literal><key-many-to-one></literal> 매íë¤ì íì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The persistent class <emphasis>must</emphasis> override <literal>equals()</"
+"literal> and <literal>hashCode()</literal> to implement composite identifier "
+"equality. It must also implement <literal>Serializable</literal>."
+msgstr ""
+"ë¹ì ì ìì í´ëì¤ë composite ìë³ì ëë±ì±ì 구íí기 ìí´ì "
+"<literal>equals()</literal>ì <literal>hashCode()</literal>를 ì¤ë²ë¼ì´ë "
+"<emphasis>ìì¼ì¼ íë¤</emphasis>. ê·¸ê²ì ëí <literal>Serializable</literal>"
+"ì 구íí´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Unfortunately, this approach means that a persistent object is its own "
+"identifier. There is no convenient \"handle\" other than the object itself. "
+"You must instantiate an instance of the persistent class itself and populate "
+"its identifier properties before you can <literal>load()</literal> the "
+"persistent state associated with a composite key. We call this approach an "
+"<emphasis>embedded</emphasis> composite identifier, and discourage it for "
+"serious applications."
+msgstr ""
+"ë¶ííë, composite ìë³ìë¤ì ëí ì´ ì ê·¼ë²ì ìì ê°ì²´ê° ê·¸ê² ìì ì ìë³"
+"ìë¼ë ì ì ì미íë¤. ê°ì²´ ìì ì¸ì ë¤ë¥¸ \"í¸ë¤\"ì´ ì¡´ì¬íì§ ìëë¤. ë¹ì ì "
+"ë¹ì ì´ composite keyë¡ ì°ê´ë ìì ìí를 <literal>load()</literal> í ì ì"
+"기 ì´ì ì ìì í´ëì¤ ê·¸ ìì²´ì ì¸ì¤í´ì¤ë¥¼ ì´ê¸°í íê³ ê·¸ê²ì ìë³ì íë¡í¼í°"
+"ë¤ì êµ°ì§í ìì¼ì¼ íë¤. ì°ë¦¬ë ì´ ì ê·¼ë²ì <emphasis>embedded</emphasis> "
+"composite ìë³ìë¡ ë¶ë¥´ê³ , ì¤ëí ì´í리ì¼ì´ì
ë¤ì ëí´ ê·¸ê²ì ìµì ìí¨ë¤."
+
+#. 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><"
+"composite-id></literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"ë ë²ì§¸ ì ê·¼ë²ì ì°ë¦¬ê° <emphasis>mapped</emphasis> composite ìë³ìë¼ê³ ë¶ë¥´"
+"ë ê²ì¸ë°, ì¬ê¸°ì <literal><composite-id></literal> ìì ë´ì ëª
ëª
ë ì¬"
+"기ì ìë³ì íë¡í¼í°ë¤ì ìì í´ëì¤ì ë³ëì ìë³ì í´ëì¤ ìì ìì ì¤ë³µë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this example, both the composite identifier class, <literal>MedicareId</"
+"literal>, and the entity class itself have properties named "
+"<literal>medicareNumber</literal> and <literal>dependent</literal>. The "
+"identifier class must override <literal>equals()</literal> and "
+"<literal>hashCode()</literal> and implement <literal>Serializable</literal>. "
+"The main disadvantage of this approach is code duplication."
+msgstr ""
+"ì´ ìì ìì, composite ìë³ì í´ëì¤ì¸ <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:"
+msgstr "ë¤ì ìì±ë¤ì 매íë composite ìë³ì를 ì§ì íëë° ì¬ì©ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mapped</literal> (optional - defaults to <literal>false</literal>): "
+"indicates that a mapped composite identifier is used, and that the contained "
+"property mappings refer to both the entity class and the composite "
+"identifier class."
+msgstr ""
+"<literal>mapped</literal> (ìµì
, ëí´í¸ë <literal>false</literal>): íëì "
+"매íë composite ìë³ìê° ì¬ì©ë¨ì, ê·¸ë¦¬ê³ í¬í¨ë íë¡í¼í° 매íë¤ì´ ìí°í° í´"
+"ëì¤ì composite ìë³ì í´ëì¤ ìì를 참조í¨ì ëíë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (optional - but required for a mapped composite "
+"identifier): the class used as a composite identifier."
+msgstr ""
+"<literal>class</literal> (ìµì
, íì§ë§ íëì 매íë commposite ìë³ìì ëí´"
+"ìë íìì ì): íëì composite ìë³ìë¡ì ì¬ì©ëë í´ëì¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will describe a third, even more convenient approach, where the composite "
+"identifier is implemented as a component class in <xref linkend=\"components-"
+"compositeid\" />. The attributes described below apply only to this "
+"alternative approach:"
+msgstr ""
+"ì°ë¦¬ë <xref linkend=\"components-compositeid\"/>ìì composite ìë³ìê° íë"
+"ì component í´ëì¤ë¡ì 구íëë ë³´ë¤ í¸ë¦¬í ì ê·¼ë²ì¸ ì¸ë²ì§¸ ë°©ë를 ì¤ëª
í ê²"
+"ì´ë¤. ìëì ì¤ëª
ëì´ ìë ìì±ë¤ì ì´ ëì²´ì ì¸ ì ê·¼ë²ìë§ ì ì©ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal> (optional - required for this approach): a property "
+"of component type that holds the composite identifier. Please see chapter 9 "
+"for more information."
+msgstr ""
+"<literal>name</literal> (ìµì
, ì´ ì ê·¼ë²ì ê²½ì°ìë íìì): íëì "
+"component ìë³ì를 ìì íë ì»´í¬ëí¸ íì
ì íë¡í¼í°(9ì¥ì ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate uses for accessing the property value."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼ íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): the component class used as a composite "
+"identifier. Please see the next section for more information."
+msgstr ""
+"<literal>class</literal> (ìµì
- ëí´í¸ë reflectionì ìí´ ê²°ì ë íë¡í¼í° "
+"íì
): íëì composite ìë³ìë¡ì ì¬ì©ëë ì»´í¬ëí¸ í´ëì¤(ë¤ì ì ì ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The third approach, an <emphasis>identifier component</emphasis>, is "
+"recommended for almost all applications."
+msgstr ""
+"ì´ ì¸ë²ì§¸ ì ê·¼ë², <emphasis>identifier component</emphasis>ì ê±°ì 모ë ì´í"
+"리ì¼ì´ì
ë¤ì ëí´ ì°ë¦¬ê° ê¶ì¥íë ê²ì´ë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Discriminator"
+msgstr "discriminator"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><discriminator></literal> element is required for "
+"polymorphic persistence using the table-per-class-hierarchy mapping "
+"strategy. It declares a discriminator column of the table. The discriminator "
+"column contains marker values that tell the persistence layer what subclass "
+"to instantiate for a particular row. A restricted set of types can be used: "
+"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
+"literal>, <literal>byte</literal>, <literal>short</literal>, "
+"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
+"literal>."
+msgstr ""
+"<literal><discriminator></literal> ììë table-per-class-hierarchy(í
"
+"ì´ë¸ ë¹ í´ëì¤ ê³ì¸µêµ¬ì¡°) 매í ë°©ë를 ì¬ì©íë ë¤íì± ììíì íìíê³ í
ì´ë¸"
+"ì discriminator(íë³ì) 컬ë¼ì ì ì¸íë¤. discriminator 컬ë¼ì í¹ì íì ë"
+"í´ ì´ê¸°í ìí¬ ìë¸ í´ëì¤ê° 무ìì¸ì§ë¥¼ ìì ê³ì¸µì ìë ¤ì£¼ë íìì ê°ë¤ì í¬"
+"í¨íë¤. íì
ë¤ì ì íì ì¸ ì§í©ì´ ì¬ì©ë ì ìë¤: <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
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to <literal>class</literal>): "
+"the name of the discriminator column."
+msgstr ""
+"<literal>column</literal> (ìµì
- ëí´í¸ë <literal>class</literal>) "
+"discriminator 컬ë¼ëª
."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>type</literal> (optional - defaults to <literal>string</literal>): "
+"a name that indicates the Hibernate type"
+msgstr ""
+"<literal>type</literal> (ìµì
- ëí´í¸ë <literal>string</literal>) "
+"Hibernate íì
ì ëíë´ë ì´ë¦"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>force</literal> (optional - defaults to <literal>false</literal>): "
+"\"forces\" Hibernate to specify the allowed discriminator values, even when "
+"retrieving all instances of the root class."
+msgstr ""
+"<literal>force</literal> (ìµì
- ëí´í¸ë <literal>false</literal>) ì´ê²ì "
+"Hibernateë¡ íì¬ê¸ ë£¨í¸ í´ëì¤ì 모ë ì¸ì¤í´ì¤ë¤ì ê²ìí ëì¡°ì°¨ë íì©ë "
+"discriminator ê°ë¤ì ì§ì íëë¡ \"ê°ì íë¤\"."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
+"set this to <literal>false</literal> if your discriminator column is also "
+"part of a mapped composite identifier. It tells Hibernate not to include the "
+"column in SQL <literal>INSERTs</literal>."
+msgstr ""
+"<literal>insert</literal> (ìµì
- ëí´í¸ë <literal>true</literal>) ë¹ì ì "
+"discriminator 컬ë¼ì´ ëí 매íë composite ìë³ìì ë¶ë¶ì¼ ê²½ì°ì ì´ê²ì "
+"<literal>false</literal>ë¡ ì¤ì íë¼. (Hibernateìê² SQL <literal>INSERT</"
+"literal>ë¤ ìì ê·¸ 컬ë¼ì í¬í¨íì§ ìëë¡ íµë³´íë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): an arbitrary SQL expression that is "
+"executed when a type has to be evaluated. It allows content-based "
+"discrimination."
+msgstr ""
+"<literal>formula</literal> (ìµì
) íì
ì´ íê° ëì´ì¼ í ë ì¤íëë ììì "
+"SQL ííì. 컨í
ì¸ ê¸°ë°ì íë³ì íì©í´ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal><"
+"class></literal> and <literal><subclass></literal> elements."
+msgstr ""
+"discriminator 컬ë¼ì ì¤ì ê°ë¤ì <literal><class></literal> ììì "
+"<literal><subclass></literal> ììì <literal>discriminator-value</"
+"literal> ìì±ì ìí´ ì§ì ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>force</literal> attribute is only useful if the table contains "
+"rows with \"extra\" discriminator values that are not mapped to a persistent "
+"class. This will not usually be the case."
+msgstr ""
+"<literal>force</literal> ìì±ì í
ì´ë¸ì´ ìì í´ëì¤ë¡ 매íëì§ ìë \"í¹ë³í"
+"\" discriminator ê°ë¤ì ê°ì§ íë¤ì í¬í¨í ê²½ì°ì(ë§) ì ì©íë¤. ì´ê²ì ëê° "
+"ê·¸ ê²½ì°ê° ìë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>formula</literal> attribute allows you to declare an arbitrary "
+"SQL expression that will be used to evaluate the type of a row. For example:"
+msgstr ""
+"<literal>formula</literal> ìì±ì ì¬ì©íì¬ ë¹ì ì íì íì
ì íë¨íëë° ì¬ì©"
+"ë ììì SQL ííìì ì ì¸í ì ìë¤:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Version (optional)"
+msgstr "version (ìµì
)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><version></literal> element is optional and indicates "
+"that the table contains versioned data. This is particularly useful if you "
+"plan to use <emphasis>long transactions</emphasis>. See below for more "
+"information:"
+msgstr ""
+"<literal><version></literal> ììë ìµì
ì´ê³ í
ì´ë¸ì´ ë²ì íë ë°ì´í°"
+"를 í¬í¨íë¤ë ê²ì ëíë¸ë¤. ì´ê²ì ë¹ì ì´ <emphasis>긴 í¸ëìì
(long "
+"transaction)ë¤</emphasis>ì ì¬ì©í ê³íì´ë¼ë©´ í¹í ì ì©íë¤ (ìë를 ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the column holding the version number."
+msgstr ""
+"<literal>column</literal> (ìµì
- ëí´í¸ë íë¡í¼í° ëª
): ë²ì ë²í¸ë¥¼ ê°ì§ 컬"
+"ë¼ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the name of a property of the persistent class."
+msgstr "<literal>name</literal>: ìì í´ëì¤ì íë¡í¼í° ëª
."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>type</literal> (optional - defaults to <literal>integer</literal>): "
+"the type of the version number."
+msgstr ""
+"<literal>type</literal> (ìµì
- ëí´í¸ë <literal>integer</literal>): ë²ì ë²"
+"í¸ì íì
."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate uses to access the property value."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼ íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì¡ì¸ì¤íëë° ì¬ì©í ë°©ë.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>undefined</"
+"literal>): a version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. <literal>Undefined</literal> "
+"specifies that the identifier property value should be used."
+msgstr ""
+"<literal>unsaved-value</literal> (ìµì
- ëí´í¸ë <literal>undefined</"
+"literal>): ì´ì ì¸ì
ìì ì ì¥ëìê±°ë ë¡ëëìë detached ì¸ì¤í´ì¤ë¡ë¶í° 구ë³"
+"ì§ì´ì, ì¸ì¤í´ì¤ê° ìë¡ì´ ì´ê¸°íë¨(unsaved)ì ëíë´ë version íë¡í¼í° ê°."
+"(<literal>undefined</literal>ë ìë³ì íë¡í¼í° ê°ì´ ì¬ì©ë ê²ìì ì§ì íë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this version property value is generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (ìµì
- ëí´í¸ë <literal>never</literal>): ì´ "
+"version íë¡í¼í° ê°ì´ ë°ì´í°ë² ì´ì¤ì ìí´ ì¤ì ë¡ ì°ì¶ëëì§ë¥¼ ì§ì íë¤. "
+"<xref linkend=\"mapping-generated\">ì°ì¶ëë íë¡í¼í°ë¤</xref>ì ê´í ë
¼ì를 "
+"ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal> (optional - defaults to <literal>true</literal>): "
+"specifies whether the version column should be included in SQL insert "
+"statements. It can be set to <literal>false</literal> if the database column "
+"is defined with a default value of <literal>0</literal>."
+msgstr ""
+"<literal>insert</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): version "
+"컬ë¼ì´ SQL insert 문ì¥ë¤ ìì í¬í¨ë ê²ì¸ì§ ì¬ë¶ë¥¼ ì§ì íë¤. ë°ì´í°ë² ì´ì¤ 컬"
+"ë¼ì´ ëí´í¸ ê° <literal>0</literal>ì¼ë¡ ì ìëë ê²½ì°ìë§ <literal>false</"
+"literal>ë¡ ì¤ì ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Version numbers can be of Hibernate type <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> or <literal>calendar</literal>."
+msgstr ""
+"ë²ì ë²í¸ë¤ì <literal>long</literal>, <literal>integer</literal>, "
+"<literal>short</literal>, <literal>timestamp</literal> ëë "
+"<literal>calendar</literal> íì
ì¼ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A version or timestamp property should never be null for a detached "
+"instance. Hibernate will detect any instance with a null version or "
+"timestamp as transient, irrespective of what other <literal>unsaved-value</"
+"literal> strategies are specified. <emphasis>Declaring a nullable version or "
+"timestamp property is an easy way to avoid problems with transitive "
+"reattachment in Hibernate. It is especially useful for people using assigned "
+"identifiers or composite keys</emphasis>."
+msgstr ""
+"version ëë timestamp íë¡í¼í°ë detached ì¸ì¤í´ì¤ì ëí´ ê²°ì½ nullì¼ ìê° "
+"ìì´ì, Hibernateë ë¤ë¥¸ <literal>unsaved-value</literal> ë°©ëë¤ì´ ì§ì ëë "
+"ê²ì ìê´ìì´, null versionì´ë timestamp를 ê°ì§ ììì ì¸ì¤í´ì¤ë¥¼ transient"
+"ë¡ì ê²ì¶í ê²ì´ë¤. <emphasis>null íì©ëë version ì´ë property를 ì ì¸íë "
+"ê²ì Hibernateìì transitive reattachmentì ëí ììì 문ì ë¤ì í¼íë ì¬"
+"ì´ ë°©ë²ì´ê³ , assigned ìë³ìë¤ì´ë composite keyë¤ì ì¬ì©íë ì¬ëë¤ìê² í¹"
+"í ì ì©íë¤!</emphasis>"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Timestamp (optional)"
+msgstr "timestamp (ìµì
)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The optional <literal><timestamp></literal> element indicates that the "
+"table contains timestamped data. This provides an alternative to versioning. "
+"Timestamps are a less safe implementation of optimistic locking. However, "
+"sometimes the application might use the timestamps in other ways."
+msgstr ""
+"ìµì
<literal><timestamp></literal> ììë í
ì´ë¸ì´ íìì¤í¬íí ë ë°"
+"ì´í°ë¥¼ í¬í¨í¨ì ëíë¸ë¤. ì´ê²ì ë²ì íì ëí ë체물ë¡ì ê³ ìëìë¤. "
+"Timestampì ê³ ì íê² optimistic ì ê¸ì ëí ë¤ì ìì í 구íì´ë¤. íì§ë§ ëë"
+"ë¡ ì´í리ì¼ì´ì
ì ë¤ë¥¸ ë°©ë²ë¤ë¡ timestampë¤ì ì¬ì©í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of a column holding the timestamp."
+msgstr ""
+"<literal>column</literal> (ìµì
- ëí´í¸ë íë¡í¼í° ëª
): íìì¤í¬í를 í¬í¨í"
+"ë ì»¬ë¼ ëª
."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the name of a JavaBeans style property of Java type "
+"<literal>Date</literal> or <literal>Timestamp</literal> of the persistent "
+"class."
+msgstr ""
+"<literal>name</literal>: ìì í´ëì¤ì ëí´ ìë° <literal>Date</literal> ë"
+"ë <literal>Timestamp</literal> íì
ì ê°ì§ ìë°ë¹ì¦ ì¤íì¼ì íë¡í¼í° ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unsaved-value</literal> (optional - defaults to <literal>null</"
+"literal>): a version property value that indicates that an instance is newly "
+"instantiated (unsaved), distinguishing it from detached instances that were "
+"saved or loaded in a previous session. <literal>Undefined</literal> "
+"specifies that the identifier property value should be used."
+msgstr ""
+"<literal>unsaved-value</literal> (ìµì
- ëí´í¸ë <literal>null</literal>): "
+"ì´ì ì¸ì
ìì ì ì¥ëìê±°ë ë¡ëëìë detached ì¸ì¤í´ì¤ë¡ë¶í° ì¸ì¤í´ì¤ë¥¼ 구ë³"
+"ì§ì°ë, ì¸ì¤í´ì¤ê° ìë¡ì´ ì´ê¸°íë¨(unsaved)ì ëíë´ë version íë¡í¼í° ê°."
+"(<literal>undefined</literal>ë ìë³ì íë¡í¼í° ê°ì´ ì¬ì©ë ê²ìì ì§ì íë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>source</literal> (optional - defaults to <literal>vm</literal>): "
+"Where should Hibernate retrieve the timestamp value from? From the database, "
+"or from the current JVM? Database-based timestamps incur an overhead because "
+"Hibernate must hit the database in order to determine the \"next value\". It "
+"is safer to use in clustered environments. Not all <literal>Dialects</"
+"literal> are known to support the retrieval of the database's current "
+"timestamp. Others may also be unsafe for usage in locking due to lack of "
+"precision (Oracle 8, for example)."
+msgstr ""
+"<literal>source</literal> (ìµì
- ëí´í¸ë <literal>vm</literal>): Hibernate"
+"ë ì´ëì timestamp ê°ì ê²ìí ê²ì¸ê°? ë°ì´í°ë² ì´ì¤ë¡ë¶í°ì¸ê° íì¬ì JVMì¼ë¡"
+"ë¶í°ì¸ê°? ë°ì´í°ë² ì´ì¤ 기ë°ì timestampë¤ì Hibernateê° \"ë¤ì ê°\"ì ê²°ì í"
+"기 ìí´ ë°ì´í°ë² ì´ì¤ì ì ìí´ì¼ í기 ë문ì ì¤ë²í¤ë를 ì´ëíì§ë§, í´ë¬ì¤í°ë§"
+"ë íê²½ë¤ììì ì©ëë¡ ë³´ë¤ ë ìì í ê²ì´ë¤. ëí 모ë <literal>Dialect</"
+"literal>ë¤ì´ ë°ì´í°ë² ì´ì¤ì íì¬ì timestampì ëí ê²ìì ì§ìíë ê²ì¼ë¡ ì"
+"ë ¤ì ¸ ìì§ ìì§ë§, ë¤ë¥¸ <literal>Dialect</literal>ë¤ì ì ë°ë ê²°í ë문ì ì ê¸"
+"ì ìì´ ì¬ì©ì´ ìì íì§ ìì ì ììì ë
¸í¸íë¼(ì를 ë¤ë©´ ì¤ë¼í´ 8)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this timestamp property value is actually "
+"generated by the database. See the discussion of <link linkend=\"mapping-"
+"generated\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (ìµì
- ëí´í¸ë <literal>never</literal>): ì´ "
+"timestamp íë¡í¼í° ê°ì´ ë°ì´í°ë² ì´ì¤ì ìí´ ì¤ì ë¡ ìì±ë¨ì ì§ì íë¤. <xref "
+"linkend=\"mapping-generated\">ì°ì¶ëë íë¡í¼í°ë¤</xref>ì ëí ë
¼ìë¤ ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal><Timestamp></literal> is equivalent to <literal><version "
+"type=\"timestamp\"></literal>. And <literal><timestamp source=\"db"
+"\"></literal> is equivalent to <literal><version type=\"dbtimestamp"
+"\"></literal>"
+msgstr ""
+"<literal><timestamp></literal>ë <literal><version type=\"timestamp"
+"\"></literal>ê³¼ ê°ìì ë
¸í¸íë¼. ê·¸ë¦¬ê³ <literal><timestamp use-db="
+"\"true\"></literal>ë <literal><version type=\"dbtimestamp\"></"
+"literal>ê³¼ ê°ë¤"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Property"
+msgstr "íë¡í¼í°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><property></literal> element declares a persistent "
+"JavaBean style property of the class."
+msgstr ""
+"<literal><property></literal> ììë í´ëì¤ì ìë°ë¹ì¦ ì¤íì¼ì ìì í"
+"ë¡í¼í°ë¥¼ ì ì¸íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>name</literal>: the name of the property, with an initial lowercase "
+"letter."
+msgstr "<literal>name</literal>: 첫 ì문ìë¡ ììíë íë¡í¼í° ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the mapped database table column. This can also be specified by "
+"nested <literal><column></literal> element(s)."
+msgstr ""
+"<literal>column</literal> (ìµì
- ëí´í¸ë íë¡í¼í° ì´ë¦): 매íë ë°ì´í°ë² ì´"
+"ì¤ í
ì´ë¸ 컬ë¼ì ì´ë¦. ì´ê²ì ëí ë´ë¶ì í¬í¨ëë <literal><column></"
+"literal> ìì(ë¤)ì ìí´ ì§ì ë ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update, insert</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that the mapped columns should be included in SQL "
+"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
+"Setting both to <literal>false</literal> allows a pure \"derived\" property "
+"whose value is initialized from some other property that maps to the same "
+"column(s), or by a trigger or other application."
+msgstr ""
+"<literal>update, insert</literal> (ìµì
- ëí´í¸ë <literal>true</"
+"literal>) : 매íë 컬ë¼ë¤ì´ <literal>UPDATE</literal>ì/ëë "
+"<literal>INSERT</literal> 문ì¥ë¤ìì í¬í¨ë ê²ìì ì§ì íë¤. ëë¤ "
+"<literal>false</literal>ë¡ ì¤ì íë ê²ì ê·¸ ê°ì´ ëì¼í 컬ë¼(ë¤)ë¡ ë§¤íëë "
+"ì´ë¤ ë¤ë¥¸ íë¡í¼í°ë¡ë¶í° ëë í¸ë¦¬ê±°ì ìí´ ëë ë¤ë¥¸ ì´í리ì¼ì´ì
ì¼ë¡ë¶í° ì´"
+"기í ëë ììíê² \"íìë(derived)\" íë¡í¼í°ë¥¼ íì©í´ì¤ë¤."
+
+#. 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> (ìµì
): <emphasis>ê³ì°ëë</emphasis> íë¡í¼í°ì "
+"ëí´ ê°ì ì ìíë SQL ííì. ê³ì°ëë íë¡í¼í°ë¤ì ê·¸ê²ë¤ ìì ì ëí ì»¬ë¼ "
+"매íì ê°ì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
+"specifies that this property should be fetched lazily when the instance "
+"variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr ""
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>false</literal>): ì¸ì¤í´ì¤ "
+"ë³ìê° ì²ìì¼ë¡ ì¡ì¸ì¤ ë ë ì´ íë¡í¼í°ê° lazilyíê² íì¹ë ê²ìì ì§ì íë¤"
+"(ë¹ë-ì ë°ì´í¸ì½ë ìë¨ì íìë¡ íë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): enables the DDL generation of a unique "
+"constraint for the columns. Also, allow this to be the target of a "
+"<literal>property-ref</literal>."
+msgstr ""
+"<literal>unique</literal> (ìµì
): 컬ë¼ë¤ì ëí ì ì¼ ì»¨ì¤í¸ë ì¸í¸ì DDL ìì±"
+"ì ê°ë¥íê² ë§ë ë¤. ëí ì´ê²ì´ <literal>property-ref</literal>ì íì¼ì´ ë"
+"ë ê²ì íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): enables the DDL generation of a "
+"nullability constraint for the columns."
+msgstr ""
+"<literal>not-null</literal> (ìµì
): 컬ë¼ë¤ì ëí´ null ê°ë¥ 컨ì¤í¸ë ì¸í¸ì "
+"DDL ìì±ì ê°ë¥íê² ë§ë ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to this property do or do not require "
+"acquisition of the optimistic lock. In other words, it determines if a "
+"version increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>true</"
+"literal>): ì´ íë¡í¼í°ì ëí ì
ë°ì´í¸ë¤ì´ optimistic ì ê¸ì íëíë ê²ì í"
+"ìë¡ íê±°ë íìë¡ íì§ ììì ì§ì íë¤. ë¬ë¦¬ë§í´, ì´ íë¡í¼í°ê° dirtyì¼ ë "
+"ë²ì ì¦ê°ê° ë°ìí ê²½ì°ì¸ì§ë¥¼ ê²°ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>generated</literal> (optional - defaults to <literal>never</"
+"literal>): specifies that this property value is actually generated by the "
+"database. See the discussion of <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (ìµì
- ëí´í¸ë <literal>never</literal>): ì´ "
+"íë¡í¼í° ê°ì´ ë°ì´í°ë² ì´ì¤ì ìí´ ì¤ì ë¡ ì°ì¶ëëì§ë¥¼ ì§ì íë¤. <xref "
+"linkend=\"mapping-generated\">ì°ì¶ëë íë¡í¼í°ë¤</xref>ì ëí ë
¼ì를 ë³´ë¼."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr "<emphasis>typename</emphasis>ì ë¤ìì¼ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The name of a Hibernate basic type: <literal>integer, string, character, "
+"date, timestamp, float, binary, serializable, object, blob</literal> etc."
+msgstr ""
+"Hibernate 기본 íì
ì ì´ë¦ (ì를 ë¤ì´. <literal>integer, string, character, "
+"date, timestamp, float, binary, serializable, object, blob</literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The name of a Java class with a default basic type: <literal>int, float, "
+"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
+"literal> etc."
+msgstr ""
+"ëí´í¸ 기본 íì
ì ê°ì§ Java í´ëì¤ì ì´ë¦(ì를 ë¤ì´. <literal>int, float, "
+"char, java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
+"literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr "serializable Java í´ëì¤ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
+"literal> etc."
+msgstr ""
+"ë§ì¶¤ íì
ì í´ëì¤ ì´ë¦(ì를 ë¤ì´. <literal>com.illflow.type.MyCustomType</"
+"literal>)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you do not specify a type, Hibernate will use reflection upon the named "
+"property and guess the correct Hibernate type. Hibernate will attempt to "
+"interpret the name of the return class of the property getter using, in "
+"order, rules 2, 3, and 4. In certain cases you will need the <literal>type</"
+"literal> attribute. For example, to distinguish between <literal>Hibernate."
+"DATE</literal> and <literal>Hibernate.TIMESTAMP</literal>, or to specify a "
+"custom type."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ íì
ì ì§ì íì§ ìì ê²½ì°, Hibernateë ì íí Hibernate íì
ì ì¶"
+"ì í기 ìí´ ëª
ëª
ë íë¡í¼í°ì ëí´ reflectionì ì¬ì©í ê²ì´ë¤. Hibernateë "
+"ê·¸ ìììì 2,3,4 ê·ì¹ë¤ì ì¬ì©íì¬ íë¡í¼í° getterì ë°í í´ëì¤ì ì´ë¦ì í´"
+"ìíë ¤ê³ ìëí ê²ì´ë¤. íì§ë§ ì´ê²ì íì 충ë¶íì§ë ìë¤. ì´ë¤ ê²½ì°ë¤ìì, "
+"ë¹ì ì ì¬ì í <literal>type</literal> ìì±ì íìë¡ í ê²ì´ë¤.(ì를 ë¤ì´, "
+"<literal>Hibernate.DATE</literal>ì <literal>Hibernate.TIMESTAMP</literal> ì¬"
+"ì´ë¥¼ 구ë³í기 ìí´, ëë ë§ì¶¤ íì
ì ì§ì í기 ìí´.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>access</literal> attribute allows you to control how Hibernate "
+"accesses the property at runtime. By default, Hibernate will call the "
+"property get/set pair. If you specify <literal>access=\"field\"</literal>, "
+"Hibernate will bypass the get/set pair and access the field directly using "
+"reflection. You can specify your own strategy for property access by naming "
+"a class that implements the interface <literal>org.hibernate.property."
+"PropertyAccessor</literal>."
+msgstr ""
+"<literal>access</literal> ìì±ì ë¹ì ì¼ë¡ íì¬ê¸ Hibernateê° ë°íì ìì íë¡"
+"í¼í°ì ì¡ì¸ì¤íë ë°©ë²ì ì ì´íëë¡ í´ì¤ë¤. ëí´í¸ë¡ Hibernateë íë¡í¼í° "
+"get/set ìì í¸ì¶í ê²ì´ë¤. ë§ì¼ ë¹ì ì´ <literal>access=\"field\"</literal>"
+"를 ì§ì í ê²½ì°, Hibernateë get/set ìì í¼íê³ reflectionì ì¬ì©íì¬ ì§ì í"
+"ëì ì¡ì¸ì¤ í ê²ì´ë¤. ë¹ì ì <literal>org.hibernate.property."
+"PropertyAccessor</literal> ì¸í°íì´ì¤ë¥¼ 구ííë í´ëì¤ë¥¼ ëª
ëª
í¨ì¼ë¡ì¨ íë¡í¼"
+"í° ì ê·¼ì ìí ë¹ì ìì ì ë°©ë를 ì§ì í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A powerful feature is derived properties. These properties are by definition "
+"read-only. The property value is computed at load time. You declare the "
+"computation as an SQL expression. This then translates to a <literal>SELECT</"
+"literal> clause subquery in the SQL query that loads an instance:"
+msgstr ""
+"í¹ë³í ê°ë ¥í í¹ì§ì íìë íë¡í¼í°ë¤ì´ë¤. ì´ë¤ íë¡í¼í°ë¤ì ì ìì ì½ê¸° ì "
+"ì©ì´ê³ , ê·¸ íë¡í¼í° ê°ì ë¡ë ìì ê³ì°ëë¤. ë¹ì ì ê·¸ ê³ì°ì SQL ííìì¼ë¡ "
+"ì ì¸íê³ , ì´ê²ì ì¸ì¤í´ì¤ë¥¼ ë¡ëìí¤ë SQL ì§ì ë´ì <literal>SELECT</"
+"literal> ì ìë¸ì§ìë¡ ë²ìëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can reference the entity table by not declaring an alias on a particular "
+"column. This would be <literal>customerId</literal> in the given example. "
+"You can also use the nested <literal><formula></literal> mapping "
+"element if you do not want to use the attribute."
+msgstr ""
+"ë¹ì ì í¹ì 컬ë¼(주ì´ì§ ìì ììë <literal>customerId</literal>)ì ëí´ "
+"alias를 ì ì¸íì§ ììì¼ë¡ì¨ ìí°í°ë¤ ìì ì í
ì´ë¸ì 참조í ì ììì ë
¸í¸í"
+"ë¼. ëí ë¹ì ì ë§ì¼ ë¹ì ì´ ê·¸ ìì±ì ì¬ì©íê³ ì¶ì§ ìì ê²½ì°ì ë´í¬ë "
+"<literal><formula></literal> 매í ìì를 ì¬ì©í ì ììì ë
¸í¸íë¼."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Many-to-one"
+msgstr "many-to-one"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An ordinary association to another persistent class is declared using a "
+"<literal>many-to-one</literal> element. The relational model is a many-to-"
+"one association; a foreign key in one table is referencing the primary key "
+"column(s) of the target table."
+msgstr ""
+"ë ë¤ë¥¸ ìì í´ëì¤ì ëí ì ê· ì°ê´ê´ê³ë <literal>many-to-one</literal> ì"
+"ì를 ì¬ì©íì¬ ì ì¸ëë¤. ê´ê³í 모íì many-to-one ì°ê´ê´ê³ì´ë¤.: íëì í
ì´"
+"ë¸ ë´ì ìë foreign í¤ë ëì í
ì´ë¸ì íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼(ë¤)ì 참조íê³ ì"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr "<literal>name</literal>: íë¡í¼í°ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the foreign key column. "
+"This can also be specified by nested <literal><column></literal> "
+"element(s)."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>column</literal> (ìµì
): foreign key 컬ë¼ì ì´ë¦. ì´ê²ì ëí ë´í¬"
+"ë <literal><column></literal> ìì(ë¤)ì ìí´ ì§ì ëë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>column</literal> (ìµì
): foreign key 컬ë¼ì ì´ë¦. ì´ê²ì ëí ë´í¬"
+"ë <literal><column></literal> ìì(ë¤)ì ìí´ ì§ì ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, 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> (ìµì
- ëí´í¸ë reflectionì ìí´ ê²°ì ë íë¡í¼í° "
+"íì
): ì°ê´ë í´ëì¤ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional): specifies which operations should be "
+"cascaded from the parent object to the associated object."
+msgstr ""
+"<literal>cascade</literal> (ìµì
) ì´ë ì¤í¼ë ì´ì
ë¤ì´ ë¶ëª¨ ê°ì²´ë¡ë¶í° ì°ê´ë "
+"ê°ì²´ë¡ ì¼ì¤ì¼ì´ë ë ê²ì¸ì§ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional - defaults to <literal>select</literal>): "
+"chooses between outer-join fetching or sequential select fetching."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>fetch</literal> (ìµì
- ëí´í¸ë <literal>select</literal>): outer-"
+"join íì¹ ëë sequential select íì¹ ì¬ì´ìì ì ííë¼.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>fetch</literal> (ìµì
- ëí´í¸ë <literal>select</literal>): outer-"
+"join íì¹ ëë ìì°¨ì ì¸ select íì¹ ì¤ìì ì ííë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update, insert</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that the mapped columns should be included in SQL "
+"<literal>UPDATE</literal> and/or <literal>INSERT</literal> statements. "
+"Setting both to <literal>false</literal> allows a pure \"derived\" "
+"association whose value is initialized from another property that maps to "
+"the same column(s), or by a trigger or other application."
+msgstr ""
+"<literal>update, insert</literal> (ìµì
- ëí´í¸ë <literal>true</literal>) "
+"매íë 컬ë¼ë¤ì´ SQL <literal>UPDATE</literal>ì/ëë <literal>INSERT</"
+"literal> 문ì¥ë¤ ìì í¬í¨ë ê²ì¸ì§ë¥¼ ì§ì íë¤. ëë¤ <literal>false</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 keyì ì¡°ì¸ëë ì°ê´ë í´ë"
+"ì¤ì íë¡í¼í° ì´ë¦. ì§ì ëì§ ìì ê²½ì°, ì°ê´ í´ëì¤ì íë¼ì´ë¨¸ë¦¬ í¤ê° ì¬ì©ë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): enables the DDL generation of a unique "
+"constraint for the foreign-key column. By allowing this to be the target of "
+"a <literal>property-ref</literal>, you can make the association multiplicity "
+"one-to-one."
+msgstr ""
+"<literal>unique</literal> (ìµì
): foreign-key 컬ë¼ì ìí ì ì¼ ì»¨ì¤í¸ë ì¸í¸"
+"ì DDL ìì±ì ê°ë¥íëë¡ í´ì¤ë¤. ëí ì´ê²ì´ property-refì ëìì´ ëë ê²ì "
+"íì©í´ì¤ë¤. ì´ê²ì ì°ê´ ë¤ì¤ì±(association multiplicity)ì í¨ì¨ì ì¼ë¡ ì¼ ë "
+"ì¼ë¡ ë§ë ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): enables the DDL generation of a "
+"nullability constraint for the foreign key columns."
+msgstr ""
+"<literal>not-null</literal> (ìµì
): foreign key 컬ë¼ë¤ì ìí null ê°ë¥í 컨"
+"ì¤í¸ë ì¸í¸ì DDL ìì±ì ê°ë¥íëë¡ í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
+"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
+"\"</literal> specifies that the property should be fetched lazily when the "
+"instance variable is first accessed. This requires build-time bytecode "
+"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
+"association will always be eagerly fetched."
+msgstr ""
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>proxy</literal>): ëí´í¸"
+"ë¡, ë¨ì¼ í¬ì¸í¸ ì°ê´ë¤ì´ íë½ìëë¤. <literal>lazy=\"no-proxy\"</literal>ë "
+"ì¸ì¤í´ì¤ ë³ìê° ì²ìì¼ë¡ ì ê·¼ë ë ê·¸ íë¡í¼í°ê° lazily íì¹ë ê²ìì ì§ì í"
+"ë¤(ë¹ë-ì ë°ì´í¸ì½ë ìë¨ì íìë¡ íë¤). <literal>lazy=\"false\"</literal>"
+"ë ê·¸ ì°ê´ì´ íì eagerly íì¹ë ê²ìì ì§ì íë¤."
+
+#. 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 keyë¤ì´ ì´ë»ê² ì²ë¦¬ë ê²ì¸ì§ë¥¼ ì§ì íë¤: "
+"<literal>ignore</literal>ë í ê°ì ëë½ë íì í ê°ì null ì°ê´ì¼ë¡ ì·¨ê¸í "
+"ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+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> (ìµì
): <emphasis>ê³ì°ë</emphasis> foreign keyì "
+"ëí ê°ì ì ìíë SQL ííì."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Setting a value of the <literal>cascade</literal> attribute to any "
+"meaningful value other than <literal>none</literal> will propagate certain "
+"operations to the associated object. The meaningful values are divided into "
+"three categories. First, basic operations, which include: <literal>persist, "
+"merge, delete, save-update, evict, replicate, lock and refresh</literal>; "
+"second, special values: <literal>delete-orphan</literal>; and third,"
+"<literal>all</literal> comma-separated combinations of operation names: "
+"<literal>cascade=\"persist,merge,evict\"</literal> or <literal>cascade=\"all,"
+"delete-orphan\"</literal>. See <xref linkend=\"objectstate-transitive\" /> "
+"for a full explanation. Note that single valued, many-to-one and one-to-one, "
+"associations do not support orphan delete."
+msgstr ""
+"<literal>cascade</literal> ìì± ê°ì <literal>none</literal> ìë ì´ë¤ ì미ì"
+"ë ë¤ë¥¸ ê°ì¼ë¡ ì¤ì íë ê²ì ì´ë¤ ì¤í¼ë ì´ì
ë¤ì ì°ê´ë ê°ì²´ìê² ë³´ê¸í ê²ì´"
+"ë¤. ì ì미í ê°ë¤ì Hibernateì 기본 ì¤í¼ë ì´ì
ë¤ì ì´ë¦ë¤, ì¦ "
+"<literal>persist, merge, delete, save-update, evict, replicate, lock, "
+"refresh</literal> ë¿ë§ ìëë¼ í¹ë³í ê°ë¤, ì¦ <literal>delete-orphan</"
+"literal>ê³¼ <literal>all</literal> ê·¸ë¦¬ê³ ì¤í¼ë ì´ì
ì´ë¦ë¤ì ì¼í ë¶ë¦¬ë ì¡°í©"
+"ë¤, ì를 ë¤ë©´ <literal>cascade=\"persist,merge,evict\"</literal> ëë "
+"<literal>cascade=\"all,delete-orphan\"</literal>ì´ë¤. ì ì²´ ì¤ëª
ì <xref "
+"linkend=\"objectstate-transitive\"/>를 ë³´ë¼. ë¨ì¼ê° ì°ê´ë¤(many-to-one ì°ê´"
+"ê³¼ one-to-one ì°ê´)ì orphan delete를 ì§ìíì§ ììì ë
¸í¸íë¼."
+
+#. Tag: para
+#, 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: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>property-ref</literal> attribute should only be used for "
+"mapping legacy data where a foreign key refers to a unique key of the "
+"associated table other than the primary key. This is a complicated and "
+"confusing relational model. For example, if the <literal>Product</literal> "
+"class had a unique serial number that is not the primary key. The "
+"<literal>unique</literal> attribute controls Hibernate's DDL generation with "
+"the SchemaExport tool."
+msgstr ""
+"<literal>property-ref</literal> ìì±ì ì¤ì§ foreign keyê° íë¼ì´ë¨¸ë¦¬ í¤ê° ì"
+"ë ì°ê´ë í
ì´ë¸ì ì ì¼ í¤ë¥¼ 참조íë 리거ì ë°ì´í°ë¥¼ 매ííëë°ë§ ì¬ì©ëë¤. "
+"ì´ê²ì ê¼´ì¬ëì´ ê´ê³í 모íì´ë¤. ì를 ë¤ì´, <literal>Product</literal> í´ëì¤"
+"ê° íë¼ì´ë¨¸ë¦¬ í¤ë¥¼ ìë, ì ì¼í ìë¦¬ì¼ ë²í¸ë¥¼ ê°ëë¤ê³ ê°ì íì."
+"(<literal>unique</literal> ìì±ì SchemaExport ëêµ¬ë¡ Hibernateì DDL ìì±ì "
+"ì ì´íë¤.)"
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr ""
+"ê·¸ë° ë¤ì <literal>OrderItem</literal>ì ëí 매íì ë¤ìì ì¬ì©í ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This is not encouraged, however."
+msgstr "íì§ë§ ì´ê²ì íì¤í ê¶ì¥ëì§ ìëë¤."
+
+#. 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><"
+"properties></literal> element."
+msgstr ""
+"ë§ì¼ 참조ë ì ì¼ í¤ê° ì°ê´ë ìí°í°ì ì¬ë¬ íë¡í¼í°ë¤ì í¬í¨í ê²½ì°, ë¹ì ì "
+"ëª
ëª
ë <literal><properties></literal> ìì ë´ë¶ì 참조ë íë¡í¼í°ë¤ì "
+"매íí ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the referenced unique key is the property of a component, you can specify "
+"a property path:"
+msgstr ""
+"ë§ì¼ 참조ë ì ì¼í¤ê° ì»´í¬ëí¸ì íë¡í¼í°ì¼ ê²½ì°, ë¹ì ì íëì íë¡í¼í° ê²½ë¡"
+"를 ì§ì í ì ìë¤:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "One-to-one"
+msgstr "one-to-one"
+
+#. 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 ""
+"ë ë¤ë¥¸ ìì í´ëì¤ì ëí one-to-one ì°ê´ê´ê³ë <literal>one-to-one</"
+"literal> ìì를 ì¬ì©íì¬ ì ì¸ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>constrained</literal> (optional): specifies that a foreign key "
+"constraint on the primary key of the mapped table and references the table "
+"of the associated class. This option affects the order in which <literal>save"
+"()</literal> and <literal>delete()</literal> are cascaded, and determines "
+"whether the association can be proxied. It is also used by the schema export "
+"tool."
+msgstr ""
+"<literal>constrained</literal> (ìµì
) 매íë í
ì´ë¸ì íë¼ì´ë¨¸ë¦¬ í¤ì ëí "
+"foreign í¤ ì»¨ì¤í¸ë ì¸í¸ê° ì°ê´ë í´ëì¤ì í
ì´ë¸ì 참조íëì§ ì¬ë¶ë¥¼ ì§ì í"
+"ë¤. ì´ ìµì
ì <literal>save()</literal>ì <literal>delete()</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 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
+#, fuzzy, no-c-format
+msgid ""
+"<literal>formula</literal> (optional): almost all one-to-one associations "
+"map to the primary key of the owning entity. If this is not the case, you "
+"can specify another column, columns or expression to join on using an SQL "
+"formula. See <literal>org.hibernate.test.onetooneformula</literal> for an "
+"example."
+msgstr ""
+"<literal>formula</literal> (ìµì
): ê±°ì 모ë one to one ì°ê´ê´ê³ë¤ì ìì í"
+"ë ìí°í°ì íë¼ì´ë¨¸ë¦¬ í¤ë¡ 매íëë¤. ì´ê²ì´ ê·¸ ê²½ì°ê° ìë ë문 ê²½ì°ë¤ìì, "
+"ë¹ì ì SQL formula ì¬ì©ì ê²°í©ìí¬ ëªëª ë¤ë¥¸ 컬ë¼, 컬ë¼ë¤, ëë ííìì ì§ì "
+"í ì ìë¤.(ìì ë <literal>org.hibernate.test.onetooneformula</literal>를 ë³´"
+"ë¼.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>proxy</literal>): "
+"by default, single point associations are proxied. <literal>lazy=\"no-proxy"
+"\"</literal> specifies that the property should be fetched lazily when the "
+"instance variable is first accessed. It requires build-time bytecode "
+"instrumentation. <literal>lazy=\"false\"</literal> specifies that the "
+"association will always be eagerly fetched. <emphasis>Note that if "
+"<literal>constrained=\"false\"</literal>, proxying is impossible and "
+"Hibernate will eagerly fetch the association</emphasis>."
+msgstr ""
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>proxy</literal>): ëí´í¸ë¡ "
+"í쪽 ë ì°ê´ë¤ì´ íë½ì ëë¤. <literal>lazy=\"no-proxy\"</literal>ë ì¸ì¤í´"
+"ì¤ ë³ìê° ì²ì ì ê·¼ë ë ê·¸ íë¡í¼í°ê° lazily íì¹ë ê²ìì ì§ì íë¤(ë¹ë-ì "
+"ë°ì´í¸ì½ë ìë¨ì íìë¡ íë¤). <literal>lazy=\"false\"</literal>ë ê·¸ ì°ê´ë¤"
+"ì´ íì eagerly íì¹ë ê²ìì ì§ì íë¤. <emphasis>ë§ì¼ <literal>constrained="
+"\"false\"</literal>ì¸ ê²½ì°ì, íë½ì±ì ë¶ê°ë¥íê³ Hibernateë ê·¸ ì°ê´ì "
+"eager íì¹ìí¬ ê²ì´ë¤!</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr "one-to-one ì°ê´ê´ê³ìë ë ê°ì§ ë³ì¢
ì´ ì¡´ì¬íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr "íë¼ì´ë¨¸ë¦¬ í¤ ì°ê´ê´ê³ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr "ì ì¼ foreign í¤ ì°ê´ê´ê³ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Primary key associations do not need an extra table column. If two rows are "
+"related by the association, then the two table rows share the same primary "
+"key value. To relate two objects by a primary key association, ensure that "
+"they are assigned the same identifier value."
+msgstr ""
+"íë¼ì´ë¨¸ë¦¬ í¤ ì°ê´ë¤ì í¹ë³í í
ì´ë¸ 컬ë¼ì íìë¡ íì§ ìëë¤; ë§ì¼ ë ê°ì "
+"íë¤ì´ ê·¸ ì°ê´ì ìí´ ê´ê³ì§ìì§ë©´, ë ê°ì í
ì´ë¸ íë¤ì ëì¼í íë¼ì´ë¨¸ë¦¬ "
+"í¤ ê°ì ê³µì íë¤. ë°ë¼ì ë§ì¼ ë ê°ì ê°ì²´ë¤ì´ íë¼ì´ë¨¸ë¦¬ í¤ ì°ê´ì ìí´ ê´ê³"
+"ì§ìì§ëë¡ ë¹ì ì´ ìí ê²½ì°, ë¹ì ì ê·¸ê²ë¤ì ëì¼í ìë³ì ê°ì´ í ë¹ëëë¡ í´"
+"ì¼ íë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For a primary key association, add the following mappings to "
+"<literal>Employee</literal> and <literal>Person</literal> respectively:"
+msgstr ""
+"íë¼ì´ë¨¸ë¦¬ í¤ ì°ê´ì ëí´, ë¤ì 매íë¤ì <literal>Employee</literal>ì "
+"<literal>Person</literal> ê°ê°ì ì¶ê°íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Ensure that the primary keys of the related rows in the PERSON and EMPLOYEE "
+"tables are equal. You use a special Hibernate identifier generation strategy "
+"called <literal>foreign</literal>:"
+msgstr ""
+"ì´ì ì°ë¦¬ë PERSON ê³¼ EMPLOYEE í
ì´ë¸ë¤ìì ê´ê³ì§ìì§ íë¤ì íë¼ì´ë¨¸ë¦¬ í¤ë¤"
+"ì´ ëì¼í¨ì íì¤í í´ì¼ íë¤! ì°ë¦¬ë <literal>foreign</literal>ë¡ ëª
ëª
ëë í¹"
+"ë³í Hibernate ìë³ì ìì± ë°©ë를 ì¬ì©íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A newly saved instance of <literal>Person</literal> is assigned the same "
+"primary key value as the <literal>Employee</literal> instance referred with "
+"the <literal>employee</literal> property of that <literal>Person</literal>."
+msgstr ""
+"ê·¸ë <literal>Person</literal>ì ìë¡ì´ ì ì¥ë ì¸ì¤í´ì¤ë ê·¸ "
+"<literal>Person</literal>ì <literal>employee</literal> íë¡í¼í°ì ëí´ ì°¸ì¡°"
+"ë <literal>Employee</literal> ì¸ì¤í´ì¤ì ëì¼í íë¼ì´ë¨¸ë¦¬ í¤ë¥¼ í ë¹ë°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, a foreign key with a unique constraint, from "
+"<literal>Employee</literal> to <literal>Person</literal>, can be expressed "
+"as:"
+msgstr ""
+"ë¬ë¦¬, <literal>Employee</literal>ë¡ë¶í° <literal>Person</literal>ì¼ë¡ì ì ì¼ "
+"컨ì¤í¸ë ì¸í¸ë¥¼ ê°ì§ íëì foreign keyë ë¤ìê³¼ ê°ì´ ííë ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This association can be made bidirectional by adding the following to the "
+"<literal>Person</literal> mapping:"
+msgstr ""
+"ê·¸ë¦¬ê³ ì´ ì°ê´ì ë¤ìì <literal>Person</literal> 매íì ì¶ê°í¨ì¼ë¡ì¨ ìë°©í¥"
+"ì´ ë ì ìë¤:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Natural-id"
+msgstr "natural-id"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Although we recommend the use of surrogate keys as primary keys, you should "
+"try to identify natural keys for all entities. A natural key is a property "
+"or combination of properties that is unique and non-null. It is also "
+"immutable. Map the properties of the natural key inside the <literal><"
+"natural-id></literal> element. Hibernate will generate the necessary "
+"unique key and nullability constraints and, as a result, your mapping will "
+"be more self-documenting."
+msgstr ""
+"ë¹ë¡ ì°ë¦¬ê° íë¼ì´ë¨¸ë¦¬ í¤ë¤ë¡ì ëì©í¤ë¤ì ì¬ì©íë ê²ì ê¶ì¥íìì§ë¼ë, ë¹ì "
+"ì ì¬ì í 모ë ìí°í°ë¤ì ëí natural í¤ë¤ì ìë³íê³ ì ìí ê²ì´ë¤. "
+"narutal í¤ë ì ì¼(unique)íê³ nullì´ ìë íë¡í¼í° ëë íë¡í¼í°ë¤ì ì¡°í©ì´"
+"ë¤. ê·¸ê²ì´ ëí ë¶ë³íë ê²ì¼ ê²½ì°ê° ë ì¢ë¤. <literal><natural-id></"
+"literal> ìì ë´ë¶ì ìë natural í¤ì íë¡í¼í°ë¤ì 매ííë¼. Hibernateë í"
+"ìì ì¸ ì ì¼ í¤ì null íì©ê°ë¥í 컨ì¤í¸ë ì¸í¸ë¤ì ìì±ìí¬ ê²ì´ê³ , ë¹ì ì 매"
+"íì ë³´ë¤ ìê° ì¤ëª
ì ì´ê² ë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the natural key properties of the "
+"entity."
+msgstr ""
+"ì°ë¦¬ë ë¹ì ì´ ìí°í°ì ëí narutal í¤ íë¡í¼í°ë¤ì ë¹êµíëë° "
+"<literal>equals()</literal>ì <literal>hashCode()</literal>를 구íí ê²ì ê°"
+"ë ¥íê² ê¶ì¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This mapping is not intended for use with entities that have natural primary "
+"keys."
+msgstr ""
+"ì´ ë§¤íì natural íë¼ì´ë¨¸ë¦¬ í¤ë¤ì ê°ì§ ìí°í°ë¤ì ìí ì©ëë¡ ê³ ìë ê²ì "
+"ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>false</"
+"literal>): by default, natural identifier properties are assumed to be "
+"immutable (constant)."
+msgstr ""
+"<literal>mutable</literal> (ìµì
, ëí´í¸ë <literal>false</literal>): ëí´í¸"
+"ë¡, narutal ìë³ì íë¡í¼í°ë¤ì ë³ê²½ë ì ìë ê²(ìì)ì¼ë¡ ê°ì ëë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Component and dynamic-component"
+msgstr "component, dynamic-component"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><component></literal> element maps properties of a child "
+"object to columns of the table of a parent class. Components can, in turn, "
+"declare their own properties, components or collections. See the \"Component"
+"\" examples below:"
+msgstr ""
+"<literal><component></literal> ììë ìì ê°ì²´ì íë¡í¼í°ë¤ì ë¶ëª¨ í´"
+"ëì¤ì ëí í
ì´ë¸ì 컬ë¼ë¤ë¡ 매íìí¨ë¤. ì»´í¬ëí¸ë¤ì ê·¸ê²ë¤ ìì ì íë¡í¼í°"
+"ë¤, ì»´í¬ëí¸ë¤, ëë ì½ë ì
ë¤ì ì ì¸íë¤. ì´ë \"ì»´í¬ëí¸ë¤\"ì ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal> (optional - defaults to the property type "
+"determined by reflection): the name of the component (child) class."
+msgstr ""
+"<literal>class</literal> (ìµì
- ëí´í¸ë reflectionì ìí´ ê²°ì ë íë¡í¼í° "
+"íì
): ì»´í¬ëí¸(ìì) í´ëì¤ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal>: do the mapped columns appear in SQL "
+"<literal>INSERTs</literal>?"
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>insert</literal>: 매íë 컬ë¼ë¤ì´ SQL <literal>INSERT</literal>ë¤ ì"
+"ì ëíëì¼ íëê°?\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>insert</literal>: 매íë 컬ë¼ë¤ì´ SQL <literal>INSERT</literal>ë¤ ë´"
+"ì ëíë ê²ì¸ê°?"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update</literal>: do the mapped columns appear in SQL "
+"<literal>UPDATEs</literal>?"
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>update</literal>: 매íë 컬ë¼ë¤ì´ SQL <literal>UPDATE</literal>ë¤ ì"
+"ì ëíëì¼ íëê°?\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>update</literal>: 매íë 컬ë¼ë¤ì´ SQL <literal>UPDATE</literal>ë¤ ë´"
+"ì ëíë ê²ì¸ê°?"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>false</literal>): "
+"specifies that this component should be fetched lazily when the instance "
+"variable is first accessed. It requires build-time bytecode instrumentation."
+msgstr ""
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>false</literal>): ì¸ì¤í´ì¤ "
+"ë³ìê° ì²ìì¼ë¡ ì¡ì¸ì¤ë ë ì´ ì»´í¬ëí¸ê° lazily(ë리ê²) íì¹ëì´ì¼ íëì§ ì¬"
+"ë¶ë¥¼ ì§ì íë¤ (ë¹ë ì ë°ì´í¸ì½ë ìë¨ì íìë¡ íë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to this component either do or do not "
+"require acquisition of the optimistic lock. It determines if a version "
+"increment should occur when this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>true</"
+"literal>): ì´ ì»´í¬ëí¸ì ëí ì
ë°ì´í¸ë¤ì´ optimistic ì ê¸ì íëíë ê²ì í"
+"ìë¡ íëì§ ì¬ë¶ë¥¼ ì§ì íë¤. ë¬ë¦¬ ë§í´ ì´ íë¡í¼í°ê° dirty ì¼ ë ë²ì ì¦ê°ê° "
+"ë°ìí ê²ì¸ì§ ì¬ë¶ë¥¼ ê²°ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional - defaults to <literal>false</literal>): "
+"specifies that a unique constraint exists upon all mapped columns of the "
+"component."
+msgstr ""
+"<literal>unique</literal> (ìµì
- ëí´í¸ë <literal>false</literal>): ì ì¼ ì»¨"
+"ì¤í¸ë ì¸í¸ê° ì»´í¬ëí¸ì 모ë 매íë 컬ë¼ë¤ì ëí´ ì¡´ì¬íëì§ ì¬ë¶ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The child <literal><property></literal> tags map properties of the "
+"child class to table columns."
+msgstr ""
+"ìì <literal><property></literal> íê·¸ë¤ì ìì í´ëì¤ì íë¡í¼í°ë¤ì "
+"í
ì´ë¸ 컬ë¼ë¤ë¡ 매íìí¨ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"<literal><component></literal> ììë ì»´í¬ëí¸ í´ëì¤ì íë¡í¼í°ë¥¼ í¬í¨"
+"íë ìí°í°ì ëí 참조ë¡ì 매íìí¤ë <literal><parent></literal> ìë¸"
+"ìì를 íì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><dynamic-component></literal> element allows a "
+"<literal>Map</literal> to be mapped as a component, where the property names "
+"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
+"more information."
+msgstr ""
+"<literal><dynamic-component></literal> ììë ì»´í¬ëí¸ë¡ì 매íë "
+"<literal>Map</literal>ì íì©íë¤. ì¬ê¸°ì íë¡í¼í° ì´ë¦ë¤ì mapì í¤ë¤ì 참조"
+"íë¤. <xref linkend=\"components-dynamic\"/>ì ë³´ë¼."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Properties"
+msgstr "properties"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><properties></literal> element allows the definition of a "
+"named, logical grouping of the properties of a class. The most important use "
+"of the construct is that it allows a combination of properties to be the "
+"target of a <literal>property-ref</literal>. It is also a convenient way to "
+"define a multi-column unique constraint. For example:"
+msgstr ""
+"<literal><properties></literal> ììë í´ëì¤ì íë¡í¼í°ë¤ì ëª
ëª
ë, ë
¼"
+"리ì 그룹íì ëí ì ì를 íì©íë¤. ê·¸ 구조ì ëí ê°ì¥ ì¤ìí ì¬ì©ì ê·¸ê²ì´ "
+"íë¡í¼í°ë¤ì ì¡°í©ì´ <literal>property-ref</literal>ì ëìì´ ëë ê²ì íì©í´"
+"ì¤ë¤ë ì ì´ë¤. ëí ê·¸ê²ì ë¤ì¤ ì»¬ë¼ ì ì¼ ì»¨ì¤í¸ë ì¸ë를 ì ìíë í¸ë¦¬í ë°©ë²"
+"ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the logical name of the grouping. It is "
+"<emphasis>not</emphasis> an actual property name."
+msgstr ""
+"<literal>name</literal>: 그룹íì ë
¼ë¦¬ì ì´ë¦ - ì¤ì íë¡í¼í° ì´ë¦ì´ "
+"<emphasis>ìëë¤</emphasis>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to these properties either do or do not "
+"require acquisition of the optimistic lock. It determines if a version "
+"increment should occur when these properties are dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>true</"
+"literal>): ì´ë¤ íë¡í¼í°ë¤ì ëí ì
ë°ì´í¸ë¤ì´ optimistic ì ê¸ì íëì íì"
+"ë¡ íëì§ ì¬ë¶ë¥¼ ì§ì íë¤. ë¬ë¦¬ ë§í´ ì´ íë¡í¼í°ê° dirty ì¼ ë ë²ì ì¦ê°ê° ë°"
+"ìí ê²ì¸ì§ ì¬ë¶ë¥¼ ê²°ì íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For example, if we have the following <literal><properties></literal> "
+"mapping:"
+msgstr ""
+"ì를 ë¤ì´, ë§ì¼ ì°ë¦¬ê° ë¤ì <literal><properties></literal> 매íì ê°"
+"ì§ ê²½ì°:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You might have some legacy data association that refers to this unique key "
+"of the <literal>Person</literal> table, instead of to the primary key:"
+msgstr ""
+"ê·¸ ë ì°ë¦¬ë íë¼ì´ë¨¸ë¦¬ í¤ê° ìë, <literal>Person</literal> í
ì´ë¸ì ì´ ì "
+"ì¼ í¤ë¥¼ 참조íë ì´ë¤ 리거ì ë°ì´í° ì°ê´ì ê°ì§ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The use of this outside the context of mapping legacy data is not "
+"recommended."
+msgstr ""
+"ì°ë¦¬ë 리거ì ë°ì´í°ë¥¼ 매íìí¤ë 컨í
ì¤í¸ ë°ê¹¥ìì ì´ë° ì¢
ë¥ì ê²ì ì¬ì©í"
+"ë ê²ì ê¶ì¥íì§ ìëë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Subclass"
+msgstr "subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Polymorphic persistence requires the declaration of each subclass of the "
+"root persistent class. For the table-per-class-hierarchy mapping strategy, "
+"the <literal><subclass></literal> declaration is used. For example:"
+msgstr ""
+"ë§ì§ë§ì¼ë¡, ë¤íì± ììì±ì ë£¨í¸ ìì í´ëì¤ì ëí ê°ê°ì ìë¸í´ëì¤ ì ì¸ì "
+"íìë¡ íë¤.(ê¶ì¥ëë) table-per-class-hierarchy(í
ì´ë¸ ë¹ í´ëì¤ ê³ì¸µêµ¬ì¡°) "
+"매í ë°©ëì ê²½ì°, <literal><subclass></literal> ì ì¸ì´ ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>name</literal>: ìë¸í´ëì¤ì ì ì²´ ììì´ê° ë¶ì í´ëì¤ ì´ë¦.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>name</literal>: ìë¸í´ëì¤ì ì ì²´ ììì´ê° ë¶ì í´ëì¤ ëª
.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>name</literal>: ìë¸í´ëì¤ì ì ì²´ ììì´ê° ë¶ì í´ëì¤ ëª
."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>discriminator-value</literal> (optional - defaults to the class "
+"name): a value that distinguishes individual subclasses."
+msgstr ""
+"<literal>discriminator-value</literal> (ìµì
- ëí´í¸ë í´ëì¤ ì´ë¦): ê°ê°ì "
+"ìë¸í´ëì¤ë¤ì 구ë¶ì§ë ê°."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface used for "
+"lazy initializing proxies."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>proxy</literal> (ìµì
): lazy ì´ê¸°í íë½ìë¤ì ì¬ì©íëë° í´ëì¤ ë"
+"ë ì¸í°íì´ì¤ë¥¼ ì§ì íë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>proxy</literal> (ìµì
): íë½ìë¤ì lazy ì´ê¸°í ìí¤ëë° ì¬ì©í í´ë"
+"ì¤ ëë ì¸í°íì´ì¤ë¥¼ ì§ì íë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>proxy</literal> (ìµì
): íë½ìë¤ì lazy ì´ê¸°í ìí¤ëë° ì¬ì©í í´ë"
+"ì¤ ëë ì¸í°íì´ì¤ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
+"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>lazy=\"false\"</literal> ì¤ì ì lazy íì¹ì ì¬ì©ì ë¶ê°ë¥íê² ë§ë "
+"ë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>lazy=\"false\"</literal> ì¤ì ì lazy íì¹ì ì¬ì©ë¶ê°ë¥íê² ë§ë ë¤\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>lazy=\"false\"</literal> ì¤ì ì lazy íì¹ì ì¬ì©ë¶ê°ë¥íê² ë§ë ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Each subclass declares its own persistent properties and subclasses. "
+"<literal><version></literal> and <literal><id></literal> "
+"properties are assumed to be inherited from the root class. Each subclass in "
+"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
+"this is not specified, the fully qualified Java class name is used."
+msgstr ""
+"ê°ê°ì ìë¸í´ëì¤ë ê·¸ê² ìì ì ìì íë¡í¼í°ë¤ê³¼ ìë¸í´ëì¤ë¤ì ì ì¸í ê²ì´"
+"ë¤. <literal><version></literal> íë¡í¼í°ì <literal><id></"
+"literal> íë¡í¼í°ë ë£¨í¸ í´ëì¤ë¡ë¶í° ììëë¤ê³ ê°ì ëë¤. ê³ì¸µêµ¬ì¡° ë´ìì ê°"
+"ê°ì ìë¸í´ëì¤ë ì ì¼í <literal>discriminator-value</literal>를 ì ìí´ì¼ í"
+"ë¤. noneì´ ì§ì ë ê²½ì°, ì ì²´ ììì´ê° ë¶ì ìë° í´ëì¤ ì´ë¦ì´ ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
+msgstr "ìì 매íë¤ì ëí ì ë³´ë <xref linkend=\"inheritance\"/>ì ë³´ë¼."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Joined-subclass"
+msgstr "joined-subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Each subclass can also be mapped to its own table. This is called the table-"
+"per-subclass mapping strategy. An inherited state is retrieved by joining "
+"with the table of the superclass. To do this you use the <literal><joined-"
+"subclass></literal> element. For example:"
+msgstr ""
+"ë¤ë¥¸ ë°©ë²ì¼ë¡ ê°ê°ì ìë¸í´ëì¤ë ê·¸ê² ìì ì´ í
ì´ë¸ë¡ 매íë ì ìë¤(table-"
+"per-subclass 매í ë°©ë). ììë ìíë ìí¼í´ëì¤ì í
ì´ë¸ê³¼ ì¡°ì¸í¨ì¼ë¡ì¨ ê²"
+"ìëë¤. ì°ë¦¬ë <literal><joined-subclass></literal> ìì를 ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr "<literal>table</literal>: ìë¸í´ëì¤ í
ì´ë¸ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface to use "
+"for lazy initializing proxies."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>proxy</literal> (ìµì
): lazy ì´ê¸°í íë½ìë¤ì ì¬ì©íëë° í´ëì¤ ë"
+"ë ì¸í°íì´ì¤ë¥¼ ì§ì íë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>proxy</literal> (ìµì
): íë½ìë¤ì lazy ì´ê¸°í ìí¤ëë° ì¬ì©í í´ë"
+"ì¤ ëë ì¸í°íì´ì¤ë¥¼ ì§ì íë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>proxy</literal> (ìµì
): íë½ìë¤ì lazy ì´ê¸°í ìí¤ëë° ì¬ì©í í´ë"
+"ì¤ ëë ì¸í°íì´ì¤ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional, defaults to <literal>true</literal>): "
+"setting <literal>lazy=\"false\"</literal> disables the use of lazy fetching."
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>lazy=\"false\"</literal> ì¤ì ì lazy íì¹ì ì¬ì©ì ë¶ê°ë¥íê² ë§ë "
+"ë¤.\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>lazy=\"false\"</literal> ì¤ì ì lazy íì¹ì ì¬ì©ë¶ê°ë¥íê² ë§ë ë¤\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>lazy=\"false\"</literal> ì¤ì ì lazy íì¹ì ì¬ì©ë¶ê°ë¥íê² ë§ë ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A discriminator column is not required for this mapping strategy. Each "
+"subclass must, however, declare a table column holding the object identifier "
+"using the <literal><key></literal> element. The mapping at the start "
+"of the chapter would then be re-written as:"
+msgstr ""
+"íë³ì(discriminator) 컬ë¼ì ì´ ë§¤í ë°©ëì íìíì§ ìë¤. íì§ë§ ê°ê°ì ìë¸"
+"í´ëì¤ë <literal><key></literal> ìì를 ì¬ì©íì¬ ê°ì²´ ìë³ì를 ë³´ê´í"
+"ë í
ì´ë¸ 컬ë¼ì ì ì¸í´ì¼ íë¤. ì´ ì¥ì ìì ë¶ë¶ì ìë 매íì ë¤ìê³¼ ê°ì´ "
+"ë¤ì ìì±ë ê²ì´ë¤:"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Union-subclass"
+msgstr "union-subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A third option is to map only the concrete classes of an inheritance "
+"hierarchy to tables. This is called the table-per-concrete-class strategy. "
+"Each table defines all persistent states of the class, including the "
+"inherited state. In Hibernate, it is not necessary to explicitly map such "
+"inheritance hierarchies. You can map each class with a separate <literal><"
+"class></literal> declaration. However, if you wish use polymorphic "
+"associations (e.g. an association to the superclass of your hierarchy), you "
+"need to use the <literal><union-subclass></literal> mapping. For "
+"example:"
+msgstr ""
+"ì 3ì ìµì
ì ìì ê³ì¸µêµ¬ì¡°ì concrete í´ëì¤ë¤ ë§ì í
ì´ë¸ë¤ë¡ 매ííë ê²ì´"
+"ë¤ (table-per-concrete-class ë°©ë). ì¬ê¸°ì ê°ê°ì í
ì´ë¸ì ììë ìí를 í¬í¨"
+"íì¬ í´ëì¤ì 모ë ìì ìí를 ì ìíë¤. Hibernateìì, ê·¸ê²ì ê·¸ë° ìì ê³ì¸µ"
+"구조ë¤ì ëª
ìì ì¼ë¡ 매ííëë° íìì ì´ì§ ìë¤. ë¹ì ì ë³ëì <literal><"
+"class></literal> ì ì¸ì ê°ì§ ê°ê°ì í´ëì¤ë¥¼ ê°ë¨í 매íìí¬ ì ìë¤. íì§"
+"ë§ ë¹ì ì´ ë¤íì± ì°ê´ê´ê³ë¤(ì를 ë¤ë©´ ë¹ì ì ê³ì¸µêµ¬ì¡°ì ìí¼í´ëì¤ì ëí ì°"
+"ê´)ì ì¬ì©íê³ ì ìí ê²½ì°, ë¹ì ì <literal><union-subclass></literal> "
+"매íì ì¬ì©í íìê° ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"No discriminator column or key column is required for this mapping strategy."
+msgstr "ì´ ë§¤í ë°©ëìë íë³ì 컬ë¼ì´ë í¤ ì»¬ë¼ì´ íìíì§ ìë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Join"
+msgstr "join"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Using the <literal><join></literal> element, it is possible to map "
+"properties of one class to several tables that have a one-to-one "
+"relationship. For example:"
+msgstr ""
+"<literal><join></literal>ìì를 ì¬ì©íë©´, í
ì´ë¸ë¤ ì¬ì´ì 1ëì¼ ê´ê³ê° "
+"ì¡´ì¬í ë, íëì í´ëì¤ì ìí íë¡í¼í°ë¤ì ì¬ë¬ í
ì´ë¸ë¤ë¡ 매íìí¤ë ê²ì´ "
+"ê°ë¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr "<literal>table</literal>: ì¡°ì¸ë í
ì´ë¸ì ì´ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional - defaults to <literal>join</literal>): "
+"if set to <literal>join</literal>, the default, Hibernate will use an inner "
+"join to retrieve a <literal><join></literal> defined by a class or its "
+"superclasses. It will use an outer join for a <literal><join></"
+"literal> defined by a subclass. If set to <literal>select</literal> then "
+"Hibernate will use a sequential select for a <literal><join></literal> "
+"defined on a subclass. This will be issued only if a row represents an "
+"instance of the subclass. Inner joins will still be used to retrieve a "
+"<literal><join></literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal> (ìµì
- ëí´í¸ë <literal>join</literal>): "
+"<literal>join</literal>ì¼ë¡ ì¤ì ë ê²½ì°, ëí´í¸ë¡ Hibernateë íëì í´ëì¤ "
+"ëë ê·¸ê²ì ìí¼ í´ëì¤ë¤ì ìí´ ì ìë <literal><join></literal>ì ê²"
+"ìíëë° inner joinì ì¬ì©íê³ ìë¸í´ëì¤ì ìí´ ì ìë <literal><join>"
+"</literal>ì ê²ìíëë° outer joinì ì¬ì©í ê²ì´ë¤. ë§ì¼ <literal>select</"
+"literal>ë¡ ì¤ì í ê²½ì°, Hibernateë ìë¸í´ëì¤ ìì ì ìë <literal><"
+"join></literal>ì ëí´ sequential select를 ì¬ì©í ê²ì´ê³ , ê·¸ê²ì í íì´ "
+"ìë¸í´ëì¤ì ì¸ì¤í´ì¤ë¥¼ íííë ê²ì¼ë¡ íëª
ëë ê²½ì°ìë§ ëª
ë ¹ì´ ë´ë ¤ì§ ê²ì´"
+"ë¤. inner joinë¤ì ì¬ì í í´ëì¤ì ê·¸ê²ì ìí¼í´ëì¤ë¤ì ìí´ ì ìë "
+"<literal><join></literal>ì ê²ìíëë° ì¬ì©ë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</"
+"literal>): if enabled, Hibernate will not insert or update the properties "
+"defined by this join."
+msgstr ""
+"<literal>inverse</literal> (ìµì
- ëí´í¸ë <literal>false</literal>): ì´ì© "
+"ê°ë¥í ê²½ì°, Hibernateë ì´ ì¡°ì¸ì ìí´ ì ìë íë¡í¼í°ë¤ì ì½ì
ìí¤ê±°ë ì
ë°"
+"ì´í¸íë ¤ê³ ìëíì§ ìì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optional</literal> (optional - defaults to <literal>false</"
+"literal>): if enabled, Hibernate will insert a row only if the properties "
+"defined by this join are non-null. It will always use an outer join to "
+"retrieve the properties."
+msgstr ""
+"<literal>optional</literal> (ìµì
- ëí´í¸ë <literal>false</literal>): ì´ì© "
+"ê°ë¥í ê²½ì°, Hibernateë ì´ ì¡°ì¸ì ìí´ ì ìë íë¡í¼í°ë¤ì´ nullì´ ìë ê²½ì°"
+"ìë§ í íì ì½ì
ìí¬ ê²ì´ê³ ê·¸ íë¡í¼í°ë¤ì ê²ìíëë° outer joinì íì ì¬"
+"ì©í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For example, address information for a person can be mapped to a separate "
+"table while preserving value type semantics for all properties:"
+msgstr ""
+"ì를 ë¤ì´, (모ë íë¡í¼í°ë¤ì ëí´ value íì
ì미를 ì ì§íë©´ì) ê°ì¸ì 주ì "
+"ì ë³´ë ë³ëì í
ì´ë¸ì 매íë ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This feature is often only useful for legacy data models. We recommend fewer "
+"tables than classes and a fine-grained domain model. However, it is useful "
+"for switching between inheritance mapping strategies in a single hierarchy, "
+"as explained later."
+msgstr ""
+"ì´ í¹ì§ì ì주 리거ì ë°ì´í° 모íë¤ì ëí´ìë§ ì ì©íê³ , ì°ë¦¬ë í´ëì¤ë¤ê³¼ "
+"ì ì ì ë ëë©ì¸ 모í ë³´ë¤ ë ì ì í
ì´ë¸ë¤ì ê¶ì¥íë¤. íì§ë§ ë· ë¶ë¶ì ì¤ëª
"
+"ëì´ ìë¯ì´, ê·¸ê²ì íëì ê³ì¸µêµ¬ì¡° ë´ì ìë ìì 매í ë°©ëë¤ ì¬ì´ë¥¼ ì íí"
+"ë ê²ì ì ì©íë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Key"
+msgstr "key"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><key></literal> element has featured a few times within "
+"this guide. It appears anywhere the parent mapping element defines a join to "
+"a new table that references the primary key of the original table. It also "
+"defines the foreign key in the joined table:"
+msgstr ""
+"ì°ë¦¬ë ì§ê¸ê¹ì§ ëª ë² ëíë¬ë <literal><key></literal> ìì를 ë³´ìë¤. "
+"ê·¸ê²ì ë¶ëª¨ 매í ììê° ìë¡ì´ í
ì´ë¸ì ëí ì¡°ì¸ì ì ìíë ì´ë ê³³ììë ë"
+"íëê³ , ê·¸ê²ì ì¡°ì¸ë í
ì´ë¸ì foreign í¤ë¥¼ ì ìíê³ , ê·¸ê²ì ìëì í
ì´ë¸ì "
+"íë¼ì´ë¨¸ë¦¬ í¤ë¥¼ 참조íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>on-delete</literal> (optional - defaults to <literal>noaction</"
+"literal>): specifies whether the foreign key constraint has database-level "
+"cascade delete enabled."
+msgstr ""
+"<literal>on-delete</literal> (ìµì
- ëí´í¸ë <literal>noaction</literal>): "
+"foreign key 컨ì¤í¸ë ì¸í¸ê° ë°ì´í°ë² ì´ì¤ ë 벨ì cascade delete를 ì¬ì©ê°ë¥íë"
+"ë¡ í ê²ì¸ì§ ì¬ë¶ë¥¼ ì§ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>property-ref</literal> (optional): specifies that the foreign key "
+"refers to columns that are not the primary key of the original table. It is "
+"provided for legacy data."
+msgstr ""
+"<literal>property-ref</literal> (ìµì
): foreign keyê° ìëì í
ì´ë¸ì íë¼ì´"
+"머리 í¤ê° ìë 컬ë¼ë¤ì 참조í¨ì ì§ì íë¤. (리거ì ë°ì´í°ì ì ê³µë¨.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-null</literal> (optional): specifies that the foreign key "
+"columns are not nullable. This is implied whenever the foreign key is also "
+"part of the primary key."
+msgstr ""
+"<literal>not-null</literal> (ìµì
): foreign í¤ ì»¬ë¼ë¤ì´ not null ì를 ì§ì í"
+"ë¤(ì´ê²ì foreign í¤ê° ëí íë¼ì´ë¨¸ë¦¬ í¤ì ë¶ë¶ì¼ ëë§ë¤ í¨ì¶ëë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>update</literal> (optional): specifies that the foreign key should "
+"never be updated. This is implied whenever the foreign key is also part of "
+"the primary key."
+msgstr ""
+"<literal>update</literal> (ìµì
): foreign í¤ê° ê²°ì½ ì
ë°ì´í¸ëì§ ììì¼ í¨ì "
+"ì§ì íë¤(ì´ê²ì foreign í¤ê° ëí íë¼ì´ë¨¸ë¦¬ í¤ì ë¶ë¶ì¼ ëë§ë¤ í¨ì¶ëë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): specifies that the foreign key should "
+"have a unique constraint. This is implied whenever the foreign key is also "
+"the primary key."
+msgstr ""
+"<literal>unique</literal> (ìµì
): foreign í¤ê° ì ì¼ ì»¨ì¤í¸ë ì¸í¸ë¥¼ ê°ì ¸ì¼ í¨"
+"ì ì§ì íë¤ (ì´ê²ì foreign í¤ê° ëí íë¼ì´ë¨¸ë¦¬ í¤ì ë¶ë¶ì¼ ëë§ë¤ í¨ì¶ë"
+"ë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For systems where delete performance is important, we recommend that all "
+"keys should be defined <literal>on-delete=\"cascade\"</literal>. Hibernate "
+"uses a database-level <literal>ON CASCADE DELETE</literal> constraint, "
+"instead of many individual <literal>DELETE</literal> statements. Be aware "
+"that this feature bypasses Hibernate's usual optimistic locking strategy for "
+"versioned data."
+msgstr ""
+"ì°ë¦¬ë delete í¼í¬ë¨¼ì¤ê° ì¤ìí ìì¤í
ë¤ì ëí´ ê¶ì¥íê³ , 모ë í¤ë¤ì "
+"<literal>on-delete=\"cascade\"</literal>ë¡ ì ìëê³ , Hibernateë ë§ì "
+"<literal>DELETE</literal> 문ì¥ë¤ ëì ì, ë°ì´í°ë² ì´ì¤ ë 벨ì <literal>ON "
+"CASCADE DELETE</literal> 컨ì¤í¸ë ì¸í¸ë¥¼ ì¬ì©í ê²ì´ë¤. ì´ í¹ì§ì Hibernateì "
+"íµìì ì¸ ë²ì íë ë°ì´í°ì ëí optimistic ì ê¸ ë°©ë를 무ìíë¤ë ì ì ìê³ "
+"ìì´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>not-null</literal> and <literal>update</literal> attributes are "
+"useful when mapping a unidirectional one-to-many association. If you map a "
+"unidirectional one-to-many association to a non-nullable foreign key, you "
+"<emphasis>must</emphasis> declare the key column using <literal><key not-"
+"null=\"true\"></literal>."
+msgstr ""
+"<literal>not-null</literal> ìì±ê³¼ <literal>update</literal> ìì±ë¤ì ë¨ë°©í¥ "
+"one to many ì°ê´ê´ê³ë¥¼ 매íí ë ì ì©íë¤. ë§ì¼ ë¹ì ì´ ë¨ë°©í¥ one to many를 "
+"nullì´ íì©ëì§ ìë foreign í¤ë¡ 매íí ê²½ì°, ë¹ì ì <literal><key not-"
+"null=\"true\"></literal>를 ì¬ì©íì¬ ê·¸ í¤ ì»¬ë¼ì ì ì¸<emphasis>í´ì¼ íë¤</"
+"emphasis>."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Column and formula elements"
+msgstr "column ììì formula ìì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Mapping elements which accept a <literal>column</literal> attribute will "
+"alternatively accept a <literal><column></literal> subelement. "
+"Likewise, <literal><formula></literal> is an alternative to the "
+"<literal>formula</literal> attribute. For example:"
+msgstr ""
+"column ìì±ì íì©íë ììì 매í ììë ëìì ì¼ë¡ íëì <literal><"
+"column></literal> ìë¸ìì를 ìì©í ê²ì´ë¤. ë¹ì·íê² <literal><"
+"formula></literal>ë <literal>formula</literal> ìì±ì ëí ëìì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most of the attributes on <literal>column</literal> provide a means of "
+"tailoring the DDL during automatic schema generation. The <literal>read</"
+"literal> and <literal>write</literal> attributes allow you to specify custom "
+"SQL that Hibernate will use to access the column's value. For more on this, "
+"see the discussion of <link linkend=\"mapping-column-read-and-write\">column "
+"read and write expressions</link>."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>column</literal> and <literal>formula</literal> elements 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> ìì±ì ì를 ë¤ì´ "
+"ì ì¢
ì¡°ì¸ ì¡°ê±´ë¤ì ííí기 ìí´ ëì¼í property ëë ì°ê´ê´ê³ 매í ë´ì ê²°í©"
+"ë ì ìë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Import"
+msgstr "import"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your application has two persistent classes with the same name, and you "
+"do not want to specify the fully qualified package name in Hibernate "
+"queries, classes can be \"imported\" explicitly, rather than relying upon "
+"<literal>auto-import=\"true\"</literal>. You can also import classes and "
+"interfaces that are not explicitly mapped:"
+msgstr ""
+"ë¹ì ì ì´í리ì¼ì´ì
ì´ ëì¼í ì´ë¦ì ê°ì§ ë ê°ì ìì í´ëì¤ë¤ì ê°ê³ , ë¹ì "
+"ì´ Hibernate ì§ìë¤ ë´ìì ì ì²´ ììì´ê° ë¶ì (í¨í¤ì§)ì´ë¦ì ì§ì íë ê²ì ì"
+"íì§ ìëë¤ê³ ê°ì íì. í´ëì¤ë¤ì <literal>auto-import=\"true\"</literal>ì "
+"ìì¡´í기 ë³´ë¤ ëª
ìì ì¼ë¡ \"ìí¬í¸ ë \" ê²ì´ë¤. ë¹ì ì ì¬ì§ì´ ëª
ìì ì¼ë¡ 매í"
+"ëì§ ìë í´ëì¤ë¤ê³¼ ì¸í°íì´ì¤ë¤ì ìí¬í¸ ìí¬ ì(ê°ì ¸ì¤ê¸° í ì) ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr ""
+"<literal>class</literal>: ììì Java í´ëì¤ì ì ì²´ ììì´ê° ë¶ì í´ëì¤ ì´"
+"ë¦."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>rename</literal> (optional - defaults to the unqualified class "
+"name): a name that can be used in the query language."
+msgstr ""
+"<literal>rename</literal> (ìµì
- ëí´í¸ë ììì´ê° ë¶ì§ ìì í´ëì¤ ì´ë¦): "
+"ì§ì ì¸ì´ ë´ìì ì¬ì©ë ì´ë¦."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Any"
+msgstr "any"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is one more type of property mapping. The <literal><any></"
+"literal> mapping element defines a polymorphic association to classes from "
+"multiple tables. This type of mapping requires more than one column. The "
+"first column contains the type of the associated entity. The remaining "
+"columns contain the identifier. It is impossible to specify a foreign key "
+"constraint for this kind of association. This is not the usual way of "
+"mapping polymorphic associations and you should use this only in special "
+"cases. For example, for audit logs, user session data, etc."
+msgstr ""
+"íë ì´ìì íë¡í¼í° 매í íì
ì´ ì¡´ì¬íë¤. <literal><any></literal> 매"
+"í ììë ì¬ë¬ í
ì´ë¸ë¤ë¡ë¶í° í´ëì¤ë¤ì ëí íëì ë¤íì± ì°ê´ê´ê³ë¥¼ ì ìí"
+"ë¤. ì´ ë§¤í íì
ì ì¸ì ë íë ì´ìì 컬ë¼ì íìë¡ íë¤. 첫 ë²ì§¸ 컬ë¼ì ì°ê´"
+"ë ìí°í°ì íì
ì ë³´ê´íë¤. ëë¨¸ì§ ì»¬ë¼ë¤ì ìë³ì를 ë³´ê´íë¤. ì´ë° ì¢
ë¥ì "
+"ì°ê´ê´ê³ë¤ì ëí´ foreign key 컨ì¤í¸ë ì¸í¸ë¥¼ ì§ì íë ê²ì´ ë¶ê°ë¥í´ì, ì´ê²"
+"ì (ë¤íì±) ì°ê´ê´ê³ë¤ì 매ííë íµìì ì¸ ë°©ë²ì¼ë¡ì ê°ì¥ íì¤í ìë¨ì´ ìë"
+"ë¤. ë¹ì ì ë§¤ì° í¹ë³í ê²½ì°ë¤ (ì를 ë¤ì´ ê°ì¬ ë¡ê·¸ë¤, ì¬ì©ì ì¸ì
ë°ì´í° ë±)"
+"ììë§ ì´ê²ì ì¬ì©í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>meta-type</literal> attribute allows the application to specify "
+"a custom type that maps database column values to persistent classes that "
+"have identifier properties of the type specified by <literal>id-type</"
+"literal>. You must specify the mapping from values of the meta-type to class "
+"names."
+msgstr ""
+"<literal>meta-type</literal> ìì±ì ì´í리ì¼ì´ì
ì¼ë¡ íì¬ê¸ ë°ì´í°ë² ì´ì¤ 컬"
+"ë¼ ê°ë¤ì <literal>id-type</literal>ì ìí´ ì§ì ë íì
ì ìë³ì íë¡í¼í°ë¤"
+"ì ê°ì§ ìì í´ëì¤ë¤ë¡ 매íìí¤ë ë§ì¶¤í íì
ì ì§ì íëë¡ íë¤. ë¹ì ì "
+"meta-typeì ê°ë¤ë¡ë¶í° í´ëì¤ ì´ë¦ë¤ë¡ì 매íì ì§ì í´ì¼ íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr "<literal>name</literal>: íë¡í¼í° ì´ë¦."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr "<literal>id-type</literal>: ìë³ì íì
."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>meta-type</literal> (optional - defaults to <literal>string</"
+"literal>): any type that is allowed for a discriminator mapping."
+msgstr ""
+"<literal>meta-type</literal> (ìµì
- ëí´í¸ë <literal>string</literal>): "
+"discriminator 매íì íì©ëë ììì íì
."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
+"the cascade style."
+msgstr ""
+"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
+"cascade ì¤íì¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that updates to this property either do or do not "
+"require acquisition of the optimistic lock. It defines whether a version "
+"increment should occur if this property is dirty."
+msgstr ""
+"<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>true</"
+"literal>): ì´ íë¡í¼í°ì ëí ì
ë°ì´í¸ë¤ì´ optimistic ì ê¸ íëì íìë¡ íë"
+"ì§ ì¬ë¶ë¥¼ ì§ì íë¤. ë¬ë¦¬ ë§í´, ì´ íë¡í¼í°ê° dirtyì¼ ê²½ì°ì ë²ì ì¦ê°ê° ë°ì"
+"í ê²ì¸ì§ ì¬ë¶ë¥¼ ì ìíë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Hibernate types"
+msgstr "Hibernate íì
ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr "ìí°í°ë¤ê³¼ ê°ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In relation to the persistence service, Java language-level objects are "
+"classified into two groups:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An <emphasis>entity</emphasis> exists independently of any other objects "
+"holding references to the entity. Contrast this with the usual Java model, "
+"where an unreferenced object is garbage collected. Entities must be "
+"explicitly saved and deleted. Saves and deletions, however, can be "
+"<emphasis>cascaded</emphasis> from a parent entity to its children. This is "
+"different from the ODMG model of object persistence by reachability and "
+"corresponds more closely to how application objects are usually used in "
+"large systems. Entities support circular and shared references. They can "
+"also be versioned."
+msgstr ""
+"<emphasis>entity</emphasis>ë ìí°í°ì ëí 참조ë¤ì ë³´ê´íë ììì ë¤ë¥¸ ê°"
+"ì²´ë¤ê³¼ë ë
립ì ì¼ë¡ ì¡´ì¬íë¤. 참조ëì§ ìì ê°ì²´ê° ì°ë 기 ìì§ëë íµìì ì"
+"ë° ëª¨íê³¼ ì´ê²ì ëì¡°ì ì´ë¤. (ì ì¥ë¤ê³¼ ìì ë¤ì´ ë¶ëª¨ ìí°í°ë¡ë¶í° ê·¸ê²ì ìì"
+"ì¼ë¡ì ì¼ì¤ì¼ì´ë ëë ê²½ì°ë¥¼ ì ì¸íë©´) ìí°í°ë¤ì ëª
ìì ì¼ë¡ ì ì¥ëê³ ìì ë"
+"ì´ì¼ íë¤. ì´ê²ì ëë¬ ê°ë¥ì±(reachablity)ì ìí ê°ì²´ ììì±ì ODMG 모íê³¼"
+"ë ë¤ë¥´ë¤ - ê·¸ë¦¬ê³ ì´í리ì¼ì´ì
ê°ì²´ë¤ì´ ëí ìì¤í
ë¤ìì ëê° ì´ë»ê² ì¬ì©ë"
+"ëê°ì í¨ì¬ ë ê°ê¹ê² ëìíë¤. ìí°í°ë¤ì ìí 참조ì ê³µì 참조ë¤ì ì§ìí"
+"ë¤. ê·¸ê²ë¤ ëí ë²ì í ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An entity's persistent state consists of references to other entities and "
+"instances of <emphasis>value</emphasis> types. Values are primitives: "
+"collections (not what is inside a collection), components and certain "
+"immutable objects. Unlike entities, values in particular collections and "
+"components, <emphasis>are</emphasis> persisted and deleted by reachability. "
+"Since value objects and primitives are persisted and deleted along with "
+"their containing entity, they cannot be independently versioned. Values have "
+"no independent identity, so they cannot be shared by two entities or "
+"collections."
+msgstr ""
+"ìí°í°ì ìì ìíë ë¤ë¥¸ ìí°í°ë¤ì ëí 참조ë¤ê³¼ <emphasis>value</"
+"emphasis> íì
ë¤ë¡ 구ì±ëë¤. ê°ë¤ì ìì íì
ë¤, ì½ë ì
ë¤(íëì ì½ë ì
ë´ë¶"
+"ì ìì§ ìë ê²ë¤), ì»´í¬ëí¸ë¤, ê·¸ë¦¬ê³ ì´ë¤ ë¶ë³ì ê°ì²´ë¤ì´ë¤. entitiesìë "
+"ë¬ë¦¬, (í¹ë³í ì½ë ì
ë¤ê³¼ ì»´í¬ëí¸ë¤ìì) ê°ë¤ì ëë¬ê°ë¥ì±(reachability)ì ì"
+"í´ ììí <emphasis>ëê³ </emphasis> ìì ëë¤. value ê°ì²´ë¤(ê³¼ ìì íì
ë¤)"
+"ì´ ê·¸ê²ë¤ì í¬í¨íë ìí°í°ì ë°ë¼ ììí ëê³ ìì ëë¯ë¡, ê·¸ê²ë¤ì ë
립ì ì¼"
+"ë¡ ë²ì í ëì§ ìëë¤. ê°ë¤ì ë
립ì ì¸ ìí°í°ë¥¼ ê°ì§ ììì, ê·¸ê²ë¤ì ë ê°"
+"ì ìí°í°ë¤ì´ë ì½ë ì
ë¤ì ìí´ ê³µì ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Until now, we have been using the term \"persistent class\" to refer to "
+"entities. We will continue to do that. Not all user-defined classes with a "
+"persistent state, however, are entities. A <emphasis>component</emphasis> is "
+"a user-defined class with value semantics. A Java property of type "
+"<literal>java.lang.String</literal> also has value semantics. Given this "
+"definition, all types (classes) provided by the JDK have value type "
+"semantics in Java, while user-defined types can be mapped with entity or "
+"value type semantics. This decision is up to the application developer. An "
+"entity class in a domain model will normally have shared references to a "
+"single instance of that class, while composition or aggregation usually "
+"translates to a value type."
+msgstr ""
+"ì§ê¸ê¹ì§ ì°ë¦¬ë ìí°í°ë¤ì 참조í기 ìí´ \"ìì í´ëì¤\"를 ì¬ì©í´ ìë¤. ì°ë¦¬"
+"ë ê·¸ê²ì ê³ì ì¬ì©í ê²ì´ë¤. íì§ë§ ì격í ë§í´, ìì ìí를 ê°ì§ 모ë ì¬ì©"
+"ì ì ì í´ëì¤ë¤ì ìí°í°ë¤ì´ ìëë¤. <emphasis>ì»´í¬ëí¸</emphasis>ë value "
+"ì미를 ê°ì§ ì¬ì©ì ì ì í´ëì¤ì´ë¤. <literal>java.lang.String</literal> íì
"
+"ì ìë° íë¡í¼í°ë ëí value ì미를 ê°ëë¤. ì´ ì ìê° ì£¼ì´ì§ë©´, ì°ë¦¬ë JDK"
+"ì ìí´ ì ê³µë 모ë íì
ë¤(í´ëì¤ë¤)ì´ ìë°ìì value íì
ì미를 ê°ê³ , ë°ë©´"
+"ì ì¬ì©ì ì ì íì
ë¤ì ìí°í° ëë type ì미ë¡ì 매íëë¤ê³ ë§í ì ìë¤. "
+"ì´ íë¨ì ì´í리ì¼ì´ì
ê°ë°ììê² ë¬ë ¤ ìë¤. ëë©ì¸ 모íìì ìí°í° í´ëì¤ì "
+"ëí ì¢ì íí¸ë ê·¸ í´ëì¤ì íëì ì¸ì¤í´ì¤ì ëí ê³µì ë 참조ë¤ì¸ ë°ë©´ì, "
+"compositionì´ë aggregationì ëê° value íì
ì¼ë¡ ë³íëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr "ì°ë¦¬ë 문ì를 íµí´ ë ê°ë
ë¤ì ë¤ì ê³ ì°°í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The challenge is to map the Java type system, and the developers' definition "
+"of entities and value types, to the SQL/database type system. The bridge "
+"between both systems is provided by Hibernate. For entities, <literal><"
+"class></literal>, <literal><subclass></literal> and so on are used. "
+"For value types we use <literal><property></literal>, <literal><"
+"component></literal>etc., that usually have a <literal>type</literal> "
+"attribute. The value of this attribute is the name of a Hibernate "
+"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
+"for standard JDK value types out of the box. You can write your own mapping "
+"types and implement your own custom conversion strategies."
+msgstr ""
+"ëì ì ì Java type ìì¤í
(ê³¼ ìí°í°ë¤ ë° value íì
ë¤ì ëí ê°ë°ìì ì ì)"
+"를 SQL/ë°ì´í°ë² ì´ì¤ type íì
ì¼ë¡ 매ííë ê²ì´ë¤. ë ìì¤í
ë¤ ì¬ì´ì ë¤ë¦¬ë "
+"Hibernateì ìí´ ì ê³µëë¤: ìí°í°ë¤ì ê²½ì° ì°ë¦¬ë <literal><class></"
+"literal>, <literal><subclass></literal> ë±ì ì¬ì©íë¤.value íì
ë¤ì ê²½"
+"ì° ì°ë¦¬ë ëê°<literal>type</literal> ìì±ì ê°ì§ <literal><property></"
+"literal>, <literal><component></literal> ë±ì ì¬ì©íë¤. ì´ ìì±ì ê°ì "
+"Hibernate <emphasis>매í íì
</emphasis>ì ì´ë¦ì´ë¤. Hibernateë (íì¤ JDK "
+"value íì
ë¤ì ëí´) ë§ì 매íë¤ì ì ê³µíë¤. ëì¤ì ë³´ê² ëë¯ì´, ë¹ì ì ë¹ì "
+"ìì ì 매í íì
ë¤ì ìì±í ì ìê³ ë§ì°¬ê°ì§ë¡ ë¹ì ì ë§ì¶¤í ë³í ë°©ëë¤ì 구"
+"íí ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"With the exception of collections, all built-in Hibernate types support null "
+"semantics."
+msgstr ""
+"ì½ë ì
ë¤ì ì ì¸í 모ë 미리 ë¹ëë Hibernate íì
ë¤ì null ì미를 ì§ìíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr "기본 value íì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
+"categorized into the following:"
+msgstr ""
+"미리-ë§ë¤ì´ì§ <emphasis>기본 매í íì
ë¤</emphasis>ì ëëµ ë¤ìê³¼ ê°ì´ ì¹´í
ê³ "
+"ë¦¬ë¡ ë¶ë¥ëë¤ <placeholder-1/>"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"<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
+#, 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 ""
+"ìë° ììíì
ë¤ì´ë wrapper í´ëì¤ë¤ë¡ë¶í° ì ì í(벤ë-ì§ì ì ì¸) SQL ì»¬ë¼ í"
+"ì
ë¤ë¡ì íì
매í. <literal>boolean, yes_no</literal>ì "
+"<literal>true_false</literal>ë Java <literal>boolean</literal>ì´ë "
+"<literal>java.lang.Boolean</literal>ì ëí 모ë ëì²´ì ì¸ ì¸ì½ë©ë¤ì´ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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>)ë¡ì íì
매í."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "date, time, timestamp"
+
+#. 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> (ëë ë±ê°ë¬¼)ë¡ì íì
매íë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "calendar, calendar_date"
+
+#. 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> (ëë ë±ê°ë¬¼)ë¡ì íì
매íë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "big_decimal, big_integer"
+
+#. 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>)ë¡ì íì
매íë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "locale, timezone, currency"
+
+#. 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>ë¡ ë§¤íëë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. 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>"
+"ë ê·¸ê²ì ì ì²´ ììì´ê° ë¶ì ì´ë¦ì¼ë¡ 매íëë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr "byte ë°°ì´ë¤ì ì ì í SQL binary íì
ì¼ë¡ 매íìí¨ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
+"literal> type."
+msgstr ""
+"long Java 문ìì´ì SQL <literal>CLOB</literal> ëë <literal>TEXT</literal> "
+"íì
ì¼ë¡ 매íìí¨ë¤"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Maps serializable Java types to an appropriate SQL binary type. You can also "
+"indicate the Hibernate type <literal>serializable</literal> with the name of "
+"a serializable Java class or interface that does not default to a basic type."
+msgstr ""
+"serializable Java íì
ë¤ì ì ì í SQL binary íì
ì¼ë¡ 매íìí¨ë¤. ë¹ì ì ë"
+"í ëí´í¸ë¡ 기본 íì
ì´ ìë serializable ìë° í´ëì¤ ëë ì¸í°íì´ì¤ì ì´ë¦"
+"ì ê°ì§ Hibernate íì
<literal>serializable</literal>ì ëíë¼ ìë ìë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>all</literal>ì 모ë 컬ë¼ë¤ì ì²´í¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Type mappings for the JDBC classes <literal>java.sql.Clob</literal> and "
+"<literal>java.sql.Blob</literal>. These types can be inconvenient for some "
+"applications, since the blob or clob object cannot be reused outside of a "
+"transaction. Driver support is patchy and inconsistent."
+msgstr ""
+"<literal>java.sql.Clob</literal>ì <literal>java.sql.Blob</literal> JDBC í´ë"
+"ì¤ë¤ì ëí íì
매íë¤. ì´ë¤ íì
ë¤ì ëªëª ì´í리ì¼ì´ì
ë¤ììë ë¶í¸íë¤. ì"
+"ëíë©´ blob ëë clob ê°ì²´ë í¸ëìì
ì¸ë¶ìì ì¬ì¬ì©ë ì ì기 ë문ì´ë¤.(ê²"
+"ë¤ê° ëë¼ì´ë² ì§ìì´ ë¹ì¼ê´ì ì´ê³ íì¹ëì´ì¼ íë¤)"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"<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
+#, fuzzy, no-c-format
+msgid ""
+"Type mappings for what are considered mutable Java types. This is where "
+"Hibernate makes certain optimizations appropriate only for immutable Java "
+"types, and the application treats the object as immutable. For example, you "
+"should not call <literal>Date.setTime()</literal> for an instance mapped as "
+"<literal>imm_timestamp</literal>. To change the value of the property, and "
+"have that change made persistent, the application must assign a new, "
+"nonidentical, object to the property."
+msgstr ""
+"ëê° ê°ë³ì ì¸ Java íì
ë¤ë¡ ê°ì£¼ëë ê²ì ëí íì
매íë¤. ì¬ê¸°ì Hibernate"
+"ë ë¶ë³ì ì¸ Java íì
ë¤ì ëí´ìë§ ì ì í ì´ë¤ ìµì í를 ííê³ , ì´í리ì¼ì´ì
"
+"ê·¸ ê°ì²´ë¥¼ ë³í ì ìë ê²ì¼ë¡ ì·¨ê¸íë¤. ì를 ë¤ì´, ë¹ì ì "
+"<literal>imm_timestamp</literal>ë¡ì 매íë ì¸ì¤í´ì¤ì ëí´ <literal>Date."
+"setTime()</literal>ì í¸ì¶íì§ ìì ê²ì´ë¤. íë¡í¼í°ì ê°ì ë³ê²½ìí¤ê³ , ê·¸ ë³"
+"ê²½ì ììí ìí¤ê¸° ìí´ì, ì´í리ì¼ì´ì
ì íëì ìë¡ì´ (ëì¼íì§ ìì) ê°ì²´"
+"를 ê·¸ íë¡í¼í°ì í ë¹í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Unique identifiers of entities and collections can be of any basic type "
+"except <literal>binary</literal>, <literal>blob</literal> and <literal>clob</"
+"literal>. Composite identifiers are also allowed. See below for more "
+"information."
+msgstr ""
+"ìí¸ë¦¬ë¤ê³¼ ì½ë ì
ë¤ì ì ì¼ ìë³ìë¤ì <literal>binary</literal>, "
+"<literal>blob</literal> ê·¸ë¦¬ê³ <literal>clob</literal>를 ì ì¸í 기본 íì
ì¤ "
+"ì´ë ê²ì¼ ì ìë¤. (Composite ìë³ìë¤ì´ ëí íì©ëë¤. ìë를 ë³´ë¼.)"
+
+#. 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 ""
+"기본 value íì
ë¤ì <literal>org.hibernate.Hibernate</literal>ì ì ìëì´ ì"
+"ë ëìíë <literal>Type</literal> ììë¤ì ê°ëë¤. ì를 ë¤ì´, "
+"<literal>Hibernate.STRING</literal>ì <literal>string</literal> íì
ì ííí"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr "ë§ì¶¤í value íì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is relatively easy for developers to create their own value types. For "
+"example, you might want to persist properties of type <literal>java.lang."
+"BigInteger</literal> to <literal>VARCHAR</literal> columns. Hibernate does "
+"not provide a built-in type for this. Custom types are not limited to "
+"mapping a property, or collection element, to a single table column. So, for "
+"example, you might have a Java property <literal>getName()</literal>/"
+"<literal>setName()</literal> of type <literal>java.lang.String</literal> "
+"that is persisted to the columns <literal>FIRST_NAME</literal>, "
+"<literal>INITIAL</literal>, <literal>SURNAME</literal>."
+msgstr ""
+"ê°ë°ìë¤ì´ ê·¸ë¤ ìì ë¤ì value íì
ë¤ì ìì±ìí¤ë ê²ì´ ìëì ì¼ë¡ ì½ë¤. ì"
+"를 ë¤ì´, ë¹ì ì <literal>java.lang.BigInteger</literal> íì
ì íë¡í¼í°ë¤ì "
+"<literal>VARCHAR</literal> 컬ë¼ë¤ë¡ ììí ìí¤ê³ ì ìí ì ìë¤. Hibernate"
+"ë ì´ê²ì ìí 미리 ë§ë¤ì´ì§ íì
ì ì ê³µíì§ ìëë¤. ê·¸ë¬ë ë§ì¶¤í íì
ë¤ì "
+"íë¡í¼í°(ëë ì½ë ì
ìì)를 íëì í
ì´ë¸ 컬ë¼ì¼ë¡ì 매ííë ê²ì ì ì½ëì§ "
+"ìëë¤. ë°ë¼ì ì를 ë¤ì´, ë¹ì ì <literal>FIRST_NAME</literal>, "
+"<literal>INITIAL</literal>, <literal>SURNAME</literal> 컬ë¼ë¤ë¡ ììí ëë "
+"<literal>java.lang.String</literal> íì
ì ìë° íë¡í¼í°<literal>getName()</"
+"literal>/ <literal>setName()</literal>를 ê°ì§ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To implement a custom type, implement either <literal>org.hibernate."
+"UserType</literal> or <literal>org.hibernate.CompositeUserType</literal> and "
+"declare properties using the fully qualified classname of the type. View "
+"<literal>org.hibernate.test.DoubleStringType</literal> to see the kind of "
+"things that are possible."
+msgstr ""
+"ë§ì¶¤í íì
ì 구ííë ¤ë©´, <literal>org.hibernate.UserType</literal> ëë "
+"<literal>org.hibernate.CompositeUserType</literal>ì 구ííê³ ê·¸ íì
ì ì ì²´ "
+"ììì´ê° ë¶ì í´ëì¤ëª
ì ì¬ì©íì¬ íë¡í¼í°ë¤ì ì ì¸íë¼. ê°ë¥í ì¢
ë¥ì ê²ë¤"
+"ì ë³´ë ¤ë©´ <literal>org.hibernate.test.DoubleStringType</literal>ì ì²´í¬íë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Notice the use of <literal><column></literal> tags to map a property "
+"to multiple columns."
+msgstr ""
+"íëì íë¡í¼í°ë¥¼ ì¬ë¬ ê°ì 컬ë¼ë¤ë¡ 매íìí¤ë <literal><column></"
+"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> ì¸í°íì´ì¤ë¤ì ë ë§ì í¹íë ì¬ì©ë¤ì ìí ì§ìì ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even supply parameters to a <literal>UserType</literal> in the "
+"mapping file. To do this, your <literal>UserType</literal> must implement "
+"the <literal>org.hibernate.usertype.ParameterizedType</literal> interface. "
+"To supply parameters to your custom type, you can use the <literal><"
+"type></literal> element in your mapping files."
+msgstr ""
+"ë¹ì ì 매í íì¼ ìì <literal>UserType</literal>ì ëí íë¼ë¯¸í°ë¤ì ì ê³µí "
+"ìë ìë¤. ì´ê²ì íí기 ìí´, ë¹ì ì <literal>UserType</literal>ì "
+"<literal>org.hibernate.usertype.ParameterizedType</literal> ì¸í°íì´ì¤ë¥¼ 구í"
+"í´ì¼ íë¤. ë¹ì ì ë§ì¶¤í íì
ì íë¼ë¯¸í°ë¤ì ì ê³µí기 ìí´, ë¹ì ì ë¹ì ì 매"
+"í íì¼ë¤ ìì <literal><type></literal> ìì를 ì¬ì©í ì ìë¤."
+
+#. Tag: 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>ë¡ ëª
ëª
ë íë¼ë¯¸í°ì ëí ê°ì "
+"ê²ìí ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you regularly use a certain <literal>UserType</literal>, it is useful to "
+"define a shorter name for it. You can do this using the <literal><"
+"typedef></literal> element. Typedefs assign a name to a custom type, and "
+"can also contain a list of default parameter values if the type is "
+"parameterized."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë§¤ì° ì주 ì´ë¤ UserTypeì ì¬ì©í ê²½ì°, ê·¸ê²ì ê·¸ê²ì ëí ë 짧"
+"ì ì´ë¦ì ì ìíë ê²ì´ ì ì©í ì ìë¤. <literal><typedef></literal> ì"
+"ì를 ì¬ì©íì¬ ì´ê²ì íí ì ìë¤. Typedefë¤ì ì´ë¦ì ë§ì¶¤í íì
ì í ë¹í"
+"ê³ , ëí ë§ì¼ ê·¸ íì
ì´ íë¼ë¯¸í°í ë ê²½ì°ì ëí´í¸ íë¼ë¯¸í° ê°ë¤ì 리ì¤í¸ë¥¼ "
+"í¬í¨í ìë ìë¤."
+
+#. 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 ""
+"property 매í ìì type íë¼ë¯¸í°ë¤ì ì¬ì©í¨ì¼ë¡ì¨ ê²½ì°ì ë§ê² typedef ë´ì ì "
+"ê³µë íë¼ë¯¸í°ë¤ì ì¤ë²ë¼ì´ë ìí¤ë ê²ì´ ê°ë¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though Hibernate's rich range of built-in types and support for "
+"components means you will rarely need to use a custom type, it is considered "
+"good practice to use custom types for non-entity classes that occur "
+"frequently in your application. For example, a <literal>MonetaryAmount</"
+"literal> class is a good candidate for a <literal>CompositeUserType</"
+"literal>, even though it could be mapped as a component. One reason for this "
+"is abstraction. With a custom type, your mapping documents would be "
+"protected against changes to the way monetary values are represented."
+msgstr ""
+"ë¹ë¡ Hibernateì íë¶í ë²ìì 미리 ë§ë¤ì´ì§ íì
ë¤ê³¼ ì»´í¬ëí¸ë¤ì ëí ì§ì"
+"ì´ ë¹ì ì´ ê°ë ë§ì¶¤í íì
ì ì¬ì©í <emphasis>íìê°</emphasis> ê±°ì ìì ê²"
+"ìì ì미í ì§ë¼ë, ê·¸ë¼ìë ë¶êµ¬íê³ ê·¸ê²ì ë¹ì ì ì´í리ì¼ì´ì
ìì ì주 ë°"
+"ìíë (ìí°í°ê° ìë) í´ëì¤ë¤ì ëí´ ë§ì¶¤í íì
ë¤ì ì¬ì©íë ì¢ì íìì¼"
+"ë¡ ê°ì£¼ëë¤. ì를 ë¤ì´ <literal>MonetaryAmount</literal> í´ëì¤ë ë¹ë¡ ê·¸ê²"
+"ì´ ì»´í¬ëí¸ë¡ì ì½ê² 매íë ì ììì§ë¼ë, <literal>CompositeUserType</"
+"literal>ì ëí ì¢ì íë³´ì´ë¤. ì´ê²ì ëí íëì ë기ë ì¶ìíì´ë¤. ë§ì¶¤í "
+"íì
ì¼ë¡, ë¹ì ì 매í 문ìë¤ì íí ê°ë¤ì íííë ë¹ì ì ë°©ë²ìì ê°ë¥í ë³"
+"ê²½ë¤ì ëí´ ì¥ì°¨ ê²ì¦ë ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr "íëì í´ëì¤ë¥¼ í ë² ì´ì 매íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to provide more than one mapping for a particular persistent "
+"class. In this case, you must specify an <emphasis>entity name</emphasis> to "
+"disambiguate between instances of the two mapped entities. By default, the "
+"entity name is the same as the class name. Hibernate lets you specify the "
+"entity name when working with persistent objects, when writing queries, or "
+"when mapping associations to the named entity."
+msgstr ""
+"íëì í¹ì í ìì í´ëì¤ì ëí´ íë ì´ìì 매íì ì ê³µíë ê²ì´ ê°ë¥íë¤. "
+"ì´ ê²½ì°ì ë¹ì ì ë ê°ì 매íë ìí°í°ë¤ì ì¸ì¤í´ì¤ë¤ ì¬ì´ë¥¼ ëª
ííê² í기 ì"
+"í´ <emphasis>íëì ìí°í° ì´ë¦</emphasis>ì ì§ì í´ì¼ íë¤. (ëí´í¸ë¡, ìí°"
+"í° ì´ë¦ì í´ëì¤ ì´ë¦ê³¼ ëì¼í ê²ì´ë¤.) Hibernateë ìì ê°ì²´ë¤ì ëí´ ìì
"
+"í ë, ì§ìë¤ì ìì±í ë, ëë ëª
ëª
ë ìí°í°ì ëí ì°ê´ë¤ì 매íí ë ë¹ì "
+"ì¼ë¡ íì¬ê¸ ìí°í° ì´ë¦ì ì§ì íëë¡ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Associations are now specified using <literal>entity-name</literal> instead "
+"of <literal>class</literal>."
+msgstr ""
+"ì°ê´ë¤ì ì´ì <literal>class</literal> ëì ì <literal>entity-name</literal>"
+"ì ì¬ì©íì¬ ì´ë»ê² ì§ì ëëì§ë¥¼ 주목íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr "SQL ì¸ì©ë¶í¸ íìë ìë³ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can force Hibernate to quote an identifier in the generated SQL by "
+"enclosing the table or column name in backticks in the mapping document. "
+"Hibernate will use the correct quotation style for the SQL <literal>Dialect</"
+"literal>. This is usually double quotes, but the SQL Server uses brackets "
+"and MySQL uses backticks."
+msgstr ""
+"ë¹ì ì 매í 문ì ë´ìì í
ì´ë¸ ëë ì»¬ë¼ ì´ë¦ì ìì¸ì©ê¸°í¸(`)ë¤ ìì ë£ì´ì "
+"ìì±ë SQLìì ìë³ì를 ì¸ì©ë¶í¸ ì²ë¦¬íëë¡ Hibernateìê² ê°ì í ìë ìë¤. "
+"Hibernateë SQL <literal>Dialect</literal>ì ëí´ ì íí ì¸ì© ì¤íì¼ì ì¬ì©"
+"í ê²ì´ë¤(ëê° ì´ì¤ ì¸ì©ë¶í¸ ì´ì§ë§, SQL Serverì ê²½ì°ìë 모ë ê´í¸ë¤ì´ê³ "
+"MySQLì ê²½ì°ìë ìì¸ì©ë¶í¸(`))."
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr "Metadata ëìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"XML does not suit all users so there are some alternative ways to define O/R "
+"mapping metadata in Hibernate."
+msgstr ""
+"XMLì 모ë ì¬ëë¤ì ìí ê²ì´ ìëì§ë§, Hibernateìì O/R 매í ë©íë°ì´í°ë¥¼ "
+"ì ìíë ëªëª ëìì ì¸ ë°©ë²ë¤ì´ ì¡´ì¬íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr "XDoclet ë§í¬ì
ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Many Hibernate users prefer to embed mapping information directly in "
+"sourcecode using XDoclet <literal>@hibernate.tags</literal>. We do not cover "
+"this approach in this reference guide since it is considered part of "
+"XDoclet. However, we include the following example of the <literal>Cat</"
+"literal> class with XDoclet mappings:"
+msgstr ""
+"ë§ì Hibernate ì¬ì©ìë¤ì XDoclet <literal>@hibernate.tags</literal>를 ì¬ì©í"
+"ì¬ ìì¤ ì½ë ìì ì§ì 매í ì 보를 ì½ì
ìí¤ë ê²ì ì í¸íë¤. ì°ë¦¬ë ì´ ë¬¸ìì"
+"ì ì´ ì ê·¼ë²ì ë¤ë£¨ì§ ìì ê²ì´ë¤. ìëíë©´ ê·¸ê²ì ì격íê²ë XDocletì ë¶ë¶"
+"ì¼ë¡ ê°ì£¼ë기 ë문ì´ë¤. íì§ë§ ì°ë¦¬ë XDoclet 매íë¤ì ê°ì§ <literal>Cat</"
+"literal> í´ëì¤ì ê´í ë¤ì ìì 를 í¬í¨íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr "XDocletê³¼ ibernateì ê´í ì¶ê° ìì ë¤ì Hibernate ì¹ ì¬ì´í¸ë¥¼ ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr "JDK 5.0 Annotations ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"JDK 5.0 introduced XDoclet-style annotations at the language level that are "
+"type-safe and checked at compile time. This mechanism is more powerful than "
+"XDoclet annotations and better supported by tools and IDEs. IntelliJ IDEA, "
+"for example, supports auto-completion and syntax highlighting of JDK 5.0 "
+"annotations. The new revision of the EJB specification (JSR-220) uses JDK "
+"5.0 annotations as the primary metadata mechanism for entity beans. "
+"Hibernate3 implements the <literal>EntityManager</literal> of JSR-220 (the "
+"persistence API). Support for mapping metadata is available via the "
+"<emphasis>Hibernate Annotations</emphasis> package as a separate download. "
+"Both EJB3 (JSR-220) and Hibernate3 metadata is supported."
+msgstr ""
+"JDK 5.0ì ì¸ì´ ë 벨ìì XDoclet-ì¤íì¼ì 주ìë¤, type-safeì ì»´íì¼ ì ì²´í¹"
+"ì ëì
íë¤. ì´ ë©ì»¤ëì¦ì XDoclet 주ìë¤ ë³´ë¤ ë ê°ë ¥íë©° ë구ë¤ê³¼ IDEë¤ì "
+"ìí´ ë ì¢ê² ì§ìëë¤. ì를 ë¤ì´ IntelliJ IDEAë JDK 5.0 주ìë¤ì ëí ìë-"
+"ìì± ê¸°ë¥ê³¼ 구문 ê°ì¡°ë¥¼ ì§ìíë¤. EJB ëª
ì¸ìì ìë¡ì´ ê°ì í(JSR-220)ì ìí°"
+"í° ë¹ì¦ì ëí íë¼ì´ë¨¸ë¦¬ ë©íë°ì´í° ë©ì»¤ëì¦ì¼ë¡ì JDK 5.0 Annotationsì ì¬"
+"ì©íë¤. Hibernate3ë JSR-220(ìì API)ì <literal>EntityManager</literal>를 "
+"구ííê³ , 매í ë©íë°ì´í°ì ëí ì§ìì ë³ëì ë´ë ¤ë°ê¸°ë¡ì "
+"<emphasis>Hibernate Annotations</emphasis> í¨í¤ì§ë¥¼ íµí´ ì´ì© ê°ë¥íë¤. EJB3 "
+"(JSR-220)ê³¼ Hibernate3 metadata ììê° ì§ìëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr "ë¤ìì EJB ìí°í° ë¹ì¼ë¡ì 주ìì´ ë¶ì POJO í´ëì¤ì ê´í ìì ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Support for JDK 5.0 Annotations (and JSR-220) is currently under "
+"development. Please refer to the Hibernate Annotations module for more "
+"details."
+msgstr ""
+"JDK 5.0 Annotations(ê·¸ë¦¬ê³ JSR-220)ì ëí ì§ìì ì¬ì í ìì
ì´ ì§í ì¤ì´ê³ "
+"ìì±ëì§ ìììì ë
¸í¸íë¼. ìì¸í ê²ì Hibernate Anotations를 참조íë¼."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Generated properties"
+msgstr "ì°ì¶ëë íë¡í¼í°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Generated properties are properties that have their values generated by the "
+"database. Typically, Hibernate applications needed to <literal>refresh</"
+"literal> objects that contain any properties for which the database was "
+"generating values. Marking properties as generated, however, lets the "
+"application delegate this responsibility to Hibernate. When Hibernate issues "
+"an SQL INSERT or UPDATE for an entity that has defined generated properties, "
+"it immediately issues a select afterwards to retrieve the generated values."
+msgstr ""
+"ì°ì¶ëë íë¡í¼í°ë¤ì ë°ì´í°ë² ì´ì¤ì ìí´ ì°ì¶ëë ê·¸ê²ë¤ì ê°ë¤ì ê°ë íë¡"
+"í¼í°ë¤ì´ë¤. ì íì ì¼ë¡, Hibernate ì´í리ì¼ì´ì
ë¤ì ë°ì´í°ë² ì´ì¤ê° ê°ë¤ì ìì±"
+"ìì¼°ë ììì íë¡í¼í°ë¤ì í¬í¨íë ê°ì²´ë¤ì <literal>ê°±ì </literal>ìí¬ íì"
+"ê° ììë¤.íì§ë§ generatedë¡ ë§í¬ë íë¡í¼í°ë¤ì ì´í리ì¼ì´ì
ì¼ë¡ íì¬ê¸ ì´ "
+"ì±
ìì Hibernateìê² ìììí¤ëë¡ íë¤. 본ì§ì ì¼ë¡ Hibernateê° ì°ì¶ëë íë¡"
+"í¼í°ë¤ì ì ìíë ìí°í°ì ëí´ SQL INSERT ëë UPDATE ëª
ë ¹ì ë´ë¦´ ëë§ë¤ ë°"
+"ë¡ ì§íì ì°ì¶ëë ê°ë¤ì ê²ìí기 ìí´ íëì select ëª
ë ¹ì ë´ë¦°ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Properties marked as generated must additionally be non-insertable and non-"
+"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"and <link linkend=\"mapping-declaration-property\">simple properties</link>, "
+"can be marked as generated."
+msgstr ""
+"generatedë¡ ë§í¬ë íë¡í¼í°ë¤ì ë¶ê°ì ì¼ë¡ inser ê°ë¥íì§ ììì¼ íê³ update "
+"ë¶ê°ë¥í´ì¼ íë¤. ì¤ì§ Properties marked as generated must additionally be "
+"non-insertable and non-updateable. <xref linkend=\"mapping-declaration-"
+"version\">versions</xref>, <xref linkend=\"mapping-declaration-timestamp"
+"\">timestamps</xref>, ê·¸ë¦¬ê³ <xref linkend=\"mapping-declaration-property\">"
+"ë¨ì íë¡í¼í°ë¤</xref> ë§ì´ generatedë¡ ë§í¬ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>never</literal> (the default): the given property value is not "
+"generated within the database."
+msgstr ""
+"<literal>never</literal> (ëí´í¸) - ë 주ì´ì§ íë¡í¼í° ê°ì´ ë°ì´í°ë² ì´ì¤ ë´"
+"ì ìì±ëì§ ìì ê²ìì ì미íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>insert</literal>: the given property value is generated on insert, "
+"but is not regenerated on subsequent updates. Properties like created-date "
+"fall into this category. Even though <link linkend=\"mapping-declaration-"
+"version\">version</link> and <link linkend=\"mapping-declaration-timestamp"
+"\">timestamp</link> properties can be marked as generated, this option is "
+"not available."
+msgstr ""
+"<literal>insert</literal> - ë 주ì´ì§ íë¡í¼í° ê°ì´ insert ìì ìì±ëì§ë§, "
+"ì°¨íì ì
ë°ì´í¸ë¤ìì ë¤ì ìì±ëì§ ìì ê²ìì 기ì íë¤. ìì±-ë ì§ì ê°ì ê²"
+"ë¤ì´ ì´ ì¹´í
ê³ ë¦¬ ë´ë¡ í¬í¨ë ê²ì´ë¤. ë¹ë¡ <xref linkend=\"mapping-"
+"declaration-version\">version</xref>ê³¼ <xref linkend=\"mapping-declaration-"
+"timestamp\">timestamp</xref> íë¡í¼í°ë¤ì´ ìì±ëë ê²ì¼ë¡ì ë§í¬ë ì ìì ì§"
+"ë¼ë, ì´ ìµì
ì 거기ì ì´ì© ë¶ê°ë¥í¨ì ë
¸í¸íë¼..."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>always</literal>: the property value is generated both on insert "
+"and on update."
+msgstr ""
+"<literal>always</literal> - ë íë¡í¼í° ê°ì´ insert ìì update ì 모ëì ì"
+"ì±ë¨ì 기ì íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows you to customize the SQL it uses to read and write the "
+"values of columns mapped to <link linkend=\"mapping-declaration-property"
+"\">simple properties</link>. For example, if your database provides a set of "
+"data encryption functions, you can invoke them for individual columns like "
+"this: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate applies the custom expressions automatically whenever the property "
+"is referenced in a query. This functionality is similar to a derived-"
+"property <literal>formula</literal> with two differences:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The property is backed by one or more columns that are exported as part of "
+"automatic schema generation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>write</literal> expression, if specified, must contain exactly "
+"one '?' placeholder for the value."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Auxiliary database objects"
+msgstr "ë³´ì¡° ë°ì´í°ë² ì´ì¤ ê°ì²´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Auxiliary database objects allow for the CREATE and DROP of arbitrary "
+"database objects. In conjunction with Hibernate's schema evolution tools, "
+"they have the ability to fully define a user schema within the Hibernate "
+"mapping files. Although designed specifically for creating and dropping "
+"things like triggers or stored procedures, any SQL command that can be run "
+"via a <literal>java.sql.Statement.execute()</literal> method is valid (for "
+"example, ALTERs, INSERTS, etc.). There are essentially two modes for "
+"defining auxiliary database objects:"
+msgstr ""
+"Hibernate 매í íì¼ë¤ ë´ì ì¬ì©ì ì¤í¤ë§ë¥¼ ìì íê² ì ìí기 ìí ë¥ë ¥ì ì ê³µ"
+"í기 ìí´ì, Hibernateì ì¤í¤ë§ ë°©ì¶ ë구ë¤ê³¼ í¨ê» ììì ì¸ ë°ì´í°ë² ì´ì¤ ê°ì²´"
+"ë¤ì ëí CREATEì DROPì íì©í´ì¤ë¤. ë¹ë¡ í¸ë¦¬ê±°ë¤ ëë ë´ì¥ íë¡ìì ë¤ê³¼ ê°"
+"ì ê²ë¤ì ìì±ìí¤ê³ ëë¡ìí¤ê¸° ì´í´ í¹ë³í ê³ ìëììì§ë¼ë íëì "
+"<literal>java.sql.Statement.execute()</literal> ë©ìë를 íµí´ ì¤íë ì ìë "
+"SQL ëª
ë ¹ì´ ì¬ê¸°ì ì í¨íë¤(ALTERs, INSERTS, 기í). ë³´ì¡° ë°0ì´í°ë² ì´ì¤ ê°ì²´ë¤"
+"ì ì ìíë ë ê°ì§ 모ëë¤ì´ 본ì§ì ì¼ë¡ ì¡´ì¬íë¤..."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands in the "
+"mapping file:"
+msgstr ""
+"첫 ë²ì§¸ 모ëë 매í íì¼ ë°ê¹¥ìì CREATE ë° DROP ëª
ë ¹ë¤ì ëª
ìì ì¼ë¡ ëì´í"
+"ë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The second mode is to supply a custom class that constructs the CREATE and "
+"DROP commands. This custom class must implement the <literal>org.hibernate."
+"mapping.AuxiliaryDatabaseObject</literal> interface."
+msgstr ""
+"ëë²ì§¸ 모ëë CREATE ë° DROP ëª
ë ¹ë¤ì ìì±ìí¤ë ë°©ë²ì ìê³ ìë íëì ë§"
+"춤 í´ëì¤ë¥¼ ì ê³µíë ê²ì´ë¤. ì´ ë§ì¶¤ í´ëì¤ë <literal>org.hibernate.mapping."
+"AuxiliaryDatabaseObject</literal> ì¸í°íì´ì¤ë¥¼ 구íí´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Additionally, these database objects can be optionally scoped so that they "
+"only apply when certain dialects are used."
+msgstr ""
+"ë§ë¶ì¬ ì´ë¤ ë°ì´í°ë² ì´ì¤ ê°ì²´ë¤ì ì´ë¤ dialectë¤ì´ ì¬ì©ë ë ê·¸ê²ë¤ì´ ë¨ì§ ì "
+"ì©ë ì ìëë¡ ì íì ì¼ë¡ ë³ëë ì ìë¤."
+
+#~ 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 íì
ì ëíë´ë ì´ë¦."
+
+#~ 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>optimistic-lock</literal> (optional - defaults to <literal>true</"
+#~ "literal>): Specifies that updates to this property do or do not require "
+#~ "acquisition of the optimistic lock. In other words, dertermines if a "
+#~ "version increment should occur when this property is dirty."
+#~ msgstr ""
+#~ "<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>true</"
+#~ "literal>): ì´ íë¡í¼í°ì ëí ì
ë°ì´í¸ë¤ì´ optimistic lockì íëì íì"
+#~ "ë¡ íëì§ ìëì§ ì¬ë¶ë¥¼ ì§ì íë¤. ë¬ë¦¬ ë§í´ ì´ íë¡í¼í°ê° dirtyì¼ ë "
+#~ "version ì¦ê°ê° ë°ìí´ì¼ í ê²½ì°ì¸ì§ë¥¼ ê²°ì íë¤."
+
+#~ msgid ""
+#~ "To understand the behaviour of various Java language-level objects with "
+#~ "respect to the persistence service, we need to classify them into two "
+#~ "groups:"
+#~ msgstr ""
+#~ "ìì ìë¹ì¤ì ê´í ì¬ë¬ Java ì¸ì´-ë 벨ì ê°ì²´ë¤ì ì´í´í기 ìí´, ì°ë¦¬ë ê·¸"
+#~ "ê²ë¤ì ë¤ì ë ê°ì 그룹ë¤ë¡ ë¶ë¥í íìê° ìë¤:"
+
+#~ 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\"/>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/batch.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/batch.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/batch.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,675 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-01-12 23:37+0900\n"
+"Last-Translator: Jongdae Kim <jdkim528 at korea.com>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr "Batch ì²ë¦¬"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A naive approach to inserting 100,000 rows in the database using Hibernate "
+"might look like this:"
+msgstr ""
+"íì´ë²ë¤ì´í¸ë¥¼ ì¬ì©íì¬ ë°ì´í°ë² ì´ì¤ ë´ìì 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>ì¼ë¡ ë¨"
+"ì´ì§ ê²ì´ë¤. ê·¸ê²ì íì´ë²ë¤ì´í¸ê° 모ë ìë¡ì´ ì½ì
ë <literal>Customer</"
+"literal> ì¸ì¤í´ì¤ë¤ì session-level ìºì ë´ì ìºììí¤ê¸° ë문ì´ë¤. ì´ ì¥ìì "
+"ì°ë¦¬ë ì´ ë¬¸ì 를 íí¼íë ë°©ë²ì ë³´ì¬ì¤ ê²ì´ë¤."
+
+#. 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 ë°°ì¹ ì¬ì©ì ì´ì© ê°ë¥í"
+"ëë¡ í íìê° ìì ê²ì´ë¤. ë§ì¼ ë¹ì ì´ ìµì ì ì±ë¥ì ì±ì·¨íê³ ì ìíë¤ë©´ ì´"
+"ê²ì´ ì ëì ì¼ë¡ íìì ì´ë¤. JDBC ë°°ì¹ ì¬ì´ì¦ë¥¼ ì ë¹í ì«ìë¡ ì¤ì íë¼(ì를 ë¤"
+"ë©´,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> ìë³ì ìì±ì를 ì¬ì©í ê²½ì°ì íì´ë²ë¤"
+"ì´í¸ë JDBC ë 벨ìì í¬ëª
íê² insert ë°°ì¹ìì
ì ì¬ì©ë¶ê°ë¥íëë¡ ë§ë ë¤."
+
+#. 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:"
+msgstr ""
+"ë¹ì ì ëí second-level ìºì를 ê°ì§ ìí¸ìì©ì´ ì ì ì¼ë¡ ì¬ì©ë¶ê°ë¥í íë¡ì¸"
+"ì¤ ë´ìì ì´ë° ì¢
ë¥ì ìì
ì íí ì ìë¤:"
+
+#. 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 ""
+"íì§ë§ ì´ê²ì ì ëì ì¼ë¡ íìíì§ ìë¤. ìëíë©´ ì°ë¦¬ë second-level ìºìì"
+"ì ìí¸ìì©ì ë¶ê°ë¥íëë¡ í기 ìí´ ëª
ìì ì¼ë¡ <literal>CacheMode</literal>"
+"를 ì¤ì í ì ì기 ë문ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr "Batch inserts"
+
+#. 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 ""
+"ìë¡ì´ ê°ì²´ë¤ì ììí ìí¬ ë ë¹ì ì first-level ìºìì ì¬ì´ì¦ë¥¼ ì ì´í기 ì"
+"í´ ì¸ì
ì ì 기ì ì¼ë¡ <literal>flush()</literal> ìí¤ê³ ëì <literal>clear()"
+"</literal> íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr "Batch updates"
+
+#. 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>ì ì¬ì©í íìê° ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr "StatelessSession ì¸í°íì´ì¤"
+
+#. 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 ""
+"ë¤ë¥¸ ë°©ë²ì¼ë¡ íì´ë²ë¤ì´í¸ë ë¶ë¦¬ë(detached) ê°ì²´ë¤ì íìì¼ë¡ ë°ì´í°ë² ì´ì¤"
+"ë¡ ê·¸ë¦¬ê³ ë°ì´í°ë² ì´ì¤ë¡ë¶í° ë°ì´í°ë¥¼ ì¤í¸ë¦¬ë°íëë° ì¬ì©ë ì ìë ëª
ë ¹-ì§"
+"í¥ API를 ì ê³µíë¤. <literal>StatelessSession</literal>ì ê·¸ê²ê³¼ ì°ê´ë ìì "
+"컨í
ì¤í¸ë¥¼ ê°ì§ ìê³ ë§ì ë³´ë¤ ëì ë 벨ì ìëª
주기 ì미를 ì ê³µíì§ ìëë¤. "
+"í¹í íëì ìí ìë ì¸ì
ì 첫 ë²ì§¸ ë 벨 ìºì를 구ííì§ ìì¼ë©° ììì ë ë²"
+"째 ë 벨 ìºì ëë ì§ì ìºìì ìí¸ìì©íì§ ìëë¤. ê·¸ê²ì í¸ëìì
ìì ì°ê¸°-"
+"ì´ë©´(write-behind)ì ì²´í¹ì´ë ìëì ì¸ dirty ì²´í¹ì 구ííì§ ìëë¤. ìí ì"
+"ë ì¸ì
ì ì¬ì©íì¬ ìíë ì°ì°ë¤ì ê²°ì½ ì°ê´ë ì¸ì¤í´ì¤ë¤ì ëí´ ì¼ì¤ì¼ì´ë "
+"ëì§ ìëë¤. ì½ë ì
ë¤ì ìí ìë ì¸ì
ì ìí´ ë¬´ìëë¤. ìíìë ì¸ì
ì íµí´ "
+"ìíë ì°ì°ë¤ì íì´ë²ë¤ì´í¸ì ì´ë²¤í¸ 모íê³¼ ì¸í°ì
í°ë¤ì ì°ííë¤. 첫ë²ì§¸-ë "
+"벨ì ìºìì ë¶ì¬ì¼ë¡ ì¸í´, ìíìë ì¸ì
ë¤ì ë°ì´í° alias í¨ê³¼ë¤ì ì·¨ì½íë¤. "
+"ìíìë ì¸ì
ì ê¸°ë° 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> ì¸ì¤í´ì¤ë¤"
+"ì 곧ë°ê³ ë¶ë¦¬ëë¤(detached). ê·¸ê²ë¤ì ììì ìì 컨í
ì¤í¸ì ê²°ì½ ì°ê´ëì§ "
+"ìëë¤."
+
+#. 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> ì°ì°ë¤ì ì§ì ì ì¸ "
+"ë°ì´í°ë² ì´ì¤ í ë 벨ì ì°ì°ë¤ë¡ ê°ì£¼ëë¤. ê·¸ê²ë¤ì ê°ê° íëì SQL "
+"<literal>INSERT, UPDATE</literal> ëë <literal>DELETE</literal>ì ì¦ê°ì ì¸ "
+"ì¤íì¼ë¡ ê·ê²°ëë¤. ê·¸ê²ë¤ì <literal>Session</literal> ì¸í°íì´ì¤ì ìí´ ì ì"
+"ë <literal>save(), saveOrUpdate()</literal>ì <literal>delete()</literal> ì°"
+"ì°ë¤ê³¼ë ë¤ë¥¸ ì미ë¤ì ê°ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+msgstr "DML-ì¤íì¼ ì°ì°ë¤"
+
+#. 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 (<link linkend=\"queryhql"
+"\">HQL</link>)."
+msgstr ""
+"ì´ë¯¸ ë
¼ìíë¯ì´, ìëì ì´ê³ í¬ëª
í ê°ì²´/ê´ê³í 매íì ê°ì²´ ìíì ëí ê´ë¦¬"
+"ì ê´ê³ëë¤. ê°ì²´ì ìíë ë©ëª¨ë¦¬ ë´ìì ì´ì© ê°ë¥íë¤. (SQL <literal>ë°ì´í° "
+"ì²ë¦¬ ì¸ì´</literal>(DML) 문ì¥ë¤ : <literal>INSERT</literal>, "
+"<literal>UPDATE</literal>, <literal>DELETE</literal>를 ì¬ì©íì¬) ë°ì´í°ë² ì´ì¤"
+"ìì ì§ì ë°ì´í° ì²ë¦¬íë ê²ì´ ë©ëª¨ë¦¬ ë´ ìíì ìí¥ì ì£¼ì§ ììì ì미íë¤. "
+"íì§ë§ íì´ë²ë¤ì´í¸ë íì´ë²ë¤ì´í¸ ì§ì ì¸ì´(<xref linkend=\"queryhql\">HQL</"
+"xref>)를 íµí´ ì¤íëë ëë 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>."
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr "ë
¸í¸í ëª ê°ì§:"
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr "from-ì ìì, FROM í¤ìëë ìµì
ì´ë¤"
+
+#. 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-ì ë´ì ë¨ì§ ëª
ëª
ë í ê°ì ìí°í°ê° ì¡´ì¬í ì ìë¤. íì§ë§ ê·¸ê²ì ì í"
+"ì ì¼ë¡ aliasë ì ìë¤. ë§ì¼ ìí°í° ì´ë¦ì´ aliasëë©´, ê·¸ë ììì íë¡í¼í° ì°¸"
+"ì¡°ë¤ì ê·¸ alias를 ì¬ì©íì¬ ììëì´ì¼ íë¤; ë§ì¼ ìí°í° ì´ë¦ì´ aliasëì§ ì"
+"ì ê²½ì°, ììì íë¡í¼í° 참조ë¤ì´ ììëë ê²ì ê·ì¹ì ì´ê¸ëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
+"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
+"the where-clause, where the subqueries themselves may contain joins."
+msgstr ""
+"í¨ì¶ì ì´ë ëª
ìì ì´ë <xref linkend=\"queryhql-joins-forms\">joinë¤</xref>ì "
+"ëë HQL ì§ì ìì ì§ì ë ì ìë¤. ìë¸-ì§ìë¤ì´ where-ì ì ì¬ì©ë ì ìë"
+"ë°, ì¬ê¸°ì ìë¸ì§ìë¤ ê·¸ ìì ë¤ì ì¡°ì¸ë¤ì í¬í¨í ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr "where-ì ëí ìµì
ì´ë¤."
+
+#. 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 ""
+"íëì ìì ë¡ì, í ê°ì HQL <literal>UPDATE</literal>를 ì¤íí기 ìí´, "
+"<literal>Query.executeUpdate()</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 <link linkend=\"mapping-"
+"declaration-version\">version</link> or the <link linkend=\"mapping-"
+"declaration-timestamp\">timestamp</link> property values for the affected "
+"entities. However, you can force Hibernate to reset the <literal>version</"
+"literal> or <literal>timestamp</literal> property values through the use of "
+"a <literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
+msgstr ""
+"ì´ê²ì EJB3 ëª
ì¸ììì ì ì§ëê³ ìë¯ì´, HQL <literal>UPDATE</literal> 문ì¥ë¤"
+"ì ëí´í¸ë¡ ìí¥ë°ë ìí°í°ë¤ì ëí <xref linkend=\"mapping-declaration-"
+"version\">version</xref> ëë <xref linkend=\"mapping-declaration-timestamp"
+"\">timestamp</xref> íë¡í¼í° ê°ë¤ì ìí¥ì ì£¼ì§ ìëë¤. íì§ë§ ë¹ì ì íì´ë²"
+"ë¤ì´í¸ë¡ íì¬ê¸ <literal>versioned update</literal>ì ì¬ì©ì íµí´ "
+"<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 ""
+"ë§ì¶¤í version íì
ë¤, <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>를 ì¬ì©íë¼:"
+
+#. 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>int</literal> ê°ì ê·¸ ì¤í¼ë ì´ì
ì ìí´ ìí¥ë°ì ìí°í°ë¤ì ê°ì를 "
+"ëíë¸ë¤. ì´ê²ì´ ë°ì´í°ë² ì´ì¤ ë´ìì ìí¥ë°ì íë¤ì ê°ìì ìê´ì´ ìì ìë "
+"ìì ìë ìë¤. HQL ëë ì¤í¼ë ì´ì
ì (ì를 ë¤ì´ joined-subclassì ëí´) ì¤"
+"í ì¤ì¸ ì¬ë¬ ê°ì ì¤ì SQL 문ì¥ë¤ë¡ ê·ê²°ë ì ìë¤. ë°íëë ì«ìë ê·¸ 문ì¥"
+"ì ìí´ ìí¥ë°ì ì¤ì ìí°í°ë¤ì ê°ì를 ëíë¸ë¤. 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 ""
+"ì¥ëì ë°°í¬ë³¸ë¤ìì ì ë¬ë ëë HQL ì¤í¼ë ì´ì
ë¤ì ëí ëª ê°ì§ ì íë¤ì´ í"
+"ì¬ ì¡´ì¬í¨ì ë
¸í¸íë¼; ìì¸í ê²ì JIRA ë¡ë맵ì 참조íë¼. <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 ... íìì ì§ìëì§ ìëë¤."
+
+#. 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>ì»¬ë¼ ëª
ì¸</"
+"literal>ì ì ì¬íë¤. 매íë ììì ì°¸ì¬íë ìí°í°ë¤ì ê²½ì°, ê·¸ 주ì´ì§ í´ë"
+"ì¤-ë 벨 ìì ì§ì ì ìë íë¡í¼í°ë¤ ë§ì´ properties_listì ì¬ì©ë ì ìë¤. ì"
+"í¼í´ëì¤ íë¡í¼í°ë¤ì íì©ëì§ ìê³ , ìë¸í´ëì¤ íë¡í¼í°ë¤ì ìë¯¸ê° ìë¤. ë¬"
+"리 ë§í´ <literal>INSERT</literal> 문ì¥ë¤ì 본ëì ì¼ë¡ ë¤íì ì´ì§ ìë¤(non-"
+"polymorphic)."
+
+#. 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 ""
+"ë°í íì
ë¤ì´ insertì ìí´ ê¸°ëëë íì
ë¤ê³¼ ì¼ì¹í´ì¼ íë¤ë ë¨ì íì, "
+"select_statementë ììì ì í¨í HQL select ì§ìì¼ ì ìë¤. íì¬ ì´ê²ì ë°ì´"
+"í°ë² ì´ì¤ë¡ ê°ë±ìí¬ ì²´í¬ë¥¼ íì©í기 ë³´ë¤ë ì§ì ì»´íì¼ ëìì ì²´í¬ëë¤. íì§"
+"ë§ ì´ê²ì <emphasis>equal</emphasis>ê³¼ë ëì¡°ì ì¼ë¡ <emphasis>ë±ê°ì¸"
+"(equivalent)</emphasis> Hibernate <literal>Type</literal>ë¤ ì¬ì´ì 문ì ì ë¤"
+"ì ì¼ì¼í¬ ìë ìë¤. ë¹ë¡ ë°ì´í°ë² ì´ì¤ê° 구ë³í ì ìê±°ë ë³íì ì²ë¦¬í ì ì"
+"ì ì§ë¼ë, ì´ê²ì <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>ì¸ë°, ê·¸ê²ì´ ê·¸ê²ì ê°"
+"ë¤ì ì»ê¸° ìí select ê°ë¥í ë°©ë²ì ë
¸ì¶ìí¤ì§ ì기 ë문ì ì¬ì©ë ì ìë¤."
+
+#. 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> ê°ì´ ì¬ì©ëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of an HQL <literal>INSERT</literal> statement "
+"execution:"
+msgstr "ë¤ìì HQL <literal>INSERT</literal> ë¬¸ì¥ ì¤í ìì ì´ë¤:"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ "}\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ "}\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+#~ msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+
+#~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#~ msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+#~ " //flush a batch of inserts and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+#~ " //flush a batch of inserts and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .setCacheMode(CacheMode.IGNORE)\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "int count=0;\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " if ( ++count % 20 == 0 ) {\n"
+#~ " //flush a batch of updates and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .setCacheMode(CacheMode.IGNORE)\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "int count=0;\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " if ( ++count % 20 == 0 ) {\n"
+#~ " //flush a batch of updates and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
+#~ "();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " session.update(customer);\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
+#~ "();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " session.update(customer);\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
+#~ "= :oldName\";\n"
+#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
+#~ "= :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
+#~ "= :oldName\";\n"
+#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
+#~ "= :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
+#~ "newName where name = :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
+#~ "newName where name = :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
+#~ "id, c.name from Customer c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
+#~ "id, c.name from Customer c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/best_practices.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/best_practices.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/best_practices.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,414 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr "ìµìì ì¤ì ê²½íë¤"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"Write fine-grained classes and map them using <literal><component></"
+"literal>:"
+msgstr ""
+"fine-grained í´ëì¤ë¤ì ìì±íê³ <literal><component></literal>를 ì¬ì©"
+"íì¬ ê·¸ê²ë¤ì 매ííë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use an <literal>Address</literal> class to encapsulate <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal>. This encourages code reuse and simplifies "
+"refactoring."
+msgstr ""
+"<literal>street</literal>, <literal>suburb</literal>, <literal>state</"
+"literal>, <literal>postcode</literal>를 캡ìí ìí¤ëë° <literal>Address</"
+"literal> í´ëì¤ë¥¼ ì¬ì©íë¼. ì´ê²ì ì½ë ì¬ì¬ì©ì±ì ì´ì§ìí¤ê³ 리í©í ë§ì ë¨ì"
+"í ìí¨ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr "ìì í´ëì¤ë¤ì ëí´ ìë³ì íë¡í¼í°ë¤ì ì ì¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate makes identifier properties optional. There are a range of reasons "
+"why you should use them. We recommend that identifiers be 'synthetic', that "
+"is, generated with no business meaning."
+msgstr ""
+"Hibernateë ìë³ì íë¡í¼í°ë¤ì ìµì
ì¼ë¡ ë§ë ë¤. ì ì°ë¦¬ê° ê·¸ê²ë¤ì ì¬ì©í´ì¼ "
+"íëê°ì ëí 모ë ì¢
ë¥ì ì´ì ë¤ì´ ì¡´ì¬íë¤. ì°ë¦¬ë ìë³ìë¤ì´ 'í©ì±"
+"(synthetic)'ì´ ëë(ë¹ì§ëì¤ ì미 ìì´ ìì±ëë) ê²ì ê¶ì¥íë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Identify natural keys:"
+msgstr "ê³ ì í¤ë¤ì ìë³íë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Identify natural keys for all entities, and map them using <literal><"
+"natural-id></literal>. Implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the properties that make up the "
+"natural key."
+msgstr ""
+"모ë ìí°í°ë¤ì ëí´ ê³ ì í¤ë¤ì ìë³íê³ , <literal><natural-id></"
+"literal>를 ì¬ì©íì¬ ê·¸ê²ë¤ì 매ííë¼. ê³ ì í¤ë¥¼ 구ì±íë íë¡í¼í°ë¤ì ë¹êµí"
+"기 ìí´ <literal>equals()</literal>ì <literal>hashCode()</literal>를 구íí"
+"ë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr "ê°ê°ì í´ëì¤ ë§¤íì ê·¸ê² ìì ì íì¼ ë´ì ìì¹ì§ìë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
+"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
+"sense, particularly in a team environment."
+msgstr ""
+"íëì íë©ì´ë¦¬ 매í 문ì를 ì¬ì©íì§ ë§ë¼. <literal>com/eg/Foo.hbm.xml</"
+"literal> íì¼ ìì <literal>com.eg.Foo</literal>를 매ííë¼. ì´ê²ì í íê²½ì"
+"ì í¹í ì¢ì ì미를 ì¤ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Load mappings as resources:"
+msgstr "매íë¤ì 리ìì¤ë¤ë¡ì ë¡ëìì¼ë¼."
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr "ê·¸ê²ë¤ì´ 매ííë í´ëì¤ë¤ì ë°ë¼ì 매íë¤ì ë°°ì¹íë¼"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr "ì§ì 문ìì´ë¤ì ê°ê´í ìí¤ë ê²ì ê³ ë ¤íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is recommended if your queries call non-ANSI-standard SQL functions. "
+"Externalizing the query strings to mapping files will make the application "
+"more portable."
+msgstr ""
+"ë¹ì ì ì§ìë¤ì´ ANSI íì¤ì´ ìë SQL í¨ìë¤ì í¸ì¶íë ê²½ì°ë ì¢ì ì¤ì ì°ìµì´"
+"ë¤. ì§ì 문ìì´ë¤ì 매í íì¼ë¤ìë¤ê° ì¸ë¶í ìí¤ë ê²ì ì´í리ì¼ì´ì
ì ë³´ë¤ "
+"ì´ìì± ìëë¡ ë§ë¤ì´ì¤ ê²ì´ë¤."
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr "ë°ì¸ë ë³ìë¤ì ì¬ì©íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As in JDBC, always replace non-constant values by \"?\". Do not use string "
+"manipulation to bind a non-constant value in a query. You should also "
+"consider using named parameters in queries."
+msgstr ""
+"JDBCììì²ë¼, ìì ìë ê°ë¤ì \"?\"ë¡ ëì²´ìì¼ë¼. ì§ì ìì ìì ìë ê°ì "
+"ë°ì¸ë ìí¤ëë° ë¬¸ìì´ ì²ë¦¬ë¥¼ ê²°ì½ ì¬ì©íì§ ë§ë¼! ë ì¢ê²ë ì§ìë¤ ìì ëª
ëª
"
+"ë íë¼ë¯¸í°ë¤ì ì¬ì©íë ê²ì ê³ ë ¤íë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr "ë¹ì ìì ì JDBC 커ë¥ì
ë¤ì ê´ë¦¬íì§ ë§ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate allows the application to manage JDBC connections, but his "
+"approach should be considered a last-resort. If you cannot use the built-in "
+"connection providers, consider providing your own implementation of "
+"<literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+"Hibernateë ì´í리ì¼ì´ì
ì¼ë¡ íì¬ê¸ JDBC 커ë¥ì
ë¤ì ê´ë¦¬íëë¡ íë¤. ì´ ì ê·¼"
+"ë²ì ë§ì§ë§ ìë¨ì¼ë¡ì ê³ ë ¤ëì´ì¼ íë¤. ë§ì¼ ë¹ì ì´ ë¯¸ë¦¬ ë§ë¤ì´ì§ 커ë¥ì
íë¡"
+"ë°ì´ëë¤ì ì¬ì©í ì ìì ê²½ì°, <literal>org.hibernate.connection."
+"ConnectionProvider</literal>ì ëí ë¹ì ìì ì 구íì ì ê³µíë ê²ì ê³ ë ¤í"
+"ë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Consider using a custom type:"
+msgstr "ë§ì¶¤í íì
ì¬ì©ì ê³ ë ¤íë¼."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë¹ì ì´ ìë° íì
ì ê°ê³ ìê³ , ì´ë¤ ë¼ì´ë¸ë¬ë¦¬ë¡ë¶í° ë§íê³ , ê·¸ê²ì´ ììí ë "
+"íìê° ìì§ë§ ê·¸ê²ì ì»´í¬ëí¸ë¡ì 매íìí¤ëë° íìí accessorë¤ì ì ê³µí í"
+"ìê° ìë¤ê³ ê°ì íì. ë¹ì ì <literal>org.hibernate.UserType</literal>ì 구í"
+"íë ê²ì ê³ ë ¤í´ì¼ í ê²ì´ë¤. ì´ ì ê·¼ë²ì Hibernate íì
ì¼ë¡/ì¼ë¡ë¶í° ë³íë¤"
+"ì 구ííë ê²ì¼ë¡ë¶í° ì´í리ì¼ì´ì
ì½ë를 ìì ë¡ê² í´ì¤ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr "ë³ëª© ì§ì ë¤ìì ììì
ì¼ë¡ ì½ë©ë JDBC를 ì¬ì©íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In performance-critical areas of the system, some kinds of operations might "
+"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
+"faster. Please wait until you <emphasis>know</emphasis> something is a "
+"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
+"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
+"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
+"way you can still use the same transaction strategy and underlying "
+"connection provider."
+msgstr ""
+"ìì¤í
ì í¼í¬ë¨¼ì¤ê° ì¤ëí ììë¤ìì, ëªëª ì¢
ë¥ì ì¤í¼ë ì´ì
ë¤ì ì§ì ì ì¸ "
+"JDBCìì ì´ëì 본ë¤. ê·¸ë¬ë ë¹ì ì´ ì´ë¤ ê²ì´ ë³ëª©ì¸ì§ë¥¼ <emphasis>ì기</"
+"emphasis> ì ê¹ì§ 기ë¤ë¦¬ê¸¸ ë°ëë¤. ê·¸ë¦¬ê³ ì§ì ì ì¸ JDBCê° ë°ëì ë ë¹ ë¥´ë¤ê³ "
+"ê°ì íì§ ë§ë¼. ë§ì¼ ë¹ì ì´ ì§ì ì ì¸ JDBC를 ì¬ì©í íìê° ìì ê²½ì°, "
+"Hibernate <literal>Session</literal>ì ì´ê³ ê·¸ SQL 커ë¥ì
ì ì¬ì©í ê°ì¹ê° ì"
+"ë¤. ê·¸ ë°©ë²ì¼ë¡ ë¹ì ì ëì¼í í¸ëìì
ë°©ëì 기본 커ë¥ì
íë¡ë°ì´ë를 ì¬ì "
+"í ì¬ì©í ì ìë¤"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr "<literal>Session</literal> flushingì ì´í´íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes the Session synchronizes its persistent state with the database. "
+"Performance will be affected if this process occurs too often. You can "
+"sometimes minimize unnecessary flushing by disabling automatic flushing, or "
+"even by changing the order of queries and other operations within a "
+"particular transaction."
+msgstr ""
+"ìê°ì´ ì§ë¨ì ë°ë¼ Sessionì ê·¸ê²ì ìì ìí를 ë°ì´í°ë² ì´ì¤ì ë기í ìí¨"
+"ë¤. ë§ì¼ ì´ ê³¼ì ì´ ë무 ì주 ë°ìí ê²½ì° í¼í¬ë¨¼ì¤ê° ìí¥ì ë°ì ê²ì´ë¤. ë¹ì "
+"ì ëëë¡ ìëì ì¸ flushingì ì¬ì© ë¶ê°ë¥íê² ë§ë¤ê±°ë í¹ì í¸ëìì
ë´ìì "
+"ì§ìë¤ì ììì ë¤ë¥¸ ì¤í¼ë ì´ì
ë¤ì ìì를 ë³ê²½ìì¼ì ë¶íìí flushingì ìµ"
+"ìí ìí¬ ì ìë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr ""
+"3-tier ìí¤í
ì²ìì, <literal>saveOrUpdate()</literal> ì¬ì©ì ê³ ë ¤íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When using a servlet/session bean architecture, you can pass persistent "
+"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
+"new session to service each request. Use <literal>Session.merge()</literal> "
+"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
+"database."
+msgstr ""
+"servlet / session ë¹ ìí¤í
ì²ë¥¼ ì¬ì©í ë, ë¹ì ì sesson bean ë´ì ë¡ëë ì"
+"ì ê°ì²´ë¤ì ìë¸ë¦¿/JSP ê³ì¸µì¼ë¡/ì¼ë¡ë¶í° ì ë¬í /ë°ì ì ìë¤. ê°ê°ì ìì²ì "
+"ìë¹ì¤íëë° ìë¡ì´ ì¸ì
ì ì¬ì©íë¼. ê°ì²´ë¤ì ë°ì´í°ë² ì´ì¤ì ë기í ìí¤ê¸° ì"
+"í´ì <literal>Session.merge()</literal> ëë <literal>Session.saveOrUpdate()"
+"</literal>를 ì¬ì©íë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr ""
+"2-tier ìí¤í
ì²ìì, ìëª
ì´ ê¸´ ìì 컨í
ì¤í¸ë¤ì ì¬ì©íë ê²ì ê³ ë ¤íë¼."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì ìµìì ê°ì©ì±ì ìí´ ê°ë¥í í 짧ìì¼ íë¤. íì§ë§ "
+"ì¥ê¸°ê° ì¤íëë <emphasis>ì´í리ì¼ì´ì
í¸ëìì
ë¤</emphasis>, ì¬ì©ìì ë·° ê´"
+"ì ìì í ê°ì ë¨ì ìì
ì 구ííë ê²ì´ ê°ë íìì ì´ë¤. íëì ì´í리ì¼ì´"
+"ì
í¸ëìì
ì ëª ê°ì í´ë¼ì´ì¸í¸ ìì²ë¤ê³¼ ìëµ ì£¼ê¸°ë¤ì ê±¸ì¹ ìë ìë¤. ì´í"
+"리ì¼ì´ì
í¸ëìì
ë¤ì 구ííëë° detached ê°ì²´ë¤ì ì¬ì©íë ê²ì´ ê³µíµì ì´ë¤. "
+"2-í°ì´ ìí¤í
ì²ìì ë§¤ì° ì ì í ëìì ì´í리ì¼ì´ì
í¸ëìì
ì ì ì²´ ìëª
주기 "
+"ëìì í ê°ì ì´ë ¤ì§ ìì ì ì (ì¸ì
)ì ì ì§íë ê²ì´ê³ ê°ê°ì ìì²ì ëì"
+"ì JDBC 커ë¥ì
ì ê°ë¨íê² ì°ê²°í´ì íê³ ì°¨íì ìì²ì ìì ìì ë¤ì ì°ê²°íë "
+"ê²ì´ë¤. í ê° ì´ìì ì´í리ì¼ì´ì
í¸ëìì
ì ê°ë¡ì§ë¬ì íëì ë¨ì¼ ì¸ì
ì ê²°"
+"ì½ ê³µì íì§ ë§ë¼. ê³µì í ê²½ì°ì ë¹ì ì ì¤í¨ì±ì´ ìë ë°ì´í°ë¡ ìì
íê² ë ê²"
+"ì´ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr "ìì¸ìí©ë¤ì 복구ê°ë¥í ê²ì¼ë¡ì ë¤ë£¨ì§ ë§ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is more of a necessary practice than a \"best\" practice. When an "
+"exception occurs, roll back the <literal>Transaction</literal> and close the "
+"<literal>Session</literal>. If you do not do this, Hibernate cannot "
+"guarantee that in-memory state accurately represents the persistent state. "
+"For example, do not use <literal>Session.load()</literal> to determine if an "
+"instance with the given identifier exists on the database; use "
+"<literal>Session.get()</literal> or a query instead."
+msgstr ""
+"ì´ê²ì \"ìµìì\" ì¤ì ì´ ìë ë³´ë¤ íìì ì¸ ì¤ì ì´ë¤. ìì¸ìí©ì´ ë°ìí ë, "
+"<literal>Transaction</literal>ì 롤백ìí¤ê³ <literal>Session</literal>ì ë«ì"
+"ë¼. ë§ì¼ ë¹ì ì´ ê·¸ë ê² íì§ ìì ê²½ì°, Hibernateë ë©ëª¨ë¦¬ ë´ ìíê° ìì ìí"
+"를 ì ííê² íííë ê²ì ë³´ì¦í ì ìë¤. ì´ í¹ë³í ê²½ì°ì²ë¼, ë§ì¼ 주ì´ì§ ì"
+"ë³ì를 ê°ì§ ì¸ì¤í´ì¤ê° ë°ì´í°ë² ì´ì¤ ìì ì¡´ì¬íëì§ ì¬ë¶ë¥¼ ê²°ì íëë° "
+"<literal>Session.load()</literal>를 ì¬ì©íì§ ë§ë¼; ëì ì <literal>Session."
+"get()</literal> ëë íëì ì§ì를 ì¬ì©íë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr "ì°ê´ë¤ì ëí lazy íì¹ì ì í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use eager fetching sparingly. Use proxies and lazy collections for most "
+"associations to classes that are not likely to be completely held in the "
+"second-level cache. For associations to cached classes, where there is an a "
+"extremely high probability of a cache hit, explicitly disable eager fetching "
+"using <literal>lazy=\"false\"</literal>. When join fetching is appropriate "
+"to a particular use case, use a query with a <literal>left join fetch</"
+"literal>."
+msgstr ""
+"eager íì¹ì ê´ëíê² ì¬ì©íë¼. second-level ìºì ë´ì ìì íê² ë³´ê´ëì§ ì"
+"ì ê² ê°ì í´ëì¤ë¤ì ëí ëë¶ë¶ì ì°ê´ë¤ì ëí´ íë½ìë¤ê³¼ lazy ì½ë ì
ë¤ì "
+"ì¬ì©íë¼. ìºìë í´ëì¤ë¤ì ëí ì°ê´ë¤ì ê²½ì°, ì´ê³³ì ìºì ì±ê³µì ë§¤ì° ëì "
+"íë¥ ì´ ì¡´ì¬íë ê³³ì´ë©°, <literal>lazy=\"false\"</literal>를 ì¬ì©íì¬ eager í"
+"ì¹ì ëª
ìì ì¼ë¡ ì¬ì© ë¶ê°ë¥íê² íë¼. íì join íì¹ì´ í¹ì ì°ììì ëí´ ì "
+"ì í ë, íëì <literal>left join fetch</literal>를 ê°ì§ ì§ì를 ì¬ì©íë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid ""
+"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
+"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr ""
+"íì¹ëì§ ìì ë°ì´í° 문ì ì ë¤ì í¼í기 ìí´ <emphasis>ë·° ë´ì ì´ë ¤ì§ ì¸ì
"
+"(open session in view)</emphasis> í¨í´ ëë íëì ì 리ë <emphasis>ì´ì
ë¸ë¦¬ "
+"ë¨ê³(assembly phase)</emphasis>를 ì¬ì©íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
+"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
+"purposes: first, they work around the problem that entity beans are not "
+"serializable; second, they implicitly define an assembly phase where all "
+"data to be used by the view is fetched and marshalled into the DTOs before "
+"returning control to the presentation tier. Hibernate eliminates the first "
+"purpose. Unless you are prepared to hold the persistence context (the "
+"session) open across the view rendering process, you will still need an "
+"assembly phase. Think of your business methods as having a strict contract "
+"with the presentation tier about what data is available in the detached "
+"objects. This is not a limitation of Hibernate. It is a fundamental "
+"requirement of safe transactional data access."
+msgstr ""
+"Hibernateë ê°ë°ìë¤ì´ <emphasis>Data Transfer Objects</emphasis> (DTO)를 ì§"
+"루íê² ìì±íë ê²ì¼ë¡ë¶í° ìì ë¡ê² í´ì¤ë¤. ì íµì ì¸ EJB ìí¤í
ì²ìì, DTOë "
+"ì´ì¤ ì©ëë¡ ê¸°ë¥íë¤: 첫 ë²ì§¸ë¡ ê·¸ê²ë¤ì ìí°í° ë¹ì¦ê° ì§ë ¬í ê°ë¥íì§ ìë "
+"문ì ì ì ëí´ ì°©ìíë¤; ë ë²ì§¸ë¡ ê·¸ê²ë¤ì ë·°ì ìí´ ì¬ì©ëë 모ë ë°ì´í°ê° "
+"í리ì í
ì´ì
í°ì´ë¡ 컨í¸ë¡¤ì ë°íí기 ì ì DTOë¤ ìì¼ë¡ íì¹ëê³ ë§ì¬ë§ëë "
+"ì´ì
ë¸ë¦¬ ë¨ê³ë¥¼ ì묵ì ì¼ë¡ ì ìíë¤. Hibernateë 첫 ë²ì§¸ ì©ë를 ì ê±°ìí¨ë¤. "
+"íì§ë§ ë¹ì ì´ ë·° ë ëë§ íë¡ì¸ì¤ë¥¼ ê°ë¡ì§ë¬ ì´ë ¤ì ¸ ìë ìì 컨í
ì¤í¸(ì¸ì
)"
+"ì ë³´ê´í ì¤ë¹ê° ëì´ ìì§ ìë í, ë¹ì ì ì¬ì í ì´ì
ë¸ë¦¬ ë¨ê³ë¥¼ íìë¡ í "
+"ê²ì´ë¤(detached ê°ì²´ë¤ìì ì´ì©ê°ë¥í ë°ì´í°ê° 무ìì¸ì§ì ëí´ í리ì í
ì´ì
"
+"í°ì´ì ì격íê² ê³ì½ì ê°ëë¡ ë¹ì ì ë¹ì§ëì¤ ë©ìëë¤ì ê³ ë ¤íë¼) ì´ê²ì "
+"Hibernateì íê³ì ì´ ìëë¤! ê·¸ê²ì ìì í í¸ëìì
ë°ì´í° ì ê·¼ì íì ì¡°ê±´ì´"
+"ë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr "Hibernateìì ë¹ì ì ë¹ì§ëì¤ ë¡ì§ì ì¶ìí ìí¤ë ê²ì ê³ ë ¤íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hide Hibernate data-access code behind an interface. Combine the "
+"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
+"patterns. You can even have some classes persisted by handcoded JDBC "
+"associated to Hibernate via a <literal>UserType</literal>. This advice is, "
+"however, intended for \"sufficiently large\" applications. It is not "
+"appropriate for an application with five tables."
+msgstr ""
+"(Hibernate) ë°ì´í° ì¡ì¸ì¤ ì½ë를 ì¸í°íì´ì¤ ì´ë©´ì ìíìì¼ë¼. "
+"<emphasis>DAO</emphasis>ì <emphasis>Thread Local Session</emphasis> í¨í´ë¤"
+"ì ê²°í©ìì¼ë¼. ë¹ì ì ì¬ì§ì´ <literal>UserType</literal>ì íµí´ Hibernateì "
+"ì°ê´ë, ììì
ì¼ë¡ ì½ë©ë JDBCë¡ì ëªëª í´ëì¤ë¤ì ììí ìí¬ ìë ìë¤. "
+"(ì´ ì¶©ê³ ë \"충ë¶í í°\" ì´í리ì¼ì´ì
ë¤ì ëí ê²ì´ë¤; ê·¸ê²ì 5ê°ì í
ì´ë¸ë¤"
+"ì ê°ì§ ì´í리ì¼ì´ì
ì ëí´ìë ì ì íì§ ìë¤!)"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr "ì ì¢
ì ì°ê´ 매íì ì¬ì©íì§ ë§ë¼."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ì¤ì ì many-to-many ì°ê´ë¤ì ëí ì¢ì ì°ììë¤ì ë물ë¤. ëë¶ë¶ì ìê° ëì "
+"ë¹ì ì \"ì°ê²° í
ì´ë¸\" ë´ì ì ì¥ë ì¶ê°ì ì¸ ì 보를 íìë¡ íë¤. ì´ ê²½ì°ì, 매"
+"ê°íë ì°ê²° í´ëì¤ì ëí´ ë ê°ì one-to-many ì°ê´ë¤ì ì¬ì©íë ê²ì´ í¨ì¬ ë "
+"ì¢ë¤. ì¬ì¤ ì°ë¦¬ë ëë¶ë¶ì ì°ê´ë¤ì´ one-to-manyì many-to-oneì´ë¼ê³ ìê°í"
+"ë©°, ë¹ì ì ë¤ë¥¸ ì°ê´ ì¤íì¼ì ì¬ì©í ë 주ìí´ì¼ íê³ ê·¸ê²ì´ ì§ì íìì ì¸ì§"
+"를 ë¹ì ì¤ì¤ë¡ ì§ë¬¸íë¼."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr "ìë°©í¥ ì°ê´ë¤ì ì í¸íë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Unidirectional associations are more difficult to query. In a large "
+"application, almost all associations must be navigable in both directions in "
+"queries."
+msgstr ""
+"ë¨ë°©í¥ ì°ê´ë¤ì ì§ìíê¸°ê° ë ì´ë µë¤. ë§ì ì´í리ì¼ì´ì
ìì, ê±°ì 모ë ì°ê´ë¤"
+"ì ì§ìë¤ ë´ìì ì ë°©í¥ì¼ë¡ ë¤ë¹ê²ì´í¸ ê°ë¥í´ì¼ íë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/bibliography.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/bibliography.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/bibliography.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+# Language ko-KR translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2009-07-14 19:55+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/collection_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/collection_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/collection_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1195 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Collection mapping"
+msgstr "ì½ë ì
매íë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr "ìì ì½ë ì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate requires that persistent collection-valued fields be declared as "
+"an interface type. For example:"
+msgstr ""
+"ì를 ë¤ì´ Hibernateë ìì ì½ë ì
-ê°ì ê°ì§ íëë¤ì´ ì¸í°íì´ì¤ íì
ì¼ë¡ì ì "
+"ì¸ë ê²ì íìë¡ íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The actual interface might be <literal>java.util.Set</literal>, "
+"<literal>java.util.Collection</literal>, <literal>java.util.List</literal>, "
+"<literal>java.util.Map</literal>, <literal>java.util.SortedSet</literal>, "
+"<literal>java.util.SortedMap</literal> or anything you like (\"anything you "
+"like\" means you will have to write an implementation of <literal>org."
+"hibernate.usertype.UserCollectionType</literal>.)"
+msgstr ""
+"ì¤ì ì¸í°íì´ì¤ë <literal>java.util.Set</literal>, <literal>java.util."
+"Collection</literal>, <literal>java.util.List</literal>, <literal>java.util."
+"Map</literal>, <literal>java.util.SortedSet</literal>, <literal>java.util."
+"SortedMap</literal> ëë ë¹ì ì´ ì¢ìíë ì´ë¤ ê²ì¼ ì ìë¤!(ì¬ê¸°ì \"ë¹ì ì´ "
+"ì¢ìíë ì´ë¤ ê²\"ì´ë ë¹ì ì´ <literal>org.hibernate.usertype."
+"UserCollectionType</literal>ì ëí 구íì ìì±í´ì¼ í¨ì ì미íë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Notice how the instance variable was initialized with an instance of "
+"<literal>HashSet</literal>. This is the best way to initialize collection "
+"valued properties of newly instantiated (non-persistent) instances. When you "
+"make the instance persistent, by calling <literal>persist()</literal> for "
+"example, Hibernate will actually replace the <literal>HashSet</literal> with "
+"an instance of Hibernate's own implementation of <literal>Set</literal>. Be "
+"aware of the following errors:"
+msgstr ""
+"ì°ë¦¬ê° <literal>HashSet</literal>ì ì¸ì¤í´ì¤ë¥¼ ê°ì§ ì¸ì¤í´ì¤ ë³ì를 ì´ê¸°í ì"
+"ì¼°ë ë°©ë²ì 주목íë¼. ì´ê²ì ìë¡ì´ ì´ê¸°í ë(ë¹-ìì) ì¸ì¤í´ì¤ë¤ì ê°ì§ ì½ë "
+"ì
ê° íë¡í¼í°ë¤ì ì´ê¸°í ìí¤ë ìµì ì ë°©ë²ì´ë¤. ë¹ì ì´ -ì를 ë¤ì´ "
+"<literal>persist()</literal>를 í¸ì¶íì¬- ì¸ì¤í´ì¤ë¥¼ ììí ìí¬ ë Hibernate"
+"ë ì¤ì ë¡ <literal>HashSet</literal>ì <literal>Set</literal>ì ëí "
+"Hibernate ìì ì 구íì ì¸ì¤í´ì¤ë¡ ëì²´ìí¬ ê²ì´ë¤. ë¤ìê³¼ ê°ì ì¤ë¥ë¤ì ê´ì°°"
+"íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The persistent collections injected by Hibernate behave like "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> or <literal>ArrayList</literal>, "
+"depending on the interface type."
+msgstr ""
+"Hibernateì ìí´ ëì
ë ìì ì½ë ì
ë¤ì ì¸í°íì´ì¤ íì
ì ë°ë¼ "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> ëë <literal>ArrayList</literal>ì ê°"
+"ì´ íìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Collections instances have the usual behavior of value types. They are "
+"automatically persisted when referenced by a persistent object and are "
+"automatically deleted when unreferenced. If a collection is passed from one "
+"persistent object to another, its elements might be moved from one table to "
+"another. Two entities cannot share a reference to the same collection "
+"instance. Due to the underlying relational model, collection-valued "
+"properties do not support null value semantics. Hibernate does not "
+"distinguish between a null collection reference and an empty collection."
+msgstr ""
+"ì½ë ì
ì¸ì¤í´ì¤ë¤ì value íì
ë¤ì ê°ì§ íµìì í¹ì§ì ê°ëë¤. ê·¸ê²ë¤ì ìì "
+"ê°ì²´ì ìí´ ì°¸ì¡°ë ë ìëì ì¼ë¡ ììí ëê³ ì°¸ì¡° í´ì ë ë ìëì ì¼ë¡ ìì ë"
+"ë¤. ë§ì¼ íëì ì½ë ì
ì´ íëì ìì ê°ì²´ë¡ë¶í° ë ë¤ë¥¸ ìì ê°ì²´ë¡ ì ë¬ë "
+"ë, ê·¸ê²ì ììë¤ì íëì í
ì´ë¸ë¡ë¶í° ë¤ë¥¸ í
ì´ë¸ë¡ ì´ëë ì ìë¤. ë ê°"
+"ì ìí°í°ë¤ì ëì¼í ì½ë ì
ì¸ì¤í´ì¤ì ëí 참조를 ê³µì íì§ ìëë¤. 기본 ê´ê³"
+"í 모í ë문ì ì½ë ì
ê° íë¡í¼í°ë¤ì null ê° ì미ë¤ì ì§ìíì§ ìëë¤; "
+"Hibernateë null ì½ë ì
참조ì 공백ì ì½ë ì
ì¬ì´ë¥¼ êµ¬ë³ ì§ì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use persistent collections the same way you use ordinary Java collections. "
+"However, please ensure you understand the semantics of bidirectional "
+"associations (these are discussed later)."
+msgstr ""
+"ë¹ì ì ì´ê²ì ì´ë¤ ê²ì ëí´ ë무 ë§ì´ ê±±ì íì§ ììë ë ê²ì´ë¤. ë¹ì ì´ íµì"
+"ì ìë° ì½ë ì
ë¤ì ì¬ì©íë ê²ê³¼ ëì¼í ë°©ë²ì¼ë¡ ìì ì½ë ì
ë¤ì ì¬ì©íë¼. ë¨"
+"ì§ ë¹ì ì´ ìë°©í¥ ì°ê´ê´ê³ë¤ì ëí ì미를 íì¤í ì´í´íëë¡ íë¼(ëì¤ì ë
¼ì"
+"ë¨)."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr "ì½ë ì
매íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are quite a range of mappings that can be generated for collections "
+"that cover many common relational models. We suggest you experiment with the "
+"schema generation tool so that you understand how various mapping "
+"declarations translate to database tables."
+msgstr ""
+"ë§ì ê³µíµë ê´ê³í 모íë¤ì ë¤ë£¨ë, ì½ë ì
ë¤ì ëí´ ìì±ë ì ìë 매íë¤ì "
+"ììì´ ê½¤ ì¡´ì¬íë¤. ì¬ë¬ê°ì§ 매í ì ì¸ë¤ì´ ë°ì´í°ë² ì´ì¤ í
ì´ë¸ë¤ë¡ ë³íëë "
+"ë°©ë²ì ë¹ì ì´ ëë¼ë ¤ë©´ ì¤í¤ë§ ìì± ëêµ¬ë¡ ì¤íí ê²ì ì°ë¦¬ë ì ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The Hibernate mapping element used for mapping a collection depends upon the "
+"type of interface. For example, a <literal><set></literal> element is "
+"used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"ì½ë ì
ì 매ííëë° ì¬ì©ëë Hiberante 매í ììë ì¸í°íì´ì¤ì íì
ì ìì¡´í"
+"ë¤. ì를 ë¤ì´<literal><set></literal> ììë <literal>Set</literal> í"
+"ì
ì 매í íë¡í¼í°ë¤ì ì¬ì©ëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Apart from <literal><set></literal>, there is also <literal><"
+"list></literal>, <literal><map></literal>, <literal><bag></"
+"literal>, <literal><array></literal> and <literal><primitive-"
+"array></literal> mapping elements. The <literal><map></literal> "
+"element is representative:"
+msgstr ""
+"<literal><set></literal>ê³¼ë ë³ëë¡, ëí <literal><list></"
+"literal>, <literal><map></literal>, <literal><bag></literal>, "
+"<literal><array></literal>, ê·¸ë¦¬ê³ <literal><map></literal> 매í "
+"ììë¤ì´ ì¡´ì¬íë¤. <literal><map></literal> ììê° ëíì ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr "<literal>name</literal> ì½ë ì
íë¡í¼í° ì´ë¦"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>table</literal> (optional - defaults to property name): the name of "
+"the collection table. It is not used for one-to-many associations."
+msgstr ""
+"<literal>table</literal> (ìµì
- ëí´í¸ë íë¡í¼í° ì´ë¦) ì½ë ì
í
ì´ë¸ì ì´ë¦"
+"(one-to-many ì°ê´ê´ê³ë¤ì ëí´ìë ì¬ì©ëì§ ìì)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): the name of a table schema to override "
+"the schema declared on the root element"
+msgstr ""
+"<literal>schema</literal> (ìµì
) ë£¨í¸ ìì ìì ì ì¸ë ì¤í¤ë§ë¥¼ ì¤ë²ë¼ì´ë ì"
+"í¤ë í
ì´ë¸ ì¤í¤ë§ì ì´ë¦"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>lazy</literal> (optional - defaults to <literal>true</literal>): "
+"disables lazy fetching and specifies that the association is always eagerly "
+"fetched. It can also be used to enable \"extra-lazy\" fetching where most "
+"operations do not initialize the collection. This is suitable for large "
+"collections."
+msgstr ""
+"<literal>lazy</literal> (ìµì
- ëí´í¸ë <literal>true</literal>)ë lazy íì¹"
+"ì ì¬ì© ë¶ê°ë¥íëë¡ íê³ ê·¸ ì°ê´ì´ íì eagerly íì¹ë¨ì ì§ì íëë° , ëë "
+"ëë¶ë¶ì ì°ì°ë¤ì´ ì½ë ì
ì ì´ê¸°íìí¤ì§ ìë ê³³ìì \"extra-lazy\" íì¹ì ì´"
+"ì© ê°ë¥íëë¡ íëë°(ë§¤ì° í° ì½ë ì
ë¤ì ì ë¹í¨) ì¬ì©ë ì ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>inverse</literal> (optional - defaults to <literal>false</"
+"literal>): marks this collection as the \"inverse\" end of a bidirectional "
+"association."
+msgstr ""
+"<literal>inverse</literal> (ìµì
- ëí´í¸ë <literal>false</literal>) ì´ ì½ë "
+"ì
ì ìë°©í¥ ì°ê´ê´ê³ì \"inverse\" ë(end)ì¼ë¡ íìíë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional - defaults to <literal>none</literal>): "
+"enables operations to cascade to child entities."
+msgstr ""
+"<literal>cascade</literal> (ìµì
- ëí´í¸ë <literal>none</literal>) ì¤í¼ë ì´"
+"ì
ë¤ì´ ìì ìí°í°ë¤ì ëí´ ì¼ì¤ì¼ì´ëíë ê²ì ì´ì© ê°ë¥íê² íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>sort</literal> (optional): specifies a sorted collection with "
+"<literal>natural</literal> sort order or a given comparator class."
+msgstr ""
+"<literal>sort</literal> (ìµì
) <literal>natural</literal> ì ë ¬ ììë¡ ì ë ¬ë"
+"(sorted) ì½ë ì
ëë 주ì´ì§ comparator í´ëì¤ë¥¼ ì§ì íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>order-by</literal> (optional, JDK1.4 only): specifies a table "
+"column or columns that define the iteration order of the <literal>Map</"
+"literal>, <literal>Set</literal> or bag, together with an optional "
+"<literal>asc</literal> or <literal>desc</literal>."
+msgstr ""
+"<literal>order-by</literal> (ìµì
, JDK1.4ììë§) <literal>asc</literal> ëë "
+"<literal>desc</literal> ìµì
ê³¼ í¨ê» <literal>Map</literal>, <literal>Set</"
+"literal> ëë bagì ë°ë³µ ìì를 ì ìíë í
ì´ë¸ 컬ë¼(ëë 컬ë¼ë¤)ì ì§ì íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>where</literal> (optional): specifies an arbitrary SQL "
+"<literal>WHERE</literal> condition that is used when retrieving or removing "
+"the collection. This is useful if the collection needs to contain only a "
+"subset of the available data."
+msgstr ""
+"<literal>where</literal> (ìµì
) ì½ë ì
ì ê²ìíê±°ë ì ê±°í ë ì¬ì©ë ììì "
+"ì¸ SQL <literal>WHERE</literal> ì¡°ê±´ì ì§ì íë¤ (ì½ë ì
ì´ ì¤ì§ ì´ì© ê°ë¥í ë°"
+"ì´í°ì ë¶ë¶ì§í© ë§ì í¬í¨í ê²½ì°ì ì ì©íë¤)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>fetch</literal> (optional, defaults to <literal>select</literal>): "
+"chooses between outer-join fetching, fetching by sequential select, and "
+"fetching by sequential subselect."
+msgstr ""
+"<literal>fetch</literal> (ìµì
, ëí´í¸ë <literal>select</literal>) outer-"
+"join íì¹, sequential select íì¹, ê·¸ë¦¬ê³ sequential subselect íì¹ ì¬ì´ìì "
+"ì ííë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>batch-size</literal> (optional, defaults to <literal>1</literal>): "
+"specifies a \"batch size\" for lazily fetching instances of this collection."
+msgstr ""
+"<literal>batch-size</literal> (ìµì
, ëí´í¸ë <literal>1</literal>) ì´ ì½ë ì
"
+"ì lazily fetching ì¸ì¤í´ì¤ì ëí´ \"ë°°ì¹ ì¬ì´ì¦\"를 ì§ì íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>access</literal> (optional - defaults to <literal>property</"
+"literal>): the strategy Hibernate uses for accessing the collection property "
+"value."
+msgstr ""
+"<literal>access</literal> (ìµì
- ëí´í¸ë <literal>property</literal>): "
+"Hibernateê° ì½ë ì
íë¡í¼í° ê°ì ì ê·¼íëë° ì¬ì©í ë°©ë."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>optimistic-lock</literal> (optional - defaults to <literal>true</"
+"literal>): specifies that changes to the state of the collection results in "
+"increments of the owning entity's version. For one-to-many associations you "
+"may want to disable this setting."
+msgstr ""
+"<literal>optimistic-lock</literal> (ìµì
- ëí´í¸ë <literal>true</"
+"literal>): ì½ë ì
ì ìíì ëí ë³ê²½ë¤ì´ ìì íë ìí°í°ì ë²ì ì ì¦ê°ë¡ ê·ê²°"
+"ë ê²ì¸ì§ë¥¼ ì§ì íë¤. (one to many ì°ê´ë¤ì ëí´, ì´ ì¤ì ì ì¬ì© ë¶ê°ë¥íê² "
+"íë ê²ì´ ì¢
ì¢
í©ë¹íë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>mutable</literal> (optional - defaults to <literal>true</literal>): "
+"a value of <literal>false</literal> specifies that the elements of the "
+"collection never change. This allows for minor performance optimization in "
+"some cases."
+msgstr ""
+"<literal>mutable</literal> (ìµì
- ëí´í¸ë <literal>true</literal>): "
+"<literal>false</literal> ê°ì ì½ë ì
ì ììë¤ì´ ê²°ì½ ë³ê²½ëì§ ììì ì§ì í"
+"ë¤. (ëªëª ê²½ì°ë¤ìì ë§ì´ë í¼í¬ë¨¼ì¤ ìµì í)."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr "ì½ë ì
foreign í¤ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Collection instances are distinguished in the database by the foreign key of "
+"the entity that owns the collection. This foreign key is referred to as the "
+"<emphasis>collection key column</emphasis>, or columns, of the collection "
+"table. The collection key column is mapped by the <literal><key></"
+"literal> element."
+msgstr ""
+"ì½ë ì
ì¸ì¤í´ì¤ë¤ì ê·¸ ì½ë ì
ì ìì íë ìí°í°ì foreign í¤ì ìí´ ë°ì´í°ë² "
+"ì´ì¤ ë´ìì 구ë³ì§ìì§ë¤. ì´ foreign í¤ë ê·¸ ì½ë ì
í
ì´ë¸ì <emphasis>ì½ë "
+"ì
í¤ ì»¬ë¼</emphasis> (ëë 컬ë¼ë¤)ë¡ì 참조ëë¤. ê·¸ ì½ë ì
í¤ ì»¬ë¼ì "
+"<literal><key></literal> ììì ìí´ ë§¤íëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There can be a nullability constraint on the foreign key column. For most "
+"collections, this is implied. For unidirectional one-to-many associations, "
+"the foreign key column is nullable by default, so you may need to specify "
+"<literal>not-null=\"true\"</literal>."
+msgstr ""
+"foreign í¤ ì»¬ë¼ì ëí null íì© ê°ë¥ 컨ì¤í¸ë ì¸í¸ê° ì¡´ì¬í ì ìë¤. ëë¶ë¶"
+"ì ì½ë ì
ë¤ì ëí´, ì´ê²ì´ ë¹ì°í ìë°ëë¤. ë¨ë°©í¥ one to many ì°ê´ë¤ì ê²½"
+"ì°, foreign í¤ë ëí´í¸ë¡ null íì© ê°ë¥íì¬ì, ë¹ì ì <literal>not-null="
+"\"true\"</literal>를 ì§ì í íìê° ìì ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgstr ""
+"foreign í¤ ì»¨ì¤í¸ë ì¸í¸ë <literal>ON DELETE CASCADE</literal>를 ì¬ì©í ìë "
+"ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See the previous chapter for a full definition of the <literal><key></"
+"literal> element."
+msgstr "<literal><key></literal> ììì ëí ì ì²´ ì ìë ì ì¥ì ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr "ì½ë ì
ììë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Collections can contain almost any other Hibernate type, including: basic "
+"types, custom types, components and references to other entities. This is an "
+"important distinction. An object in a collection might be handled with "
+"\"value\" semantics (its life cycle fully depends on the collection owner), "
+"or it might be a reference to another entity with its own life cycle. In the "
+"latter case, only the \"link\" between the two objects is considered to be a "
+"state held by the collection."
+msgstr ""
+"ì½ë ì
ë¤ì 모ë 기본 íì
ë¤, ì»´í¬ëí¸ë¤, ê·¸ë¦¬ê³ ë¬¼ë¡ ë¤ë¥¸ ìí°í°ë¤ì ëí ì°¸"
+"ì¡°ë¤ì í¬í¨íì¬ ê±°ì ëë¶ë¶ì ì´ë¤ ë¤ë¥¸ Hibernate íì
ì í¬í¨í ìë ìë¤. ì´"
+"ê²ì ì¤ìí 구ë¶ì´ë¤: ì½ë ì
ë´ì ìë ê°ì²´ë \"ê°(value)\" ìë¯¸ë¡ ì²ë¦¬ë ì"
+"ë ìê±°ë(ê·¸ê²ì ìëª
주기ë ì½ë ì
ìì ìì ìì¡´íë¤) ê·¸ê²ì ê·¸ê² ìì ì ìëª
"
+"주기를 ê°ì§ ë ë¤ë¥¸ ìí°í°ì ëí ì°¸ì¡°ì¼ ì ìë¤. íìì ê²½ì°, ë ê°ì ê°ì²´"
+"ë¤ ì¬ì´ì \"ë§í¬\" ë§ì´ ê·¸ ì½ë ì
ì ìí´ ìì ë ìíë¡ ê°ì£¼ëë¤."
+
+#. 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><element></"
+"literal> or <literal><composite-element></literal>, or in the case of "
+"entity references, with <literal><one-to-many></literal> or "
+"<literal><many-to-many></literal>. The first two map elements with "
+"value semantics, the next two are used to map entity associations."
+msgstr ""
+"í¬í¨ë íì
ì ì½ë ì
ìì íì
ì¼ë¡ì ë¶ë ¤ì§ë¤. ì½ë ì
ììë¤ì <literal><"
+"element></literal> ëë <literal><composite-element></literal>ì ì"
+"í´ ë§¤íëê±°ë, ìí°í° 참조ë¤ì ê²½ì°ì <literal><one-to-many></literal> "
+"ëë <literal><many-to-many></literal>ë¡ì 매íëë¤. ìì ë ê°ë "
+"value ì미를 ê°ì§ ììë¤ì 매íìí¤ê³ , ë¤ì ëê°ë ìí°í° ì°ê´ë¤ì 매ííë"
+"ë° ì¬ì©ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr "ì¸ë±ì± ë ì½ë ì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All collection mappings, except those with set and bag semantics, need an "
+"<emphasis>index column</emphasis> in the collection table. An index column "
+"is a column that maps to an array index, or <literal>List</literal> index, "
+"or <literal>Map</literal> key. The index of a <literal>Map</literal> may be "
+"of any basic type, mapped with <literal><map-key></literal>. It can be "
+"an entity reference mapped with <literal><map-key-many-to-many></"
+"literal>, or it can be a composite type mapped with <literal><composite-"
+"map-key></literal>. The index of an array or list is always of type "
+"<literal>integer</literal> and is mapped using the <literal><list-"
+"index></literal> element. The mapped column contains sequential integers "
+"that are numbered from zero by default."
+msgstr ""
+"set ê³¼ bag ì미ë¤ì ê°ì§ ê²ë¤ì ì ì¸íë©´, 모ë ì½ë ì
매íë¤ì ì½ë ì
í
ì´ë¸ "
+"ë´ì <emphasis>ì¸ë±ì¤ 컬ë¼</emphasis>- ë°°ì´ ì¸ë±ì¤, ëë <literal>List</"
+"literal> ì¸ë±ì¤ ëë <literal>Map</literal> í¤ë¡ 매íëë 컬ë¼-ì íìë¡ í"
+"ë¤. <literal>Map</literal>ì ì¸ë±ì¤ë <literal><map-key></literal>ë¡ ë§¤"
+"íë, ì´ë¤ 기본 íì
ì¼ ì ìê³ , ê·¸ê²ì <literal><map-key-many-to-many>"
+"</literal>ë¡ ë§¤íë ìí°í° ì°¸ì¡°ì¼ ì ìê±°ë, ê·¸ê²ì <literal><composite-"
+"map-key></literal>ë¡ ë§¤íë composite íì
ì¼ ì ìë¤. ë°°ì´ ëë 리ì¤í¸ì "
+"ì¸ë±ì¤ë íì <literal>integer</literal> íì
ì´ê³ <literal><list-index>"
+"</literal> ìì를 ì¬ì©íì¬ ë§¤íëë¤. 매íë 컬ë¼ì ìì°¨ì ì¸ ì ìë¤ì í¬í¨íë¤"
+"(ëí´í¸ë¡ 0ìì ììíë ë²í¸ê° ë¶ì¬ì§)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column_name</literal> (required): the name of the column holding "
+"the collection index values."
+msgstr ""
+"<literal>column_name</literal> (íì): ì½ë ì
ì¸ë±ì¤ ê°ë¤ì ë³´ê´íë 컬ë¼ì "
+"ì´ë¦."
+
+#. Tag: para
+#, 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><bag></emphasis>. A bag does not retain its order "
+"when it is retrieved from the database, but it can be optionally sorted or "
+"ordered."
+msgstr ""
+"ë§ì¼ ë¹ì ì í
ì´ë¸ì´ ì¸ë±ì¤ 컬ë¼ì ê°ì§ ìê³ , ë¹ì ì´ ì¬ì í íë¡í¼í° íì
ì¼ë¡"
+"ì <literal>List</literal>를 ì¬ì©íê³ ì ìí ê²½ì°, ë¹ì ì ê·¸ íë¡í¼í°ë¥¼ "
+"Hibernate <emphasis><bag></emphasis>ì¼ë¡ì 매íí´ì¼ íë¤. bagì´ ë°ì´í°"
+"ë² ì´ì¤ë¡ë¶í° ê²ìë ë ê·¸ê²ì ê·¸ê²ì ìì를 ë³´ì íì§ ìì§ë§, ê·¸ê²ì ì íì ì¼"
+"ë¡ ì ë ¬(sorting)ëê±°ë orderingë ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of values and many-to-many associations"
+msgstr "ê°ë¤ì ê°ì§ ì½ë ì
ë¤ê³¼ many-to-many ì°ê´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Any collection of values or many-to-many associations requires a dedicated "
+"<emphasis>collection table</emphasis> with a foreign key column or columns, "
+"<emphasis>collection element column</emphasis> or columns, and possibly an "
+"index column or columns."
+msgstr ""
+"ì´ë¤ ê°ë¤ì ê°ì§ ì½ë ì
ëë many-to-many ì°ê´ì foreign í¤ ì»¬ë¼ì´ë 컬ë¼ë¤, "
+"<emphasis>ì½ë ì
ìì 컬ë¼</emphasis>ì´ë 컬ë¼ë¤ ê·¸ë¦¬ê³ ê°ë¥íë©´ ì¸ë±ì¤ 컬ë¼"
+"ë¤ì´ë 컬ë¼ë¤ì ê°ì§ ì ì© <emphasis>ì½ë ì
í
ì´ë¸</emphasis>ì íìë¡ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For a collection of values use the <literal><element></literal> tag. "
+"For example:"
+msgstr ""
+"ê°ë¤ì ê°ì§ ì½ë ì
ì ê²½ì°, ì°ë¦¬ë <literal><element></literal> í그를 "
+"ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the column holding the "
+"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."
+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><many-to-many></literal> element."
+msgstr ""
+"<emphasis>many-to-many association</emphasis> ì°ê´ì <literal><many-to-"
+"many></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><many-to-many></"
+"literal> nested element."
+msgstr ""
+"<literal>fetch</literal> (ìµì
- ëí´í¸ë <literal>join</literal>): ì´ ì°ê´"
+"ì ëí´ outer-join íì¹ ëë sequential select íì¹ì ì´ì© ê°ë¥íê² ë§ë ë¤. "
+"ì´ê²ì í¹ë³í ê²½ì°ì´ë¤; ìí°í° ê·¸ë¦¬ê³ ë¤ë¥¸ ìí°í°ë¤ê³¼ ê·¸ê²ì many-to-many ê´"
+"ê³ë¤ì ëí (íëì <literal>SELECT</literal> ë´ìì) ì ì²´ eager íì¹ì ê²½"
+"ì°, ë¹ì ì ì½ë ì
ê·¸ ìì²´ì ëí´ì ë¿ë§ ìëë¼ ë´í¬ë ìì <literal><many-"
+"to-many></literal> ìì ì´ ìì±ì ëí´ <literal>join</literal> íì¹ì ì´"
+"ì© ê°ë¥íê² í ê²ì´ë¤."
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "A set of strings:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A bag containing integers with an iteration order determined by the "
+"<literal>order-by</literal> attribute:"
+msgstr ""
+"(<literal>order-by</literal> ìì±ì ìí´ ê²°ì ëë ë°ë³µ ìì를 ê°ì§) ì ìë¤ì "
+"í¬í¨íë bag :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "An array of entities, in this case, a many-to-many association:"
+msgstr "ìí°í°ë¤ì ê°ì§ ë°°ì´ - ì´ ê²½ì°ì, many to many ì°ê´ :"
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "ë ì§ë¤ì ëí 문ìì´ ì¸ë±ì¤ë¤ì ê°ì§ map :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr "ì»´í¬ëí¸ë¤ì 리ì¤í¸(ë¤ì ì¥ìì ë
¼ìë¨):"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "One-to-many ì°ê´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>one-to-many association</emphasis> links the tables of two "
+"classes via a foreign key with no intervening collection table. This mapping "
+"loses certain semantics of normal Java collections:"
+msgstr ""
+"<emphasis>one to many ì°ê´</emphasis>ì ì¤ì¬íë ì½ë ì
í
ì´ë¸ ìì´ foreign "
+"í¤ë¥¼ íµí´ ë ê°ì í´ëì¤ë¤ì í
ì´ë¸ë¤ì ì°ê²°ìí¨ë¤. ì´ ë§¤íì íµìì ìë° ì½"
+"ë ì
ë¤ì ì´ë¤ ì미를 ìì¤íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of the contained entity class cannot belong to more than one "
+"instance of the collection."
+msgstr ""
+"í¬í¨ë ìí°í° í´ëì¤ì ì¸ì¤í´ì¤ë ê·¸ ì½ë ì
ì íë ì´ìì ì¸ì¤í´ì¤ì ìíì§ "
+"ìì ì ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of the contained entity class cannot appear at more than one "
+"value of the collection index."
+msgstr ""
+"í¬í¨ë ìí°í° í´ëì¤ì ì¸ì¤í´ì¤ë ì½ë ì
ì¸ë±ì¤ì íë ì´ìì ê°ìì ëíë"
+"ì§ ìì ì ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An association from <literal>Product</literal> to <literal>Part</literal> "
+"requires the existence of a foreign key column and possibly an index column "
+"to the <literal>Part</literal> table. A <literal><one-to-many></"
+"literal> tag indicates that this is a one-to-many association."
+msgstr ""
+"<literal>Product</literal>ë¡ë¶í° <literal>Part</literal>ë¡ì ì°ê´ì foreign "
+"í¤ ì»¬ë¼ê³¼ <literal>Part</literal> í
ì´ë¸ì ëí ì¸ë±ì¤ 컬ë¼ì ì¡´ì¬ë¥¼ íìë¡ "
+"íë¤. <literal><one-to-many></literal> íê·¸ë ì´ê²ì´ one to many ì°ê´ì"
+"ì ëíë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>not-found</literal> (optional - defaults to <literal>exception</"
+"literal>): specifies how cached identifiers that reference missing rows will "
+"be handled. <literal>ignore</literal> will treat a missing row as a null "
+"association."
+msgstr ""
+"<literal>not-found</literal> (ìµì
- ëí´í¸ë <literal>exception</literal>): "
+"ëë½ë íë¤ì 참조íë ìºìë ìë³ìë¤ì´ ì´ë»ê² ì²ë¦¬ë ê²ì¸ì§ë¥¼ ì§ì íë¤: "
+"<literal>ignore</literal>ë ëë½ë í íì í ê°ì ì°ê´ì¼ë¡ ë¤ë£° ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><one-to-many></literal> element does not need to declare "
+"any columns. Nor is it necessary to specify the <literal>table</literal> "
+"name anywhere."
+msgstr ""
+"<literal><one-to-many></literal> ììë ì´ë¤ 컬ë¼ë¤ì ì ì¸íëë° íìí"
+"ì§ ììì 주목íë¼. ì´ëê°ì <literal>table</literal> ì´ë¦ì ì§ì íë ê²ë í"
+"ìì ì´ì§ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the foreign key column of a <literal><one-to-many></literal> "
+"association is declared <literal>NOT NULL</literal>, you must declare the "
+"<literal><key></literal> mapping <literal>not-null=\"true\"</literal> "
+"or <emphasis>use a bidirectional association</emphasis> with the collection "
+"mapping marked <literal>inverse=\"true\"</literal>. See the discussion of "
+"bidirectional associations later in this chapter for more information."
+msgstr ""
+"<emphasis>ë§¤ì° ì¤ìí ë
¸í¸</emphasis>: ë§ì¼ <literal><one-to-many></"
+"literal> ì°ê´ì foreign í¤ ì»¬ë¼ì´ <literal>NOT NULL</literal>ë¡ ì ì¸ë ê²½ì°, "
+"ë¹ì ì <literal><key></literal> 매íì <literal>not-null=\"true\"</"
+"literal>ë¡ ì ì¸í´ì¼ íê±°ë <literal>inverse=\"true\"</literal>ë¡ ë§í¬ë ì½ë "
+"ì
매íì ê°ì§ <emphasis>ìë°©í¥ ì°ê´ì ì¬ì©í´ì¼ íë¤</emphasis>. ìë°©í¥ ì°ê´"
+"ë¤ì ëí ë
¼ìë ì´ ì¥ì ë·ë¶ë¶ì ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following example shows a map of <literal>Part</literal> entities by "
+"name, where <literal>partName</literal> is a persistent property of "
+"<literal>Part</literal>. Notice the use of a formula-based index:"
+msgstr ""
+"ì´ ìì ë nameì¼ë¡ <literal>Part</literal> ìí°í°ë¤ì ê°ì§ mapì ë³´ì¬ì¤ë¤(ì¬"
+"기ì <literal>partName</literal>ì <literal>Part</literal>ì ìì íë¡í¼í°ì´"
+"ë¤). formula-ê¸°ë° indexì ì¬ì©ì 주목íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr "ê°ì ë ì½ë ì
매íë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr "Sorted ì½ë ì
ë¤"
+
+#. 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>를 구ííë ì½ë ì
ë¤ì ì§ìíë¤. ë¹ì ì 매í íì¼ ìì í"
+"ëì comparator를 ì§ì í´ì¼ íë¤:"
+
+#. 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>를 "
+"구ííë í´ëì¤ì ì´ë¦ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sorted collections actually behave like <literal>java.util.TreeSet</literal> "
+"or <literal>java.util.TreeMap</literal>."
+msgstr ""
+"Sorted ì½ë ì
ë¤ì <literal>java.util.TreeSet</literal> ëë <literal>java."
+"util.TreeMap</literal>ì²ë¼ íëíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want the database itself to order the collection elements, use the "
+"<literal>order-by</literal> attribute of <literal>set</literal>, "
+"<literal>bag</literal> or <literal>map</literal> mappings. This solution is "
+"only available under JDK 1.4 or higher and is implemented using "
+"<literal>LinkedHashSet</literal> or <literal>LinkedHashMap</literal>. This "
+"performs the ordering in the SQL query and not in the memory."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë°ì´í°ë² ì´ì¤ ê·¸ ìì²´ê° ì½ë ì
ììë¤ì ììì§ì°ëë¡(order)ìí ê²½"
+"ì° <literal>set</literal>, <literal>bag</literal> ëë<literal>map</literal> "
+"매íë¤ì ëí´ <literal>order-by</literal> ìì±ì ì¬ì©íë¼. ì´ í´ê²°ì±
ì JDK "
+"1.4 ì´ìì ë²ì ììë§ ì´ì© ê°ë¥íë¤(ê·¸ê²ì <literal>LinkedHashSet</literal> "
+"ëë <literal>LinkedHashMap</literal>ì ì¬ì©íì¬ êµ¬íëë¤). ì´ê²ì ë©ëª¨ë¦¬ ë´"
+"ê° ìë, SQL ì§ì ë´ìì ììì§ì(ordering)ì ìííë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The value of the <literal>order-by</literal> attribute is an SQL ordering, "
+"not an HQL ordering."
+msgstr ""
+"<literal>order-by</literal> ìì±ì ê°ì HQL ììì§ì(ordering)ì´ ìëë¼ SQL "
+"ììì§ì(ordering)ìì ë
¸í¸íë¼!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Associations can even be sorted by arbitrary criteria at runtime using a "
+"collection <literal>filter()</literal>:"
+msgstr ""
+"ì°ê´ë¤ì ì½ë ì
<literal>filter()</literal>를 ì¬ì©íì¬ ì¤í ìì ì´ë¤ ììì "
+"criteria(기ì¤)ì ì¬ì©íì¬ ì ë ¬(sort)ë ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "ìë°©í¥ ì°ê´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <emphasis>bidirectional association</emphasis> allows navigation from both "
+"\"ends\" of the association. Two kinds of bidirectional association are "
+"supported:"
+msgstr ""
+"<emphasis>ìë°©í¥ ì°ê´</emphasis>ì ì°ê´ì ì \"ë(end)ë¤\"ë¡ë¶í° ë¤ë¹ê²ì´ì
"
+"ì íì©íë¤. ë ê°ì§ ì¢
ë¥ì ìë°©í¥ ì°ê´ë¤ì´ ì§ìëë¤: <placeholder-1/>"
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr "one-to-many"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr "í쪽 ëì set ëë bag ê°ì ê°ê³ , ë¤ë¥¸ 쪽 ê¸ì ë¨ì¼ ê°ì ê°ì§ ì°ê´"
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr "many-to-many"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr "ì ëìì set ëë bag ê°ì ê°ì§ ì°ê´"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can specify a bidirectional many-to-many association by mapping two many-"
+"to-many associations to the same database table and declaring one end as "
+"<emphasis>inverse</emphasis>. You cannot select an indexed collection."
+msgstr ""
+"ë¹ì ì ëì¼í ë ê°ì many-to-many ì°ê´ë¤ì ëì¼í ë°ì´í°ë² ì´ì¤ í
ì´ë¸ë¡ ê°ë¨"
+"íê² ë§¤ííê³ í 쪽 ëì <emphasis>inverse</emphasis>(ë¹ì ì ì íì íëì´ì§"
+"ë§, ê·¸ê²ì ì¸ë±ì±ë ì½ë ì
ì¼ ì ìë¤)ë¡ ì ì¸í¨ì¼ë¡ì¨ íëì ìë°©í¥ many-to-"
+"many ì°ê´ì ì§ì í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here is an example of a bidirectional many-to-many association that "
+"illustrates how each category can have many items and each item can be in "
+"many categories:"
+msgstr ""
+"ë¤ìì ìë°©í¥ many-to-many ì°ê´ì ê´í ìì ì´ë¤; ê°ê°ì ì¹´í
ê³ ë¦¬ë ë§ì ìì´"
+"í
ë¤ì ê°ì§ ì ìê³ ê°ê°ì ìì´í
ì ë§ì ì¹´í
ê³ ë¦¬ë¤ ìì ìì ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Changes made only to the inverse end of the association are <emphasis>not</"
+"emphasis> persisted. This means that Hibernate has two representations in "
+"memory for every bidirectional association: one link from A to B and another "
+"link from B to A. This is easier to understand if you think about the Java "
+"object model and how a many-to-many relationship in Javais created:"
+msgstr ""
+"ì°ê´ì inverse ë(end)ì ëí´ìë§ íí´ì§ ë³ê²½ë¤ì ììí ëì§ <emphasis>ìë"
+"ë¤</emphasis>. ì´ê²ì Hibernateê° ëª¨ë ìë°©í¥ ì°ê´ì ëí´ ë©ëª¨ë¦¬ ë´ì ë ê°"
+"ì íìë¤ì ê°ëë¤ë ì ì ì미íë¤: Aë¡ë¶í° Bë¡ì íëì ë§í¬ì Bë¡ë¶í° Aë¡"
+"ì ë ë¤ë¥¸ ë§í¬. ë§ì¼ ë¹ì ì´ ìë° ê°ì²´ 모íì ëí´ ê·¸ë¦¬ê³ ìë°ìì many-to-"
+"many ê´ê³ë¥¼ ìì±ìí¤ë ë°©ë²ì ëí´ ìê°íë©´ ì´ê²ì ì´í´íê¸°ê° ë ì½ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The non-inverse side is used to save the in-memory representation to the "
+"database."
+msgstr "non-inverse 측ì ë©ëª¨ë¦¬ ë´ íìì ë°ì´í°ë² ì´ì¤ë¡ ì ì¥íëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can define a bidirectional one-to-many association by mapping a one-to-"
+"many association to the same table column(s) as a many-to-one association "
+"and declaring the many-valued end <literal>inverse=\"true\"</literal>."
+msgstr ""
+"ë¹ì ì íëì one-to-many ì°ê´ì íëì many-to-one ì°ê´ì¼ë¡ì ëì¼í í
ì´ë¸ "
+"컬ë¼(ë¤)ë¡ ë§¤ííê³ many-ê°ì ê°ì§ ë(end)ì <literal>inverse=\"true\"</"
+"literal>ë¡ ì ì¸í¨ì¼ë¡ì¨ íëì ìë°©í¥ ì°ê´ì ì ìí ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Mapping one end of an association with <literal>inverse=\"true\"</literal> "
+"does not affect the operation of cascades as these are orthogonal concepts."
+msgstr ""
+"ì°ê´ì í쪽 ëì <literal>inverse=\"true\"</literal>ë¡ ë§¤ííë ê²ì cascade"
+"ë¤ì ê°ì§ ì¤í¼ë ì´ì
ì ìí¥ì ì£¼ì§ ìì¼ë©°, ì´ê²ë¤ì orthogonal(ì§êµ) ê°ë
ë¤ì´"
+"ë¤!"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr "ì¸ë±ì±ë ì½ë ì
ë¤ì ê°ì§ ìë°©í¥ ì°ê´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A bidirectional association where one end is represented as a <literal><"
+"list></literal> or <literal><map></literal>, requires special "
+"consideration. If there is a property of the child class that maps to the "
+"index column you can use <literal>inverse=\"true\"</literal> on the "
+"collection mapping:"
+msgstr ""
+"í쪽 ëì´ íëì <literal><list></literal> ëë <literal><map></"
+"literal>ì¼ë¡ì ííëë ìë°©í¥ ì°ê´ì í¹ë³í ê²í 를 íìë¡ íë¤. ë§ì¼ ì¸ë±ì¤ "
+"컬ë¼ì¼ë¡ 매íëë child í´ëì¤ì íë¡í¼í°ê° íë ì¡´ì¬íë¤ë©´ 문ì ê° ìê³ , ì°ë¦¬"
+"ë ì½ë ì
매í ìì <literal>inverse=\"true\"</literal>를 ì¬ì©íì¬ ê³ìí ì "
+"ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If there is no such property on the child class, the association cannot be "
+"considered truly bidirectional. That is, there is information available at "
+"one end of the association that is not available at the other end. In this "
+"case, you cannot map the collection <literal>inverse=\"true\"</literal>. "
+"Instead, you could use the following mapping:"
+msgstr ""
+"ê·¸ë¬ë ë§ì¼ child í´ëì¤ ìì ê·¸ë° íë¡í¼í°ê° ì¡´ì¬íì§ ìì ê²½ì°, ì°ë¦¬ë ê·¸ "
+"ì°ê´ì ì§ì íê² ìë°©í¥ì¼ë¡ ê°ì£¼í ì ìë¤ (ë¤ë¥¸ 쪽 ëìì ì´ì©ê°ë¥íì§ ìì "
+"ê·¸ ì°ê´ì ëìì ì´ì© ê°ë¥í ì ë³´ê° ì¡´ì¬íë¤). ì´ ê²½ì°ì ì°ë¦¬ë ê·¸ ì½ë ì
ì "
+"<literal>inverse=\"true\"</literal>ë¡ ë§¤íìí¬ ì ìë¤. ëì ì ì°ë¦¬ë ë¤ì 매"
+"íì ì¬ì©í ì ìë¤:"
+
+#. Tag: para
+#, 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 ""
+"ì´ ë§¤íìì ê·¸ ì°ê´ì ì½ë ì
ê°ì ê°ì§ ëì´ foreign í¤ì ëí ì
ë°ì´í¸ ì±
ì"
+"ì´ ììì ë
¸í¸íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr "Ternary associations(ì¸ê²¹ ì°ê´ë¤)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are three possible approaches to mapping a ternary association. One "
+"approach is to use a <literal>Map</literal> with an association as its index:"
+msgstr ""
+"ì¸ ê²¹ì ì°ê´ì 매ííë ì¸ ê°ì§ ê°ë¥í ì ê·¼ë²ë¤ì´ ì¡´ì¬íë¤. íëì ì ê·¼ë²ì "
+"ê·¸ê²ì ì¸ë±ì¤ë¡ì ì°ê´ê´ê³ë¥¼ ê°ì§ <literal>Map</literal>ì ì¬ì©íë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, 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
+#, fuzzy, no-c-format
+msgid ""
+"A final alternative is to use composite elements, which will be discussed "
+"later."
+msgstr ""
+"ë§ì§ë§ ëìì ì°ë¦¬ê° ëì¤ì ë
¼ìíê² ë composite ììë¤ì ì¬ì©íë ê²ì´ë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr "<literal><idbag></literal> ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The majority of the many-to-many associations and collections of values "
+"shown previously all map to tables with composite keys, even though it has "
+"been have suggested that entities should have synthetic identifiers "
+"(surrogate keys). A pure association table does not seem to benefit much "
+"from a surrogate key, although a collection of composite values "
+"<emphasis>might</emphasis>. It is for this reason that Hibernate provides a "
+"feature that allows you to map many-to-many associations and collections of "
+"values to a table with a surrogate key."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ composite í¤ë¤ì´ ëì ê²ì´ê³ ìí°í°ë¤ì´ í©ì± ìë³ìë¤(ëì© í¤ë¤, "
+"surrogate keys)ì ê°ì ¸ì¼ íë¤ë ì°ë¦¬ì 견í´ë¥¼ ì ì ì¼ë¡ ìì©í ê²½ì°, ë¹ì ì ì°"
+"ë¦¬ê° ì§ê¸ê¹ì§ ë³´ì¬ì£¼ìë ê°ë¤ì ê°ì§ ì½ë ì
ë¤ê³¼ many to many ì°ê´ë¤ì´ 모ë "
+"composite í¤ë¤ì ê°ì§ í
ì´ë¸ë¤ë¡ 매íëë¤ë ì½ê° ì´ìí ì ì ë°ê²¬í ìë ì"
+"ë¤! ì´ì ì´ ì ì 꽤 ë
¼ìì ì¬ì§ê° ìë¤; ììí ì°ê´ í
ì´ë¸ì (ë¹ë¡ composite "
+"ê°ë¤ì ê°ì§ ì½ë ì
<emphasis>ì¼ ìë</emphasis> ììì§ë¼ë) ëì© í¤ë¡ë¶í° ë§"
+"ì ì´ì ì ì·¨íì§ ìë ê²ì²ë¼ ë³´ì¸ë¤. ê·¸ë¼ìë ë¶êµ¬íê³ Hibernateë ë¹ì ì´ ê°"
+"ë¤ì ê°ì§ ì½ë ì
ë¤ê³¼ many to many ì°ê´ë¤ì ëì© í¤ë¥¼ ê°ì§ í
ì´ë¸ë¡ 매íìí¤"
+"ë ê²ì ë¹ì ìê² íì©í´ì£¼ë í¹ì§ì ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><idbag></literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+"<literal><idbag></literal> ììë bag ì미를 ê°ì§ <literal>List</"
+"literal>(ëë <literal>Collection</literal>)ì 매ííëë¡ ë¹ì ìê² íì©í´ì¤"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An <literal><idbag></literal> has a synthetic id generator, just like "
+"an entity class. A different surrogate key is assigned to each collection "
+"row. Hibernate does not, however, provide any mechanism for discovering the "
+"surrogate key value of a particular row."
+msgstr ""
+"ë¹ì ì´ ë³¼ ì ìë¯ì´, <literal><idbag></literal>ì ë§ì¹ ìí°í° í´ëì¤ì¸"
+"ì synthetic id generator(í©ì± id ìì±ê¸°)를 ê°ëë¤! ë¤ë¥¸ ëì© í¤ë ê°ê°ì ì½"
+"ë ì
íì í ë¹ëë¤. íì§ë§ Hibernateë í¹ì íì ëì© í¤ ê°ì ë°ê²¬íë ë©ì»¤ë"
+"ì¦ì ì ê³µíì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The update performance of an <literal><idbag></literal> supersedes a "
+"regular <literal><bag></literal>. Hibernate can locate individual rows "
+"efficiently and update or delete them individually, similar to a list, map "
+"or set."
+msgstr ""
+"<literal><idbag></literal>ì ì
ë°ì´í¸ í¼í¬ë¨¼ì¤ë ì ê· <literal><"
+"bag></literal> ë³´ë¤ í¨ì¬ ì¢ë¤ë ì ì ë
¸í¸íë¼! Hibernateë ë§ì¹ list, "
+"map, ëë setì¸ì, ê°ë³ íë¤ì í¨ì¨ì ì¼ë¡ ìì¹ì§ì¸ ì ìê³ ê·¸ê²ë¤ì ê°ë³ì ì¼"
+"ë¡ ì
ë°ì´í¸ íê±°ë ìì ìí¬ ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal><idbag></literal> "
+"collection identifiers."
+msgstr ""
+"íì¬ êµ¬íìì, <literal>native</literal> ìë³ì ìì± ë°©ëë <literal><"
+"idbag></literal> ì½ë ì
ìë³ìë¤ì ëí´ ì§ìëì§ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr "ì½ë ì
ìì ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This section covers collection examples."
+msgstr "ì½ë ì
ìì ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following class has a collection of <literal>Child</literal> instances:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If each child has, at most, one parent, the most natural mapping is a one-to-"
+"many association:"
+msgstr ""
+"ë <literal>Child</literal> ì¸ì¤í´ì¤ë¤ì ê°ì§ íëì ì½ë ì
ì ê°ê³ ìë¤. ë§"
+"ì¼ ê°ê°ì ììì´ ìµìí í ê°ì ë¶ëª¨ë¥¼ ê°ì§ ê²½ì°, ëë¶ë¶ì ê³ ì í 매íì one-"
+"to-many ì°ê´ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr "ì´ê²ì ë¤ì í
ì´ë¸ ì ìë¤ë¡ 매íëë¤:"
+
+#. 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 ì°ê´ê´ê³ë¥¼ "
+"ì¬ì©íë¼:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "<literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ë¥¼ 주목íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, if this association must be unidirectional you can declare "
+"the <literal>NOT NULL</literal> constraint on the <literal><key></"
+"literal> mapping:"
+msgstr ""
+"ëìì ì¼ë¡, ë§ì¼ ë¹ì ì´ ì´ ì°ê´ê´ê³ê° ë¨ë°©í¥ì´ì´ì¼ í¨ì ì ëì ì¼ë¡ ìì¤í ê²½"
+"ì°, ë¹ì ì <literal><key></literal> 매í ìì <literal>NOT NULL</"
+"literal> 컨ì¤í¸ë ì¸í¸ë¥¼ ì ì¸í ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"On the other hand, if a child has multiple parents, a many-to-many "
+"association is appropriate:"
+msgstr ""
+"ë°ë©´ì, ë§ì¼ ììì´ ì¬ë¬ ë¶ëª¨ë¤ì ê°ì§ ì ìì ê²½ì°, many-to-many ì°ê´ì´ ì ì "
+"íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+msgstr "í
ì´ë¸ ì ìë¤:"
+
+#. Tag: para
+#, 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
+#, fuzzy, no-c-format
+msgid "Even more complex association mappings are covered in the next chapter."
+msgstr ""
+"ë¹ë¡ ë ë§ì ì ì¢
ì°ê´ 매íë¤ì´ ê°ë¥í ì§ë¼ë, ì°ë¦¬ë ë¤ì ì¥ìì 모ë ê°ë¥ì±"
+"ë¤ì ë¶ë¥í ê²ì´ë¤."
+
+#~ msgid "Collection Mapping"
+#~ msgstr "ì½ë ì
매í"
+
+#~ msgid "Some examples, first, a set of strings:"
+#~ msgstr "ëªëª ìì ë¤, 먼ì 문ìì´ë¤ì ê°ì§ set:"
+
+#~ msgid ""
+#~ "The previous sections are pretty confusing. So lets look at an example. "
+#~ "This class:"
+#~ msgstr "ìì ì ë¤ì 꽤 í¼ëì¤ë½ë¤. ë°ë¼ì ìì 를 ì´í´ë³´ì. ë¤ì í´ëì¤:"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/component_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/component_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/component_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,406 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr "Component 매í"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The notion of a <emphasis>component</emphasis> is re-used in several "
+"different contexts and purposes throughout Hibernate."
+msgstr ""
+"<emphasis>component</emphasis>ì ê°ë
ì Hibernateìì ë¤ë¥¸ ì©ëë¡ ëªëª ë¤ë¥¸ "
+"컨í
ì¤í¸ë¤ ë´ìì ì¬ì¬ì©ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr "ì¢
ì ê°ì²´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A component is a contained object that is persisted as a value type and not "
+"an entity reference. The term \"component\" refers to the object-oriented "
+"notion of composition and not to architecture-level components. For example, "
+"you can model a person like this:"
+msgstr ""
+"íëì ì»´í¬ëí¸ë ìí°í° ì°¸ì¡°ê° ìë, value íì
ì¼ë¡ì ììí ëë íëì í¬"
+"í¨ë ê°ì²´ì´ë¤. \"ì»´í¬ëí¸\" ì©ì´ë (ìí¤í
ì² ìì¤ì ì»´í¬ëí¸ë¤ì´ ìë) "
+"composition(구ì±,í©ì±)ì ëí ê°ì²´-ì§í¥ì ì¸ ê°ë
ì ì¸ê¸íë¤. ì를 ë¤ì´ ë¹ì "
+"ì ë¤ìê³¼ ê°ì´ ê°ì¸ì 모íí ìí¬ ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now <literal>Name</literal> can be persisted as a component of "
+"<literal>Person</literal>. <literal>Name</literal> defines getter and setter "
+"methods for its persistent properties, but it does not need to declare any "
+"interfaces or identifier properties."
+msgstr ""
+"ì´ì <literal>Name</literal>ì <literal>Person</literal>ì ì»´í¬ëí¸ë¡ì ìì"
+"í ë ìë ìë¤. <literal>Name</literal>ì´ ê·¸ê²ì ìì íë¡í¼í°ë¤ì ëí "
+"getter ë©ìëì setter ë©ìë를 ì ìíì§ë§, ì´ë¤ ì¸í°íì´ì¤ë¤ì´ë ìë³ì íë¡"
+"í¼í°ë¤ì ì ì¸íë ê²ì íìë¡ íì§ ììì 주목íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr "ì°ë¦¬ì Hibernate 매íì ë¤ìê³¼ ê°ì ê²ì´ë¤:"
+
+#. 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> 컬ë¼ë¤ì ê°ì§ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Like value types, components do not support shared references. In other "
+"words, two persons could have the same name, but the two person objects "
+"would contain two independent name objects that were only \"the same\" by "
+"value. The null value semantics of a component are <emphasis>ad hoc</"
+"emphasis>. When reloading the containing object, Hibernate will assume that "
+"if all component columns are null, then the entire component is null. This "
+"is suitable for most purposes."
+msgstr ""
+"모ë ê°(value) íì
ë¤ì²ë¼, ì»´í¬ëí¸ë¤ì ê³µì ë 참조ë¤ì ì§ìíì§ ìëë¤. ë¬"
+"리 ë§í´, ë ëª
ì ê°ì¸ë¤ì ëì¼í ì´ë¦ì ê°ì§ ì ìì§ë§, ë ê°ì person ê°ì²´ë¤"
+"ì ì¤ì§ ê° ë§ì´ \"ëì¼í\" ë ê°ì ë
립ì ì¸ name ê°ì²´ë¤ì í¬í¨í ê²ì´ë¤. ì»´í¬"
+"ëí¸ì null ê° ì미ë <emphasis>í¹ë³í ì©ë를 ìí ê²ì´ë¤</emphasis>. í¬í¨ë "
+"ê°ì²´ë¥¼ ë¤ì ë¡ëìí¬ ë, Hibernateë 모ë ì»´í¬ëí¸ ì»¬ë¼ë¤ì´ nullì¼ ê²½ì°ì ì "
+"ì²´ ì»´í¬ëí¸ê° nullì´ë¼ê³ ê°ì í ê²ì´ë¤. ì´ê²ì ëë¶ë¶ì ì©ëì ë§ì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The properties of a component can be of any Hibernate type (collections, "
+"many-to-one associations, other components, etc). Nested components should "
+"<emphasis>not</emphasis> be considered an exotic usage. Hibernate is "
+"intended to support a fine-grained object model."
+msgstr ""
+"ì»´í¬ëí¸ì íë¡í¼í°ë¤ì ììì Hibernate íì
ì¼ ì ìë¤(ì½ë ì
ë¤, many-to-"
+"one ì°ê´ë¤, ë¤ë¥¸ ì»´í¬ëí¸ë¤, 기í). ë´í¬ë ì»´í¬ëí¸ë¤ì ì ì¢
ì ì¬ì©ë¡ë¡ ê°ì£¼"
+"ëì§ <emphasis>ìì</emphasis> ê²ì´ë¤. Hibernateë ë§¤ì° ì ì ì ë ê°ì²´ 모í"
+"ì ì§ìíëë¡ ê³ ìëì´ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"<literal><component></literal> ììë ì»´í¬ëí¸ í´ëì¤ì íë¡í¼í°ë¥¼ í¬í¨"
+"ëë ìí°í°ì ëí ì 참조ë¡ì 매íìí¤ë <literal><parent></literal> "
+"ìë¸ìì를 íì©íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr "ì¢
ì ê°ì²´ë¤ì ê°ì§ ì½ë ì
ë¤"
+
+#. 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><element></literal> tag with a <literal><composite-"
+"element></literal> tag:"
+msgstr ""
+"ì»´í¬ëí¸ë¤ì ê°ì§ ì½ë ì
ë¤ì´ ì§ìëë¤(ì를 ë¤ë©´ <literal>Name</literal> íì
"
+"ì ê°ì§ ë°°ì´). <literal><element></literal> í그를 <literal><"
+"composite-element></literal> íê·¸ë¡ ëì²´ìì¼ì ë¹ì ì ì»´í¬ëí¸ ì½ë ì
ì ì "
+"ì¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you define a <literal>Set</literal> of composite elements, it is "
+"important to implement <literal>equals()</literal> and <literal>hashCode()</"
+"literal> correctly."
+msgstr ""
+"ë
¸í¸: ë§ì¼ ë¹ì ì´ composite ìì를 ê°ì§ íëì <literal>Set</literal>를 ì ì"
+"í ê²½ì°, <literal>equals()</literal>ì <literal>hashCode()</literal>를 ì íí"
+"ê² êµ¬ííë ê²ì´ ë§¤ì° ì¤ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Composite elements can contain components but not collections. If your "
+"composite element contains components, use the <literal><nested-composite-"
+"element></literal> tag. This case is a collection of components which "
+"themselves have components. You may want to consider if a one-to-many "
+"association is more appropriate. Remodel the composite element as an entity, "
+"but be aware that even though the Java model is the same, the relational "
+"model and persistence semantics are still slightly different."
+msgstr ""
+"Composite ììë¤ì ì»´í¬ëí¸ë¤ì í¬í¨íì§ë§ ì½ë ì
ë¤ì í¬í¨íì§ ìëë¤. ë§ì¼ "
+"ë¹ì ì composite ìì ìì²´ê° ì»´í¬ëí¸ë¤ì í¬í¨í ê²½ì°, <literal><nested-"
+"composite-element></literal> í그를 ì¬ì©íë¼. ì´ê²ì 꽤 ì ì¢
ì ê²½ì°-ê·¸ê²"
+"ë¤ ìì²´ê° ì»´í¬ëí¸ë¤ì ê°ê³ ìë ì»´í¬ëí¸ë¤ì ì½ë ì
-ì´ë¤. ì´ ë¨ê³ìì ë¹ì "
+"ì one-to-many ì°ê´ì´ ë ì ì íì§ë¥¼ ë¹ì ì¤ì¤ë¡ìê² ì§ë¬¸íê² ë ê²ì´ë¤. íë"
+"ì ìí°í°ë¡ì composite ìì를 ë¤ì 모ë¸ë§íë ¤ê³ ìëíë¼ - ê·¸ë¬ë ìë° ëª¨í"
+"ë¤ì´ ëì¼í ì§ë¼ë, ê´ê³í 모íê³¼ ììí ì미ë¤ì ì¬ì í ì½ê° ë¤ë¥´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A composite element mapping does not support null-able properties if you are "
+"using a <literal><set></literal>. There is no separate primary key "
+"column in the composite element table. Hibernate uses each column's value to "
+"identify a record when deleting objects, which is not possible with null "
+"values. You have to either use only not-null properties in a composite-"
+"element or choose a <literal><list></literal>, <literal><map></"
+"literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr ""
+"ë¹ì ì´ íëì <literal><set></literal>ì ì¬ì© ì¤ì´ë¼ë©´, íëì "
+"composite ìì 매íì null ê°ë¥í íë¡í¼í°ë¤ì ì§ìíì§ ììì ë
¸í¸í길 ë°ë"
+"ë¤. Hibernateë ê°ì²´ë¤ì ìì í ë íëì ë ì½ë를 ìë³íëë° ê°ê°ì 컬ë¼ë¤ "
+"ê°ì ì¬ì©í´ì¼ íë©° (composite ìì í
ì´ë¸ ë´ì ë³ëì íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼ì´ ì¡´"
+"ì¬íì§ ìëë¤), ê·¸ê²ì null ê°ë¤ì ëí´ìë ë¶ê°ë¥íë¤. ë¹ì ì íëì "
+"composite-ìì ë´ì not-null íë¡í¼í°ë¤ ë§ì ì¬ì©í´ì¼ íê±°ë íëì "
+"<literal><list></literal>, <literal><map></literal>, "
+"<literal><bag></literal> ëë <literal><idbag></literal>ì ì íí´"
+"ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal><many-to-one></literal> element. This mapping allows you to "
+"map extra columns of a many-to-many association table to the composite "
+"element class. The following is a many-to-many association from "
+"<literal>Order</literal> to <literal>Item</literal>, where "
+"<literal>purchaseDate</literal>, <literal>price</literal> and "
+"<literal>quantity</literal> are properties of the association:"
+msgstr ""
+"composite ììì ëí íëì í¹ë³í ê²½ì°ë ë´í¬ë <literal><many-to-"
+"one></literal> ìì를 ê°ì§ composite ììì´ë¤. ì´ê°ì 매íì many-to-many "
+"ì°ê´ í
ì´ë¸ì í¹ë³í 컬ë¼ë¤ì composite ìì í´ëì¤ë¡ 매íìí¤ë ê²ì ë¹ì ì"
+"ê² íì©í´ì¤ë¤. ë¤ìì <literal>Order</literal>ë¡ë¶í° <literal>Item</literal>"
+"ì¼ë¡ì many-to-many ì°ê´ì´ë¤. ì¬ê¸°ì <literal>purchaseDate</literal>, "
+"<literal>price</literal>, ê·¸ë¦¬ê³ <literal>quantity</literal>ë ì°ê´ì íë¡í¼"
+"í°ë¤ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There cannot be a reference to the purchase on the other side for "
+"bidirectional association navigation. Components are value types and do not "
+"allow shared references. A single <literal>Purchase</literal> can be in the "
+"set of an <literal>Order</literal>, but it cannot be referenced by the "
+"<literal>Item</literal> at the same time."
+msgstr ""
+"ë¬¼ë¡ , ìë°©í¥ ì°ê´ ë¤ë¹ê²ì´ì
ì ê²½ì°, ë¤ë¥¸ 측 ìì ìë purchaseì ëí 참조"
+"ê° ì¡´ì¬í ì ìë¤. ì»´í¬ëí¸ë¤ì´ ê°(value) íì
ë¤ì´ê³ ê³µì ë 참조ë¤ì íì©í"
+"ì§ ììì 기ìµíë¼. íëì <literal>Purchase</literal>ë<literal>Order</"
+"literal>를 ê°ì§ set ë´ì ìì ì ìì§ë§, ê·¸ê²ì ëìì <literal>Item</"
+"literal>ì ìí´ ì°¸ì¡°ë ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr "ì¬ì§ì´ ì¸ê²¹ì(ëë ë¤ ê²¹ì, 기í) ì°ê´ë¤ì´ ê°ë¥íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Composite elements can appear in queries using the same syntax as "
+"associations to other entities."
+msgstr ""
+"composite ììë¤ì ë¤ë¥¸ ìí°í°ë¤ì ëí ì°ê´ë¤ê³¼ ëì¼í 구문ì ì¬ì©íì¬ ì§ì"
+"ë¤ ë´ì ëíë ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr "Map ì¸ë±ì¤ë¤ë¡ì ì»´í¬ëí¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><composite-map-key></literal> element allows you to map a "
+"component class as the key of a <literal>Map</literal>. Ensure that you "
+"override <literal>hashCode()</literal> and <literal>equals()</literal> "
+"correctly on the component class."
+msgstr ""
+"<literal><composite-map-key></literal> ììë ë¹ì ìê² íëì ì»´í¬ëí¸ "
+"í´ëì¤ë¥¼ íëì <literal>Map</literal>ì í¤ë¡ì 매íìí¤ëë¡ íë¤. ë¹ì ì ì»´"
+"í¬ëí¸ í´ëì¤ ììì <literal>hashCode()</literal>ì <literal>equals()</"
+"literal>를 ì ííê² ì¤ë²ë¼ì´ë ìí¤ëë¡ íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr "composite ìë³ìë¤ë¡ì ì»´í¬ëí¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can use a component as an identifier of an entity class. Your component "
+"class must satisfy certain requirements:"
+msgstr ""
+"ë¹ì ì íëì ì»´í¬ëí¸ë¥¼ íëì ìí°í° í´ëì¤ì ëí íëì ìë³ìë¡ì ì¬ì©"
+"í ìë ìë¤. ë¹ì ì ì»´í¬ëí¸ í´ëì¤ë ì´ë¤ ì¬ìë¤ì 충족ìì¼ì¼ íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr "ê·¸ê²ì <literal>java.io.Serializable</literal>ì 구íí´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It must re-implement <literal>equals()</literal> and <literal>hashCode()</"
+"literal> consistently with the database's notion of composite key equality."
+msgstr ""
+"ê·¸ê²ì composite í¤ ë±ê°(equality)ì ëí ë°ì´í°ë² ì´ì¤ ê°ë
ê³¼ ì¼ì¹ëê², "
+"<literal>equals()</literal>ì <literal>hashCode()</literal>를 ë¤ì 구íí´ì¼ "
+"íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In Hibernate3, although the second requirement is not an absolutely hard "
+"requirement of Hibernate, it is recommended."
+msgstr ""
+"ë
¸í¸: Hibernate3ìì, ë ë²ì§¸ ì¬ìì Hibernateì ì ëì ì¼ë¡ ì격í ì¬ìì´ ì"
+"ëë¤. ê·¸ë¬ë ìë¬´í¼ ê·¸ê²ì ííë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You cannot use an <literal>IdentifierGenerator</literal> to generate "
+"composite keys. Instead the application must assign its own identifiers."
+msgstr ""
+"ë¹ì ì compsite í¤ë¤ì ìì±ìí¤ëë° <literal>IdentifierGenerator</literal>를 "
+"ì¬ì©í ì ìë¤. ëì ì ì´í리ì¼ì´ì
ì ê·¸ê² ìì ì ìë³ìë¤ì í ë¹í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use the <literal><composite-id></literal> tag, with nested "
+"<literal><key-property></literal> elements, in place of the usual "
+"<literal><id></literal> declaration. For example, the "
+"<literal>OrderLine</literal> class has a primary key that depends upon the "
+"(composite) primary key of <literal>Order</literal>."
+msgstr ""
+"íµìì <literal><id></literal> ì ì¸ ìì¹ì (ë´í¬ë <literal><key-"
+"property></literal> ììë¤ì ê°ì§) <literal><composite-id></"
+"literal> í그를 ì¬ì©íë¼. ì를 ë¤ì´, <literal>OrderLine</literal> í´ëì¤ë "
+"<literal>Order</literal>ì (composite) íë¼ì´ë¨¸ë¦¬ í¤ì ìì¡´íë íë¼ì´ë¨¸ë¦¬ í¤"
+"를 ê°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Any foreign keys referencing the <literal>OrderLine</literal> table are now "
+"composite. Declare this in your mappings for other classes. An association "
+"to <literal>OrderLine</literal> is mapped like this:"
+msgstr ""
+"ì´ì <literal>OrderLine</literal> í
ì´ë¸ì 참조íë ììì foreign í¤ë¤ì´ ë"
+"í compsiteì´ë¤. ë¹ì ì ë¤ë¥¸ í´ëì¤ë¤ì ëí ë¹ì ì 매íë¤ ìì ì´ê²ì ì ì¸í´"
+"ì¼ íë¤. <literal>OrderLine</literal>ì ëí íëì ì°ê´ì ë¤ìê³¼ ê°ì´ 매í"
+"ë ê²ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>column</literal> element is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>column</"
+"literal> element just gives more declaration options, which are mostly "
+"useful when utilizing <literal>hbm2ddl</literal>"
+msgstr ""
+
+#. 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>many-to-many</literal> ì°ê´ì ë"
+"í composite foreign í¤ë¥¼ ì¬ì©íë¤:"
+
+#. 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>ë¤ì ì½ë ì
ì´ ì¬ì©"
+"ë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr ""
+"(íµìì ì¼ë¡ <literal><one-to-many></literal> ììë 컬ë¼ë¤ì ì ì¸íì§ "
+"ìëë¤.)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
+msgstr ""
+"ë§ì¼ <literal>OrderLine</literal> ìì²´ê° íëì ì½ë ì
ì ìì í ê²½ì°, ê·¸ê²ì "
+"ëí íëì composite foreign í¤ë¥¼ ê°ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr "ëì ì¸ ì»´í¬ëí¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr "ë¹ì ì <literal>Map</literal> íì
ì íë¡í¼í°ë¥¼ 매íìí¬ ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The semantics of a <literal><dynamic-component></literal> mapping are "
+"identical to <literal><component></literal>. The advantage of this "
+"kind of mapping is the ability to determine the actual properties of the "
+"bean at deployment time just by editing the mapping document. Runtime "
+"manipulation of the mapping document is also possible, using a DOM parser. "
+"You can also access, and change, Hibernate's configuration-time metamodel "
+"via the <literal>Configuration</literal> object."
+msgstr ""
+"<literal><dynamic-component></literal> 매íì ì미ë <literal><"
+"component></literal>ì ëì¼íë¤. ì´ë° ì¢
ë¥ì 매íì ì¥ì ì ë°°ì¹ ìì ë¨ì§ "
+"매í 문ì를 í¸ì§í¨ì¼ë¡ì¨ ê·¸ beanì ì¤ì íë¡í¼í°ë¤ì ê²°ì íë ê°ì©ì±ì´ë¤. 매"
+"í 문ìì ëí ë°íì ì²ë¦¬ë ëí DOM íì를 ì¬ì©íì¬ ê°ë¥íë¤. ë ì¢ê²ë ë¹"
+"ì ì´ <literal>Configuration</literal> ê°ì²´ë¥¼ íµí´ Hibernateì 구ì±-ì ë©í모"
+"íì ì ê·¼í ì ìë¤(ê·¸ë¦¬ê³ ë³ê²½ìí¬ ì ìë¤)"
+
+#~ msgid ""
+#~ "(Note that the <literal><column></literal> tag is an alternative to "
+#~ "the <literal>column</literal> attribute everywhere.)"
+#~ msgstr ""
+#~ "(<literal><column></literal> íê·¸ê° ëª¨ë ê³³ìì <literal>column</"
+#~ "literal> ìì±ì ëí ëììì ë
¸í¸íë¼.)"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/configuration.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/configuration.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/configuration.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2790 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr "구ì±"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate is designed to operate in many different environments and, as "
+"such, there is a broad range of configuration parameters. Fortunately, most "
+"have sensible default values and Hibernate is distributed with an example "
+"<literal>hibernate.properties</literal> file in <literal>etc/</literal> that "
+"displays the various options. Simply put the example file in your classpath "
+"and customize it to suit your needs."
+msgstr ""
+"Hibernateê° ë§ì ë¤ë¥¸ íê²½ë¤ìì ëìíëë¡ ì¤ê³ëì´ ìì¼ë¯ë¡, ë§ì ê°ìì 구"
+"ì± íë¼ë¯¸í°ë¤ì´ ì¡´ì¬íë¤. ë¤íí ëë¶ë¶ì ì ì미í ëí´í¸ ê°ë¤ì´ê³ Hibernate"
+"ë ë¤ìí ìµì
ë¤ì ë³´ì¬ì£¼ë <literal>etc/</literal> ë´ì ìì íì¼ "
+"<literal>hibernate.properties</literal>ë¡ ë°°í¬ëë¤. ë¹ì ì ë¨ì§ ë¹ì ì "
+"classpath ê²½ë¡ ìì ê·¸ íì¼ì ì§ì´ë£ê³ ê·¸ê²ì 커ì¤í¸ë§ì´ì§íê¸°ë§ í´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr "íë¡ê·¸ë¨ ìì 구ì±"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An instance of <classname>org.hibernate.cfg.Configuration</classname> "
+"represents an entire set of mappings of an application's Java types to an "
+"SQL database. The <classname>org.hibernate.cfg.Configuration</classname> is "
+"used to build an immutable <interfacename>org.hibernate.SessionFactory</"
+"interfacename>. The mappings are compiled from various XML mapping files."
+msgstr ""
+"<literal>org.hibernate.cfg.Configuration</literal>ì ì¸ì¤í´ì¤ë ì´í리ì¼ì´ì
"
+"ì Java íì
ë¤ì SQL ë°ì´í°ë² ì´ì¤ íì
ì¼ë¡ì ì ì²´ 매í ì§í©ì íííë¤. "
+"<literal>Configuration</literal>ì (ë¶ë³ì) <literal>SessionFactory</literal>"
+"를 ë¹ëíëë° ì¬ì©ëë¤. 매íë¤ì ì¬ë¬ XML 매í íì¼ë¤ë¡ë¶í° ì»´íì¼ ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can obtain a <classname>org.hibernate.cfg.Configuration</classname> "
+"instance by instantiating it directly and specifying XML mapping documents. "
+"If the mapping files are in the classpath, use <literal>addResource()</"
+"literal>. For example:"
+msgstr ""
+"ë¹ì ì <literal>Configuration</literal> ì¸ì¤í´ì¤ë¥¼ ì´ê¸°í ìí¤ê³ XML 매í 문"
+"ìë¤ì ì§ì í¨ì¼ë¡ì¨ <literal>Configuration</literal> ì¸ì¤í´ì¤ë¥¼ ì»ì ì ì"
+"ë¤. ë§ì¼ 매í íì¼ë¤ì´ classpath ë´ì ìë¤ë©´, <literal>addResource()</"
+"literal>를 ì¬ì©íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An alternative way is to specify the mapped class and allow Hibernate to "
+"find the mapping document for you:"
+msgstr ""
+"(ëëë¡ ë ëì) ë¤ë¥¸ ë°©ë²ì 매íë í´ëì¤ë¥¼ ì§ì íë ê²ì´ê³ , Hibernateë¡ í"
+"ì¬ê¸ ë¹ì ì ìí´ ë§¤í 문ì를 ì°¾ëë¡ íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will then search for mapping files named <filename>/org/hibernate/"
+"auction/Item.hbm.xml</filename> and <filename>/org/hibernate/auction/Bid.hbm."
+"xml</filename> in the classpath. This approach eliminates any hardcoded "
+"filenames."
+msgstr ""
+"ê·¸ë Hibernateë classpath ë´ìì <literal>/org/hibernate/auction/Item.hbm."
+"xml</literal>ê³¼ <literal>/org/hibernate/auction/Bid.hbm.xml</literal>ë¡ ëª
ëª
"
+"ë 매í íì¼ë¤ì 룩ì
í ê²ì´ë¤. ì´ ì ê·¼ë²ì ììì íëì½ë©ë íì¼ ì´ë¦ë¤ì "
+"ì ê±°íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
+"specify configuration properties. For example:"
+msgstr ""
+"<literal>Configuration</literal>ì ëí êµ¬ì± íë¡í¼í°ë¤ì ì§ì íë ê²ì íì©"
+"í´ì¤ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. Some "
+"alternative options include:"
+msgstr ""
+"ì´ê²ì 컨í¼ê·¸ë ì´ì
íë¡í¼í°ë¤ì Hibernateì ì ë¬íë ì ì¼í ë°©ë²ì´ ìëë¤. "
+"ì¬ë¬ ê°ì§ ìµì
ë¤ì ë¤ìì í¬í¨íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Pass an instance of <classname>java.util.Properties</classname> to "
+"<literal>Configuration.setProperties()</literal>."
+msgstr ""
+"<literal>java.util.Properties</literal>ì ì¸ì¤í´ì¤ë¥¼ <literal>Configuration."
+"setProperties()</literal>ì ì ë¬íë¤ ."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Place a file named <filename>hibernate.properties</filename> in a root "
+"directory of the classpath."
+msgstr ""
+"classpathì ë£¨í¸ ëë í 리ì <literal>hibernate.properties</literal>를 ìì¹ì§"
+"ì´ë¤."
+
+#. 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> íë¡í¼í°ë¤ì ì¤ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Include <literal><property></literal> elements in <literal>hibernate."
+"cfg.xml</literal> (this is discussed later)."
+msgstr ""
+"<literal>hibernate.cfg.xml</literal>ì <literal><property></literal> ì"
+"ìë¤ì í¬í¨íë¤ (ëì¤ì ë
¼ìë¨)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to get started quickly<filename>hibernate.properties</filename> "
+"is the easiest approach."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <classname>org.hibernate.cfg.Configuration</classname> is intended as a "
+"startup-time object that will be discarded once a <literal>SessionFactory</"
+"literal> is created."
+msgstr ""
+"<literal>Configuration</literal>ì ìì ì(startup-time) ê°ì²´ë¡ì ì¼ë¨ "
+"<literal>SessionFactory</literal>ê° ìì±ëë©´ í기ëê²ë ìì ëì´ ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr "SessionFactory ì»ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When all mappings have been parsed by the <classname>org.hibernate.cfg."
+"Configuration</classname>, the application must obtain a factory for "
+"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
+"is intended to be shared by all application threads:"
+msgstr ""
+"모ë 매íë¤ì´ <literal>Configuration</literal>ì ìí´ íì±ëìì ë, ì´í리ì¼"
+"ì´ì
ì <literal>Session</literal> ì¸ì¤í´ì¤ë¤ì ëí í©í 리를 ì»ì´ì¼ íë¤. ì´ "
+"í©í 리ë 모ë ì´í리ì¼ì´ì
ì°ë ëë¤ì ìí´ ê³µì ëëë¡ ê³ ìëìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does allow your application to instantiate more than one "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
+"if you are using more than one database."
+msgstr ""
+"íì§ë§ Hibernateë ë¹ì ì ì´í리ì¼ì´ì
ì´ íë ì´ìì "
+"<literal>SessionFactory</literal>를 ì´ê¸°í ìí¤ë ê²ì íì©íë¤. ì´ê²ì ë¹ì "
+"ì´ íë ì´ìì ë°ì´í°ë² ì´ì¤ë¥¼ ì¬ì©íë ê²½ì°ì ì ì©íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr "JDBC 커ë¥ì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is advisable to have the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> create and pool JDBC connections for you. If you take this "
+"approach, opening a <interfacename>org.hibernate.Session</interfacename> is "
+"as simple as:"
+msgstr ""
+"ëê° ë¹ì ì <literal>SessionFactory</literal>ë¡ íì¬ê¸ ë¹ì ì ìí JDBC 커ë¥"
+"ì
ë¤ì ìì±ìí¤ê³ íë§ìí¤ë ê²ì ìíë¤. ë§ì¼ ë¹ì ì´ ì´ ì ê·¼ë²ì ì·¨í ê²½ì°, "
+"í ê°ì <literal>Session</literal>ì ì¬ë ê²ì ë¤ìê³¼ ê°ì´ ê°ë¨íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Once you start a task that requires access to the database, a JDBC "
+"connection will be obtained from the pool."
+msgstr ""
+"ë¹ì ì´ ë°ì´í°ë² ì´ì¤ì ëí ì ê·¼ì ìì²íë ì´ë¤ ê²ì ííì ë§ì, í ê°ì "
+"JDBC 커ë¥ì
ì´ ê·¸ íë¡ë¶í° ì»ì´ì§ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Before you can do this, you first need to pass some JDBC connection "
+"properties to Hibernate. All Hibernate property names and semantics are "
+"defined on the class <classname>org.hibernate.cfg.Environment</classname>. "
+"The most important settings for JDBC connection configuration are outlined "
+"below."
+msgstr ""
+"ì´ê²ì´ ëìíëë¡ í기 ìí´ì, ì°ë¦¬ë ëªëª JDBC 커ë¥ì
íë¡í¼í°ë¤ì Hibernate"
+"ì ì ë¬í íìê° ìë¤. 모ë Hibernate íë¡í¼í° ì´ë¦ë¤ê³¼ ìë¯¸ë¡ ë¤ì "
+"<literal>org.hibernate.cfg.Environment</literal> í´ëì¤ ìì ì ìëì´ ìë¤. "
+"ì°ë¦¬ë ì´ì JDBC 커ë¥ì
구ì±ì ìí ê°ì¥ ì¤ìí ì¤ì ë¤ì ì¤ëª
í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will obtain and pool connections using <classname>java.sql."
+"DriverManager</classname> if you set the following properties:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë¤ì íë¡í¼í°ë¤ì ì¤ì í ê²½ì° Hibernateë <literal>java.sql."
+"DriverManager</literal>를 ì¬ì©íì¬ ì»¤ë¥ì
ë¤ì ì»ì ê²ì´ë¤(ê·¸ë¦¬ê³ íë§ìí¬ ê²"
+"ì´ë¤):"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr "Hibernate JDBC íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr "íë¡í¼í° ì´ë¦"
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr "ì©ë"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "hibernate.connection.driver_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "jdbc ëë¼ì´ë² í´ëì¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr "hibernate.connection.url"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr "hibernate.connection.username"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "ë°ì´í°ë² ì´ì¤ ì¬ì©ì í¨ì¤ìë"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr "hibernate.connection.password"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr "ë°ì´í°ë² ì´ì¤ ì¬ì©ì í¨ì¤ìë"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "hibernate.connection.pool_size"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "íë§ë 커ë¥ì
ë¤ì ìµë ê°ì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate's own connection pooling algorithm is, however, quite rudimentary. "
+"It is intended to help you get started and is <emphasis>not intended for use "
+"in a production system</emphasis>, or even for performance testing. You "
+"should use a third party pool for best performance and stability. Just "
+"replace the <property>hibernate.connection.pool_size</property> property "
+"with connection pool specific settings. This will turn off Hibernate's "
+"internal pool. For example, you might like to use c3p0."
+msgstr ""
+"íì§ë§ Hibernate ìì ì 커ë¥ì
íë§ ìê³ ë¦¬ì¦ì ì주 기본ì ì´ë¤. ê·¸ê²ì ë¹ì "
+"ì´ ììíë ê²ì ëìì£¼ë ¤ê³ ìëëìê³ <emphasis>ì í ìì¤í
ì©ë ëë í¼í¬ë¨¼"
+"ì¤ í
ì¤í¸ì©ì¼ë¡ë ê³ ìëì§ ììë¤</emphasis>. ìµìì í¼í¬ë¨¼ì¤ì ìì ì±ì ìí´"
+"ìë ì 3ì íì ì¬ì©íë¼. ì¦ <literal>hibernate.connection.pool_size</"
+"literal> íë¡í¼í°ë¥¼ 커ë¥ì
í ì§ì ì¤ì ë¤ë¡ ëì²´íë¼. ì´ê²ì Hibernateì ë´"
+"ë¶ poolì ì¤íìí¬ ê²ì´ë¤. ì를 ë¤ì´ ë¹ì ì C3P0를 ì¬ì©í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"C3P0 is an open source JDBC connection pool distributed along with Hibernate "
+"in the <filename>lib</filename> directory. Hibernate will use its "
+"<classname>org.hibernate.connection.C3P0ConnectionProvider</classname> for "
+"connection pooling if you set <property>hibernate.c3p0.*</property> "
+"properties. If you would like to use Proxool, refer to the packaged "
+"<filename>hibernate.properties</filename> and the Hibernate web site for "
+"more information."
+msgstr ""
+"C3P0ë <literal>lib</literal> ëíí 리 ìì Hibernateì ë°°í¬ë ì¤í ìì¤ "
+"JDBC 커ë¥ì
íì´ë¤. ë¹ì ì´ <literal>hibernate.c3p0.*</literal> íë¡í¼í°ë¤ì "
+"ì¤ì í ê²½ì° Hibernateë 커ë¥ì
íë§ì ìí´ ê·¸ê²ì "
+"<literal>C3P0ConnectionProvider</literal>를 ì¬ì©í ê²ì´ë¤. ë§ì¼ ë¹ì ì´ "
+"Proxoolì ì¬ì©íê³ ì ìí ê²½ì° í¨í¤ì§í ë <literal>hibernate.properties</"
+"literal>를 참조íê³ ì¶ê° ì ë³´ë Hibernate ì¹ ì¬ì´í¸ë¥¼ 참조íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following is an example <filename>hibernate.properties</filename> file "
+"for c3p0:"
+msgstr ""
+"ë¤ìì C3P0ì ëí ì¬ì©íë ìì <literal>hibernate.properties</literal> íì¼"
+"ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For use inside an application server, you should almost always configure "
+"Hibernate to obtain connections from an application server "
+"<interfacename>javax.sql.Datasource</interfacename> registered in JNDI. You "
+"will need to set at least one of the following properties:"
+msgstr ""
+"ì´í리ì¼ì´ì
ìë² ë´ë¶ì ì©ëë¡, ë¹ì ì JNDIë¡ ë±ë¡ë ì´í리ì¼ì´ì
ìë² "
+"<literal>Datasource</literal>ë¡ë¶í° 커ë¥ì
ì ì»ê¸° ìí´ íì Hibernate를 구ì±"
+"í´ì¼ íë¤. ë¹ì ì ì ì´ë ë¤ì íë¡í¼í°ë¤ ì¤ íë를 ìµìíì¼ë¡ ì¤ì í íìê° "
+"ìì ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr "Hibernate Datasource Properties"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "hibernate.connection.datasource"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "ë°ì´í°ìì¤ JNDI ì´ë¦"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "hibernate.jndi.url"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr "JNDI íë¡ë°ì´ëì URL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "hibernate.jndi.class"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here is an example <filename>hibernate.properties</filename> file for an "
+"application server provided JNDI datasource:"
+msgstr ""
+"ë¤ìì ì´í리ì¼ì´ì
ìë² ì ê³µ JNDI ë°ì´í°ìì¤ì© ìì <literal>hibernate."
+"properties</literal> íì¼ì´ë¤:"
+
+#. Tag: 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 datasourceë¡ë¶í° ì»ì´ì§ JDBC 커ë¥ì
ë¤ì ì´í리ì¼ì´ì
ìë²ì 컨í
ì´ëì "
+"ìí´ ê´ë¦¬ëë í¸ëìì
ë¤ì ìëì ì¼ë¡ ì°¸ì¬í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Arbitrary connection properties can be given by prepending "
+"\"<literal>hibernate.connection</literal>\" to the connection property name. "
+"For example, you can specify a <property>charSet</property> connection "
+"property using <property>hibernate.connection.charSet</property>."
+msgstr ""
+"ììì 커ë¥ì
íë¡í¼í°ë¤ì íë¡í¼í° ì´ë¦ ìì \"<literal>hibernate."
+"connnection</literal>\"ì 첨ê°íì¬ ë¶ì¬ë ì ìë¤. ì를 ë¤ì´ ë¹ì ì "
+"<literal>hibernate.connection.charSet</literal>ì ì¬ì©íì¬ <literal>charSet</"
+"literal>ì ì§ì í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can define your own plugin strategy for obtaining JDBC connections by "
+"implementing the interface <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename>, and specifying your custom "
+"implementation via the <property>hibernate.connection.provider_class</"
+"property> property."
+msgstr ""
+"ë¹ì ì <literal>org.hibernate.connection.ConnectionProvider</literal> ì¸í°í"
+"ì´ì¤ë¥¼ 구íí¨ì¼ë¡ì¨ JDBC 커ë¥ì
ë¤ì ì»ë ë¹ì ìì ì íë¬ê·¸ì¸ ë°©ë를 ì ìí ì"
+"ë ìë¤. ë¹ì ì <literal>hibernate.connection.provider_class</literal>를 ì¤ì "
+"íì¬ ë§ì¶¤í 구íì ì íí ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr "ì íì ì¸ êµ¬ì± íë¡í¼í°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are a number of other properties that control the behavior of "
+"Hibernate at runtime. All are optional and have reasonable default values."
+msgstr ""
+"ì¤í ìì Hibernateì íì를 ì ì´íë ë§ì ë¤ë¥¸ íë¡í¼í°ë¤ì´ ì¡´ì¬íë¤. 모ë "
+"ê²ì´ ìµì
ì´ì§ë§ í©ë¹í ëí´í¸ ê°ë¤ì ê°ëë¤."
+
+#. 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."
+msgstr ""
+"<emphasis>ê²½ê³ : ì´ë¤ íë¡í¼í°ë¤ ì¤ ëªëªì \"system-level\" ì ì©ì´ë¤.</"
+"emphasis> ìì¤í
ë 벨 íë¡í¼í°ë¤ì ì¤ì§ <literal>java -Dproperty=value</"
+"literal> ëë <literal>hibernate.properties</literal>를 íµí´ìë§ ì¤ì ë ì ì"
+"ë¤. ê·¸ê²ë¤ì ìì ì¤ëª
ë ë¤ë¥¸ 기ë²ë¤ì ìí´ ì¤ì ë ì <emphasis>ìë¤</"
+"emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr "Hibernate êµ¬ì± íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr "hibernate.dialect"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</"
+"classname> which allows Hibernate to generate SQL optimized for a particular "
+"relational database."
+msgstr ""
+"í¹ì ê´ê³í ë°ì´í°ë² ì´ì¤ì ìµì í ë SQLì ìì±ìí¤ë ê²ì Hibernateìê² íì©"
+"í´ì£¼ë Hibernate <placeholder-1/>ì í´ëì¤ëª
. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
+"Dialect</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</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 ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr "hibernate.show_sql"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Write all SQL statements to console. This is an alternative to setting the "
+"log category <literal>org.hibernate.SQL</literal> to <literal>debug</"
+"literal>."
+msgstr ""
+"모ë SQL 문ì¥ë¤ì ì½ìì 기ë¡íë¤. ì´ê²ì ë¡ê·¸ ì¹´í
ê³ ë¦¬ <placeholder-1/>를 "
+"<placeholder-2/>ë¡ ì¤ì íë ê²ì ëí íëì ë¤ë¥¸ ë°©ë²ì´ë¤. <placeholder-3/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | "
+"<literal>false</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr "hibernate.format_sql"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr "ë¡ê·¸ì ì½ì ìì SQLì ê¹ëíê² í린í¸íë¤. <placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr "hibernate.default_schema"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr ""
+"ìì±ë SQL ë´ì 주ì´ì§ schema/tablespaceë¡ì ììì´ ìë í
ì´ë¸ì´ë¦ë¤ì ìì"
+"íë¤. <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "hibernate.default_catalog"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr ""
+"주ì´ì§ SQL ë´ì 주ì´ì§ ì¹´íë¡ì¼ë¡ì ììì´ ìë í
ì´ë¸ì´ë¦ë¤ì ììíë¤. "
+"<placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "hibernate.session_factory_name"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.SessionFactory</interfacename> will be "
+"automatically bound to this name in JNDI after it has been created."
+msgstr ""
+"<placeholder-1/>ë ê·¸ê²ì´ ìì±ë íì JNDI ë´ìì ì´ ì´ë¦ì ìëì ì¼ë¡ ë°ì¸"
+"ë ë ê²ì´ë¤. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "hibernate.max_fetch_depth"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets a maximum \"depth\" for the outer join fetch tree for single-ended "
+"associations (one-to-one, many-to-one). A <literal>0</literal> disables "
+"default outer join fetching."
+msgstr ""
+"single-ended ì°ê´ê´ê³ë¤(one-to-one, many-to-one)ì ê²½ì°ì outer join fetch í¸"
+"리ì ìµë \"ê¹ì´\"를 ì¤ì íë¤. <placeholder-1/>ì ëí´í¸ outer join fetching"
+"ì ì¬ì©ë¶ê°ë¥íê² ë§ë ë¤. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
+"<literal>0</literal> and <literal>3</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>0</literal>ê³¼ <literal>3</"
+"literal> ì¬ì´ì ê°ë¤ì´ê¶ì¥ëë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "hibernate.default_batch_fetch_size"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr ""
+"ì°ê´ë¤ì Hibernate ë°°ì¹ íì¹ì ëí ëí´í¸ í¬ê¸°ë¥¼ ì¤ì íë¤. <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis> ê¶ì¥ëë ê°ë¤ì <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "hibernate.default_entity_mode"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>"
+msgstr ""
+"ì´ <placeholder-1/>ë¡ë¶í° ì´ë ¤ì§ 모ë ì¸ì
ë¤ì ëí´ ìí°í° ííì ëí´í¸ 모ë"
+"ë¡ ì¤ì íë¤ <placeholder-2/>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+msgstr ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr "hibernate.order_updates"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Forces Hibernate to order SQL updates by the primary key value of the items "
+"being updated. This will result in fewer transaction deadlocks in highly "
+"concurrent systems."
+msgstr ""
+"ì
ë°ì´í¸ ì¤ì¸ í목ë¤ì íë¼ì´ë¨¸ë¦¬ í¤ ê°ì ìí´ SQL ì
ë°ì´í¸ë¤ì´ ìì"
+"(ordering)ì§ìì§ëë¡ Hibernateìê² ê°ì ìí¨ë¤. ì´ê²ì ê³ ëì ëìì± ìì¤í
ë¤"
+"ìì ë ì ì í¸ëìì
ë°ëë½(deadlock)ë¤ë¡ ê·ê²°ë ê²ì´ë¤ <placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "hibernate.generate_statistics"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+"ì´ì© ê°ë¥íê² ëë©´, Hibernateë í¼í¬ë¨¼ì¤ íëì ì ì©í íµê³ë¤ì ìì§í ê²ì´"
+"ë¤. <placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "hibernate.use_identifer_rollback"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
+msgstr ""
+"ì´ì© ê°ë¥íê² ëë©´, ê°ì²´ê° ìì ë ë ìì±ë ìë³ì íë¡í¼í°ë¤ì ëí´í¸ ê°ë¤"
+"ë¡ ì¬ì¤ì ë ê²ì´ë¤. <placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "hibernate.use_sql_comments"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If turned on, Hibernate will generate comments inside the SQL, for easier "
+"debugging, defaults to <literal>false</literal>."
+msgstr ""
+"ì´ì© ê°ë¥íê² ëë©´, Hibernateë ë³´ë¤ ì¬ì´ ëë²ê¹
ì ìí´ SQL ë´ì 주ìë¤ì ì"
+"ì±ìí¬ ê²ì´ë¤. ëí´í¸ë <placeholder-1/>. <placeholder-2/>"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr "Hibernate JDBC ë° ì»¤ë¥ì
íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "hibernate.jdbc.fetch_size"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"0 ìë ê°ì JDBC fetch ì¬ì´ì¦ë¥¼ ê²°ì íë¤(<placeholder-1/>ì í¸ì¶íë¤ )."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "hibernate.jdbc.batch_size"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr ""
+"0 ìë ê°ì Hibernateì ìí JDBC2 ë°°ì¹ ì
ë°ì´í¸ì ì¬ì©ì ì´ì© ê°ë¥íê² í"
+"ë¤. <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> recommended values between "
+"<literal>5</literal> and <literal>30</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>5</literal>ì <literal>30</"
+"literal> ì¬ì´ì ê°ë¤ì´ ê¶ì¥ëë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "hibernate.jdbc.batch_versioned_data"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Set this property to <literal>true</literal> if your JDBC driver returns "
+"correct row counts from <literal>executeBatch()</literal>. Iit is usually "
+"safe to turn this option on. Hibernate will then use batched DML for "
+"automatically versioned data. Defaults to <literal>false</literal>."
+msgstr ""
+"ë¹ì ì JDBC ëë¼ì´ë²ê° <placeholder-1/>ë¡ë¶í° ì íí í ì¹´ì´í¸ë¤ì ë°íí ê²½"
+"ì°ì ì´ íë¡í¼í°ë¥¼ <placeholder-2/>ë¡ ì¤ì íë¼(ëê° ì´ ìµì
ì ì¬ì© ê°ë¥íê² "
+"íë ê²ì´ ìì íë¤). ê·¸ë¬ë©´ Hibernateë ìëì ì¼ë¡ ë²ì í ë ë°ì´í°ì ëí´ ë°°"
+"ì¹íë(batched) DMLì ì¬ì©í ê²ì´ë¤. ëí´í¸ë <placeholder-3/>. <placeholder-"
+"4/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "hibernate.jdbc.factory_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Most applications will not need this configuration property."
+msgstr ""
+"ë§ì¶¤í <placeholder-1/>를 ì ííë¤. ëë¶ë¶ì ì´í리ì¼ì´ì
ë¤ì ì´ êµ¬ì± íë¡í¼"
+"í°ë¥¼ íìë¡ íì§ ìì ê²ì´ë¤. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "hibernate.jdbc.use_scrollable_resultset"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables use of JDBC2 scrollable resultsets by Hibernate. This property is "
+"only necessary when using user-supplied JDBC connections. Hibernate uses "
+"connection metadata otherwise."
+msgstr ""
+"Hibernateì ìí JDBC2 ì¤í¬ë¡¤ ê°ë¥í ê²°ê³¼ì
ë¤ì ì¬ì©ì ê°ë¥íê² í´ì¤ë¤. ì´ í"
+"ë¡í¼í°ë ì¬ì©ìê° ì ê³µí JDBC커ë¥ì
ë¤ì ì¬ì©í ëìë§ íìì ì´ê³ , ê·¸ ë°ì ê²½"
+"ì° Hibernateë 커ë¥ì
ë©íë°ì´í°ë¥¼ ì¬ì©íë¤. <placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "hibernate.jdbc.use_streams_for_binary"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Use streams when writing/reading <literal>binary</literal> or "
+"<literal>serializable</literal> types to/from JDBC. <emphasis>*system-level "
+"property*</emphasis>"
+msgstr ""
+"FUZZY! <placeholder-1/> ëë <placeholder-2/> íì
ë¤ì ì½ì´ë¤ì¼ ë ì¤í¸ë¦¼ë¤"
+"ì ì¬ì©íë¤(ìì¤í
-ë 벨 íë¡í¼í°). <placeholder-3/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "hibernate.jdbc.use_get_generated_keys"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> "
+"to retrieve natively generated keys after insert. Requires JDBC3+ driver and "
+"JRE1.4+, set to false if your driver has problems with the Hibernate "
+"identifier generators. By default, it tries to determine the driver "
+"capabilities using connection metadata."
+msgstr ""
+"insert íì ê³ ì íê² ìì±ë í¤ë¤ì ê²ìíëë° JDBC3 <placeholder-1/>ì ì¬ì©"
+"ì ì´ì© ê°ë¥íëë¡ ë§ë ë¤. JDBC3+ ëë¼ì´ë²ì JRE1.4+를 íìë¡ íê³ , ë¹ì ì ë"
+"ë¼ì´ë²ê° Hibernate ìë³ì ìì±ìë¤ì 문ì ê° ìì ê²½ì°ì falseë¡ ì¤ì íë¼. ë"
+"í´í¸ë¡ 커ë¥ì
ë©í ë°ì´í°ë¥¼ ì¬ì©íì¬ ëë¼ì´ë² ê°ì©ì±ë¤ì ê²°ì íë ¤ê³ ìëí"
+"ë¼. <placeholder-2/>"
+
+#. Tag: para
+#, 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: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "hibernate.connection.provider_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a custom <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> which provides JDBC connections to "
+"Hibernate."
+msgstr ""
+"Hibernateì JDBC 커ë¥ì
ë¤ì ì ê³µíë ë§ì¶¤í <placeholder-1/>ì í´ëì¤ëª
. "
+"<placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "hibernate.connection.isolation"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Sets the JDBC transaction isolation level. Check <interfacename>java.sql."
+"Connection</interfacename> for meaningful values, but note that most "
+"databases do not support all isolation levels and some define additional, "
+"non-standard isolations."
+msgstr ""
+"JDBC transaction isolation ë 벨ì ì¤ì íë¤. ì미ìë ê°ë¤ë¡ <placeholder-1/>"
+"ì ì²´í¬íì§ë§ ëë¶ë¶ì ë°ì´í°ë² ì´ì¤ë¤ì´ 모ë 격리(isolate) ë 벨ë¤ì ì§ìíì§ "
+"ììì ë
¸í¸íë¼. <placeholder-2/>"
+
+#. Tag: para
+#, 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: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "hibernate.connection.autocommit"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr ""
+"JDBC íë§ë 커ë¥ì
ë¤ì ëí´ ìë커ë°ì ì´ì© ê°ë¥íëë¡ íë¤(ê¶ì¥ëì§ ìì). "
+"<placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "hibernate.connection.release_mode"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Specifies when Hibernate should release JDBC connections. By default, a JDBC "
+"connection is held until the session is explicitly closed or disconnected. "
+"For an application server JTA datasource, use <literal>after_statement</"
+"literal> to aggressively release connections after every JDBC call. For a "
+"non-JTA connection, it often makes sense to release the connection at the "
+"end of each transaction, by using <literal>after_transaction</literal>. "
+"<literal>auto</literal> will choose <literal>after_statement</literal> for "
+"the JTA and CMT transaction strategies and <literal>after_transaction</"
+"literal> for the JDBC transaction strategy."
+msgstr ""
+"Hibernateê° JDBC 커ë¥ì
ë¤ì í´ì íê² ë ìì ì ì§ì íë¤. ëí´í¸ë¡ í ê°ì "
+"JDBC 커ë¥ì
ì ê·¸ ì¸ì
ì´ ëª
ìì ì¼ë¡ ë«íê±°ë ì°ê²°í´ì ë기 ì ê¹ì§ ë³´ê´ëë¤. ì´"
+"í리ì¼ì´ì
í¸ëìì
ìë² JTA ë°ì´í°ìì¤ì ê²½ì°, ë¹ì ì 모ë JDBC í¸ì¶ íì 커"
+"ë¥ì
ë¤ì ê³¼ê°íê² í´ì ìí¤ê¸° ìí´ <placeholder-1/>를 ì¬ì©í´ì¼ íë¤. ë¹-JTA ì°"
+"ê²°ì ê²½ì°, <placeholder-2/>ì ì¬ì©íì¬ ê°ê°ì í¸ëìì
ì ëìì 커ë¥ì
ë¤ì í´"
+"ì ìí¤ë ê²ì´ ì¢
ì¢
ìë¯¸ê° ìë¤. <placeholder-3/>ë JTA ë° CMT í¸ëìì
ë°©ëë¤"
+"ì ê²½ì°ì <placeholder-4/>를 ì ííê³ JDBC í¸ëìì
ë°©ëì ëí´ <placeholder-"
+"5/>를 ì íí ê²ì´ë¤. <placeholder-6/><placeholder-7/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) "
+"| <literal>on_close</literal> | <literal>after_transaction</literal> | "
+"<literal>after_statement</literal>"
+msgstr ""
+"<emphasis role=\"strong\">eg.</emphasis><literal>auto</literal> (ëí´í¸) | "
+"<literal>on_close</literal> | <literal>after_transaction</literal> | "
+"<literal>after_statement</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This setting only affects <literal>Session</literal>s returned from "
+"<literal>SessionFactory.openSession</literal>. For <literal>Session</"
+"literal>s obtained through <literal>SessionFactory.getCurrentSession</"
+"literal>, the <literal>CurrentSessionContext</literal> implementation "
+"configured for use controls the connection release mode for those "
+"<literal>Session</literal>s. See <xref linkend=\"architecture-current-session"
+"\" />"
+msgstr ""
+"ì´ ì¤ì ì´ <literal>SessionFactory.openSession</literal>ë¡ë¶í° ë°íë "
+"<literal>Session</literal>ë¤ìë§ ìí¥ì ì¤ë¤ë ì ì ë
¸í¸íë¼. "
+"<literal>SessionFactory.getCurrentSession</literal>ì íµí´ ì»ì´ì§ "
+"<literal>Session</literal>ë¤ì ê²½ì°, ì¬ì©í기 ìí´ êµ¬ì±ë "
+"<literal>CurrentSessionContext</literal> 구íì´ ê·¸ë¤ <literal>Session</"
+"literal>ë¤ì ëí ì°ê²° í´ì 를 ì ì´íë¤. <xref linkend=\"architecture-current-"
+"session\"/>를 ë³´ë¼."
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the JDBC property <emphasis><propertyName></emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the property <emphasis><propertyName></emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr "Hibernate Cache íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "hibernate.cache.provider_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr "ë§ì¶¤í <placeholder-1/>ì í´ëì¤ëª
. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "hibernate.cache.use_minimal_puts"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Optimizes second-level cache operation to minimize writes, at the cost of "
+"more frequent reads. This setting is most useful for clustered caches and, "
+"in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr ""
+"ì½ê¸°ê° ë§¤ì° ë¹ë²í ê²½ì°ì, ì°ê¸°ë¥¼ ìµìí ìí¤ê¸° ìí´ second-level ìºì ì°ì°"
+"ì ìµì í ìí¨ë¤. ì´ ì¤ì ì Hibernate3ìì í´ë¬ì¤í°ë§ ë ìºìë¤ì ê°ì¥ ì ì©í"
+"ê³ , Hibernate3ììë í´ë¬ì¤í°ë§ë ìºì 구íë¤ì ëí´ ëí´í¸ë¡ ì´ì© ê°ë¥íë¤. "
+"<placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "hibernate.cache.use_query_cache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables the query cache. Individual queries still have to be set cachable."
+msgstr ""
+"ì§ì ìºì를 ê°ë¥íê² ë§ë ë¤. ê°ë³ ì§ìë¤ì ì¬ì í ìºì ê°ë¥í ê²ì¼ë¡ ì¤ì ëì´"
+"ì¼ íë¤. <placeholder-1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "hibernate.cache.use_second_level_cache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Can be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal><cache></literal> "
+"mapping."
+msgstr ""
+"second-level ìºì를 ìì í ì¬ì© ë¶ê°ë¥íê² íëë° ì¬ì©ë ì ìê³ , ê·¸ê²ì "
+"<placeholder-1/> 매íì ì§ì íë í´ëì¤ë¤ì ëí´ ëí´í¸ë¡ ì´ì© ê°ë¥ì´ë¤. "
+"<placeholder-2/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "hibernate.cache.query_cache_factory"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a custom <literal>QueryCache</literal> interface, defaults "
+"to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+"ë§ì¶¤í <placeholder-1/> ì¸í°íì´ì¤ì í´ëì¤ëª
. ëí´í¸ë 미리 ë¹ëë "
+"<placeholder-2/>. <placeholder-3/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "hibernate.cache.region_prefix"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr "second-level ìºì ìì ì´ë¦ë¤ì ì¬ì©í ì ëì´. <placeholder-1/>"
+
+#. Tag: para
+#, 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: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "hibernate.cache.use_structured_entries"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
+msgstr ""
+"ì¸ê°ìê² ë³´ë¤ ë ì¹ìí íìì¼ë¡ second-level ìºì ìì ë°ì´í°ë¥¼ ì ì¥íëë¡ "
+"Hibernateìê² ê°ì ìí¨ë¤.. <placeholder-1/>"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr "Hibernate í¸ëìì
íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "hibernate.transaction.factory_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a <literal>TransactionFactory</literal> to use with "
+"Hibernate <literal>Transaction</literal> API (defaults to "
+"<literal>JDBCTransactionFactory</literal>)."
+msgstr ""
+"Hibernate <placeholder-1/> API ì ì¬ì©í <placeholder-2/>ì í´ëì¤ ì´ë¦.(ëí´"
+"í¸ë <placeholder-3/>). <placeholder-4/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "jta.UserTransaction"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
+"JTA <literal>UserTransaction</literal> from the application server."
+msgstr ""
+"ì´í리ì¼ì´ì
ìë²ë¡ë¶í° JTA <placeholder-1/>ì ì»ê¸° ìí´ <placeholder-2/>ì "
+"ìí´ ì¬ì©ëë JNDI ì´ë¦. <placeholder-3/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr "hibernate.transaction.manager_lookup_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"The classname of a <literal>TransactionManagerLookup</literal>. It is "
+"required when JVM-level caching is enabled or when using hilo generator in a "
+"JTA environment."
+msgstr ""
+"<placeholder-1/>ì í´ëì¤ëª
- JVM ë 벨ì ìºì±ì´ ì´ì© ê°ë¥í ë ëë JTA íê²½ì"
+"ì hilo generator를 ì¬ì©í ë íìíë¤. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr "hibernate.transaction.flush_before_completion"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, the session will be automatically flushed during the before "
+"completion phase of the transaction. Built-in and automatic session context "
+"management is preferred, see <xref linkend=\"architecture-current-session\" /"
+">."
+msgstr ""
+"ë§ì¼ ì¬ì©ê°ë¥íëë¡ ëë©´, ì¸ì
ì í¸ëìì
ì before completion ë¨ê³ ëìì ì"
+"ëì ì¼ë¡ flush ë ê²ì´ë¤. ë¹ëëì´ ìë ìëì ì¸ ì¸ì
컨í
ì¤í¸ ê´ë¦¬ê° ì í¸ë"
+"ëë°, <xref linkend=\"architecture-current-session\"/>를 ë³´ë¼. <placeholder-"
+"1/>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr "hibernate.transaction.auto_close_session"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"If enabled, the session will be automatically closed during the after "
+"completion phase of the transaction. Built-in and automatic session context "
+"management is preferred, see <xref linkend=\"architecture-current-session\" /"
+">."
+msgstr ""
+"ë§ì¼ ì¬ì©ê°ë¥í ë¡ íë©´, after completion ë¨ê³ ëìì ì¸ì
ì´ ìëì ì¼ë¡ ë«í"
+"ì§ ê²ì´ë¤. (CMTì ëí´ Hibernate를 ì¬ì©í ë ë§¤ì° ì ì©íë¤.) <placeholder-1/>"
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr "ì¬ë¬ê°ì§ íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr "hibernate.current_session_context_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Supply a custom strategy for the scoping of the \"current\" "
+"<literal>Session</literal>. See <xref linkend=\"architecture-current-session"
+"\" /> for more information about the built-in strategies."
+msgstr ""
+"\"íì¬\" <placeholder-1/>ì ììí를 ìí íëì (ë§ì¶¤) ë°©ë를 ì ê³µíë¤. ë¹ë"
+"ëì´ ìë ë°©ëë¤ì ëí ì¶ê° ì ë³´ë <xref linkend=\"architecture-current-"
+"session\"/>를 ë³´ë¼. <placeholder-2/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "hibernate.query.factory_class"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr "Chooses the HQL íì 구íì ì ííë¤. <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>org.hibernate.hql.ast."
+"ASTQueryTranslatorFactory</literal> or <literal>org.hibernate.hql.classic."
+"ClassicQueryTranslatorFactory</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "hibernate.query.substitutions"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Is used to map from tokens in Hibernate queries to SQL tokens (tokens might "
+"be function or literal names, for example)."
+msgstr ""
+"Hibernate ì§ìë¤ ë´ì í í°ë¤ë¡ë¶í° SQL í í°ë¤ë¡ì 매í (ì를 ë¤ì´ í í°ë¤ì í¨"
+"ì ì´ë¦ ëë 리í°ë´ ì´ë¦ì¼ ì ìë¤). <placeholder-1/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "hibernate.hbm2ddl.auto"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Automatically validates or exports schema DDL to the database when the "
+"<literal>SessionFactory</literal> is created. With <literal>create-drop</"
+"literal>, the database schema will be dropped when the "
+"<literal>SessionFactory</literal> is closed explicitly."
+msgstr ""
+"<placeholder-1/>ê° ìì±ë ë, ìëì ì¼ë¡ ì í¨ì±ì ê²ì¬íê±°ë schema DDLì ë°"
+"ì´í°ë² ì´ì¤ë¡ ë´ë³´ë´ê¸° íë¤. <placeholder-2/>ì ê²½ì°, <placeholder-3/>ê° ëª
ì"
+"ì ì¼ë¡ ë«íì§ ë ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ê° ëë¡ë ê²ì´ë¤. <placeholder-4/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal>"
+msgstr ""
+"<emphasis role=\"strong\">ì.</emphasis><literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr "hibernate.cglib.use_reflection_optimizer"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Enables the use of CGLIB instead of runtime reflection (System-level "
+"property). Reflection can sometimes be useful when troubleshooting. "
+"Hibernate always requires CGLIB even if you turn off the optimizer. You "
+"cannot set this property in <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+"ë°íì reflection ëì ì CGLIBì ì¬ì©ì ê°ë¥íëë¡ ë§ë ë¤(ìì¤í
ë 벨 íë¡í¼"
+"í°). Reflectionì 문ì ê° ë°ìí ìì ëëë¡ ì ì©í ì ìê³ , ë¹ì ì´ optimizer"
+"를 ì¬ì©íì§ ìì ê²½ì°ì¡°ì°¨ë Hibernateë íì íìë¡ í¨ì ì ìíë¼. ë¹ì ì "
+"<placeholder-1/> ìì ì´ íë¡í¼í°ë¥¼ ì¤ì í ì ìë¤. <placeholder-2/>"
+
+#. Tag: title
+#, no-c-format
+msgid "SQL Dialects"
+msgstr "SQL Dialects"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Always set the <literal>hibernate.dialect</literal> property to the correct "
+"<literal>org.hibernate.dialect.Dialect</literal> subclass for your database. "
+"If you specify a dialect, Hibernate will use sensible defaults for some of "
+"the other properties listed above. This means that you will not have to "
+"specify them manually."
+msgstr ""
+"ë¹ì ì íì ë¹ì ì ë°ì´í°ë² ì´ì¤ë¥¼ ìí´ <literal>hibernate.dialect</literal> "
+"íë¡í¼í°ë¥¼ ì íí <literal>org.hibernate.dialect.Dialect</literal> ìë¸í´ëì¤"
+"ë¡ ì¤ì í´ì¼ íë¤. ë§ì¼ ë¹ì ì´ dialect를 ì§ì í ê²½ì°, ë¹ì ì´ íë¡í¼í°ë¤ì ìì"
+"ì
ì¼ë¡ ì§ì íë ë
¸ë ¥ì ì ì½íëë¡ Hibernateë ìì ì´ê±°ë ë¤ë¥¸ íë¡í¼í°ë¤ ì¤ "
+"ëªëªì ëí´ ì미ìë ëí´í¸ë¤ì ì¬ì©í ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr "RDBMS"
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr "DB2"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "org.hibernate.dialect.DB2Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr "DB2 AS/400"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "org.hibernate.dialect.DB2400Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr "DB2 OS390"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "org.hibernate.dialect.DB2390Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "org.hibernate.dialect.PostgreSQLDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr "MySQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "org.hibernate.dialect.MySQLDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr "MySQL with InnoDB"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "org.hibernate.dialect.MySQLInnoDBDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr "MySQL with MyISAM"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "org.hibernate.dialect.MySQLMyISAMDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr "Oracle (any version)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "org.hibernate.dialect.OracleDialect"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Oracle 9i"
+msgstr "Oracle 9i/10g"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "org.hibernate.dialect.Oracle9Dialect"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Oracle 10g"
+msgstr "Oracle 9i/10g"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "org.hibernate.dialect.OracleDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr "Sybase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "org.hibernate.dialect.SybaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr "Sybase Anywhere"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "org.hibernate.dialect.SybaseAnywhereDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr "Microsoft SQL Server"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "org.hibernate.dialect.SQLServerDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr "SAP DB"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "org.hibernate.dialect.SAPDBDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr "Informix"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "org.hibernate.dialect.InformixDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr "HypersonicSQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "org.hibernate.dialect.HSQLDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr "Ingres"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "org.hibernate.dialect.IngresDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr "Progress"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "org.hibernate.dialect.ProgressDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr "Mckoi SQL"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "org.hibernate.dialect.MckoiDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr "Interbase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "org.hibernate.dialect.InterbaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr "Pointbase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "org.hibernate.dialect.PointbaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr "FrontBase"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "org.hibernate.dialect.FrontbaseDialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr "Firebird"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "org.hibernate.dialect.FirebirdDialect"
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr "Outer Join Fetching"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your database supports ANSI, Oracle or Sybase style outer joins, "
+"<emphasis>outer join fetching</emphasis> will often increase performance by "
+"limiting the number of round trips to and from the database. This is, "
+"however, at the cost of possibly more work performed by the database itself. "
+"Outer join fetching allows a whole graph of objects connected by many-to-"
+"one, one-to-many, many-to-many and one-to-one associations to be retrieved "
+"in a single SQL <literal>SELECT</literal>."
+msgstr ""
+"ë§ì¼ ë¹ì ì ë°ì´í°ë² ì´ì¤ê° ANSI, Oracle, ëë Sybase ì¤íì¼ì outer joinë¤ì "
+"ì§ìí ê²½ì°, <emphasis>outer join fetching</emphasis>ì (ë°ì´í°ë² ì´ì¤ ê·¸ ìì²´"
+"ì ìí´ ë³´ë¤ ë ë§ì ìì
ì´ ìíëë ë¹ì©ì¼ë¡) ë°ì´í°ë² ì´ì¤ë¡ì ê·¸ë¦¬ê³ ë°ì´í°"
+"ë² ì´ì¤ë¡ë¶í°ì ë¼ì´ë í¸ë¦½ë¤ì ê°ì를 ì íí¨ì¼ë¡ì¨ ì¢
ì¢
í¼í¬ë¨¼ì¤ë¥¼ ì¦ê°ìí¬ "
+"ê²ì´ë¤. Outer join fetchingì many-to-one, one-to-many, many-to-many,one-to-"
+"one ì°ê´ê´ê³ë¤ì´ ì ìí´ ì°ê²°ë ê°ì²´ë¤ì ì ì²´ ê·¸ëíê° íëì SQL "
+"<literal>SELECT</literal> ììì ê²ìëê²ë íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Outer join fetching can be disabled <emphasis>globally</emphasis> by setting "
+"the property <literal>hibernate.max_fetch_depth</literal> to <literal>0</"
+"literal>. A setting of <literal>1</literal> or higher enables outer join "
+"fetching for one-to-one and many-to-one associations that have been mapped "
+"with <literal>fetch=\"join\"</literal>."
+msgstr ""
+"Outer join fetchingì hibernate.max_fetch_depth íë¡í¼í°ë¥¼ <literal>0</"
+"literal>ì¼ë¡ ì¤ì í¨ì¼ë¡ì¨ <emphasis>ì ìì ì¼ë¡</emphasis> ì¬ì© ë¶ê°ë¥íê² í "
+"ì ìë¤. <literal>1</literal> ì´ìì ê°ì ì¤ì íë ê²ì <literal>fetch=\"join"
+"\"</literal>ì¼ë¡ 매íëìë 모ë one-to-one ë° many-to-one ì°ê´ê´ê³ë¤ì ëí´ "
+"outer join fetchingì ì¬ì© ê°ë¥íëë¡ ë§ë ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "ì¶ê° ì ë³´ë <xref linkend=\"performance-fetching\"/>를 ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr "Binary Streams"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Oracle limits the size of <literal>byte</literal> arrays that can be passed "
+"to and/or from its JDBC driver. If you wish to use large instances of "
+"<literal>binary</literal> or <literal>serializable</literal> type, you "
+"should enable <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
+"<emphasis>This is a system-level setting only.</emphasis>"
+msgstr ""
+"Oracleì JDBC ëë¼ì´ë² ë¡/ë¶í° ì ë¬ëë <literal>byte</literal> ë°°ì´ë¤ì í¬ê¸°"
+"를 ì íìí¨ë¤. ë§ì¼ ë¹ì ì´ <literal>binary</literal> ëë "
+"<literal>serializable</literal> íì
ì ëí ì¸ì¤í´ì¤ë¥¼ ì¬ì©íê³ ì ìí ê²½ì°"
+"ì, ë¹ì ì <literal>hibernate.jdbc.use_streams_for_binary</literal>를 ì¬ì© ê°"
+"ë¥íê² í´ì¼ í ê²ì´ë¤. <emphasis>ì´ê²ì ì¤ì§ ìì¤í
ë 벨 ì¤ì ì´ë¤.</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr "Second-level ìºìì query ìºì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The properties prefixed by <literal>hibernate.cache</literal> allow you to "
+"use a process or cluster scoped second-level cache system with Hibernate. "
+"See the <xref linkend=\"performance-cache\" /> for more information."
+msgstr ""
+"<literal>hibernate.cache</literal> ì ëì´ê° ë¶ì íë¡í¼í°ë¤ì Hibernateì ë"
+"í´ íë¡ì¸ì¤ ëë í´ë¬ì¤í° ë²ìì ë ë²ì§¸ ë 벨 ìºì ìì¤í
ì ì¬ì©íë ê²ì í"
+"ì©í´ì¤ë¤. ìì¸í ê²ì <xref linkend=\"performance-cache\"/>를 ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr "Query Language ì¹í"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can define new Hibernate query tokens using <literal>hibernate.query."
+"substitutions</literal>. For example:"
+msgstr ""
+"ë¹ì ì <literal>hibernate.query.substitutions</literal>ì ì¬ì©íì¬ ìë¡ì´ "
+"Hibernate ì§ì í í°ë¤ì ì ìí ì ìë¤. ì를 ë¤ì´:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This would cause the tokens <literal>true</literal> and <literal>false</"
+"literal> to be translated to integer literals in the generated SQL."
+msgstr ""
+"ì<literal>true</literal>ì <literal>false</literal> í í°ë¤ì´ ìì±ë SQL ë´ì"
+"ì ì ì 리í°ë´ë¤ë¡ ë²ìëëë¡ ê°ì í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr ""
+"ì SQL <literal>LOWER</literal> function í¨ì ì´ë¦ì ë³ê²½íë ê²ì ë¹ì ìê² "
+"íì©í´ ì¤ ê²ì´ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr "Hibernate íµê³"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you enable <literal>hibernate.generate_statistics</literal>, Hibernate "
+"exposes a number of metrics that are useful when tuning a running system via "
+"<literal>SessionFactory.getStatistics()</literal>. Hibernate can even be "
+"configured to expose these statistics via JMX. Read the Javadoc of the "
+"interfaces in <literal>org.hibernate.stats</literal> for more information."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ <literal>hibernate.generate_statistics</literal>를 ì¬ì© ê°ë¥íë"
+"ë¡ í ê²½ì°, Hibernateë <literal>SessionFactory.getStatistics()</literal>를 "
+"íµí´ ê°ë ì¤ì¸ ìì¤í
ì íëí ë ì ì©í ë§ì íµê³ë¤ì ë
¸ì¶ìí¬ ê²ì´ë¤. "
+"Hibernateë ì¬ì§ì´ JMX를 íµí´ ì´ë¤ íµê³ë¤ì ë
¸ì¶ìí¤ëë¡ êµ¬ì±ë ì ìë¤. ì¶"
+"ê° ì ë³´ë <literal>org.hibernate.stats</literal>ì ìë ì¸í°íì´ì¤ë¤ì ê´í "
+"Javadoc를 ì½ì´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr "ë¡ê¹
"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you familiarize yourself with Hibernate's log "
+"messages. A lot of work has been put into making the Hibernate log as "
+"detailed as possible, without making it unreadable. It is an essential "
+"troubleshooting device. The most interesting log categories are the "
+"following:"
+msgstr ""
+"ì°ë¦¬ë ë¹ì ì´ Hibernateì ë¡ê·¸ ë©ìì§ë¤ì ìµìí´ì§ê¸°ë¥¼ ê°ë ¥í ê¶ì¥íë¤. ì½ê¸° "
+"ë¶ê°ë¥íì§ ìê²ë ê°ë¥í í ìì¸íê² Hibernate ë¡ê·¸ë¥¼ ë§ë¤ëë¡ ë§ì ìì
ì´ í"
+"í´ì¡ë¤. ê·¸ê²ì 본ì§ì ì¸ ë¬¸ì ëì§ê¸° ì¥ì¹ì´ë¤. ê°ì¥ í¥ë¯¸ë¡ì´ ë¡ê·¸ ì¹´í
ê³ ë¦¬ë¤ì´ "
+"ë¤ìì ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr "Hibernate ë¡ê·¸ ì¹´í
ê³ ë¦¬ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr "ì¹´í
ê³ ë¦¬"
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr "기ë¥"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "org.hibernate.SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr "SQL DML 문ì¥ë¤ì´ ì¤íë ë ê·¸ê²ë¤ 모ë를 ë¡ê·¸ ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "org.hibernate.type"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr "모ë JDBC íë¼ë¯¸í°ë¤ì ë¡ê·¸ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr "org.hibernate.tool.hbm2ddl"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr "SQL DDL 문ì¥ë¤ì´ ì¤íë ë ê·¸ê²ë¤ 모ë를 ë¡ê·¸ ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "org.hibernate.pretty"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log the state of all entities (max 20 entities) associated with the session "
+"at flush time"
+msgstr ""
+"flush ìì ìì ì¸ì
ê³¼ ì°ê´ë 모ë ìí°í°ë¤(ìµë 20ê°ì ìí°í°ë¤)ì ìí를 ë¡"
+"ê·¸ ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "org.hibernate.cache"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr "모ë second-level ìºì ì¡í°ë¹í°ë¥¼ ë¡ê·¸ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr "org.hibernate.transaction"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr "í¸ëìì
ê´ë ¨ ì¡í°ë¹í°ë¥¼ ë¡ê·¸ ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "org.hibernate.jdbc"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr "모ë JDBC 리ìì¤ ì·¨ëì ë¡ê·¸ ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr "org.hibernate.hql.ast.AST"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr "ì§ì íì± ëìì HQL ASTì SQL AST를 ë¡ê·¸ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "org.hibernate.secure"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr "모ë JAAS íê° ìì²ë¤ì ë¡ê·¸ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "JNDI-bound <literal>SessionFactory</literal>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"Log everything. This is a lot of information but it is useful for "
+"troubleshooting"
+msgstr "모ë ê²ì ë¡ê·¸ìí¨ë¤(ë§ì ì ë³´ì´ì§ë§, 문ì í´ê²°ì ë§¤ì° ì ì©íë¤)"
+
+#. 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> íë¡í¼"
+"í°ë¥¼ ì´ì©ê°ë¥íê² íì¬ ìì
í´ì¼ í ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr "<literal>NamingStrategy</literal> 구íí기"
+
+#. 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> ì¸í°íì´ì¤ë ë°ì´í°ë² ì´"
+"ì¤ ê°ì²´ë¤ê³¼ ì¤í¤ë§ ììë¤ì ëí \"ë¤ì´ë° íì¤\"ì ì§ì íë ê²ì ë¹ì ìê² í"
+"ì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can provide rules for automatically generating database identifiers from "
+"Java identifiers or for processing \"logical\" column and table names given "
+"in the mapping file into \"physical\" table and column names. This feature "
+"helps reduce the verbosity of the mapping document, eliminating repetitive "
+"noise (<literal>TBL_</literal> prefixes, for example). The default strategy "
+"used by Hibernate is quite minimal."
+msgstr ""
+"ë¹ì ì Java ìë³ìë¤ë¡ë¶í° ë°ì´í°ë² ì´ì¤ ìë³ìë¤ì ìëì ì¼ë¡ ìì±ìí¤ê±°ë 매"
+"í íì¼ì 주ì´ì§ \"ë
¼ë¦¬ì \" 컬ë¼ê³¼ í
ì´ë¸ ì´ë¦ë¤ì \"물리ì \" í
ì´ë¸ê³¼ ì»¬ë¼ "
+"ì´ë¦ë¤ë¡ ìëì ì¼ë¡ ì²ë¦¬íë ê·ì¹ë¤ì ì ê³µí ì ìë¤. ì´ í¹ì§ì ë°ë³µëë ì¡ì"
+"(ì를 ë¤ì´ <literal>TBL_</literal>ì ëì´ë¤)ì ì ê±°í¨ì¼ë¡ì¨, 매í 문ìì ë§ë§"
+"ì ì¥í©í¨ì ê°ììí¤ëë¡ ëìì¤ë¤. Hibernateì ìí´ ì¬ì©ëë ëí´í¸ ë°©ëë ì"
+"주 ìì ìíì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can specify a different strategy by calling <literal>Configuration."
+"setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+"ë¹ì ì 매íë¤ì ì¶ê°í기 ì´ì ì <literal>Configuration.setNamingStrategy()</"
+"literal>를 í¸ì¶í¨ì¼ë¡ì¨ ë¤ë¥¸ ë°©ë를 ì§ì í ì ìë¤:"
+
+#. Tag: 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>ë ì´ë¤ ì´í리ì¼ì´"
+"ì
ë¤ì ëí ì ì©í ììì ì¼ ì ìë 미리 ë¹ëë ë°©ëì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr "XML êµ¬ì± íì¼"
+
+#. 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> íì¼ì ëí ëì©ë¬¼ë¡ì ì¬ì©ë ì ìê±°ë, ë§ì¼ ë ë¤ ì¡´ì¬í ê²½ì°ì í"
+"ë¡í¼í°ë¤ì ì¤ë³µì ìíëë° ì¬ì©ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The XML configuration file is by default expected to be in the root of your "
+"<literal>CLASSPATH</literal>. Here is an example:"
+msgstr ""
+"XML êµ¬ì± íì¼ì ëí´í¸ë¡ ë¹ì ì <literal>CLASSPATH</literal>ì 루í¸ì ì¡´ì¬í"
+"ë ê²ì´ 기ëëë¤. ë¤ìì ìì ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The advantage of this approach is the externalization of the mapping file "
+"names to configuration. The <literal>hibernate.cfg.xml</literal> is also "
+"more convenient once you have to tune the Hibernate cache. It is your choice "
+"to use either <literal>hibernate.properties</literal> or <literal>hibernate."
+"cfg.xml</literal>. Both are equivalent, except for the above mentioned "
+"benefits of using the XML syntax."
+msgstr ""
+"ë¹ì ì´ ë³¼ ì ìë¯ì´, ì´ ì ê·¼ë²ì ì¥ì ì 구ì±ì ëí 매í íì¼ ì´ë¦ë¤ì 구체"
+"í ìí¤ë ê²ì´ë¤. <literal>hibernate.cfg.xml</literal>ì ëí ë¹ì ì´ "
+"Hibernate ìºì를 íëí´ì¼í ë ë³´ë¤ í¸ë¦¬íë¤. <literal>hibernate.properties</"
+"literal> ëë <literal>hibernate.cfg.xml</literal> ì¤ ì´ë ê²ì ì¬ì©íëê°ë "
+"ë¹ì ì ì íì´ë¤. XML 구문ì ì¬ì©íë ìì ì¸ê¸ë ì´ì ë¤ì ì ì¸íë©´ ëë¤ ê°ì "
+"ê²ìì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr "Hibernate 구ì±ì¼ë¡, Hibernate를 ììíë ê²ì ë¤ìê³¼ ê°ì´ ê°ë¨íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr "ë¹ì ì ë¤ìì ì¬ì©íì¬ ë¤ë¥¸ XML êµ¬ì± íì¼ì ì°¾ìë¼ ì ìë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr "J2EE ì´í리ì¼ì´ì
ìë² íµí©"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr "Hibernateë J2EE ì¸íë¼ì¤í¸ëì²ì ëí ë¤ì íµí© ì ë¤ì ê°ê³ ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Container-managed datasources</emphasis>: Hibernate can use JDBC "
+"connections managed by the container and provided through JNDI. Usually, a "
+"JTA compatible <literal>TransactionManager</literal> and a "
+"<literal>ResourceManager</literal> take care of transaction management "
+"(CMT), especially distributed transaction handling across several "
+"datasources. You can also demarcate transaction boundaries programmatically "
+"(BMT), or you might want to use the optional Hibernate <literal>Transaction</"
+"literal> API for this to keep your code portable."
+msgstr ""
+"<emphasis>Container-managed datasources</emphasis>: Hibernateë 컨í
ì´ëì ì"
+"í´ ê´ë¦¬ëë JDBC 커ë¥ì
ë¤ì ì¬ì©í ì ìê³ JNDI를 íµí´ ì ê³µëë¤. ëê° JTA í¸"
+"í <literal>TransactionManager</literal>ì <literal>ResourceManager</literal>"
+"ë í¸ëìì
ê´ë¦¬(CMT), í¹í ëªëª ë°ì´í°ìì¤ë¤ì ê°ë¡ì§ë¬ ë¶ì°ë í¸ëìì
í¸ë¤"
+"ë§ì ì²ë¦¬íë¤. ë¬¼ë¡ ë¹ì ì ëí íë¡ê·¸ë¨ ìì¼ë¡ í¸ëìì
ê²½ê³ë¤ì íì í ì"
+"ë ìê±°ë(BMT) ë¹ì ì ë¹ì ì ì½ëê° ì´ìì±ì ì ì§íëë¡ ì´ê²ì ëí ì íì ì¸ "
+"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ì ë°ì¸ë ìí¬ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>JTA Session binding:</emphasis> the Hibernate <literal>Session</"
+"literal> can be automatically bound to the scope of JTA transactions. Simply "
+"lookup the <literal>SessionFactory</literal> from JNDI and get the current "
+"<literal>Session</literal>. Let Hibernate manage flushing and closing the "
+"<literal>Session</literal> when your JTA transaction completes. Transaction "
+"demarcation is either declarative (CMT) or programmatic (BMT/"
+"UserTransaction)."
+msgstr ""
+"<emphasis>JTA Session ë°ì¸ë©</emphasis>: Hibernate <literal>Session</literal>"
+"ì JTA í¸ëìì
ë¤ì ìì(scope)ì ìëì ì¼ë¡ ë°ì¸ë ìí¬ ìë ìë¤. ê°ë¨íê² "
+"JNDIë¡ë¶í° <literal>SessionFactory</literal>를 룩ì
íê³ íì¬ "
+"<literal>Session</literal>ì ì»ì´ë¼. Hibernateë¡ íì¬ê¸ ë¹ì ì JTA í¸ëìì
"
+"ì´ ìë£ë ë <literal>Session</literal>ì flushìí¤ê³ ë«ë ê²ì ì²ë¦¬íëë¡ í"
+"ë¼. í¸ëìì
ê²½ê³ êµ¬ë¶ì ì ì¸ì (CMT)ì´ê±°ë íë¡ê·¸ëë°ì ((BMT/"
+"UserTransaction))ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>JMX deployment:</emphasis> if you have a JMX capable application "
+"server (e.g. JBoss AS), you can choose to deploy Hibernate as a managed "
+"MBean. This saves you the one line startup code to build your "
+"<literal>SessionFactory</literal> from a <literal>Configuration</literal>. "
+"The container will startup your <literal>HibernateService</literal> and also "
+"take care of service dependencies (datasource has to be available before "
+"Hibernate starts, etc)."
+msgstr ""
+"<emphasis>JMX ë°°ì¹</emphasis>: ë§ì¼ ë¹ì ì´ JMX ê°ì©ì±ì´ ìë ì´í리ì¼ì´ì
ì"
+"ë²(ì를 ë¤ë©´ JBoss AS)를 ê°ê³ ìë¤ë©´, ë¹ì ì Hibernate를 íëì managed 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.aggressive_release</literal>를 trueë¡ ì¤ì í´ì¼ "
+"ë ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr "í¸ëìì
ë°©ë 구ì±"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The Hibernate <literal>Session</literal> API is independent of any "
+"transaction demarcation system in your architecture. If you let Hibernate "
+"use JDBC directly through a connection pool, you can begin and end your "
+"transactions by calling the JDBC API. If you run in a J2EE application "
+"server, you might want to use bean-managed transactions and call the JTA API "
+"and <literal>UserTransaction</literal> when needed."
+msgstr ""
+"Hibernate <literal>Session</literal> APIë ë¹ì ì ìì¹´í
ì² ë´ìì ììì í¸ë"
+"ìì
ê´í ìì¤í
ì ë
립ì ì´ë¤. ë§ì¼ ë¹ì ì´ Hibernateë¡ íì¬ê¸ 커ë¥ì
íì íµ"
+"í´ ì§ì JDBC를 ì¬ì©íëë¡ ê°ì í ê²½ì°, ë¹ì ì JDBC API를 í¸ì¶íì¬ ë¹ì ì í¸ë"
+"ìì
ì ììíê³ ëë¼ ì ìë¤. ë§ì¼ ë¹ì ì´ J2EE ì´í리ì¼ì´ì
ìë²ë¥¼ ì¤í ì¤ì´"
+"ë¼ë©´, ë¹ì ì íìí ë bean-managed í¸ëìì
ë¤ì ì¬ì©íê³ 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> ì¸ì¤í´ì¤ë¤ì ëí í©í 리 í´ëì¤ë¥¼ ì§ì í´ì¼ í"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr "ì¸ ê°ì íì¤(미리 ë§ë¤ì´ì§) ì íë¤ì´ ì¡´ì¬íë¤:"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "org.hibernate.transaction.JDBCTransactionFactory"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr "ë°ì´í°ë² ì´ì¤ (JDBC) í¸ëìì
ë¤ìê² ìììí¨ë¤(ëí´í¸)"
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "org.hibernate.transaction.JTATransactionFactory"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"delegates to container-managed transactions if an existing transaction is "
+"underway in this context (for example, EJB session bean method). Otherwise, "
+"a new transaction is started and bean-managed transactions are used."
+msgstr ""
+"기존ì í¸ëìì
ì´ ì´ ì»¨í
ì¤í¸(ì를 ë¤ë©´ EJB session bean ë©ìë) ë´ìì ì§í "
+"ì¤ì¼ ê²½ì°ì container-managed transactionìê² ìììí¤ê³ , ê·¸ ë°ì ê²½ì° ìë¡"
+"ì´ í¸ëìì
ì´ ììëê³ bean-managed transactionì´ ì¬ì©ëë¤."
+
+#. Tag: term
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "org.hibernate.transaction.CMTTransactionFactory"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr "container-managed JTA í¸ëìì
ë¤ìê² ìììí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also define your own transaction strategies (for a CORBA transaction "
+"service, for example)."
+msgstr ""
+"ë¹ì ì ëí ë¹ì ìì ì í¸ëìì
ë°©ëë¤(ì를 ë¤ë©´ CORBA í¸ëìì
ìë¹ì¤)ì ì "
+"ìí ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Some features in Hibernate (i.e., the second level cache, Contextual "
+"Sessions with JTA, etc.) require access to the JTA "
+"<literal>TransactionManager</literal> in a managed environment. In an "
+"application server, since J2EE does not standardize a single mechanism, you "
+"have to specify how Hibernate should obtain a reference to the "
+"<literal>TransactionManager</literal>:"
+msgstr ""
+"Hibernateì ìë ëªëª í¹ì§ë¤(ì를 ë¤ë©´. second level ìºì, JTA를 ê°ì§ 컨í
ì¤"
+"í¸ ìì ì¸ì
ë¤, 기í.)ì ê´ë¦¬ëë íê²½ìì JTA <literal>TransactionManager</"
+"literal>ì ëí ì ê·¼ì íìë¡ íë¤. ì´í리ì¼ì´ì
ìë²ìì ë¹ì ì Hibernateê° "
+"<literal>TransactionManager</literal>ì ëí 참조를 íëíë ë°©ë²ì ì§ì í´ì¼ "
+"íë¤. ìëíë©´ J2EEê° í ê°ì ë©ì»¤ëì¦ì íì¤í ìí¤ê³ ìì§ ì기 ë문ì´ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr "JTA TransactionManagers"
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr "í¸ëìì
í©í 리"
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr "ì´í리ì¼ì´ì
ìë²"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JBossTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr "JBoss"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.WeblogicTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr "Weblogic"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+msgstr "org.hibernate.transaction.WebSphereTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr "WebSphere"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+msgstr "org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr "WebSphere 6"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.OrionTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr "Orion"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.ResinTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr "Resin"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JOTMTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr "JOTM"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JOnASTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr "JOnAS"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.JRun4TransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr "JRun4"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr "org.hibernate.transaction.BESTransactionManagerLookup"
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr "Borland ES"
+
+#. Tag: title
+#, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr "JNDI-bound <literal>SessionFactory</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A JNDI-bound Hibernate <literal>SessionFactory</literal> can simplify the "
+"lookup function of the factory and create new <literal>Session</literal>s. "
+"This is not, however, related to a JNDI bound <literal>Datasource</literal>; "
+"both simply use the same registry."
+msgstr ""
+"íëì JNDI ë°ì¸ëë Hibernate <literal>SessionFactory</literal>ë ê·¸ í©í 리"
+"ì ëí 룩ì
ê³¼ ìë¡ì´ <literal>Session</literal>ë¤ì ìì±ì ë¨ìí ìí¬ ì ì"
+"ë¤. ì´ê²ì JNDI ë°ì¸ëë <literal>Datasource</literal>ì ê´ë ¨ëì´ ìì§ ìê³ , "
+"ë¨ìíê² ë ë¤ ëì¼í ë ì§ì¤í¸ë¦¬ë¥¼ ì¬ì©íë¤ë ì ì ë
¸í¸íë¼!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you wish to have the <literal>SessionFactory</literal> bound to a JNDI "
+"namespace, specify a name (e.g. <literal>java:hibernate/SessionFactory</"
+"literal>) using the property <literal>hibernate.session_factory_name</"
+"literal>. If this property is omitted, the <literal>SessionFactory</literal> "
+"will not be bound to JNDI. This is especially useful in environments with a "
+"read-only JNDI default implementation (in Tomcat, for example)."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ <literal>SessionFactory</literal>를 íëì JNDI namespaceì ë°ì¸"
+"ë ìí¤ê³ ì ìí ê²½ì°, <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>ì ê°ë¤ì ì¬ì©í ê²ì´ë¤. ë§ì¼ ê·¸ê²ë¤"
+"ì´ ì§ì ëì´ ìì§ ìì ê²½ì°, ëí´í¸ <literal>InitialContext</literal>ê° ì¬ì©"
+"ë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will automatically place the <literal>SessionFactory</literal> in "
+"JNDI after you call <literal>cfg.buildSessionFactory()</literal>. This means "
+"you will have this call in some startup code, or utility class in your "
+"application, unless you use JMX deployment with the "
+"<literal>HibernateService</literal> (this is discussed later in greater "
+"detail)."
+msgstr ""
+"Hibernateë ë¹ì ì´ <literal>cfg.buildSessionFactory()</literal>를 í¸ì¶í í"
+"ì <literal>SessionFactory</literal>를 JNDI ë´ì ìëì ì¼ë¡ ìì¹ì§ì¸ ê²ì´ë¤. "
+"ì´ê²ì ë¹ì ì´ (ëì¤ì ë
¼ìëë) <literal>HibernateService</literal>를 ê°ì§ "
+"JMX ë°°ì¹ë¥¼ ì¬ì©íì§ ìë í, ë¹ì ì´ ì ì´ë ë¹ì ì ì´í리ì¼ì´ì
ë´ì ìë ì´"
+"ë¤ ìì ì½ë (ëë ì í¸ë¦¬í° í´ëì¤) ë´ìì ì´ê²ì í¸ì¶í ê²ìì ì미íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you use a JNDI <literal>SessionFactory</literal>, an EJB or any other "
+"class, you can obtain the <literal>SessionFactory</literal> using a JNDI "
+"lookup."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ íëì JNDI <literal>SessionFactory</literal>를 ì¬ì©í ê²½ì°, íë"
+"ì EJB ëë ì´ë¤ ë¤ë¥¸ í´ëì¤ë JNDI 룩ì
ì ì¬ì©íì¬ <literal>SessionFactory</"
+"literal>를 ì»ì ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you bind the <literal>SessionFactory</literal> to "
+"JNDI in a managed environment and use a <literal>static</literal> singleton "
+"otherwise. To shield your application code from these details, we also "
+"recommend to hide the actual lookup code for a <literal>SessionFactory</"
+"literal> in a helper class, such as <literal>HibernateUtil.getSessionFactory"
+"()</literal>. Note that such a class is also a convenient way to startup "
+"Hibernate—see chapter 1."
+msgstr ""
+"ì°ë¦¬ë ê´ë¦¬ëë íê²½ë¤ìì <literal>SessionFactory</literal>를 JNDIì ë°ì¸ë "
+"ìí¤ê³ ê·¸ ë°ì ê²½ì°ìë íëì <literal>static</literal> ì±ê¸í¤ì ì¬ì©íë ê²"
+"ì ê¶ì¥íë¤. ì´ë¤ ìì¸ë¡ë¶í° ë¹ì ì ì´í리ì¼ì´ì
ì½ë를 ìíìí¤ê¸° ìí´, ì°ë¦¬"
+"ë ëí <literal>HibernateUtil.getSessionFactory()</literal>ê³¼ ê°ì íëì "
+"helper í´ëì¤ ë´ìì <literal>SessionFactory</literal>ì ëí ì¤ì 룩ì
ì½ë"
+"를 ìíìí¤ê¸°ë¥¼ ê¶ì¥íë¤. ê·¸ë° í´ëì¤ë ëí Hibernate를 ììíë í¸ë¦¬í ë°©ë²"
+"ìì ë
¸í¸íë¼— 1ì¥ì ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Current Session context management with JTA"
+msgstr "Current Session context management with JTA"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The easiest way to handle <literal>Sessions</literal> and transactions is "
+"Hibernate's automatic \"current\" <literal>Session</literal> management. For "
+"a discussion of contextual sessions see <xref linkend=\"architecture-current-"
+"session\" />. Using the <literal>\"jta\"</literal> session context, if there "
+"is no Hibernate <literal>Session</literal> associated with the current JTA "
+"transaction, one will be started and associated with that JTA transaction "
+"the first time you call <literal>sessionFactory.getCurrentSession()</"
+"literal>. The <literal>Session</literal>s retrieved via "
+"<literal>getCurrentSession()</literal> in the<literal>\"jta\"</literal> "
+"context are set to automatically flush before the transaction completes, "
+"close after the transaction completes, and aggressively release JDBC "
+"connections after each statement. This allows the <literal>Session</"
+"literal>s to be managed by the life cycle of the JTA transaction to which it "
+"is associated, keeping user code clean of such management concerns. Your "
+"code can either use JTA programmatically through <literal>UserTransaction</"
+"literal>, or (recommended for portable code) use the Hibernate "
+"<literal>Transaction</literal> API to set transaction boundaries. If you run "
+"in an EJB container, declarative transaction demarcation with CMT is "
+"preferred."
+msgstr ""
+"ë¹ì ìì ì <literal>ThreadLocal</literal> ì í¸ë¦¬í°ë¥¼ ìëìí¤ë ëì ì, ì°ë¦¬"
+"ë ëí Hibernate <literal>Session</literal>를 ì»ê¸° ìí´ "
+"<literal>SessionFactory</literal> ìì <literal>getCurrentSession()</"
+"literal> ë©ìë ì¬ì©ì ê¶ì¥íë¤. <xref linkend=\"architecture-current-session"
+"\">íì¬ ì¸ì
ë¤</xref>ì ê´í ë
¼ì를 ë³´ë¼. <literal>\"jta\"</literal> ì¸ì
컨"
+"í
ì¤í¸ë¥¼ ì¬ì©íê³ ìë ê²½ì°ì, íì¬ì JTA í¸ëìì
ì¼ë¡ ììëê³ ì°ê´ë "
+"Hibernate <literal>Session</literal>ì´ ì¡´ì¬íì§ ìì ê²½ì°, ì°ë¦¬ë JTA í¸ëì"
+"ì
ì¼ë¡ ììëê³ ì°ê´ë ê²ì´ë¤. <literal>\"jta\"</literal> 컨í
ì¤í¸ìì "
+"<literal>getCurrentSession()</literal>를 íµí´ ê²ìë <literal>Session</"
+"literal>ë¤ì ê·¸ í¸ëìì
ì´ ìë£ë기 ì ì ìëì ì¼ë¡ flushë ê²ì´ê³ í¸ëìì
"
+"ìë£ íì ë«íì§ ê²ì´ê³ , ê·¸ë¦¬ê³ ê°ê°ì ë¬¸ì¥ ë¤ì JDBC 커ë¥ì
ë¤ì ì ê·¹ì ì¼ë¡ "
+"í´ì í ê²ì´ë¤. ì´ê²ì ê·¸ë° ê´ë¦¬ ì¬íë¤ì ëí´ ì¬ì©ì ì½ë를 ëª
ë£íê² ì ì§ìì¼"
+"ì, ì°ê´ëì´ ìë JTA í¸ëìì
ì ìëª
주기ì ìí´ <literal>Session</literal>ë¤"
+"ì´ ê´ë¦¬ëëë¡ íì©í´ì¤ë¤. ì´ê²ì ê·¸ë° ê´ë¦¬ ì¬íë¤ì ëí´ ì¬ì©ì ì½ë를 ëª
ë£í"
+"ê² ì ì§ìì¼ì, ì¸ì
ì´ ì°ê´ëì´ ìë JTA í¸ëìì
ì ìëª
주기ì ìí´ ê´ë¦¬ëë "
+"ê²ì <literal>Session</literal>ë¤ìê² íì©í´ì¤ë¤. ë¹ì ì ì½ëë "
+"<literal>Session</literal>ë¤ê³¼ í¸ëìì
ë¤ì ì²ë¦¬íë ê°ì¥ ìì¬ì´ ë°©ë²ì "
+"Hibernateì ìëì ì¸ \"íì¬\" <literal>Session</literal>ì´ë¤. <xref linkend="
+"\"architecture-current-session\">current sessions</xref>ì ê´í ë
¼ì를 ë³´ë¼. "
+"<literal>\"jta\"</literal> ì¸ì
컨í
ì¤í¸ë¥¼ ì¬ì©íë ê²½ì°, íì¬ì JTA í¸ëìì
"
+"ì¼ë¡ ììëê³ ì°ê´ë Hibernate <literal>Session</literal>ë¤ì´ ì¡´ì¬íì§ ìì "
+"ê²½ì°, ë¹ì ì´ <literal>sessionFactory.getCurrentSession()</literal>ì ì²ì í¸"
+"ì¶í ë íëì ì¸ì
ì´ íì¬ì JTA í¸ëìì
ì ëí´ ììëê³ ì°ê´ë ê²ì´ë¤. "
+"<literal>\"jta\"</literal> 컨í
ì¤í¸ìì <literal>getCurrentSession()</"
+"literal>ì íµí´ ê²ìë <literal>Session</literal>ë¤ì ê·¸ í¸ëìì
ì´ ìë£ë기 "
+"ì ì ìëì ì¼ë¡ flushë ê²ì´ê³ ê·¸ í¸ëìì
ìë£ë¤ íì ë«íì§ ê²ì´ê³ ê°ê°ì "
+"ë¬¸ì¥ íì JDBC 커ë¥ì
ë¤ì ì ê·¹ì ì¼ë¡ í´ì í ê²ì´ë¤. ì´ê²ì ê·¸ë° ê´ë¦¬ ì¬íë¤"
+"ì ëí´ ì¬ì©ì ì½ë를 ëª
ë£íê² ì ì§ìì¼ì, ì°ê´ëì´ ìë JTA í¸ëìì
ì ìëª
"
+"주기ì ìí´ <literal>Session</literal>ë¤ì´ ê´ë¦¬ëëë¡ íì©í´ì¤ë¤. ì´ê²ì ê·¸"
+"ë° ê´ë¦¬ ì¬íë¤ì ëí´ ì¬ì©ì ì½ë를 ëª
ë£íê² ì ì§ìì¼ì, ì¸ì
ì´ ì°ê´ëì´ ì"
+"ë JTA í¸ëìì
ì ìëª
주기ì ìí´ ê´ë¦¬ëë ê²ì <literal>Session</literal>ë¤"
+"ìê² íì©í´ì¤ë¤. ë¹ì ì ì½ëë í¸ëìì
ê²½ê³ë¤ì ì¤ì íëë° "
+"<literal>UserTransaction</literal>ì íµí´ íë¡ê·¸ë¨ ìì¼ë¡ JTA를 ì¬ì©íê±°ë, "
+"Hibernate <literal>Transaction</literal> API를 (ì´ìì±ì ìí ì½ëë¡ ê¶ì¥ë¨) "
+"ì¬ì©í ì ìë¤. ë§ì¼ ë¹ì ì´ íëì EJB 컨í
ì´ëìì ì¤ííê³ ìì ê²½ì°, CMT"
+"ì ê²½ì°ì ì ì¸ì ì¸ í¸ëìì
ê²½ê³ì¤ì ì´ ì í¸ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr "JMX ë°°ì¹"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The line <literal>cfg.buildSessionFactory()</literal> still has to be "
+"executed somewhere to get a <literal>SessionFactory</literal> into JNDI. You "
+"can do this either in a <literal>static</literal> initializer block, like "
+"the one in <literal>HibernateUtil</literal>, or you can deploy Hibernate as "
+"a <emphasis>managed service</emphasis>."
+msgstr ""
+"<literal>cfg.buildSessionFactory()</literal> ì¤ì ì¬ì í JNDIì ë¶ì íëì "
+"<literal>SessionFactory</literal>를 ì»ê¸° ìí´ ì´ëê°ìì ì¤íëì´ì¼ íë¤. ë¹"
+"ì ì (<literal>HibernateUtil</literal> ë´ì ìë ê²ì²ë¼) <literal>static</"
+"literal> initializer ë¸ë¡ ììì ì´ê²ì íí ì ìê±°ë ë¹ì ì Hibernate를 "
+"<emphasis>managed service</emphasis>ë¡ì ë°°ì¹í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate is distributed with <literal>org.hibernate.jmx.HibernateService</"
+"literal> for deployment on an application server with JMX capabilities, such "
+"as JBoss AS. The actual deployment and configuration is vendor-specific. "
+"Here is an example <literal>jboss-service.xml</literal> for JBoss 4.0.x:"
+msgstr ""
+"Hibernateë JBoss ASì ê°ì JMX ê°ì©ì±ë¤ì ê°ì§ ì´í리ì¼ì´ì
ìë² ìì ë°°ì¹"
+"를 ìí´ <literal>org.hibernate.jmx.HibernateService</literal>를 ë°°í¬íê³ ì"
+"ë¤. ì¤ì ë°°ì¹ì 구ì±ì 벤ë ì§ì ì ì´ë¤. ë¤ìì JBoss 4.0.x를 ìí "
+"<literal>jboss-service.xml</literal> ìì ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This file is deployed in a directory called <literal>META-INF</literal> and "
+"packaged in a JAR file with the extension <literal>.sar</literal> (service "
+"archive). You also need to package Hibernate, its required third-party "
+"libraries, your compiled persistent classes, as well as your mapping files "
+"in the same archive. Your enterprise beans (usually session beans) can be "
+"kept in their own JAR file, but you can include this EJB JAR file in the "
+"main service archive to get a single (hot-)deployable unit. Consult the "
+"JBoss AS documentation for more information about JMX service and EJB "
+"deployment."
+msgstr ""
+"ì´ íì¼ì <literal>META-INF</literal>ë¡ ëª
ëª
ë ëë í 리 ìì ë°°ì¹ëê³ íì¥ì "
+"<literal>.sar</literal> (service archive)를 ê°ì§ í ê°ì JAR íì¼ ìì í¨í¤ì§"
+"ëë¤. ë¹ì ì ëí Hibernate, ê·¸ê²ì íìí ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¤, ë¹ì ì ì»´íì¼"
+"ë ìì í´ëì¤ë¤ ë¿ë§ ìëë¼ ë¹ì ì 매í íì¼ë¤ì ëì¼í ìì¹´ì´ë¸ ìì í¨í¤ì§"
+"í íìê° ìë¤. ë¹ì ì ìí°íë¼ì´ì¦ ë¹ì¦(ëê° session beans)ë ê·¸ê²ë¤ ìì ì "
+"JAR íì¼ ìì ì ì§ë ì ìì§ë§, ë¹ì ì í ê°ì (hot-)ë°°ì¹ ê°ë¥í ë¨ì를 ì»ê¸° "
+"ìí´ ë©ì¸ ìë¹ì¤ ìì¹´ì´ë¸ ìì ì´ 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."
+#~ msgstr ""
+#~ "ë¹ì ì´ ë¹ ë¥´ê² ììíê³ ìí ê²½ì° <literal>hibernate.properties</literal>"
+#~ "ë ê°ì¥ ì¬ì´ ì ê·¼ë²ì´ë¤."
+
+#~ msgid "Hibernate logs various events using Apache commons-logging."
+#~ msgstr ""
+#~ "Hibernateë Apache commons-logging를 ì¬ì©íì¬ ë¤ìí ì´ë²¤í¸ë¤ì ë¡ê·¸ìí¨"
+#~ "ë¤."
+
+#~ msgid ""
+#~ "The commons-logging service will direct output to either Apache Log4j (if "
+#~ "you include <literal>log4j.jar</literal> in your classpath) or JDK1.4 "
+#~ "logging (if running under JDK1.4 or above). You may download Log4j from "
+#~ "<literal>http://jakarta.apache.org</literal>. To use Log4j you will need "
+#~ "to place a <literal>log4j.properties</literal> file in your classpath, an "
+#~ "example properties file is distributed with Hibernate in the <literal>src/"
+#~ "</literal> directory."
+#~ msgstr ""
+#~ "commons-logging ìë¹ì¤ë (ë§ì¼ ë¹ì ì´ classpath ë´ì <literal>log4j.jar</"
+#~ "literal>를 í¬í¨í ê²½ì°) Apache Log4jë¡ ëë (JDK1.4 ì´ìì ë²ì ìì ì¤í"
+#~ "ë ê²½ì°) JDK 1.4 ë¡ê¹
ì¼ë¡ ì§ì ì¶ë ¥í ê²ì´ë¤. ë¹ì ì <literal>http://"
+#~ "jakarta.apache.org</literal>ìì Log4j를 ë¤ì´ë¡ë í ì ìë¤. Log4j를 ì¬ì©"
+#~ "í기 ìí´, ë¹ì ì <literal>log4j.properties</literal> íì¼ì ë¹ì ì "
+#~ "classpath ë´ì ìì¹ì§ì¸ íìê° ìì ê²ì´ê³ , ìì properties íì¼ì "
+#~ "Hibernateì <literal>src/</literal> ëë í 리 ë´ì ë°°í¬ëì´ ìë¤."
+
+#~ msgid "<placeholder-1/> (optional)"
+#~ msgstr "<placeholder-1/> (ìµì
)"
+
+#~ msgid "InitialContextFactory"
+#~ msgstr "InitialContextFactory"
+
+#~ msgid "class of the JNDI <placeholder-1/>"
+#~ msgstr "JNDI <placeholder-1/>ì í´ëì¤"
+
+#~ msgid "eg."
+#~ msgstr "ì."
+
+#~ msgid "full.classname.of.Dialect"
+#~ msgstr "full.classname.of.Dialect"
+
+#~ msgid "debug"
+#~ msgstr "debug"
+
+#~ msgid "SCHEMA_NAME"
+#~ msgstr "SCHEMA_NAME"
+
+#~ msgid "CATALOG_NAME"
+#~ msgstr "CATALOG_NAME"
+
+#~ msgid "SessionFactory"
+#~ msgstr "SessionFactory"
+
+#~ msgid "jndi/composite/name"
+#~ msgstr "jndi/composite/name"
+
+#~ msgid "0"
+#~ msgstr "0"
+
+#~ msgid "false"
+#~ msgstr "false"
+
+#~ msgid "Statement.setFetchSize()"
+#~ msgstr "Statement.setFetchSize()"
+
+#~ msgid "true"
+#~ msgstr "executeBatch()"
+
+#~ msgid "executeBatch()"
+#~ msgstr "true"
+
+#~ msgid "Batcher"
+#~ msgstr "Batcher"
+
+#~ msgid "classname.of.BatcherFactory"
+#~ msgstr "classname.of.BatcherFactory"
+
+#~ msgid "binary"
+#~ msgstr "binary"
+
+#~ msgid "serializable"
+#~ msgstr "serializable"
+
+#~ msgid "PreparedStatement.getGeneratedKeys()"
+#~ msgstr "PreparedStatement.getGeneratedKeys()"
+
+#~ msgid "true|false"
+#~ msgstr "true|false"
+
+#~ msgid "ConnectionProvider"
+#~ msgstr "ConnectionProvider"
+
+#~ msgid "classname.of.ConnectionProvider"
+#~ msgstr "classname.of.ConnectionProvider"
+
+#~ msgid "java.sql.Connection"
+#~ msgstr "java.sql.Connection"
+
+#~ msgid "1, 2, 4, 8"
+#~ msgstr "1, 2, 4, 8"
+
+#~ msgid "after_statement"
+#~ msgstr "after_statement"
+
+#~ msgid "after_transaction"
+#~ msgstr "after_transaction"
+
+#~ msgid "auto"
+#~ msgstr "auto"
+
+#~ msgid "hibernate.connection."
+#~ msgstr "<propertyName>"
+
+#, fuzzy
+#~ msgid "<propertyName>"
+#~ msgstr ""
+#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+#~ "hibernate.connection.<placeholder-1/>\n"
+#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+#~ "propertyName\n"
+#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+#~ "hibernate.jndi.<placeholder-1/>\n"
+#~ "#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+#~ "propertyName"
+
+#~ msgid "DriverManager.getConnection()"
+#~ msgstr "DriverManager.getConnection()"
+
+#~ msgid "Pass the JDBC property <placeholder-1/> to <placeholder-2/>."
+#~ msgstr "JDBC íë¡í¼í° <placeholder-1/>ì <placeholder-2/>ì ì ë¬íë¤."
+
+#~ msgid "hibernate.jndi."
+#~ msgstr "<propertyName>"
+
+#~ msgid "Pass the property <placeholder-1/> to the JNDI <placeholder-2/>."
+#~ msgstr "<placeholder-1/> íë¡í¼í°ë¥¼ JNDI <placeholder-2/>ì ì ë¬íë¤."
+
+#~ msgid "CacheProvider"
+#~ msgstr "CacheProvider"
+
+#~ msgid "classname.of.CacheProvider"
+#~ msgstr "classname.of.CacheProvider"
+
+#~ msgid "<cache>"
+#~ msgstr "<cache>"
+
+#~ msgid "QueryCache"
+#~ msgstr "QueryCache"
+
+#~ msgid "StandardQueryCache"
+#~ msgstr "StandardQueryCache"
+
+#~ msgid "classname.of.QueryCache"
+#~ msgstr "classname.of.QueryCache"
+
+#~ msgid "prefix"
+#~ msgstr "prefix"
+
+#~ msgid "TransactionFactory"
+#~ msgstr "Transaction"
+
+#~ msgid "Transaction"
+#~ msgstr "TransactionFactory"
+
+#~ msgid "JDBCTransactionFactory"
+#~ msgstr "JDBCTransactionFactory"
+
+#~ msgid "classname.of.TransactionFactory"
+#~ msgstr "classname.of.TransactionFactory"
+
+#~ msgid "JTATransactionFactory"
+#~ msgstr "UserTransaction"
+
+#~ msgid "UserTransaction"
+#~ msgstr "JTATransactionFactory"
+
+#~ msgid "TransactionManagerLookup"
+#~ msgstr "TransactionManagerLookup"
+
+#~ msgid "classname.of.TransactionManagerLookup"
+#~ msgstr "classname.of.TransactionManagerLookup"
+
+#~ msgid "Session"
+#~ msgstr "Session"
+
+#~ msgid "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC"
+#~ msgstr "hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC"
+
+#~ msgid "create-drop"
+#~ msgstr "create-drop"
+
+#~ msgid "hibernate.cfg.xml"
+#~ msgstr "hibernate.cfg.xml"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/events.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/events.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/events.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,281 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr "ì¸í°ì
í°ë¤ê³¼ ì´ë²¤í¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is useful for the application to react to certain events that occur "
+"inside Hibernate. This allows for the implementation of generic "
+"functionality and the extension of Hibernate functionality."
+msgstr ""
+"ì´í리ì¼ì´ì
ì´ Hibernate ë´ë¶ìì ë°ìíë ì´ë¤ ì´ë²¤í¸ë¤ì ëí´ ë°ìíë ê²"
+"ì íí ì ì©íë¤. ì´ê²ì ì´ë¤ ì¢
ë¥ì ì¼ë°ì ì¸ ê¸°ë¥, ê·¸ë¦¬ê³ Hibernateì íì¥ "
+"기ë¥ì 구íì íì©í´ì¤ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors"
+msgstr "ì¸í°ì
í°ë¤"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<literal>Interceptor</literal> ì¸í°íì´ì¤ë ìì ê°ì²´ê° ì ì¥ëê³ , ì
ë°ì´í¸ë"
+"ê³ , ìì ëê±°ë ë¡ëë기 ì ì ìì ê°ì²´ì íë¡í¼í°ë¤ì ì¡°ì¬íê³ /íê±°ë ì²ë¦¬í"
+"ë ê²ì ì´í리ì¼ì´ì
ì íì©í´ì¤ì¼ë¡ì¨ ì¸ì
ì¼ë¡ë¶í° ì´í리ì¼ì´ì
ì¼ë¡ì ì½ë°±ë¤"
+"ì ì ê³µíë¤. ì´ê²ì ëí í ê°ì§ ê°ë¥í ì¬ì©ì ê°ì¬ ì 보를 ì¶ì íë ê²ì´ë¤. "
+"ì를 ë¤ì´, ë¤ì <literal>Interceptor</literal>ë <literal>Auditable</literal>"
+"ì´ ìì±ë ë <literal>createTimestamp</literal>를 ìëì ì¼ë¡ ì¤ì íê³ "
+"<literal>Auditable</literal>ì´ ì
ë°ì´í¸ë ë <literal>lastUpdateTimestamp</"
+"literal> íë¡í¼í°ë¥¼ ì
ë°ì´í¸ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can either implement <literal>Interceptor</literal> directly or extend "
+"<literal>EmptyInterceptor</literal>."
+msgstr ""
+"ë¹ì ì <literal>Interceptor</literal>를 ì§ì 구íí´ì¼ íê±°ë (ë ì¢ê²ë) "
+"<literal>EmptyInterceptor</literal>를 íì¥(extend)í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"ì¸í°ì
í°ë¤ì ë¤ì ë ê°ì í¹ì§ë¤ë¡ ëíëë¤: <literal>Session</literal>-ìì"
+"í ê·¸ë¦¬ê³ <literal>SessionFactory</literal>-ììí."
+
+#. Tag: para
+#, 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 ""
+"<literal>Session</literal>-ììì ì¸í°ì
í°ë ì¸ì
ì´ íëì "
+"<literal>Interceptor</literal>를 ìì©íë ì¤ë²ë¡ëë SessionFactory."
+"openSession() ë©ìëë¤ ì¤ íë를 ì¬ì©íì¬ ì´ë¦´ ë ì§ì ëë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<literal>SessionFactory</literal>-ììì ì¸í°ì
í°ë <literal>SessionFactory</"
+"literal>ì ë¹ëí기ì ìì <literal>Configuration</literal> ê°ì²´ì ë±ë¡ëë¤. "
+"ì´ ê²½ì°ì, ê³µê¸ëë ì¸í°ì
í°ë ê·¸ <literal>SessionFactory</literal>ë¡ë¶í° ì´"
+"ë ¤ì§ ëª¨ë ì¸ì
ë¤ì ì ì©ë ê²ì´ë¤; íëì ì¸ì
ì´ ì¬ì©í ì¸í°ì
í°ë¥¼ ëª
ìì ì¼ë¡ "
+"ì§ì íì¬ ì´ë¦¬ì§ ìë í ì´ê²ì ì°¸ì´ë¤. <literal>SessionFactory</literal>-ìì"
+"ì ì¸í°ì
í°ë¤ì ì¸ì
-ì§ì ì ì¸ ìí를 ì ì¥íì§ ìëë¡ ì£¼ìíì¬ ì°ë ë-ìì í´"
+"ì¼ íë¤. ìëíë©´ ë¤ì¤ ì¸ì
ë¤ì (ì ì ì ì¼ë¡) ì´ ì¸í°ì
í°ë¥¼ ëìì ì¼ë¡ ì¬ì©í "
+"ê²ì´ê¸° ë문ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Event system"
+msgstr "ì´ë²¤í¸ ìì¤í
"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you have to react to particular events in your persistence layer, you can "
+"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
+"system can be used in addition, or as a replacement, for interceptors."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë¹ì ì ìì ê³ì¸µìì í¹ì ì´ë²¤í¸ë¤ì ëí´ ë°ìí´ì¼ íë¤ë©´, ë¹ì "
+"ì ëí Hibernate3 <emphasis>event</emphasis> ìí¤í
ì²ë¥¼ ì¬ì©í ìë ìë¤. ì´"
+"ë²¤í¸ ìì¤í
ì ë¶ê°ë¬¼ë¡ ì¬ì©ë ì ìê±°ë ì¸í°ì
í°ë¤ì ëí ëì²´ë¬¼ë¡ ì¬ì©ë ì "
+"ìë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"본ì§ì ì¼ë¡ <literal>Session</literal> ì¸í°íì´ì¤ì 모ë ë©ìëë¤ì ì´ë²¤í¸ì "
+"ìë¡ ê´ë ¨ëì´ ìë¤. ë¹ì ì <literal>LoadEvent</literal>, "
+"<literal>FlushEvent</literal>, ë±ì ê°ëë¤ (ì ìë ì´ë²¤í¸ íì
ë¤ì ì ì²´ 리ì¤"
+"í¸ì ëí´ìë XML êµ¬ì± íì¼ DTD ëë <literal>org.hibernate.event</literal> "
+"í¨í¤ì§ë¥¼ 참조íë¼). íëì ìì²ì´ ì´ë¤ ë©ìëë¤ ì¤ íëì ìí´ ë§ë¤ì´ì§ ë, "
+"Hibernate <literal>Session</literal>ì ì ì í ì´ë²¤í¸ë¥¼ ìì±ìí¤ê³ ê·¸ê²ì ê·¸ "
+"íì
ì 구ì±ë ì´ë²¤í¸ 리ì¤ëìê² ì ë¬íë¤. ë°ì±ìì´, ì´ë¤ 리ì¤ëë¤ì ê·¸ë¤ ë©ì"
+"ëë¤ì´ íì ê·ê²°ëìë ëì¼í íë¡ì¸ì±ì 구ííë¤. íì§ë§ ë¹ì ì´ ë¦¬ì¤ë ì¸í°"
+"íì´ì¤ë¤ ì¤ íëì ë§ì¶¤ì 구ííë ê²ì´ ìì ë¡ê³ (ì를 ë¤ì´ "
+"<literal>LoadEvent</literal>ë <literal>LoadEventListener</literal> ì¸í°íì´"
+"ì¤ì ë±ë¡ë 구íì ìí´ ì²ë¦¬ëë¤), ê·¸ ê²½ì°ì ê·¸ë¤ êµ¬íì <literal>Session</"
+"literal>ì ëí´ íí´ì§ ììì <literal>load()</literal> ìì²ë¤ì ì²ë¦¬í ì±
ì"
+"ì´ ìì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The listeners should be considered singletons. This means they are shared "
+"between requests, and should not save any state as instance variables."
+msgstr ""
+"리ì¤ëë¤ì í¨ì¨ì ì´ê²ë ì±ê¸í¤(singleton)ë¤ë¡ ê°ì£¼ëì´ì¼ í ê²ì´ë¤; ì´ê²ì ê·¸"
+"ê²ë¤ì´ ìì²ë¤ ì¬ì´ìì ê³µì ëê³ , ë°ë¼ì ììì ìí를 ì¸ì¤í´ì¤ ë³ìë¤ë¡ì ì "
+"ì¥íì§ ë§ìì¼ í¨ì ì미íë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë§ì¶¤í 리ì¤ëë ê·¸ê²ì´ í¸ìì ì¸ ê¸°ì í´ëì¤ë¤(ëë 리ì¤ëë¤ì´ ì´ ì©ëë¡ final"
+"ì´ ìë ê²ì¼ë¡ ì ì¸ëë¯ë¡ Hibernate out-of-the-boxì ìí´ ì¬ì©ë ëí´í¸ ì´ë²¤"
+"í¸ ë¦¬ì¤ëë¤) ì¤ íë를 ì²ë¦¬íê³ /íê±°ë íì¥íê³ ì ìíë ì´ë²¤í¸ë¤ì ëí´ ì ì "
+"í ì¸í°íì´ì¤ë¥¼ 구íí´ì¼ íë¤. ë§ì¶¤í 리ì¤ëë¤ì <literal>Configuration</"
+"literal> ê°ì²´ë¥¼ íµí´ íë¡ê·¸ë¨ ìì¼ë¡ ë±ë¡ë ì ìê±°ë, Hibernate êµ¬ì± XML ì"
+"ì ì§ì ë ì ìë¤ (properties íì¼ì íµí ì ì¸ì ì¸ êµ¬ì±ì ì§ìëì§ ìëë¤). "
+"ë¤ìì ë§ì¶¤í load ì´ë²¤í¸ 리ì¤ëì ëí ìì ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"ë¹ì ì ëí ëí´í¸ 리ì¤ëì ë§ë¶ì¬ ê·¸ 리ì¤ë를 ì¬ì©íëë¡ Hibernateìê² ìë ¤"
+"주ë êµ¬ì± ìí¸ë¦¬ë¥¼ íìë¡ íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr "ëì ì ë¹ì ì ê·¸ê²ì íë¡ê·¸ëë° ë°©ìì¼ë¡ ë±ë¡í ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal><listener/></literal> elements, each "
+"reference will result in a separate instance of that class. If you need to "
+"share listener instances between listener types you must use the "
+"programmatic registration approach."
+msgstr ""
+"ì ì¸ì ì¼ë¡ ë±ë¡ë 리ì¤ëë¤ì ì¸ì¤í´ì¤ë¤ì ê³µì í ì ìë¤. ë§ì¼ ëì¼í í´ëì¤ "
+"ì´ë¦ì´ ì¬ë¬ ê°ì <literal><listener/></literal> ììë¤ìì ì¬ì©ë ê²½"
+"ì°, ê°ê°ì 참조ë ê·¸ í´ëì¤ì ëí ë³ëì ì¸ì¤í´ì¤ë¡ ê·ê²°ë ê²ì´ë¤. ë§ì¼ ë¹ì "
+"ì´ ë¦¬ì¤ë íì
ë¤ ì¬ì´ìì 리ì¤ë ì¸ì¤í´ì¤ë¤ì ê³µì í ê°ì©ì±ì íìë¡ í ê²½ì° "
+"ë¹ì ì íë¡ê·¸ëë° ë°©ìì ë±ë¡ ì ê·¼ë²ì ì¬ì©í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, 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
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr "Hibernate ì ì¸ì ì¸ ë³´ì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Usually, declarative security in Hibernate applications is managed in a "
+"session facade layer. Hibernate3 allows certain actions to be permissioned "
+"via JACC, and authorized via JAAS. This is an optional functionality that is "
+"built on top of the event architecture."
+msgstr ""
+"ëê° Hibernate ì´í리ì¼ì´ì
ë¤ìì ì ì¸ì ì¸ ë³´ìì session facade ê³ì¸µ ë´ìì "
+"ê´ë¦¬ëë¤. ì´ì , Hibernate3ë ì´ë¤ ì¡ì
ë¤ì´ JACC를 íµí´ í¼ë¯¸ì
ì 주ì´ì§ê³ , "
+"JAAS를 íµí´ ì¸ê°ëë ê²ì íì©í´ì¤ë¤. ì´ê²ì 모ë ìí¤í
ì²ì ìë¨ì ë¹ëë ìµ"
+"ì
기ë¥ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"먼ì , ë¹ì ì JAAS authorization ì¬ì©ì ì´ì© ê°ë¥íëë¡ í기 ìí´ ì ì í ì´ë²¤"
+"í¸ ë¦¬ì¤í°ë¤ì 구ì±í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
+"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
+"></event></literal> when there is exactly one listener for a "
+"particular event type."
+msgstr ""
+"<literal><listener type=\"...\" class=\"...\"/></literal>ë í¹ì ì´ë²¤"
+"í¸ íì
ì ëí´ ì íí í ê°ì 리ì¤ëê° ì¡´ì¬í ë ë¨ì§ <literal><event "
+"type=\"...\"><listener class=\"...\"/></event></literal>ì ë¨"
+"ì¶íìì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
+"permissions to roles:"
+msgstr ""
+"ë¤ìì¼ë¡, ì¬ì í <literal>hibernate.cfg.xml</literal> ë´ìì í¼ë¯¸ì
ë¤ì role"
+"ë¤ì ë°ì¸ë ìí¨ë¤ :"
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr ""
+"ìí (role) ì´ë¦ë¤ì ë¹ì ì JACC íë¡ë°ì´ëì ìí´ ì¸ì§ë ìí (role)ë¤ì´ë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_mappings.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_mappings.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_mappings.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,189 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr "ìì : ì¬ë¬ ê°ì§ 매íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr "ì´ ì¥ì ëªëª ë³´ë¤ ë³µì¡í ì°ê´ 매íë¤ì ë³´ì¬ì¤ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr "Employer/Employee"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<literal>Employer</literal>ì <literal>Employee</literal> ì¬ì´ì ê´ê³ì ëí "
+"ë¤ì 모íì ê·¸ ì°ê´ë¥¼ íííë ë° ì¤ì ìí°í° í´ëì¤(<literal>Employment</"
+"literal>)를 ì¬ì©íë¤. ëì¼í ë ë¶ë¶ë¤ì ëí´ íë ì´ìì ì±ì© ì£¼ê¸°ê° ì¡´ì¬í "
+"ì ì기 ë문ì ì´ê²ì´ íí´ì§ë¤. ì»´í¬ëí¸ë¤ì´ íí ê°ë¤ê³¼ ì¢
ì
ì ì´ë¦ë¤ì 모í"
+"í ìí¤ëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr "ë¤ìì ê°ë¥í 매í 문ìì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr ""
+"ê·¸ë¦¬ê³ ë¤ìì <literal>SchemaExport</literal>ì ìí´ ìì±ë í
ì´ë¸ ì¤í¤ë§ì´"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr "Author/Work"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<literal>Work</literal>, <literal>Author</literal> ê·¸ë¦¬ê³ <literal>Person</"
+"literal> ì¬ì´ì ê´ê³ë¤ì ëí ë¤ì 모íì ê²í íì. ì°ë¦¬ë <literal>Work</"
+"literal>ê³¼ <literal>Author</literal> ì¬ì´ì ê´ê³ë¥¼ many-to-many ì°ê´ì¼ë¡ íí"
+"íë¤. ì°ë¦¬ë <literal>Author</literal>ì <literal>Person</literal> ì¬ì´ì ê´"
+"ê³ë¥¼ one-to-one ì°ê´ì¼ë¡ íííê³ ì ì ííë¤. ë ë¤ë¥¸ ê°ë¥ì±ì "
+"<literal>Author</literal>ê° <literal>Person</literal>ì íì¥íëë¡ íë ê²ì¼ "
+"ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr "ë¤ì 매í 문ìë ì´ë¤ ê´ê³ë¤ì ì ííê² íííë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are four tables in this mapping: <literal>works</literal>, "
+"<literal>authors</literal> and <literal>persons</literal> hold work, author "
+"and person data respectively. <literal>author_work</literal> is an "
+"association table linking authors to works. Here is the table schema, as "
+"generated by <literal>SchemaExport</literal>:"
+msgstr ""
+"ì´ ë§¤íìë ë¤ ê°ì í
ì´ë¸ë¤ì´ ì¡´ì¬íë¤. <literal>works</literal>, "
+"<literal>authors</literal>ì <literal>persons</literal>ì ê°ê° ìì
ë°ì´í°, "
+"ì ì ë°ì´í°, ê°ì¸ ë°ì´í°ë¥¼ ë³´ê´íë¤. <literal>author_work</literal>ë ì ìë¤"
+"ì ìì
ë¤ì ì°ê²°ìí¤ë ì°ê´ í
ì´ë¸ì´ë¤. ë¤ìì <literal>SchemaExport</"
+"literal>ì ìí´ ìì±ë í
ì´ë¸ ì¤í¤ë§ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr "Customer/Order/Product"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ì´ì <literal>Customer</literal>, <literal>Order</literal>ì "
+"<literal>LineItem</literal> ê·¸ë¦¬ê³ <literal>Product</literal> ì¬ì´ì ê´ê³ë¤"
+"ì ê´í 모íì ê²í íì. <literal>Customer</literal>ì <literal>Order</"
+"literal> ì¬ì´ì one-to-many ì°ê´ì´ ì¡´ì¬íì§ë§, ì°ë¦¬ë ì´ë»ê² <literal>Order</"
+"literal> / <literal>LineItem</literal> / <literal>Product</literal>를 ííí "
+"ê²ì¸ê°? ëë <literal>Order</literal>ì <literal>Product</literal> ì¬ì´ì "
+"many-to-many ì°ê´ë¥¼ ëíë´ë íëì ì°ê´ í´ëì¤ë¡ì <literal>LineItem</"
+"literal>ì 매ííê¸°ë¡ ì ííë¤. Hibernateìì ì´ê²ì composite ììë¡ ëª
ëª
ë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The mapping document will look like this:"
+msgstr "매í 문ì:"
+
+#. Tag: para
+#, 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 ""
+"<literal>customers</literal>, <literal>orders</literal>, "
+"<literal>line_items</literal> ê·¸ë¦¬ê³ <literal>products</literal>ë ê°ê° ê³ ê° "
+"ë°ì´í°, 주문 ë°ì´í°, 주문 ë¼ì¸ ìì´í
ë°ì´í°, ê·¸ë¦¬ê³ ì í ë°ì´í°ë¥¼ ë³´ê´íë¤. "
+"<literal>line_items</literal>ë ëí 주문ë¤ì ì íë¤ê³¼ ì°ê²°ìí¤ë ì°ê´ í
ì´ë¸"
+"ë¡ì ëìíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr "기í ìì 매íë¤"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ì´ë¤ ìì ë¤ì 모ë Hiberante test suiteë¡ë¶í° ì·¨íë¤. ë¹ì ì 거기ì ë§ì ë¤"
+"른 ì ì©í ìì 매íë¤ì ë°ê²¬í ê²ì´ë¤. Hibernate ë°°í¬ë³¸ì <literal>test</"
+"literal> í´ë를 ì´í´ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr "\"íìíë(Typed)\" one-to-one ì°ê´"
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr "Composite í¤ ìì "
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr "ê³µì ë í©ì± í¤ ìì±ì ê°ì§ Many-to-many"
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr "ë´ì© ê¸°ë° íë³"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr "ëì²´ í¤ë¤ì ëí ì°ê´ë¤"
+
+#~ msgid "TODO: put words around this stuff"
+#~ msgstr "TODO: ì´ ë´ì©ì ëë¬ì¼ ë§ë¤ì ì§ì´ë£ì ê²."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_parentchild.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_parentchild.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_parentchild.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,407 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr "ìì : ë¶ëª¨/ìì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One of the first things that new users want to do with Hibernate is to model "
+"a parent/child type relationship. There are two different approaches to "
+"this. The most convenient approach, especially for new users, is to model "
+"both <literal>Parent</literal> and <literal>Child</literal> as entity "
+"classes with a <literal><one-to-many></literal> association from "
+"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
+"approach is to declare the <literal>Child</literal> as a <literal><"
+"composite-element></literal>. The default semantics of a one-to-many "
+"association in Hibernate are much less close to the usual semantics of a "
+"parent/child relationship than those of a composite element mapping. We will "
+"explain how to use a <emphasis>bidirectional one-to-many association with "
+"cascades</emphasis> to model a parent/child relationship efficiently and "
+"elegantly."
+msgstr ""
+"ìë¡ì´ ì¬ì©ìë¤ì´ Hibernateë¡ ííê³ ì ìëíë ë°ë¡ 첫 ë²ì§¸ ê²ë¤ ì¤ íëë "
+"ë¶ëª¨/ìì íì
ì ê´ê³ë¥¼ 모íí ìí¤ë ê²ì´ë¤. ì´ê²ì ëí ë ê°ì§ ë¤ë¥¸ ì ê·¼ë²"
+"ë¤ì´ ì¡´ì¬íë¤. ì¬ë¬ê°ì§ ì´ì ë¤ë¡ ì¸í´ í¹í ìë¡ì´ ì¬ì©ìë¤ìê² ê°ì¥ í¸í ì ê·¼"
+"ë²ì <literal>Parent</literal>ë¡ë¶í° <literal>Child</literal>ë¡ì "
+"<literal><one-to-many></literal> ì°ê´ì ê°ì§ ìí°í° í´ëì¤ë¤ë¡ì "
+"<literal>Parent</literal>ì <literal>Child</literal> ìì를 모íí ìí¤ë ê²"
+"ì´ë¤. (ë¤ë¥¸ ì ê·¼ë²ì <literal>Child</literal>를 <literal><composite-"
+"element></literal>ë¡ ì ì¸íë ê²ì´ë¤.) ì´ì , (Hibernateìì) one to many "
+"ì°ê´ì ëí ëí´í¸ ì미ë composite ìì 매íì ìë¯¸ë³´ë¤ ë¶ëª¨/ìì ê´ê³ì íµ"
+"ìì ì¸ ì미ì í¨ì¬ ë ê°ê¹ë¤ë ê²ì´ íëª
ëë¤. ì°ë¦¬ë ë¶ëª¨/ìì ê´ê³ë¥¼ í¨ì¨ì "
+"ì´ê³ ê°ë ¥íê² ëª¨íí ìí¤ê¸° ìí´ <emphasis>ì¼ì¤ì¼ì´ëë¤ì ê°ì§ ìë°©í¥ one to "
+"many ì°ê´</emphasis>ì ì¬ì©íë ë°©ë²ì ì¤ëª
í ê²ì´ë¤. ê·¸ê²ì ì í ì´ë µì§ ì"
+"ë¤!"
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr "ì½ë ì
ë¤ì ê´í ë
¸í¸"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate collections are considered to be a logical part of their owning "
+"entity and not of the contained entities. Be aware that this is a critical "
+"distinction that has the following consequences:"
+msgstr ""
+"Hibernate ì½ë ì
ë¤ì ê·¸ê²ë¤ì ìì íê³ ìë ìí°í°ì ë
¼ë¦¬ì ë¶ë¶ì¼ë¡ ê°ì£¼ë"
+"ë¤; ê²°ì½ í¬í¨ë ìí°í°ë¤ì ë¶ë¶ì´ ìëë¤. ì´ê²ì ì¤ëí 구ë¶ì ì´ë¤! ê·¸ê²ì ë¤"
+"ìì ë¤ì ê²°ê³¼ë¤ì ê°ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When you remove/add an object from/to a collection, the version number of "
+"the collection owner is incremented."
+msgstr ""
+"ì½ë ì
ì¼ë¡ë¶í° ê°ì²´ë¥¼ ì ê±°íê³ /ì½ë ì
ì ê°ì²´ë¥¼ ì¶ê° ìí¬ ë, ì½ë ì
ìì ìì "
+"ë²ì ë²í¸ê° ì¦ê°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If an object that was removed from a collection is an instance of a value "
+"type (e.g. a composite element), that object will cease to be persistent and "
+"its state will be completely removed from the database. Likewise, adding a "
+"value type instance to the collection will cause its state to be immediately "
+"persistent."
+msgstr ""
+"ë§ì¼ ì½ë ì
ì¼ë¡ë¶í° ì ê±°ëìë ê°ì²´ê° íëì ê° íì
ì ì¸ì¤í´ì¤(ì를 ë¤ì´ "
+"composite ìì)ì´ë©´, ê·¸ ê°ì²´ë ìììí를 ëë´ê³ ê·¸ê²ì ìíê° ë°ì´í°ë² ì´ì¤ë¡"
+"ë¶í° ìì í ì ê±°ë ê²ì´ë¤. ë§ì°¬ê°ì§ë¡ íëì ê° íì
ì ì¸ì¤í´ì¤ë¥¼ ì½ë ì
ì ì¶"
+"ê°ìí¤ë ê²ì ê·¸ê²ì ìíê° ì¦ì ììí ëëë¡ ê°ì ìí¬ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Conversely, if an entity is removed from a collection (a one-to-many or many-"
+"to-many association), it will not be deleted by default. This behavior is "
+"completely consistent; a change to the internal state of another entity "
+"should not cause the associated entity to vanish. Likewise, adding an entity "
+"to a collection does not cause that entity to become persistent, by default."
+msgstr ""
+"ë°ë©´ì, ë§ì¼ ìí°í°ê° ì½ë ì
ì¼ë¡ë¶í° ì ê±°ë ê²½ì°(one-to-many ëë many-to-"
+"many ì°ê´), ê·¸ê²ì ëí´í¸ë¡ ìì ëì§ ìì ê²ì´ë¤. ì´ í¹ì§ì ìì íê² ì¼ê´ì ì´"
+"ë¤ - ë¤ë¥¸ ìí°í°ì ë´ë¶ ìíì ëí ë³ê²½ì ì°ê´ë ìí°í°ë¥¼ ì¬ë¼ì§ëë¡ ê°ì í"
+"ì§ ìì ê²ì´ë¤! ë§ì°¬ê°ì§ë¡ ì½ë ì
ì ìí°í°ë¥¼ ì¶ê°ìí¤ë ê²ì ëí´í¸ë¡ ê·¸ ìí°"
+"í°ê° ììí ëëë¡ ê°ì ìí¤ì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Adding an entity to a collection, by default, merely creates a link between "
+"the two entities. Removing the entity will remove the link. This is "
+"appropriate for all sorts of cases. However, it is not appropriate in the "
+"case of a parent/child relationship. In this case, the life of the child is "
+"bound to the life cycle of the parent."
+msgstr ""
+"ëì ì ì½ë ì
ì¼ë¡ì ìí°í° ì¶ê°ê° ë ìí°í°ë¤ ì¬ì´ì ë¨ì§ íëì ë§í¬ë¥¼ ìì±"
+"ìí¤ë ë°ë©´ì, ê·¸ê²ì ì ê±°íë ê²ì ë§í¬ë¥¼ ì ê±°íë¤ë ì ì´ ëí´í¸ í¹ì§ì´ë¤. "
+"ì´ê²ì 모ë ì¢
ë¥ì ê²½ì°ë¤ì ëí´ ë§¤ì° ì ì íë¤. ê·¸ê²ì´ ì í ì ì íì§ ìì ê³³"
+"ì ë¶ëª¨/ìì ê´ê³ì¸ ê²½ì°ì´ê³ , ì¬ê¸°ì ììì ìì ë ë¶ëª¨ì ìëª
주기ì 묶ì¬ì ¸ "
+"ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr "ìë°©í¥ one-to-many"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we start with a simple <literal><one-to-many></literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+"<literal>Parent</literal>ë¡ë¶í° <literal>Child</literal>ë¡ì ê°ë¨í "
+"<literal><one-to-many></literal> ì°ê´ê´ê³ë¡ ììíë¤ê³ ê°ì íì."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "If we were to execute the following code:"
+msgstr "ì°ë¦¬ê° ë¤ì ì½ë를 ì¤íìì¼°ë¤ë©´"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr "Hibernateë ë ê°ì SQL 문ì¥ë¤ì ì¤íí ê²ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+"<literal>c</literal>ì ëí ë ì½ë를 ìì±ìí¤ë <literal>INSERT</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
+"<literal>c</literal>"
+msgstr ""
+"<literal>p</literal>ë¡ë¶í° <literal>c</literal>ë¡ì ë§í¬ë¥¼ ìì±ìí¤ë "
+"<literal>UPDATE</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is not only inefficient, but also violates any <literal>NOT NULL</"
+"literal> constraint on the <literal>parent_id</literal> column. You can fix "
+"the nullability constraint violation by specifying <literal>not-null=\"true"
+"\"</literal> in the collection mapping:"
+msgstr ""
+"ì´ê²ì ë¹í¨ì¨ì ì¼ ë¿ë§ ìëë¼, ëí <literal>parent_id</literal> ì»¬ë¼ ìì ì"
+"ìì <literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ì ìë°°ëë¤. ì°ë¦¬ë ì½ë ì
매í"
+"ìì <literal>not-null=\"true\"</literal>를 ì§ì í¨ì¼ë¡ì¨ null íì© ê°ë¥ 컨ì¤"
+"í¸ë ì¸í¸ ìë°ì ì ì í ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr "íì§ë§ ì´ê²ì ê¶ì¥ëë í´ê²°ì±
ì´ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The underlying cause of this behavior is that the link (the foreign key "
+"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
+"literal> is not considered part of the state of the <literal>Child</literal> "
+"object and is therefore not created in the <literal>INSERT</literal>. The "
+"solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+"ì´ íìì 기본 ìì¸ì <literal>p</literal>ë¡ë¶í° <literal>c</literal>ë¡ì ë§"
+"í¬(foreign key <literal>parent_id</literal>)ê° <literal>Child</literal> ê°ì²´"
+"ì ìíì ë¶ë¶ì¼ë¡ ê°ì£¼ëì§ ìê³ ê·¸ë¬ë¯ë¡ <literal>INSERT</literal>ë¡ ìì±ë"
+"ì§ ìëë¤ë ì ì´ë¤. ë°ë¼ì í´ê²°ì±
ì <literal>Child</literal> 매íì ë§í¬ ë¶ë¶"
+"ì ë§ëë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You also need to add the <literal>parent</literal> property to the "
+"<literal>Child</literal> class."
+msgstr ""
+"(ì°ë¦¬ë ëí <literal>parent</literal> íë¡í¼í°ë¥¼ <literal>Child</literal> í´"
+"ëì¤ì ì¶ê°ìí¬ íìê° ìë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now that the <literal>Child</literal> entity is managing the state of the "
+"link, we tell the collection not to update the link. We use the "
+"<literal>inverse</literal> attribute to do this:"
+msgstr ""
+"ì´ì <literal>Child</literal> ìí°í°ê° ë§í¬ì ìí를 ê´ë¦¬íë¤ë ì ì ë
¸í¸í"
+"ê³ , ì°ë¦¬ë ë§í¬ë¥¼ ì
ë°ì´í¸ ìí¤ì§ ë§ëë¡ ì½ë ì
ìê² íµë³´íë¤. ì°ë¦¬ë "
+"<literal>inverse</literal> ìì±ì ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr ""
+"ë¤ì ì½ëë ìë¡ì´ <literal>Child</literal>를 ì¶ê°ìí¤ëë° ì¬ì©ë ê²ì´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr ""
+"ê·¸ë¦¬ê³ ì´ì , ì ì¼íê² í ê°ì SQL <literal>INSERT</literal>ê° ì¤íë ê²ì´ë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You could also create an <literal>addChild()</literal> method of "
+"<literal>Parent</literal>."
+msgstr ""
+"ì½ê° ê±°ì¹ ê², ì°ë¦¬ë <literal>Parent</literal>ì <literal>addChild()</"
+"literal> ë©ìë를 ìì±ìí¬ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The code to add a <literal>Child</literal> looks like this:"
+msgstr "ì´ì , <literal>Child</literal>를 ì¶ê°íë ì½ëë ë¤ìê³¼ ê°ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Cascading life cycle"
+msgstr "ì¼ì¤ì¼ì´ë© ìëª
주기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can address the frustrations of the explicit call to <literal>save()</"
+"literal> by using cascades."
+msgstr ""
+"<literal>save()</literal>ì ëí ëª
ìì ì¸ í¸ì¶ì ì¬ì í ì±ê°ìë¤. ì°ë¦¬ë ì¼ì¤"
+"ì¼ì´ë©ì ì¬ì©íì¬ ì´ê²ì ì기í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This simplifies the code above to:"
+msgstr "ë¤ìì ìì ì½ë를 ë¨ìí ìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Similarly, we do not need to iterate over the children when saving or "
+"deleting a <literal>Parent</literal>. The following removes <literal>p</"
+"literal> and all its children from the database."
+msgstr ""
+"ì ì¬íê², ì°ë¦¬ë <literal>Parent</literal>를 ì ì¥íê±°ë ìì í ë ììë¤ì ë"
+"í´ ë°ë³µíë ê²ì íìë¡ íì§ ìëë¤. ë¤ìì ë°ì´í°ë² ì´ì¤ë¡ë¶í° <literal>p</"
+"literal>ì 모ë ê·¸ê²ì ììë¤ì ì ê±°ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "However, the following code:"
+msgstr "íì§ë§, ë¤ì ì½ë"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"will not remove <literal>c</literal> from the database. In this case, it "
+"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
+"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
+"</literal> the <literal>Child</literal>."
+msgstr ""
+"ë ë°ì´í°ë² ì´ì¤ë¡ë¶í° <literal>c</literal>를 ì ê±°íì§ ìì ê²ì´ë¤; ê·¸ê²ì ì¤"
+"ì§ <literal>p</literal>ì ëí ë§í¬ë§ì ì ê±°í ê²ì´ë¤(ê·¸ë¦¬ê³ ì´ ê²½ì°ì "
+"<literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ ìë°ì ì¼ì¼í¬ ê²ì´ë¤ ). ë¹ì ì ëª
ì"
+"ì ì¼ë¡ <literal>Child</literal>를 <literal>delete()</literal> ìí¬ íìê° ì"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In our case, a <literal>Child</literal> cannot exist without its parent. So "
+"if we remove a <literal>Child</literal> from the collection, we do want it "
+"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
+"\"</literal>."
+msgstr ""
+"ì´ì ì°ë¦¬ì ê²½ì°ì <literal>Child</literal>ë ê·¸ê²ì ë¶ëª¨ ìì´ë ì§ì ì¼ë¡ ì¡´"
+"ì¬í ì ìë¤. ë°ë¼ì ë§ì¼ ì°ë¦¬ê° ì½ë ì
ì¼ë¡ë¶í° íëì <literal>Child</"
+"literal>를 ì ê±°í ê²½ì°, ì°ë¦¬ë ê·¸ê²ì´ ì ë§ë¡ ìì ë기를 ìíë¤. ì´ë¥¼ ìí´ ì°"
+"리ë <literal>cascade=\"all-delete-orphan\"</literal>ì ì¬ì©í´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though the collection mapping specifies <literal>inverse=\"true\"</"
+"literal>, cascades are still processed by iterating the collection elements. "
+"If you need an object be saved, deleted or updated by cascade, you must add "
+"it to the collection. It is not enough to simply call <literal>setParent()</"
+"literal>."
+msgstr ""
+"ë
¸í¸: ë¹ë¡ ì½ë ì
매íì´ <literal>inverse=\"true\"</literal>를 ì§ì í ì§ë¼"
+"ë, ì¼ì¤ì¼ì´ëë¤ì ì¬ì í ì½ë ì
ììë¤ì ë°ë³µí¨ì¼ë¡ì¨ ì²ë¦¬ëë¤. ë°ë¼ì ê°ì²´"
+"ê° ì¼ì¤ì¼ì´ëì ìí´ ì ì¥ëê³ , ìì ëê±°ë ì
ë°ì´í¸ ëë ê²ì ë¹ì ì´ íìë¡ "
+"í ê²½ì°, ë¹ì ì ê·¸ê²ì ê·¸ ì½ë ì
ì ì¶ê°í´ì¼ íë¤. ë¨ìí <literal>setParent()"
+"</literal>를 í¸ì¶íë ê²ì¼ë¡ë 충ë¶íì§ ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr "ì¼ì¤ì¼ì´ëë¤ê³¼ <literal>unsaved-value</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
+"literal>, made some changes in a UI action and wanted to persist these "
+"changes in a new session by calling <literal>update()</literal>. The "
+"<literal>Parent</literal> will contain a collection of children and, since "
+"the cascading update is enabled, Hibernate needs to know which children are "
+"newly instantiated and which represent existing rows in the database. We "
+"will also assume that both <literal>Parent</literal> and <literal>Child</"
+"literal> have generated identifier properties of type <literal>Long</"
+"literal>. Hibernate will use the identifier and version/timestamp property "
+"value to determine which of the children are new. (See <xref linkend="
+"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
+"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
+"emphasis>"
+msgstr ""
+"ì°ë¦¬ê° íëì <literal>Session</literal> ìì <literal>Parent</literal>를 ë¡"
+"ëìì¼°ê³ UI ì¡ì
ìì ì´ë¤ ë³ê²½ë¤ì ííê³ , <literal>update()</literal>를 í¸ì¶"
+"íì¬ ìë¡ì´ ì¸ì
ìì ì´ë¤ ë³ê²½ë¤ì ììí ìí¤ë ê²ì ìíë¤ê³ ê°ì íì. "
+"<literal>Parent</literal>ë ììë¤ì ê°ì§ ì½ë ì
ì í¬í¨í ê²ì´ê³ , ì¼ì¤ì¼ì´ë© "
+"ì
ë°ì´í¸ê° ì¬ì© ê°ë¥í기 ë문ì, Hibernateë ì´ë ììë¤ì´ ìë¡ì´ ì´ê¸°í ëë"
+"ì§ ê·¸ë¦¬ê³ ì´ë ê²ì´ ë°ì´í°ë² ì´ì¤ìì íì¬ íë¤ì íííëì§ë¥¼ ì íìê° ì"
+"ë¤. <literal>Parent</literal>ì <literal>Child</literal> 모ë <literal>Long</"
+"literal> íì
ì ìë³ì íë¡í¼í°ë¤ì ìì±ìì¼°ë¤ê³ ê°ì íì. Hibernateë ì´ë "
+"ììë¤ì´ ìë¡ì´ ê²ì¸ì§ë¥¼ ê²°ì íëë° ìë³ìì version/timestamp íë¡í¼í° ê°ì "
+"ì¬ì©í ê²ì´ë¤.(<xref linkend=\"objectstate-saveorupdate\"/>ì ë³´ë¼.) "
+"<emphasis>Hibernate3ììë<literal>unsaved-value</literal>를 ëì´ì ëª
ìì ì¼"
+"ë¡ ì§ì í íìê° ìë¤.</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>:"
+msgstr ""
+"ë¤ì ì½ëë <literal>parent</literal>ì <literal>child</literal>를 ì
ë°ì´í¸í"
+"ê³ <literal>newChild</literal>를 ì½ì
ìí¬ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This may be suitable for the case of a generated identifier, but what about "
+"assigned identifiers and composite identifiers? This is more difficult, "
+"since Hibernate cannot use the identifier property to distinguish between a "
+"newly instantiated object, with an identifier assigned by the user, and an "
+"object loaded in a previous session. In this case, Hibernate will either use "
+"the timestamp or version property, or will actually query the second-level "
+"cache or, worst case, the database, to see if the row exists."
+msgstr ""
+"ë¬¼ë¡ ê·¸ê²ì ìì±ëë ìë³ìì ê²½ì°ìë 모ë ë§¤ì° ì¢ì§ë§, í ë¹ëë ìë³ìë¤ê³¼ "
+"composite ìë³ìë¤ì ëí´ìë ì´ë íê°? ì´ê²ì ë³´ë¤ ì´ë µë¤. ìëíë©´ "
+"Hibernateë (ì¬ì©ìì ìí´ í ë¹ë ìë³ì를 ê°ì§) ìë¡ì´ ì´ê¸°í ë ê°ì²´ì ì´"
+"ì ì¸ì
ìì ë¡ëëìë ê°ì²´ ì¬ì´ë¥¼ 구ë³ì§ëë° ìë³ì íë¡í¼í°ë¥¼ ì¬ì©í ì ì"
+"기 ë문ì´ë¤. ì´ ê²½ì°ì, Hibernateë timestamp íë¡í¼í° ëë version íë¡í¼í°"
+"를 ì¬ì©íê±°ë ì¤ì ë¡ second-level ìºì를 ì§ìíê±°ë ê°ì¥ ëì ê²½ì°ìë íì´ "
+"ì¡´ì¬íëì§ë¥¼ ì기 ìí´ ë°ì´í°ë² ì´ì¤ë¥¼ ì§ìí ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr "ê²°ë¡ "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The sections we have just covered can be a bit confusing. However, in "
+"practice, it all works out nicely. Most Hibernate applications use the "
+"parent/child pattern in many places."
+msgstr ""
+"ì¬ê¸°ì ìì§í ê²ì´ ì½ê° ìê³ ê·¸ê²ì ì²ììë í¼ëì¤ë¬ì´ ê²ì²ë¼ ë³´ì¼ ì ìë¤. "
+"íì§ë§ ì¤ì ë¡ ê·¸ê²ì 모ë ë§¤ì° ì¢ê² ëìíë¤. ëë¶ë¶ì Hibernate ì´í리ì¼ì´ì
"
+"ë¤ì ë§ì ì¥ìë¤ìì ë¶ëª¨/ìì í¨í´ì ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We mentioned an alternative in the first paragraph. None of the above issues "
+"exist in the case of <literal><composite-element></literal> mappings, "
+"which have exactly the semantics of a parent/child relationship. "
+"Unfortunately, there are two big limitations with composite element classes: "
+"composite elements cannot own collections and they should not be the child "
+"of any entity other than the unique parent."
+msgstr ""
+"ì°ë¦¬ë 첫 ë²ì§¸ ë¨ë½ìì ëìì ì¸ê¸íë¤. ìì ìì ë¤ ì¤ ì´ë ê²ë ì ííê² ë¶"
+"모/ìì ê´ê³ì ì미를 ê°ì§, <literal><composite-element></literal> 매í"
+"ë¤ì ê²½ì°ìë ì¡´ì¬íì§ ìëë¤. ë¶ííë, composite ìì í´ëì¤ë¤ì ëí ë ê°"
+"ì 커ë¤ë ì ì½ë¤ì´ ì¡´ì¬íë¤: composite ììë¤ì ì½ë ì
ë¤ì ìì íì§ ìê³ , ê·¸"
+"ê²ë¤ì ì ì¼í ë¶ëª¨ê° ìë ë¤ë¥¸ ì´ë¤ ìí°í°ì ììì¼ ìë ìë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_weblog.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_weblog.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/example_weblog.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,56 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr "ìì : Weblog ì´í리ì¼ì´ì
"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "ìì í´ëì¤ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The persistent classes here represent a weblog and an item posted in a "
+"weblog. They are to be modelled as a standard parent/child relationship, but "
+"we will use an ordered bag, instead of a set:"
+msgstr ""
+"ìì í´ëì¤ë¤ì ì¹ë¡ê·¸, ê·¸ë¦¬ê³ ì¹ ë¡ê·¸ ë´ì ê²ìë í목ì íííë¤.ê·¸ê²ë¤ì "
+"íì¤ ë¶ëª¨/ìì ê´ê³ë¡ 모íí ë ê²ì´ì§ë§, ì°ë¦¬ë set ëì ì ììì§ìì§ bag를 "
+"ì¬ì©í ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr "Hibernate 매íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr "XML 매íë¤ì ì´ì ë§¤ì° ê°ë¨í´ì§ ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr "Hibernate ì½ë"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes using Hibernate:"
+msgstr ""
+"ë¤ì í´ëì¤ë ì°ë¦¬ê° Hibernate를 ì¬ì©íì¬ ì´ë¤ í´ëì¤ë¤ë¡ íí ì ìë ëªëª "
+"ì¢
ë¥ì ê²ë¤ì ì¤ëª
íë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/filters.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/filters.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/filters.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,179 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr "ë°ì´í° íí°ë§í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 provides an innovative new approach to handling data with "
+"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
+"named, parameterized filter that can be enabled or disabled for a particular "
+"Hibernate session."
+msgstr ""
+"Hibernate3ì íì ì ì¸ \"ê°ìì±(visibility)\" ê·ì¹ë¤ë¡ì ë°ì´í°ë¥¼ ì²ë¦¬íë ì"
+"ë¡ì´ ì ê·¼ë²ì ì ê³µíë¤. <emphasis>Hibernate íí°</emphasis>ë í¹ì Hibernate "
+"ì¸ì
ì ëí´ ì´ì© ê°ë¥íê² ëê±°ë ì´ì© ë¶ê°ë¥íê² ë ìë ìë ì ì, ëª
ëª
ë í"
+"ë¼ë¯¸í°í ë íí°ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate filters"
+msgstr "Hibernate íí°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 has the ability to pre-define filter criteria and attach those "
+"filters at both a class level and a collection level. A filter criteria "
+"allows you to define a restriction clause similar to the existing \"where\" "
+"attribute available on the class and various collection elements. These "
+"filter conditions, however, can be parameterized. The application can then "
+"decide at runtime whether certain filters should be enabled and what their "
+"parameter values should be. Filters can be used like database views, but "
+"they are parameterized inside the application."
+msgstr ""
+"Hibernate3ì íí° ê¸°ì¤(criteria)ì 미리 ì ìíê³ í´ëì¤ ë 벨과 ì½ë ì
ë 벨 ì"
+"ììì ê·¸ë¤ íí°ë¤ì 첨ë¶í ë¥ë ¥ì ì¶ê°ìí¨ë¤. íí° ê¸°ì¤(criteria)ì í´ëì¤ "
+"ììì ë¤ìí ì½ë ì
ììë¤ì ëí´ ì´ì© ê°ë¥í 기존ì \"where\" ìì±ê³¼ ë§¤ì° "
+"ì ì¬í íëì ì í ì ì ì ìíë ë¥ë ¥ì´ë¤. ì´ê²ë¤ì ì ì¸íë©´ íí° ì¡°ê±´ë¤ì í"
+"ë¼ë¯¸í°í ë ì ìë¤. ê·¸ë ì´í리ì¼ì´ì
ì 주ì´ì§ íí°ë¤ì´ ì´ì© ê°ë¥íì§ ì¬ë¶ "
+"ê·¸ë¦¬ê³ ê·¸ë¤ íë¼ë¯¸í° ê°ë¤ì´ 무ìì´ì´ì¼ íëì§ë¥¼ ì¤í ìì ê²°ì í ì ìë¤. í"
+"í°ë¤ì ë°ì´í°ë² ì´ì¤ ë·°ë¤ ì²ë¼ ì¬ì©ë ì ìì§ë§, ì´í리ì¼ì´ì
ë´ë¶ì íë¼ë¯¸í°"
+"í ëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal><"
+"filter-def/></literal> element within a <literal><hibernate-mapping/"
+"></literal> element:"
+msgstr ""
+"íí°ë¤ì ì¬ì©í기 ìí´ì, ê·¸ê²ë¤ì 먼ì ì ìëê³ ëì ì ì í 매í ììë¤ì 첨"
+"ê°ëì´ì¼ íë¤. íí°ë¥¼ ì ìí기 ìí´, <literal><hibernate-mapping/></"
+"literal> ìì ë´ë¶ì <literal><filter-def/></literal> ìì를 ì¬ì©íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr "ê·¸ë ì´ íí°ë í´ëì¤ì 첨ê°ë ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Or, to a collection:"
+msgstr "ëë ì½ë ì
ì 첨ê°ë ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr "ëë ëìì ììì(ëë ê°ê°ì ì¬ë¬ë²) 첨ê°ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, and <literal>disableFilter(String filterName)</literal>. By "
+"default, filters are <emphasis>not</emphasis> enabled for a given session. "
+"Filters must be enabled through use of the <literal>Session.enableFilter()</"
+"literal> method, which returns an instance of the <literal>Filter</literal> "
+"interface. If you used the simple filter defined above, it would look like "
+"this:"
+msgstr ""
+"<literal>Session</literal> ìì ë©ìëë¤ì ë¤ìê³¼ ê°ë¤: <literal>enableFilter"
+"(String filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, <literal>disableFilter(String filterName)</literal>. ëí´í¸ë¡, íí°"
+"ë¤ì 주ì´ì§ ì¸ì
ì ëí´ ì´ì© ê°ë¥íì§ <emphasis>ìë¤</emphasis>; ê·¸ê²ë¤ì "
+"<literal>Session.enableFilter()</literal> ë©ìëì ì¬ì©ì íµí´ ëª
ìì ì¼ë¡ ì´"
+"ì© ê°ë¥íê² ëì´ì¼ íë¤. <literal>Session.enableFilter()</literal>ë "
+"<literal>Filter</literal> ì¸í°íì´ì¤ì ì¸ì¤í´ì¤ë¥¼ ë°ííë¤. ìì ì ìë ê°ë¨"
+"í íí°ë¥¼ ì¬ì©íë©´, ì´ê²ì ë¤ìê³¼ ê°ì ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Methods on the org.hibernate.Filter interface do allow the method-chaining "
+"common to much of Hibernate."
+msgstr ""
+"org.hibernate.Filter ì¸í°íì´ì¤ ìì ë©ìëë¤ì Hibernateì ë§¤ì° ê³µíµë "
+"method-chainingì íì©íë¤ë ì ì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following is a full example, using temporal data with an effective "
+"record date pattern:"
+msgstr "ì í¨í ê¸°ë¡ ë ì§ í¨í´ì ê°ì§ ìê° ë°ì´í°ë¥¼ ì¬ì©íë ì ì²´ ìì :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In order to ensure that you are provided with currently effective records, "
+"enable the filter on the session prior to retrieving employee data:"
+msgstr ""
+"ê·¸ë ë¹ì ì´ íì¬ ì í¨í ë ì½ëë¤ì íì ì»ë ê²ì íì¤í í기 ìí´, employee "
+"ë°ì´í°ë¥¼ ê²ìí기 ì ì ì¸ì
ìì íí°ë¥¼ ê°ë¨íê² ì´ì© ê°ë¥íê² íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though a salary constraint was mentioned explicitly on the results in "
+"the above HQL, because of the enabled filter, the query will return only "
+"currently active employees who have a salary greater than one million "
+"dollars."
+msgstr ""
+"ìì HQL ìì, ì¬ì§ì´ ë¹ë¡ ì°ë¦¬ê° ê²°ê³¼ë¤ì ëí ë´ê¸ 컨ì¤í¸ë ì¸í¸ë¥¼ ëª
ìì ì¼"
+"ë¡ ì¸ê¸ë§ íìì§ë¼ë, ì´ì© ê°ë¥í íí° ë문ì ê·¸ ì§ìë ë´ê¸ì´ ë°±ë§ë¬ë¬ ì´ì"
+"ì¸ íì¬ ì±ì©ì¤ì¸ ì§ìë¤ë§ì ë°íí ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to use filters with outer joining, either through HQL or load "
+"fetching, be careful of the direction of the condition expression. It is "
+"safest to set this up for left outer joining. Place the parameter first "
+"followed by the column name(s) after the operator."
+msgstr ""
+"ë
¸í¸: ë§ì¼ ë¹ì ì´ outer ì¡°ì¸ì ëí´ íí°ë¤ì ì¬ì©í ê³íì´ë¼ë©´ (HQLì´ë ë¡ë "
+"íì¹ì´ë ) ì¡°ê±´ ííìì ë°©í¥ì 주ìíë¼. ì´ê²ì left outer joinì¼ë¡ ì¤ì íë "
+"ê²ì´ ê°ì¥ ìì íë¤; ì¼ë°ì ì¼ë¡ ì¤í¼ë ì´í° ë¤ì ìë ì»¬ë¼ ì´ë¦(ë¤)ì´ ë¤ë°ë¥´ë "
+"첫ë²ì§¸ì íë¼ë¯¸í°ë¥¼ ìì¹ì§ìë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After being defined, a filter might be attached to multiple entities and/or "
+"collections each with its own condition. This can be problematic when the "
+"conditions are the same each time. Using <literal><filter-def/></"
+"literal> allows you to definine a default condition, either as an attribute "
+"or CDATA:"
+msgstr ""
+"íí°ê° ì ìë íìë ê·¸ê² ìì ì ì¡°ê±´ì ëí´ ê°ê° ì¬ë¬ ê°ì ìí°í°ë¤ ê·¸ë¦¬ê³ /"
+"ëë ì½ë ì
ë¤ì 첨ê°ë ì ìë¤. ì¡°ê±´ë¤ì´ ë§¤ë² ëì¼í ë ê·¸ê²ì ì§ë£¨í ì ì"
+"ë¤. ë°ë¼ì <literal><filter-def/></literal>ì attribute ë CDATA ë ì´"
+"ëê²ì´ë ëí´í¸ ì¡°ê±´ì ì ìíë ê²ì íì©í´ì¤ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This default condition will be used whenever the filter is attached to "
+"something without specifying a condition. This means you can give a specific "
+"condition as part of the attachment of the filter that overrides the default "
+"condition in that particular case."
+msgstr ""
+"ê·¸ë ì´ ëí´í¸ ì¡°ê±´ì ê·¸ íí°ê° ì´ë¤ ì¡°ê±´ì ì§ì í¨ì´ ìì´ ì´ë¤ ê²ì 첨ê°ë ë"
+"ë§ë¤ ì¬ì©ë ì ìë¤. ì´ê²ì ë¹ì ì´ í¹ì í ê²½ì°ì ëí´í¸ ì¡°ê±´ì ì¤ë²ë¼ì´ë ì"
+"í¤ë íí°ì ì²¨ê° ë¶ë¶ì¼ë¡ì í¹ì ì¡°ê±´ì ë¶ì¬í ì ììì ì미í¨ì ë
¸í¸íë¼."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/inheritance_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/inheritance_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/inheritance_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,542 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Inheritance mapping"
+msgstr "ìì 매í"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "The three strategies"
+msgstr "ì¸ ê°ì§ ë°©ëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr "Hibernateë ì¸ ê°ì§ 기본ì ì¸ ìì 매í ë°©ëë¤ì ì§ìíë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr "table per class hierarchy"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "table per subclass"
+msgstr "Table per subclass"
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr "table per concrete class"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In addition, Hibernate supports a fourth, slightly different kind of "
+"polymorphism:"
+msgstr "ê²ë¤ê° Hibernateë ë¤ ë²ì§¸ì ì½ê° ë¤ë¥¸ ì¢
ë¥ì ë¤íì±ì ì§ìíë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr "implicit polymorphism(í¨ì¶ì ì¸ ë¤íì±)"
+
+#. Tag: para
+#, fuzzy, 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><subclass></literal>, "
+"<literal><joined-subclass></literal> and <literal><union-"
+"subclass></literal> mappings under the same root <literal><class></"
+"literal> element. It is possible to mix together the table per hierarchy and "
+"table per subclass strategies under the the same <literal><class></"
+"literal> element, by combining the <literal><subclass></literal> and "
+"<literal><join></literal> elements (see below for an example)."
+msgstr ""
+"ëì¼í ìì ê³ì¸µêµ¬ì¡°ì ë¤ë¥¸ ê°ì§ë¤ì ëí´ ë¤ë¥¸ 매í ë°©ëë¤ì ì¬ì©íë ê²ì´ ê°"
+"ë¥íê³ , ê·¸ë° ë¤ì ì ì²´ ê³ì¸µ 구조를 ê°ë¡ì§ë¬ ë¤íì±ì ì±ì·¨íëë° í¨ì¶ì ì¸ ë¤í"
+"ì±ì ì¬ì©íë¼. íì§ë§ Hibernateë ëì¼í ë£¨í¸ <literal><class></"
+"literal> ìì íìì <literal><subclass></literal> ê·¸ë¦¬ê³ <literal><"
+"joined-subclass></literal> ê·¸ë¦¬ê³ <literal><union-subclass></"
+"literal> 매íë¤ì í¼í©íë ê²ì ì§ìíì§ ìëë¤. ëì¼í <literal><"
+"class></literal> ìì íìì <literal><subclass></literal> ììì "
+"<literal><join></literal> ìì를 ê²°í©ìí´ì¼ë¡ì¨ table per hierarchy ë°©"
+"ëì table per subclass ë°©ë를 í¨ê» í¼í©ìí¤ë ê²ì´ ê°ë¥íë¤(ìë를 ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë³ëì 매í 문ì ë´ì, <literal>hibernate-mapping</literal> ë°ë¡ ë°ì "
+"<literal>subclass</literal>, <literal>union-subclass</literal>, ê·¸ë¦¬ê³ "
+"<literal>joined-subclass</literal> 매íë¤ì ì ìíë ê²ì´ ê°ë¥íë¤. ì´ê²ì ë¨"
+"ì§ íëì ìë¡ì´ 매í íì¼ì ì¶ê°ìì¼ì íëì class ê³ì¸µêµ¬ì¡°ë¥¼ íì¥íë ê²"
+"ì ë¹ì ìê² íì©í´ì¤ë¤. ë¹ì ì subclass 매í ë´ì ìì 매íë ìí¼í´ëì¤ë¥¼ ëª
"
+"ëª
íì¬ <literal>extends</literal> ìì±ì ì§ì í´ì¼ íë¤. ë
¸í¸ : ëª
ë°±íê² ì´ í¹"
+"ì§ì 매í 문ìë¤ì ìì를 ì¤ìíê²ë ë§ë¤ìë¤. Hibernate3 ì´íë¡, 매í íì¼ë¤"
+"ì ììë extends í¤ìë를 ì¬ì©í ë ìê´ìë¤. íëì 매í íì¼ ë´ì ììë "
+"ì¬ì í ìë¸í´ëì¤ë¤ì ìì ìí¼í´ëì¤ë¤ì ì ìíëë° ì¬ì í íìíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr "Table per class hierarchy"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ì°ë¦¬ê° <literal>CreditCardPayment</literal>, <literal>CashPayment</literal>, "
+"<literal>ChequePayment</literal> 구íìë¤ì ê°ì§ íëì ì¸í°íì´ì¤ "
+"<literal>Payment</literal>를 ê°ê³ ìë¤ê³ ê°ì íì. table per hierarchy 매í"
+"ì ë¤ìê³¼ ê°ì ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Exactly one table is required. There is a limitation of this mapping "
+"strategy: columns declared by the subclasses, such as <literal>CCTYPE</"
+"literal>, cannot have <literal>NOT NULL</literal> constraints."
+msgstr ""
+"ì íí íëì í
ì´ë¸ì´ íìíë¤. ì´ ë§¤í ë°©ëìë ë¤ìì íëì í° ì ì½ì´ ì¡´"
+"ì¬íë¤: <literal>CCTYPE</literal>ê³¼ ê°ì´, ìë¸ í´ëì¤ë¤ì ìí´ ì ì¸ë 컬ë¼ë¤"
+"ì <literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ë¤ì ê°ì§ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass"
+msgstr "Table per subclass"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr "table per subclass 매íì ë¤ìê³¼ ê°ì ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë¤ ê°ì í
ì´ë¸ë¤ì´ íìíë¤. ì¸ ê°ì ìë¸í´ëì¤ í
ì´ë¸ë¤ì ìí¼í´ëì¤ í
ì´ë¸"
+"ì ëí íë¼ì´ë¨¸ë¦¬ í¤ ì°ê´ë¤ì ê°ëë¤ (ë°ë¼ì ê·¸ ê´ê³í 모íì ì¤ì ë¡ one-to-"
+"one ì°ê´ì´ë¤)."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr "discriminator를 ì¬ì©íë, table per subclass"
+
+#. Tag: para
+#, fuzzy, 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><subclass></literal> and "
+"<literal><join></literal>, as follows:"
+msgstr ""
+"table-per-subclassì ëí Hibernateì 구íì discriminator(íë³ì) 컬ë¼ì í"
+"ìë¡ íì§ ììì ë
¸í¸íë¼. ë¤ë¥¸ ê°ì²´/ê´ê³í 매í기ë¤ì ìí¼í´ëì¤ í
ì´ë¸ ì"
+"ì íëì íì
íë³ì 컬ë¼ì íìë¡ íë table-per-subclassì ëí ë¤ë¥¸ 구í"
+"ì ì¬ì©íë¤. Hibernateì ìí´ ì±íë ì ê·¼ë²ì 구ííê¸°ê° í¨ì¬ ë ì´ë µì§ë§ ê´"
+"ê³í ê´ì ììë ìë§ í림ìì´ ë³´ë¤ ë ì ííë¤. ë§ì¼ ë¹ì ì´ table per "
+"subclass ë°©ëì ëí´ íëì íë³ì 컬ë¼ì ì¬ì©íê³ ì¶ë¤ë©´, ë¹ì ì ë¤ìê³¼ ê°"
+"ì´ <literal><subclass></literal>ì <literal><join></literal>ì ì¬"
+"ì©ì ê²°í©ìí¬ ìë ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate "
+"not to fetch the <literal>ChequePayment</literal> subclass data using an "
+"outer join when querying the superclass."
+msgstr ""
+"ì íì ì¸ <literal>fetch=\"select\"</literal> ì ì¸ì ìí¼í´ëì¤ë¥¼ ì§ìí ë "
+"outer joinì ì¬ì©íì¬ <literal>ChequePayment</literal> ìë¸í´ëì¤ ë°ì´í°ë¥¼ í"
+"ì¹ìí¤ì§ ìëë¡ Hibernateìê² ìë ¤ì¤ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr "table per class hierarchyì table per subclass를 í¼í©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even mix the table per hierarchy and table per subclass strategies "
+"using the following approach:"
+msgstr ""
+"ë¹ì ì ì´ ì ê·¼ë²ì ì¬ì©íì¬ table per hierarchy ë°©ëì table per subclass ë°©"
+"ë를 í¼í©ìí¬ ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For any of these mapping strategies, a polymorphic association to the root "
+"<literal>Payment</literal> class is mapped using <literal><many-to-one>"
+"</literal>."
+msgstr ""
+"ì´ë¤ 매í ë°©ëë¤ ì¤ ì´ë¤ ê²ì ëí´, ë£¨í¸ <literal>Payment</literal> í´ëì¤ì "
+"ëí íëì ë¤íì± ì°ê´ì <literal><many-to-one></literal>ì ì¬ì©íì¬ "
+"매íëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr "Table per concrete class"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are two ways we can map the table per concrete class strategy. First, "
+"you can use <literal><union-subclass></literal>."
+msgstr ""
+"ì°ë¦¬ê° table per concrete class ë°©ë 매íì ëí´ ì·¨í ì ìë ë ê°ì§ ë°©ë²ë¤"
+"ì´ ì¡´ì¬íë¤. 첫 ë²ì§¸ë <literal><union-subclass></literal>를 ì¬ì©íë "
+"ê²ì´ë¤."
+
+#. Tag: para
+#, 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
+#, fuzzy, 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 ""
+"ì´ ì ê·¼ë²ì ì ì½ì ë§ì¼ íëì íë¡í¼í°ê° ìí¼í´ëì¤ ìì¼ë¡ 매íë ê²½ì°, ê·¸ "
+"ì»¬ë¼ ì´ë¦ì´ 모ë ìë¸í´ëì¤ í
ì´ë¸ë¤ ììì ê°ìì¼ íë¤ë ì ì´ë¤.(ì¥ëì "
+"Hibernate ë°°í¬ë³¸ìì ì°ë¦¬ë ì´ ì ì½ì í ìë ìë¤.) identity ìì±ê¸° ë°©ëë "
+"union ìë¸í´ëì¤ ìììì íì©ëì§ ìì¼ë©°, ì§ì íë¼ì´ë¨¸ë¦¬ í¤ ìëë íëì "
+"ê³ì¸µêµ¬ì¡°ì 모ë unioned ìë¸í´ëì¤ë¤ì ê°ë¡ì§ë¬ ê³µì ëì´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë§ì¼ ë¹ì ì ìí¼í´ëì¤ê° abstractì¼ ê²½ì°ì, ê·¸ê²ì <literal>abstract=\"true"
+"\"</literal>ë¡ ë§¤ííë¼. ë¬¼ë¡ ë§ì¼ ê·¸ê²ì´ abstractê° ìë ê²½ì°, ì¶ê°ì ì¸ í
ì´"
+"ë¸(ìì ìì ììë ëí´í¸ë¡ <literal>PAYMENT</literal>)ì´ ìí¼í´ëì¤ì ì¸ì¤í´"
+"ì¤ë¤ì ìì íëë° íìíë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr "í¨ì¶ì ì¸ ë¤íì±ì ì¬ì©íë, table per concrete class"
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr "ëìì ì¸ ì ê·¼ë²ì í¨ì¶ì ì¸ ë¤íì±ì ì¬ì©íë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, 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>[ <!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> "
+"declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr ""
+"ì´ë ê³³ììë ì°ë¦¬ê° ëª
ìì ì¼ë¡ <literal>Payment</literal> ì¸í°íì´ì¤ë¥¼ ì¸ê¸"
+"íì§ ììì 주목íë¼. ëí <literal>Payment</literal>ì íë¡í¼í°ë¤ì´ ìë¸í´ë"
+"ì¤ë¤ ê°ê°ìì 매íëë¤ë ì ì 주목íë¼. ë§ì¼ ë¹ì ì´ ì¤ë³µì í¼íê³ ì ìíë¤"
+"ë©´, XML ìí°í°ë¤ì ì¬ì©íë ê²ì ê³ ë ¤íë¼(ì를 ë¤ì´ 매íìì "
+"<literal>DOCTYPE</literal> ì ì¸ê³¼ <literal>&allproperties;</literal>ìì "
+"<literal>[ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ]</"
+"literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The disadvantage of this approach is that Hibernate does not generate SQL "
+"<literal>UNION</literal>s when performing polymorphic queries."
+msgstr ""
+"ì´ ì ê·¼ë²ì ë¨ì ì ë¤íì± ì§ìë¤ì ìíí ë Hibernateê° ìì±ë SQl "
+"<literal>UNION</literal>ë¤ì ìì±ìí¤ë ìëë¤ë ì ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For this mapping strategy, a polymorphic association to <literal>Payment</"
+"literal> is usually mapped using <literal><any></literal>."
+msgstr ""
+"ì´ ë§¤í ë°©ëì ê²½ì°, <literal>Payment</literal>ì ëí íëì ë¤íì± ì°ê´ì "
+"ëê° <literal><any></literal>를 ì¬ì©íì¬ ë§¤íëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr "í¨ì¶ì ì¸ ë¤íì±ì ë¤ë¥¸ ìì 매íë¤ê³¼ í¼í©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Since the subclasses are each mapped in their own <literal><class></"
+"literal> element, and since <literal>Payment</literal> is just an "
+"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 ""
+"ì´ ë§¤íì ëí´ ì£¼ëª©í íë ì´ìì ê²ì´ ì¡´ì¬íë¤. ìë¸í´ëì¤ë¤ì´ ê·¸ê²ë¤ ìì ì"
+"<literal><class></literal> ìì ë´ì ê°ê° 매íëë¯ë¡(ê·¸ë¦¬ê³ "
+"<literal>Payment</literal>ê° ë¨ì§ ì¸í°íì´ì¤ì´ë¯ë¡), ìë¸í´ëì¤ë¤ ê°ê°ì ì½"
+"ê² ë ë¤ë¥¸ ìì ê³ì¸µêµ¬ì¡°ì ë¶ë¶ì¼ ì ìë¤! (ê·¸ë¦¬ê³ ë¹ì ì <literal>Payment</"
+"literal> ì¸í°íì´ì¤ì ëí´ ì¬ì í ë¤íì± ì§ìë¤ì ì¬ì©í ì ìë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Once again, <literal>Payment</literal> is not mentioned explicitly. If we "
+"execute a query against the <literal>Payment</literal> interface, for "
+"example <literal>from Payment</literal>, Hibernate automatically returns "
+"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 ""
+"ë¤ì íë², ì°ë¦¬ë <literal>Payment</literal>를 ëª
ìì ì¼ë¡ ì¸ê¸íì§ ìëë¤. ë§"
+"ì¼ ì°ë¦¬ê° <literal>Payment</literal> ì¸í°íì´ì¤ì ëí´ íëì ì§ì를 ì¤íí "
+"ê²½ì°-ì를 ë¤ì´, from Payment-, Hibernateë <literal>CreditCardPayment</"
+"literal> (ì ê·¸ê²ì ìë¸í´ëì¤ë¤, ìëíë©´ ê·¸ê²ë¤ ëí <literal>Payment</"
+"literal>를 구ííë¯ë¡), <literal>CashPayment</literal> ê·¸ë¦¬ê³ "
+"<literal>ChequePayment</literal> ì¸ì¤í´ì¤ë¤ì ìëì ì¼ë¡ ë°íí ê²ì´ì§ë§ "
+"<literal>NonelectronicTransaction</literal>ì ì¸ì¤í´ì¤ë¤ì ë°ííì§ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Limitations"
+msgstr "ì ì½ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are limitations to the \"implicit polymorphism\" approach to the table "
+"per concrete-class mapping strategy. There are somewhat less restrictive "
+"limitations to <literal><union-subclass></literal> mappings."
+msgstr ""
+"table per concrete-class 매í ë°©ëì ëí \"í¨ì¶ì ì¸ ë¤íì±\" ì ê·¼ë²ìë ì´"
+"ë¤ ì ì½ë¤ì´ ì¡´ì¬íë¤. <literal><union-subclass></literal> 매íë¤ì ëí´"
+"ìë ë¤ì ë ì íì ì¸ ì ì½ë¤ì´ ì¡´ì¬íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table shows the limitations of table per concrete-class "
+"mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+"ë¤ì íë Hibernateìì table per concrete-class 매íë¤ì ëí ì ì½ë¤, 그리"
+"ê³ í¨ì¶ì ì¸ ë¤íì±ì ëí ì ì½ë¤ì ë³´ì¬ì¤ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr "ìì 매íë¤ì í¹ì§ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr "ìì ë°©ë"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr "ë¤íì± ë¤ëì¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr "ë¤íì± ì¼ëì¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr "ë¤íì± ì¼ëë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr "ë¤íì± ë¤ëë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "ë¤íì± ì§ìë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr "ë¤íì± ì¡°ì¸ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Outer join fetching"
+msgstr "Outer ì¡°ì¸ íì¹"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per class-hierarchy"
+msgstr "table per class-hierarchy"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr "<many-to-one>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr "<one-to-one>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr "<one-to-many>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr "<many-to-many>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr "s.get(Payment.class, id)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr "from Order o join o.payment p"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr "table per concrete-class (union-subclass)"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr "table per concrete class (implicit polymorphism)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><any></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr "<many-to-any>"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+msgstr ""
+"s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()"
+
+#, fuzzy
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "table per subclass"
+
+#~ msgid "from Payment p"
+#~ msgstr "from Payment p"
+
+#~ msgid "supported"
+#~ msgstr "ì§ìë¨"
+
+#, fuzzy
+#~ msgid "<entry>table per subclass</entry>"
+#~ msgstr "table per subclass"
+
+#~ msgid "<any>"
+#~ msgstr "<any>"
+
+#~ msgid "not supported"
+#~ msgstr "ì§ìëì§ ìì"
+
+#~ msgid "load()/get()"
+#~ msgstr "load()/get()"
+
+#~ msgid "Polymorphic <placeholder-1/>"
+#~ msgstr "ë¤íì± <placeholder-1/>"
+
+#~ msgid "inverse=\"true\""
+#~ msgstr "inverse=\"true\""
+
+#~ msgid "<placeholder-1/> (for <placeholder-2/> only)"
+#~ msgstr "<placeholder-1/> (for <placeholder-2/> only)"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/performance.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/performance.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/performance.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2232 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr "í¼í¬ë¨¼ì¤ ê°ì í기"
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr "íì¹ ë°©ëë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate uses a <emphasis>fetching strategy</emphasis> to retrieve "
+"associated objects if the application needs to navigate the association. "
+"Fetch strategies can be declared in the O/R mapping metadata, or over-ridden "
+"by a particular HQL or <literal>Criteria</literal> query."
+msgstr ""
+"<emphasis>íì¹ ë°©ë</emphasis>ë ì´í리ì¼ì´ì
ì´ ì°ê´ì ë¤ë¹ê²ì´í¸í íìê° ì"
+"ì ë Hibernateê° ì°ê´ë ê°ì²´ë¤ì ê²ìíëë° ì¬ì©íê² ë ë°©ëì´ë¤.íì¹ ë°©ëë¤"
+"ì O/R 매í ë©íë°ì´í° ë´ìì ì ì¸ë ì ìê±°ë íëì í¹ì HQL ëë "
+"<literal>Criteria</literal> ì§ìì ìí´ ì¤ë²ë¼ì´ë ë ìë ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr "Hibernate3ë ë¤ì íì¹ ë°©ëë¤ì ì ìíë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Join fetching</emphasis>: Hibernate retrieves the associated "
+"instance or collection in the same <literal>SELECT</literal>, using an "
+"<literal>OUTER JOIN</literal>."
+msgstr ""
+"<emphasis>Join íì¹</emphasis> - Hibernateë <literal>OUTER JOIN</literal>ì "
+"ì¬ì©íì¬ ì°ê´ë ì¸ì¤í´ì¤ ëë ëì¼í <literal>SELECT</literal> ë´ìì ì½ë ì
"
+"ì ê²ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Select fetching</emphasis>: a second <literal>SELECT</literal> is "
+"used to retrieve the associated entity or collection. Unless you explicitly "
+"disable lazy fetching by specifying <literal>lazy=\"false\"</literal>, this "
+"second select will only be executed when you access the association."
+msgstr ""
+"<emphasis>Select íì¹</emphasis> - ë ë²ì§¸ <literal>SELECT</literal>ë ì°ê³¼"
+"ë ìí°í° ëë ì½ë ì
ì ê²ìíëë° ì¬ì©ëë¤. ë¹ì ì´ <literal>lazy=\"false\"</"
+"literal>를 ì§ì í¨ì¼ë¡ì¨ ëª
ìì ì¼ë¡ lazy íì¹ì ì¬ì© ë¶ê°ë¥íê² íì§ ìë í, "
+"ì´ ë ë²ì§¸ selectë ë¹ì ì´ ê·¸ ì°ê´ì ì¤ì ë¡ ì¡ì¸ì¤í ë ì¤ì§ ì¤íë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Subselect fetching</emphasis>: a second <literal>SELECT</literal> "
+"is used to retrieve the associated collections for all entities retrieved in "
+"a previous query or fetch. Unless you explicitly disable lazy fetching by "
+"specifying <literal>lazy=\"false\"</literal>, this second select will only "
+"be executed when you access the association."
+msgstr ""
+"<emphasis>Subselect íì¹</emphasis> - ë ë²ì§¸ <literal>SELECT</literal>ë ì´"
+"ì ì§ì ëë íì¹ìì ê²ìë 모ë ìí°í°ë¤ì ëí´ ì°ê´ë ì½ë ì
ë¤ì ê²ìíë"
+"ë° ì¬ì©ëë¤. ë¹ì ì´ <literal>lazy=\"false\"</literal>를 ì§ì íì¬ ëª
ìì ì¼ë¡ "
+"lazy íì¹ì ì¬ì© ë¶ê°ë¥íê² íì§ ìë í, ì´ ë ë²ì§¸ selectë ë¹ì ì´ ì¤ì ë¡ "
+"ê·¸ ì°ê´ì ì ê·¼í ë ì¤ì§ ì¤íë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Batch fetching</emphasis>: an optimization strategy for select "
+"fetching. Hibernate retrieves a batch of entity instances or collections in "
+"a single <literal>SELECT</literal> by specifying a list of primary or "
+"foreign keys."
+msgstr ""
+"<emphasis>Batch íì¹</emphasis> - select íì¹ì ìí ìµì í ë°©ë - Hibernate"
+"ë íë¼ì´ë¨¸ë¦¬ í¤ë¤ì´ë foreign í¤ë¤ì 리ì¤í¸ë¥¼ ì§ì í¨ì¼ë¡ì¨ íëì"
+"<literal>SELECT</literal> ë´ìì ìí°í° ì¸ì¤í´ì¤ë¤ì´ë ì½ë ì
ë¤ì ëí batch"
+"를 ê²ìíë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr "Hibernateë ëí ë¤ì ì¬ì´ë¥¼ êµ¬ë³ ì§ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Immediate fetching</emphasis>: an association, collection or "
+"attribute is fetched immediately when the owner is loaded."
+msgstr ""
+"<emphasis>ì¦ê°ì ì¸ íì¹</emphasis> - ìì ìê° ë¡ëë ë, ì°ê´, ì½ë ì
ëë ì"
+"ì±ì´ ì¦ì íì¹ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Lazy collection fetching</emphasis>: a collection is fetched when "
+"the application invokes an operation upon that collection. This is the "
+"default for collections."
+msgstr ""
+"<emphasis>Lazy ì½ë ì
íì¹</emphasis> - ì´í리ì¼ì´ì
ì´ ê·¸ ì½ë ì
ì ëí´ íë"
+"ì ì¤í¼ë ì´ì
ì í¸ì¶í ë ì½ë ì
ì´ íì¹ëë¤.(ì´ê²ì ì½ë ì
ë¤ì ëí´ ëí´í¸ì´"
+"ë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>\"Extra-lazy\" collection fetching</emphasis>: individual elements "
+"of the collection are accessed from the database as needed. Hibernate tries "
+"not to fetch the whole collection into memory unless absolutely needed. It "
+"is suitable for large collections."
+msgstr ""
+"<emphasis>\"Extra-lazy\" ì½ë ì
íì¹</emphasis> - ì½ë ì
ì ê°ë³ ììë¤ì íì"
+"í ë ë°ì´í°ë² ì´ì¤ë¡ë¶í° ì ê·¼ëë¤. Hibernateë ì ëì ì¼ë¡ íìíì§ ìì í ì "
+"ì²´ ì½ë ì
ì ë©ëª¨ë¦¬ ë´ë¡ íì¹íë ¤ê³ ìëíì§ ìëë¤(ë§¤ì° í° ì½ë ì
ì ì í©í¨)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Proxy fetching</emphasis>: a single-valued association is fetched "
+"when a method other than the identifier getter is invoked upon the "
+"associated object."
+msgstr ""
+"<emphasis>íë½ì íì¹</emphasis> - ìë³ì getterê° ìë ë¤ë¥¸ ë©ìëê° ì°ê´ë "
+"ê°ì²´ì ëí´ í¸ì¶ë ë ë¨ì¼ ê° ì°ê´ì´ íì¹ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>\"No-proxy\" fetching</emphasis>: a single-valued association is "
+"fetched when the instance variable is accessed. Compared to proxy fetching, "
+"this approach is less lazy; the association is fetched even when only the "
+"identifier is accessed. It is also more transparent, since no proxy is "
+"visible to the application. This approach requires buildtime bytecode "
+"instrumentation and is rarely necessary."
+msgstr ""
+"<emphasis>\"No-proxy\" íì¹</emphasis> - ì¸ì¤í´ì¤ ë³ìê° ì ê·¼ë ë ë¨ì¼ ê° ì°"
+"ê´ì´ íì¹ëë¤. íë½ì íì¹ê³¼ ë¹êµí ë, ì´ ì ê·¼ë²ì ë¤ì ë lazyíì§ë§(ê·¸ ì°"
+"ê´ì ì¬ì§ì´ ì ì¼íê² ìë³ìê° ì ê·¼ë ëìë íì¹ëë¤)ë³´ë¤ í¬ëª
íë¤. ìëíë©´ "
+"íë½ìë ì´í리ì¼ì´ì
ì ê°ìì ì´ì§ ì기 ë문ì´ë¤. ì´ ì ê·¼ë²ì ë¹ë ì ë°ì´í¸"
+"ì½ë ìë¨ì íìë¡ íë©° ëë¬¼ê² íìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Lazy attribute fetching</emphasis>: an attribute or single valued "
+"association is fetched when the instance variable is accessed. This approach "
+"requires buildtime bytecode instrumentation and is rarely necessary."
+msgstr ""
+"<emphasis>Lazy ìì± íì¹</emphasis> - ì¸ì¤í´ì¤ ë³ìê° ì ê·¼ë ë ìì± ëë ë¨"
+"ì¼ ê° ì°ê´ì´ íì¹ëë¤ ì´ ì ê·¼ë²ì ë¹ëì ë°ì´í¸ì½ë ìë¨ì íìë¡ íë©° ë물"
+"ê² íìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We have two orthogonal notions here: <emphasis>when</emphasis> is the "
+"association fetched and <emphasis>how</emphasis> is it fetched. It is "
+"important that you do not confuse them. We use <literal>fetch</literal> to "
+"tune performance. We can use <literal>lazy</literal> to define a contract "
+"for what data is always available in any detached instance of a particular "
+"class."
+msgstr ""
+"ì°ë¦¬ë ì¬ê¸°ì ë ê°ì ì§êµíë ê°ë
ë¤ì ê°ëë¤: ì°ê´ì´ íì¹ë <emphasis>ë</"
+"emphasis>, ê·¸ë¦¬ê³ ê·¸ê²ì´ íì¹ëë <emphasis>ë°©ë²</emphasis>(ì¬ì©ëë SQL). ê·¸"
+"ê²ë¤ì í¼ëíì§ ë§ë¼! ì°ë¦¬ë í¼í¬ë¨¼ì¤ë¥¼ íí
íëë° <literal>íì¹</literal>를 "
+"ì¬ì©íë¤. ì°ë¦¬ë í¹ì í´ëì¤ì ì´ë¤ detached ì¸ì¤í´ì¤ ë´ìì íì ì´ì© ê°ë¥"
+"í ë°ì´í°ê° 무ìì¸ì§ì ëí ê³ì½ì ì ìíëë° <literal>lazy</literal>를 ì¬ì©"
+"í ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr "lazy ì°ê´ë¤ë¡ ìì
í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By default, Hibernate3 uses lazy select fetching for collections and lazy "
+"proxy fetching for single-valued associations. These defaults make sense for "
+"most associations in the majority of applications."
+msgstr ""
+"ëí´í¸ë¡ Hibernate3ë ì½ë ì
ë¤ì ëí´ lazy select íì¹ì ì¬ì©íê³ , ë¨ì¼ ê° ì°"
+"ê´ë¤ì ëí´ lazy íë½ì íì¹ì ì¬ì©íë¤. ì´ë¤ ëí´í¸ë¤ì ê±°ì 모ë ì´í리ì¼ì´"
+"ì
ë¤ìì ê±°ì 모ë ì°ê´ë¤ì ëí´ ì ì미íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you set <literal>hibernate.default_batch_fetch_size</literal>, Hibernate "
+"will use the batch fetch optimization for lazy fetching. This optimization "
+"can also be enabled at a more granular level."
+msgstr ""
+"<emphasis>ë
¸í¸:</emphasis> ë§ì¼ ë¹ì ì´ <literal>hibernate."
+"default_batch_fetch_size</literal>를 ì¤ì íë ê²½ì°, Hibernateë lazy íì¹ì "
+"ìí batch íì¹ ìµì í를 ì¬ì©í ê²ì´ë¤(ì´ ìµì íë ëí ë ë§ì 과립ìì ë 벨"
+"ìì ì´ì© ê°ë¥í ì ìë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please be aware that access to a lazy association outside of the context of "
+"an open Hibernate session will result in an exception. For example:"
+msgstr ""
+"íì§ë§, lazy íì¹ì ë¹ì ì´ ìê³ ìì´ì¼ íë í ê°ì§ 문ì 를 ì 기íë¤. ì´ë ¤ì§ "
+"Hibernate ì¸ì
컨í
ì¤í¸ ì¸ë¶ìì lazy ì°ê´ì ëí ì ê·¼ì ìì¸ìí©ì¼ë¡ ê·ê²°ë "
+"ê²ì´ë¤. ì를 ë¤ë©´ :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Since the permissions collection was not initialized when the "
+"<literal>Session</literal> was closed, the collection will not be able to "
+"load its state. <emphasis>Hibernate does not support lazy initialization for "
+"detached objects</emphasis>. This can be fixed by moving the code that reads "
+"from the collection to just before the transaction is committed."
+msgstr ""
+"<literal>Session</literal>ì´ ë«íì ë permissions ì½ë ì
ì´ ì´ê¸°í ëì§ ìì"
+"ì¼ë¯ë¡, ê·¸ ì½ë ì
ì ê·¸ê²ì ìí를 ë¡ëìí¬ ìê° ìì ê²ì´ë¤. "
+"<emphasis>Hibernate ë detached ê°ì²´ë¤ì ëí lazy ì´ê¸°í를 ì§ìíì§ ìëë¤."
+"</emphasis> ì ì ì ì½ë ì
ì¼ë¡ë¶í° ì½ì´ë¤ì´ë ì½ë를 ì»¤ë° ë°ë¡ ì§ì ì¼ë¡ ì´ëì"
+"í¤ë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, you can use a non-lazy collection or association, by "
+"specifying <literal>lazy=\"false\"</literal> for the association mapping. "
+"However, it is intended that lazy initialization be used for almost all "
+"collections and associations. If you define too many non-lazy associations "
+"in your object model, Hibernate will fetch the entire database into memory "
+"in every transaction."
+msgstr ""
+"ë¤ë¥¸ ë°©ë²ì¼ë¡ ì°ê´ 매íì ëí´ <literal>lazy=\"false\"</literal>를 ì§ì í¨ì¼ë¡"
+"ì¨, non-lazy ì½ë ì
ëë non-lazy ì°ê´ì ì¬ì©í ì ìë¤. íì§ë§ lazy ì´ê¸°í"
+"ë ê±°ì 모ë ì½ë ì
ë¤ê³¼ ì°ê´ë¤ì ëí´ ì¬ì©ëëë¡ ê³ ìëì´ ìë¤. ë§ì¼ ë¹ì ì´ "
+"ë¹ì ì ê°ì²´ 모í ë´ì ë무 ë§ì non-lazy ì°ê´ë¤ì ì ìí ê²½ì°, Hibernateë 모"
+"ë í¸ëìì
ìì ì ì²´ ë°ì´í°ë² ì´ì¤ë¥¼ ë©ëª¨ë¦¬ ìì¼ë¡ íì¹íë íìì±ì ëë´ê² "
+"ë ê²ì´ë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"On the other hand, you can use join fetching, which is non-lazy by nature, "
+"instead of select fetching in a particular transaction. We will now explain "
+"how to customize the fetching strategy. In Hibernate3, the mechanisms for "
+"choosing a fetch strategy are identical for single-valued associations and "
+"collections."
+msgstr ""
+"ë¤ë¥¸ íí¸ì¼ë¡, ì°ë¦¬ë í¹ì í¸ëìì
ë´ìì select íì¹ ëì ì (ê³ ì íê² non-"
+"lazyì¸) join íì¹ì ì íí기를 ì주 ìíë¤. ì°ë¦¬ë ì´ì íì¹ ë°©ë를 ë§ì¶¤í ì"
+"í¤ë ë°©ë²ì ìê² ë ê²ì´ë¤. Hibernate3ìì, íì¹ ë°©ë를 ì ííë ë©ì»¤ëì¦ì "
+"ë¨ì¼ ê° ì°ê´ë¤ê³¼ ì½ë ì
ë¤ì ëí´ ëì¼íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr "íì¹ ë°©ëë¤ì íëí기"
+
+#. 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 ""
+"select íì¹(ëí´í¸)ì N+1 selects 문ì ì ë¤ì ë§¤ì° ì·¨ì½í´ì, ì°ë¦¬ë 매í 문ì"
+"ìì join íì¹ì ì¬ì© ê°ë¥íê² í기를 ìí ìë ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> strategy defined in the mapping document "
+"affects:"
+msgstr ""
+"매í 문ì ë´ì ì ìë <literal>fetch</literal> ë°©ëë ë¤ìì ìí¥ì ì¤ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
+msgstr "<literal>get()</literal> ëë <literal>load()</literal>를 íµí ê²ì"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval that happens implicitly when an association is navigated"
+msgstr "ì°ê´ì´ ë¤ë¹ê²ì´í¸ë ë í¨ì¶ì ì¼ë¡ ë°ìíë ê²ì"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr "<literal>Criteria</literal> ì§ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr "<literal>subselect</literal> íì¹ì´ ì¬ì©ë ê²½ì°ì HQL ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Irrespective of the fetching strategy you use, the defined non-lazy graph is "
+"guaranteed to be loaded into memory. This might, however, result in several "
+"immediate selects being used to execute a particular HQL query."
+msgstr ""
+"ë¹ì ì´ ì¬ì©íë íì¹ ë°©ëê° ë¬´ìì¸ê°ì ìê´ìì´, ì ìë ë¹-lazy ê·¸ëíê° ë©ëª¨"
+"리 ë´ë¡ ë¡ëëë ê²ì´ ë³´ì¥ëë¤. ì´ê²ì íëì í¹ë³í HQL ì§ì를 ì¤íìí¤ëë° "
+"ì¬ì©ëë ëªëª ì¦ìì ì¸ selectë¤ë¡ ê·ê²°ë ì ììì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Usually, the mapping document is not used to customize fetching. Instead, we "
+"keep the default behavior, and override it for a particular transaction, "
+"using <literal>left join fetch</literal> in HQL. This tells Hibernate to "
+"fetch the association eagerly in the first select, using an outer join. In "
+"the <literal>Criteria</literal> query API, you would use "
+"<literal>setFetchMode(FetchMode.JOIN)</literal>."
+msgstr ""
+"ëê°, ì°ë¦¬ë íì¹ì ë§ì¶¤í ìí¤ëë° ë§¤í 문ì를 ì¬ì©íì§ ìëë¤. ëì ì, ì°ë¦¬"
+"ë ëí´í¸ í¹ì§ì ì ì§íê³ , HQLìì <literal>left join fetch</literal>를 ì¬ì©"
+"íì¬, í¹ì í¸ëìì
ì ëí´ ê·¸ê²ì ì¤ë²ë¼ì´ë ìí¨ë¤. ì´ê²ì outer joinì ì¬ì©"
+"íì¬ ì²« ë²ì§¸ selectìì ì´ê¸°ì ê·¸ ì°ê´ì eagerly íì¹ìí¬ ê²ì Hibernateìê² "
+"ìë ¤ì¤ë¤. <literal>Criteria</literal> query APIìì, ì°ë¦¬ë "
+"<literal>setFetchMode(FetchMode.JOIN)</literal>ì ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to change the fetching strategy used by <literal>get()</literal> "
+"or <literal>load()</literal>, you can use a <literal>Criteria</literal> "
+"query. For example:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ <literal>get()</literal> ëë <literal>load()</literal>ì ìí´ ì¬"
+"ì©ë íì¹ ë°©ë를 ë³ê²½ìí¬ ì ì기를 ë¹ì ì´ ìíë¤ê³ ëë ê²½ì°, ë¨ìíê² "
+"<literal>Criteria</literal> ì§ì를 ì¬ì©íë¼. ì를 ë¤ë©´:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
+"\"."
+msgstr ""
+"(ì´ê²ì ëªëª ORM ì루ì
ë¤ì´ \"íì¹ ê³í\"ì´ë¼ê³ ë¶ë¥´ë ê²ì ëí Hibernateì "
+"ë±ê°ë¬¼ì´ë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
+msgstr ""
+"N+1 ê°ì selectë¤ì ê°ì§ 문ì ì ë¤ì í¼íë ìì í ë¤ë¥¸ ë°©ë²ì second-level ìº"
+"ì를 ì¬ì©íë ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr "Single-ended ì°ê´ íë½ì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Lazy fetching for collections is implemented using Hibernate's own "
+"implementation of persistent collections. However, a different mechanism is "
+"needed for lazy behavior in single-ended associations. The target entity of "
+"the association must be proxied. Hibernate implements lazy initializing "
+"proxies for persistent objects using runtime bytecode enhancement which is "
+"accessed via the CGLIB library."
+msgstr ""
+"ì½ë ì
ë¤ì ëí Lazy íì¹ì ìì ì½ë ì
ë¤ì ëí Hibernate ìì ì 구íì ì¬ì©"
+"íì¬ êµ¬íëë¤. íì§ë§ ë¤ë¥¸ ë©ì»¤ëì¦ì single-ended ì°ê´ë¤ìì lazy í¹ì§ì í"
+"ìíë¤. ì°ê´ì ëì ìí°í°ë íë½ì ëì´ì¼ íë¤. Hibernateë (íë¥í CGLIB ë¼"
+"ì´ë¸ë¬ë¦¬ë¥¼ íµí´) ë°íì ë°ì´í¸ì½ë ì¦ì§ì ì¬ì©íì¬ ìì ê°ì²´ë¤ì ëí lazy ì´"
+"기í íë½ìë¤ì 구ííë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"At startup, Hibernate3 generates proxies by default for all persistent "
+"classes and uses them to enable lazy fetching of <literal>many-to-one</"
+"literal> and <literal>one-to-one</literal> associations."
+msgstr ""
+"ëí´í¸ë¡, Hibernate3ë 모ë ìì í´ëì¤ë¤ì ëí´ (ìì ìì) íë½ìë¤ì ìì±"
+"ìí¤ê³ <literal>many-to-one</literal> ì°ê´ê³¼ <literal>one-to-one</literal> ì°"
+"ê´ì ëí´ lazy íì¹ì ì´ì© ê°ë¥íê² íëë° ê·¸ê²ë¤ì ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The mapping file may declare an interface to use as the proxy interface for "
+"that class, with the <literal>proxy</literal> attribute. By default, "
+"Hibernate uses a subclass of the class. <emphasis>The proxied class must "
+"implement a default constructor with at least package visibility. This "
+"constructor is recommended for all persistent classes</emphasis>."
+msgstr ""
+"매í íì¼ì ê·¸ í´ëì¤ì ëí íë½ì ì¸í°íì´ì¤ë¡ì ì¬ì©í , <literal>proxy</"
+"literal> ìì±ì ê°ì§, ì¸í°íì´ì¤ë¥¼ ì ì¸í ìë ìë¤. ëí´í¸ë¡ Hibernateë ê·¸ "
+"í´ëì¤ì ìë¸í´ëì¤ë¥¼ ì¬ì©íë¤. <emphasis>íë½ìë í´ëì¤ë ìµìíì í¨í¤ì§ "
+"ê°ìì± (visibility)ì ê°ì§ ëí´í¸ ìì±ì를 구íí´ì¼ í¨ì ë
¸í¸íë¼. ì°ë¦¬ë 모"
+"ë ìì í´ëì¤ë¤ì ëí´ ì´ ìì±ì를 ê¶ì¥íë¤!</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+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>DomesticCat</literal>ì ì¸ì¤í´ì¤"
+"ì¸ ê²½ì°ì¡°ì°¨ë, <literal>Cat</literal>ì ì¸ì¤í´ì¤ë¤ì ê²°ì½ "
+"<literal>DomesticCat</literal>ì¼ë¡ íì
ìºì¤í¸ê° ê°ë¥íì§ ìì ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr "ëë²ì§¸ë¡, íë½ì <literal>==</literal>를 í기í ê°ë¥ì±ì´ ìë¤."
+
+#. 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 ""
+"íì§ë§, ê·¸ ê²½ì°ë ë³´ì´ë ë§í¼ ê·¸ë ê² ëìì§ë ìë¤. ì¬ì§ì´ ì°ë¦¬ê° ì´ì ë¤ë¥¸ "
+"íë½ì ê°ì²´ë¤ì ëí ë ê°ì 참조를 ê°ì§ì§ë¼ë, 기본 ì¸ì¤í´ì¤ë ì¬ì í ëì¼"
+"í ê°ì²´ë¤ì¼ ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Third, you cannot use a CGLIB proxy for a <literal>final</literal> class or "
+"a class with any <literal>final</literal> methods."
+msgstr ""
+"ì¸ë²ì§¸ë¡, ë¹ì ì <literal>final</literal> í´ëì¤ ëë ììì <literal>final</"
+"literal> ë©ìëë¤ì ê°ì§ í´ëì¤ì ëí´ CGLIB íë½ì를 ì¬ì©íì§ ìì ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, if your persistent object acquires any resources upon instantiation "
+"(e.g. in initializers or default constructor), then those resources will "
+"also be acquired by the proxy. The proxy class is an actual subclass of the "
+"persistent class."
+msgstr ""
+"ë§ì§ë§ì¼ë¡, ë§ì¼ ë¹ì ì ìì ê°ì²´ê° ì´ê¸°í ìì ì´ë¤ 리ìì¤ë¤ì íìë¡ í ê²½"
+"ì°(ì를 ë¤ì´, initializerë¤ ëë ëí´í¸ ìì±ì ë´ìì), ê·¸ë ê·¸ë¤ ë¦¬ìì¤ë¤ì´ "
+"ëí íë½ìì ìí´ íëë ê²ì´ë¤. íë½ì í´ëì¤ë ìì í´ëì¤ì ëí ì¤ì ì"
+"ë¸í´ëì¤ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"These problems are all due to fundamental limitations in Java's single "
+"inheritance model. To avoid these problems your persistent classes must each "
+"implement an interface that declares its business methods. You should "
+"specify these interfaces in the mapping file where <literal>CatImpl</"
+"literal> implements the interface <literal>Cat</literal> and "
+"<literal>DomesticCatImpl</literal> implements the interface "
+"<literal>DomesticCat</literal>. For example:"
+msgstr ""
+"ì´ë¤ 문ì ì ë¤ì 모ë ìë°ì ë¨ì¼ ìì 모íì 기본ì ì¸ ì ì½ ë문ì´ë¤. ë§ì¼ ë¹"
+"ì ì´ ì´ë¤ 문ì ì ë¤ì í¼íê³ ì ìí ê²½ì° ë¹ì ì ìì í´ëì¤ë¤ì ê°ê° ê·¸ê²ì ë¹"
+"ì§ëì¤ ë©ìëë¤ì ì ì¸íë ì¸í°íì´ì¤ë¥¼ 구íí´ì¼ íë¤. ë¹ì ì 매í íì¼ ìì "
+"ì´ë¤ ì¸í°íì´ì¤ë¤ì ì§ì í´ì¼ íë¤. ì를 ë¤ë©´."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Then proxies for instances of <literal>Cat</literal> and "
+"<literal>DomesticCat</literal> can be returned by <literal>load()</literal> "
+"or <literal>iterate()</literal>."
+msgstr ""
+"첫 ë²ì§¸ë¡, ì¬ì§ì´ 기본 ì¸ì¤í´ì¤ê° <literal>DomesticCat</literal>ì ì¸ì¤í´ì¤"
+"ì¸ ê²½ì°ì¡°ì°¨ë, <literal>Cat</literal>ì ì¸ì¤í´ì¤ë¤ì ê²°ì½ "
+"<literal>DomesticCat</literal>ì¼ë¡ íì
ìºì¤í¸ê° ê°ë¥íì§ ìì ê²ì´ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr "<literal>Criteria</literal> ì§ìë¤"
+
+#. 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 ""
+"ê´ê³ë¤ì ëí lazy ì´ê¸°í ëë¤. ì´ê²ì ë¹ì ì´ ììì íë¡í¼í°ë¤ì "
+"<literal>CatImpl</literal> íì
ì´ ìë <literal>Cat</literal> íì
ì¼ë¡ ì ì¸í´"
+"ì¼ í¨ì ì미íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgstr ""
+"ì´ë¤ ì¤í¼ë ì´ì
ë¤ì íë½ì ì´ê¸°í를 íìë¡ íì§ <emphasis>ìëë¤</emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>equals()</literal>: if the persistent class does not override "
+"<literal>equals()</literal>"
+msgstr ""
+"<literal>equals()</literal>, ë§ì¼ ìì í´ëì¤ê° <literal>equals()</literal>"
+"를 ì¤ë²ë¼ì´ë ìí¤ì§ ìë ê²½ì°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>hashCode()</literal>: if the persistent class does not override "
+"<literal>hashCode()</literal>"
+msgstr ""
+"<literal>hashCode()</literal>, ë§ì¼ ìì í´ëì¤ê°<literal>hashCode()</"
+"literal>를 ì¤ë²ë¼ì´ë ìí¤ì§ ìë ê²½ì°"
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr "ìë³ì getter ë©ìë"
+
+#. 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>를 "
+"ì¤ë²ë¼ì´ë ìí¤ë ìì í´ëì¤ë¤ì ê²ì¶í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By choosing <literal>lazy=\"no-proxy\"</literal> instead of the default "
+"<literal>lazy=\"proxy\"</literal>, you can avoid problems associated with "
+"typecasting. However, buildtime bytecode instrumentation is required, and "
+"all operations will result in immediate proxy initialization."
+msgstr ""
+"ëí´í¸ <literal>lazy=\"proxy\"</literal> ëì ì <literal>lazy=\"no-proxy\"</"
+"literal>를 ì ííì¬, ì°ë¦¬ë íì
ìºì¤í
ê³¼ ì°ê´ë 문ì ì ë¤ì í¼í ì ìë¤. íì§"
+"ë§ ì°ë¦¬ë ë¹ë ì ë°ì´í¸ì½ë ìë¨ì íìë¡ í ê²ì´ê³ , 모ë ì°ì°ë¤ì ì¦ê°ì ì¸ "
+"íë½ì ì´ê¸°íë¡ ê·ê²°ë ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr "ì½ë ì
ë¤ê³¼ íë½ìë¤ì ì´ê¸°í ìí¤ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>LazyInitializationException</literal> will be thrown by Hibernate "
+"if an uninitialized collection or proxy is accessed outside of the scope of "
+"the <literal>Session</literal>, i.e., when the entity owning the collection "
+"or having the reference to the proxy is in the detached state."
+msgstr ""
+"ë§ì¼ ì´ê¸°í ëì§ ìì ì½ë ì
ì´ë íë½ìê° <literal>Session</literal> ììì "
+"ì¸ë¶ìì ì ê·¼ë ê²½ì°ì, ì를 ë¤ì´ ì½ë ì
ì ìì íê±°ë íë½ìì ëí 참조를 ê°"
+"ì§ ìí°í°ê° detached ìíì ìì ë, <literal>LazyInitializationException</"
+"literal>ì´ Hibernateì ìí´ ëì ¸ì§ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes a proxy or collection needs to be initialized before closing the "
+"<literal>Session</literal>. You can force initialization by calling "
+"<literal>cat.getSex()</literal> or <literal>cat.getKittens().size()</"
+"literal>, for example. However, this can be confusing to readers of the code "
+"and it is not convenient for generic code."
+msgstr ""
+"ëëë¡ ì°ë¦¬ë<literal>Session</literal>ì ë«ê¸° ì ì íë½ì ëë ì½ë ì
ì´ ì´ê¸°"
+"í ë¨ì íì¤í í íìê° ìë¤. ë¬¼ë¡ ì°ë¦¬ë ì를 ë¤ì´ <literal>cat.getSex()</"
+"literal> ëë <literal>cat.getKittens().size()</literal>를 í¸ì¶íì¬ íì ì´ê¸°"
+"í를 ê°ì ìí¬ ì ìë¤. ê·¸ë¬ë ê·¸ê²ì ì½ëì ë
ìë¤ìê²ë í¼ëì¤ë½ê³ ì¼ë°ì ì¸ "
+"ì½ëë¡ í¸ìì ì´ì§ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The static methods <literal>Hibernate.initialize()</literal> and "
+"<literal>Hibernate.isInitialized()</literal>, provide the application with a "
+"convenient way of working with lazily initialized collections or proxies. "
+"<literal>Hibernate.initialize(cat)</literal> will force the initialization "
+"of a proxy, <literal>cat</literal>, as long as its <literal>Session</"
+"literal> is still open. <literal>Hibernate.initialize( cat.getKittens() )</"
+"literal> has a similar effect for the collection of kittens."
+msgstr ""
+"static ë©ìëë¤ <literal>Hibernate.initialize()</literal>ì "
+"<literal>Hibernate.isInitialized()</literal>ë lazy ì´ê¸°í ë ì½ë ì
ë¤ì´ë í"
+"ë½ìë¤ì ëí´ ìì
íë í¸ë¦¬í ë°©ë²ì ì´í리ì¼ì´ì
ì ì ê³µíë¤. "
+"<literal>Hibernate.initialize(cat)</literal>ì ê·¸ê²ì <literal>Session</"
+"literal>ì´ ì¬ì í ì´ë ¤ì ¸ ìë í íë½ì <literal>cat</literal>ì ì´ê¸°í를 ê°"
+"ì í ê²ì´ë¤. <literal>Hibernate.initialize( cat.getKittens())</literal>ë "
+"kittensì ì½ë ì
ì ëí´ ì ì¬í í¨ê³¼ë¥¼ ê°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Another option is to keep the <literal>Session</literal> open until all "
+"required collections and proxies have been loaded. In some application "
+"architectures, particularly where the code that accesses data using "
+"Hibernate, and the code that uses it are in different application layers or "
+"different physical processes, it can be a problem to ensure that the "
+"<literal>Session</literal> is open when a collection is initialized. There "
+"are two basic ways to deal with this issue:"
+msgstr ""
+"ë ë¤ë¥¸ ìµì
ì 모ë íìí ì½ë ì
ë¤ê³¼ íë½ìë¤ì´ ë¡ëë기 ì ê¹ì§ "
+"<literal>Session</literal>ì ì´ë¦° ì±ë¡ ì ì§íë ê²ì´ë¤. ëªëª ì´í리ì¼ì´ì
ì"
+"í¤í
ì²ë¤, í¹í Hibernate를 ì¬ì©íì¬ ë°ì´í°ì ì ê·¼íë ì½ë, ê·¸ë¦¬ê³ ë¤ë¥¸ ì´í"
+"리ì¼ì´ì
ê³ì¸µë¤ì´ë ë¤ë¥¸ 물리ì íë¡ì¸ì¤ë¤ ë´ìì ê·¸ê²ì ì¬ì©íë ì½ëìì, "
+"ê·¸ê²ì ì½ë ì
ì´ ì´ê¸°í ë ë <literal>Session</literal>ì´ ì´ë ¤ì ¸ ììì íì¤"
+"í íë 문ì ì¼ ì ìë¤. ì´ ìì ì ë¤ë£¨ë ë ê°ì§ 기본 ë°©ë²ë¤ì´ ì¡´ì¬íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In a web-based application, a servlet filter can be used to close the "
+"<literal>Session</literal> only at the end of a user request, once the "
+"rendering of the view is complete (the <emphasis>Open Session in View</"
+"emphasis> pattern). Of course, this places heavy demands on the correctness "
+"of the exception handling of your application infrastructure. It is vitally "
+"important that the <literal>Session</literal> is closed and the transaction "
+"ended before returning to the user, even when an exception occurs during "
+"rendering of the view. See the Hibernate Wiki for examples of this \"Open "
+"Session in View\" pattern."
+msgstr ""
+"ì¹ ê¸°ë° ì´í리ì¼ì´ì
ìì, ìë¸ë¦¿ íí°ë ë·° ë ëë§ì´ ìë£ëë, ì¬ì©ì ìì²ì "
+"ë°ë¡ ëììë§ <literal>Session</literal>ì ë«ëë° ì¬ì©ë ì ìë¤"
+"(<emphasis>Open Session in View</emphasis> í¨í´). ë¬¼ë¡ ì´ê²ì ë¹ì ì ì´í리ì¼"
+"ì´ì
ì¸íë¼ì¤í¸ëì²ì ìì¸ìí© ì²ë¦¬ì ì ì ì ê´í ë¬´ê±°ì´ ì구를 ë¶ê³¼íë¤. ë·° "
+"ë ëë§ ëìì íëì ìì¸ìí©ì´ ë°ìí ëìë ì¬ì©ììê² ë°íë기 ì ì "
+"<literal>Session</literal>ì´ ë«íì§ê³ í¸ëìì
ì´ ì¢
ë£ëë ê²ì ì§ê·¹í ì¤ìí"
+"ë¤. ì´ \"Open Session in View\" í¨í´ì ê´í ìì ë¤ì Hibernate ìí¤ë¥¼ ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In an application with a separate business tier, the business logic must "
+"\"prepare\" all collections that the web tier needs before returning. This "
+"means that the business tier should load all the data and return all the "
+"data already initialized to the presentation/web tier that is required for a "
+"particular use case. Usually, the application calls <literal>Hibernate."
+"initialize()</literal> for each collection that will be needed in the web "
+"tier (this call must occur before the session is closed) or retrieves the "
+"collection eagerly using a Hibernate query with a <literal>FETCH</literal> "
+"clause or a <literal>FetchMode.JOIN</literal> in <literal>Criteria</"
+"literal>. This is usually easier if you adopt the <emphasis>Command</"
+"emphasis> pattern instead of a <emphasis>Session Facade</emphasis>."
+msgstr ""
+"ë³ëì ë¹ì§ëì¤ í°ì´ë¥¼ ê°ì§ ì´í리ì¼ì´ì
ìì, ë¹ì§ëì¤ ë¡ì§ì ë°í ì ì ì¹ í°"
+"ì´ì íìí 모ë ì½ë ì
ë¤ì \"ì¤ë¹\"í´ì¼ íë¤. ì´ê²ì ë¹ì§ëì¤ í°ì´ê° 모ë ë°"
+"ì´í°ë¥¼ ë¡ëìí¤ê³ ì´ë¯¸ ì´ê¸°íë 모ë ë°ì´í°ë¥¼ í¹ì ì°ììì íìí í리ì í
ì´"
+"ì
/ì¹ í°ì´ë¡ ë°íí´ì¼ í¨ì ì미íë¤. ëê° ì´í리ì¼ì´ì
ì ì¹ í°ì´ì íìíê² "
+"ë ê°ê°ì ì½ë ì
ì ëí´ <literal>Hibernate.initialize()</literal>를 í¸ì¶íê±°"
+"ë(ì´ í¸ì¶ì ì¸ì
ì´ ë«í기 ì ì ë°ìí´ì¼ íë¤) ëë <literal>FETCH</literal> "
+"ì ì ê°ê±°ë ëë <literal>Criteria</literal> ë´ì <literal>FetchMode.JOIN</"
+"literal>ì ê°ì§ Hibernate ì§ì를 ì¬ì©íì¬ ì½ë ì
ì ì´ì¬í ê²ìíë¤. ì´ê²ì ë"
+"ê° ë¹ì ì´ <emphasis>Session Facade</emphasis> ëì <emphasis>Command</"
+"emphasis> í¨í´ì ì±íí ê²½ì°ì ë ì½ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also attach a previously loaded object to a new <literal>Session</"
+"literal> with <literal>merge()</literal> or <literal>lock()</literal> before "
+"accessing uninitialized collections or other proxies. Hibernate does not, "
+"and certainly <emphasis>should</emphasis> not, do this automatically since "
+"it would introduce impromptu transaction semantics."
+msgstr ""
+"ë¹ì ì ëí ì´ê¸°í ëì§ ìì ì½ë ì
ë¤(ëë ë¤ë¥¸ íë½ìë¤)ì ì ê·¼í기 ì ì "
+"<literal>merge()</literal> ëë <literal>lock()</literal>ì¼ë¡ ìì ë¡ëë ê°"
+"체를 ìë¡ì´ <literal>Session</literal>nì 첨ë¶í ìë ìë¤. ìëë¤. Hibernate"
+"ë ì´ê²ì ìëì ì¼ë¡ ííì§ ìê³ , íì¤í ìëì ì¼ë¡ ííì§ <emphasis>ìì ê²"
+"ì´ë¤</emphasis>. ìëíë©´ ê·¸ê²ì í¹ë³í 목ì ì ìí í¸ëìì
ì미를 ëì
í ê²"
+"ì´ê¸° ë문ì´ë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes you do not want to initialize a large collection, but still need "
+"some information about it, like its size, for example, or a subset of the "
+"data."
+msgstr ""
+"ëëë¡ ë¹ì ì ê±°ëí ì½ë ì
ì ì´ê¸°í ìí¤ë ê²ì ìíì§ ìì§ë§, ì¬ì í (ê·¸ê²"
+"ì ì¬ì´ì¦ì ê°ì) ê·¸ê²ì ëí ì´ë¤ ì ë³´ ëë ë°ì´í°ì ë¶ë¶ì§í©ì íìë¡ íë¤."
+
+#. Tag: para
+#, no-c-format
+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> ë©ìëë ëí ì ì²´ ì½ë ì
ì ì´ê¸°í ìí¬ í"
+"ì ìì´ ì½ë ì
ì ë¶ë¶ì§í©ë¤ì í¨ì¨ì ì¼ë¡ ê²ìíëë° ì¬ì©ëë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr "batch íì¹ ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Using batch fetching, Hibernate can load several uninitialized proxies if "
+"one proxy is accessed. Batch fetching is an optimization of the lazy select "
+"fetching strategy. There are two ways you can configure batch fetching: on "
+"the class level and the collection level."
+msgstr ""
+"Hibernateë ë°°ì¹ íì¹ì í¨ì¨ì ì¼ë¡ ì¬ì©í ì ìë¤. ì¦ íëì íë½ìê° ì¡ì¸ì¤ "
+"ë ê²½ì°ì Hibernateë ëªëª ì´ê¸°í ëì§ ìì íë½ìë¤ì ë¡ëìí¬ ì ìë¤(ëë "
+"ì½ë ì
ë¤). batch íì¹ì lazy select íì¹ ë°©ëì ëí ìµì íì´ë¤. ë¹ì ì´ "
+"batch íì¹ì íëìí¬ ì ìë ë ê°ì§ ë°©ë²ë¤ì´ ì¡´ì¬íë¤: í´ëì¤ ë 벨ìì 그리"
+"ê³ ì½ë ì
ë 벨ìì."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Batch fetching for classes/entities is easier to understand. Consider the "
+"following example: at runtime you have 25 <literal>Cat</literal> instances "
+"loaded in a <literal>Session</literal>, and each <literal>Cat</literal> has "
+"a reference to its <literal>owner</literal>, a <literal>Person</literal>. "
+"The <literal>Person</literal> class is mapped with a proxy, <literal>lazy="
+"\"true\"</literal>. If you now iterate through all cats and call "
+"<literal>getOwner()</literal> on each, Hibernate will, by default, execute "
+"25 <literal>SELECT</literal> statements to retrieve the proxied owners. You "
+"can tune this behavior by specifying a <literal>batch-size</literal> in the "
+"mapping of <literal>Person</literal>:"
+msgstr ""
+"í´ëì¤ë¤/ìí°í°ë¤ì ëí batch íì¹ì ì´í´íê¸°ê° ë ì½ë¤. ë¹ì ì´ ì¤í ìì ë¤"
+"ì ìí©ì ì²íë¤ê³ ììíë¼: ë¹ì ì íëì <literal>Session</literal> ìì ë¡"
+"ëë 25ê°ì <literal>Cat</literal> ì¸ì¤í´ì¤ë¤ì ê°ê³ ìê³ , ê°ê°ì "
+"<literal>Cat</literal>ì ê·¸ê²ì <literal>ìì ì</literal> ì¦, "
+"<literal>Person</literal>ì ëí 참조를 ê°ê³ ìë¤. <literal>Person</literal> "
+"í´ëì¤ë íë½ì <literal>lazy=\"true\"</literal>ë¡ì 매íëë¤. ë§ì¼ ë¹ì ì´ ì´"
+"ì 모ë catë¤ì íµí´ ë°ë³µíê³ ê°ê°ì catì ëí´ <literal>getOwner()</literal>"
+"를 í¸ì¶í ê²½ì°, Hibernateë íë½ìë ìì ìë¤ì ê²ìí기 ìí´ 25ê°ì "
+"<literal>SELECT</literal> 문ì¥ë¤ì ëí´í¸ë¡ ì¤íìí¬ ê²ì´ë¤. ë¹ì ì "
+"<literal>Person</literal> 매íìì <literal>batch-size</literal>를 ì§ì í¨ì¼ë¡"
+"ì¨ ì´ ëìì íëìí¬ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgstr ""
+"Hibernateë ì´ì ì¸ ê°ì ì§ìë¤ ë§ì ì¤íìí¬ ê²ì´ê³ , ê·¸ í¨í´ì 10,10, 5 ì´"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also enable batch fetching of collections. For example, if each "
+"<literal>Person</literal> has a lazy collection of <literal>Cat</literal>s, "
+"and 10 persons are currently loaded in the <literal>Session</literal>, "
+"iterating through all persons will generate 10 <literal>SELECT</literal>s, "
+"one for every call to <literal>getCats()</literal>. If you enable batch "
+"fetching for the <literal>cats</literal> collection in the mapping of "
+"<literal>Person</literal>, Hibernate can pre-fetch collections:"
+msgstr ""
+"ë¹ì ì ëí ì½ë ì
ë¤ì ëí´ batch íì¹ì ì´ì© ê°ë¥íê² í ìë ìë¤. ì를 ë¤"
+"ì´, ë§ì¼ ê°ê°ì <literal>Person</literal>ì´ <literal>Cat</literal>ë¤ì ê°ì§ "
+"lazy ì½ë ì
ì ê°ê³ , 10ê°ì personë¤ì´ <literal>Sesssion</literal> ë´ì íì¬ "
+"ë¡ëëì´ ìì ê²½ì°, 모ë personë¤ì ëí ë°ë³µì 10ê°ì <literal>SELECT</"
+"literal>ë¤ì ìì±ìí¬ ê²ì´ê³ , <literal>getCats()</literal>ì ëí 매ë²ì í¸ì¶"
+"ì ëí´ íëì <literal>SELECT</literal>를 ìì±ìí¬ ê²ì´ë¤. ë§ì¼ ë¹ì ì´ "
+"<literal>Person</literal> 매íìì <literal>cats</literal> ì½ë ì
ì ëí´ "
+"batch íì¹ì ì¬ì©ê°ë¥íê² í ê²½ì°, 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> 8ë¡ì, Hibernateë 4ê°ì SELECTë¤ìì 3, 3, 3, "
+"1 ê°ì ì½ë ì
ë¤ì ë¡ëìí¬ ê²ì´ë¤. ë¤ì ê·¸ ìì±ì ê°ì í¹ì "
+"<literal>Session</literal> ë´ìì ì´ê¸°í ëì§ ìì ì½ë ì
ë¤ì ììëë ê°ì"
+"ì ìì¡´íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Batch fetching of collections is particularly useful if you have a nested "
+"tree of items, i.e. the typical bill-of-materials pattern. However, a "
+"<emphasis>nested set</emphasis> or a <emphasis>materialized path</emphasis> "
+"might be a better option for read-mostly trees."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ í목ë¤ì í¬ê°ì§ í¸ë¦¬ë¥¼ ê°ì§ ê²½ì°, ì를 ë¤ì´ ì íì ì¸ bill-of-"
+"materials í¨í´ì¸ ê²½ì°, (ë¹ë¡ <emphasis>ë´í¬ë set</emphasis> ëë <emphasis>"
+"ì¤ì²´íë ê²½ë¡(materialized path)</emphasis>ê° ì£¼ë¡-ì½ê¸°-í¸ë¦¬ë¤ì ëí´ ë ì¢"
+"ì ìµì
ì¼ ì ììì§ë¼ë) ì½ë ì
ë¤ì ëí batch íì¹ì´ í¹í ì ì©íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr "subselect íì¹ ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If one lazy collection or single-valued proxy has to be fetched, Hibernate "
+"will load all of them, re-running the original query in a subselect. This "
+"works in the same way as batch-fetching but without the piecemeal loading."
+msgstr ""
+"ë§ì¼ í ê°ì lazy ì½ë ì
ì´ë ë¨ì¼ ê° íë½ìê° íì¹ëì´ì¼ íë¤ë©´, Hibernateë "
+"íëì subselect ë´ìì ìëì ì§ì를 ë¤ì ì¤ííì¬ ê·¸ê²ë¤ 모ë를 ë¡ëìí¨"
+"ë¤. ì´ê²ì ì¡°ê°ë ë¡ë© ìì´ batch íì¹ê³¼ ëì¼í ë°©ìì¼ë¡ ëìíë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Fetch profiles"
+msgstr "íì¹ ë°©ëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another way to affect the fetching strategy for loading associated objects "
+"is through something called a fetch profile, which is a named configuration "
+"associated with the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> but enabled, by name, on the <interfacename>org.hibernate."
+"Session</interfacename>. Once enabled on a <interfacename>org.hibernate."
+"Session</interfacename>, the fetch profile wull be in affect for that "
+"<interfacename>org.hibernate.Session</interfacename> until it is explicitly "
+"disabled."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"So what does that mean? Well lets explain that by way of an example. Say we "
+"have the following mappings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now normally when you get a reference to a particular customer, that "
+"customer's set of orders will be lazy meaning we will not yet have loaded "
+"those orders from the database. Normally this is a good thing. Now lets say "
+"that you have a certain use case where it is more efficient to load the "
+"customer and their orders together. One way certainly is to use \"dynamic "
+"fetching\" strategies via an HQL or criteria queries. But another option is "
+"to use a fetch profile to achieve that. Just add the following to your "
+"mapping:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now the following code will actually load both the customer <emphasis>and "
+"their orders</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Currently only join style fetch profiles are supported, but they plan is to "
+"support additional styles. See <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr "lazy íë¡í¼í° íì¹ ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 supports the lazy fetching of individual properties. This "
+"optimization technique is also known as <emphasis>fetch groups</emphasis>. "
+"Please note that this is mostly a marketing feature; optimizing row reads is "
+"much more important than optimization of column reads. However, only loading "
+"some properties of a class could be useful in extreme cases. For example, "
+"when legacy tables have hundreds of columns and the data model cannot be "
+"improved."
+msgstr ""
+"Hibernate3ì ê°ë³ì ì¸ íë¡í¼í°ë¤ì ëí lazy íì¹ì ì§ìíë¤. ì´ ìµì í 기ì "
+"ì ëí <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 ""
+"lazy íë¡í¼í° ë¡ë©ì ì´ì©ê°ë¥íê² íë ¤ë©´, ë¹ì ì í¹ì property 매íë¤ì ëí´ "
+"<literal>lazy</literal> ìì±ì ì¤ì íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Lazy property loading requires buildtime bytecode instrumentation. If your "
+"persistent classes are not enhanced, Hibernate will ignore lazy property "
+"settings and return to immediate fetching."
+msgstr ""
+"Lazy property ë¡ë©ì ë¹ë ì ë°ì´í¸ì½ë ìë¨ì íìë¡ íë¤! ë§ì¼ ë¹ì ì ìì "
+"í´ëì¤ë¤ì´ ê°ì ëì§ ìì ê²½ì°, Hibernateë ì¡°ì©íê² lazy íë¡í¼í° ì¤ì ë¤ì 무"
+"ìíê³ ì¦ê°ì ì¸ íì¹ì¼ë¡ íí´í ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "For bytecode instrumentation, use the following Ant task:"
+msgstr "bytecode ìë¨ì¼ë¡, ë¤ì Ant íì¤í¬ë¥¼ ì¬ì©íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A different way of avoiding unnecessary column reads, at least for read-only "
+"transactions, is to use the projection features of HQL or Criteria queries. "
+"This avoids the need for buildtime bytecode processing and is certainly a "
+"preferred solution."
+msgstr ""
+"ë¶íìí ì»¬ë¼ ì½ê¸°ë¥¼ í¼íë ë¤ë¥¸ (ë ì¢ì?) ë°©ë²ì ì ì´ë ì½ê¸° ì ì© í¸ëìì
"
+"ì ê²½ì°ì HQL ì§ì ëë Criteria ì§ìì í¬ì¬(projection) í¹ì§ë¤ì ì¬ì©íë ê²"
+"ì´ë¤. ì´ê²ì ë¹ë ì ë°ì´í¸ì½ë ì²ë¦¬ì ëí íìì±ì í¼íê² í´ì£¼ê³ íì¤í ì "
+"í¸ëë í´ê²°ì±
ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can force the usual eager fetching of properties using <literal>fetch "
+"all properties</literal> in HQL."
+msgstr ""
+"ë¹ì ì HQLìì <literal>fetch all properties</literal>를 ì¬ì©íì¬ íë¡í¼í°ë¤"
+"ì ëí íµìì eager íì¹ì ê°ì ìí¬ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr "ëë²ì§¸ ë 벨 ìºì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A Hibernate <literal>Session</literal> is a transaction-level cache of "
+"persistent data. It is possible to configure a cluster or JVM-level "
+"(<literal>SessionFactory</literal>-level) cache on a class-by-class and "
+"collection-by-collection basis. You can even plug in a clustered cache. Be "
+"aware that caches are not aware of changes made to the persistent store by "
+"another application. They can, however, be configured to regularly expire "
+"cached data."
+msgstr ""
+"Hibernate <literal>Session</literal>ì ìì ë°ì´í°ì ëí í¸ëìì
ë 벨 ìºì"
+"ì´ë¤. class-by-classì collection-by-collection ê¸°ë° ìì í´ë¬ì¤í° ëë JVM-"
+"ë 벨(<literal>SessionFactory</literal>-ë 벨) ìºì를 구ì±íë ê²ì´ ê°ë¥íë¤. "
+"ë¹ì ì í´ë¬ì¤í°ë§ ë ìºì ìì íë¬ê·¸ì¸ í ìë ìë¤. 주ìíë¼. ìºìë¤ì (ë¹"
+"ë¡ ê·¸ê²ë¤ì´ ìºìë ë°ì´í°ë¥¼ ì 기ì ì¼ë¡ ë§ë£ëëë¡ êµ¬ì±ëì´ ììì§ë¼ë) ë ë¤"
+"른 ì´í리ì¼ì´ì
ì ìí´ ìì ì ì¥ìì ëí´ íí´ì§ ë³ê²½ë¤ì ê²°ì½ ìì§ ëª»íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You have the option to tell Hibernate which caching implementation to use by "
+"specifying the name of a class that implements <literal>org.hibernate.cache."
+"CacheProvider</literal> using the property <literal>hibernate.cache."
+"provider_class</literal>. Hibernate is bundled with a number of built-in "
+"integrations with the open-source cache providers that are listed below. You "
+"can also implement your own and plug it in as outlined above. Note that "
+"versions prior to 3.2 use EhCache as the default cache provider."
+msgstr ""
+"ëí´í¸ë¡, Hibernateë JVM-ë 벨ì ìºì±ì EHCache를 ì¬ì©íë¤. (JCS ì§ìì ì´ì "
+"ì§ë¶íê² ëìê³ Hibernateì ì¥ë ë²ì ìì ì ê±°ë ê²ì´ë¤.) ë¹ì ì "
+"<literal>hibernate.cache.provider_class</literal> íë¡í¼í°ë¥¼ ì¬ì©íì¬ "
+"<literal>org.hibernate.cache.CacheProvider</literal>를 구ííë í´ëì¤ì ì´ë¦"
+"ì ì§ì í¨ì¼ë¡ì¨ ë¤ë¥¸ 구íì ì íí ìë ìë¤. 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 comes bundled with a number of built-in integrations with open-"
+"source cache providers (listed below); additionally, you could implement "
+"your own and plug it in as outlined above. Note that versions prior to 3.2 "
+"defaulted to use EhCache as the default cache provider; that is no longer "
+"the case as of 3.2. ë¹ì ì <literal>hibernate.cache.provider_class</literal> "
+"íë¡í¼í°ë¥¼ ì¬ì©íì¬ <literal>org.hibernate.cache.CacheProvider</literal>를 구"
+"ííë í´ëì¤ì ì´ë¦ì ì§ì í¨ì¼ë¡ì¨ ì´ë ìºì± 구íì ì¬ì©í ê²ì¸ì§ë¥¼ "
+"Hibernateìê² ìë ¤ì£¼ë ìµì
ì ê°ëë¤. Hibernateë (ìëì ì´ê±°ë) ì¤í-ìì¤ "
+"íë¡ë°ì´ëë¤ì ê°ì§ ë§ì ë¹ëëì´ ìë íµí©ë¤ì ë²ë¤ë¡ ê°ê³ ìë¤; ì¶ê°ì ì¼ë¡ "
+"ë¹ì ì ììì ì¸ê¸íë¯ì´ ê·¸ê²ì ë¹ì ìì ì ê²ì 구íí ì ìê³ ê·¸ê²ì íë¬"
+"ê·¸ ìí¬ ì ìë¤. 3.2 ì´ë² ë²ì ë¤ì ëíí¸ ìºì íë¡ë°ì´ëë¡ì EhCache를 ì¬ì©"
+"íëë¡ ëí¬ë¦ë¡ ë´ì¥ëì´ ììì ë
¸í¸íë¼; ë²ì 3.2ì ê²½ì°ì ê·¸ê²ì ëì´ì ë"
+"í´í¸ ë´ì¥ì´ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr "ìºì íë¡ë°ì´ëë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr "ìºì"
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr "íë¡ë°ì´ë í´ëì¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr "íì
"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr "í´ë¬ì¤í° ìì "
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr "ì§ì ìºì ì§ì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"Hashtable (ì í ì©ëë¡ ê³ ìëì´ ìì§ ìì)\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"Hashtable (ì íì©ì¼ë¡ ê³ ìëì§ ìì)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "org.hibernate.cache.HashtableCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr "memory"
+
+#. Tag: 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
+#, no-c-format
+msgid "EHCache"
+msgstr "EHCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "org.hibernate.cache.EhCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr "memory, disk"
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr "OSCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "org.hibernate.cache.OSCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr "SwarmCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "org.hibernate.cache.SwarmCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr "clustered (ip multicast)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr "yes (clustered invalidation)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr "JBoss TreeCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "org.hibernate.cache.TreeCacheProvider"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr "clustered (ip multicast), transactional"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr "yes (replication)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr "yes (clock sync req.)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "JBoss Cache 2"
+msgstr "JBoss TreeCache"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr "org.hibernate.cache.EhCacheProvider"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr "yes (clustered invalidation)"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr "Cache 매íë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><cache></literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"í´ëì¤ ëë ì½ë ì
매íì <literal><cache></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>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>region</literal> (optional: defaults to the class or collection "
+"role name): specifies the name of the second level cache region"
+msgstr ""
+"<literal>region</literal> (ìµì
, ëí´í¸ë class ëë ì½ë ì
role ì´ë¦) "
+"second level ìºì ììì ì´ë¦ì ì§ì íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>include</literal> (optional: defaults to <literal>all</literal>) "
+"<literal>non-lazy</literal>: specifies that properties of the entity mapped "
+"with <literal>lazy=\"true\"</literal> cannot be cached when attribute-level "
+"lazy fetching is enabled"
+msgstr ""
+"<literal>include</literal> (ìµì
, ëí´í¸ë <literal>all</literal>) "
+"<literal>non-lazy</literal>ë <literal>lazy=\"true\"</literal>ë¡ ë§¤íë ìí°"
+"í°ì íë¡í¼í°ë¤ì ì§ì íë©° ìì±-ë 벨 lazy íì¹ì´ ì´ì© ê°ë¥í ë í¤ìë ì ì"
+"ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, you can specify <literal><class-cache></literal> and "
+"<literal><collection-cache></literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"ë¤ë¥¸ ë°©ë²ì¼ë¡ (ì í¸ì ì¼ë¡?), ë¹ì ì <literal>hibernate.cfg.xml</literal> ë´"
+"ì <literal><class-cache></literal>ì <literal><collection-cache>"
+"</literal> ììë¤ì ì§ì í ìë ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>usage</literal> attribute specifies a <emphasis>cache "
+"concurrency strategy</emphasis>."
+msgstr ""
+"<literal>usage</literal> ìì±ì <emphasis> ìºì ëìì± ë°©ë</emphasis>를 ì§ì "
+"íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr "ë°©ë: ì½ê¸° ì ì©"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your application needs to read, but not modify, instances of a persistent "
+"class, a <literal>read-only</literal> cache can be used. This is the "
+"simplest and optimal performing strategy. It is even safe for use in a "
+"cluster."
+msgstr ""
+"ë¹ì ì ì´í리ì¼ì´ì
ì´ ìì í´ëì¤ì ì¸ì¤í´ì¤ë¤ì ì½ì´ë¤ì¼ íìê° ìì§ë§ ê²°ì½ "
+"ë³ê²½í íìê° ìì ê²½ì°ì <literal>read-only</literal> ìºìê° ì¬ì©ë ì ì"
+"ë¤. ì´ê²ì ê°ì¥ ê°ë¨í ìµìì í¼í¬ë¨¼ì¤ë¥¼ ìí ë°©ëì´ë¤. ê·¸ê²ì í´ë¬ì¤í° ë´ ì¬"
+"ì©ìë ìë²½íê² ìì íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr "ë°©ë: ì½ê¸°/ì°ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the application needs to update data, a <literal>read-write</literal> "
+"cache might be appropriate. This cache strategy should never be used if "
+"serializable transaction isolation level is required. If the cache is used "
+"in a JTA environment, you must specify the property <literal>hibernate."
+"transaction.manager_lookup_class</literal> and naming a strategy for "
+"obtaining the JTA <literal>TransactionManager</literal>. In other "
+"environments, you should ensure that the transaction is completed when "
+"<literal>Session.close()</literal> or <literal>Session.disconnect()</"
+"literal> is called. If you want to use this strategy in a cluster, you "
+"should ensure that the underlying cache implementation supports locking. The "
+"built-in cache providers <emphasis>do not</emphasis> support locking."
+msgstr ""
+"ì´í리ì¼ì´ì
ì´ ë°ì´í°ë¥¼ ì
ë°ì´í¸ í íìê° ìì ê²½ì°, <literal>read-write</"
+"literal> ìºìê° ì ì íë¤. ë§ì¼ ì§ë ¬í ê°ë¥í(serializable) í¸ëìì
격리 ë 벨"
+"ì´ íìí ê²½ì°ìë ì´ ìºì ë°©ëê° ê²°ì½ ì¬ì©ëì§ ë§ìì¼ íë¤. ë§ì¼ ìºìê° JTA "
+"íê²½ìì ì¬ì©ë ê²½ì°, ë¹ì ì JTA <literal>TransactionManager</literal>를 ì»"
+"ë ë°©ë를 ëª
ëª
íë <literal>hibernate.transaction.manager_lookup_class</"
+"literal> íë¡í¼í°ë¥¼ ì§ì í´ì¼ íë¤. ë¤ë¥¸ íê²½ë¤ìì, ë¹ì ì<literal>Session."
+"close()</literal> ëë <literal>Session.disconnect()</literal>ê° í¸ì¶ë ë í¸"
+"ëìì
ì´ ìë£ëë ê²ì íì¤í í´ì¼ íë¤. ë§ì¼ ë¹ì ì´ í´ë¬ì¤í° ë´ì ì´ ë°©ë를 "
+"ì¬ì©íê³ ì ìí ê²½ì°, ë¹ì ì 기본 ìºì 구íì´ ì ê¸ì ì§ìíëë¡ íë ê²ì í"
+"ì¤í í´ì¼ íë¤. 미리 ë§ë¤ì´ì§ ìºì íë¡ë°ì´ëë¤ì ê·¸ë ê² ííì§ <emphasis>ì"
+"ëë¤</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr "ë°©ë: ì격íì§ ìì ì½ê¸°/ì°ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the application only occasionally needs to update data (i.e. if it is "
+"extremely unlikely that two transactions would try to update the same item "
+"simultaneously), and strict transaction isolation is not required, a "
+"<literal>nonstrict-read-write</literal> cache might be appropriate. If the "
+"cache is used in a JTA environment, you must specify <literal>hibernate."
+"transaction.manager_lookup_class</literal>. In other environments, you "
+"should ensure that the transaction is completed when <literal>Session.close()"
+"</literal> or <literal>Session.disconnect()</literal> is called."
+msgstr ""
+"ë§ì¼ ì´í리ì¼ì´ì
ì´ ì¤ì§ ë°ì´í°ë¥¼ ì주 ì
ë°ì´í¸í íìê° ìê³ (ì를 ë¤ì´, ë§"
+"ì¼ ë ê°ì í¸ëìì
ë¤ì´ ëìì ëì¼í í목ì ì
ë°ì´í¸ íë ¤ê³ ìëíë ì ë§ ì"
+"ìì§íì§ ìì ê²½ì°) ê·¸ë¦¬ê³ ì격í í¸ëìì
ê²©ë¦¬ê° íìíì§ ìì ê²½ì°, "
+"<literal>nonstrict-read-write</literal> ìºìê° ì ì í ì ìë¤. ë§ì¼ ê·¸ ìºì"
+"ê° JTA íê²½ìì ì¬ì©ë ê²½ì°, ë¹ì ì <literal>hibernate.transaction."
+"manager_lookup_class</literal>를 ì§ì í´ì¼ íë¤. ë¤ë¥¸ íê²½ë¤ìì, ë¹ì ì "
+"<literal>Session.close()</literal> ëë <literal>Session.disconnect()</"
+"literal>ê° í¸ì¶ë ë í¸ëìì
ì´ ìë£ëëë¡ íì¤í í´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr "ë°©ë: transactional"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>transactional</literal> cache strategy provides support for "
+"fully transactional cache providers such as JBoss TreeCache. Such a cache "
+"can only be used in a JTA environment and you must specify "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
+msgstr ""
+"<literal>transactional</literal> ìºì ë°©ëë JBoss TreeCacheì ê°ì ì ì²´ í¸ë"
+"ìì
ì ì¸ ìºì íë¡ë°ì´ëë¤ì ëí ì§ìì ì ê³µíë¤. ê·¸ë° ìºìë ì¤ì§ JTA íê²½ "
+"ë´ìì ì¬ì©ë ì ìê³ ë¹ì ì <literal>hibernate.transaction."
+"manager_lookup_class</literal>를 ì§ì í´ì¼ íë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr "ìºì ëìì± ë°©ë ì§ì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"None of the cache providers support all of the cache concurrency strategies."
+msgstr ""
+"ìºì íë¡ë°ì´ëë¤ ì¤ ì´ë ê²ë 모ë ìºì ëìì± ë°©ëë¤ì ì§ìíì§ ìëë¤. ë¤"
+"ì í
ì´ë¸ì ì´ë íë¡ë°ì´ëë¤ì´ ì´ë ëìì± ë°©ëë¤ê³¼ í¸íëëì§ë¥¼ ë³´ì¬ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+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 "ìºì ëìì± ë°©ë ì§ì"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr "ì½ê¸° ì ì©"
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr "ì격íì§ ìì ì½ê¸°-ì°ê¸°"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr "ì½ê¸°-ì°ê¸°"
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr "transactional"
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr "ìºìë¤ì ê´ë¦¬í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Whenever you pass an object to <literal>save()</literal>, <literal>update()</"
+"literal> or <literal>saveOrUpdate()</literal>, and whenever you retrieve an "
+"object using <literal>load()</literal>, <literal>get()</literal>, "
+"<literal>list()</literal>, <literal>iterate()</literal> or <literal>scroll()"
+"</literal>, that object is added to the internal cache of the "
+"<literal>Session</literal>."
+msgstr ""
+"ë¹ì ì´ ê°ì²´ë¥¼ <literal>save()</literal>, <literal>update()</literal> ëë "
+"<literal>saveOrUpdate()</literal>ì ì ë¬í ëë§ë¤ ê·¸ë¦¬ê³ ë¹ì ì´ <literal>load"
+"()</literal>, <literal>get()</literal>, <literal>list()</literal>, "
+"<literal>iterate()</literal> ëë <literal>scroll()</literal>ì ì¬ì©íì¬ ê°ì²´"
+"를 ê²ìí ëë§ë¤, ê·¸ ê°ì²´ë <literal>Session</literal>ì ë´ë¶ ìºìì ì¶ê°ë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When <literal>flush()</literal> is subsequently called, the state of that "
+"object will be synchronized with the database. If you do not want this "
+"synchronization to occur, or if you are processing a huge number of objects "
+"and need to manage memory efficiently, the <literal>evict()</literal> method "
+"can be used to remove the object and its collections from the first-level "
+"cache."
+msgstr ""
+"<literal>flush()</literal>ê° ì°¨íì ì¼ë¡ í¸ì¶ë ë, ê·¸ ê°ì²´ì ìíë ë°ì´í°ë² "
+"ì´ì¤ì ë기í ë ê²ì´ë¤. ë§ì¼ ë¹ì ì´ ì´ ë기íê° ë°ìëë ê²ì ìíì§ ìê±°ë "
+"ë§ì¼ ë¹ì ì´ ëëì ê°ì²´ë¤ì ì²ë¦¬ ì¤ì´ê³ ë©ëª¨ë¦¬ë¥¼ í¨ì¨ì ì¼ë¡ ê´ë¦¬í íìê° ì"
+"ì ê²½ì°, <literal>evict()</literal> ë©ìëë first-level ìºìë¡ë¶í° ê·¸ ê°ì²´"
+"ì ê·¸ê²ì ì½ë ì
ë¤ì ì ê±°íëë° ì¬ì©ë ì ìë¤."
+
+#. 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 ""
+"<literal>Session</literal>ì ëí ì¸ì¤í´ì¤ê° ì¸ì
ìºìì ìíëì§ ì¬ë¶ë¥¼ ê²°ì "
+"íëë° <literal>contains()</literal> ë©ìë를 ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To evict all objects from the session cache, call <literal>Session.clear()</"
+"literal>"
+msgstr ""
+"ì¸ì
ìºìë¡ë¶í° 모ë ê°ì²´ë¤ì ìì íê² í´ê±°ìí¤ê¸° ìí´, <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 ""
+"second-level ìºìì ê²½ì°, íëì ì¸ì¤í´ì¤, ì ì²´ í´ëì¤, ì½ë ì
ì¸ì¤í´ì¤ ëë "
+"ì ì²´ ì½ë ì
roleì ìºìë ìí를 í´ê±°ìí¤ë <literal>SessionFactory</"
+"literal> ìì ì ìë ë©ìëë¤ì´ ì¡´ì¬íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>CacheMode</literal> controls how a particular session interacts "
+"with the second-level cache:"
+msgstr ""
+"<literal>CacheMode</literal>ë í¹ì ì¸ì
ì´ second-level ìºìì ì´ë»ê² ìí¸ì"
+"ì©íëì§ë¥¼ ì ì´íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
+msgstr ""
+"<literal>CacheMode.NORMAL</literal> - second-level ìºìë¡ë¶í° ìì´í
ë¤ì ì½ì´"
+"ë¤ì´ê³ second-level ìºìë¡ ìì´í
ë¤ì 기ë¡íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.GET</literal>: will read items from the second-level "
+"cache. Do not write to the second-level cache except when updating data"
+msgstr ""
+"<literal>CacheMode.GET</literal> - second-level ìºìë¡ë¶í° ìì´í
ë¤ì ì½ì´ë¤"
+"ì´ì§ë§, ë°ì´í°ë¥¼ ì
ë°ì´í¸í ë를 ì ì¸íë©´ second-level ìºìë¡ ê¸°ë¡íì§ ìëë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.PUT</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache"
+msgstr ""
+"<literal>CacheMode.PUT</literal> - ìì´í
ë¤ì second-level ìºìì 기ë¡íì§"
+"ë§, second-level ìºìë¡ë¶í° ì½ì´ë¤ì´ì§ ìëë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>CacheMode.REFRESH</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache. Bypass the effect of "
+"<literal>hibernate.cache.use_minimal_puts</literal> forcing a refresh of the "
+"second-level cache for all items read from the database"
+msgstr ""
+"<literal>CacheMode.REFRESH</literal> - ìì´í
ë¤ì second-level ìºìë¡ê¸°ë¡íì§"
+"ë§, second-level ìºìë¡ë¶í° ì½ì´ë¤ì´ì§ ìê³ , ë°ì´í°ë² ì´ì¤ë¡ë¶í° ì½ì´ë¤ì¸ 모"
+"ë ìì´í
ë¤ì ëí second-level ìºìì ê°±ì ì ê°ì ìì¼, <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 ""
+"second-level ìºì ëë ì§ì ìºì ììì ë´ì©ë¬¼ì ë¸ë¼ì°ì§íë ¤ë©´ "
+"<literal>Statistics</literal> API를 ì¬ì©íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You will need to enable statistics and, optionally, force Hibernate to keep "
+"the cache entries in a more readable format:"
+msgstr ""
+"ë¹ì ì íµê³ë¥¼ ì´ì© ê°ë¥íê² íê³ , ì íì ì¼ë¡ Hibernateë¡ íì¬ê¸ ìºì ìí¸ë¦¬ë¤"
+"ì ë³´ë¤ ì¸ê°ìê² ì´í´ê°ë¥í íìì¼ë¡ ì ì§ìí¤ëë¡ ê°ì ìí¤ë ê²ì´ íìí ê²ì´"
+"ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr "ì§ì ìºì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Query result sets can also be cached. This is only useful for queries that "
+"are run frequently with the same parameters."
+msgstr ""
+"ì§ì ê²°ê³¼ ì
ë¤ì´ ëí ìºìë ìë ìë¤. ì´ê²ì ëì¼í íë¼ë¯¸í°ë¤ì ê°ì§ê³ ì"
+"주 ì¤íëë ì§ìë¤ìë§ ì ì©íë¤. ì§ì ìºì를 ì¬ì©í기 ìí´ ë¹ì ì 먼ì ê·¸ê²"
+"ì ì´ì© ê°ë¥íëë¡ í´ì¼ íë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Caching of query results introduces some overhead in terms of your "
+"applications normal transactional processing. For example, if you cache "
+"results of a query against Person Hibernate will need to keep track of when "
+"those results should be invalidated because changes have been committed "
+"against Person. That, coupled with the fact that most applications simply "
+"gain no benefit from caching query results, leads Hibernate to disable "
+"caching of query results by default. To use query caching, you will first "
+"need to enable the query cache:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the "
+"cached query results"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding "
+"timestamps of the most recent updates to queryable tables. These are used to "
+"validate the results as they are served from the query cache."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you configure your underlying cache implementation to use expiry or "
+"timeouts is is very important that the cache timeout of the underlying cache "
+"region for the UpdateTimestampsCache be set to a higher value than the "
+"timeouts of any of the query caches. In fact, we recommend that the the "
+"UpdateTimestampsCache region not be configured for expiry at all. Note, in "
+"particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As mentioned above, most queries do not benefit from caching or their "
+"results. So by default, individual queries are not cached even after "
+"enabling query caching. To enable results caching for a particular query, "
+"call <literal>org.hibernate.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 ""
+"ëë¶ë¶ì ì§ìë¤ì ìºì±ì¼ë¡ë¶í° ì´ì ì´ ì기ì, ëí´í¸ë¡ ì§ìë¤ì ìºìëì§ ìë"
+"ë¤. ìºì±ì ì´ì© ê°ë¥íëë¡ íë ¤ë©´, <literal>Query.setCacheable(true)</"
+"literal>를 í¸ì¶íë¼. ì´ í¸ì¶ì 기존 ìºì ê²°ê³¼ë¤ì ì°¾ë ê²ì ì§ììê² íì©í´ì£¼"
+"ê±°ë ì§ìê° ì¤íë ë ê·¸ê²ì ê²°ê³¼ë¤ì ìºìì ì¶ê°íë ê²ì íì©í´ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query cache does not cache the state of the actual entities in the "
+"cache; it caches only identifier values and results of value type. For this "
+"reaso, the query cache should always be used in conjunction with the second-"
+"level cache for those entities expected to be cached as part of a query "
+"result cache (just as with collection caching)."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Query cache regions"
+msgstr "ì§ì ìºì ì§ì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you require fine-grained control over query cache expiration policies, "
+"you can specify a named cache region for a particular query by calling "
+"<literal>Query.setCacheRegion()</literal>."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ì§ì ìºì ë§ë£ ì ì±
ë¤ì ëí ì¸ë°í ì ì´ë¥¼ íìë¡ í ê²½ì°, ë¹ì "
+"ì <literal>Query.setCacheRegion()</literal>ì í¸ì¶í¨ì¼ë¡ì¨ í¹ë³í ì§ìì ë"
+"í´ ëª
ëª
ëë ìºì ììì ì§ì í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to force the query cache to refresh one of its regions "
+"(disregard any cached results it finds there) you can use <literal>org."
+"hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction "
+"with the region you have defined for the given query, Hibernate will "
+"selectively force the results cached in that particular region to be "
+"refreshed. This is particularly useful in cases where underlying data may "
+"have been updated via a separate process and is a far more efficient "
+"alternative to bulk eviction of the region via <literal>org.hibernate."
+"SessionFactory.evictQueries()</literal>."
+msgstr ""
+"ë§ì¼ ì§ìê° ê·¸ê²ì ì§ì ìºì ììì ê°±ì ì ê°ì ìì¼ì¼ íë ê²½ì°ì, ë¹ì ì "
+"<literal>Query.setCacheMode(CacheMode.REFRESH)</literal>를 í¸ì¶í´ì¼ íë¤. ì´"
+"ê²ì 기본 ë°ì´í°ê° ë³ëì íë¡ì¸ì¤ë¥¼ íµí´ ì
ë°ì´í¸ëìê³ (ì를 ë¤ë©´, Hibernate"
+"를 íµí´ ë³ê²½ëì§ ììê³ ) í¹ì ì§ì ê²°ê³¼ ì
ë¤ì ì íì ì¼ë¡ ê°±ì íë ê²ì ì´í"
+"리ì¼ì´ì
ìê² íì©í´ì£¼ë ê²½ì°ë¤ìì í¹ë³í ì ì©íë¤. ì´ê²ì "
+"<literal>SessionFactory.evictQueries()</literal>를 íµí´ ì§ì ìºì ììì í´ê±°"
+"ìí¤ë ë³´ë¤ í¨ê³¼ì ì¸ ëìì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr "ì½ë ì
í¼í¬ë¨¼ì¤ ì´í´í기"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr "ë¶ë¥"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr "Hibernateë ì¸ ê°ì§ 기본ì ì¸ ì¢
ë¥ì ì½ë ì
ë¤ì ì ìíë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr "ê°ë¤ì ê°ì§ ì½ë ì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "one-to-many associations"
+msgstr "one to many ì°ê´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "many-to-many associations"
+msgstr "many to many ì°ê´ë¤"
+
+#. 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 ""
+"ì´ ë¶ë¥ë ì¬ë¬ ê°ì§ í
ì´ë¸ê³¼ foreign key ê´ê³ë¤ì 구ë³ì§ì§ë§ ì°ë¦¬ê° ê´ê³í 모"
+"íì ëí´ ì íìê° ìë 모ë ê²ì ì°ë¦¬ìê² ë§í´ì£¼ì§ ìëë¤. ê´ê³í 구조ì í¼"
+"í¬ë¨¼ì¤ í¹ì§ë¤ì ìì íê² ì´í´í기 ìí´, ì°ë¦¬ë ëí ì½ë ì
íë¤ì ì
ë°ì´í¸í"
+"ê±°ë ìì í기 ìí´ Hibernateì ìí´ ì¬ì©ëë íë¼ì´ë¨¸ë¦¬ í¤ì 구조를 ê²í í´ì¼ "
+"íë¤. ì´ê²ì ë¤ì ë¶ë¥ë¥¼ ì ìíë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr "ì¸ë±ì± ë ì½ë ì
ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr "setë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr "bagë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal><key></literal> and <literal><index></"
+"literal> columns. In this case, collection updates are extremely efficient. "
+"The primary key can be efficiently indexed and a particular row can be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"모ë ì¸ë±ì±ë ì½ë ì
ë¤(mapë¤, listë¤, arrayë¤)ì <literal><key></"
+"literal>ì <literal><index></literal> 컬ë¼ë¤ë¡ ì´ë£¨ì´ì§ íë¼ì´ë¨¸ë¦¬ í¤"
+"를 ê°ëë¤. ì´ ê²½ì°ì ì½ë ì
ì
ë°ì´í¸ë¤ì ëê° ê·¹í í¨ì¨ì ì´ë¤ - Hibernateê° "
+"ê·¸ê²ì ì
ë°ì´í¸ë ìì 를 ìëí ë íë¼ì´ë¨¸ë¦¬ í¤ë í¨ì¨ì ì¼ë¡ ì¸ë±ì±ë ì ì"
+"ê³ í¹ì íì í¨ì¨ì ì¼ë¡ ìì¹ì§ìì§ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal><key></literal> and "
+"element columns. This can be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields, as "
+"the database may not be able to index a complex primary key as efficiently. "
+"However, for one-to-many or many-to-many associations, particularly in the "
+"case of synthetic identifiers, it is likely to be just as efficient. If you "
+"want <literal>SchemaExport</literal> to actually create the primary key of a "
+"<literal><set></literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"Setë¤ì <literal><key></literal>ì ìì 컬ë¼ë¤ë¡ 구ì±ë íë¼ì´ë¨¸ë¦¬ í¤"
+"를 ê°ëë¤. ì´ê²ì ëªëª ì íì ì½ë ì
ìì, í¹í composite ììë¤ ëë ëí í
"
+"ì¤í¸ ëë ë°ì´ë리 íëë¤ì ëí´ ë í¨ì¨ì ì¼ ì ìë¤; ë°ì´í°ë² ì´ì¤ë ë³µì¡í "
+"íë¼ì´ë¨¸ë¦¬ í¤ë¥¼ í¨ì¨ì ì¼ë¡ ì¸ë±ì±íë ê²ì´ ë¶ê°ë¥í ìë ìë¤. ë°ë©´ì one to "
+"many ëë many to many ì°ê´ë¤ì ê²½ì°, í¹í í©ì± ìë³ìë¤ì ê²½ì°ìë í¨ì¨ì ì¼ "
+"ì ìì ê² ê°ë¤.(ë¶ì-ë
¸í¸: ë§ì¼ ë¹ì ì´ ë¹ì ì ìí <literal><set></"
+"literal>ì íë¼ì´ë¨¸ë¦¬ í¤ë¥¼ ì¤ì ë¡ ìì±ìí¤ê¸° ìí´ <literal>SchemaExport</"
+"literal>를 ìíë¤ë©´ ë¹ì ì 모ë 컬ë¼ë¤ì <literal>not-null=\"true\"</literal>"
+"ë¡ ì ì¸í´ì¼ íë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal><idbag></literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"<literal><idbag></literal> 매íë¤ì ëì© í¤ë¥¼ ì ìíì¬ì, ê·¸ê²ë¤ì í"
+"ì ì
ë°ì´í¸ì ë§¤ì° í¨ì¨ì ì´ë¤. ì¬ì¤, ê·¸ê²ë¤ì ìµìì ê²½ì°ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Bags are the worst case since they permit duplicate element values and, as "
+"they have no index column, no primary key can be defined. Hibernate has no "
+"way of distinguishing between duplicate rows. Hibernate resolves this "
+"problem by completely removing in a single <literal>DELETE</literal> and "
+"recreating the collection whenever it changes. This can be inefficient."
+msgstr ""
+"Bagë¤ì ê°ì¥ ëì ê²½ì°ì´ë¤. ìëíë©´ íëì bagì ì¤ë³µ ìì ê°ë¤ì íì©íê³ "
+"ì¸ë±ì¤ 컬ë¼ì ê°ì§ ì기 ë문ì, íë¼ì´ë¨¸ë¦¬ í¤ê° ì ìë ì ìë¤. Hibernateë "
+"ì¤ë³µ íë¤ ì¬ì´ë¥¼ êµ¬ë¶ ì§ë ë°©ë²ì ê°ê³ ìì§ ìë¤. Hibernateë ê·¸ê²ì´ ë³ê²½ë "
+"ëë§ë¤ (í ê°ì DELETEë¡) ì½ë ì
ì ìì íê² ì ê±°íê³ ë¤ì ìì±ìí´ì¼ë¡ì¨ ì´ "
+"문ì 를 í´ê²°íë¤. ì´ê²ì ë§¤ì° ë¹í¨ì¨ì ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For a one-to-many association, the \"primary key\" may not be the physical "
+"primary key of the database table. Even in this case, the above "
+"classification is still useful. It reflects how Hibernate \"locates\" "
+"individual rows of the collection."
+msgstr ""
+"one-to-many ì°ê´ì ê²½ì°, \"íë¼ì´ë¨¸ë¦¬ í¤\"ë ë°ì´í°ë² ì´ì¤ í
ì´ë¸ì 물리ì ì¸ "
+"íë¼ì´ë¨¸ë¦¬ í¤ê° ìë ìë ìì§ë§- ì´ ê²½ì°ììë ìì ë¶ë¥ë ì¬ì í ì ì©íë¤. "
+"(ê·¸ê²ì ì¬ì í Hibernateê° ì½ë ì
ì ê°ë³ íë¤ì ì´ë»ê² \"ìì¹ì§ì°ë\"ì§ë¥¼ ë°"
+"ìíë¤.)"
+
+#. Tag: title
+#, no-c-format
+msgid ""
+"Lists, maps, idbags and sets are the most efficient collections to update"
+msgstr "List, map, idbag, setë¤ì updateì ê°ì¥ í¨ì¨ì ì¸ ì½ë ì
ë¤ì´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"From the discussion above, it should be clear that indexed collections and "
+"sets allow the most efficient operation in terms of adding, removing and "
+"updating elements."
+msgstr ""
+"ìì ë
¼ììì, ì¸ë±ì±ë ì½ë ì
ë¤ê³¼ (ëê°) setë¤ì´ ììë¤ì ì¶ê°íê³ , ì ê±°í"
+"ê³ ì
ë°ì´í¸í¨ì ìì´ ê°ì¥ í¨ì¨ì ì¸ ì¤í¼ë ì´ì
ì íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is, arguably, one more advantage that indexed collections have over "
+"sets for many-to-many associations or collections of values. Because of the "
+"structure of a <literal>Set</literal>, Hibernate does not <literal>UPDATE</"
+"literal> a row when an element is \"changed\". Changes to a <literal>Set</"
+"literal> always work via <literal>INSERT</literal> and <literal>DELETE</"
+"literal> of individual rows. Once again, this consideration does not apply "
+"to one-to-many associations."
+msgstr ""
+"ìë§ ì¸ë±ì± ë ì½ë ì
ë¤ì´ many to many ì°ê´ë¤ì ìí ëë ê°ë¤ì ê°ì§ ì½ë ì
"
+"ë¤ì ìí setë¤ì ëí´ ê°ê³ ìë íë ì´ìì ì¥ì ë¤ì´ ì¡´ì¬íë¤. "
+"<literal>Set</literal>ì 구조 ë문ì, Hibernateë ììê° \"ë³ê²½\"ë ë íì "
+"<literal>UPDATE</literal> íì§ ìëë¤. <literal>Set</literal>ì ëí ë³ê²½ë¤"
+"ì íì (ê°ë³ íë¤ì ëí) <literal>INSERT</literal>ì <literal>DELETE</"
+"literal>를 íµí´ ëìíë¤. ë¤ì ì´ ê²í ë one to many ì°ê´ë¤ì ì ì©ëì§ ìë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After observing that arrays cannot be lazy, you can conclude that lists, "
+"maps and idbags are the most performant (non-inverse) collection types, with "
+"sets not far behind. You can expect sets to be the most common kind of "
+"collection in Hibernate applications. This is because the \"set\" semantics "
+"are most natural in the relational model."
+msgstr ""
+"ë°°ì´ë¤ì´ lazy ë ì ììì ê´ì°° í íì, ì°ë¦¬ë listë¤, mapë¤, ê·¸ë¦¬ê³ idbagë¤"
+"ì´ ë¨ë
ì´ ìë setë¤ì ê°ì§ ê°ì¥ í¼í¬ë¨¼ì¤ê° ì¢ì(non-inverse) ì½ë ì
íì
ë¤ì"
+"ì ê²°ë¡ ì§ì ê²ì´ë¤. Setë¤ì Hibernate ì´í리ì¼ì´ì
ë¤ìì ê°ì¥ ê³µíµë ì¢
ë¥ì "
+"ì½ë ì
ì´ ë ê²ì´ë¼ ììëë¤. ì´ê²ì \"set\" ìë¯¸ê° ê´ê³í 모íìì ê°ì¥ ê³ ì "
+"í ê²ì´ê¸° ë문ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, in well-designed Hibernate domain models, most collections are in "
+"fact one-to-many associations with <literal>inverse=\"true\"</literal>. For "
+"these associations, the update is handled by the many-to-one end of the "
+"association, and so considerations of collection update performance simply "
+"do not apply."
+msgstr ""
+"íì§ë§, ì ì¤ê³ë Hibernate ëë©ì¸ 모íë¤ìì, ì°ë¦¬ë ëê° ëë¶ë¶ì ì½ë ì
ë¤"
+"ì´ ì¬ì¤ <literal>inverse=\"true\"</literal>를 ê°ì§ one-to-many ì°ê´ë¤ìì ë³´"
+"ê² ëë¤. ì´ë¤ ì°ê´ë¤ì ê²½ì°, ì
ë°ì´í¸ë ì°ê´ì many-to-one ìëì ìí´ ì²ë¦¬ë"
+"ê³ , ë°ë¼ì ì½ë ì
ì
ë°ì´í¸ í¼í¬ë¨¼ì¤ì ëí ê²í ë¤ì ë¨ìí ì ì©ëì§ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr "Bagë¤ê³¼ listë¤ì ê°ì¥ í¨ì¨ì ì¸ inverse ì½ë ì
ë¤ì´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There is a particular case, however, in which bags, and also lists, are much "
+"more performant than sets. For a collection with <literal>inverse=\"true\"</"
+"literal>, the standard bidirectional one-to-many relationship idiom, for "
+"example, we can add elements to a bag or list without needing to initialize "
+"(fetch) the bag elements. This is because, unlike a <literal>set</literal>, "
+"<literal>Collection.add()</literal> or <literal>Collection.addAll()</"
+"literal> must always return true for a bag or <literal>List</literal>. This "
+"can make the following common code much faster:"
+msgstr ""
+"ë¨ì§ ë¹ì ì´ ììí bagë¤ì ë²ë¦¬ê¸° ì ì, bagë¤(ê³¼ ëí listë¤)ì´ setë¤ë³´ë¤ í¨"
+"ì¬ ë ì±ë¥ì´ ì¢ì í¹ë³í ê²½ì°ë¤ì´ ì¡´ì¬íë¤. <literal>inverse=\"true\"</"
+"literal>를 ê°ì§ ì½ë ì
ë¤(ì를 ë¤ì´, íì¤ ìë°©í¥ one-to-many ê´ê³ í¹ì§)ì ê²½"
+"ì°, ì°ë¦¬ë bag ììë¤ì ì´ê¸°í(íì¹) ìí¬ íì ìì´ bag ëë listì ììë¤ì "
+"ì¶ê°ìí¬ ì ìë¤! ì´ê²ì <literal>Collection.add()</literal> ëë "
+"<literal>Collection.addAll()</literal>ì´ (<literal>Set</literal>ê³¼ë ë¬ë¦¬) í"
+"ì bag ëë <literal>List</literal>ì ëí´ true를 ë°íí´ì¼í기 ë문ì´ë¤. ì´ê²"
+"ì í¨ì¬ ë¤ì ê³µíµì ì¸ ì½ë를 ë ë¹ ë¥´ê² ë§ë¤ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr "ì ì· delete"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Deleting collection elements one by one can sometimes be extremely "
+"inefficient. Hibernate knows not to do that in the case of an newly-empty "
+"collection (if you called <literal>list.clear()</literal>, for example). In "
+"this case, Hibernate will issue a single <literal>DELETE</literal>."
+msgstr ""
+"ì¢
ì¢
ì½ë ì
ììë¤ì íëì© ìì íë ê²ì ê·¹í ë¹í¨ì¨ì ì¼ ì ìë¤! Hibernate"
+"ë ìì íê² ë°ë³´ê° ìëì´ì, ê·¸ê²ì ìë¡ì´ 공백ì ì½ë ì
ì ê²½ì°(ì를 ë¤ì´ ë¹"
+"ì ì´ <literal>list.clear()</literal>를 í¸ì¶íì ê²½ì°)ì ê·¸ê²ì ííì§ ìì ê²"
+"ìì ìê³ ìë¤. ì´ ê²½ì°ì, Hibernateë íëì <literal>DELETE</literal> ëª
ë ¹"
+"ì ë´ë¦´ ê²ì´ê³ ì°ë¦¬ë 모ë ííë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Suppose you added a single element to a collection of size twenty and then "
+"remove two elements. Hibernate will issue one <literal>INSERT</literal> "
+"statement and two <literal>DELETE</literal> statements, unless the "
+"collection is a bag. This is certainly desirable."
+msgstr ""
+"ì°ë¦¬ê° ê¸¸ì´ 20ì¸ íëì ì½ë ì
ì í ê°ì ìì를 ì¶ê°íê³ ê·¸ë° ë¤ì ë ê°ì ì"
+"ìë¤ì ì ê±°íë¤ê³ ê°ì íì. Hibernateë (ì½ë ì
ì´ bagê° ìë í) í ê°ì "
+"<literal>INSERT</literal> 문ì¥ê³¼ ë ê°ì <literal>DELETE</literal> 문ì¥ì ëª
"
+"ë ¹ ë´ë¦´ ê²ì´ë¤. ì´ê²ì íì¤í ë§ìì ë ë¤."
+
+#. 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 ê°ì ììë¤ì ì ê±°íê³ ëì ì¸ ê°"
+"ì ìë¡ì´ ììë¤ì ì¶ê°íë¤ê³ ê°ì íì. ë ê°ì§ ê°ë¥í ì²ë¦¬ ë°©ë²ë¤ì´ ì¡´ì¬í"
+"ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr "íëì© ì´ ì¬ë ê°ì íë¤ì ìì í ë¤ìì ì¸ ê°ì íë¤ì ì½ì
ìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"remove the whole collection in one SQL <literal>DELETE</literal> and insert "
+"all five current elements one by one"
+msgstr ""
+"(í ê°ì SQL <literal>DELETE</literal>ë¡)ì ì²´ ì½ë ì
ì ìì íê³ ëª¨ë ë¤ì¯ê°"
+"ì íì¬ ììë¤ì (íëì©) insert ìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate cannot know that the second option is probably quicker. It would "
+"probably be undesirable for Hibernate to be that intuitive as such behavior "
+"might confuse database triggers, etc."
+msgstr ""
+"Hibernateë ë ë²ì§¸ ìµì
ì´ ìë§ ì´ ê²½ì°ì ë ë¹ ë¥´ë¤ë ì ì ì ë§í¼ 충ë¶í ì"
+"리íì§ ìë¤.(ê·¸ë¦¬ê³ Hibernateê° ê·¸ë ê² ì리í´ì§ë ê²ì í¬ë§ íë ê²ì ê°ë¥í"
+"ì§ ìì ê²ì´ë¤; ê·¸ë° í¹ì§ì ë°ì´í°ë² ì´ì¤ í¸ë¦¬ê±°ë¤ ë±ì í¼ëì¤ë½ê² í ìë ì"
+"ë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Fortunately, you can force this behavior (i.e. the second strategy) at any "
+"time by discarding (i.e. dereferencing) the original collection and "
+"returning a newly instantiated collection with all the current elements."
+msgstr ""
+"ë¤íí, ë¹ì ì ìëì ì½ë ì
ì í기ìí¤ê³ (ì를 ë¤ì´ 참조 í´ì íê³ ) 모ë íì¬ "
+"ììë¤ì ê°ì§ ìë¡ì´ ì´ê¸°íë ì½ë ì
ì ë°íí¨ì¼ë¡ì¨ ì무ëë ì§ ì´ í¹ì§ì ê°ì "
+"ìí¬ ì ìë¤. ì´ê²ì ìê°ì´ íë¦ì ë°ë¼ ë§¤ì° ì ì©íê³ ê°ë ¥í´ì§ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"ë¬¼ë¡ ë¨ íë²ì ìì (one-shot-delete)ë <literal>inverse=\"true\"</literal>ë¡ "
+"매íë ì½ë ì
ë¤ì ì ì©ëì§ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr "í¼í¬ë¨¼ì¤ 모ëí°ë§í기"
+
+#. 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ë ê·¸ê²ì ë´ë¶ì ì¸ ì¤í¼ë ì´ì
ë¤ì ëí ì ì²´ ììì í¹ì§ë¤ì ì "
+"ê³µíë¤. Hibernateìì Statisticsë <literal>SessionFactory</literal>ì ëí´ "
+"ì´ì© ê°ë¥íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr "SessionFactory 모ëí°ë§ í기"
+
+#. 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> metricsì ì ê·¼í "
+"ì ìë¤. ë¹ì ì 첫 ë²ì§¸ ìµì
ì <literal>sessionFactory.getStatistics()</"
+"literal>를 í¸ì¶íê³ ë¹ì ì¤ì¤ë¡ <literal>Statistics</literal>를 ì½ê±°ë ëì¤í"
+"ë ì´ íë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate can also use JMX to publish metrics if you enable the "
+"<literal>StatisticsService</literal> MBean. You can enable a single MBean "
+"for all your <literal>SessionFactory</literal> or one per factory. See the "
+"following code for minimalistic configuration examples:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ <literal>StatisticsService</literal> MBeanì ì´ì© ê°ë¥íëë¡ í "
+"ê²½ì° Hibernateë ëí metrics를 ë°ííëë° JMX를 ì¬ì©í ì ìë¤. ë¹ì ì 모ë "
+"ë¹ì ì<literal>SessionFactory</literal>ì ëí´ í ê°ì MBean ëë í©í 리 ë¹ "
+"í ê°ë¥¼ ì´ì© ê°ë¥íê² í ì ìë¤. ìµìíì êµ¬ì± ìì ë¤ì ë¤ì ì½ë를 ë³´ë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+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>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>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Statistics can be reset programmatically using the <literal>clear()</"
+"literal> method. A summary can be sent to a logger (info level) using the "
+"<literal>logSummary()</literal> method."
+msgstr ""
+"Statistics(íµê³ëë¤)ì <literal>clear()</literal> ë©ìë를 ì¬ì©íì¬ íë¡ê·¸ë"
+"ë° ë°©ìì¼ë¡ ì¬ì¤ì ë ì ìë¤. ìì½ì <literal>logSummary()</literal> ë©ìë"
+"를 ì¬ì©íì¬ logger(info ë 벨)ìê² ì ì¡ë ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr "Metrics"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate provides a number of metrics, from basic information to more "
+"specialized information that is only relevant in certain scenarios. All "
+"available counters are described in the <literal>Statistics</literal> "
+"interface API, in three categories:"
+msgstr ""
+"Hibernateë ë§¤ì° ê¸°ë³¸ì ì¸ ê²ììë¶í° ì´ë¤ ìë리ì¤ë¤ìë§ ê´ë ¨ë ì 문 ì ë³´ì "
+"ì´ë¥´ë ë§ì metrics를 ì ê³µíë¤. 모ë ì´ì© ê°ë¥í ì¹´ì´í°ë¤ì "
+"<literal>Statistics</literal> interface APIìì 3ê°ì ì¹´í
ê³ ë¦¬ë¡ ì¤ëª
ëì´ ì"
+"ë¤:"
+
+#. 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 ""
+"ì´ë ¤ì§ ì¸ì
ë¤ì ê°ì, ê²ìë JDBC 커ë¥ì
ë¤ì ê°ì ë±ê³¼ ê°ì ì¼ë°ì ì¸ "
+"<literal>Session</literal> ì¬ì©ì ê´ë ¨ë metrics."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Metrics related to the entities, collections, queries, and caches as a whole "
+"(aka global metrics)."
+msgstr ""
+"ì ì²´ì ì¼ë¡ ìí°í°ë¤, ì½ë ì
ë¤, ì§ìë¤, ê·¸ë¦¬ê³ ìºìë¤ì ê´ë ¨ë metrics(ì ì "
+"metricsë¡ ìë ¤ì ¸ ìì),"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Detailed metrics related to a particular entity, collection, query or cache "
+"region."
+msgstr "í¹ì í ìí°í°, ì½ë ì
, ì§ì ëë ìºì ììì ê´ë ¨ë ìì¸ metrics."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For example, you can check the cache hit, miss, and put ratio of entities, "
+"collections and queries, and the average time a query needs. Be aware that "
+"the number of milliseconds is subject to approximation in Java. Hibernate is "
+"tied to the JVM precision and on some platforms this might only be accurate "
+"to 10 seconds."
+msgstr ""
+"ì를 ë¤ì´ ë¹ì ì ìí°í°, ì½ë ì
, ì§ìë¤ì ìºì ì±ê³µì¨ ë° ì¤í¨ì¨, put(ìì "
+"주, ìºì ìë, putt) ë¹ì¨, ì½ë ì
ë¤ê³¼ ì§ìë¤, ê·¸ë¦¬ê³ íê· ì§ì ì구 ìê° ë±"
+"ì ì°¾ì ì ìë¤. ì ë°ë¦¬ì´ë¤ê° ìë°ìì ê·¼ì¬ì¹ì ì¢
ìë¨ì ììíë¼. Hibernate"
+"ë JVM ì ë°ëì ë¬¶ì¬ ìê³ , ëªëª íë«í¼ë¤ìì ì´ê²ì ì¬ì§ì´ ì½ 10ì´ê° ë ìë "
+"ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Simple getters are used to access the global metrics (i.e. not tied to a "
+"particular entity, collection, cache region, etc.). You can access the "
+"metrics of a particular entity, collection or cache region through its name, "
+"and through its HQL or SQL representation for queries. Please refer to the "
+"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal>, and <literal>QueryStatistics</"
+"literal> API Javadoc for more information. The following code is a simple "
+"example:"
+msgstr ""
+"ê°ë¨í getterë¤ì (ì를 ë¤ì´ í¹ì ìí°í°, ì½ë ì
, ìºì ììì 묶ì´ì§ ìì) ì "
+"ì metricsì ì ê·¼íëë° ì¬ì©ëë¤. ë¹ì ì ê·¸ê²(í¹ì ìí°í°, ì½ë ì
, ëë ìºì "
+"ìì)ì ì´ë¦ì íµí´, ê·¸ë¦¬ê³ ì§ìë¤ì ëí ê·¸ê²ì HQL ëë SQL ííì íµí´ í¹"
+"ì ìí°í°, ì½ë ì
, ëë ìºì ììì metricsì ì ê·¼í ì ìë¤. ì¶ê° ì ë³´ë "
+"<literal>Statistics</literal>, <literal>EntityStatistics</literal>, "
+"<literal>CollectionStatistics</literal>, "
+"<literal>SecondLevelCacheStatistics</literal>, ê·¸ë¦¬ê³ "
+"<literal>QueryStatistics</literal>를 참조íë¼. ë¤ì ì½ëë ê°ë¨í ìì 를 ë³´ì¬"
+"ì¤ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can work on all entities, collections, queries and region caches, by "
+"retrieving the list of names of entities, collections, queries and region "
+"caches using the following methods: <literal>getQueries()</literal>, "
+"<literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</"
+"literal>, and <literal>getSecondLevelCacheRegionNames()</literal>."
+msgstr ""
+"모ë ìí°í°ë¤, ì½ë ì
ë¤, ì½ë ì
ë¤,ì§ìë¤ ê·¸ë¦¬ê³ ìì ìºìë¤ì ëí´ ìì
í기 "
+"ìí´, ë¹ì ì ë¤ì ë©ìëë¤ë¡ì ìí°í°ë¤, ì½ë ì
ë¤, ì§ìë¤, ê·¸ë¦¬ê³ ìì ìºìë¤"
+"ì ëí ì´ë¦ë¤ì 목ë¡ì ê²ìí ì ìë¤: <literal>getQueries()</literal>, "
+"<literal>getEntityNames()</literal>, <literal>getCollectionRoleNames()</"
+"literal>, ê·¸ë¦¬ê³ <literal>getSecondLevelCacheRegionNames()</literal>."
+
+#, fuzzy
+#~ 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>), ì§ì ê°ë¥"
+#~ "í í
ì´ë¸ë¤ì ëí ê°ì¥ ìµì ì
ë°ì´í¸ë¤ì ëí timestampë¤ì ë³´ê´íë ë¤"
+#~ "른 ê² (<literal>org.hibernate.cache.UpdateTimestampsCache</literal>)-ì ì"
+#~ "ì±ì ê°ì íë¤ . ì§ì ìºìë ê²°ê³¼ ì
ë´ì ì¤ì ìí°í°ë¤ì ìí를 ìºììí¤"
+#~ "ì§ ììì ë
¸í¸íë¼; ê·¸ê²ì ì¤ì§ ìë³ì ê°ë¤ê³¼ ê° íì
ì ê²°ê³¼ë¤ ë§ì ìºìì"
+#~ "í¨ë¤. ë°ë¼ì ì§ì ìºìë íì second-level ìºìì í¨ê» ì¬ì©ëì´ì¼ íë¤."
+
+#~ msgid ""
+#~ "where <literal>CatImpl</literal> implements the interface <literal>Cat</"
+#~ "literal> and <literal>DomesticCatImpl</literal> implements the interface "
+#~ "<literal>DomesticCat</literal>. Then proxies for instances of "
+#~ "<literal>Cat</literal> and <literal>DomesticCat</literal> may be returned "
+#~ "by <literal>load()</literal> or <literal>iterate()</literal>. (Note that "
+#~ "<literal>list()</literal> does not usually return proxies.)"
+#~ msgstr ""
+#~ "ì¬ê¸°ì <literal>CatImpl</literal>ì <literal>Cat</literal> ì¸í°íì´ì¤ë¥¼ 구"
+#~ "ííê³ <literal>DomesticCatImpl</literal>ì <literal>DomesticCat</"
+#~ "literal> ì¸í°íì´ì¤ë¥¼ 구ííë¤. ê·¸ë <literal>Cat</literal>ê³¼ "
+#~ "<literal>DomesticCat</literal>ì ì¸ì¤í´ì¤ë¤ì ëí íë½ìë¤ì "
+#~ "<literal>load()</literal> ëë <literal>iterate()</literal>ì ìí´ ë°íë "
+#~ "ì ìë¤. (<literal>list()</literal>ê° ëê° íë½ìë¤ì ë°ííì§ ììì ë
¸í¸"
+#~ "íë¼.)"
+
+#~ msgid ""
+#~ "We've already spent quite some time talking about collections. In this "
+#~ "section we will highlight a couple more issues about how collections "
+#~ "behave at runtime."
+#~ msgstr ""
+#~ "ì°ë¦¬ëì´ë¯¸ ì½ë ì
ë¤ì ê´í´ ì기íëë° ê½¤ ë§ì ìê°ì ììíë¤. ì´ ì ìì "
+#~ "ì°ë¦¬ë ì½ë ì
ë¤ì´ ì¤í ìì ì´ë»ê² íìíëì§ì ê´í í ìì ìì ë¤ì ì¡°ëª
"
+#~ "í ê²ì´ë¤."
+
+#~ msgid ""
+#~ "TODO: This doesn't make sense: In the first case, we retrieve and use the "
+#~ "MBean directly. In the second one, we must give the JNDI name in which "
+#~ "the session factory is held before using it. Use "
+#~ "<literal>hibernateStatsBean.setSessionFactoryJNDIName(\"my/JNDI/Name\")</"
+#~ "literal>"
+#~ msgstr ""
+#~ "TODO: ì´ê²ì ìë¯¸ê° ìë¤: 첫ë²ì§¸ ê²½ì°ì, ì°ë¦¬ë ì§ì MBeanì ê²ìíê³ ì¬ì©"
+#~ "íë¤. ë ë²ì§¸ ê²½ì°ì ì°ë¦¬ë JNDI ì´ë¦ì ì¬ì©í기 ì ì ì¸ì
í©í ë¦¬ê° ë³´ê´í"
+#~ "ê³ ìë JNDI ì´ë¦ì ë¶ì¬í´ì¼ íë¤. <literal>hibernateStatsBean."
+#~ "setSessionFactoryJNDIName(\"my/JNDI/Name\")</literal>ì ì¬ì©íë¼."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/persistent_classes.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/persistent_classes.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/persistent_classes.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,614 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "ìì í´ëì¤ë¤"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ìì í´ëì¤ë¤ì ë¹ì§ëì¤ ë¬¸ì ì ìí°í°ë¤(ì를 ë¤ì´ E-Commerce ì´í리ì¼ì´ì
ì"
+"ì ê³ ê°ì´ë 주문)ì 구ííë ì´í리ì¼ì´ì
ë´ì í´ëì¤ë¤ì´ë¤. ìì í´ëì¤ë¤ì "
+"ì¸ì¤í´ì¤ë¤ì ìì ìíì ìë ê²ì¼ë¡ ì í ê°ì£¼ëì§ ìëë¤ - ëì ì íëì ì¸"
+"ì¤í´ì¤ë transient ëë detached ìíì¼ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate works best if these classes follow some simple rules, also known "
+"as the Plain Old Java Object (POJO) programming model. However, none of "
+"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
+"about the nature of your persistent objects. You can express a domain model "
+"in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr ""
+"Hibernateë ì´ë¤ í´ëì¤ë¤ì´ Plain Old Java Object (POJO) íë¡ê·¸ëë° ëª¨íì¼ë¡"
+"ì ìë ¤ì§, ëªëª ê°ë¨í ê·ì¹ë¤ì ë°ë¥¼ ê²½ì°ì ê°ì¥ ì ëìíë¤. íì§ë§ ì´ë¤ ê·"
+"ì¹ë¤ ì¤ ì´ë¤ ê²ë ì´ë ¤ì´ ì¬ìë¤ì´ ìëë¤. ì§ì Hibernate3ë ë¹ì ì ìì ê°ì²´"
+"ë¤ì í¹ì§ì ëí´ ë§¤ì° ì ì ê²ì ê°ì íë¤. ë¹ì ì ë¤ë¥¸ ë°©ë²ë¤ë¡ ëë©ì¸ 모íì "
+"ííí ì ìë¤ : ì를 ë¤ì´ <literal>Map</literal> ì¸ì¤í´ì¤ì í¸ë¦¬ë¤ì ì¬ì©í"
+"기."
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr "ê°ë¨í POJO ìì "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Most Java applications require a persistent class representing felines. For "
+"example:"
+msgstr ""
+"ëë¶ë¶ì ìë° ì´í리ì¼ì´ì
ë¤ì ê³ ìì´ê³¼ë¤ì íííë ìì í´ëì¤ë¥¼ íìë¡ í"
+"ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The four main rules of persistent classes are explored in more detail in the "
+"following sections."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr "ìê·ë¨¼í¸ ìë ìì±ì를 구ííë¼"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
+"must have a default constructor (which can be non-public) so that Hibernate "
+"can instantiate them using <literal>Constructor.newInstance()</literal>. It "
+"is recommended that you have a default constructor with at least "
+"<emphasis>package</emphasis> visibility for runtime proxy generation in "
+"Hibernate."
+msgstr ""
+"<literal>Cat</literal>ì ìê·ë¨¼í¸ ìë ìì±ì를 ê°ëë¤. 모ë ìì í´ëì¤ë¤ì "
+"Hibernateë <literal>Constructor.newInstance()</literal>를 ì¬ì©íì¬ ê·¸ê²ë¤ì "
+"ì´ê¸°í ìí¬ ì ìëë¡ ëí´í¸ ìì±ì (publicì´ ìë ì ìë¤)를 ê°ì ¸ì¼ íë¤. ì°"
+"리ë Hibernate ë´ìì ë°íì íë½ì ìì±ì ìí ìµìíì <emphasis>í¨í¤ì§</"
+"emphasis> ê°ìì±(visibility)를 ê°ì§ ëí´í¸ ìì±ì를 ê°ì§ ê²ì ê°ë ¥íê² ê¶ì¥í"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr "identifier íë¡í¼í°ë¥¼ ì ê³µíë¼(ìµì
)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> has a property called <literal>id</literal>. This "
+"property maps to the primary key column of a database table. The property "
+"might have been called anything, and its type might have been any primitive "
+"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
+"<literal>java.util.Date</literal>. If your legacy database table has "
+"composite keys, you can use a user-defined class with properties of these "
+"types (see the section on composite identifiers later in the chapter.)"
+msgstr ""
+"<literal>Cat</literal>ì <literal>id</literal>ë¡ ëª
ëª
ë íëì íë¡í¼í°ë¥¼ ê°"
+"ëë¤. ì´ íë¡í¼í°ë ë°ì´í°ë² ì´ì¤ í
ì´ë¸ì íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼ì¼ë¡ 매íëë¤. "
+"ì´ íë¡í¼í°ë ì´ë¤ ê²ì¼ë¡ ëª
ëª
ë ìë ìê³ , ê·¸ê²ì íì
ì ììì ìì íì
, "
+"ìì \"wrapper\" íì
, <literal>java.lang.String</literal> ëë "
+"<literal>java.util.Date</literal>ì¼ ì ìë¤. (ë§ì¼ ë¹ì ì 리거ì ë°ì´í°ë² ì´"
+"ì¤ í
ì´ë¸ì´ composite í¤ë¤ì ê°ê³ ìë¤ë©´, ë¹ì ì ì´ë¤ íì
ë¤ì ê°ì§ ì¬ì©ì ì "
+"ì í´ëì¤ë¥¼ ì¬ì©í ìë ìë¤ - ëì¤ì composite ìë³ìë¤ì ëí ì ì ë³´ë¼)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The identifier property is strictly optional. You can leave them off and let "
+"Hibernate keep track of object identifiers internally. We do not recommend "
+"this, however."
+msgstr ""
+"identifier íë¡í¼í°ë ì격íê² ìµì
ì´ë¤. ë¹ì ì ê·¸ê²ì ìëµí ìë ìê³ , "
+"Hibernateë¡ íì¬ê¸ ë´ë¶ì ì¼ë¡ ê°ì²´ ìë³ìë¤ì ì¶ì íëë¡ í ì ìë¤. íì§ë§ "
+"ì°ë¦¬ë ì´ê²ì ê¶ì¥íì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In fact, some functionality is available only to classes that declare an "
+"identifier property:"
+msgstr ""
+"ì¬ì¤, ì´ë¤ 기ë¥ì identifier íë¡í¼í°ë¥¼ ì ì¸íë í´ëì¤ë¤ì ëí´ìë§ ì´ì© ê°"
+"ë¥íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Transitive reattachment for detached objects (cascade update or cascade "
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr ""
+"detached ê°ì²´ë¤ì ëí Transitive reattachment(cascade update ëë cascade "
+"merge) - <xref linkend=\"objectstate-transitive\"/>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "Session.saveOrUpdate()"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr "Session.merge()"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ì°ë¦¬ë ë¹ì ì´ ìì í´ëì¤ë¤ì ëí´ ì¼ê´ëê² ëª
ëª
ë identifier íë¡í¼í°ë¤ì ì "
+"ì¸í ê²ì ê¶ì¥íë¤. ê²ë¤ê° ì°ë¦¬ë ë¹ì ì´ nullable íì
(ì를 ë¤ì´ non-"
+"primitive)ì ì¬ì©í ê²ì ê¶ì¥íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr "finalì´ ìë í´ëì¤ë¤ì ì í¸íë¼(ìµì
)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
+"the persistent class being either non-final, or the implementation of an "
+"interface that declares all public methods."
+msgstr ""
+"Hibernateì ì¤ì¬ í¹ì§ì¸, íë½ì(<emphasis>proxies</emphasis>)ë¤ì finalì´ ì"
+"ë ìì í´ëì¤ë¤ ëë 모ë public ë©ìëë¤ë¡ ì ì¸ë ì¸í°íì´ì¤ì 구íì¸ ìì "
+"í´ëì¤ë¤ì ìì¡´íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can persist <literal>final</literal> classes that do not implement an "
+"interface with Hibernate. You will not, however, be able to use proxies for "
+"lazy association fetching which will ultimately limit your options for "
+"performance tuning."
+msgstr ""
+"ë¹ì ì Hibernateë¡ ì¸í°íì´ì¤ë¥¼ 구ííì§ ìì <literal>final</literal> í´ëì¤"
+"ë¤ì ììí ìí¬ ì ìì§ë§ ë¹ì ì lazy ì°ê´ íì¹(lazy association fetching)"
+"ì ëí´ íë½ìë¤ì ì¬ì©í ì ìì ê²ì´ë¤ -ê·¸ê²ì í¼í¬ë¨¼ì¤ íëì ìí ë¹ì ì "
+"ìµì
ë¤ì ì íìí¬ ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You should also avoid declaring <literal>public final</literal> methods on "
+"the non-final classes. If you want to use a class with a <literal>public "
+"final</literal> method, you must explicitly disable proxying by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"ë¹ì ì ëí non-final í´ëì¤ë¤ ìì <literal>public final</literal> ë©ìëë¤"
+"ì ì ì¸íë ê²ì í¼í´ì¼ íë¤. ë§ì¼ ë¹ì ì´ <literal>public final</literal> ë©"
+"ìë를 ê°ì§ í´ëì¤ë¥¼ ì¬ì©íê³ ì ìí ê²½ì°, ë¹ì ì <literal>lazy=\"false\"</"
+"literal>를 ì¤ì í¨ì¼ë¡ì¨ ëª
ìì ì¼ë¡ íë½ì±ì ì¬ì© ë¶ê°ë¥íëë¡ í´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr "ìì íëë¤ì ìí accessorë¤ê³¼ mutatorë¤ì ì ì¸íë¼(ìµì
)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Cat</literal> declares accessor methods for all its persistent "
+"fields. Many other ORM tools directly persist instance variables. It is "
+"better to provide an indirection between the relational schema and internal "
+"data structures of the class. By default, Hibernate persists JavaBeans style "
+"properties and recognizes method names of the form <literal>getFoo</"
+"literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If "
+"required, you can switch to direct field access for particular properties."
+msgstr ""
+"<literal>Cat</literal>ì ê·¸ê²ì 모ë ìì íëë¤ì ëí´ accessor ë©ìëë¤ì "
+"ì ì¸íë¤. ë§ì ë¤ë¥¸ ORM ë구ë¤ì ì¸ì¤í´ì¤ ë³ìë¤ì ì§ì ììí ìí¨ë¤. ì°ë¦¬"
+"ë ê´ê³í ì¤í¤ë§ì í´ëì¤ì ë´ë¶ì ì¸ ë°ì´í° êµ¬ì¡°ë¤ ì¬ì´ì ê°ì ì ì¸ ìë¨ì ì "
+"ê³µíë ê²ì´ ë ì¢ë¤ê³ ë¯¿ê³ ìë¤. ëí´í¸ë¡ Hibernateë ìë°ë¹ì¦ ì¤íì¼ íë¡í¼"
+"í°ë¤ì ììí ìí¤ê³ , <literal>getFoo</literal>, <literal>isFoo</literal>ì "
+"<literal>setFoo</literal> íìì ë©ìë ì´ë¦ë¤ì ì¸ì§íë¤. ë¹ì ì ì§ì ì¼ë¡ í¹"
+"ì íë¡í¼í°ì ëí ì§ì ì ì¸ íë ì ê·¼ì¼ë¡ ì íí ìë ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
+"persist a property with a default, <literal>protected</literal> or "
+"<literal>private</literal> get / set pair."
+msgstr ""
+"íë¡í¼í°ë¤ì publicì¼ë¡ ì ì¸ë íìê° <emphasis>ìë¤</emphasis> - Hibernate"
+"ë ëí´í¸ë¡ <literal>protected</literal> get/set ì ëë <literal>private</"
+"literal> get/set ìì ê°ì§ íë¡í¼í°ë¥¼ ììí ìí¬ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr "ìì 구íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A subclass must also observe the first and second rules. It inherits its "
+"identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr ""
+"ìë¸í´ëì¤ë ëí 첫 ë²ì§¸ ê·ì¹ë¤ê³¼ ë ë²ì§¸ ê·ì¹ë¤ì 주ìí´ì¼ íë¤. ê·¸ê²ì ì"
+"í¼í´ëì¤ <literal>Cat</literal>ì¼ë¡ë¶í° ê·¸ê²ì identifier íë¡í¼í°ë¥¼ ììë°ë"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid ""
+"Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr "<literal>equals()</literal>ì <literal>hashCode()</literal> 구íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You have to override the <literal>equals()</literal> and <literal>hashCode()"
+"</literal> methods if you:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë¤ìì ê²½ì°ë¼ë©´, ë¹ì ì <literal>equals()</literal>ì "
+"<literal>hashCode()</literal> ë©ìëë¤ì ì¤ë²ë¼ì´ë ìì¼ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"intend to put instances of persistent classes in a <literal>Set</literal> "
+"(the recommended way to represent many-valued associations); <emphasis>and</"
+"emphasis>"
+msgstr ""
+"íëì <literal>Set</literal> ìì ìì í´ëì¤ë¤ì ì¸ì¤í´ì¤ë¤ì ì§ì´ë£ê³ ì ì"
+"ëíê³ (many-valued ì°ê´ë¤ì ëí´ ê¶ì¥ëë ë°©ë²) <emphasis>ê·¸ë¦¬ê³ </emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr "detached ì¸ì¤í´ì¤ë¤ì reattachment(ì¬ì²¨ë¶)를 ì¬ì©íê³ ì ìëíë"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate guarantees equivalence of persistent identity (database row) and "
+"Java identity only inside a particular session scope. When you mix instances "
+"retrieved in different sessions, you must implement <literal>equals()</"
+"literal> and <literal>hashCode()</literal> if you wish to have meaningful "
+"semantics for <literal>Set</literal>s."
+msgstr ""
+"Hibernateë í¹ì session ë²ì ë´ììë§ persistent identity(ë°ì´í°ë² ì´ì¤ í)"
+"ê³¼ Java identityì ê°ìì ë³´ì¥íë¤. ë°ë¼ì ì°ë¦¬ê° ë¤ë¥¸ ì¸ì
ë¤ìì ê²ìë ì¸ì¤"
+"í´ì¤ë¤ì í¼í©ìí¤ìë§ì, ì°ë¦¬ê° <literal>Set</literal>ë¤ì ëí´ ì ì미íê² ë§"
+"ë¤ê³ ì ìí ê²½ì°, ì°ë¦¬ë <literal>equals()</literal>ì <literal>hashCode()</"
+"literal>를 구íí´ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The most obvious way is to implement <literal>equals()</literal>/"
+"<literal>hashCode()</literal> by comparing the identifier value of both "
+"objects. If the value is the same, both must be the same database row, "
+"because they are equal. If both are added to a <literal>Set</literal>, you "
+"will only have one element in the <literal>Set</literal>). Unfortunately, "
+"you cannot use that approach with generated identifiers. Hibernate will only "
+"assign identifier values to objects that are persistent; a newly created "
+"instance will not have any identifier value. Furthermore, if an instance is "
+"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
+"identifier value to the object. If <literal>equals()</literal> and "
+"<literal>hashCode()</literal> are based on the identifier value, the hash "
+"code would change, breaking the contract of the <literal>Set</literal>. See "
+"the Hibernate website for a full discussion of this problem. This is not a "
+"Hibernate issue, but normal Java semantics of object identity and equality."
+msgstr ""
+"ê°ì¥ ëª
ë°±í ë°©ë²ì ë ê°ì²´ë¤ì identifier ê°ì ë¹êµí¨ì¼ë¡ì¨ <literal>equals()"
+"</literal>/<literal>hashCode()</literal>를 구ííë ê²ì´ë¤. ë§ì¼ ê·¸ ê°ì´ ëì¼"
+"íë¤ë©´, ëë¤ ëì¼í ë°ì´í°ë² ì´ì¤ íì´ì´ì¼ íê³ , ê·¸ë¬ë¯ë¡ ê·¸ê²ë¤ì ê°ë¤(ëë¤ "
+"íëì <literal>Set</literal>ì ì¶ê°ëë ê²½ì°ì, ì°ë¦¬ë <literal>Set</"
+"literal> ììì íëì ììë§ì ê°ê² ë ê²ì´ë¤). ë¶ííê²ë, ì°ë¦¬ë ìì±ëë "
+"ìë³ìë¤ì ê°ë ê·¸ ì ê·¼ë²ì ì¬ì©í ì ìë¤! Hibernateë ì¤ì§ ìë³ì ê°ë¤ì ì"
+"ìí ëë ê°ì²´ë¤ì í ë¹í ê²ì´ê³ , ìë¡ì´ ìì±ë ì¸ì¤í´ì¤ë ììì identifier "
+"ê°ì ê°ì§ ìì ê²ì´ë¤! ë§ì¼ ì¸ì¤í´ì¤ê° ì ì¥ëì§ ìê³ íì¬ íëì "
+"<literal>Set</literal> ìì ìì ê²½ì°ì, ê·¸ê²ì ì ì¥íëê²ì íëì ìë³ì ê°"
+"ì ê·¸ ê°ì²´ìê² í ë¹í ê²ì´ë¤. ë§ì¼ <literal>equals()</literal>ì "
+"<literal>hashCode()</literal>ê° ê·¸ ìë³ì ê°ì 기ì´í ê²½ì°, hash ì½ëë "
+"<literal>Set</literal>ì ê³ì½ì í기íì¬ ë³ê²½ë ê²ì´ë¤. ì´ ë¬¸ì ì ëí ì ì²´ "
+"ë
¼ìì ëí´ìë Hibernate ì¹ ì¬ì´í¸ë¥¼ ë³´ë¼. ì´ê²ì Hibernate ìì ì´ ìë, ê°"
+"ì²´ identityì equalityì ê´í íµìì ìë° ìë¯¸ë¡ ìì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is recommended that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> using <emphasis>Business key equality</"
+"emphasis>. Business key equality means that the <literal>equals()</literal> "
+"method compares only the properties that form the business key. It is a key "
+"that would identify our instance in the real world (a <emphasis>natural</"
+"emphasis> candidate key):"
+msgstr ""
+"ì°ë¦¬ë <emphasis>Business key equality</emphasis>를 ì¬ì©íì¬ <literal>equals"
+"()</literal>ì <literal>hashCode()</literal>를 구íí ê² ê¶ì¥íë¤. Business "
+"key equalityë <literal>equals()</literal> ë©ìëê° ë¹ì§ëì¤ í¤, ì¦ ì¤ì¸ê³ì"
+"ì ì°ë¦¬ì ì¸ì¤í´ì¤ë¥¼ ìë³íê² ë í¤(<emphasis>natural</emphasis> íë³´ í¤)를 "
+"íì±íë íë¡í¼í°ë¤ë§ì ë¹êµíë¤ë ì ì ì미íë¤ :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A business key does not have to be as solid as a database primary key "
+"candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable "
+"or unique properties are usually good candidates for a business key."
+msgstr ""
+"íëì ë¹ì§ëì¤ í¤ë ë°ì´í°ë² ì´ì¤ íë¼ì´ë¨¸ë¦¬ í¤ íë³´ ë§í¼ ê²¬ê³ íì§ ììì¼ í"
+"ë¤(<xref linkend=\"transactions-basics-identity\"/>를 ë³´ë¼). ëê° ë³ê²½í ì "
+"ìë íë¡í¼í° ëë ì ì¼í(unique) íë¡í¼í°ë ëê° ë¹ì§ëì¤ í¤ì ëí ì¢ì í"
+"ë³´ë¤ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr "ëì ì¸ ëª¨íë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
+msgstr ""
+"ë¤ì í¹ì§ë¤ì íì¬ ì¤íì ì¼ë¡ ê³ ë ¤ëê³ ìì¼ë©° ì¥ëìë ë³ê²½ë ì ììì ë
¸í¸"
+"íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Persistent entities do not necessarily have to be represented as POJO "
+"classes or as JavaBean objects at runtime. Hibernate also supports dynamic "
+"models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) "
+"and the representation of entities as DOM4J trees. With this approach, you "
+"do not write persistent classes, only mapping files."
+msgstr ""
+"ìì ìí°í°ë¤ì ë°ëì ì¤íìì POJO í´ëì¤ë¤ë¡ ëë ìë°ë¹ì¦ ê°ì²´ë¤ë¡ ííë"
+"ì´ì¼í íìë ìë¤. Hibernateë ëí (ì¤í ìì <literal>Map</literal>ë¤ì ê°"
+"ì§ <literal>Map</literal>ë¤ì ì¬ì©íì¬) ëì ì¸ ëª¨íë¤ì ì§ìíê³ DOM4J í¸ë¦¬ë¤"
+"ë¡ì ìí°í°ë¤ì ëí ííì ì§ìíë¤. ì´ ì ê·¼ë²ì¼ë¡, ë¹ì ì ìì í´ëì¤ë¤ì "
+"ìì±íì§ ìê³ , ì¤ì§ 매í íì¼ë¤ ë§ì ìì±íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By default, Hibernate works in normal POJO mode. You can set a default "
+"entity representation mode for a particular <literal>SessionFactory</"
+"literal> using the <literal>default_entity_mode</literal> configuration "
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr ""
+"ëí´í¸ë¡, Hibernateë íµì°ì POJO 모ëë¡ ëìíë¤. ë¹ì ì "
+"<literal>default_entity_mode</literal> êµ¬ì± ìµì
ì ì¬ì©íì¬ í¹ë³í "
+"<literal>SessionFactory</literal>ì ëí´ ëí´í¸ ìí°í° íí 모ë를 ì¤ì í ì "
+"ìë¤ (<xref linkend=\"configuration-optional-properties\"/>ì ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following examples demonstrate the representation using <literal>Map</"
+"literal>s. First, in the mapping file an <literal>entity-name</literal> has "
+"to be declared instead of, or in addition to, a class name:"
+msgstr ""
+"ë¤ì ìì ë¤ì<literal>Map</literal>ë¤ì ì¬ì©íë ííì ì¤ëª
íë¤. 먼ì 매í "
+"íì¼ìì, <literal>entity-name</literal>ì í´ëì¤ ì´ë¦ ëì ì(ëë í´ëì¤ ì´"
+"ë¦ì ë§ë¶ì¬) ì ì¸ëì´ì¼ íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even though associations are declared using target class names, the target "
+"type of associations can also be a dynamic entity instead of a POJO."
+msgstr ""
+"ì¬ì§ì´ ë¹ë¡ ì°ê´ë¤ì´ ëì(target) í´ëì¤ ì´ë¦ë¤ì ì¬ì©íì¬ ì ì¸ë ì§ë¼ë, ì°ê´"
+"ë¤ì ëì(target) íì
ì ëí POJOê° ìë ëì ì¸ ìí°í°ì¼ ì ììì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After setting the default entity mode to <literal>dynamic-map</literal> for "
+"the <literal>SessionFactory</literal>, you can, at runtime, work with "
+"<literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr ""
+"<literal>SessionFactory</literal>ì ëí ëí´í¸ ìí°í° 모ë를 "
+"<literal>dynamic-map</literal>ì¼ë¡ ì¤ì í íì, ì°ë¦¬ë <literal>Map</literal>"
+"ë¤ì ê°ì§ <literal>Map</literal>ë¤ì ëí´ ì¤í ìì ìì
í ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One of the main advantages of dynamic mapping is quick turnaround time for "
+"prototyping, without the need for entity class implementation. However, you "
+"lose compile-time type checking and will likely deal with many exceptions at "
+"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 ""
+"dynamic 매íì ì¥ì ë¤ì ìí°í° í´ëì¤ êµ¬íì ëí íì ìì´ë íë¡í íì´íì "
+"ìí ë¹ ë¥¸ ì í ìê°ì´ë¤. íì§ë§ ë¹ì ì ì»´íì¼ ì íì
ì²´í¹ì ìê³ ì¤í ìì "
+"ë§ì ìì¸ìí©ë¤ì ë¤ë£¨ê² ë ê²ì´ë¤. Hibernate 매í ëë¶ì, ëì¤ì ê³ ì í ëë©"
+"ì¸ ëª¨í 구íì ìë¨ì ì¶ê°íë ê²ì´ íì©ëì´ì, ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ê° ì½ê² ì "
+"ê·í ëê³ ìë¦¬ê° ì¸ë ¤ í¼ì§ ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Entity representation modes can also be set on a per <literal>Session</"
+"literal> basis:"
+msgstr ""
+"ìí°í° íí 모ëë¤ì ëí íëì ë¨ì <literal>Session</literal> 기ì¤ì ëí´ "
+"ì¤ì ë ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please note that the call to <literal>getSession()</literal> using an "
+"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
+"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
+"literal> shares the underlying JDBC connection, transaction, and other "
+"context information. This means you do not have to call <literal>flush()</"
+"literal> and <literal>close()</literal> on the secondary <literal>Session</"
+"literal>, and also leave the transaction and connection handling to the "
+"primary unit of work."
+msgstr ""
+"<literal>EntityMode</literal>를 ì¬ì©íë <literal>getSession()</literal>ì ë"
+"í í¸ì¶ì <literal>SessionFactory</literal>ê° ìë, <literal>Session</"
+"literal> APIì ëí ê²ìì ë
¸í¸í길 ë°ëë¤. ê·¸ ë°©ë²ì¼ë¡, ìë¡ì´ "
+"<literal>Session</literal>ì 기본 JDBC 커ë¥ì
, í¸ëìì
, ê·¸ë¦¬ê³ ë¤ë¥¸ 컨í
ì¤"
+"í¸ ì 보를 ê³µì íë¤. ì´ê²ì ë¹ì ì´ ë ë²ì§¸ <literal>Session</literal> ììì "
+"<literal>flush()</literal>ì <literal>close()</literal>를 í¸ì¶íì§ ë§ìì¼ í"
+"ê³ , ëí í¸ëìì
ë° ì»¤ë¥ì
í¸ë¤ë§ì 주ë ìì
ë¨ììê² ë§¡ê¸´ë¤ë ì ì ì미í"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"More information about the XML representation capabilities can be found in "
+"<xref linkend=\"xml\" />."
+msgstr ""
+"XML íí ê°ì©ì±ë¤ì ëí ì¶ê° ì ë³´ë <xref linkend=\"xml\"/>ìì ì°¾ì ì ì"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr "Tuplizerë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing that knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the corresponding tuplizer knows how create the POJO "
+"through its constructor. It also knows how to access the POJO properties "
+"using the defined property accessors."
+msgstr ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, ê·¸ë¦¬ê³ ê·¸ê²ì ìë¸-ì¸í°íì´"
+"ì¤ë¤ì ë°ì´í°ì ì¡°ê°ì ëí í¹ë³í ííì <literal>org.hibernate.EntityMode</"
+"literal>ê° ì£¼ì´ì§ë©´ ê·¸ ííì ê´ë¦¬íë ì±
ìì´ ìë¤. ë§ì¼ 주ì´ì§ ë°ì´í° ì¡°ê°"
+"ì´ íëì ë°ì´í° êµ¬ì¡°ë¡ ê°ì£¼ë ê²½ì°, ê·¸ë íëì tuplizerë ê·¸ë° ë°ì´í° 구조"
+"를 ìì±ìí¤ë ë°©ë²ê³¼ ê·¸ë° ë°ì´í° 구조ë¡ë¶í° ê°ë¤ì ì¶ì¶ìí¤ë ë°©ë² ê·¸ë¦¬ê³ ê·¸"
+"ë° ë°ì´í°êµ¬ì¡° ìì¼ë¡ ê°ë¤ì ì½ì
ìí¤ë ë°©ë²ì ìê³ ìë ê²ì´ë¤. ì를 ë¤ì´, "
+"POJO ìí°í° 모ëì ê²½ì°, ëìíë tuplizerë ê·¸ê²ì ìì±ì를 íµí´ POJO를 ìì±"
+"ìí¤ë ë°©ë², ê·¸ë¦¬ê³ ì ìë íë¡í¼í° ì ê·¼ìë¤ì ì¬ì©íì¬ POJO íë¡í¼í°ë¤ì ì "
+"ê·¼íë ë°©ë²ì ìë¤. <literal>org.hibernate.tuple.entity.EntityTuplizer</"
+"literal> ì¸í°íì´ì¤ì <literal>org.hibernate.tuple.component."
+"ComponentTuplizer</literal> ì¸í°íì´ì¤ì ìí´ ííëë ë ê°ì§ ê³ ê¸ ì íì "
+"Tuplizerë¤ì´ ì¡´ì¬íë¤. <literal>EntityTuplizer</literal>ë¤ì ìí°í°ë¤ì ê´í´"
+"ìë ìì ì¸ê¸ë ê³ì½ë¤ì 매íí ì±
ìì´ ìë ë°ë©´ì, "
+"<literal>ComponentTuplizer</literal>ë¤ì ì»´í¬ëí¸ë¤ì ëí´ìë ëì¼í ê²ì í"
+"íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two high-level types of Tuplizers, represented by the <literal>org."
+"hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate."
+"tuple.component.ComponentTuplizer</literal> interfaces. "
+"<literal>EntityTuplizer</literal>s are responsible for managing the above "
+"mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Users can also plug in their own tuplizers. Perhaps you require that a "
+"<literal>java.util.Map</literal> implementation other than <literal>java."
+"util.HashMap</literal> be used while in the dynamic-map entity-mode. Or "
+"perhaps you need to define a different proxy generation strategy than the "
+"one used by default. Both would be achieved by defining a custom tuplizer "
+"implementation. Tuplizer definitions are attached to the entity or component "
+"mapping they are meant to manage. Going back to the example of our customer "
+"entity:"
+msgstr ""
+"ì¬ì©ìë¤ì ëí ê·¸ë¤ ìì ì tuplizerë¤ì íë¬ê·¸ ìí¬ ì ìë¤. ìë§ ë¹ì ì "
+"dynamic-map entity-mode ëìì ì¬ì©ëë <literal>java.util.HashMap</literal> "
+"ëì ì íëì <literal>java.util.Map</literal> 구íì íìë¡ íë¤; ëë ìë§ "
+"ë¹ì ì ëí´í¸ë¡ ì¬ì©ëë ë°©ë ë³´ë¤ë íëì ë¤ë¥¸ ë¤ë¥¸ íë¦ì ì°ì¶ ë°©ë를 íì"
+"ë¡ íë¤. ëë¤ íëì ë§ì¶¤í tuplizer를 ì ìí¨ì¼ë¡ì¨ ì±ì·¨ë ê²ì´ë¤. Tuplizer"
+"ë¤ ì ìë¤ì ê·¸ê²ë¤ì´ ê´ë¦¬í ìë¨ì¸ ìí°í° 매í ëë ì»´í¬ëí¸ ë§¤íì 첨ë¶ë"
+"ë¤. ì°ë¦¬ì ê³ ê° ìí°í°ì ëí ìì ë¡ ëëìê°ë©´:"
+
+#. Tag: title
+#, no-c-format
+msgid "EntityNameResolvers"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"interface is a contract for resolving the entity name of a given entity "
+"instance. The interface defines a single method "
+"<methodname>resolveEntityName</methodname> which is passed the entity "
+"instance and is expected to return the appropriate entity name (null is "
+"allowed and would indicate that the resolver does not know how to resolve "
+"the entity name of the given entity instance). Generally speaking, an "
+"<interfacename>org.hibernate.EntityNameResolver</interfacename> is going to "
+"be most useful in the case of dynamic models. One example might be using "
+"proxied interfaces as your domain model. The hibernate test suite has an "
+"example of this exact style of usage under the <package>org.hibernate.test."
+"dynamicentity.tuplizer2</package>. Here is some of the code from that "
+"package for illustration."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
+"interfacename> users must either:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
+"method."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (which is the implementation class for <interfacename>org."
+"hibernate.SessionFactory</interfacename>) using the "
+"<methodname>registerEntityNameResolver</methodname> method."
+msgstr ""
+
+#~ msgid "There are four main rules to follow here:"
+#~ msgstr "ì¤ìí ë¤ ê°ì 주ì ê·ì¹ë¤ì´ ë¤ìì ìë¤:"
+
+#~ msgid ""
+#~ "TODO: Document user-extension framework in the property and proxy packages"
+#~ msgstr ""
+#~ "TODO: property í¨í¤ì§ì proxy í¨í¤ì§ ë´ì user-extension íë ììì 문ì"
+#~ "í í ê²."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/portability.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/portability.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/portability.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,242 @@
+# Language ko-KR translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: 2009-07-14 19:56+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Database Portability Considerations"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Portability Basics"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dialect"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dialect resolution"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 role=\"JAVA\">public Dialect resolveDialect(DatabaseMetaData "
+"metaData) throws JDBCConnectionException</programlisting>. The basic "
+"contract here is that if the resolver 'understands' the given database "
+"metadata then it returns the corresponding Dialect; if not it returns null "
+"and the process continues to the next resolver. The signature also "
+"identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</"
+"exceptionname> as possibly being thrown. A JDBCConnectionException here is "
+"interpreted to imply a \"non transient\" (aka non-recoverable) connection "
+"problem and is used to indicate an immediate stop to resolution attempts. "
+"All other exceptions result in a warning and continuing on to the next "
+"resolver."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Identifier generation"
+msgstr ""
+
+#. 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 persistence context it must then issue the "
+"insert immediately when the users requests the entitiy be associated with "
+"the session (like via save() e.g.) regardless of current transactional "
+"semantics."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate was changed slightly once the implication of this was better "
+"understood so that the insert is delayed in cases where that is feasible."
+msgstr ""
+
+#. Tag: note
+#, no-c-format
+msgid ""
+"The underlying issue is that the actual semanctics of the application itself "
+"changes in these cases."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way."
+msgstr ""
+
+#. 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: note
+#, no-c-format
+msgid ""
+"The idea behind these generators is to port the actual semantics of the "
+"identifer value generation to the different databases. For example, the "
+"<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> "
+"mimics the behavior of a sequence on databases which do not support "
+"sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Database functions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is an area in Hibernate in need of improvement. In terms of portability "
+"concerns, this function handling currently works pretty well from HQL; "
+"however, it is quite lacking in all other aspects."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Type mappings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/preface.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/preface.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/preface.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,180 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "머리ë§"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Working with object-oriented software and a relational database can be "
+"cumbersome and time consuming in today's enterprise environments. Hibernate "
+"is an Object/Relational Mapping tool for Java environments. The term Object/"
+"Relational Mapping (ORM) refers to the technique of mapping a data "
+"representation from an object model to a relational data model with a SQL-"
+"based schema."
+msgstr ""
+"ê°ì²´ ì§í¥ ìíí¸ì¨ì´ì ê´ê³í ë°ì´í°ë² ì´ì¤ë¡ ìì
íë ê²ì ì¤ëë ì ìí°íë¼"
+"ì´ì¦ íê²½ë¤ìì ì±ê°ìê³ ìê°ì´ ìë¹ë ì ìë¤. Hibernateë ìë° íê²½ë¤ì ì"
+"í ê°ì²´/ê´ê³í 매í ë구ì´ë¤. object/relational mapping(ORM) ì©ì´ë ê°ì²´ 모í"
+"ì¼ë¡ë¶í° SQL-기ë°ì ì¤í¤ë§ë¥¼ ê°ì§ ê´ê³í ë°ì´í° 모íì¼ë¡ì ë°ì´í° íìì 매í"
+"íë 기ì ì ì¸ê¸íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate not only takes care of the mapping from Java classes to database "
+"tables (and from Java data types to SQL data types), but also provides data "
+"query and retrieval facilities. It can also significantly reduce development "
+"time otherwise spent with manual data handling in SQL and JDBC."
+msgstr ""
+"Hibernateë ìë° í´ëì¤ë¤ë¡ë¶í° ë°ì´í°ë² ì´ì¤ë¡ì 매í(ê·¸ë¦¬ê³ ìë° ë°ì´í° íì
"
+"ë¤ë¡ë¶í° SQL ë°ì´í° íì
ë¤ë¡ì 매í)ì ì²ë¦¬í ë¿ë§ ìëë¼, ëí ë°ì´í° ì§ì"
+"ì ê²ì í¸ìë¤ì ì ê³µíë©°, SQLê³¼ JDBCë¡ ììì
ë°ì´í° í¸ë¤ë§ì ììëë ê°ë° "
+"ìê°ì íì íê² ë¨ì¶ìì¼ì¤ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate's goal is to relieve the developer from 95 percent of common data "
+"persistence related programming tasks. Hibernate may not be the best "
+"solution for data-centric applications that only use stored-procedures to "
+"implement the business logic in the database, it is most useful with object-"
+"oriented domain models and business logic in the Java-based middle-tier. "
+"However, Hibernate can certainly help you to remove or encapsulate vendor-"
+"specific SQL code and will help with the common task of result set "
+"translation from a tabular representation to a graph of objects."
+msgstr ""
+"Hibernateì 목ì ì ê³µíµë ë°ì´í° ììí ê´ë ¨ íë¡ê·¸ëë° ìì
ë¤ì 95%를 ëì´ì£¼"
+"ë ê²ì´ë¤. Hibernateë ë°ì´í°ë² ì´ì¤ìì ë¹ì§ëì¤ ë¡ì§ì 구ííëë° ë´ì¥ íë¡"
+"ìì ë¤ì ì ì©ì¼ë¡ ì¬ì©íë ë°ì´í° ì¤ì¬ì ì´í리ì¼ì´ì
ì ëí ìµìì ì루ì
ì´ "
+"ìë ìë ìì§ë§, ê·¸ê²ì ìë° ê¸°ë° ë¯¸ë¤-í°ì´ìì ê°ì²´ ì§í¥ ëë©ì¸ 모íë¤ê³¼ ë¹"
+"ì§ëì¤ ë¡ì§ì ê°ì¥ ì ì©íë¤. íì§ë§ 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ì Object/Relational 매í ëë ì¬ì§ì´ ìë°ì ì´ì¬ìë¼"
+"ë©´, ë¤ì ë¨ê³ë¤ì ë°ë¥´ê¸° ë°ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step "
+"instructions. The source code for the tutorial is included in the "
+"distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr ""
+"ë ë§ì ë¨ê³ì ì¸ ì¬ì© ì¤ëª
ìë¤ì ê°ì§ ë 긴 íí 리ì¼ì <xref linkend="
+"\"tutorial\"/> ì ì½ì´ë¼. íí 리ì¼ì ìí ìì¤ ì½ëë <literal>doc/reference/"
+"tutorial/</literal> ëë í 리ì í¬í¨ëì´ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Read <xref linkend=\"architecture\" /> to understand the environments where "
+"Hibernate can be used."
+msgstr ""
+"Hibernateê° ì¬ì©ë ì ìë íê²½ì ì´í´ë ¤ë©´ <xref linkend=\"architecture\"/> "
+"를 ì½ì´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"View the <literal>eg/</literal> directory in the Hibernate distribution. It "
+"contains a simple standalone application. Copy your JDBC driver to the "
+"<literal>lib/</literal> directory and edit <literal>etc/hibernate."
+"properties</literal>, specifying correct values for your database. From a "
+"command prompt in the distribution directory, type <literal>ant eg</literal> "
+"(using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr ""
+"Hibernate ë°°í¬ë³¸ ë´ì <literal>eg/</literal> ëë í 리를 ì´í´ ë³´ë¼. ì´ ëë í "
+"리ë ê°ë¨í ì¤í ëì¼ë¡ ì´í리ì¼ì´ì
ì í¬í¨íê³ ìë¤. ë¹ì ì JDBC ëë¼ì´ë²ë¥¼ "
+"<literal>lib/</literal> ëë í 리ì ë³µì¬íê³ ë¹ì ì ë°ì´í°ë² ì´ì¤ì ë§ë ì í"
+"í ê°ì ì§ì íì¬ <literal>etc/hibernate.properties</literal> 를 í¸ì§íë¼. ë°°"
+"보본 ëë í 리ìì ëª
ë ¹ ë¼ì¸ í롬íí¸ìì (Ant를 ì¬ì©íì¬) <literal>ant eg</"
+"literal> 를 íì´í íê±°ë , Windows íìì <literal>build eg</literal> 를 í"
+"ì´í íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use this reference documentation as your primary source of information. "
+"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
+"more help with application design, or if you prefer a step-by-step tutorial. "
+"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
+"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr ""
+"ë¹ì ì 주ë ì ë³´ì ìì¤ë¡ì ì´ ì°¸ì¡° 문ì를 ì¬ì©íë¼. ë§ì¼ ì´í리ì¼ì´ì
ì¤ê³"
+"ì ëí´ ë ë§ì ëìì íìë¡ íê±°ë ë¹ì ì´ ë¨ê³ì ì¸ íí 리ì¼ì ì í¸íë¤ë©´ "
+"<emphasis>Java Persistence with Hibernate</emphasis> (http://www.manning.com/"
+"bauer2)ì ì½ë ê²ì ê³ ë ¤íë¼.ëí http://caveatemptor.hibernate.orgì 방문í"
+"ì¬ Java Persistence with Hibernateì© ìì ì´í리ì¼ì´ì
ì ë¤ì´ë¡ë íë¼."
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr "FAQë¤ì Hibernate ì¹ ì¬ì´í¸ ìì ëµë³ëì´ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Links to third party demos, examples, and tutorials are maintained on the "
+"Hibernate website."
+msgstr ""
+"ì 3ì ë°ëª¨ë¤, ìì ë¤, ê·¸ë¦¬ê³ íí 리ì¼ë¤ì Hibernate ì¹ ì¬ì´í¸ ìì ë§í¬ëì´ "
+"ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The Community Area on the Hibernate website is a good resource for design "
+"patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, "
+"etc.)."
+msgstr ""
+"Hibernate ì¹ì¬ì´í¸ ìì ê³µëì²´ ììì ì¤ê³ í¨í´ê³¼ ë¤ìí íµí© ì루ì
ë¤"
+"(Tomcat, JBoss AS, Struts, EJB ë±.)ì ê´í ì¢ì 리ìì¤ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you have questions, use the user forum linked on the Hibernate website. "
+"We also provide a JIRA issue tracking system for bug reports and feature "
+"requests. If you are interested in the development of Hibernate, join the "
+"developer mailing list. If you are interested in translating this "
+"documentation into your language, contact us on the developer mailing list."
+msgstr ""
+"ì§ë¬¸ì´ ìë¤ë©´, Hibernate ìì ë§í¬ëì´ ìë ì¬ì©ì í¬ë¼ì ì¬ì©íë¼. ì°ë¦¬ë ë"
+"í ë²ê·¸ ë³´ê³ ì í¹ì§ ìì²ë¤ì ìí JIRA ìì ì¶ì ìì¤í
ì ì ê³µíë¤. ë¹ì ì´ "
+"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 Professional Open Source product íë¡ì í¸ì´ê³ ì íë¤ì ëí JBoss "
+"Enterprise Middleware System (JEMS) suiteì ì¤ëí ì»´í¬ëí¸ì´ë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_criteria.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_criteria.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_criteria.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,405 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr "Criteria ì§ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate features an intuitive, extensible criteria query API."
+msgstr "Hibernateë ì§ê´ì ì¸, íì¥ ê°ë¥í criteria query API를 í¹ì§ ì§ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr "<literal>Criteria</literal> ì¸ì¤í´ì¤ ìì±í기"
+
+#. 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> "
+"ì¸ì¤í´ì¤ë¤ì ëí í©í 리ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr "ê²°ê³¼ ì
ì íí기"
+
+#. 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> íì
ë¤ì ì»"
+"ë í©í 리 ë©ìëë¤ì ì ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr "ì íë¤ì ë
¼ë¦¬ì ì¼ë¡ 그룹ì§ìì§ ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"There are a range of built-in criterion types (<literal>Restrictions</"
+"literal> subclasses). One of the most useful allows you to specify SQL "
+"directly."
+msgstr ""
+"미리 ë§ë¤ì´ì§ 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."
+msgstr ""
+"ì§ìë ìí°í°ì í aliasì ìí´ ëì²´ë <literal>{alias}</literal> "
+"placeholder."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also obtain a criterion from a <literal>Property</literal> instance. "
+"You can create a <literal>Property</literal> by calling <literal>Property."
+"forName()</literal>:"
+msgstr ""
+"criterionì ì»ë ëìì ì¸ ì ê·¼ë²ì <literal>Property</literal> ì¸ì¤í´ì¤ë¡ë¶"
+"í° ê·¸ê²ì ì»ë ê²ì´ë¤. ë¹ì ì <literal>Property.forName()</literal>ì í¸ì¶í"
+"ì¬ <literal>Property</literal>를 ìì±ìí¬ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr "ê²°ê³¼ë¤ì ììì§ì°ê¸°(ordering)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can order the results using <literal>org.hibernate.criterion.Order</"
+"literal>."
+msgstr ""
+"ë¹ì ì <literal>org.hibernate.criterion.Order</literal>를 ì¬ì©íì¬ ê²°ê³¼ë¤ì "
+"ìì(ordering)ì§ì¸ ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr "ì°ê´ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By navigating associations using <literal>createCriteria()</literal> you can "
+"specify constraints upon related entities:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The second <literal>createCriteria()</literal> returns a new instance of "
+"<literal>Criteria</literal> that refers to the elements of the "
+"<literal>kittens</literal> collection."
+msgstr ""
+"ë ë²ì§¸ <literal>createCriteria()</literal>ë <literal>Criteria</literal>ì "
+"ìë¡ì´ ì¸ì¤í´ì¤ë¥¼ ë°ííë©°, ê·¸ê²ì <literal>kittens</literal> ì½ë ì
ì ììë¤"
+"ì 참조íë¤ë ì ì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+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>ì ìë¡ì´ ì¸ì¤"
+"í´ì¤ë¥¼ ìì±ìí¤ì§ ìëë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The kittens collections held by the <literal>Cat</literal> instances "
+"returned by the previous two queries are <emphasis>not</emphasis> pre-"
+"filtered by the criteria. If you want to retrieve just the kittens that "
+"match the criteria, you must use a <literal>ResultTransformer</literal>."
+msgstr ""
+"ìì ë ê°ì ì§ìë¤ì ìí´ ë°íë <literal>Cat</literal> ì¸ì¤í´ì¤ë¤ì ìí´ ë³´"
+"ê´ë kittens ì½ë ì
ë¤ì criteriaì ìí´ ì¬ì -íí°ë§ëì§ <emphasis>ìëë¤</"
+"emphasis>ë ì ì ë
¸í¸íë¼! ë§ì¼ ë¹ì ì´ criteria(기ì¤)ê³¼ ì¼ì¹íë ê³ ìì´ ìë¼"
+"ë¤ì ë¨ì§ ê²ìíê³ ì ìí ê²½ì°, ë¹ì ì íëì <literal>ResultTransformer</"
+"literal>를 ì¬ì©í´ì¼ íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will return all of the <literal>Cat</literal>s with a mate whose name "
+"starts with \"good\" ordered by their mate's age, and all cats who do not "
+"have a mate. This is useful when there is a need to order or limit in the "
+"database prior to returning complex/large result sets, and removes many "
+"instances where multiple queries would have to be performed and the results "
+"unioned by java in memory."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Without this feature, first all of the cats without a mate would need to be "
+"loaded in one query."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A second query would need to retreive the cats with mates who's name started "
+"with \"good\" sorted by the mates age."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr "ëì ì¸ ì°ê´ íì¹"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"ë¹ì ì <literal>setFetchMode()</literal>를 ì¬ì©íì¬ ì¤í ìì ì°ê´ íì¹ ì미"
+"를 ì§ì í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This query will fetch both <literal>mate</literal> and <literal>kittens</"
+"literal> by outer join. See <xref linkend=\"performance-fetching\" /> for "
+"more information."
+msgstr ""
+"ì´ ì§ìë outer ì¡°ì¸ì¼ë¡ <literal>mate</literal>ì <literal>kittens</"
+"literal> 모ë를 íì¹í ê²ì´ë¤. ì¶ê° ì ë³´ë <xref linkend=\"performance-"
+"fetching\"/>ì ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr "ìì ì§ìë¤"
+
+#. 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> í´ëì¤ë 주ì´ì§ ì¸ì¤í´ì¤ë¡"
+"ë¶í° ì§ì 기ì¤(criterion)ì 구조í ìí¤ë ê²ì ë¹ì ìê² íì©í´ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
+msgstr ""
+"ë²ì íë¡í¼í°ë¤, ìë³ìë¤, ì°ê´ê´ê³ë¤ì´ 무ìëë¤. ëí´í¸ë¡ null ê° íë¡í¼í°ë¤"
+"ì´ ì ì¸ëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr "ë¹ì ì <literal>Example</literal>ì´ ì ì©ëë ë°©ë²ì ì¡°ì í ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "You can even use examples to place criteria upon associated objects."
+msgstr ""
+"ë¹ì ì ì°ê´ë ê°ì²´ë¤ì ëí criteria(기ì¤)ì ìì¹ì§ì°ëë° examples를 ì¬ì©í "
+"ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr "Projections, aggregation ê·¸ë¦¬ê³ grouping"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class <literal>org.hibernate.criterion.Projections</literal> is a "
+"factory for <literal>Projection</literal> instances. You can apply a "
+"projection to a query by calling <literal>setProjection()</literal>."
+msgstr ""
+"<literal>org.hibernate.criterion.Projections</literal> í´ëì¤ë "
+"<literal>Projection</literal> ì¸ì¤í´ì¤ë¤ì ëí í©í 리ì´ë¤. ì°ë¦¬ë "
+"<literal>setProjection()</literal>ì í¸ì¶íì¬ íëì ì§ìì projection(í¬ì¬,"
+"í¬ì)ì ì ì©ìí¨ë¤."
+
+#. 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 ""
+"criteria ì§ì ë´ììë ëª
ìì ì¸ \"group by\"ê° íìì ì´ì§ ìë¤. ì´ë¤ "
+"projection íì
ë¤ì <emphasis>grouping projections</emphasis>ë¤ì´ê²ë ì ìë"
+"ê³ , ê·¸ê²ì ëí SQL <literal>group by</literal> ì ìì ëíëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An alias can be assigned to a projection so that the projected value can be "
+"referred to in restrictions or orderings. Here are two different ways to do "
+"this:"
+msgstr ""
+"aliasë ì íì ì¼ë¡ projectionì í ë¹ë ì ìì´ì, í¬ì¬ë(projected) ê°ì ì í"
+"(restriction)ë¤ ëë orderingë¤ ë´ìì 참조ë ì ìë¤. ë¤ìì ì´ê²ì ííë "
+"ë ê°ì ë¤ë¥¸ ë°©ë²ë¤ì´ë¤:"
+
+#. 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> ë©ìëë ë ë¤ë¥¸ "
+"alias ë <literal>Projection</literal>ì ì¸ì¤í´ì¤ ë´ì íëì projection ì¸ì¤"
+"í´ì¤ë¥¼ ê°ë¨íê² í¬ì¥íë¤. ì§ë¦ê¸¸ë¡ì, ë¹ì ì´ projectionì projection 리ì¤í¸"
+"ì ì¶ê°í ë ë¹ì ì alias를 í ë¹í ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
+msgstr ""
+"ë¹ì ì ëí projectionë¤ì íííëë° <literal>Property.forName()</literal>"
+"ì ì¬ì©í ì ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr "Detached ì§ìë¤ê³¼ ìë¸ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>DetachedCriteria</literal> class allows you to create a query "
+"outside the scope of a session and then execute it using an arbitrary "
+"<literal>Session</literal>."
+msgstr ""
+"<literal>DetachedCriteria</literal> í´ëì¤ë ë¹ì ìê² ì¸ì
ììì ì¸ë¶ìì ì§"
+"ì를 ìì±ìí¤ëë¡ íê³ , ê·¸ë° ë¤ì ëì¤ì ì´ë¤ ììì <literal>Session</"
+"literal>ì ì¬ì©íì¬ ê·¸ê²ì ì¤ííëë¡ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>DetachedCriteria</literal> can also be used to express a "
+"subquery. Criterion instances involving subqueries can be obtained via "
+"<literal>Subqueries</literal> or <literal>Property</literal>."
+msgstr ""
+"<literal>DetachedCriteria</literal>ë ëí ìë¸ì§ì를 íííëë° ì¬ì©ëë¤. ì"
+"ë¸ì§ìë¤ì í¬í¨íë Criterion ì¸ì¤í´ì¤ë¤ì <literal>Subqueries</literal> ë"
+"ë <literal>Property</literal>를 íµí´ ì»ì´ì§ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr "ì¬ì§ì´ ìê´ê´ê³ ì§ìì§ ìë¸ì§ìë¤ì´ ê°ë¥íë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr "natural ìë³ìì ìí ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For most queries, including criteria queries, the query cache is not "
+"efficient because query cache invalidation occurs too frequently. However, "
+"there is a special kind of query where you can optimize the cache "
+"invalidation algorithm: lookups by a constant natural key. In some "
+"applications, this kind of query occurs frequently. The criteria API "
+"provides special provision for this use case."
+msgstr ""
+"ëë¶ë¶ì ì§ìë¤ìì, criteria ì§ìë¤ì í¬í¨íì¬, ì§ì ìºìë ë§¤ì° í¨ì¨ì ì´ì§ "
+"ìë¤. ìëíë©´ ì§ì ìºì ë¹ì í¨ì±ì´ ë무 ì주 ë°ìí기 ë문ì´ë¤. íì§ë§, ì°ë¦¬"
+"ê° ìºì ë¹ì í¨ì± ìê³ ë¦¬ì¦ì ìµì í ìí¬ ì ìë í ê°ì§ í¹ë³í ì¢
ë¥ì ì§ìê° "
+"ì¡´ì¬íë¤: ìì natural í¤ì ìí 룩ì
. ëªëª ì´í리ì¼ì´ì
ë¤ìì, ì´ë° ì¢
ë¥ì "
+"ì§ìê° ì주 ë°ìíë¤. criteria APIë ì´ ì°ìì를 ìí í¹ë³í ì¤ë¹ë¥¼ ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, map the natural key of your entity using <literal><natural-id></"
+"literal> and enable use of the second-level cache."
+msgstr ""
+"첫ë²ì§¸ë¡ ë¹ì ì <literal><natural-id></literal>를 ì¬ì©íì¬ ë¹ì ì ìí°"
+"í°ì ëí natural í¤ë¥¼ 매í ìì¼ì¼ íê³ , second-level ìºì ì¬ì©ì ê°ë¥íê² í´"
+"ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"ì´ ê¸°ë¥ì <emphasis>ê°ë³ì± ìë</emphasis> natural í¤ë¤ì ê°ì§ ìí°í°ë¤ì ì©"
+"ëë¡ ê³ ìëì´ ìì§ ììì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Once you have enabled the Hibernate query cache, the <literal>Restrictions."
+"naturalId()</literal> allows you to make use of the more efficient cache "
+"algorithm."
+msgstr ""
+"ì´ì <literal>Restrictions.naturalId()</literal>ë ìºì ìê³ ë¦¬ì¦ì ë³´ë¤ í¨ì¨"
+"ì ì¼ë¡ ì¬ì©í ì ìëë¡ ì°ë¦¬ìê² íì©í´ì¤ë¤."
+
+#~ msgid ""
+#~ "You may easily specify constraints upon related entities by navigating "
+#~ "associations using <literal>createCriteria()</literal>."
+#~ msgstr ""
+#~ "ë¹ì ì <literal>createCriteria()</literal>를 ì¬ì©íì¬ ì°ê´ë¤ì ë¤ë¹ê²ì´í¸"
+#~ "í¨ì¼ë¡ì¨ ê´ê³ë ìí°í°ë¤ì ëí 컨ì¤í¸ë ì¸í¸ë¤ì ì½ê² ì§ì í ì ìë¤."
+
+#~ msgid "Next, enable the Hibernate query cache."
+#~ msgstr "ë¤ìì¼ë¡ , Hibernate ì§ì ìºì를 ì¬ì© ê°ë¥íëë¡ íë¼."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_hql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_hql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_hql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1418 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr "HQL: íì´ë²ë¤ì´í¸ ì§ì ì¸ì´(Hibernate Query Language)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate uses a powerful query language (HQL) that is similar in appearance "
+"to SQL. Compared with SQL, however, HQL is fully object-oriented and "
+"understands notions like inheritance, polymorphism and association."
+msgstr ""
+"Hibernateë (ì주 ìëì ì¼ë¡) SQLê³¼ ë§¤ì° í¡ì¬íê² ë³´ì´ë ê·¹í ê°ë ¥í ì§ì ì¸"
+"ì´ë¥¼ 구ë¹íê³ ìë¤. ê·¸ë¬ë ê·¸ 구문ì ìí´ ì°ë¡±ë¹íì§ ë§ë¼; HQLì ìì, ë¤í"
+"ì± ê·¸ë¦¬ê³ ì°ê´ê³¼ ê°ì ê°ë
ë¤ì ì´í´íì¬ì, ì ì²´ì ì¼ë¡ ê°ì²´ ì§í¥ì ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr "ëì문ì 구ë¶"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"With the exception of names of Java classes and properties, queries are case-"
+"insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</"
+"literal> is the same as <literal>SELECT</literal>, but <literal>org."
+"hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, "
+"and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr ""
+"ì§ìë¤ì Java í´ëì¤ë¤ê³¼ íë¡í¼í°ë¤ì ì´ë¦ë¤ì ì ì¸íë©´ ëì문ì를 구ë¶íì§ "
+"ìëë¤. ë°ë¼ì <literal>SeLeCT</literal>ë <literal>SELECT</literal>ì ê°ê³ "
+"<literal>SELECT</literal>ìë ê°ì§ë§ <literal>org.hibernate.eg.FOO</literal>"
+"ë <literal>org.hibernate.eg.Foo</literal>ê³¼ ê°ì§ ìê³ <literal>foo.barSet</"
+"literal>ì <literal>foo.BARSET</literal>ê³¼ ê°ì§ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This manual uses lowercase HQL keywords. Some users find queries with "
+"uppercase keywords more readable, but this convention is unsuitable for "
+"queries embedded in Java code."
+msgstr ""
+"ì´ ë§¤ë´ì¼ì ì문ì HQL í¤ìë를 ì¬ì©íë¤. ëªëª ì¬ì©ìë¤ì ë³´ë¤ ëì ê°ë
ì±ì "
+"ìí´ ë문ì í¤ìëë¤ì ê°ì§ ì§ìë¤ì ì°¾ì§ë§, ì°ë¦¬ë ìë° ì½ë ìì ì½ì
ë ë "
+"ì´ ì»¨ë²¤ì
ì´ ì¶íë¤ë ì ì ë°ê²¬íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr "from ì "
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr "ê°ì¥ ê°ë¨í ê°ë¥í Hibernate ì§ìë ë¤ì íìì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This returns all instances of the class <literal>eg.Cat</literal>. You do "
+"not usually need to qualify the class name, since <literal>auto-import</"
+"literal> is the default. For example:"
+msgstr ""
+"ì´ê²ì <literal>eg.Cat</literal> í´ëì¤ì 모ë ì¸ì¤í´ì¤ë¤ì ê°ë¨íê² ë°íí"
+"ë¤. ì°ë¦¬ë ëê° í´ëì¤ ì´ë¦ì ììí íìê° ìë¤. ìëíë©´, <literal>auto-"
+"import</literal>ê° ëí´í¸ì´ê¸° ë문ì´ë¤. ë°ë¼ì ì°ë¦¬ë ëê° íì ë¨ì§ ë¤ìê³¼ "
+"ê°ì´ ìì±íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to refer to the <literal>Cat</literal> in other parts of the query, "
+"you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ì´ ì§ìë alias <literal>cat</literal>ì <literal>Cat</literal> ì¸ì¤í´ì¤ë¤ì "
+"í ë¹íì¬ì, ì°ë¦¬ë ëì¤ì ì§ì ììì ê·¸ alias를 ì¬ì©í ì ìì ê²ì´ë¤. "
+"<literal>as</literal> í¤ìëë ìµì
ì´ë¤; ì°ë¦¬ë ëí ë¤ìê³¼ ê°ì´ ìì±í ì ì"
+"ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
+"join."
+msgstr ""
+"ì¬ë¬ ê°ì í´ëì¤ë¤ì cartesian product(ì¹´í°ì ¼ ê³±) ëë \"í¬ë¡ì¤\" ì¡°ì¸ì¼ë¡ ê·"
+"ê²°ëì´ ëíë ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is good practice to name query aliases using an initial lowercase as this "
+"is consistent with Java naming standards for local variables (e.g. "
+"<literal>domesticCat</literal>)."
+msgstr ""
+"ë¡ì»¬ ë³ìë¤ì ëí Java ë¤ì´ë° íì¤ë¤ê³¼ ì¼ì¹ëê², 첫 ì문ì를 ì¬ì©íì¬ ì§ì "
+"aliasë¤ì ëª
ëª
íë ê²ì ì¢ì ìµê´ì¼ë¡ ê°ì£¼ëë¤ (ì를 ë¤ë©´ "
+"<literal>domesticCat</literal>)."
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr "ì°ê´ë¤ê³¼ ì¡°ì¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also assign aliases to associated entities or to elements of a "
+"collection of values using a <literal>join</literal>. For example:"
+msgstr ""
+"ì°ë¦¬ë ëí <literal>join</literal>ì ì¬ì©íì¬ , ì°ê´ë ìí°í°ë¤ì ëë ê°ë¤"
+"ì ê°ì§ ì½ë ì
ì ììë¤ìë aliasë¤ì í ë¹í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "ì§ìëë join íì
ë¤ì ANSI SQLë¡ë¶í° ë¹ë ¤ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "ëë <literal>List</literal>ë¡ì,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>full join</literal> (ëê° ì ì©íì§ ìì)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr "right outer join"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr "<literal>full join</literal> (ëê° ì ì©íì§ ìì)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> and "
+"<literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+"<literal>inner join</literal>, <literal>left outer join</literal>, ê·¸ë¦¬ê³ "
+"<literal>right outer join</literal> 구조체ë¤ì´ ì½ì¹ë ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You may supply extra join conditions using the HQL <literal>with</literal> "
+"keyword."
+msgstr ""
+"ë¹ì ì HQL <literal>with</literal> í¤ìë를 ì¬ì©íì¬ í¹ë³í ì¡°ì¸ ì¡°ê±´ë¤ì ì "
+"ê³µí ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A \"fetch\" join allows associations or collections of values to be "
+"initialized along with their parent objects using a single select. This is "
+"particularly useful in the case of a collection. It effectively overrides "
+"the outer join and lazy declarations of the mapping file for associations "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
+"information."
+msgstr ""
+"ê²ë¤ê°, \"fetch\" joinì ê°ë¤ì ê°ì§ ì½ë ì
ë¤ì´ë ì°ê´ê´ê³ë¤ì´ í ê°ì select"
+"를 ì¬ì©íì¬, ê·¸ê²ë¤ì ë¶ëª¨ ê°ì²´ë¤ì ë°ë¼ ì´ê¸°í ëë ê²ì íì©í´ì¤ë¤. ì´ê²ì "
+"ì½ë ì
ì ê²½ì°ì í¹í ì ì©íë¤. ê·¸ê²ì ì°ê´ê´ê³ë¤ê³¼ ì½ë ì
ë¤ì ëí 매í íì¼"
+"ì outer joinê³¼ lazy ì ì¸ë¤ì í¨ì¨ì ì¼ë¡ ì¤ë²ë¼ì´ë ìí¨ë¤. ì¶ê° ì ë³´ë "
+"<xref linkend=\"performance-fetching\"/>ì ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A fetch join does not usually need to assign an alias, because the "
+"associated objects should not be used in the <literal>where</literal> clause "
+"(or any other clause). The associated objects are also not returned directly "
+"in the query results. Instead, they may be accessed via the parent object. "
+"The only reason you might need an alias is if you are recursively join "
+"fetching a further collection:"
+msgstr ""
+"fetch joinì ëê° alias를 í ë¹í íìê° ìë¤. ìëíë©´, ì°ê´ë ê°ì²´ë¤ì´ "
+"<literal>where</literal> ì (ëë ì´ë¤ ë¤ë¥¸ ì ) ìì ì¬ì©ëì§ ìì ê²ì´ê¸° ë문"
+"ì´ë¤. ëí ì°ê´ë ê°ì²´ë¤ì ì§ì ê²°ê³¼ë¤ ìì ì§ì ë°íëì§ ìëë¤. ëì ê·¸ê²ë¤"
+"ì ë¶ëª¨ ê°ì²´ë¥¼ íµí´ ì ê·¼ë ì ìë¤. ì°ë¦¬ê° alias를 íìë¡ í ì ìë ì ì¼í "
+"ì´ì ë ë ë§ì ì½ë ì
ë¤ì ì¬ê·ì ì¼ë¡ ì¡°ì¸ íì¹ìí¤ë ê²½ì°ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>fetch</literal> construct cannot be used in queries called "
+"using <literal>iterate()</literal> (though <literal>scroll()</literal> can "
+"be used). <literal>Fetch</literal> should be used together with "
+"<literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, "
+"as these operations are based on the result rows which usually contain "
+"duplicates for eager collection fetching, hence, the number of rows is not "
+"what you would expect. <literal>Fetch</literal> should also not be used "
+"together with impromptu <literal>with</literal> condition. It is possible to "
+"create a cartesian product by join fetching more than one collection in a "
+"query, so take care in this case. Join fetching multiple collection roles "
+"can produce unexpected results for bag mappings, so user discretion is "
+"advised when formulating queries in this case. Finally, note that "
+"<literal>full join fetch</literal> and <literal>right join fetch</literal> "
+"are not meaningful."
+msgstr ""
+"(ë¹ë¡ <literal>scroll()</literal>ì´ ì¬ì©ë ì ììì§ë¼ë) <literal>fetch</"
+"literal> 구조체ë <literal>iterate()</literal>를 ì¬ì©íì¬ í¸ì¶ëë ì§ìë¤ ë´"
+"ì ì¬ì©ë ì ììì ë
¸í¸íë¼. ì´ë¤ ì¤í¼ë ì´ì
ë¤ì´ ê²°ê³¼ íë¤ì 기ì´íê³ ì기 "
+"ë문ì <literal>fetch</literal>ë <literal>setMaxResults()</literal> ëë "
+"<literal>setFirstResult()</literal>ê³¼ í¨ê» ì¬ì©ëì§ ë§ìì¼ íë©°, ê·¸ê²ë¤(ê²°ê³¼ "
+"íë¤)ì ëê° ê°ê°ì eager ì½ë ì
íì¹ì ëí´ ì¤ë³µë¤ì í¬í¨íë¯ë¡ ë§ì íë¤ì´ "
+"ë¹ì ì´ ê¸°ëíë ê²ì´ ìëë¤. <literal>fetch</literal>ë í¹ë³í ì©ëì "
+"<literal>with</literal> ì¡°ê±´ê³¼ë í¨ê» ì¬ì©ë ì ìë¤.í ê°ì ì§ì ë´ì íë "
+"ì´ìì ì½ë ì
ì ì¡°ì¸ íì¹ìì¼ ì¹´í°ì ¼ ê³±ì ìì±ìí¤ë ê²ì´ ê°ë¥íë°, ì´ ê²½ì°"
+"ì 주ìíë¼. ë¤ì¤ ì½ë ì
roleë¤ì ì¡°ì¸ íì¹ìí¤ë ê²ì ëí ëëë¡ bag 매íë¤"
+"ì ëí´ ìê¸°ì¹ ìì ê²°ê³¼ë¤ì ê°ì ¸ë¤ì£¼ê¸° ë문ì, ë¹ì ì´ ì´ ê²½ì°ì ë¹ì ì ì§ì"
+"ë¤ì ì²ë°©íë ë°©ë²ì ëí´ ì£¼ìíë¼. ë§ì§ë§ì¼ë¡ <literal>full join fetch</"
+"literal>ì <literal>right join fetch</literal>ë ìë¯¸ê° ìë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë§ì¼ ë¹ì ì´ (ë°ì´í¸ì½ë ë°©í¸ì¼ë¡) property-ë 벨 lazy íì¹ì ì¬ì©í ê²½ì°, "
+"Hibernateë¡ íì¬ê¸ <literal>fetch all properties</literal>를 ì¬ì©íì¬ (첫 ë²"
+"째 ì§ììì) lazy íë¡í¼í°ë¤ì ì¦ì íì¹íëë¡ ê°ì ìí¤ë ê²ì´ ê°ë¥íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr "join 구문ì íìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
+msgstr ""
+"HQLì ë ê°ì§ íìì ì°ê´ ì¡°ì¸ì ì§ìíë¤: <literal>ì묵ì </literal> ê·¸ë¦¬ê³ "
+"<literal>ëª
ìì </literal>."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ìì ì ìì ë³´ì¬ì§ ì§ìë¤ì 모ë join í¤ìëê° from ì ë´ì ëª
ìì ì¼ë¡ ì¬ì©ë"
+"ë <literal>ëª
ìì ì¸</literal> íìì ì¬ì©íë¤. ì´ê²ì ê¶ì¥ëë íìì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+"<literal>í¨ì¶ì ì¸</literal> íìì join í¤ìë를 ì¬ì©íì§ ìëë¤. ëì ì, ì°"
+"ê´ë¤ì dot(.) í기를 ì¬ì©íì¬ \"dot-참조ëë¤(dereferenced)\". <literal>í¨ì¶ì "
+"ì¸</literal> ì¡°ì¸ë¤ì ììì HQL ì ë¤ë´ì ëíë ì ìë¤. <literal>í¨ì¶ì ì¸</"
+"literal> joinì ê²°ê³¼ëë SQL 문ì¥ìì inner joinì¼ë¡ ê·ê²°ëë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Referring to identifier property"
+msgstr "ìë³ì ìì± ì°¸ì¡°í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr ""
+"ê°ëµì ì¼ë¡ ë§íìë©´, ìí°í°ì ìë³ì ìì±ì 참조íë 2ê°ì§ ë°©ë²ë¤ì´ ì¡´ì¬íë¤:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<emphasis>ìí°í°ê° idë¡ ëª
ëª
ë ë¹ìë³ì ìì±ì ì ìíì§ ìëë¤ê³ ê°ì íë©´</"
+"emphasis> í¹ë³í ìì±(ì문ì) <literal>id</literal>ê° ìí°í°ì ìë³ì ìì±ì "
+"참조íëë° ì¬ì©ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the entity defines a named identifier property, you can use that property "
+"name."
+msgstr ""
+"ë§ì¼ ê·¸ ìí°í°ê° ëª
ëª
ë ìë³ì ìì±ì ì ìíë ê²½ì°, ë¹ì ì ê·¸ ìì± ì´ë¦ì ì¬"
+"ì©í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"composite ìë³ì ìì±ë¤ì ëí 참조ë¤ì ëì¼í ë¤ì´ë° ê·ì¹ë¤ì ë°ë¥¸ë¤. ë§ì¼ "
+"ê·¸ ìí°í°ê° idë¡ ëª
ëª
ë ë¹ìë³ì를 ê°ê³ ìì ê²½ì°, composite ìì±ì ì¤ì§ ê·¸ê²"
+"ì ì ìë ëª
ëª
ì ìí´ ì°¸ì¡°ë ì ìë¤; ê·¸ë°ì ê²½ì° í¹ë³í <literal>id</"
+"literal> ìì±ì´ ìë³ì ìì±ì 참조íëë° ì¬ì©ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please note that, starting in version 3.2.2, this has changed significantly. "
+"In previous versions, <literal>id</literal> <emphasis>always</emphasis> "
+"referred to the identifier property regardless of its actual name. A "
+"ramification of that decision was that non-identifier properties named "
+"<literal>id</literal> could never be referenced in Hibernate queries."
+msgstr ""
+"ë
¸í¸: ì´ê²ì ë²ì 3.2.2ìì ììë ë í격íê² ë³ê²½ëìë¤. ì´ì ë²ì ë¤ìì, "
+"<literal>id</literal>ë <emphasis>íì</emphasis> ê·¸ê²ì ì¤ì ì´ë¦ì ê´ê³ì"
+"ì´ ìë³ì ìì±ì 참조íë¤. ê·¸ ê²°ì ì ë¶ê¸°ì ì <literal>id</literal>ë¡ ëª
ëª
ë "
+"ë¹ìë³ì ìì±ë¤ì´ Hibernate ì§ìë¤ ë´ìì ê²°ì½ ì°¸ì¡°ë ì ììë¤ë ì ì´ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr "select ì "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>select</literal> clause picks which objects and properties to "
+"return in the query result set. Consider the following:"
+msgstr ""
+"<literal>select</literal> ì ì ì§ì ê²°ê³¼ ì
ìì ë°íí ê°ì²´ë¤ê³¼ íë¡í¼í°ë¤"
+"ì´ ì´ë ê²ì¸ì§ë¥¼ ê³¨ë¼ ë´ëë¡ ê°ì íë¤. ë¤ìì ê²í íì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. You can express this query more compactly as:"
+msgstr ""
+"ì§ìë ë¤ë¥¸ <literal>Cat</literal>ë¤ì <literal>mate</literal>ë¤ì select í "
+"ê²ì´ë¤. ì¤ì ë¡ ë¹ì ì ì´ ì§ìë¤ì ë¤ìê³¼ ê°ì´ ë³´ë¤ ì¶ì½íì¼ë¡ ííí ìë ì"
+"ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Queries can return properties of any value type including properties of "
+"component type:"
+msgstr ""
+"ì§ìë¤ì ì»´í¬ëí¸ íì
ì íë¡í¼í°ë¤ì í¬í¨íë ììì ê° íì
ì íë¡í¼í°ë¤ì "
+"ë°íí ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Queries can return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>:"
+msgstr ""
+"<literal>Family</literal> í´ëì¤ê° ì ë¹í ìì±ì를 ê°ê³ ììì ê°ì íë©´, ì§ì"
+"ë¤ì ì¬ë¬ ê°ì²´ë¤ ê·¸ë¦¬ê³ /ëë íë¡í¼í°ë¤ì <literal>Object[]</literal> íì
ì "
+"ë°°ì´ë¡ì,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr "ëë <literal>List</literal>ë¡ì,"
+
+#. Tag: para
+#, 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: para
+#, fuzzy, no-c-format
+msgid ""
+"You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+"ë¹ì ì <literal>as</literal>를 ì¬ì©íì¬ selectëë ííìë¤ì aliasë¤ì í ë¹"
+"í ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal>:"
+msgstr ""
+"ë¤ìì <literal>select new map</literal>ê³¼ í¨ê» ì¬ì©ë ë ê°ì¥ ì ì©íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+"ì´ ì§ìë selectë ê°ë¤ì ëí aliasë¡ë¶í° í ê°ì <literal>Map</literal>ì "
+"ë°ííë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr "ì§ê³ í¨ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL queries can even return the results of aggregate functions on properties:"
+msgstr ""
+"HQL ì§ìë¤ì íë¡í¼í°ë¤ì ëí ì§ê³(aggregate) í¨ìë¤ì ê²°ê³¼ë¤ì ë°íí ìë "
+"ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr "ì§ìëë ì§ê³ í¨ìë¤ì ë¤ìê³¼ ê°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "avg(...), sum(...), min(...), max(...)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "ëë <literal>List</literal>ë¡ì,"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "count(...), count(distinct ...), count(all...)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause:"
+msgstr ""
+"ë¹ì ì select ì ìì ì°ì ì°ì°ìë¤, ì°ê²° ì°ì°ì, ê·¸ë¦¬ê³ ì¸ì§ë SQL í¨ìë¤ì "
+"ì¬ì©í ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords can be "
+"used and have the same semantics as in SQL."
+msgstr ""
+"<literal>distinct</literal> í¤ìëì all <literal>all</literal>ê° ì¬ì©ë ì "
+"ìê³ SQLì ê²½ì°ì ëì¼í ì미를 ê°ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Polymorphic(ë¤íì±) ì§ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr "ë¤ìê³¼ ê°ì ì§ì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"returns instances not only of <literal>Cat</literal>, but also of subclasses "
+"like <literal>DomesticCat</literal>. Hibernate queries can name "
+"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
+"literal> clause. The query will return instances of all persistent classes "
+"that extend that class or implement the interface. The following query would "
+"return all persistent objects:"
+msgstr ""
+"ì <literal>Cat</literal>ì ì¸ì¤í´ì¤ë¤ ë¿ë§ ìëë¼, ëí "
+"<literal>DomesticCat</literal>ê³¼ ê°ì ìë¸í´ëì¤ë¤ ëí ë°ííë¤. Hibernate "
+"ì§ìë¤ì <literal>from</literal> ì ë´ì <emphasis>ììì</emphasis> ìë° í´"
+"ëì¤ë ì¸í°íì´ì¤ë¥¼ ëª
ëª
í ì ìë¤. ì§ìë ê·¸ í´ëì¤ë¥¼ íì¥íê±°ë ê·¸ ì¸í°íì´"
+"ì¤ë¥¼ 구ííë 모ë ìì í´ëì¤ë¤ì ì¸ì¤í´ì¤ë¤ì ë°íí ê²ì´ë¤. ë¤ì ì§ìë 모"
+"ë ìì ê°ì²´ë¤ì ë°íí ê²ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+"ì¸í°íì´ì¤ <literal>Named</literal>ë ì¬ë¬ ê°ì§ ìì í´ëì¤ë¤ì ìí´ êµ¬íë "
+"ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"These last two queries will require more than one SQL <literal>SELECT</"
+"literal>. This means that the <literal>order by</literal> clause does not "
+"correctly order the whole result set. It also means you cannot call these "
+"queries using <literal>Query.scroll()</literal>."
+msgstr ""
+"ì´ë¤ ë§ì§ë§ ë ê°ì ì§ìë¤ì íë ì´ìì SQL <literal>SELECT</literal>를 íì"
+"ë¡ í ê²ìì ë
¸í¸íë¼. ì´ê²ì <literal>order by</literal> ì ì´ ì ííê² ì ì²´ "
+"ê²°ê³¼ ì
ì ììì§ì°ì§ ììì ì미íë¤.(ê·¸ê²ì ëí ë¹ì ì´ <literal>Query."
+"scroll()</literal>ì ì¬ì©íì¬ ì´ë¤ ì§ìë¤ì í¸ì¶í ì ììì ì미íë¤)."
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr "where ì "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>where</literal> clause allows you to refine the list of "
+"instances returned. If no alias exists, you can refer to properties by name:"
+msgstr ""
+"<literal>where</literal> ì ì ë°íë ì¸ì¤í´ì¤ë¤ì 목ë¡ì ì íìí¤ë ê²ì ë¹ì "
+"ìê² íì©í´ì¤ë¤. ë§ì¼ aliasê° ì¡´ì¬íì§ ìì ê²½ì°, ë¹ì ì ì´ë¦ì ìí´ íë¡í¼í°"
+"ë¤ì 참조í ìë ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr ""
+"ë§ì¼ í ê°ì aliasê° ì¡´ì¬í ê²½ì°, íëì ììì´ê° ë¶ì íë¡í¼í° ì´ë¦ì ì¬ì©í"
+"ë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr "ë 'Fritz'ë¡ ëª
ëª
ë <literal>Cat</literal>ì ì¸ì¤í´ì¤ë¤ì ë°ííë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"returns all instances of <literal>Foo</literal> with an instance of "
+"<literal>bar</literal> with a <literal>date</literal> property equal to the "
+"<literal>startDate</literal> property of the <literal>Foo</literal>. "
+"Compound path expressions make the <literal>where</literal> clause extremely "
+"powerful. Consider the following:"
+msgstr ""
+"ë <literal>Foo</literal>ì <literal>startDate</literal> íë¡í¼í°ì ëì¼í "
+"<literal>date</literal> íë¡í¼í°ë¥¼ ê°ì§ <literal>bar</literal>ì ì¸ì¤í´ì¤ê° "
+"ì¡´ì¬íë <literal>Foo</literal>ì 모ë ì¸ì¤í´ì¤ë¥¼ ë°íí ê²ì´ë¤. í©ì± ê²½ë¡ í"
+"íìë¤ì <literal>where</literal> ì ì ë§¤ì° ê°ë ¥íê² ë§ë¤ì´ì¤ë¤. ë¤ìì ê²í "
+"íì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This query translates to an SQL query with a table (inner) join. For example:"
+msgstr ""
+"ì´ ì§ìë í
ì´ë¸ (inner) joinì ê°ì§ SQL ì§ìë¡ ë²ìëë¤. ë§ì¼ ë¹ì ì´ ë¤ìê³¼ "
+"ê°ì ì´ë¤ ê²ì ìì±íë¤ë©´"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr ""
+"ë¹ì ì SQLìì ë¤ ê°ì í
ì´ë¸ joinë¤ì íìë¡ íë íëì ì§ìë¡ ëë¼ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>=</literal> operator can be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+"<literal>=</literal> ì°ì°ìë íë¡í¼í°ë¤ ë¿ë§ ìëë¼ ëí ì¸ì¤í´ì¤ë¤ì ë¹êµí"
+"ëë° ì¬ì©ë ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> can be used to "
+"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
+"identifier-property\" /> for more information."
+msgstr ""
+"í¹ë³í íë¡í¼í°(ì문ì) <literal>id</literal>ë ê°ì²´ì ì ì¼ ìë³ì를 참조íë"
+"ë° ì¬ì©ë ì ìë¤. ì¶ê° ì ë³´ë <xref linkend=\"queryhql-identifier-property"
+"\"/>를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr "ë ë²ì§¸ ì§ìê° í¨ì¨ì ì´ë¤. í
ì´ë¸ joinì´ íì ìë¤!"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"composite(í©ì±) ìë³ìë¤ì íë¡í¼í°ë¤ì´ ëí ì¬ì©ë ì ìë¤. "
+"<literal>Person</literal>ì´ <literal>country</literal>ì "
+"<literal>medicareNumber</literal>ë¡ êµ¬ì±ë composite ìë³ì를 ê°ëë¤ê³ ê°ì í"
+"ì. ìë³ì ìì±ë¤ì 참조íë ê²ê³¼ ê´ë ¨ë ì¶ê° ì ë³´ë ë¤ì <xref linkend="
+"\"queryhql-identifier-property\"/>를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr "ë¤ì íë², ë ë²ì§¸ ì§ìë í
ì´ë¸ joinì íìë¡ íì§ ìëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
+"regarding referencing identifier properties)"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The special property <literal>class</literal> accesses the discriminator "
+"value of an instance in the case of polymorphic persistence. A Java class "
+"name embedded in the where clause will be translated to its discriminator "
+"value."
+msgstr ""
+"ë§ì°¬ê°ì§ë¡, í¹ë³í íë¡í¼í° <literal>class</literal>ë ë¤íì ì¸ ììì±"
+"(polymorphic persistence)ì ê²½ì°ì ì¸ì¤í´ì¤ì íë³ì(discriminator) ê°ì ì¡ì¸"
+"ì¤íë¤. where ì ìì ì½ì
ë Java í´ëì¤ ì´ë¦ì ê·¸ê²ì íë³ì(discriminator) "
+"ê°ì¼ë¡ ë³íë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also use components or composite user types, or properties of said "
+"component types. See <xref linkend=\"queryhql-components\" /> for more "
+"information."
+msgstr ""
+"ë¹ì ì ëí ì»´í¬ëí¸ë¤ ëë composite ì¬ì©ì íì
ë¤, ëë ëª
ëª
ë ì»´í¬ëí¸ í"
+"ì
ë¤ì ìì±ë¤ì ì¬ì©í ìë ìë¤. ìì¸í ê²ì <xref linkend=\"queryhql-"
+"components\"/>를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal> that allows you to express a join in the following "
+"way (where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal><any></literal>):"
+msgstr ""
+"\"ììì\" íì
ì ë¤ì ë°©ë²ì¼ë¡ joinì íííë ê²ì ì°ë¦¬ìê² íì©í´ì£¼ë, í¹"
+"ë³í íë¡í¼í°ë¤ <literal>id</literal>ì <literal>class</literal>를 ê°ëë¤(ì¬"
+"기ì <literal>AuditLog.item</literal>ì <literal><any></literal>ë¡ ë§¤í"
+"ë íë¡í¼í°ì´ë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>log.item.class</literal> and <literal>payment.class</literal> "
+"would refer to the values of completely different database columns in the "
+"above query."
+msgstr ""
+"<literal>log.item.class</literal>ì <literal>payment.class</literal>ë ìì "
+"ì§ì ë´ìì ìì í ë¤ë¥¸ ë°ì´í°ë² ì´ì¤ 컬ë¼ë¤ì ê°ë¤ì 참조í ê²ìì ë
¸í¸íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr "ííìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Expressions used in the <literal>where</literal> clause include the "
+"following:"
+msgstr ""
+"<literal>where</literal> ì ìì íì©ëë ííìë¤ì ë¹ì ì´ SQLë¡ ìì±í ì "
+"ìë ëë¶ë¶ì ì¢
ë¥ì ê²ë¤ì í¬í¨íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr "ì°ì ì°ì°ìë¤ <literal>+, -, *, /</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
+"literal>"
+msgstr ""
+"ë°ì´ë리 ë¹êµ ì°ì°ìë¤ <literal>=, >=, <=, <>, !=, like</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr "ë
¼ë¦¬ ì°ì°ë¤ <literal>and, or, not</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr "그룹íì ëíë´ë ê´í¸ë¤ <literal>( )</literal>, indicating grouping"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+"\"ê°ë¨í\" ê²½ì°, <literal>case ... when ... then ... else ... end</literal>, "
+"ê·¸ë¦¬ê³ \"ê²ìì¸\" ê²½ì°, <literal>case when ... then ... else ... end</"
+"literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
+"</literal>"
+msgstr ""
+"문ìì´ ì°ê²° <literal>...||...</literal> or <literal>concat(...,...)</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"and <literal>year(...)</literal>"
+msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>,"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
+"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
+"</literal>"
+msgstr ""
+"EJB-QL 3.0ì ìí´ ì ìë ììì í¨ì ëë ì¤í¼ë ì´í°: <literal>substring(), "
+"trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), "
+"mod()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr "<literal>coalesce()</literal> ê·¸ë¦¬ê³ <literal>nullif()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>str()</literal> for converting numeric or temporal values to a "
+"readable string"
+msgstr ""
+"numeric ê°ë¤ì´ë temporal ê°ë¤ì ê°ë
ì± ìë 문ìì´ë¡ ë³íìí¤ë <literal>str"
+"()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cast(... as ...)</literal>, where the second argument is the name "
+"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
+"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
+"the underlying database"
+msgstr ""
+"<literal>cast(... as ...)</literal>, ì¬ê¸°ì ëë² ì§¸ ìê·ë¨¼í¸ë Hibernate íì
"
+"ì ì´ë¦ì´ê³ , ANSI <literal>cast()</literal>ì <literal>extract()</literal>ê° "
+"ê¸°ë° ë°ì´í°ë² ì´ì¤ì ìí´ ì§ìë ê²½ì°ìë <literal>extract(... from ...)</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the HQL <literal>index()</literal> function, that applies to aliases of a "
+"joined indexed collection"
+msgstr ""
+"ì¡°ì¸ë ì¸ë±ì±ë ì½ë ì
ì aliasë¤ì ì ì©ëë, HQL <literal>index()</literal> "
+"í¨ì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL functions that take collection-valued path expressions: <literal>size(), "
+"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
+"special <literal>elements()</literal> and <literal>indices</literal> "
+"functions that can be quantified using <literal>some, all, exists, any, in</"
+"literal>."
+msgstr ""
+"ì½ë ì
ê°ì ê°ì§ ê²½ë¡ ííìë¤ì ì·¨íë HQL í¨ìë¤ : <literal>some, all, "
+"exists, any, in</literal>ì ì¬ì©íì¬ ì ëí ë ì ìë í¹ë³í "
+"<literal>elements()</literal>ì <literal>indices</literal> í¨ìë¤ê³¼ í¨ê» "
+"<literal>size(), minelement(), maxelement(), minindex(), maxindex()</"
+"literal>."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</"
+"literal>, <literal>sin()</literal>ê³¼ ê°ì´ ììì ë°ì´í°ë² ì´ì¤ ì§ì SQL ì¤ì¹¼"
+"ë¼ í¨ì"
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr "JDBC-ì¤íì¼ ìì¹ íë¼ë¯¸í°ë¤ <literal>?</literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"and <literal>:x1</literal>"
+msgstr ""
+"ëª
ëª
ë íë¼ë¯¸í°ë¤ <literal>:name</literal>, <literal>:start_date</literal>, "
+"<literal>:x1</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+"SQL 리í°ë´ë¤ <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+"Java <literal>public static final</literal> ììë¤. <literal>eg.Color.TABBY</"
+"literal>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr ""
+"<literal>in</literal> ê³¼ <literal>between</literal>ì ë¤ìê³¼ ê°ì´ ì¬ì©ë ì "
+"ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr "ê·¸ë¦¬ê³ ë¶ì íë¤ì ë¤ìê³¼ ê°ì´ ìì±ë ì ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Similarly, <literal>is null</literal> and <literal>is not null</literal> can "
+"be used to test for null values."
+msgstr ""
+"ë§ì°¬ê°ì§ë¡, <literal>is null</literal>ê³¼ <literal>is not null</literal>ì "
+"null ê°ë¤ì í
ì¤í¸íëë° ì¬ì©ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Booleans can be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+"Booleanë¤ì Hibernate êµ¬ì± ë´ì HQL ì§ì ì¹íë¤ì ì ì¸í¨ì¼ë¡ì¨ ííìë¤ ë´ì "
+"ì½ê² ì¬ì©ë ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
+msgstr ""
+"ì´ê²ì í¤ìë <literal>true</literal>ì <literal>false</literal> í¤ìëë¤ì "
+"ì´ HQLë¡ë¶í° ë²ìë SQLìì 리í°ë´ <literal>1</literal>ê³¼ <literal>0</"
+"literal>ì¼ë¡ ëì²´ë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can test the size of a collection with the special property "
+"<literal>size</literal> or the special <literal>size()</literal> function."
+msgstr ""
+"ë¹ì ì í¹ë³í íë¡í¼í° <literal>size</literal>ë¡ì ëë í¹ë³í <literal>size"
+"()</literal> í¨ìë¡ì ì½ë ì
ì ì¬ì´ì¦ë¥¼ í
ì¤í¸í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For indexed collections, you can refer to the minimum and maximum indices "
+"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
+"Similarly, you can refer to the minimum and maximum elements of a collection "
+"of basic type using the <literal>minelement</literal> and "
+"<literal>maxelement</literal> functions. For example:"
+msgstr ""
+"ì¸ë±ì±ë ì½ë ì
ë¤ì ëí´, ë¹ì ì<literal>minindex</literal>ì "
+"<literal>maxindex</literal> í¨ìë¤ì ì¬ì©íì¬ ìµì ì¸ë±ì¤ê³¼ ìµë ì¸ë±ì¤ë¥¼ ì°¸"
+"ì¡°í ì ìë¤. ì ì¬íê² ë¹ì ì <literal>minelement</literal>ì "
+"<literal>maxelement</literal> í¨ì를 ì¬ì©íì¬ ê¸°ë³¸ íì
ì ê°ì§ ì½ë ì
ì ìµì "
+"ìì ë° ìµë ìì를 참조í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The SQL functions <literal>any, some, all, exists, in</literal> are "
+"supported when passed the element or index set of a collection "
+"(<literal>elements</literal> and <literal>indices</literal> functions) or "
+"the result of a subquery (see below):"
+msgstr ""
+"SQL í¨ìë¤ <literal>any, some, all, exists, in</literal>ì ì½ë ì
ì ìì ë"
+"ë ì¸ë±ì¤ ì¸í¸(<literal>elements</literal> í¨ìì <literal>indices</literal> "
+"í¨ì), ëë ìë¸ì§ìì 결과를 ì ë¬íì ë ì§ìëë¤(ìë를 ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that these constructs - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - can only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+"ì´ë¤ 구조체ë¤-<literal>size</literal>, <literal>elements</literal>, "
+"<literal>indices</literal>, <literal>minindex</literal>, <literal>maxindex</"
+"literal>, <literal>minelement</literal>, <literal>maxelement</literal>-ë "
+"Hibernate3ìì where ì ë´ììë§ ì¬ì©ë ê²ìì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Elements of indexed collections (arrays, lists, and maps) can be referred to "
+"by index in a where clause only:"
+msgstr ""
+"ì¸ë±ì± ë ì½ë ì
ë¤ì ììë¤(ë°°ì´ë¤, 리ì¤í¸ë¤, mapë¤)ì ì¸ë±ì¤ì ìí´ ì°¸ì¡°ë "
+"ì ìë¤(where ì ìììë§):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> can even be an arithmetic "
+"expression:"
+msgstr "<literal>[]</literal> ë´ë¶ì ííìì ì°ì ííì¤ì¼ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function for "
+"elements of a one-to-many association or collection of values."
+msgstr ""
+"HQLì ëí one-to-many ì°ê´ ëë ê°ë¤ì ê°ì§ ì½ë ì
ì ììë¤ì ëí´ ë¯¸ë¦¬ ë§ë¤"
+"ì´ì§ <literal>index()</literal> í¨ì를 ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr "기본 ë°ì´í°ë² ì´ì¤ì ìí´ ì ê³µëë Scalar SQL í¨ìë¤ì´ ì¬ì©ë ìë ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Consider how much longer and less readable the following query would be in "
+"SQL:"
+msgstr ""
+"ë¹ì ì´ ìì§ ì´ ëª¨ë ê²ì ë©ëíì§ ëª»íë¤ë©´, SQL ë´ìì ë¤ì ì§ìê° ê°ë
ì±ì´ "
+"ì¼ë§ë ë§ê³ ì ìì§ë¥¼ ìê°í´ë³´ë¼:"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr "<emphasis>íí¸</emphasis> : ë¤ìê³¼ ê°ì ì´ë¤ ê²"
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr "order by ì "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The list returned by a query can be ordered by any property of a returned "
+"class or components:"
+msgstr ""
+"ì§ìì ìí´ ë°íë 리ì¤í¸ë ë°íë í´ëì¤ ëë ì»´í¬ëí¸ë¤ì íë¡í¼í°ì ìí´ "
+"ìì(ordering)ì§ìì§ ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+"<literal>asc</literal> ìµì
ëë <literal>desc</literal> ìµì
ì ê°ê° ì¤ë¦ì°¨"
+"ì ëë ë´ë¦¼ì°¨ì ì ë ¬ì ëíë¸ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr "group by ì "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A query that returns aggregate values can be grouped by any property of a "
+"returned class or components:"
+msgstr ""
+"aggregate ê°ë¤ì ë°ííë ì§ìë ë°íë í´ëì¤ë ì»´í¬ëí¸ë¤ì íë¡í¼í°ì ì"
+"í´ ê·¸ë£¹ì§ìì§ ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr "ëí <literal>having</literal> ì ì´ íì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses if they are supported by "
+"the underlying database (i.e., not in MySQL)."
+msgstr ""
+"SQL í¨ìë¤ê³¼ ì§ê³ í¨ìë¤ì´ 기본 ë°ì´í°ë² ì´ì¤ì ìí´ ì§ìë ê²½ì°(ì를 ë¤ì´ "
+"MySQLì ì§ìëì§ ìëë¤) <literal>having</literal> ì ê³¼ <literal>order by</"
+"literal> ì ìì íì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Neither the <literal>group by</literal> clause nor the <literal>order by</"
+"literal> clause can contain arithmetic expressions. Hibernate also does not "
+"currently expand a grouped entity, so you cannot write <literal>group by "
+"cat</literal> if all properties of <literal>cat</literal> are non-"
+"aggregated. You have to list all non-aggregated properties explicitly."
+msgstr ""
+"<literal>group by</literal> ì ë <literal>order by</literal> ì ì´ë ê²ë ì°"
+"ì ííìë¤ì í¬í¨í ì ìë¤ë ì ì ë
¸í¸íë¼. ëí Hibernateë íì¬ ê·¸ë£¹ì§ì"
+"ì§ ìí°í°ë¥¼ íì¥íì§ ììì ë§ì¼ <literal>cat</literal>ì 모ë ìì±ë¤ì´ ì§ê³"
+"ëì§ ìì ê²½ì°ì ë¹ì ì´ <literal>group by cat</literal>ì ì¸ì ììì ë
¸í¸í"
+"ë¼. ë¹ì ì ëª
ìì ì¼ë¡ 모ë ì§ê³ëì§ ìë ìì±ë¤ì 리ì¤í¸í´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr "ìë¸ì§ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For databases that support subselects, Hibernate supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+"subselectë¤ì ì§ìíë ë°ì´í°ë² ì´ì¤ë¤ì ê²½ì°, Hibernateë ì§ìë¤ ë´ì ìë¸ì§"
+"ìë¤ì ì§ìíë¤. ìë¸ì§ìë ê´í¸ë¡ 묶ì¬ì ¸ì¼ íë¤(ì주 SQL ì§ê³í¨ì í¸ì¶ì ì"
+"í´). ì¬ì§ì´ ìë¡ ìê´ë ìë¸ì§ìë¤(ì¸ë¶ ì§ì ë´ìì alias를 참조íë ìë¸ì§ì"
+"ë¤)ì´ íì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr ""
+"HQL ìë¸ì§ìë¤ì´ select ì ëë where ì ë´ììë§ ì¼ì´ë ì ììì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
+msgstr ""
+"ìë¸ì§ìë¤ì ëí <literal>row value constructor</literal> 구문ì íì©í ì "
+"ìë¤. ìì¸í ê²ì <xref linkend=\"queryhql-tuple\"/>를 ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr "HQL ìì ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate queries can be quite powerful and complex. In fact, the power of "
+"the query language is one of Hibernate's main strengths. The following "
+"example queries are similar to queries that have been used on recent "
+"projects. Please note that most queries you will write will be much simpler "
+"than the following examples."
+msgstr ""
+"Hibernate ì§ìë¤ì ë§¤ì° ê°ë ¥íê³ ë³µì¡í ì ìë¤. ì¬ì¤, ì§ì ì¸ì´ì íì "
+"Hibernateì 주ì í매 í¬ì¸í¸ë¤ ì¤ íëì´ë¤. ë¤ìì ë´ê° ìµê·¼ì íë¡ì í¸ìì "
+"ì¬ì©íë ì§ìë¤ê³¼ ë§¤ì° ì ì¬í ëªëª ìì ì§ìë¤ì´ë¤. ë¹ì ì´ ìì±íê² ë ëë¶ë¶"
+"ì ì§ìë¤ì ì´ê²ë¤ë³´ë¤ í¨ì¬ ê°ë¨íë¤ë ì ì ë
¸í¸íë¼!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following query returns the order id, number of items, the given minimum "
+"total value and the total value of the order for all unpaid orders for a "
+"particular customer. The results are ordered by total value. In determining "
+"the prices, it uses the current catalog. The resulting SQL query, against "
+"the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
+"<literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</"
+"literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr ""
+"ë¤ì ì§ìë í¹ì ê³ ê°ì ëí 모ë ì§ë¶ëì§ ìì 주문ë¤ì 주문 id, í목ë¤ì ê°"
+"ì, ê·¸ë¦¬ê³ ì£¼ë¬¸ì ì ì²´ í©ê³ê° ê·¸ë¦¬ê³ ì£¼ì´ì§ ìµì ì ì²´ í©ê³ë¥¼ ì ì²´ í©ê³ê°ì ë°"
+"ë¼ ê²°ê³¼ë¤ì ììì§ìì ë°ííë¤. ê°ê²© ê²°ì ì ìì´, ê·¸ê²ì íì¬ì ì¹´íë¡ì ì¬"
+"ì©íë¤. ê·ê²°ëë SQL ì§ìë <literal>ORDER</literal>, <literal>ORDER_LINE</"
+"literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal>, "
+"<literal>PRICE</literal> í
ì´ë¸ë¤ì ëí ë¤ ê°ì inner ì¡°ì¸ë¤ê³¼ í ê°ì(ìê´"
+"ì§ìì§ì§ ìì) subselect를 ê°ê³ ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+"괴물 ê°ì ê²! ì¤ì ë¡ ì¤ ìíìì, ëë ìë¸ì§ìë¤ì ë§¤ì° ì¢ìíì§ ììì, ë"
+"ì ì§ìë ì¤ì ë¡ ë¤ìê³¼ ê°ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+"ë¤ì ì§ìë íì¬ ì¬ì©ìì ìí´ ê°ì¥ ìµê·¼ì ìí ë³ê²½ì´ íí´ì¡ë "
+"<literal>AWAITING_APPROVAL</literal> ìíì ìë 모ë ì§ë¶ë¤ì ì ì¸í, ê°ê°"
+"ì ìíì ìë ì§ë¶ë¤ì ê°ì를 ì¹´ì´í¸ íë¤. ê·¸ê²ì <literal>PAYMENT</"
+"literal>, <literal>PAYMENT_STATUS</literal>, <literal>PAYMENT_STATUS_CHANGE</"
+"literal> í
ì´ë¸ë¤ì ëí ë ê°ì inner ì¡°ì¸ë¤ê³¼ íëì ìê´ê´ê³ ì§ìì§ "
+"subselect를 ê°ì§ SQL ì§ìë¡ ë³íëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the <literal>statusChanges</literal> collection was mapped as a list, "
+"instead of a set, the query would have been much simpler to write."
+msgstr ""
+"ë§ì¼ ë´ê° <literal>statusChanges</literal> ì½ë ì
ì setê° ìë listë¡ ë§¤íí"
+"ë¤ë©´, ê·¸ ì§ìë ìì±íê¸°ê° í¨ì¬ ë ê°ë¨íì ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+"ë¤ì ì§ìë íì¬ì ì¬ì©ìê° ìí´ ìë ì¡°ì§ì 모ë ê³ì ë¤ê³¼ ì§ë¶ëì§ ìì ì§ë¶"
+"ë¤ì ë°ííëë° MS SQL Server <literal>isNull()</literal> í¨ì를 ì¬ì©íë¤. ê·¸"
+"ê²ì <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, "
+"<literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, "
+"<literal>ORGANIZATION</literal>, <literal>ORG_USER</literal> í
ì´ë¸ë¤ì ëí "
+"ì¸ ê°ì inner ì¡°ì¸ë¤, íëì outer ì¡°ì¸, ê·¸ë¦¬ê³ íëì subselect를 ê°ì§ í ê°"
+"ì SQL ì§ìë¡ ë²ìëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+"ëªëª ë°ì´í°ë² ì´ì¤ë¤ì ê²½ì°, ì°ë¦¬ë (ìê´ê´ê³ ì§ìì§) subselect를 ìì¨ íìê° "
+"ìì ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr "ëë updateì delete"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
+"<literal>insert ... select ...</literal> statements. See <xref linkend="
+"\"batch-direct\" /> for more information."
+msgstr ""
+"HQLì ì´ì <literal>update</literal>, <literal>delete</literal> ê·¸ë¦¬ê³ "
+"<literal>insert ... select ...</literal> 문ì¥ë¤ì ì§ìíë¤. ìì¸í ê²ì "
+"<xref linkend=\"batch-direct\"/>를 ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr "íë¤ & í¸ë¦ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr ""
+"ë¹ì ì ì¤ì ë¡ ì§ì ê²°ê³¼ë¤ì ë°ííì§ ìê³ ì ê·¸ê²ë¤(ì§ì ê²°ê³¼ë¤)ì ê°ì를 ì¹´ì´"
+"í¸í ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+"ì½ë ì
ì í¬ê¸°ì ë°ë¼ 결과를 ìì(ordering)ì§ì°ë ¤ë©´, ë¤ì ì§ì를 ì¬ì©íë¼:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+"ë§ì¼ ë¹ì ì ë°ì´í°ë² ì´ì¤ê° subselectë¤ì ì§ìí ê²½ì°, ë¹ì ì ë¹ì ì ì§ìì "
+"where ì ë´ì selection ì¬ì´ì¦ì ëí ì¡°ê±´ì ìì¹ì§ì¸ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr ""
+"ë§ì¼ ë¹ì ì ë°ì´í°ë² ì´ì¤ê° subselect를 ì§ìíì§ ìì ê²½ì°, ë¤ì ì§ì를 ì¬ì©í"
+"ë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As this solution cannot return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+"ì´ í´ê²°ì±
ì´ inner ì¡°ì¸ ë문ì 0ê°ì ë©ìì§ë¥¼ ê°ì§ <literal>User</literal>를 "
+"ë°íí ì ìì¼ë¯ë¡, ë¤ì íìì´ ëí ì ì©íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr ""
+"íëì JavaBeanì íë¡í¼í°ë¤ì ëª
ëª
ë ì§ì íë¼ë¯¸í°ë¤ì ë°ì¸ëë ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections are pageable by using the <literal>Query</literal> interface "
+"with a filter:"
+msgstr ""
+"ì½ë ì
ë¤ì íí°ë¥¼ ê°ì§ <literal>Query</literal> ì¸í°íì´ì¤ë¥¼ ì¬ì©íì¬ ìª¼ë§¤ê¹"
+"íë ê²ì´ ê°ë¥íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr ""
+"ì½ë ì
ììë¤ì ì§ì íí°ë¥¼ ì¬ì©íì¬ ìì(ordering)ì§ìì§ê±°ë 그룹ì§ìì§ ì "
+"ë ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr "ë¹ì ì ì½ë ì
ì ì´ê¸°í íì§ ìê³ ì ê·¸ê²(ì½ë ì
)ì í¬ê¸°ë¥¼ ì°¾ì ì ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr "ì»´í¬ëí¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Components can be used similarly to the simple value types that are used in "
+"HQL queries. They can appear in the <literal>select</literal> clause as "
+"follows:"
+msgstr ""
+"ì»´í¬ëí¸ë¤ì ë¨ì§ ê°ë¨í ê° ì íë¤ì´ HQL ì§ìë¤ ë´ì ì¬ì©ë ì ìë 모ë ë°©ë²"
+"ì¼ë¡ ì¬ì©ë ì ìë¤. ê·¸ê²ë¤ì <literal>select</literal> ì ë´ì ëíë ì ì"
+"ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"where the Person's name property is a component. Components can also be used "
+"in the <literal>where</literal> clause:"
+msgstr ""
+"ì¬ê¸°ì Personì name ìì±ì ì»´í¬ëí¸ì´ë¤. ì»´í¬ëí¸ë¤ì ëí <literal>where</"
+"literal> ì ë´ì ì¬ì©ë ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr "ì»´í¬ëí¸ë¤ì ëí <literal>order by</literal> ì ë´ì ì¬ì©ë ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+msgstr ""
+"ì»´í¬ëí¸ë¤ì ëí ë ë¤ë¥¸ ê³µíµì ì¸ ì¬ì©ì <xref linkend=\"queryhql-tuple"
+"\">row value constructors</xref>ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr "Row value constructor 구문"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
+"syntax, sometimes referred to AS <literal>tuple</literal> syntax, even "
+"though the underlying database may not support that notion. Here, we are "
+"generally referring to multi-valued comparisons, typically associated with "
+"components. Consider an entity Person which defines a name component:"
+msgstr ""
+"HQLì ANSI SQL <literal>row value constructor</literal> 구문(ì¢
ì¢
"
+"<literal>tuple</literal> 구문ì´ë¼ ëª
ëª
ëë¤)ì ì¬ì©ì ì§ìíë¤. ë¹ë¡ ë°ì´í°ë² "
+"ì´ì¤ê° ê·¸ ê°ë
ì ì§ìíì§ ììì§ë¼ë ê·¸ë¬íë¤. ì¬ê¸°ì ì°ë¦¬ë ì íì ì¼ë¡ ì»´í¬"
+"ëí¸ë¤ê³¼ ì°ê´ëì´ ìë ë¤ì¤-ê° ë¹êµë¤ì ì¼ë°ì ì¼ë¡ ì¸ê¸íê³ ìë¤. name ì»´í¬ë"
+"í¸ë¥¼ ì ìíë Person ìí°í°ë¥¼ ê²í íì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"That is valid syntax although it is a little verbose. You can make this more "
+"concise by using <literal>row value constructor</literal> syntax:"
+msgstr ""
+"ë¹ë¡ ì½ê° ì¥í©ì¤ë½ì§ë§ ê·¸ê²ì ì í¨í 구문ì´ë¤. ì´ê²ì ì½ê° ë ê°ê²°íê² ë§ë¤"
+"ê³ <literal>row value constructor</literal> 구문ì ì¬ì©íë ê²ì´ ì¢ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It can also be useful to specify this in the <literal>select</literal> "
+"clause:"
+msgstr ""
+"<literal>select</literal>ì ë´ì ì´ê²ì ì§ì íë ê²ì´ ëí ì ì©í ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Using <literal>row value constructor</literal> syntax can also be beneficial "
+"when using subqueries that need to compare against multiple values:"
+msgstr ""
+"<literal>row value constructor</literal> 구문ì ì¬ì©íë ë ë¤ë¥¸ ê²½ì°ë ë¤ì¤ "
+"ê°ë¤ì ëí´ ë¹êµí íìê° ìë ìë¸ ì§ìë¤ì ì¬ì©í ëì´ë¤:"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ë§ì¼ ë¹ì ì´ ì´ êµ¬ë¬¸ì ì¬ì©íê³ ì ìí ê²½ì°ì ê³ ë ¤í´ì¼ í í ê°ì§ë ì§ìê° ë©"
+"íë°ì´í° ë´ì ìë ì»´í¬ëí¸ ìë¸-ìì±ë¤ì ììì ì¢
ìë ê²ì´ë¼ë ì ì´ë¤."
+
+#~ 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 "
+#~ "of the query."
+#~ msgstr ""
+#~ "ëê° ë¹ì ì í ê°ì <emphasis>alias</emphasis>를 í ë¹í íìê° ìì ê²ì´"
+#~ "ë¤. ìëíë©´ ë¹ì ì ì§ìì ë¤ë¥¸ ë¶ë¶ë¤ìì <literal>Cat</literal>ì 참조í"
+#~ "ê³ ì ìí ê²ì´ê¸° ë문ì´ë¤."
+
+#~ msgid "or as an actual typesafe Java object,"
+#~ msgstr "ëë ì¤ì typesafe ìë° ê°ì²´ë¡ì,"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_sql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_sql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/query_sql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,969 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr "Native SQL"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also express queries in the native SQL dialect of your database. "
+"This is useful if you want to utilize database-specific features such as "
+"query hints or the <literal>CONNECT</literal> keyword in Oracle. It also "
+"provides a clean migration path from a direct SQL/JDBC based application to "
+"Hibernate."
+msgstr ""
+"ë¹ì ì ëí ë¹ì ì ë°ì´í°ë² ì´ì¤ì native SQL dialectë¡ ì§ìë¤ì ííí ìë "
+"ìë¤. ë¹ì ì´ ì¤ë¼í´ì ì§ì íí¸ë¤ ëë <literal>CONNECT</literal> í¤ìëì ê°"
+"ì ë°ì´í°ë² ì´ì¤ ì§ì ì ì¸ í¹ì§ë¤ì íì©íê³ ì ìí ê²½ì°ì ì´ê²ì´ ì ì©íë¤. ê·¸"
+"ê²ì ëí ì§ì ì ì¸ SQL/JDBC 기ë°ì ì´í리ì¼ì´ì
ì¼ë¡ë¶í° Hibernateë¡ì ë³´ë¤ ëª
"
+"ë£í ì´ì ê²½ë¡ë¥¼ ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 allows you to specify handwritten SQL, including stored "
+"procedures, for all create, update, delete, and load operations."
+msgstr ""
+"Hibernate3ì ëí 모ë create, update, delete, load ì¤í¼ë ì´ì
ë¤ì ëí´ (ë´"
+"ì¥ íë¡ìì ë¤ì í¬í¨íì¬) ìì¼ë¡ ìì±ë SQLì ì§ì íë ê²ì ë¹ì ìê² íì©í´ì¤"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr "<literal>SQLQuery</literal> ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Execution of native SQL queries is controlled via the <literal>SQLQuery</"
+"literal> interface, which is obtained by calling <literal>Session."
+"createSQLQuery()</literal>. The following sections describe how to use this "
+"API for querying."
+msgstr ""
+"native SQL ì§ìë¤ì ì¤íì <literal>SQLQuery</literal> ì¸í°íì´ì¤ë¥¼ íµí´ ì ì´"
+"ëë©°, ê·¸ê²ì <literal>Session.createSQLQuery()</literal>ì í¸ì¶íì¬ íëë"
+"ë¤. ë¤ìì ì´ API를 ì§ìì ì¬ì©íë ë°©ë²ì ì¤ëª
íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr "ì¤ì¹¼ë¼ ì§ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr "ê°ì¥ 기본ì ì¸ SQL ì§ìë ì¤ì¹¼ë¼ë¤(ê°ë¤)ì 목ë¡ì ì»ë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"These will return a List of Object arrays (Object[]) with scalar values for "
+"each column in the CATS table. Hibernate will use ResultSetMetadata to "
+"deduce the actual order and types of the returned scalar values."
+msgstr ""
+"ì´ê²ë¤ì ëë¤ CATS í
ì´ë¸ ë´ì ìë ê°ê°ì 컬ë¼ì ëí ì¤ì¹¼ë¼ ê°ë¤ì ê°ì§ "
+"Object ë°°ì´ë¤ì List를 ë°íí ê²ì´ë¤. Hibernateë ë°íëë ì¤ì¹¼ë¼ ê°ë¤ì ì¤"
+"ì ììì íì
ë¤ì ëì¶íëë° ResultSetMetadata를 ì¬ì©í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To avoid the overhead of using <literal>ResultSetMetadata</literal>, or "
+"simply to be more explicit in what is returned, one can use "
+"<literal>addScalar()</literal>:"
+msgstr ""
+"<literal>ResultSetMetadata</literal> ì¬ì©ì ì¤ë²í¤ë를 í¼íê±°ë ê°ë¨íê²ë ë°"
+"íëë ê²ì ë³´ë¤ ëª
ìì ì´ê²ë í기 ìí´ ì°ë¦¬ë <literal>addScalar()</literal>"
+"를 ì¬ì©í ì ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr "ì´ ì§ìë ë¤ìì ì§ì íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr "SQL ì§ì 문ìì´"
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr "ë°íí 컬ë¼ë¤ê³¼ íì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This will return Object arrays, but now it will not use "
+"<literal>ResultSetMetadata</literal> but will instead explicitly get the ID, "
+"NAME and BIRTHDATE column as respectively a Long, String and a Short from "
+"the underlying resultset. This also means that only these three columns will "
+"be returned, even though the query is using <literal>*</literal> and could "
+"return more than the three listed columns."
+msgstr ""
+"ì´ê²ì ì¬ì í Object ë°°ì´ë¤ì ë°íí ê²ì´ì§ë§, ì´ì ê·¸ê²ì "
+"<literal>ResultSetMetdata</literal>를 ì¬ì©íì§ ìì ê²ì´ê³ ëì ì ê¸°ë° ê²°ê³¼ì
"
+"ì¼ë¡ë¶í° ID, NAME ê·¸ë¦¬ê³ BIRTHDATE 컬ë¼ì ê°ê° Long, String ê·¸ë¦¬ê³ Short íì
"
+"ì¼ë¡ ë°íí ê²ì´ë¤. ì¬ì§ì´ ê·¸ ì§ìê° <literal>*</literal>를 ì¬ì©íê³ ì¸ ê°ì "
+"ì´ê±°ë 컬ë¼ë¤ ë³´ë¤ ë ë§ì ê²ì ë°íí ì ììì§ë¼ë, ì´ê²ì ëí ì¤ì§ ì´ë¤ "
+"ì¸ ê°ì 컬ë¼ë¤ ë§ì´ ë°íë ê²ìì ì미íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
+msgstr "ì¤ì¹¼ë¼ë¤ ì¤ ëªëª ëë ì ë¶ì ëí íì
ì 보를 ë¨ê²¨ëë ê²ì´ ê°ë¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is essentially the same query as before, but now "
+"<literal>ResultSetMetaData</literal> is used to determine the type of NAME "
+"and BIRTHDATE, where as the type of ID is explicitly specified."
+msgstr ""
+"ì´ê²ì 본ì§ì ì¼ë¡ ìì ê²ê³¼ ëì¼í ì§ìì´ì§ë§, ì´ì "
+"<literal>ResultSetMetaData</literal>ë IDì íì
ì´ ëª
ìì ì¼ë¡ ì§ì ëì´ ìì¼ë¯"
+"ë¡ NAMEê³¼ BIRTHDATEì íì
ì ê²°ì íëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"How the java.sql.Types returned from ResultSetMetaData is mapped to "
+"Hibernate types is controlled by the Dialect. If a specific type is not "
+"mapped, or does not result in the expected type, it is possible to customize "
+"it via calls to <literal>registerHibernateType</literal> in the Dialect."
+msgstr ""
+"java.sql.Types returned from ResultSetMetaDataì´ Hibernate íì
ë¤ë¡ 매íëë "
+"ë°©ë²ì Dialectì ìí´ ì ì´ëë¤. ë§ì¼ í¹ì íì
ì´ ë§¤íëì§ ìê±°ë ììëë í"
+"ì
ì¼ë¡ ê·ê²°ëì§ ìì ê²½ì°ì Dialect ë´ì ìë "
+"<literal>registerHibernateType</literal>ì ëí í¸ì¶ë¤ì íµí´ ê·¸ê²ì ë§ì¶¤í "
+"ìí¤ë ê²ì´ ê°ë¥íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr "Entity ì§ìë¤"
+
+#. 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 ""
+"ìì ì§ìë¤ì ì¤ì¹¼ë¼ ê°ë¤ì ë°ííë ê², ê²°ê³¼ì
ë¤ë¡ë¶í° \"ìëì\" ê°ë¤ì 기"
+"본ì ì¼ë¡ ë°ííë ê²ì ëí ì ë¶ìë¤. ë¤ìì <literal>addEntity()</literal>"
+"를 íµí´ native sql ì§ìë¡ë¶í° ìí°í° ê°ì²´ë¤ì ì»ë ë°©ë²ì ë³´ì¬ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr "ê·¸ ì§ìì ìí´ ë°íëë ìí°í°"
+
+#. 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ë¡ì 매íëë¤ê³ ê°ì íë©´, ìì ì§ìë¤ì "
+"ëë¤ ê°ê°ì ììê° íëì Cat ìí°í°ì¸ íëì List를 ë°íí ê²ì´ë¤."
+
+#. 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>ë¡ ë§¤í"
+"ëì´ ìë¤ë©´ ëí native ì§ì를 ì¤íí ë ì´ê²ì ë°ííë ê²ì´ íìì ê³ , ê·¸ ë°"
+"ì ê²½ì° ë°ì´í°ë² ì´ì¤ ì§ì ì ì¸ \"컬ë¼ì´ ë°ê²¬ëì§ ìììµëë¤\" ì¤ë¥ê° ì¼ì´ë ê²"
+"ì´ë¤. ì¶ê°ì ì¸ ì»¬ë¼ì * í기를 ì¬ì©í ìëì ì¼ë¡ ë°íë ê²ì´ì§ë§, ì°ë¦¬ë ë¤"
+"ì <literal>Dog</literal>ì ëí <literal>many-to-one</literal> ìì ììì²ë¼ "
+"ëª
ìì ì¸ ê²ì ë ì í¸íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr "ì´ê²ì cat.getDog()ì´ ê³ ì íê² ê¸°ë¥íë ê²ì íì©íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr "ì°ê´ë¤ê³¼ ì½ë ì
ë¤ì ì²ë¦¬í기"
+
+#. 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>ìì eagerly joinìí¤ë ê²ì´ ê°ì¼íë¤. ì´ê²ì "
+"<literal>addJoin()</literal> ë©ìë를 íµí´ íí´ì§ëë°, ê·¸ê²ì ì°ê´ì´ë ì½ë "
+"ì
ë´ìì ì¡°ì¸ìí¤ë ê²ì ë¹ì ìê² íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this example, the returned <literal>Cat</literal>'s will have their "
+"<literal>dog</literal> property fully initialized without any extra "
+"roundtrip to the database. Notice that you added an alias name (\"cat\") to "
+"be able to specify the target property path of the join. It is possible to "
+"do the same eager joining for collections, e.g. if the <literal>Cat</"
+"literal> had a one-to-many to <literal>Dog</literal> instead."
+msgstr ""
+"ì´ ìì ìì ë°íëë <literal>Cat</literal>ë¤ì ë°ì´í°ë² ì´ì¤ì ëí ììì í¹"
+"ë³í ë¼ì´ëí¬ë¦½ ìì´ ì ì²´ì ì¼ë¡ ì´ê¸°íë ê·¸ê²ë¤ì <literal>dog</literal> íë¡"
+"í¼í°ë¥¼ ê°ëë¤. ì°ë¦¬ê° joinì ëì íë¡í¼í° ê²½ë¡ë¥¼ ì§ì íë ê²ì ê°ë¥íëë¡ í"
+"기 ìí´ íëì alias ì´ë¦(\"cat\")ì ì¶ê°íìì 주ì§íë¼. ëì ì ì를 ë¤ì´ "
+"<literal>Cat</literal>ì´ <literal>Dog</literal>ì ëí´ one-to-many를 ê°ì§ ê²½"
+"ì°, ì½ë ì
ë¤ì ëí´ ëì¼í eager joiningì ííë ê²ì´ ê°ë¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"At this stage you are reaching the limits of what is possible with native "
+"queries, without starting to enhance the sql queries to make them usable in "
+"Hibernate. Problems can arise when returning multiple entities of the same "
+"type or when the default alias/column names are not enough."
+msgstr ""
+"ì´ ë¨ê³ìì ì°ë¦¬ë Hibernateìì native ì§ìë¤ì ì¬ì©ê°ë¥íëë¡ ë§ë¤ê¸° ìí´ "
+"sql ì§ìë¤ì ê°íìí¤ì§ë ê²ì ììíì§ ìê³ ìë native ì§ìë¤ë¡ì ê°ë¥í ê²"
+"ì íê³ì ëë¬íê³ ìë¤; 문ì ì ë¤ì ëì¼í íì
ì ì¬ë¬ ìí°í°ë¤ì ë°íí ë "
+"ëë ëí´í¸ alias/column ì´ë¦ë¤ì´ 충ë¶íì§ ìì ë ë°ìí기 ììíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr "ì¬ë¬ ê°ì ìí°í°ë¤ì ë°íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Until now, the result set column names are assumed to be the same as the "
+"column names specified in the mapping document. This can be problematic for "
+"SQL queries that join multiple tables, since the same column names can "
+"appear in more than one table."
+msgstr ""
+"ì§ê¸ê¹ì§ ê²°ê³¼ ì
ì»¬ë¼ ì´ë¦ë¤ì 매í 문ì ë´ì ì§ì ë ì»¬ë¼ ì´ë¦ë¤ê³¼ ëì¼íë¤"
+"ê³ ê°ì ëì´ ìë¤. ëì¼í 컬ë¼ì´ íë ì´ìì í
ì´ë¸ ë´ìì ëíë ì ì기 ë문"
+"ì, ì´ê²ì ì¬ë¬ ê°ì í
ì´ë¸ë¤ì ì¡°ì¸ìí¤ë SQL ì§ìë¤ì ëí´ ë¬¸ì ê° ë ì ì"
+"ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
+msgstr "ì»¬ë¼ alias 주ì
ì ë¤ì ì§ì(ìë§ ì¤í¨í ê²ì´ë¤)ìì íìíë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The query was intended to return two Cat instances per row: a cat and its "
+"mother. The query will, however, fail because there is a conflict of names; "
+"the instances are mapped to the same column names. Also, on some databases "
+"the returned column aliases will most likely be on the form \"c.ID\", \"c."
+"NAME\", etc. which are not equal to the columns specified in the mappings "
+"(\"ID\" and \"NAME\")."
+msgstr ""
+"ì´ ì§ìì 목ì ì ë¨ì í ë¹ ë ê°ì Cat ì¸ì¤í´ì¤ë¤, íëì cat ê·¸ë¦¬ê³ ê·¸ê²ì "
+"mother를 ë°ííë ê²ì´ë¤. ìëíë©´ ê·¸ê²ë¤ì´ ëì¼í ì»¬ë¼ ì´ë¦ë¤ë¡ 매íëì´ ì"
+"기 ë문ì ì´ê²ì ì¤í¨í ê²ì´ê³ ë°ì´ë² ì´ì¤ ììì ë°íë ì»¬ë¼ aliasë¤ì ìë§ "
+"매íë¤ ë´ì ì§ì ë 컬ë¼ë¤(\"ID\" ì \"NAME\")ê³¼ ê°ì§ ìì \"c.ID\", \"c.NAME"
+"\" ë±ì íìì¼ ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "The following form is not vulnerable to column name duplication:"
+msgstr "ë¤ì íìì ì»¬ë¼ ì´ë¦ ì¤ë³µ ì·¨ì½ì ì ê°ì§ ìëë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
+msgstr ""
+"ì»¬ë¼ aliasë¤ì 주ì
í기 ìí Hibernateì© placeholderë¤ì ê°ì§ SQL ì§ì 문ìì´"
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr "ê·¸ ì§ìì ìí´ ë°íëë ìí°í°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The {cat.*} and {mother.*} notation used above is a shorthand for \"all "
+"properties\". Alternatively, you can list the columns explicitly, but even "
+"in this case Hibernate injects the SQL column aliases for each property. The "
+"placeholder for a column alias is just the property name qualified by the "
+"table alias. In the following example, you retrieve Cats and their mothers "
+"from a different table (cat_log) to the one declared in the mapping "
+"metadata. You can even use the property aliases in the where clause."
+msgstr ""
+"ìì ì¬ì©ë {cat.*} ê³¼ {mother.*} í기ë \"모ë íë¡í¼í°ë¤\"ì ëí ìëµì´"
+"ë¤. ë¤ë¥¸ ë°©ë²ì¼ë¡ ë¹ì ì 컬ë¼ë¤ì ëª
ìì ì¼ë¡ ì´ê±°í ìë ìì§ë§, ì´ ê²½ì°ì ì°"
+"리ë Hibernateë¡ íì¬ê¸ SQL ì»¬ë¼ aliasë¤ì ê°ê°ì 컬ë¼ì 주ì
ìí¤ëë¡ ê°ì í"
+"ë¤. ì»¬ë¼ alias를 ìí placeholderë ë¨ì§ ê·¸ í
ì´ë¸ aliasì ìí´ ììë íë¡í¼"
+"í° ì´ë¦ì´ë¤. ë¤ì ìì ìì, ì°ë¦¬ë ë¤ë¥¸ í
ì´ë¸(cat_log)ë¡ë¶í° 매í ë©íë°ì´"
+"í° ë´ì ì ì¸ë ê²ì¼ë¡ì Catë¤ê³¼ ê·¸ê²ë¤ì motherë¤ì ê²ìíë¤. ì°ë¦¬ë ì°ë¦¬ê° "
+"ì¢ë¤ë©´ ì¬ì§ì´ where ì ë´ì íë¡í¼í° alias를 ì¬ì©í ìë ììì 주ì§íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr "alias 참조ì íë¡í¼í° 참조"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In most cases the above alias injection is needed. For queries relating to "
+"more complex mappings, like composite properties, inheritance "
+"discriminators, collections etc., you can use specific aliases that allow "
+"Hibernate to inject the proper aliases."
+msgstr ""
+"ëë¶ë¶ì ê²½ì°ì ìì alias 주ì
ì´ íìíì§ë§, composite íë¡í¼í°ë¤, ìì íë³"
+"ìë¤ (inheritance discriminators), ì½ë ì
ë±ê³¼ ê°ì ë³´ë¤ ë³µì¡í 매íë¤ê³¼ ê´ë ¨"
+"ë ì§ìë¤ì ê²½ì°ìë ê³ ì í aliasë¤ì 주ì
ìí¤ë ê²ì Hibernateìê² íì©íë"
+"ë° ì¬ì©ë ëªëª í¹ë³í aliasë¤ì´ ì¡´ì¬íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table shows the different ways you can use the alias "
+"injection. Please note that the alias names in the result are simply "
+"examples; each alias will have a unique and probably different name when "
+"used."
+msgstr ""
+"ë¤ì í
ì´ë¸ì alias 주ì
ì ì¬ì©íë ë¤ë¥¸ ê°ë¥ì±ë¤ì ë³´ì¬ì¤ë¤. ë
¸í¸: ê²°ê³¼ ë´"
+"ì ìë alias ì´ë¦ë¤ì´ ìì ì´ë©°, ê°ê°ì aliasë ì¬ì©ë ë íëì ì ì¼í ì´ë¦"
+"ê³¼ ìë§ ë¤ë¥¸ ì´ë¦ì ê°ì§ ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr "alias 주ì
ì´ë¦ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "ì¤ëª
"
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr "구문"
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr "ìì "
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr "ê°ë¨í íë¡í¼í°"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "{[aliasname].[propertyname]"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "A_NAME as {item.name}"
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr "composite íë¡í¼í°"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgstr "{[aliasname].[componentname].[propertyname]}"
+
+#. 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
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr "ìí°í°ì íë³ì(Discriminator)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "{[aliasname].class}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "DISC as {item.class}"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr "ìí°í°ì 모ë íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "{[aliasname].*}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>SQLQuery</literal> ì¬ì©í기"
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr "ì½ë ì
í¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "{[aliasname].key}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "ORGID as {coll.key}"
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr "ì½ë ì
ì id"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "{[aliasname].id}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "EMPID as {coll.id}"
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr "ì½ë ì
ì ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "{[aliasname].element}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "XID as {coll.element}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "property of the element in the collection"
+msgstr "ì½ë ì
ë´ì ìë ììì íë¡í¼í°"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "{[aliasname].element.[propertyname]}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "NAME as {coll.element.name}"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr "ì½ë ì
ë´ì ìë ììì 모ë íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "{[aliasname].element.*}"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "{coll.element.*}"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the the collection"
+msgstr "ì½ë ì
ì 모ë íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>SQLQuery</literal> ì¬ì©í기"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr "non-managed ìí°í°ë¤ì ë°íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to apply a ResultTransformer to native SQL queries, allowing "
+"it to return non-managed entities."
+msgstr ""
+"native sql ì§ìì ResultTransformer를 ì ì©íë ê²ì´ ê°ë¥íë¤. ì를 ë¤ì´ non-"
+"managed ìí°í°ë¤ì ë°íí기 ìí´ ResultTransformer를 íì©íë ê²."
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr "ê²°ê³¼ ë³íì(transformer)"
+
+#. 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 ""
+"ìì ì§ìë ì´ê¸°íëì´ ìê³ NAMEê³¼ BIRTHNAMEì ê°ë¤ì <literal>CatDTO</"
+"literal>ì ëìíë íë¡í¼í°ë¤ê³¼ íëë¤ ìì¼ë¡ 주ì
ìí¨ <literal>CatDTO</"
+"literal>ì 리ì¤í¸ë¥¼ ë°íí ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr "ìì ì²ë¦¬í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Native SQL queries which query for entities that are mapped as part of an "
+"inheritance must include all properties for the baseclass and all its "
+"subclasses."
+msgstr ""
+"ììì ë¶ë¶ì¼ë¡ì 매íëë ìí°í°ë¤ì ì§ìíë native sql ì§ìë¤ì baseclass"
+"ì 모ë íë¡í¼í°ë¤ì í¬í¨í´ì¼ íê³ ê·¸ 모ë ê²ì´ ìë¸í´ëì¤í ëì´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr "íë¼ë¯¸í°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr ""
+"Native sql ì§ìë¤ì ìì¹ íë¼ë¯¸í°ë¤ ë¿ë§ ìëë¼ ëª
ëª
ë íë¼ë¯¸í°ë¤ì ì§ìíë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr "ëª
ëª
ë SQL ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Named SQL queries can be defined in the mapping document and called in "
+"exactly the same way as a named HQL query. In this case, you do "
+"<emphasis>not</emphasis> need to call <literal>addEntity()</literal>."
+msgstr ""
+"ëª
ëª
ë SQL ì§ìë¤ì HQL ì§ìì ëì¼í ë°©ë²ì¼ë¡ 매í 문ì ìì ì ìë ì ìê³ "
+"ì ííê² í¸ì¶ë ìë ìë¤. ì´ ê²½ì°ì, ì°ë¦¬ë <literal>addEntity()</literal> "
+"í¸ì¶ì íìë¡ íì§ <emphasis>ìëë¤</emphasis>."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal><return-join></literal> element is use to join "
+"associations and the <literal><load-collection></literal> element is "
+"used to define queries which initialize collections,"
+msgstr ""
+"<literal><return-join></literal> ììì <literal><load-"
+"collection></literal> ììë ì°ê´ë¤ì ì¡°ì¸ìí¤ê³ ì½ë ì
ë¤ì ê°ê° ì´ê¸°í ì"
+"í¤ë ì§ìë¤ì ì ìíëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal><return-scalar></literal> "
+"element:"
+msgstr ""
+"ëª
ëª
ë SQL ì§ìë ì¤ì¹¼ë¼ ê°ì ë°íí ìë ìë¤. ë¹ì ì <literal><return-"
+"scalar></literal> ìì를 ì¬ì©íì¬ ì»¬ë¼ aliasì Hibernate íì
ì ì ì¸í´ì¼ "
+"íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can externalize the resultset mapping information in a <literal><"
+"resultset></literal> element which will allow you to either reuse them "
+"across several named queries or through the <literal>setResultSetMapping()</"
+"literal> API."
+msgstr ""
+"ë¹ì ì ì¬ë¬ ê°ì ëª
ëª
ë ì§ìë¤ì ê°ë¡ì§ë¬ ì¬ì¬ì©íê±°ë "
+"<literal>setResultSetMapping()</literal> API를 íµí´ ê²°ê³¼ì
매íì ë³´ë¤ì ì¬ì¬"
+"ì©í기 ìí´ <literal><resultset></literal> ìì ìì ê²°ê³¼ì
매í ì ë³´ë¤"
+"ì 구체í ìí¬ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can, alternatively, use the resultset mapping information in your hbm "
+"files directly in java code."
+msgstr ""
+"ë¤ë¥¸ë°©ë²ì¼ë¡ ë¹ì ì ë¹ì ì hbm íì¼ë¤ ë´ì ì§ì ìë° ì½ëë¡ ë ê²°ê³¼ì
매í ì "
+"보를 ì¬ì©í ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr "ëª
ìì ì¼ë¡ column/alias ì´ë¦ë¤ì ì§ì íëë° return-property ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can explicitly tell Hibernate what column aliases to use with "
+"<literal><return-property></literal>, instead of using the <literal>{}"
+"</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+"Hibernateë¡ íì¬ê¸ ê·¸ê² ìì ì aliasë¤ì ë¼ìë£ëë¡ í기 ìí´ <literal>{}</"
+"literal>-구문ì ì¬ì©íë ê² ëì ì, <literal><return-property></"
+"literal>ë¡ì ë¹ì ì ì¬ì©í ì»¬ë¼ aliasë¤ì´ 무ìì¸ì§ë¥¼ Hibernateìê² ëª
ìì ì¼"
+"ë¡ ìë ¤ì¤ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal><return-property></literal> also works with multiple columns. "
+"This solves a limitation with the <literal>{}</literal>-syntax which cannot "
+"allow fine grained control of multi-column properties."
+msgstr ""
+"<literal><return-property></literal>ë ëí ë¤ì¤ 컬ë¼ë¤ì ëí´ ëìí"
+"ë¤. ì´ê²ì ë¤ì¤-ì»¬ë¼ íë¡í¼í°ë¤ì ëí fine grained ì ì´ë¥¼ íì©í ì ìë "
+"<literal>{}</literal>-구문ì ê°ì§ ì ì½ì í´ê²°í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this example <literal><return-property></literal> was used in "
+"combination with the <literal>{}</literal>-syntax for injection. This allows "
+"users to choose how they want to refer column and properties."
+msgstr ""
+"ì´ ìì ìì ì°ë¦¬ë ë¼ìë£ê¸°(injection)를 ìí´ <literal>{}</literal>-구문과 í¨"
+"ê» <literal><return-property></literal>를 ì¬ì©íìì 주목íë¼. ì¬ì©ìë¤"
+"ì´ ì»¬ë¼ê³¼ íë¡í¼í°ë¤ì 참조íê³ ì ìíë ë°©ë²ì ì ííë ê²ì ì¬ì©ìë¤ìê² í"
+"ì©í´ì¤ì¼ë¡ì¨."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your mapping has a discriminator you must use <literal><return-"
+"discriminator></literal> to specify the discriminator column."
+msgstr ""
+"ë§ì¼ ë¹ì ì 매íì´ í ê°ì íë³ì(discriminator )를 ê°ì§ ê²½ì° ë¹ì ì íë³ì "
+"컬ë¼ì ì§ì íëë° <literal><return-discriminator></literal>를 ì¬ì©í´ì¼ "
+"íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr "ì§ì를 ìí ë´ì¥ íë¡ìì ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate3 provides support for queries via stored procedures and functions. "
+"Most of the following documentation is equivalent for both. The stored "
+"procedure/function must return a resultset as the first out-parameter to be "
+"able to work with Hibernate. An example of such a stored function in Oracle "
+"9 and higher is as follows:"
+msgstr ""
+"Hibernate 3ì ë´ì¥ íë¡ìì ë¤ê³¼ í¨ìë¤ì íµí ì§ì ì§ìì ëì
íë¤. ëë¶ë¶ì "
+"ë¤ì 문ìë ìì 모ëì ëì¼íê² ì ì©ëë¤. ë´ì¥ íë¡ìì /í¨ìë Hibernateì "
+"ëìíë ê²ì´ ê°ë¥íëë¡ ì²« ë²ì§¸ out-íë¼ë¯¸í°ë¡ì í ê°ì ê²°ê³¼ì
ì ë°íí´ì¼ "
+"íë¤. Oracle9 ì´ìì ë²ì ìì ê·¸ë° ë´ì¥ íë¡ìì ì ëí ìì ë ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, 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: para
+#, fuzzy, no-c-format
+msgid ""
+"Stored procedures currently only return scalars and entities. <literal><"
+"return-join></literal> and <literal><load-collection></literal> are "
+"not supported."
+msgstr ""
+"ë´ì¥ íë¡ìì ë¤ì íì¬ ì¤ì¹¼ë¼ë¤ê³¼ ìí°í°ë¤ ë§ì ë°íí¨ì 주목íë¼. "
+"<literal><return-join></literal>ê³¼ <literal><load-collection></"
+"literal>ì ì§ìëì§ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr "ë´ì¥ íë¡ìì ë¤ì ì¬ì©íë ê·ì¹ë¤/ì ì½ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You cannot use stored procedures with Hibernate unless you follow some "
+"procedure/function rules. If they do not follow those rules they are not "
+"usable with Hibernate. If you still want to use these procedures you have to "
+"execute them via <literal>session.connection()</literal>. The rules are "
+"different for each database, since database vendors have different stored "
+"procedure semantics/syntax."
+msgstr ""
+"Hibernateìì ë´ì¥ íë¡ìì ë¤ì ì¬ì©í기 ìí´ì íë¡ìì ë¤/í¨ìë¤ì ë¤ì ëª"
+"ëª ê·ì¹ë¤ì ë°ë¼ì¼ íë¤. ë§ì¼ ê·¸ê²ë¤ì´ ê·¸ë¤ ê·ì¹ë¤ì ë°ë¥´ì§ ìì ê²½ì° ê·¸ê²ë¤"
+"ì Hibernateì í¨ê» ì¬ì© ë¶ê°ë¥íë¤. ë§ì¼ ë¹ì ì´ ì¬ì í ì´ë¤ íë¡ìì ë¤ì ì¬"
+"ì©íê³ ì ìí ê²½ì°, ë¹ì ì <literal>session.connection()</literal>ì íµí´ ê·¸"
+"ê²ë¤ì ì¤íìì¼ì¼ íë¤. ë°ì´í°ë² ì´ì¤ 벤ëë¤ì´ ë¤ë¥¸ ë´ì¥ íë¡ìì ìë¯¸ë¡ /구문"
+"ì ê°ê³ ì기 ë문ì, ê·ì¹ë¤ì ê°ê°ì ë°ì´í°ë² ì´ì¤ì ë°ë¼ ì°¨ì´ê° ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
+"setMaxResults()</literal>."
+msgstr ""
+"ë´ì¥ íë¡ìì ì§ìë¤ì <literal>setFirstResult()/setMaxResults()</literal>ë¡"
+"ì ìª½ë§¤ê¹ ë ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(<parameters>) }</literal> or <literal>{ ? = call procedureName(<"
+"parameters>}</literal>. Native call syntax is not supported."
+msgstr ""
+"ê¶ì¥ëë í¸ì¶ íìì íì¤ SQL92ì´ë¤: <literal>{ ? = call functionName(<"
+"parameters>) }</literal> ëë <literal>{ ? = call procedureName(<"
+"parameters>}</literal>. Native í¸ì¶ 구문ì ì§ìëì§ ìëë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr "Oracleì ê²½ì° ë¤ì ê·ì¹ë¤ì´ ì ì©ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A function must return a result set. The first parameter of a procedure must "
+"be an <literal>OUT</literal> that returns a result set. This is done by "
+"using a <literal>SYS_REFCURSOR</literal> type in Oracle 9 or 10. In Oracle "
+"you need to define a <literal>REF CURSOR</literal> type. See Oracle "
+"literature for further information."
+msgstr ""
+"íëì í¨ìë íëì ê²°ê³¼ ì
ì ë°íí´ì¼ íë¤. íë¡ìì ì 첫 ë²ì§¸ íë¼ë¯¸í°ë "
+"íëì ê²°ê³¼ ì
ì ë°ííë íëì <literal>OUT</literal>ì´ì´ì¼ íë¤. ì´ê²ì "
+"Oracle 9 ëë 10ìì íëì <literal>SYS_REFCURSOR</literal>를 ì¬ì©íì¬ íí´"
+"ì§ë¤. Oracleìì ë¹ì ì <literal>REF CURSOR</literal> íì
ì ì ìí íìê° ì"
+"ëë°, Oracle ë³´ê³ ì를 ë³´ë¼."
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr "Sybase ëë MS SQL serverì ê²½ì° ë¤ì ê·ì¹ë¤ì´ ì ì©ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The procedure must return a result set. Note that since these servers can "
+"return multiple result sets and update counts, Hibernate will iterate the "
+"results and take the first result that is a result set as its return value. "
+"Everything else will be discarded."
+msgstr ""
+"íë¡ìì ë í ê°ì ê²°ê³¼ ì
ì ë°íí´ì¼ íë¤. ì´ë¤ ìë²ë¤ì´ ì¬ë¬ ê°ì ê²°ê³¼ì
ë¤"
+"ê³¼ ì
ë°ì´í¸ ì¹´ì´í¸ë¤ì ë°í í ì ìë¤/í ê²ì´ì´ë¯ë¡, 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>ì ì´ì© ê°"
+"ë¥íê² í ì ìë¤ë©´ ê·¸ê²ì ìë§ ë³´ë¤ í¨ì¨ì ì´ê² ë ê²ì´ì§ë§ ì´ê²ì íì ì¡°ê±´"
+"ì´ ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr "create, update ê·¸ë¦¬ê³ delete를 ìí ë§ì¶¤í SQL"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 can use custom SQL for create, update, and delete operations. The "
+"SQL can be overridden at the statement level or inidividual column level. "
+"This section describes statement overrides. For columns, see <xref linkend="
+"\"mapping-column-read-and-write\" />."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The class and collection persisters in Hibernate already contain a set of "
+"configuration time generated strings (insertsql, deletesql, updatesql etc.). "
+"The mapping tags <literal><sql-insert></literal>, <literal><sql-"
+"delete></literal>, and <literal><sql-update></literal> override "
+"these strings:"
+msgstr ""
+"Hibernate3ë create, update, delete ì¤í¼ë ì´ì
ë¤ì ìí ë§ì¶¤í 문ì¥ë¤ì ì¬ì©"
+"í ì ìë¤. Hibernateìì í´ëì¤ì ì½ë ì
ìììë¤ì êµ¬ì± ìì ìì±ë 문ìì´"
+"ë¤ì ì§í©(insertsql, deletesql, updatesql ë±)ì ì´ë¯¸ í¬í¨íê³ ìë¤. "
+"<literal><sql-insert></literal>, <literal><sql-delete></"
+"literal>, <literal><sql-update></literal> 매í íê·¸ë¤ì ì´ë¤ 문ìì´ë¤"
+"ì ì¤ë²ë¼ì´ë ìí¨ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The SQL is directly executed in your database, so you can use any dialect "
+"you like. This will reduce the portability of your mapping if you use "
+"database specific SQL."
+msgstr ""
+"SQLì´ ë¹ì ì ë°ì´í°ë² ì´ì¤ ë´ìì ì§ì ì¤íëì´ì, ë¹ì ì´ ì¢ìíë ììì "
+"dialect를 ì¬ì©íë ê²ì´ ìì ë¡ë¤. ë§ì¼ ë¹ì ì´ ë°ì´í°ë² ì´ì¤ ì§ì ì ì¸ SQLì ì¬"
+"ì©í ê²½ì° ì´ê²ì ë¬¼ë¡ ë¹ì ì 매íì ì´ìì±ì ê°ììí¬ ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures are supported if the <literal>callable</literal> attribute "
+"is set:"
+msgstr ""
+"ë§ì¼ <literal>callable</literal> ìì±ì´ ì¤ì ëë©´ ë´ì¥ íë¡ìì ë¤ì´ ì§ìëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The order of the positional parameters is vital, as they must be in the same "
+"sequence as Hibernate expects them."
+msgstr ""
+"ìì¹ íë¼ë¯¸í°ë¤ì Hibernateê° ê·¸ê²ë¤ì 기ëíë ê²ê³¼ ê°ì ììê° ëì´ì¼ íë¯"
+"ë¡, ìì¹ íë¼ë¯¸í°ë¤ì ììë íì¬ ì ëì ì¼ë¡ ì¤ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can view the expected order by enabling debug logging for the "
+"<literal>org.hibernate.persister.entity</literal> level. With this level "
+"enabled, Hibernate will print out the static SQL that is used to create, "
+"update, delete etc. entities. To view the expected sequence, do not include "
+"your custom SQL in the mapping files, as this will override the Hibernate "
+"generated static SQL."
+msgstr ""
+"ë¹ì ì <literal>org.hiberate.persister.entity</literal> ë ë²¨ë¡ ëë²ê·¸ ë¡ê¹
ì "
+"ì¬ì© ê°ë¥íê² í¨ì¼ë¡ì¨ ììë ìì를 ë³¼ ì ìë¤. ì´ ë 벨ì ì´ì© ê°ë¥íê² í"
+"ë©´ Hibernateë ìí°í°ë¤ì ìì±ìí¤ê³ , ì
ë°ì´í¸íê³ , ìì íëë° ì¬ì©ëë ì ì "
+"ì¸ SQLì ì¶ë ¥í ê²ì´ë¤. (ììëë 결과를 ë³´ë ¤ë©´, Hibernate ìì±ë ì ì ì¸ sql"
+"ì ì¤ë²ë¼ì´ë ìí¤ê² 매í íì¼ë¤ ìì ë¹ì ì ë§ì¶¤í SQLì í¬í¨ìí¤ì§ ìëë¡ "
+"ì¼ëì ëë¼.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The stored procedures are in most cases required to return the number of "
+"rows inserted, updated and deleted, as Hibernate has some runtime checks for "
+"the success of the statement. Hibernate always registers the first statement "
+"parameter as a numeric output parameter for the CUD operations:"
+msgstr ""
+"Hibernateê° ë¬¸ì¥ì ì±ê³µì ìí´ ëªëª ì¤í ì ì²´í¬ë¤ì ííë¯ë¡, ë´ì¥ íë¡ìì "
+"ë¤ì ëë¶ë¶ì ê²½ì°ë¤(ì½ê¸°:ë¤ë¥¸ ê²½ì°ë¤ ë³´ë¤ ê·¸ê²ì ë ì ííë¤)ìì insertë"
+"ê³ /ì
ë°ì´í¸ëê³ /ìì ë íë¤ì ê°ì를 ë°ííëë° íìíë¤. Hibernateë íì "
+"CUD ì¤í¼ë ì´ì
ë¤ì ëí ì«ì ì¶ë ¥ íë¼ë¯¸í°ë¡ì 첫 ë²ì§¸ ë¬¸ì¥ íë¼ë¯¸í°ë¥¼ ë±ë¡ì"
+"í¨ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr "ë¡ë©ì ìí ë§ì¶¤í SQL"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also declare your own SQL (or HQL) queries for entity loading. As "
+"with inserts, updates, and deletes, this can be done at the individual "
+"column level as described in <xref linkend=\"mapping-column-read-and-write"
+"\" /> or at the statement level. Here is an example of a statement level "
+"override:"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is just a named query declaration, as discussed earlier. You can "
+"reference this named query in a class mapping:"
+msgstr ""
+"ì´ê²ì ìì ë
¼ìíë¯ì´ ë¨ì§ ëª
ëª
ë ì§ì ì ì¸ì´ë¤. ë¹ì ì class 매í ìì ì´ "
+"ëª
ëª
ë ì§ì를 참조í ì ìë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr "ì´ê²ì ì¬ì§ì´ ë´ì¥ íë¡ìì ë¤ì ëìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr "ë¹ì ì ì½ë ì
ë¡ë©ì ìí í ê°ì ì§ì를 ì ìí ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also define an entity loader that loads a collection by join "
+"fetching:"
+msgstr ""
+"ë¹ì ì ì¬ì§ì´ ì¡°ì¸ íì¹ì ìí´ íëì ì½ë ì
ì ë¡ëìí¤ë íëì ìí°í°ë¥¼ ì "
+"ìí ì ìë¤:"
+
+#~ msgid "{item.*}"
+#~ msgstr "{item.*}"
+
+#~ msgid "{coll.*}"
+#~ msgstr "{coll.*}"
+
+#, fuzzy
+#~ msgid ""
+#~ "You can also declare your own SQL (or HQL) queries for entity loading:"
+#~ msgstr ""
+#~ "ë¹ì ì ëí ìí°í° ë¡ë©ì ìí ë¹ì ìì ì SQL (ëë HQL)ì ì ì¸í ìë ì"
+#~ "ë¤:"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/quickstart.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/quickstart.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/quickstart.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,474 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=utf-8\n"
+#: index.docbook:5
+msgid "appended paragraph 1"
+msgstr "Tomcatì¼ë¡ ë¹ ë¥¸ ìì"
+
+#: index.docbook:8
+msgid "appended paragraph 2"
+msgstr "Hibernate ììí기"
+
+#: index.docbook:10
+msgid "appended paragraph 3"
+msgstr "ì´ íí 리ì¼ì ì¹ ê¸°ë°ì ì´í리ì¼ì´ì
ì© Apache Tomcat ìë¸ë¦¿ 컨í
ì´ëì ëí Hibernate 3.0 ì
ì
ì ì¤ëª
íë¤(ì°ë¦¬ë ë²ì 4.1ì ì¬ì©íë¤. 5.0ì ëí ì°¨ì´ì ë¤ì ì ì ê²ì´ë¤). Hibernateë 모ë 주ì J2EE ì´í리ì¼ì´ì
ìë²ë¤ì ê´ë¦¬ëë íê²½ìì ì ëìíê³ , ëë ì¬ì§ì´ ì¤í ëì¼ë¡ ì´í리ì¼ì´ì
ë¤ììë ì ëì íë¤. ì´ íí 리ì¼ì ì¬ì©ëë ë°ì´í°ë² ì´ì¤ ìì¤í
ì PostgreSQL 7.4ì´ê³ , ë¤ë¥¸ ë°ì´í°ë² ì´ì¤ì ëí ì§ìì ë¨ì§ Hibernate SQL dialect 구ì±ê³¼ 커ë¥ì
íë¡í¼í°ë¤ì ë³ê²½ìí¤ë ê²ìë§ ê´ê³ëë¤."
+
+#: index.docbook:18
+msgid "appended paragraph 4"
+msgstr "먼ì ì°ë¦¬ë 모ë íìì ì¸ ë¼ì´ë¸ë¬ë¦¬ë¤ì Tomcat ì¤ì¹ ì¥ìì ë³µì¬í´ì¼ íë¤. ì°ë¦¬ë ì´ íí 리ì¼ì ìí´ ë³ëì ì¹ ì»¨í
ì¤í¸(<literal>webapps/quickstart</literal>)를 ì¬ì©íë©°, ë°ë¼ì ì°ë¦¬ë ì ì ë¼ì´ë¸ë¬ë¦¬ ê²ì ê²½ë¡ (<literal>TOMCAT/common/lib</literal>)ì <literal>webapps/quickstart/WEB-INF/lib</literal> (JAR íì¼ë¤ì ê²½ì°)ì <literal>webapps/quickstart/WEB-INF/classes</literal> ë´ ì ìë 컨í
ì¤í¸ ë 벨ìì í´ëì¤ë¡ë ìì를 ê³ ë ¤í´ì¼ íë¤. ì°ë¦¬ë ë ê°ì í´ëì¤ë¡ë ë 벨ë¤ì ì ì classpathì 컨í
ì¤í¸ classpathë¡ì ì¸ê¸íë¤."
+
+#: index.docbook:27
+msgid "appended paragraph 5"
+msgstr "ì´ì ë¼ì´ë¸ë¬ë¦¬ë¤ì ë ê°ì classpathë¤ì ë³µì¬íë¼:"
+
+#: index.docbook:33
+msgid "appended paragraph 6"
+msgstr "ë°ì´í°ë² ì´ì¤ ì© JDBC ëë¼ì´ë²ë¥¼ ì ì classpathë¡ ë³µì¬íë¼. ì´ê²ì Tomcatì ë²ë¤ë¡êµ¬ì±ë DBCP 커ë¥ì
í ìíí¸ì¨ì´ì íìíë¤. Hibernateë ë°ì´í°ë² ì´ì¤ ììì SQLì ì¤íìí¤ëë° JDBC 커ë¥ì
ë¤ì ì¬ì©íë¯ë¡, ë¹ì ì íë§ë JDBC 커ë¥ì
ë¤ì ì ê³µí´ì¼ íê±°ë, ì§ì ì§ìëë íë¤(C3P0, Proxool) ì¤ íë를 ì¬ì©í기 ìí´ Hibernate를 구ì±í´ì¼ íë¤. ì´ íí 리ì¼ì ìí´, (PostgreSQL 7.4ì JDK 1.4ì©) <literal>pg74jdbc3.jar</literal> ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì ì classloaders ê²½ë¡ë¡ ë³µì¬íë¼. ë§ì¼ ë¹ì ì´ ë¤ë¥¸ ë°ì´í°ë² ì´ì¤ë¥¼ ì¬ì©íê³ ì ìí ê²½ì°, ê°ë¨íê² ê·¸ê²ì ì ì í JDBC ëë¼ì´ë²ë¥¼ ë³µì¬íë¼."
+
+#: index.docbook:43
+msgid "appended paragraph 7"
+msgstr "ê·¸ ë°ì ì´ë¤ ê²ì Tomcat ë´ì ì ì í´ëì¤ë¡ë ê²½ë¡ì ë³µì¬íì§ ë§ë¼. ëë ë¹ì ì Log4j, commons-logging ê·¸ë¦¬ê³ ë¤ë¥¸ ê²ë¤ì í¬í¨íë ì¬ë¬ ê°ì§ ë구ë¤ì ê´ë ¨ë 문ì ì ë¤ì ì»ê² ë ê²ì´ë¤. ê°ê°ì ì¹ ì´í리ì¼ì´ì
ì ëí´ ì»¨í
ì¤í¸ classpath를 ì¬ì©íë¼. ì¦ ë¼ì´ë¸ë¬ë¦¬ë¤ì <literal>WEB-INF/lib</literal>ì ë³µì¬íê³ , ë¹ì ìì ì í´ëì¤ë¤ê³¼ êµ¬ì± íì¼ë¤/íë¡í¼í° íì¼ë¤ì <literal>WEB-INF/classes</literal>ì ë³µì¬íë¼. ë ëë í ë¦¬ë¤ ììë ëí´í¸ë¡ 컨í
ì¤í¸ classpath ë´ì ìë¤."
+
+#: index.docbook:52
+msgid "appended paragraph 8"
+msgstr "Hibernateë JAR ë¼ì´ë¸ë¬ë¦¬ë¡ì í¨í¤ì§í ëì´ ìë¤. <literal>hibernate3.jar</literal> íì¼ì ì´í리ì¼ì´ì
ì ë¤ë¥¸ í´ëì¤ë¤ê³¼ í¨ê» 컨í
ì¤í¸ classpath ìì ë³µì¬ëì´ì¼ íë¤. Hibernateë ì¤í ìì ì´ë¤ ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¤ì íìë¡íê³ , ì´ê²ë¤ì <literal>lib/</literal> ëë í 리 ë´ì Hibernate ë°°í¬ë³¸ì ë²ë¤íëì´ ìë¤; <xref linkend=\"3rdpartylibs\"/>를 ë³´ë¼. íìí ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¤ì 컨í
ì¤í¸ classpathë¡ ë³µì¬íë¼."
+
+#: index.docbook:62
+msgid "appended paragraph 9"
+msgstr "Hibernate ì 3ì ë¼ì´ë¸ë¬ë¦¬"
+
+#: index.docbook:70
+msgid "appended paragraph 10"
+msgstr "ë¼ì´ë¸ë¬ë¦¬"
+
+#: index.docbook:73
+msgid "appended paragraph 11"
+msgstr "<entry>ì¤ëª
</entry>"
+
+#: index.docbook:80
+msgid "appended paragraph 12"
+msgstr "antlr (íì)"
+
+#: index.docbook:83
+msgid "appended paragraph 13"
+msgstr "Hibernateë ì§ì íìë¤ì ì°ì¶íëë° ANTLRì ì¬ì©íê³ , ì´ ë¼ì´ë¸ë¬ë¦¬ë ëí ì¤í ìì íìíë¤."
+
+#: index.docbook:89
+msgid "appended paragraph 14"
+msgstr "dom4j (íì)"
+
+#: index.docbook:92
+msgid "appended paragraph 15"
+msgstr "Hibernateë XML 구ì±ê³¼ XML 매í ë©íë°ì´í° íì¼ë¤ì íì±íëë° dom4j를 ì¬ì© íë¤."
+
+#: index.docbook:98
+msgid "appended paragraph 16"
+msgstr "CGLIB, asm (íì)"
+
+#: index.docbook:101
+msgid "appended paragraph 17"
+msgstr "Hibernateë (Java reflectionê³¼ ê²°í©íì¬) ë°íì ìì í´ëì¤ë¤ì ê³ ììí¤ëë° ì½ë ìì± ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë¤."
+
+#: index.docbook:107
+msgid "appended paragraph 18"
+msgstr "Commons Collections, Commons Logging (íì)"
+
+#: index.docbook:110
+msgid "appended paragraph 19"
+msgstr "Hibernateë Apache Jakarta Commons íë¡ì í¸ë¡ë¶í° ë¤ìí ì í¸ë¦¬í° ë¼ì´ë¸ë¬ë¦¬ ë¤ì ì¬ì©íë¤."
+
+#: index.docbook:116
+msgid "appended paragraph 20"
+msgstr "EHCache (íì)"
+
+#: index.docbook:119
+msgid "appended paragraph 21"
+msgstr "Hibernateë second-level ìºì를 ìí ë¤ìí ìºì íë¡ë°ì´ëë¤ì ì¬ì©í ì ìë¤. ë§ì¼ 구ì±ìì ë³íì§ ìì ê²½ì° EHCacheê° ëí´í¸ ìºì íë¡ë°ì´ëì´ë¤."
+
+#: index.docbook:125
+msgid "appended paragraph 22"
+msgstr "Log4j (ìµì
)"
+
+#: index.docbook:128
+msgid "appended paragraph 23"
+msgstr "Hibernateë 기본 ë¡ê¹
ë©ì»¤ëì¦ì¼ë¡ì Log4j를 ì¬ì©í ì ìë, Commons Logging API를 ì¬ì©íë¤. ë§ì¼ Log4j ë¼ì´ë¸ë¬ë¦¬ê° 컨í
ì¤í¸ ë¼ì´ë¸ë¬ë¦¬ ëë í 리 ììì ì´ì© ê°ë¥íë¤ë©´, Commons Loggingì Log4jì 컨í
ì¤í¸ classpath ë´ì ìë <literal>log4j.properties</literal> 구ì±ì ì¬ì©í ê²ì´ë¤. Log4jì ëí ìì properties íì¼ì Hibernate ë°°í¬ë³¸ì ë²ë¤í ëì´ ìë¤. ë°ë¼ì ë¹ì ì´ ì´ë©´ìì 무ìì´ ì§íëë ì§ì ë³´ê³ ì ìí ê²½ì°ì log4j.jarì (<literal>src/</literal>ì ìë) êµ¬ì± íì¼ì ë¹ì ì 컨í
ì¤í¸ classpath ìì¼ë¡ ë³µì¬íë¼."
+
+#: index.docbook:138
+msgid "appended paragraph 24"
+msgstr "íì ì¬ë¶?"
+
+#: index.docbook:141
+msgid "appended paragraph 25"
+msgstr "Hibernate ë°°í¬ë³¸ ë´ì ìë <literal>lib/README.txt</literal> íì¼ì ì´í´ë³´ë¼. ì´ê²ì Hibernateì ë°°í¬ë ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¤ì ìµì 목ë¡ì´ë¤. ë¹ì ì 그곳ì ì´ê±°ë 모ë íì ë¼ì´ë¸ë¬ë¦¬ë¤ê³¼ ìµì
ë¼ì´ë¸ë¬ë¦¬ë¤ì ì°¾ê² ë ê²ì´ë¤(ì¬ê¸°ì \"ë¹ë ì íìí¨\"ì ë¹ì ì ì´í리ì¼ì´ì
ì´ ìëë¼ Hibernateì ëí ì미ìì ë
¸í¸íë¼)."
+
+#: index.docbook:152
+msgid "appended paragraph 26"
+msgstr "ì°ë¦¬ë ì´ì Tomcatê³¼ Hibernate ìììì ë°ì´í°ë² ì´ì¤ 커ë¥ì
íë§ê³¼ ê³µì 를 ì¤ì íë¤. ì´ê²ì Tomcatì´ (ê·¸ê²ì 미리 ë¹ëëì´ ìë DBCP íë§ í¹ì§ì ì¬ì©íì¬) íë§ë JDBC 커ë¥ì
ë¤ì ì ê³µí ê²ì´ê³ , Hibernateê° JNDI를 íµí´ ì´ë¤ 커ë¥ì
ë¤ì ìì²íë¤ë ê²ì ì미íë¤. ë¬ë¦¬ ë¹ì ì Hibernateë¡ íì¬ê¸ 커ë¥ì
íì ê´ë¦¬íëë¡ í ì ìë¤. Tomcatì ê·¸ê²ì 커ë¥ì
íì JNDIì ë°ì¸ë ìí¨ë¤; ì°ë¦¬ë 리ìì¤ ì ì¸ì Tomcat ë©ì¸ êµ¬ì± íì¼ì¸ <literal>TOMCAT/conf/server.xml</literal>ì ì¶ê°íë¤:"
+
+#: index.docbook:160
+msgid "appended paragraph 27"
+msgstr ""
+ "<![CDATA[<Context path=\"/quickstart\" docBase=\"quickstart\">\n"
+ " <Resource name=\"jdbc/quickstart\" scope=\"Shareable\" type=\"javax.sql.DataSource\"/>\n"
+ " <ResourceParams name=\"jdbc/quickstart\">\n"
+ " <parameter>\n"
+ " <name>factory</name>\n"
+ " <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>\n"
+ " </parameter>\n"
+ "\n"
+ " <!-- DBCP database connection settings -->\n"
+ " <parameter>\n"
+ " <name>url</name>\n"
+ " <value>jdbc:postgresql://localhost/quickstart</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>driverClassName</name><value>org.postgresql.Driver</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>username</name>\n"
+ " <value>quickstart</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>password</name>\n"
+ " <value>secret</value>\n"
+ " </parameter>\n"
+ "\n"
+ " <!-- DBCP connection pooling options -->\n"
+ " <parameter>\n"
+ " <name>maxWait</name>\n"
+ " <value>3000</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>maxIdle</name>\n"
+ " <value>100</value>\n"
+ " </parameter>\n"
+ " <parameter>\n"
+ " <name>maxActive</name>\n"
+ " <value>10</value>\n"
+ " </parameter>\n"
+ " </ResourceParams>\n"
+ "</Context>]]>"
+
+#: index.docbook:162
+msgid "appended paragraph 28"
+msgstr "ì°ë¦¬ê° ì´ ìì ìì 구ì±íë 컨í
ì¤í¸ë <literal>quickstart</literal>ë¡ ëª
ëª
ëê³ , ê·¸ê²ì ë² ì´ì¤ë <literal>TOMCAT/webapp/quickstart</literal> ëë í 리ì´ë¤. ììì ìë¸ë¦¿ë¤ì ì ê·¼í기 ìí´, (ë¬¼ë¡ ë¹ì ì <literal>web.xml</literal> ìì 매íë ìë¸ë¦¿ì ì´ë¦ì ì¶ê°íì¬) ë¹ì ì ë¸ë¼ì°ì ìì <literal>http://localhost:8080/quickstart</literal> ê²½ë¡ë¥¼ í¸ì¶íë¼. ë¹ì ì ëí ê³ì ì§ííê³ ì´ì 공백ì <literal>process()</literal> ë©ìë를 ê°ì§ ê°ë¨í ìë¸ë¦¿ì ìì±ìí¬ ì ìë¤."
+
+#: index.docbook:170
+msgid "appended paragraph 29"
+msgstr "Tomcatì ì´ì <literal>java:comp/env/jdbc/quickstart</literal>ë¡ JNDIì íµí´ 커ë¥ì
ë¤ì ì ê³µíë¤. ë§ì¼ ë¹ì ì´ ì¤í ì¤ì¸ 커ë¥ì
íì ì»ë ê²ì 문ì ê° ìë¤ë©´ Tomcat 문ì를 참조íë¼. ë¹ì ì´ JDBC ëë¼ì´ë² ìì¸ìí© ë©ìì§ë¥¼ ì»ì ê²½ì°, 먼ì Hibernate ìì´ JDBC 커ë¥ì
íì ì
ì
íë¼. Tomcat & JDBC íí 리ì¼ë¤ì ê·¸ ì¹ ìì´í¸ìì ì´ì© ê°ë¥íë¤."
+
+#: index.docbook:177
+msgid "appended paragraph 30"
+msgstr "ë¹ì ì ë¤ì ë¨ê³ë Hibernate를 구ì±íë ê²ì´ë¤. Hibernateë ê·¸ê²ì´ JDBC 커ë¥ì
ë¤ì ì»ë ë°©ë²ì ìê³ ìì´ì¼ íë¤. ì°ë¦¬ë Hibernateì XML ê¸°ë° êµ¬ì±ì ì¬ì©íë¤. properties íì¼ì ì¬ì©íë ë¤ë¥¸ ì ê·¼ë²ì ê±°ì ëì¼íì§ë§ XML êµ¬ë¬¸ì´ íì©íë ëªëª í¹ì§ë¤ì ëë½íê³ ìë¤. XML êµ¬ì± íì¼ì <literal>hibernate.cfg.xml</literal>ë¡ì 컨í
ì¤í¸ classpath (<literal>WEB-INF/classes</literal>) ë´ì ìì¹í´ ìë¤:"
+
+#: index.docbook:184
+msgid "appended paragraph 31"
+msgstr ""
+ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+ " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd\">\n"
+ "\n"
+ "<hibernate-configuration>\n"
+ "\n"
+ " <session-factory>\n"
+ "\n"
+ " <property name=\"connection.datasource\">java:comp/env/jdbc/quickstart</property>\n"
+ " <property name=\"show_sql\">false</property>\n"
+ " <property name=\"dialect\">org.hibernate.dialect.PostgreSQLDialect</property>\n"
+ "\n"
+ " <!-- Mapping files -->\n"
+ " <mapping resource=\"Cat.hbm.xml\"/>\n"
+ "\n"
+ " </session-factory>\n"
+ "\n"
+ "</hibernate-configuration>]]>"
+
+#: index.docbook:186
+msgid "appended paragraph 32"
+msgstr "ì°ë¦¬ë SQL ëª
ë ¹ë¤ì ëí ë¡ê¹
ì ì¬ì©íì§ ìê³ Hibernateìê² ì¬ì©ëë ë°ì´í°ë² ì´ì¤ SQL directê° ë¬´ìì¸ì§ ê·¸ë¦¬ê³ (Tomcat ë°ì¸ëë íì JNDI 주ì를 ì ì¸íì¬) JDBC 커ë¥ì
ë¤ì ì»ë ê³³ì ìë ¤ì¤ë¤. dialectë íìì ì¸ ì¤ì ì´ê³ , ë°ì´í°ë² ì´ì¤ë¤ì SQL \"íì¤\"ì ëí ê·¸ê²ë¤ì í´ìì ë¬ë¦¬íë¤. Hibernateë ì°¨ì´ì ë¤ì ì²ë¦¬íê³ ëª¨ë 주ì ìì© ë°ì´í°ë² ì´ì¤ë¤ ë° ì¤í ìì¤ ë°ì´í°ë² ì´ì¤ë¤ ì©ëì directë¤ì ë²ë¤ë¡ í¬í¨íê³ ìë¤."
+
+#: index.docbook:193
+msgid "appended paragraph 33"
+msgstr "<literal>SessionFactory</literal>ë ë¨ì¼ ë°ì´í°ì ì¥ìì ê´í ê°ë
ì´ê³ , ì¬ë¬ ë°ì´í°ë² ì´ì¤ë¤ì ì¬ë¬ ê°ì XML êµ¬ì± íì¼ë¤ì ìì±ìí¤ê³ ë¹ì ì ì´í리ì¼ì´ì
ììì ì¬ë¬ ê°ì <literal>Configuration</literal> ë° <literal>SessionFactory</literal> ê°ì²´ë¤ì ìì±ìì¼ì ì¬ì©ë ì ìë¤."
+
+#: index.docbook:199
+msgid "appended paragraph 34"
+msgstr "<literal>hibernate.cfg.xml</literal>ì ë§ì§ë§ ììë ìì í´ëì¤ <literal>Cat</literal>ì ëí Hibernate XML 매í íì¼ì ì´ë¦ì¼ë¡ì¨ <literal>Cat.hbm.xml</literal>ì ì ì¸íë¤. ì´ íì¼ì ë°ì´í°ë² ì´ì¤ í
ì´ë¸(ëë í
ì´ë¸ë¤)ë¡ POJO í´ëì¤ <literal>Cat</literal> ì 매íìí¤ë ë©íë°ì´í°ë¥¼ í¬í¨íë¤. ì°ë¦¬ë 곧 ê·¸ íì¼ë¡ ëëì ê° ê²ì´ë¤. 먼ì POJO í´ëì¤ë¥¼ ìì±íê³ ê·¸ë° ë¤ì ê·¸ê²ì ìí 매í ë©íë°ì´í°ë¥¼ ì ì¸íì."
+
+#: index.docbook:209
+msgid "appended paragraph 35"
+msgstr "첫 ë²ì§¸ ìì í´ëì¤"
+
+#: index.docbook:211
+msgid "appended paragraph 36"
+msgstr "Hibernateë ìì í´ëì¤ë¤ì ëí Plain Old Java Objects (POJOs, ì¢
ì¢
Plain Ordinary Java Objectsë¡ ëª
ëª
ëë¤) íë¡ê·¸ëë° ëª¨íì¼ë¡ ê°ì¥ ì ëìíë¤. POJOë ê³µì©ì¼ë¡ ê°ìì ì¸ ì¸í°íì´ì¤ë¡ë¶í° ë´ë¶ì ì¸ íìì ìíìì¼, getterì setter ë©ìëë¤ì íµí´ ì ê·¼ê°ë¥í í´ëì¤ë¤ì íë¡í¼í°ë¤ì ê°ì§ ìë°ë¹ê³¼ 꽤 ì ì¬íë¤(íìíë¤ë©´ Hibernateë ëí íëë¤ì ì§ì ì ê·¼í ì ìë¤):"
+
+#: index.docbook:218
+msgid "appended paragraph 37"
+msgstr ""
+ "<![CDATA[package org.hibernate.examples.quickstart;\n"
+ "\n"
+ "public class Cat {\n"
+ "\n"
+ " private String id;\n"
+ " private String name;\n"
+ " private char sex;\n"
+ " private float weight;\n"
+ "\n"
+ " public Cat() {\n"
+ " }\n"
+ "\n"
+ " public String getId() {\n"
+ " return id;\n"
+ " }\n"
+ "\n"
+ " private void setId(String id) {\n"
+ " this.id = id;\n"
+ " }\n"
+ "\n"
+ " public String getName() {\n"
+ " return name;\n"
+ " }\n"
+ "\n"
+ " public void setName(String name) {\n"
+ " this.name = name;\n"
+ " }\n"
+ "\n"
+ " public char getSex() {\n"
+ " return sex;\n"
+ " }\n"
+ "\n"
+ " public void setSex(char sex) {\n"
+ " this.sex = sex;\n"
+ " }\n"
+ "\n"
+ " public float getWeight() {\n"
+ " return weight;\n"
+ " }\n"
+ "\n"
+ " public void setWeight(float weight) {\n"
+ " this.weight = weight;\n"
+ " }\n"
+ "\n"
+ "}]]>"
+
+#: index.docbook:220
+msgid "appended paragraph 38"
+msgstr "Hibernateë ê·¸ê²ì íë¡í¼í° íì
ë¤ì ì¬ì©ì ì ì½ëì§ ìê³ , ìë° ì½ë ì
íë ììììì í´ëì¤ë¤ì í¬í¨íì¬, 모ë ìë° JDK íì
ë¤ê³¼ (<literal>String</literal>, <literal>char</literal>ì <literal>Date</literal> ê°ì) ììíì
ë¤ì´ 매íë ì ìë¤. ë¹ì ì ê·¸ê²ì ê°ë¤ë¡ì, ê°ë¤ì ê°ì§ ì½ë ì
ë¤ë¡ì, ëë ë¤ë¥¸ ìí°í°ë¤ì ëí ì°ê´ë¤ë¡ì 매íìí¬ ì ìë¤. <literal>id</literal>ë ê·¸ í´ëì¤ì ë°ì´í°ë² ì´ì¤ ìë³ì(íë¼ì´ë¨¸ë¦¬ í¤)를 íííë í¹ë³í íë¡í¼í°ì´ê³ , ê·¸ê²ì <literal>Cat</literal>ê³¼ ê°ì ìí°í°ë¤ì ëí´ ë§¤ì° ê¶ì¥ëë¤. Hibernateë ë´ë¶ì ì¼ë¡ë§ ìë³ìë¤ì ì¬ì©í ì ìì§ë§, ì°ë¦¬ë ì°ë¦¬ì ì´í리ì¼ì´ì
ìí¤í
ì²ìì ì´ë¤ ì ì°ì±ì ìì¤íê² ë ê²ì´ë¤."
+
+#: index.docbook:229
+msgid "appended paragraph 39"
+msgstr "í¹ì ì¸í°íì´ì¤ë ìì í´ëì¤ë¤ì ëí´ êµ¬íëì§ ë§ìì¼ íê±°ë í¹ì ë£¨í¸ ìì í´ëì¤ë¡ë¶í° ìë¸ í´ëì¤ë¡ ë§ë¤ì§ ë§ìì¼ íë¤. Hibernateë ëí ë°ì´í¸ ì½ë ì²ë¦¬ì ê°ì, ì´ë¤ ë¹ë ì ì²ë¦¬ë¥¼ íìë¡ íì§ ìê³ , ê·¸ê²ì ì¤ì§ ìë° reflectionê³¼ (CGLIB를 íµí) ë°íì í´ëì¤ ê³ ììë§ ìì¡´íë¤. ë°ë¼ì Hibernateì ëí POJO í´ëì¤ì ì´ë¤ ìì¡´ì± ìì´ë, ì°ë¦¬ë ê·¸ê²ì ë°ì´í°ë² ì´ì¤ í
ì´ë¸ë¡ 매íí ì ìë¤."
+
+#: index.docbook:239
+msgid "appended paragraph 40"
+msgstr "cat 매íí기"
+
+#: index.docbook:241
+msgid "appended paragraph 41"
+msgstr "<literal>Cat.hbm.xml</literal> 매ííì¼ì ê°ì²´/ê´ê³í 매íì íìí ë©íë°ì´í°ë¥¼ í¬í¨íë¤. ë©íë°ì´í°ë ìì í´ëì¤ë¤ì ì ì¸ê³¼ ë°ì´í°ë² ì´ì¤ í
ì´ë¸ë¤ì ëí (컬ë¼ë¤ê³¼ ë¤ë¥¸ ìí°í°ë¤ì ëí foreign í¤ ê´ê³ë¤ì ëí) íë¡í¼í°ë¤ì 매íì í¬í¨íë¤."
+
+#: index.docbook:247
+msgid "appended paragraph 42"
+msgstr ""
+ "<![CDATA[<?xml version=\"1.0\"?>\n"
+ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+ "\n"
+ "<hibernate-mapping>\n"
+ "\n"
+ " <class name=\"org.hibernate.examples.quickstart.Cat\" table=\"CAT\">\n"
+ "\n"
+ " <!-- A 32 hex character is our surrogate key. It's automatically\n"
+ " generated by Hibernate with the UUID pattern. -->\n"
+ " <id name=\"id\" type=\"string\" unsaved-value=\"null\" >\n"
+ " <column name=\"CAT_ID\" sql-type=\"char(32)\" not-null=\"true\"/>\n"
+ " <generator class=\"uuid\"/>\n"
+ " </id>\n"
+ "\n"
+ " <!-- A cat has to have a name, but it shouldn' be too long. -->\n"
+ " <property name=\"name\">\n"
+ " <column name=\"NAME\" length=\"16\" not-null=\"true\"/>\n"
+ " </property>\n"
+ "\n"
+ " <property name=\"sex\"/>\n"
+ "\n"
+ " <property name=\"weight\"/>\n"
+ "\n"
+ " </class>\n"
+ "\n"
+ "</hibernate-mapping>]]>"
+
+#: index.docbook:249
+msgid "appended paragraph 43"
+msgstr "모ë ìì í´ëì¤ë ìë³ì ìì±ì ê°ì ¸ì¼ íë¤(ì¤ì ë¡ value-íì
ì í´ëì¤ë¤ì ìì¡´íì§ ìë, ìí°í°ë¤ì íííë ì ì¼í í´ëì¤ë¤ì ìí°í°ì ê°ì§ ì»´í¬ëí¸ë¤ë¡ 매íëë¤). ì´ íë¡í¼í°ë ìì ê°ì²´ë¤ì 구ë³ì§ëë° ì¬ì©ëë¤: ë§ì¼ <literal>catA.getId().equals(catB.getId())</literal>ê° trueì¼ ê²½ì°, ë ê°ì catë¤ì ê°ê³ , ì´ ê°ë
ì <emphasis>database identity</emphasis>ë¡ ëª
ëª
ëë¤. Hibernateë (ë°ì´í°ë² ì´ì¤ ìíì¤, hi/lo ìë³ì í
ì´ë¸ë¤, ê·¸ë¦¬ê³ ì´í리ì¼ì´ì
í ë¹ ìë³ìë¤ì ëí native ìì±ê¸°ë¤ì í¬í¨íë) ë¤ë¥¸ ìë리ì¤ë¤ì ëí´ ì¬ë¬ ê°ì§ ìë³ì ìì±ê¸°ë¤ì ë²ë¤ë¡ ê°ê³ ìë¤. ì°ë¦¬ë UUID ìì±ê¸°(ë°ì´í°ì´ì¤ì ìí´ ìì±ë ì ì ëì© í¤ë¤ì´ ì í¸ë ê²ì´ë¯ë¡, í
ì¤í¸ì©ì¼ë¡ë§ ê¶ì¥ë¨)를 ì¬ì©íê³ ëí Hibernate ìì±ë ìë³ì ê°ì ìí <literal>CAT</liter!
al> í
ì´ë¸ì <literal>CAT_ID</literal> 컬ë¼ì (í
ì´ë¸ì íë¼ì´ë¨¸ë¦¬ í¤ë¡ì) ì§ì íë¤."
+
+#: index.docbook:260
+msgid "appended paragraph 44"
+msgstr "<literal>Cat</literal>ì 모ë ë¤ë¥¸ íë¡í¼í°ë¤ì ëì¼í í
ì´ë¸ë¡ 매íëë¤. <literal>name</literal> íë¡í¼í°ì ê²½ì°ì, ì°ë¦¬ë ê·¸ê²ì ëª
ìì ì¸ ë°ì´í°ë² ì´ì¤ ì»¬ë¼ ì ì¸ì¼ë¡ 매íìì¼°ë¤. ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ê° Hibernateì <emphasis>SchemaExport</emphasis> ë구ì ìí´ ë§¤í ì ì¸ì¼ë¡ë¶í° (SQL DDL 문ì¥ë¤ë¡) ìëì ì¼ë¡ ìì±ë ë ì´ê²ì´ í¹ë³í ì ì©íë¤. 모ë ë¤ë¥¸ íë¡í¼í°ë¤ì Hibernateì ëí´í¸ ì¤ì ë¤ì ì¬ì©íì¬ ë§¤íëê³ , ëí´í¸ ì¤ì ë¤ì ë¹ì ì´ ê°ì¥ ë§ì ìê°ì íìë¡ íë ê²ì´ë¤. ë°ì´í°ë² ì´ì¤ ë´ì í
ì´ë¸ <literal>CAT</literal>ì ë¤ìê³¼ ê°ë¤:"
+
+#: index.docbook:268
+msgid "appended paragraph 45"
+msgstr ""
+ "<![CDATA[ Column | Type | Modifiers\n"
+ "--------+-----------------------+-----------\n"
+ " cat_id | character(32) | not null\n"
+ " name | character varying(16) | not null\n"
+ " sex | character(1) |\n"
+ " weight | real |\n"
+ "Indexes: cat_pkey primary key btree (cat_id)]]>"
+
+#: index.docbook:270
+msgid "appended paragraph 46"
+msgstr "ë¹ì ì ì´ì ììì
ì¼ë¡ ë¹ì ì ë°ì´í°ë² ì´ì¤ ë´ì ì´ í
ì´ë¸ì ìì±ìí¬ ê²ì´ê³ , ë§ì¼ ë¹ì ì´ <literal>hbm2ddl</literal> ëêµ¬ë¡ ì´ ë¨ê³ë¥¼ ìëí ìí¤ê³ ì ìí ê²½ì° <xref linkend=\"toolsetguide\"/>를 ì½ì´ë¼. ì´ ë구ë í
ì´ë¸ ì ì, ë§ì¶¤í ì»¬ë¼ íì
컨ì¤í¸ë ì¸í¸ë¤, ì ì¼ ì»¨ì¤í¸ë ì¸í¸ë¤ê³¼ ì¸ë±ì¤ë¤ì í¬í¨íë, ì ì²´ SQL DDLì ìì±ìí¬ ì ìë¤."
+
+#: index.docbook:279
+msgid "appended paragraph 47"
+msgstr "catë¤ì ìì
í기"
+
+#: index.docbook:281
+msgid "appended paragraph 48"
+msgstr "ì°ë¦¬ë ì´ì Hibernateì <literal>Session</literal>ì ììí ì¤ë¹ê° ëì´ ìë¤. ê·¸ê²ì <emphasis>persistence manager</emphasis> (ìì ê´ë¦¬ì)ì´ê³ , ì°ë¦¬ë ë°ì´í°ë² ì´ì¤ë¡ <literal>Cat</literal>ë¤ì ì ì¥íê³ ë°ì´í°ë² ì´ì¤ë¡ë¶í° <literal>Cat</literal>ë¤ì ê²ìíëë° ê·¸ê²ì ì¬ì©íë¤. ê·¸ë¬ë 먼ì ì°ë¦¬ë <literal>SessionFactory</literal>ë¡ë¶í° <literal>Session</literal>(Hibernateì ìì
ë¨ì)를 ì»ì´ì¼ íë¤:"
+
+#: index.docbook:288
+msgid "appended paragraph 49"
+msgstr ""
+ "<![CDATA[SessionFactory sessionFactory =\n"
+ " new Configuration().configure().buildSessionFactory();]]>"
+
+#: index.docbook:290
+msgid "appended paragraph 50"
+msgstr "<literal>configure()</literal> í¸ì¶ì <literal>hibernate.cfg.xml</literal> êµ¬ì± íì¼ì ë¡ëìí¤ê³ <literal>Configuration</literal> ì¸ì¤í´ì¤ë¥¼ ì´ê¸°í ìí¨ë¤. ë¹ì ì´ SessionFactory(ë¶ë³ì ì)를 ë¹ëí기 <emphasis>ì´ì ì</emphasis> ë¹ì ì <literal>Configuration</literal>ì ì ê·¼í¨ì¼ë¡ì¨ ë¤ë¥¸ íë¡í¼í°ë¤ì ì¤ì í ì ìë¤(ê·¸ë¦¬ê³ ì¬ì§ì´ 매í ë©íë°ì´í°ë¥¼ ë³ê²½ìí¬ ì ìë¤). ì°ë¦¬ë ì´ëì <literal>SessionFactory</literal>를 ìì±ìí¤ê³ ì°ë¦¬ì ì´í리ì¼ì´ì
ììì ì´ë»ê² ê·¸ê²ì ì ê·¼í ì ìë?"
+
+#: index.docbook:298
+msgid "appended paragraph 51"
+msgstr "<literal>SessionFactory</literal>ë ëê° ì¤ì§ íë²ë§, ì를 ë¤ì´ ëê° <emphasis>load-on-startup</emphasis> ìë¸ë¦¿ì¼ë¡ ìì ìì ë¹ëëë¤. ì´ê²ì ëí ë¹ì ì´ ë¹ì ì ìë¸ë¦¿ë¤ ë´ì ìë ì¸ì¤í´ì¤ ë³ì ìì ê·¸ê²ì ì ì§íì§ ìì ê²ì´ì§ë§ ì´ë¤ ë¤ë¥¸ ìì¹ì ì ì§ìí¬ ê²ìì ì미íë¤. ë구ë ì°ë¦¬ë ì´ë¤ ì¢
ë¥ì <emphasis>Singleton</emphasis>ì íìë¡ íë©°, ë°ë¼ì ì°ë¦¬ë ì´í리ì¼ì´ì
ì½ëë¡ ì½ê² <literal>SessionFactory</literal>ì ì¡ì¸ì¤ í ì ìë¤. ë¤ìì ë³´ì¬ì§ ì ê·¼ë²ì ë 문ì 모ë를 í´ê²°íë¤: ìì 구ì±ê³¼ <literal>SessionFactory</literal>ì ëí ì¬ì´ ì ê·¼."
+
+#: index.docbook:306
+msgid "appended paragraph 52"
+msgstr "ì°ë¦¬ë <literal>HibernateUtil</literal> helper í´ëì¤ë¥¼ 구ííë¤:"
+
+#: index.docbook:310
+msgid "appended paragraph 53"
+msgstr ""
+ "<![CDATA[import org.hibernate.*;\n"
+ "import org.hibernate.cfg.*;\n"
+ "\n"
+ "public class HibernateUtil {\n"
+ "\n"
+ " private static Logger log = LoggerFactory.getLogger(HibernateUtil.class);\n"
+ "\n"
+ " private static final SessionFactory sessionFactory;\n"
+ "\n"
+ " static {\n"
+ " try {\n"
+ " // Create the SessionFactory\n"
+ " sessionFactory = new Configuration().configure().buildSessionFactory();\n"
+ " } catch (Throwable ex) {\n"
+ " // Make sure you log the exception, as it might be swallowed\n"
+ " log.error(\"Initial SessionFactory creation failed.\", ex);\n"
+ " throw new ExceptionInInitializerError(ex);\n"
+ " }\n"
+ " }\n"
+ "\n"
+ " public static final ThreadLocal session = new ThreadLocal();\n"
+ "\n"
+ " public static Session getCurrentSession() {\n"
+ " Session s = (Session) session.get();\n"
+ " // Open a new Session, if this Thread has none yet\n"
+ " if (s == null) {\n"
+ " s = sessionFactory.openSession();\n"
+ " session.set(s);\n"
+ " }\n"
+ " return s;\n"
+ " }\n"
+ "\n"
+ " public static void closeSession() {\n"
+ " Session s = (Session) session.get();\n"
+ " if (s != null)\n"
+ " s.close();\n"
+ " session.set(null);\n"
+ " }\n"
+ "}]]>"
+
+#: index.docbook:312
+msgid "appended paragraph 54"
+msgstr "ì´ í´ëì¤ë static ì´ê¸°ì를 ê°ì§ <literal>SessionFactory</literal>를 ì²ë¦¬í ë¿ë§ ìëë¼ ëí íì¬ì ì°ë ë를 ìí <literal>Session</literal>ì ìì íë <literal>ThreadLocal</literal> ë³ì를 ê°ëë¤. ì´ helper를 ì¬ì©íë ¤ê³ ìëí기 ì ì thread-local ë³ìì ëí ìë° ê°ë
ì ì´í´í´ì¼ íë¤. ë³´ë¤ ë³µì¡íê³ ê°ë ¥í <literal>HibernateUtil</literal> í´ëì¤ë http://caveatemptor.hibernate.org/ì <literal>CaveatEmptor</literal>ìì ì°¾ì ì ìë¤."
+
+#: index.docbook:319
+msgid "appended paragraph 55"
+msgstr "<literal>SessionFactory</literal>ë threadsafeì´ê³ , ë§ì ì°ë ëë¤ì´ ëìì ê·¸ê²ì ì ê·¼í ì ìê³ <literal>Session</literal>ë¤ì ìì²í ì ìë¤. íëì <literal>Session</literal>ì ë°ì´í°ë² ì´ì¤ì ëí´ í ê°ì ë¨ì ìì
ì ëíë´ë non-threadsafe ê°ì²´ì´ë¤. <literal>Session</literal>ë¤ì <literal>SessionFactory</literal> ë¡ë¶í° ì´ë ¤ì§ê³ 모ë ìì
ì´ ìë£ë ë ë«íì§ë¤. ë¹ì ì ìë¸ë¦¿ì <literal>process()</literal> ë©ìë ë´ì ìë ìì ë ë¤ìê³¼ ê°ì ì ìë¤(ìì¸ìí© ì²ë¦¬ ìì´):"
+
+#: index.docbook:327
+msgid "appended paragraph 56"
+msgstr ""
+ "<![CDATA[Session session = HibernateUtil.getCurrentSession();\n"
+ "Transaction tx = session.beginTransaction();\n"
+ "\n"
+ "Cat princess = new Cat();\n"
+ "princess.setName(\"Princess\");\n"
+ "princess.setSex('F');\n"
+ "princess.setWeight(7.4f);\n"
+ "\n"
+ "session.save(princess);\n"
+ "\n"
+ "tx.commit();\n"
+ "HibernateUtil.closeSession();]]>"
+
+#: index.docbook:329
+msgid "appended paragraph 57"
+msgstr "íëì <literal>Session</literal> ë´ìì 모ë ë°ì´í°ë² ì´ì¤ ì¤í¼ë ì´ì
ì ë°ì´í°ë² ì´ì¤ ì¤í¼ë ì´ì
ë¤(ì¬ì§ì´ ì½ê¸° ì ì© ì¤í¼ë ì´ì
ë¤ ì¡°ì°¨ë)ì 격리ìí¤ë íëì í¸ëìì
ë´ë¶ìì ë°ìíë¤. ì°ë¦¬ë 기본 í¸ëìì
ë°©ë(ì°ë¦¬ì ê²½ì°, JDBC í¸ëìì
ë¤)ë¡ë¶í° ì¶ìíìí¤ëë° Hibernates <literal>Transaction</literal> API 를 ì¬ì©íë¤. ì´ê²ì ì°ë¦¬ì ì½ëê° ììì ë³ê²½ë¤ ìì´ë (JTA를 ì¬ì©íë) 컨í
ì´ë-ê´ë¦¬ëë í¸ëìì
ë¤ì ë°°ì¹ëë ê²ì íì©í´ì¤ë¤."
+
+#: index.docbook:336
+msgid "appended paragraph 58"
+msgstr "ë¹ì ì´ ìíë ë§í¼ ë¹ì ì´ <literal>HibernateUtil.getCurrentSession();</literal>ì í¸ì¶í ì ìê³ , ë¹ì ì ì´ ì°ë ëì íì¬ <literal>Session</literal>ì íì ì»ì ê²ìì ë
¸í¸íë¼. ë¹ì ì ìë¸ë¦¿ ì½ë ë´ììë ëë ìë¸ë¦¿ íí° ë´ììë HTTP responseê° ì ì¡ë기 ì ì, ë¹ì ì ë¨ì ìì
ì´ ìë£ë íì <literal>Session</literal>ì´ íì¤í ë«íì§ëë¡ í´ì¼ íë¤. ë ë²ì§¸ ìµì
ì ì¢ì 측면ì ì¬ì´ lazy ì´ê¸°íì´ë¤: ë·°ê° ë ëë§ ë ë <literal>Session</literal>ì´ ì¬ì í ì´ë ¤ì ¸ ìì´ì, Hibernateë ë¹ì ì´ íì¬ ê°ì²´ ê·¸ëí를 ë¤ë¹ê²ì´í¸ íë ëì ì´ê¸°í ëì§ ìì ê°ì²´ë¤ì ë¡ëìí¬ ì ìë¤."
+
+#: index.docbook:344
+msgid "appended paragraph 59"
+msgstr "Hibernateë ë°ì´í°ë² ì´ì¤ë¡ë¶í° ê°ì²´ë¤ì ê²ìíëë° ì¬ì©ë ì ìë ë¤ìí ë©ìëë¤ì ê°ê³ ìë¤. ê°ì¥ ì ì°í ë°©ë²ì Hibernate Query Language (HQL)ì ì¬ì©íë ê²ì´ë¤. Hibernate Query Language (HQL)ì ë°°ì°ê¸°ê° ì½ê³ SQLì ëí ê°ë ¥í ê°ì²´ ì§í¥ íì¥ì´ë¤:"
+
+#: index.docbook:350
+msgid "appended paragraph 60"
+msgstr ""
+ "<![CDATA[Transaction tx = session.beginTransaction();\n"
+ "\n"
+ "Query query = session.createQuery(\"select c from Cat as c where c.sex = :sex\");\n"
+ "query.setCharacter(\"sex\", 'F');\n"
+ "for (Iterator it = query.iterate(); it.hasNext();) {\n"
+ " Cat cat = (Cat) it.next();\n"
+ " out.println(\"Female Cat: \" + cat.getName() );\n"
+ "}\n"
+ "\n"
+ "tx.commit();]]>"
+
+#: index.docbook:352
+msgid "appended paragraph 61"
+msgstr "Hibernateë ëí type-safe ì§ìë¤ì ê³µìí ìí¤ëë° ì¬ì©ë ì ìë ê°ì²´-ì§í¥ <emphasis>query by criteria</emphasis> APIì ì ê³µíë¤. ë¬¼ë¡ Hibernateë ë°ì´í°ë² ì´ì¤ìì 모ë SQL íµì ì ìí´ <literal>PreparedStatement</literal>ë¤ê³¼ íë¼ë¯¸í° ë°ì¸ë©ì ì¬ì©íë¤. ë¹ì ì ëí Hibernate ì§ì ì ì¸ SQL ì§ì í¹ì§ì ì¬ì©í ìë ìê±°ë ë문 ê²½ì°ì <literal>Session</literal>ì¼ë¡ë¶í° plain JDBC 커ë¥ì
ì ì»ì ìë ìë¤."
+
+#: index.docbook:362
+msgid "appended paragraph 62"
+msgstr "ë§ì§ë§ì¼ë¡"
+
+#: index.docbook:364
+msgid "appended paragraph 63"
+msgstr "ì°ë¦¬ë ì´ ìì íí ë¦¬ì¼ ë´ìì ë¨ì§ Hibernateì íë©´ì íê¸°ë§ íë¤. ì°ë¦¬ë ì°ë¦¬ì ìì ë¤ ìì ì´ë¤ ìë¸ë¦¿ ì§ì ì ì½ë를 í¬í¨íì§ ììì ë
¸í¸íë¼. ë¹ì ì´ ì í©íì§ë¥¼ ìë ¤ê³ í ë ë¹ì ì ë¹ì ìì ì ìë¸ë¦¿ì ìì±ìì¼ì¼ íê³ Hibernate ì½ë를 ì½ì
í´ì¼ íë¤."
+
+#: index.docbook:370
+msgid "appended paragraph 64"
+msgstr "ë°ì´í° ì ê·¼ ê³ì¸µì¼ë¡ì Hibernateë ë¹ì ì ì´í리ì¼ì´ì
ì ê°íê² íµí©ë¨ì ì¼ëì ëë¼. ëê° ëª¨ë ë¤ë¥¸ ë ì´ì´ë¤ì ìì ë©ì»¤ëì¦ì ìì¡´íë¤. ë¹ì ì ì´ ì¤ê³ì í¨ì¶ì íì¤í ì´í´íëë¡ íë¼."
+
+#: index.docbook:375
+msgid "appended paragraph 65"
+msgstr "ë³´ë¤ ë³µì¡í ì´í리ì¼ì´ì
ìì ë http://caveatemptor.hibernate.org/ 를 ë³´ê³ http://caveatemptor.hibernate.org/ì ìë ë¤ë¥¸ íí 리ì¼ë¤ì ì´í´ë³´ë¼."
+
+msgid "ROLES_OF_TRANSLATORS"
+msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+msgid "CREDIT_FOR_TRANSLATORS"
+msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/session_api.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/session_api.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/session_api.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1603 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr "ê°ì²´ë¤ë¡ ìì
í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate is a full object/relational mapping solution that not only shields "
+"the developer from the details of the underlying database management system, "
+"but also offers <emphasis>state management</emphasis> of objects. This is, "
+"contrary to the management of SQL <literal>statements</literal> in common "
+"JDBC/SQL persistence layers, a natural object-oriented view of persistence "
+"in Java applications."
+msgstr ""
+"Hibernateë 기본 ë°ì´í°ë² ì´ì¤ ê´ë¦¬ ìì¤í
ì ìì¸ë¡ë¶í° ê°ë°ìë¤ì ìíìì¼ì¤ "
+"ë¿ë§ ìëë¼, ëí ê°ì²´ë¤ì ëí <emphasis>ìí ê´ë¦¬</emphasis>를 ì ê³µíë í"
+"ëì ìì í ê°ì²´/ê´ê³í 매í ì루ì
ì´ë¤. ì´ê²ì ê³µíµì ì¸ JDBC/SQL ìì ê³ì¸µ"
+"ë¤ ë´ììì SQL <literal>문ì¥ë¤</literal>ì ëí ê´ë¦¬ìë ë°ëë¡, ìë° ì´í리"
+"ì¼ì´ì
ë¤ìì ììì ê´í ë§¤ì° ê³ ì í ê°ì²´-ì§í¥ì ê´ì ì´ë¤."
+
+#. 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>ìí</"
+"emphasis>ì ëí´ íì ìê°í´ì¼ íê³ , SQL 문ì¥ë¤ì ì¤íì ëí´ìë íìì ì´ì§ "
+"ìë¤. ì´ ë¶ë¶ì Hibernateì ìí´ ì²ë¦¬ëê³ ìì¤í
ì í¼í¬ë¨¼ì¤ë¥¼ íëí ë ì´í"
+"리ì¼ì´ì
ê°ë°ìì ì ì¼íê² ê´ë ¨ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr "Hibernate ê°ì²´ ìíë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr "Hibernate ë¤ì ê°ì²´ ìíë¤ì ì ìíê³ ì§ìíë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Transient</emphasis> - an object is transient if it has just been "
+"instantiated using the <literal>new</literal> operator, and it is not "
+"associated with a Hibernate <literal>Session</literal>. It has no persistent "
+"representation in the database and no identifier value has been assigned. "
+"Transient instances will be destroyed by the garbage collector if the "
+"application does not hold a reference anymore. Use the Hibernate "
+"<literal>Session</literal> to make an object persistent (and let Hibernate "
+"take care of the SQL statements that need to be executed for this "
+"transition)."
+msgstr ""
+"<emphasis>Transient</emphasis> - ë§ì¼ ê°ì²´ê° <literal>new</literal> ì°ì°ì를 "
+"ì¬ì©íì¬ ë°©ê¸ ì´ê¸°í ëìë¤ë©´ ê°ì²´ë transientì´ê³ , ê·¸ê²ì Hibernate "
+"<literal>Session</literal>ê³¼ ì°ê´ëì´ ìì§ ìë¤. ê·¸ê²ì ë°ì´í°ë² ì´ì¤ ë´ìì "
+"ìì íìì ê°ì§ ìê³ ìë³ì ê°ì´ í ë¹ëì§ ììë¤. ë§ì¼ ì´í리ì¼ì´ì
ì´ ë ì´"
+"ì 참조를 ìì íì§ ìì ê²½ì° transient ì¸ì¤í´ì¤ë¤ì ì°ë 기 ìì§ê¸°ì ìí´ íê´´"
+"ë ê²ì´ë¤. ê°ì²´ë¥¼ ììí ìí¤ëë° (ê·¸ë¦¬ê³ ì´ ì ì´(transition)ì ëí´ ì¤íë "
+"íìê° ìë SQL 문ì¥ë¤ì Hibernateë¡ íì¬ê¸ ì²ë¦¬íëë¡ íëë°) Hibernate "
+"<literal>Session</literal>ì ì¬ì©íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Persistent</emphasis> - a persistent instance has a representation "
+"in the database and an identifier value. It might just have been saved or "
+"loaded, however, it is by definition in the scope of a <literal>Session</"
+"literal>. Hibernate will detect any changes made to an object in persistent "
+"state and synchronize the state with the database when the unit of work "
+"completes. Developers do not execute manual <literal>UPDATE</literal> "
+"statements, or <literal>DELETE</literal> statements when an object should be "
+"made transient."
+msgstr ""
+"<emphasis>Persistent</emphasis> - íëì ìì ì¸ì¤í´ì¤ë ë°ì´í°ë² ì´ì¤ ë´ìì "
+"íëì íìì ê°ê³ íëì ìë³ì ê°ì ê°ëë¤. ê·¸ê²ì ë°©ê¸ ì ì¥ëìê±°ë ë¡ëë"
+"ìì ì ìì§ë§, ì ìì ê·¸ê²ì <literal>Session</literal>ì ë²ì ë´ì ìë¤. "
+"Hibernateë ìì ìíìì ê°ì²´ì ëí´ íí´ì§ ììì ë³ê²½ë¤ì ê²ì¶í´ë¼ ê²ì´ê³ "
+"ë¨ì ìì
ì´ ìë£ë ë ê·¸ ìí를 ë°ì´í°ë² ì´ì¤ì ë기í ìí¬ ê²ì´ë¤. ê°ë°ìë¤"
+"ì íëì ê°ì²´ê° transientë¡ ëì´ì¼ í ë <literal>UPDATE</literal> 문ì¥ë¤ì´"
+"ë <literal>DELETE</literal> 문ì¥ë¤ì ììì
ì¼ë¡ ì¤ííì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Detached</emphasis> - a detached instance is an object that has "
+"been persistent, but its <literal>Session</literal> has been closed. The "
+"reference to the object is still valid, of course, and the detached instance "
+"might even be modified in this state. A detached instance can be reattached "
+"to a new <literal>Session</literal> at a later point in time, making it (and "
+"all the modifications) persistent again. This feature enables a programming "
+"model for long running units of work that require user think-time. We call "
+"them <emphasis>application transactions</emphasis>, i.e., a unit of work "
+"from the point of view of the user."
+msgstr ""
+"<emphasis>Detached</emphasis> - íëì detached ì¸ì¤í´ì¤ë ììí ëìì§ë§, "
+"ê·¸ê²ì <literal>Session</literal>ì´ ë«íì§ ê°ì²´ì´ë¤. ë¬¼ë¡ ê·¸ ê°ì²´ì ëí 참조"
+"ë ì¬ì í ì í¨íê³ , ê·¸ detached ì¸ì¤í´ì¤ë ì´ ìíììë ë³ê²½ë ìë ìë¤. í"
+"ëì detached ì¸ì¤í´ì¤ë ëì¤ì ê·¸ê²(ê³¼ 모ë ë³ê²½ë¤)ì ë¤ì ììí ìì¼ì ì"
+"ë¡ì´ <literal>Session</literal>ì ë¤ì 첨ë¶ë ì ìë¤. ì´ í¹ì§ì ì¬ì©ìê° ì"
+"ê°í ìê°ì íìë¡ íë ì¥ ê¸°ê° ì¤íëë ìì
ë¨ì를 ìí íë¡ê·¸ëë° ëª¨íì "
+"ê°ë¥íê² í´ì¤ë¤. ì°ë¦¬ë ê·¸ê²ë¤ì <emphasis>ì´í리ì¼ì´ì
í¸ëìì
ë¤</"
+"emphasis>, ì¦ ì¬ì©ìì ê´ì ì ìì
ë¨ìë¼ê³ ë¶ë¥¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will now discuss the states and state transitions (and the Hibernate "
+"methods that trigger a transition) in more detail."
+msgstr ""
+"ì´ì ì°ë¦¬ë ìíë¤ê³¼ ìí ì ì´(transition)ë¤(ê·¸ë¦¬ê³ ì ì´ë¥¼ í¸ë¦¬ê±° ìí¤ë "
+"Hibernate ë©ìëë¤)ì ìì¸íê² ë
¼ìí ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr "ê°ì²´ë¤ì ììí ìí¤ê¸°"
+
+#. 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ì ìí´ "
+"<emphasis>transient</emphasis>ë¡ ê°ì£¼ëë¤. ì°ë¦¬ë ê·¸ê²ì ì¸ì
ê³¼ ì°ê´ì§ì´ì "
+"transient ì¸ì¤í´ì¤ë¥¼ <emphasis>ììí</emphasis> ìí¬ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If <literal>Cat</literal> has a generated identifier, the identifier is "
+"generated and assigned to the <literal>cat</literal> when <literal>save()</"
+"literal> is called. If <literal>Cat</literal> has an <literal>assigned</"
+"literal> identifier, or a composite key, the identifier should be assigned "
+"to the <literal>cat</literal> instance before calling <literal>save()</"
+"literal>. You can also use <literal>persist()</literal> instead of "
+"<literal>save()</literal>, with the semantics defined in the EJB3 early "
+"draft."
+msgstr ""
+"ë§ì¼ <literal>Cat</literal>ì´ ìì±ë ìë³ì를 ê°ì§ ê²½ì°, <literal>save()</"
+"literal>ê° í¸ì¶ë ë ê·¸ ìë³ìê° ìì±ëê³ <literal>cat</literal>ì í ë¹ëë¤. "
+"ë§ì¼ <literal>Cat</literal>ì´ íëì <literal>assigned</literal> ìë³ìë í"
+"ëì composite key를 ê°ì§ ê²½ì°, <literal>save()</literal>를 í¸ì¶í기 ì ì ê·¸ "
+"ìë³ìê°<literal>cat</literal> ì¸ì¤í´ì¤ì í ë¹ë ê²ì´ë¤. ë¹ì ì ëí EJB3 ì´"
+"기 ëëíí¸ìì ì ìë ìë¯¸ë¡ <literal>save()</literal> ëì <literal>persist"
+"()</literal>를 ì¬ì©í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>persist()</literal> makes a transient instance persistent. However, "
+"it does not guarantee that the identifier value will be assigned to the "
+"persistent instance immediately, the assignment might happen at flush time. "
+"<literal>persist()</literal> also guarantees that it will not execute an "
+"<literal>INSERT</literal> statement if it is called outside of transaction "
+"boundaries. This is useful in long-running conversations with an extended "
+"Session/persistence context."
+msgstr ""
+"UNTRANSLATED! <literal>persist()</literal> makes a transient instance "
+"persistent. However, it doesn't guarantee that the identifier value will be "
+"assigned to the persistent instance immediately, the assignment might happen "
+"at flush time. <literal>persist()</literal> also guarantees that it will not "
+"execute an <literal>INSERT</literal> statement if it is called outside of "
+"transaction boundaries. This is useful in long-running conversations with an "
+"extended Session/persistence context."
+
+#. 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> 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."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Alternatively, you can assign the identifier using an overloaded version of "
+"<literal>save()</literal>."
+msgstr ""
+"ë¤ë¥¸ ë°©ë²ì¼ë¡, ë¹ì ì <literal>save()</literal>ì ì¤ë²ë¡ëë ë²ì ì ì¬ì©íì¬ "
+"ìë³ì를 í ë¹í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the object you make persistent has associated objects (e.g. the "
+"<literal>kittens</literal> collection in the previous example), these "
+"objects can be made persistent in any order you like unless you have a "
+"<literal>NOT NULL</literal> constraint upon a foreign key column. There is "
+"never a risk of violating foreign key constraints. However, you might "
+"violate a <literal>NOT NULL</literal> constraint if you <literal>save()</"
+"literal> the objects in the wrong order."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ììí ìí¤ë ê°ì²´ê° ì°ê´ë ê°ì²´ë¤(ì를 ë¤ë©´. ìì ìì ì ìë "
+"<literal>kittens</literal> ì½ë ì
)ì ê°ê³ ìë¤ë©´, ë¹ì ì´ íëì foreign í¤ ì»¬"
+"ë¼ì ëí´ íëì <literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ë¥¼ ê°ì§ ìë í, ì´"
+"ë¤ ê°ì²´ë¤ì ë¹ì ì´ ì¢ìíë ììì ììë¡ ììí ëìì ìë ìë¤. foreign "
+"í¤ ì»¨ì¤í¸ë ì¸í¸ë¤ì ìë°°íë ìíì±ì´ ê²°ì½ ì¡´ì¬íì§ ìëë¤. íì§ë§ ë¹ì ì´ ì"
+"못ë ììë¡ ê·¸ ê°ì²´ë¤ì <literal>save()</literal> ìí¬ ê²½ì° ë¹ì ì "
+"<literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ë¥¼ ìë°°í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Usually you do not bother with this detail, as you will normally use "
+"Hibernate's <emphasis>transitive persistence</emphasis> feature to save the "
+"associated objects automatically. Then, even <literal>NOT NULL</literal> "
+"constraint violations do not occur - Hibernate will take care of everything. "
+"Transitive persistence is discussed later in this chapter."
+msgstr ""
+"ë¹ì ì´ ì°ê´ë ê°ì²´ë¤ì ìëì ì¼ë¡ ì ì¥ìí¤ëë° Hibernateì "
+"<emphasis>transitive persistence(ì ì´ ìì)</emphasis> í¹ì§ì ì¬ì©íë ê²ì "
+"ë§¤ì° ì¢ìí ê²ì´ë¯ë¡ ëê° ë¹ì ì ì´ ìì¸ë¥¼ ë´ë²ë ¤ëë¤. ê·¸ë <literal>NOT "
+"NULL</literal> 컨ì¤í¸ë ì¸í¸ ìë°°ë¤ì´ ë°ìëì§ ììì§ë¼ë - Hibernateë 모ë "
+"ê²ì ì²ë¦¬í ê²ì´ë¤. Transitive persistence(ì ì´ ìì)ì ì´ ì¥ìì íë°ë¶ìì "
+"ë
¼ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr "ê°ì²´ë¥¼ ë¡ëìí¤ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>load()</literal> methods of <literal>Session</literal> provide "
+"a way of retrieving a persistent instance if you know its identifier. "
+"<literal>load()</literal> takes a class object and loads the state into a "
+"newly instantiated instance of that class in a persistent state."
+msgstr ""
+"<literal>Session</literal>ì <literal>load()</literal> ë©ìëë¤ì ë§ì¼ ë¹ì "
+"ì´ ê·¸ê²(ìì ì¸ì¤í´ì¤)ì ìë³ìë¤ì ì´ë¯¸ ìê³ ìì ê²½ì°ì ìì ì¸ì¤í´ì¤ë¥¼ ê²"
+"ìíë ë°©ë²ì ë¹ì ìê² ì ê³µíë¤. <literal>load()</literal>ë íëì í´ëì¤ ê°"
+"체를 ì·¨íê³ ê·¸ ìí를 ìì(persistent) ìíë¡ ê·¸ í´ëì¤ì ìë¡ì´ ì´ê¸°í ë ì¸"
+"ì¤í´ì¤ ìì¼ë¡ ë¡ëìí¬ ê²ì´ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+msgstr "ë¤ë¥¸ ë°©ë²ì¼ë¡ ë¹ì ì 주ì´ì§ ì¸ì¤í´ì¤ ìì¼ë¡ ìí를 ë¡ëìí¬ ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Be aware that <literal>load()</literal> will throw an unrecoverable "
+"exception if there is no matching database row. If the class is mapped with "
+"a proxy, <literal>load()</literal> just returns an uninitialized proxy and "
+"does not actually hit the database until you invoke a method of the proxy. "
+"This is useful if you wish to create an association to an object without "
+"actually loading it from the database. It also allows multiple instances to "
+"be loaded as a batch if <literal>batch-size</literal> is defined for the "
+"class mapping."
+msgstr ""
+"ë§ì¼ ì¼ì¹íë ë°ì´í°ë² ì´ì¤ íì´ ì¡´ì¬íì§ ìì ê²½ì°ì <literal>load()</"
+"literal>ê° unrecoverable(복구 ë¶ê°ë¥í) ìì¸ìí©ì ëì§ ê²ìì ë
¸í¸íë¼. ë§"
+"ì¼ í´ëì¤ê° íë½ì를 ê°ëë¡ ë§¤íë ê²½ì°, <literal>load()</literal>ë ì´ê¸°í "
+"ëì§ ìì íë½ì를 ë¨ì§ ë°ííê³ ë¹ì ì´ ê·¸ íë½ìì ë©ìë를 í¸ì¶í기 ì ê¹ì§"
+"ë ì¤ì ë¡ ë°ì´í°ë² ì´ì¤ì ì ìíì§ ìëë¤. ë¹ì ì´ ë°ì´í°ë² ì´ì¤ë¡ë¶í° ê°ì²´ì ë"
+"í ì°ê´ì ì¤ì ë¡ ë¡ëìí¤ì§ ìê³ ì ê°ì²´ì ëí ì°ê´ì ìì±ìí¤ê³ ì ìí ê²½ì°"
+"ì ì´ í¹ì§ì´ ë§¤ì° ì ì©íë¤. ë§ì¼ <literal>batch-size</literal>ê° class 매í"
+"ì ì ìëë ê²½ì° ê·¸ê²ì ëí ë¤ì¤ ì¸ì¤í´ì¤ë¤ì´ íëì ë°°ì¹ë¡ì ë¡ëëë ê²ì "
+"íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you are not certain that a matching row exists, you should use the "
+"<literal>get()</literal> method which hits the database immediately and "
+"returns null if there is no matching row."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ íëì ì¼ì¹íë íì´ ì¡´ì¬íëì§ë¥¼ íì í ì ìì ê²½ì°, ë¹ì ì "
+"<literal>get()</literal> ë©ìë를 ì¬ì©í´ì¼ íë¤. ê·¸ê²(<literal>get()</"
+"literal> ë©ìë)ë ë°ì´í°ë² ì´ì¤ì ì¦ì ì ìíê³ ë§ì¼ ì¼ì¹íë íì´ ìì ê²½ì° "
+"nullì ë°ííë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even load an object using an SQL <literal>SELECT ... FOR UPDATE</"
+"literal>, using a <literal>LockMode</literal>. See the API documentation for "
+"more information."
+msgstr ""
+"ë¹ì ì íëì <literal>LockMode</literal>를 ì¬ì©íë, <literal>SELECT ... "
+"FOR UPDATE</literal>를 ì¬ì©íì¬ íëì ê°ì²´ë¥¼ ë¡ëìí¬ ìë ìë¤. ì¶ê° ì ë³´"
+"ë API 문ì를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Any associated instances or contained collections will <emphasis>not</"
+"emphasis> be selected <literal>FOR UPDATE</literal>, unless you decide to "
+"specify <literal>lock</literal> or <literal>all</literal> as a cascade style "
+"for the association."
+msgstr ""
+"ì´ë¤ ì°ê´ë ì¸ì¤í´ì¤ë¤ì´ë í¬í¨ë ì½ë ì
ë¤ì ë¹ì ì´ ê·¸ ì°ê´ì ëí ì¼ì¤ì¼ì´"
+"ë ì¤íì¼ë¡ì <literal>lock</literal> ëë <literal>all</literal>ì ì§ì íë"
+"ë¡ ê²°ì íì§ ìë í, <literal>FOR UPDATE</literal>ë¡ ì íëì§ ììì ë
¸í¸í"
+"ë¼."
+
+#. 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> ë©ìë를 ì¬ì©íì¬, ì무ëë íëì ê°ì²´ì 모ë "
+"ê·¸ê²ì ì½ë ì
ë¤ì ë¤ì ë¡ëìí¤ë ê²ì´ ê°ë¥íë¤. ë°ì´í°ë² ì´ì¤ í¸ë¦¬ê±°ë¤ì´ ê·¸ "
+"ê°ì²´ì íë¡í¼í°ë¤ ì¤ ì´ë¤ ê²ì ì´ê¸°í ìí¤ëë° ì¬ì©ë ë ì´ê²ì´ ì ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"How much does Hibernate load from the database and how many SQL "
+"<literal>SELECT</literal>s will it use? This depends on the "
+"<emphasis>fetching strategy</emphasis>. This is explained in <xref linkend="
+"\"performance-fetching\" />."
+msgstr ""
+"ì¤ìí ì§ë¬¸ì´ ëê° ì´ ì§ì ìì ëíëë¤: Hibernateë ë°ì´í°ë² ì´ë¡ë¶í° ê·¸ê²ì "
+"ì¼ë§ë ë§ì´ ë¡ëìí¤ê³ ê·¸ë¦¬ê³ ì¼ë§ë ë§ì SQL <literal>SELECT</literal>ë¤ì´ "
+"ê·¸ê²ì ì¬ì©í ê²ì¸ê°? ì´ê²ì <emphasis>íì¹ ë°©ë</emphasis>ì ìì¡´íê³ <xref "
+"linkend=\"performance-fetching\"/>ì ì¤ëª
ëì´ ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr "ì§ìí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you do not know the identifiers of the objects you are looking for, you "
+"need a query. Hibernate supports an easy-to-use but powerful object oriented "
+"query language (HQL). For programmatic query creation, Hibernate supports a "
+"sophisticated Criteria and Example query feature (QBC and QBE). You can also "
+"express your query in the native SQL of your database, with optional support "
+"from Hibernate for result set conversion into objects."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë¹ì ì´ ì°¾ê³ ìë ê°ì²´ë¤ì ëí ìë³ìë¤ì 모를 ê²½ì°, ë¹ì ì íë"
+"ì ì§ì를 íìë¡ íë¤. Hibernateë ì¬ì©ì´ ì½ì§ë§ ê°ë ¥í ê°ì²´ ì§í¥ ì§ì ì¸ì´"
+"(HQL)를 ì§ìíë¤. íë¡ê·¸ë¨ ìì ì§ì ìì±ì ìí´, Hibernateë ì êµí "
+"Criteria ë° Example ì§ì í¹ì§(QBCì QBE)를 ì§ìíë¤. ë¹ì ì ëí ê°ì²´ë¤ë¡ì "
+"ê²°ê³¼ ì
ë³íì ìí ì íì ì¸ Hibernateì ì§ìì¼ë¡, ë¹ì ì ë°ì´í°ë² ì´ì¤ì "
+"native SQL ìì ë¹ì ì ì§ì를 ííí ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr "ì§ìë¤ì ì¤íí기"
+
+#. 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 ì§ìì native SQL ì§ìë <literal>org.hibernate.Query</literal>ì ì¸ì¤í´"
+"ì¤ë¡ ííëë¤. ì´ ì¸í°íì´ì¤ë íë¼ë¯¸í° ë°ì¸ë©, ê²°ê³¼ì
í¸ë¤ë§ì ìí, ê·¸ë¦¬ê³ "
+"ì¤ì ì§ìì ì¤íì ìí ë©ìëë¤ì ì ê³µíë¤. ë¹ì ì íì íì¬ "
+"<literal>Session</literal>ì ì¬ì©íì¬ íëì <literal>Query</literal>를 ì»ë"
+"ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A query is usually executed by invoking <literal>list()</literal>. The "
+"result of the query will be loaded completely into a collection in memory. "
+"Entity instances retrieved by a query are in a persistent state. The "
+"<literal>uniqueResult()</literal> method offers a shortcut if you know your "
+"query will only return a single object. Queries that make use of eager "
+"fetching of collections usually return duplicates of the root objects, but "
+"with their collections initialized. You can filter these duplicates through "
+"a <literal>Set</literal>."
+msgstr ""
+"íëì ì§ìë ëê° <literal>list()</literal>를 í¸ì¶íì¬ ì¤íëê³ , ì§ìì ê²°ê³¼"
+"ë ë©ëª¨ë¦¬ ë´ìì íëì ì½ë ì
ìì¼ë¡ ì ì²´ì ì¼ë¡ ë¡ëë ê²ì´ë¤. íëì ì§ì"
+"ì ìí´ ê²ìë ìí°í° ì¸ì¤í´ì¤ë¤ì ìì(persistent) ìíì ìë¤. ë¹ì ì ì§ì"
+"ê° íëì ê°ì²´ë¥¼ ì¤ì§ ë°íí ê²ìì ë¹ì ì´ ìê³ ìì ê²½ì°ì "
+"<literal>uniqueResult()</literal> ë©ìëë ë¨ì¶ì ì ê³µíë¤. ì½ë ì
ë¤ì ëí´ "
+"eager íì¹ì ì¬ì©íë ì§ìë¤ì ëê° (ê·¸ê²ë¤ì ì´ê¸°íë ì½ë ì
ë¤ì ê°ì§) ë£¨í¸ "
+"ê°ì²´ë¤ì ëí ì¤ë³µë¤ì ëê° ë°ííë¤. ë¹ì ì <literal>Set</literal>ì íµí´ ì´"
+"ë¤ ì¤ë³µë¤ì ê°ë¨íê² íí°ë§í ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr "ê²°ê³¼ë¤ì ë°ë³µí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Occasionally, you might be able to achieve better performance by executing "
+"the query using the <literal>iterate()</literal> method. This will usually "
+"be the case if you expect that the actual entity instances returned by the "
+"query will already be in the session or second-level cache. If they are not "
+"already cached, <literal>iterate()</literal> will be slower than "
+"<literal>list()</literal> and might require many database hits for a simple "
+"query, usually <emphasis>1</emphasis> for the initial select which only "
+"returns identifiers, and <emphasis>n</emphasis> additional selects to "
+"initialize the actual instances."
+msgstr ""
+"ì¢
ì¢
, ë¹ì ì <literal>iterate()</literal> ë©ìë를 ì¬ì©íì¬ ì§ì를 ì¤íí¨ì¼ë¡"
+"ì¨ ë ëì í¼í¬ë¨¼ì¤ë¥¼ ì±ì·¨íë ê²ì´ ê°ë¥í ì ìë¤. ì´ê²ì ì¤ì§ ëê° ì§ìì "
+"ìí´ ë°íëë ì¤ì ìí°í° ì¸ì¤í´ì¤ë¤ì´ ì´ë¯¸ ì¸ì
ë´ì ìê±°ë second-level ìº"
+"ì ë´ì ìì ê²ìì ë¹ì ì´ ììíë ê²½ì°ì¼ ê²ì´ë¤. ë§ì¼ ê·¸ê²ë¤ì´ ì´ë¯¸ ìºìë"
+"ì§ ììë¤ë©´, <literal>iterate()</literal>ë <literal>list()</literal> ë³´ë¤ "
+"ë ë릴 ê²ì´ê³ ê°ë¨í ì§ìì ëí´ ë§ì ë°ì´í°ë² ì´ì¤ ì ìë¤ì, ëê° ì¤ì§ ìë³"
+"ìë¤ì ë°ííë ì´ê¸° selectì ëí´ <emphasis>1</emphasis>ë²ì ì ìê³¼ ì¤ì ì¸"
+"ì¤í´ì¤ë¤ì ì´ê¸°í ìí¤ë ì¶ê°ì ì¸ selectë¤ì ëí´ <emphasis>n</emphasis> ë²"
+"ì ì ìì íìë¡ í ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr "ííë¤ì ë°ííë ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
+"as an array:"
+msgstr ""
+"Hibernate ì§ìë¤ì ëëë¡ ê°ì²´ë¤ì ííë¤ì ë°ííê³ , ê·¸ ê²½ì°ì ê°ê°ì íí"
+"ì ë°°ì´ë¡ì ë°íëë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr "ì¤ì¹¼ë¼ ê²°ê³¼ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Queries can specify a property of a class in the <literal>select</literal> "
+"clause. They can even call SQL aggregate functions. Properties or aggregates "
+"are considered \"scalar\" results and not entities in persistent state."
+msgstr ""
+"ì§ìë¤ì <literal>select</literal> ì ë´ì íëì í´ëì¤ì ëí íëì íë¡í¼"
+"í°ë¥¼ ì§ì í ì ìë¤. ê·¸ê²ë¤ì ì¬ì§ì´ SQL ì§ê³ í¨ìë¤ì í¸ì¶í ìë ìë¤. íë¡"
+"í¼í°ë¤ì´ë aggregateë¤ì \"ì¤ì¹¼ë¼\" ê²°ê³¼ë¤(ê·¸ë¦¬ê³ ìì ìíì ìë ìí°í°ë¤"
+"ì´ ìë ê²ì¼)ë¡ ê°ì£¼ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr "ë°ì¸ë íë¼ë¯¸í°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Methods on <literal>Query</literal> are provided for binding values to named "
+"parameters or JDBC-style <literal>?</literal> parameters. <emphasis>Contrary "
+"to JDBC, Hibernate numbers parameters from zero.</emphasis> Named parameters "
+"are identifiers of the form <literal>:name</literal> in the query string. "
+"The advantages of named parameters are as follows:"
+msgstr ""
+"<literal>Query</literal> ìì ë©ìëë¤ì ëª
ëª
ë íë¼ë¯¸í°ë¤ ëë JDBC-ì¤íì¼"
+"ì <literal>?</literal> íë¼ë¯¸í°ë¤ì ë°ì¸ë© ê°ë¤ì ì ê³µíë¤. <emphasis>JDBCì"
+"ë ëì¡°ì ì¼ë¡, Hibernate ì«ì íë¼ë¯¸í°ë¤ì 0ìì ììëë¤.</emphasis> ëª
ëª
ë "
+"íë¼ë¯¸í°ë¤ì ì§ì 문ìì´ ììì <literal>:name</literal> íìì ìë³ìë¤ì´"
+"ë¤. ëª
ëª
ë íë¼ë¯¸í°ë¤ì ì¥ì ë¤ì ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"named parameters are insensitive to the order they occur in the query string"
+msgstr "ëª
ëª
ë íë¼ë¯¸í°ë¤ì ê·¸ê²ë¤ì´ ì§ì 문ìì´ ë´ì ë°ìíë ììì ê´ê³ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr "ê·¸ê²ë¤ì ëì¼í ì§ì ë´ìì ì¬ë¬ ë² ë°ìí ì ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr "ê·¸ê²ì ì기-ì¤ëª
ì ì´ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr "쪽매ê¹"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you need to specify bounds upon your result set, that is, the maximum "
+"number of rows you want to retrieve and/or the first row you want to "
+"retrieve, you can use methods of the <literal>Query</literal> interface:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ ë¹ì ì ê²°ê³¼ ì
ì ê²½ê³(ë¹ì ì´ ê²ìíê³ ì ìíë ìµë ê°ì ê·¸ë¦¬ê³ /"
+"ëë ë¹ì ì´ ê²ìíê³ ì ìíë 첫 ë²ì§¸ í)ì ì§ì í íìê° ìë¤ë©´ ë¹ì ì "
+"<literal>Query</literal> ì¸í°íì´ì¤ì ë©ìëë¤ì ì¬ì©í´ì¼ íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate knows how to translate this limit query into the native SQL of "
+"your DBMS."
+msgstr ""
+"Hibernateë ì´ limit ì§ì를 ë¹ì ì DBMSì native SQLë¡ ë²ìíë ë°©ë²ì ìê³ "
+"ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "ì¤í¬ë¡¤ ê°ë¥í iteration"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your JDBC driver supports scrollable <literal>ResultSet</literal>s, the "
+"<literal>Query</literal> interface can be used to obtain a "
+"<literal>ScrollableResults</literal> object that allows flexible navigation "
+"of the query results."
+msgstr ""
+"ë¹ì ì JDBC ëë¼ì´ë²ê° ì¤í¬ë¡¤ ê°ë¥í <literal>ResultSet</literal>ë¤ì ì§ìí "
+"ê²½ì°, <literal>Query</literal> ì¸í°íì´ì¤ë <literal>ScrollableResults</"
+"literal> ê°ì²´ë¥¼ ì»ëë° ì¬ì©ë ì ìê³ , ê·¸ê²ì ì§ì ê²°ê³¼ë¤ì ëí ì ì°í ë¤ë¹"
+"ê²ì´ì
ì íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that an open database connection and cursor is required for this "
+"functionality. Use <literal>setMaxResult()</literal>/<literal>setFirstResult"
+"()</literal> if you need offline pagination functionality."
+msgstr ""
+"ì´ë ¤ì§ ë°ì´í°ë² ì´ì¤ 커ë¥ì
(ê³¼ 커ì)ê° ì´ ê¸°ë¥ì íìí¨ì ë
¸í¸íê³ , ë§ì¼ ë¹ì "
+"ì´ ìª½ë§¤ê¹ ê¸°ë¥ì ìëìí¬ íìê° ìë¤ë©´ <literal>setMaxResult()</literal>/"
+"<literal>setFirstResult()</literal>를 ì¬ì©íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr "ëª
ëª
ë ì§ìë¤ì 구체í ìí¤ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also define named queries in the mapping document. Remember to use a "
+"<literal>CDATA</literal> section if your query contains characters that "
+"could be interpreted as markup."
+msgstr ""
+"ë¹ì ì ëí 매í 문ì ìì ëª
ëª
ë ì§ìë¤ì ì ìí ì ìë¤.(ë§ì¼ ë¹ì ì ì§ì"
+"ê° ë§í¬ì
ì¼ë¡ì í´ìë ì ìë 문ìë¤ì í¬í¨í ê²½ì°ì <literal>CDATA</"
+"literal> ì¹ì
ì ì¬ì©íë ê²ì 기ìµíë¼))"
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr "íë¼ë¯¸í° ë°ì¸ë©ê³¼ ì¤íì íë¡ê·¸ë¨ ìì¼ë¡ íí´ì§ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The actual program code is independent of the query language that is used. "
+"You can also define native SQL queries in metadata, or migrate existing "
+"queries to Hibernate by placing them in mapping files."
+msgstr ""
+"ì¤ì íë¡ê·¸ë¨ ì½ëë ì¬ì©ëë ì§ì ì¸ì´ì ë
립ì ì´ê³ , ë¹ì ì ëí ë©íë°ì´í°"
+"ë¡ native SQL ì§ìë¤ì ì ìí ìë ìê±°ë ê·¸ê²ë¤ì 매í íì¼ë¤ ìì 기존 ì§ì"
+"ë¤ì ìì¹ì§ìì¼ë¡ì¨ 기존 ì§ìë¤ì Hibernateë¡ ì´ì ìí¬ ìë ììì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Also note that a query declaration inside a <literal><hibernate-"
+"mapping></literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal><class></literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+"ëí <literal><hibernate-mapping></literal> ìì ë´ìì íëì ì§ì ì "
+"ì¸ì ê·¸ ì§ìì ëí ì ì ì ì¼ ì´ë¦ì íìë¡ íê³ , ë°ë©´ì <literal><"
+"class></literal> ìì ë´ììì ì§ì ì ì¸ì í´ëì¤ ì´ë¦ì¼ë¡ ìì§ëì´ë¦ì 첨"
+"ê°íì¬ ìëì ì¼ë¡ ì ì¼íê² ë§ë¤ì´ì§ë¤. ì를 ë¤ì´ <literal>eg.Cat."
+"ByNameAndMaximumWeight</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr "ì½ë ì
ë¤ì íí°ë§ í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A collection <emphasis>filter</emphasis> is a special type of query that can "
+"be applied to a persistent collection or array. The query string can refer "
+"to <literal>this</literal>, meaning the current collection element."
+msgstr ""
+"ì½ë ì
<emphasis>íí°</emphasis>ë ìì ì½ë ì
ëë ë°°ì´ì ì ì©ë ì ìë ì§"
+"ìì í¹ë³í íì
ì´ë¤. ì§ì 문ìì´ì íì¬ì ì½ë ì
ìì를 ì미íë "
+"<literal>this</literal>를 참조í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The returned collection is considered a bag that is a copy of the given "
+"collection. The original collection is not modified. This is contrary to the "
+"implication of the name \"filter\", but consistent with expected behavior."
+msgstr ""
+"ë°íëë ì½ë ì
ì íëì bagì¼ë¡ ê°ì£¼ëê³ , ê·¸ê²ì 주ì´ì§ ì½ë ì
ì ëí ì¬ë³¸ì´"
+"ë¤. ìëì ì½ë ì
ì ë³ê²½ëì§ ìëë¤ (ì´ê²ì ì´ë¦ \"filter\"ì ì미ìë ì ë°ë"
+"ì´ì§ë§, ììëë íìì ì¼ì¹ëë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Observe that filters do not require a <literal>from</literal> clause, "
+"although they can have one if required. Filters are not limited to returning "
+"the collection elements themselves."
+msgstr ""
+"íí°ë¤ì <literal>from</literal> ì ì íìë¡ íì§ ììì ê´ì°°íë¼(íìí ê²½ì°"
+"ì íí°ë¤ì´ í ê°ì from ì ì ê°ì§ ì ììì§ë¼ë). íí°ë¤ì ì½ë ì
ììë¤ ì"
+"ì²´ë¤ì ë°ííë ê²ì¼ë¡ íì ëì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Even an empty filter query is useful, e.g. to load a subset of elements in a "
+"large collection:"
+msgstr ""
+"ì¬ì§ì´ íëì 공백ì íí° ì§ìë ì를 ë¤ì´ ê±°ëí ì½ë ì
ë´ì ìë ììë¤ì "
+"ë¶ë¶ì§í©ë¤ì ë¡ëìí¤ëë° ì ì©íë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr "Criteria ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"HQL is extremely powerful, but some developers prefer to build queries "
+"dynamically using an object-oriented API, rather than building query "
+"strings. Hibernate provides an intuitive <literal>Criteria</literal> query "
+"API for these cases:"
+msgstr ""
+"HQLì ê·¹í ê°ë ¥íì§ë§ ëªëª ê°ë°ìë¤ì ì§ì 문ìì´ë¤ì ë¹ëí기 ë³´ë¤, ê°ì²´ ì§"
+"í¥ API를 ì¬ì©íì¬ ëì ì¼ë¡ ì§ìë¤ì ë¹ëìí¤ë ê²ì ì í¸íë¤. Hibernateë ì´"
+"ë¤ ê²½ì°ë¤ì ìí ì§ê´ì ì¸ <literal>Criteria</literal> query API를 ì ê³µíë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Criteria</literal> and the associated <literal>Example</"
+"literal> API are discussed in more detail in <xref linkend=\"querycriteria"
+"\" />."
+msgstr ""
+"<literal>Criteria</literal>ì ì°ê´ë <literal>Example</literal> API ë <xref "
+"linkend=\"querycriteria\"/>ìì ìì¸íê² ë
¼ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr "native SQLìì ì§ìë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can express a query in SQL, using <literal>createSQLQuery()</literal> "
+"and let Hibernate manage the mapping from result sets to objects. You can at "
+"any time call <literal>session.connection()</literal> and use the JDBC "
+"<literal>Connection</literal> directly. If you choose to use the Hibernate "
+"API, you must enclose SQL aliases in braces:"
+msgstr ""
+"ë¹ì ì <literal>createSQLQuery()</literal>를 ì¬ì©íì¬ SQL ìì íëì ì§ì를 "
+"ííí ì ìê³ , Hibernateë¡ íì¬ê¸ ê²°ê³¼ ì
ë¤ë¡ë¶í° ê°ì²´ë¤ë¡ì 매íì ì²ë¦¬íë"
+"ë¡ í ìë ìë¤. ë¹ì ì ì무ëë <literal>session.connection()</literal>ì í¸"
+"ì¶í ì ìê³ ì§ì JDBC <literal>Connection</literal>ì ì¬ì©í ì ììì ë
¸í¸"
+"íë¼. ë§ì¼ ë¹ì ì´ Hibernate API를 ì¬ì©íê³ ì ì íí ê²½ì°ì , ë¹ì ì SQL alias"
+"ë¤ì ì¤ê´í¸ë¤ ìì í¬í¨ìì¼ì¼ íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"SQL queries can contain named and positional parameters, just like Hibernate "
+"queries. More information about native SQL queries in Hibernate can be found "
+"in <xref linkend=\"querysql\" />."
+msgstr ""
+"SQL ì§ìë¤ì Hibernate ì§ìë¤ì²ë¼ ëª
ëª
ë íë¼ë¯¸í°ë¤ê³¼ ìì¹ íë¼ë¯¸í°ë¤ì í¬í¨"
+"í ìë ìë¤. SQL ì§ìë¤ì ëí ì¶ê° ì ë³´ë <xref linkend=\"querysql\"/>ìì "
+"ì°¾ì ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr "ìì ê°ì²´ë¤ì ë³ê²½í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Transactional persistent instances</emphasis> (i.e. objects "
+"loaded, saved, created or queried by the <literal>Session</literal>) can be "
+"manipulated by the application, and any changes to persistent state will be "
+"persisted when the <literal>Session</literal> is <emphasis>flushed</"
+"emphasis>. This is discussed later in this chapter. There is no need to call "
+"a particular method (like <literal>update()</literal>, which has a different "
+"purpose) to make your modifications persistent. The most straightforward way "
+"to update the state of an object is to <literal>load()</literal> it and then "
+"manipulate it directly while the <literal>Session</literal> is open:"
+msgstr ""
+"<emphasis>í¸ëìì
ìì ìì ì¸ì¤í´ì¤ë¤</emphasis> (ì를ë¤ë©´. "
+"<literal>Session</literal>ì ìí´ ë¡ëëê³ , ì ì¥ëê³ , ìì±ëê±°ë ì§ìë ê°ì²´"
+"ë¤)ì ì´í리ì¼ì´ì
ì ìí´ ì²ë¦¬ë ì ìê³ ìì ìíì ëí ììì ë³ê²½ë¤ì "
+"<literal>Session</literal>ì´ <emphasis>flushë </emphasis> ë ììí ë ê²ì´ë¤"
+"(ì´ ì¥ì ë· ë¶ë¶ìì ë
¼ìë¨). ë¹ì ì ë³ê²½ë¤ì ììí ìí¤ê¸° ìí´ (ë¤ë¥¸ ì©ë"
+"를 ê°ì§ <literal>update()</literal>ì ê°ì) í¹ë³í ë©ìë를 í¸ì¶í íìê° ì"
+"ë¤. ë°ë¼ì ê°ì²´ì ìí를 ì
ë°ì´í¸ ìí¤ë ê°ì¥ ê°ë¨í ë°©ë²ì "
+"<literal>Session</literal>ì´ ì´ë ¤ ìë ëì, ê·¸ê²ì <literal>load()</literal>"
+"ìí¤ê³ ëì, ê·¸ê²ì ì§ì ì²ë¦¬íë ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes this programming model is inefficient, as it requires in the same "
+"session both an SQL <literal>SELECT</literal> to load an object and an SQL "
+"<literal>UPDATE</literal> to persist its updated state. Hibernate offers an "
+"alternate approach by using detached instances."
+msgstr ""
+"ëëë¡ ì´ íë¡ê·¸ëë° ëª¨íì ë¶ì¶©ë¶íë¤. ìëíë©´ ê·¸ê²ì ëì¼í ì¸ì
ë´ìì "
+"(ê°ì²´ë¥¼ ë¡ëìí¤ë) SQL <literal>SELECT</literal>ì (ê·¸ê²ì ì
ë°ì´í¸ë ìí"
+"를 ììí ìí¤ë) SQL <literal>UPDATE</literal> ìì를 íìë¡ í ê²ì´ê¸° ë문"
+"ì´ë¤. ê·¸ë¬ë¯ë¡ Hibernateë detached ì¸ì¤í´ì¤ë¤ì ì¬ì©íë ëìì ì¸ ì ê·¼ë²ì "
+"ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not offer its own API for direct execution of "
+"<literal>UPDATE</literal> or <literal>DELETE</literal> statements. Hibernate "
+"is a <emphasis>state management</emphasis> service, you do not have to think "
+"in <emphasis>statements</emphasis> to use it. JDBC is a perfect API for "
+"executing SQL statements, you can get a JDBC <literal>Connection</literal> "
+"at any time by calling <literal>session.connection()</literal>. Furthermore, "
+"the notion of mass operations conflicts with object/relational mapping for "
+"online transaction processing-oriented applications. Future versions of "
+"Hibernate can, however, provide special mass operation functions. See <xref "
+"linkend=\"batch\" /> for some possible batch operation tricks."
+msgstr ""
+"Hibernateë <placeholder-1/> ë¬¸ì¥ ëë <placeholder-2/> 문ì¥ì ì§ì ì ì¸ ì¤í"
+"ì ìí ê·¸ê² ìì ì API를 ì ê³µíì§ ììì ë
¸í¸íë¼. Hibernateë íëì "
+"<placeholder-3/> ìë¹ì¤ì´ê³ , ë¹ì ì ê·¸ê²ì ì¬ì©í <placeholder-4/>ì ìê°í"
+"ì§ ë§ìì¼ íë¤. JDBCë SQL 문ì¥ë¤ì ì¤íìí¤ë ìì í APIì´ê³ , ë¹ì ì "
+"<placeholder-5/>ì í¸ì¶íì¬ ì무ëë í ê°ì JDBC <placeholder-6/>ì ì»ì ì "
+"ìë¤. ê²ë¤ê° ëë ì¤í¼ë ì´ì
ì ê°ë
ì ì¨ë¼ì¸ í¸ëìì
ì²ë¦¬-ì§í¥ì ì¸ ì´í리ì¼"
+"ì´ì
ë¤ì ìí ê°ì²´/ê´ê³í 매íê³¼ 충ëíë¤. íì§ë§ Hibernateì ì¥ë ë²ì ë¤ì "
+"í¹ë³í ëì©ëì ì¤í¼ë ì´ì
기ë¥ë¤ì ì ê³µí ìë ìë¤. ëªëª ê°ë¥í ë°°ì¹ ì¤í¼ë "
+"ì´ì
í¸ë¦ë¤ì ëí´ìë <xref linkend=\"batch\"/>ì ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr "detached ê°ì²´ë¤ì ë³ê²½ìí¤ê¸°"
+
+#. 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 ""
+"ë§ì ì´í리ì¼ì´ì
ë¤ì íëì í¸ëìì
ë´ìì íëì ê°ì²´ë¥¼ ê²ìíê³ , ì²ë¦¬ë¥¼ "
+"ìí UI ê³ì¸µì¼ë¡ ê·¸ê²ì ì ì¡íê³ , ê·¸ë° ë¤ì ìë¡ì´ í¸ëìì
ë´ìì ë³ê²½ë¤ì "
+"ì ì¥í íìê° ìë¤. ê³ ëì-ëìì± íê²½ìì ì´ë° ì¢
ë¥ì ì ê·¼ë²ì ì¬ì©íë ì´í"
+"리ì¼ì´ì
ë¤ì ëê° ìì
ì \"긴\" ë¨ì를 íì¤í 격리ìí¤ê¸° ìí´ ë²ì í ë ë°ì´"
+"í°ë¥¼ ì¬ì©íë¤."
+
+#. 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> ë©ìë를 ì¬ì©íì¬ detached ì¸ì¤í´ì¤ë¤ì ì¬ì²¨ë¶ë¥¼ ì ê³µí¨ì¼ë¡"
+"ì¨ ì´ ëª¨íì ì§ìíë¤:"
+
+#. 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>secondSession</literal>ì ìí´ ì´ë¯¸ ë¡ëëìì ê²½ì°ì ì´í리ì¼ì´ì
"
+"ì´ ê·¸ê²ì ë¤ì ì¬ì²¨ë¶íë ¤ê³ ìëí ë, ìì¸ìí©ì´ ëì ¸ì¡ì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Use <literal>update()</literal> if you are certain that the session does not "
+"contain an already persistent instance with the same identifier. Use "
+"<literal>merge()</literal> if you want to merge your modifications at any "
+"time without consideration of the state of the session. In other words, "
+"<literal>update()</literal> is usually the first method you would call in a "
+"fresh session, ensuring that the reattachment of your detached instances is "
+"the first operation that is executed."
+msgstr ""
+"ë§ì¼ ê·¸ ì¸ì
ì´ ëì¼í ìë³ì를 ê°ì§ ìì ì¸ì¤í´ì¤ë¥¼ ì´ë¯¸ í¬í¨íì§ ììì ë¹ì "
+"ì´ íì íë ê²½ì°ìë <literal>update()</literal>를 ì¬ì©íê³ , ë§ì¼ ë¹ì ì´ ì¸ì
"
+"ì ìí를 ê³ ë ¤íì§ ììì±ë¡ ì무ëë ë¹ì ì ë³ê²½ì ë³í©ìí¤ê³ ì ìí ê²½ì°ì"
+"ë <literal>merge()</literal>를 ì¬ì©íë¼. ë¬ë¦¬ ë§í´, ë¹ì ì detached ì¸ì¤í´ì¤"
+"ë¤ì ëí ì¬ì²¨ë¶ê° ì¤íëë 첫 ë²ì§¸ ì¤í¼ë ì´ì
ìì íì¤í í¨ì¼ë¡ì¨, "
+"<literal>update()</literal>ë ëê° ê° ë§ë¤ì´ì§ ì¸ì
ìì ë¹ì ì´ í¸ì¶íê² ë "
+"첫 ë²ì§¸ ë©ìëì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The application should individually <literal>update()</literal> detached "
+"instances that are reachable from the given detached instance "
+"<emphasis>only</emphasis> if it wants their state to be updated. This can be "
+"automated using <emphasis>transitive persistence</emphasis>. See <xref "
+"linkend=\"objectstate-transitive\" /> for more information."
+msgstr ""
+"ì´í리ì¼ì´ì
ì ë§ì¼ ê·¸ê²ì´ detached ì¸ì¤í´ì¤ë¤ì ìíê° ëí ì
ë°ì´í¸ ëë ê²"
+"ì ìí ê²½ì°ì<emphasis>ë§</emphasis> 주ì´ì§ detached ì¸ì¤í´ì¤ë¡ë¶í° ëë¬ ê°"
+"ë¥í detached ì¸ì¤í´ì¤ë¤ì ê°ë³ì ì¼ë¡<literal>update()</literal> ìí¬ ê²ì´"
+"ë¤. ì´ê²ì ë¬¼ë¡ <emphasis>transitive persistence(ì ì´ ìì)</emphasis>ì ì¬ì©"
+"íì¬ ìëí ë ì ìê³ , <xref linkend=\"objectstate-transitive\"/>를 ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>lock()</literal> method also allows an application to "
+"reassociate an object with a new session. However, the detached instance has "
+"to be unmodified."
+msgstr ""
+"<literal>lock()</literal> ë©ìëë ëí íëì ê°ì²´ë¥¼ ìë¡ì´ ì¸ì
ì ëí´ ë¤"
+"ì ì°ê´ìí¤ëê²ì ì´í리ì¼ì´ì
ìê² íì©í´ì¤ë¤. íì§ë§ detached ì¸ì¤í´ì¤ë ë³"
+"ê²½ëì§ ììì¼ íë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Note that <literal>lock()</literal> can be used with various "
+"<literal>LockMode</literal>s. See the API documentation and the chapter on "
+"transaction handling for more information. Reattachment is not the only "
+"usecase for <literal>lock()</literal>."
+msgstr ""
+"<literal>lock()</literal>ì´ ì¬ë¬ê°ì§ <literal>LockMode</literal>ë¤ì ì¬ì©ë "
+"ì ììì ë
¸í¸íê³ , ìì¸í ê²ì API 문ìì í¸ëìì
ì²ë¦¬ì ê´í ì¥ì ë³´ë¼. ì¬"
+"첨ë¶ë <literal>lock()</literal>ì ëí ì ì¼í ì°ììë ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\" />."
+msgstr ""
+"긴 ìì
ë¨ìì ëí ë¤ë¥¸ 모íë¤ì <xref linkend=\"transactions-optimistic\"/>"
+"ìì ë
¼ìëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr "ìëì ì¸ ìí ê²ì¶"
+
+#. 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 ì¬ì©ìë¤ì ìë¡ì´ ìë³ì를 ìì±ìì¼ì 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>ì ì¬ì© ìì ì ì미ë ì´ì¬ìë¤ìê²ë í¼ëì¤"
+"ë¬ì ë³´ì¸ë¤. 먼ì , íëì ì¸ì
ìì ì¨ ì¸ì¤í´ì¤ë¥¼ ë ë¤ë¥¸ ìë¡ì´ ì¸ì
ë´ìì "
+"ì¬ì©íë ¤ê³ ìëíì§ ìë í, ë¹ì ì <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>ë ë¤"
+"ì ìë리ì¤ìì ì¬ì©ëë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr "ì´í리ì¼ì´ì
ì´ ì²« ë²ì§¸ ì¸ì
ë´ì ê°ì²´ë¥¼ ë¡ëìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr "ê°ì²´ê° UI í°ì´ë¡ ì ë¬ëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr "ëªëª ë³ê²½ë¤ì´ ê·¸ ê°ì²´ì íí´ì§ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr "ê°ì²´ê° ë¹ì§ëì¤ ë¡ì§ í°ì´ë¡ ì ë¬ëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
+msgstr ""
+"ì´í리ì¼ì´ì
ì ë ë²ì§¸ ì¸ì
ìì <literal>update()</literal>를 í¸ì¶í¨ì¼ë¡ì¨ ì´"
+"ë¤ ë³ê²½ë¤ì ììí ìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr "<literal>saveOrUpdate()</literal>ë ë¤ìì ííë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr ""
+"ë§ì¼ ê°ì²´ê° ì´ ì¸ì
ë´ìì ì´ë¯¸ ììí ëì´ ìì ê²½ì°, ì무ê²ë ííì§ ìëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"ë§ì¼ ê·¸ ì¸ì
ê³¼ ì°ê´ë ë ë¤ë¥¸ ê°ì²´ê° ëì¼í ìë³ì를 ê°ì§ ê²½ì°, ìì¸ìí©ì ë"
+"ì§ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object has no identifier property, <literal>save()</literal> it"
+msgstr ""
+"ë§ì¼ ê·¸ ê°ì²´ê° ìë³ì íë¡í¼í°ë¥¼ ê°ì§ ìì ê²½ì°, ê·¸ê²ì <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 ""
+"ë§ì¼ ê°ì²´ì ìë³ìê° ìë¡ì´ ì´ê¸°í ë ê°ì²´ì í ë¹ë ê°ì ê°ì§ ê²½ì°, ê·¸ê²ì "
+"<literal>save()</literal> ìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"if the object is versioned by a <literal><version></literal> or "
+"<literal><timestamp></literal>, and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"ë§ì¼ ê°ì²´ê° (<literal><version></literal> ëë <literal><"
+"timestamp></literal>ì ìí´) ë²ì í ëê³ , version íë¡í¼í° ê°ì´ ìë¡ì´ ì´"
+"기í ë ê°ì²´ì í ë¹ë ê²ê³¼ ëì¼í ê°ì¼ ê²½ì°, ê·¸ê²ì <literal>save()</"
+"literal> ìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr "ê·¸ ë°ì ê²½ì° ê·¸ ê°ì²´ë¥¼ <literal>update()</literal> ìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr "ê·¸ë¦¬ê³ <literal>merge()</literal>ë ë§¤ì° ë¤ë¥´ë¤:"
+
+#. 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 ""
+"ë§ì¼ ì¸ì
ê³¼ íì¬ ì°ê´ë ëì¼í ìë³ì를 ê°ì§ ìì ì¸ì¤í´ì¤ê° ì¡´ì¬í ê²½ì°, 주"
+"ì´ì§ ê°ì²´ì ìí를 ìì ì¸ì¤í´ì¤ ìì¼ë¡ ë³µì¬íë¤"
+
+#. 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 ""
+"ë§ì¼ ì¸ì
ê³¼ íì¬ ì°ê´ë ìì ì¸ì¤í´ì¤ê° ì¡´ì¬íì§ ìì ê²½ì°, ë°ì´í°ë² ì´ì¤ë¡ë¶"
+"í° ê·¸ê²ì ë¡ëìí¤ë ¤ê³ ìëíê±°ë ìë¡ì´ ìì ì¸ì¤í´ì¤ë¥¼ ìì±ìí¤ë ¤ê³ ìëí"
+"ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr "ìì ì¸ì¤í´ì¤ê° ë°íëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
+msgstr ""
+"주ì´ì§ ì¸ì¤í´ì¤ë ì¸ì
ê³¼ ì°ê´ëì§ ìê³ , ê·¸ê²ì detached ìíì 머무른ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr "ìì ê°ì²´ë¤ì ìì í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Session.delete()</literal> will remove an object's state from the "
+"database. Your application, however, can still hold a reference to a deleted "
+"object. It is best to think of <literal>delete()</literal> as making a "
+"persistent instance, transient."
+msgstr ""
+"<literal>Session.delete()</literal>ë ë°ì´í°ë² ì´ì¤ë¡ë¶í° ê°ì²´ì ìí를 ì ê±°"
+"í ê²ì´ë¤. ë¬¼ë¡ ë¹ì ì ì´í리ì¼ì´ì
ì ì¬ì í detached ê°ì²´ì ëí 참조를 ìì "
+"í ê²ì´ë¤. ìì ì¸ì¤í´ì¤ë¥¼ transientë¡ ë§ë¤ ë <literal>delete()</literal>를 "
+"ìê°íë ê²ì´ ìµìì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can delete objects in any order, without risk of foreign key constraint "
+"violations. It is still possible to violate a <literal>NOT NULL</literal> "
+"constraint on a foreign key column by deleting objects in the wrong order, e."
+"g. if you delete the parent, but forget to delete the children."
+msgstr ""
+"ë¹ì ì foreign í¤ ì»¨ì¤í¸ë ì¸í¸ ìë°°ë¤ì ëí ìíì± ìì´ ë¹ì ì´ ì¢ìíë ì´"
+"ë¤ ììë¡ ê°ì²´ë¤ì ìì í ìë ìë¤. ì못ë ììë¡ ê°ì²´ë¤ì ìì í¨ì¼ë¡ì¨ "
+"foreign í¤ ì»¬ë¼ì ëí <literal>NOT NULL</literal> 컨ì¤í¸ë ì¸í¸ë¥¼ ìë°°í ê°ë¥"
+"ì±ì´ ì¬ì í ì¡´ì¬íë¤. ì를 ë¤ì´, ë¹ì ì´ ë¶ëª¨ë¥¼ ìì íì§ë§, ê·¸ ììë¤ì ìì í"
+"ë ê²ì ìì ê²½ì°."
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr "ë ê°ì ë¤ë¥¸ ë°ì´í°ì ì¥ìë¤ ì¬ì´ì ê°ì²´ë¤ì ë³µì í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is sometimes useful to be able to take a graph of persistent instances "
+"and make them persistent in a different datastore, without regenerating "
+"identifier values."
+msgstr ""
+"ìì ì¸ì¤í´ì¤ë¤ì ê·¸ëí를 ì·¨íê³ ìë³ì ê°ë¤ì ë¤ì ìì±ìí¤ì§ ìê³ ì ê·¸ê²ë¤"
+"ì ë¤ë¥¸ ì ì¥ì ìì ììí ìí¤ë ê²ì ê°ë¥íëë¡ ë§ëë ê²ì´ ì¢
ì¢
ì ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>ReplicationMode</literal> determines how <literal>replicate()</"
+"literal> will deal with conflicts with existing rows in the database:"
+msgstr ""
+"<literal>ReplicationMode</literal>ë <literal>replicate()</literal>ê° ë°ì´í°"
+"ë² ì´ì¤ ë´ì ìë 기존ì íë¤ê³¼ì 충ëì ì²ë¦¬íê²ë ë°©ë²ì ê²°ì íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.IGNORE</literal>: ignores the object when there is "
+"an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.IGNORE</literal> - ëì¼í ìë³ì를 ê°ì§ 기존 ë°ì´í°"
+"ë² ì´ì¤ íì´ ì¡´ì¬í ê²½ì°ì ê·¸ ê°ì²´ë¥¼ 무ìíë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
+"database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.OVERWRITE</literal> - ëì¼í ìë³ì를 ê°ì§ ì´ë¤ 기존"
+"ì ë°ì´í°ë² ì´ì¤ íì ë®ì´ ì´ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.EXCEPTION</literal>: throws an exception if there "
+"is an existing database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.EXCEPTION</literal> - ë§ì¼ ëì¼í ìë³ì를 ê°ì§ 기"
+"ì¡´ ë°ì´í°ë² ì´ì¤ íì´ ì¡´ì¬í ê²½ì°ì ìì¸ìí©ì ëì§ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ReplicationMode.LATEST_VERSION</literal>: overwrites the row if its "
+"version number is earlier than the version number of the object, or ignore "
+"the object otherwise"
+msgstr ""
+"<literal>ReplicationMode.LATEST_VERSION</literal> - íì ë²ì ë²í¸ê° ê°ì²´ì "
+"ë²ì ë²í¸ ë³´ë¤ ì´ì ì ê²ì´ë©´ ë®ì´ì°ê³ , ê·¸ ë°ì ê²½ì°ì ê·¸ ê°ì²´ë¥¼ 무ìíë¤"
+
+#. 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 í¸ëì"
+"ì
ë¤ ëìì íí´ì§ ë³ê²½ë¤ì 롤백ìí¤ê¸° ë±ì í¬í¨íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr "Sessionì flush ìí¤ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Sometimes the <literal>Session</literal> will execute the SQL statements "
+"needed to synchronize the JDBC connection's state with the state of objects "
+"held in memory. This process, called <emphasis>flush</emphasis>, occurs by "
+"default at the following points:"
+msgstr ""
+"ìê°ì´ ì§ë¨ì ë°ë¼ <literal>Session</literal>ì JDBC 커ë¥ì
ì ìíì ë©ëª¨ë¦¬ "
+"ë´ì ë³´ê´ë ê°ì²´ë¤ì ìí를 ë기í ìí¤ëë° íìí SQL 문ì¥ë¤ì ì¤íìí¬ ê²ì´"
+"ë¤. ì´ íë¡ì¸ì¤ <emphasis>flush</emphasis>ë ë¤ì ìì ë¤ìì ëí´í¸ë¡ ë°ìí"
+"ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr "ëªëª ì§ìë¤ì´ ì¤íë기 ì ì"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "<literal>org.hibernate.Transaction.commit()</literal> ìì ìì"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr "<literal>Session.flush()</literal> ìì ìì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr "SQL 문ì¥ë¤ì´ ë¤ì ììë¡ ì¤í ëª
ë ¹ì´ ë´ë ¤ì§ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"all entity insertions in the same order the corresponding objects were saved "
+"using <literal>Session.save()</literal>"
+msgstr ""
+"ëìíë ê°ì²´ë¤ì´ <literal>Session.save()</literal>를 ì¬ì©íì¬ ì ì¥ëìë ê²"
+"ê³¼ ê°ì ììë¡, 모ë ìí°í° ì½ì
ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr "모ë ìí°í° ì
ë°ì´í¸ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr "모ë ì½ë ì
ìì ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr "모ë ì½ë ì
ìì ìì ë¤, ì
ë°ì´í¸ë¤ ê·¸ë¦¬ê³ ì½ì
ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr "모ë ì½ë ì
ì½ì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"all entity deletions in the same order the corresponding objects were "
+"deleted using <literal>Session.delete()</literal>"
+msgstr ""
+"ëìíë ê°ì²´ë¤ì´ <literal>Session.delete()</literal>를 ì¬ì©íì¬ ìì ëìë "
+"ê²ê³¼ ê°ì ììë¡ ëª¨ë ìí°í° ìì ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An exception is that objects using <literal>native</literal> ID generation "
+"are inserted when they are saved."
+msgstr ""
+"(íê°ì§ ìì¸ë ê°ì²´ë¤ì´ ì ì¥ë ë <literal>native</literal> ID ìì±ì ì¬ì©í"
+"ë ê°ì²´ë¤ì´ insert ëë ì ì´ë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Except when you explicitly <literal>flush()</literal>, there are absolutely "
+"no guarantees about <emphasis>when</emphasis> the <literal>Session</literal> "
+"executes the JDBC calls, only the <emphasis>order</emphasis> in which they "
+"are executed. However, Hibernate does guarantee that the <literal>Query.list"
+"(..)</literal> will never return stale or incorrect data."
+msgstr ""
+"ë¹ì ì´ ëª
ìì ì¼ë¡ <literal>flush()</literal> ìí¬ ë를 ì ì¸íë©´, "
+"<literal>Session</literal>ì´ JDBC í¸ì¶ë¤ì ì¤íìí¤ë <emphasis>ìì </"
+"emphasis>, ê·¸ê²ë¤ì´ ì¤íëë <emphasis>ìì</emphasis>ë§ì ì ëì ì¼ë¡ ë³´ì¥í"
+"ì§ë ìëë¤. íì§ë§ Hibernateë <literal>Query.list(..)</literal>ê° ì¤í¨ì±ì´ "
+"ìë ë°ì´í°ë¥¼ ê²°ì½ ë°ííì§ ìì ê²ìì ë³´ì¥íê±°ë; ê·¸ê²ë¤ì´ ì못ë ë°ì´í°ë "
+"ë°ííì§ ìì ê²ìì ë³´ì¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is possible to change the default behavior so that flush occurs less "
+"frequently. The <literal>FlushMode</literal> class defines three different "
+"modes: only flush at commit time when the Hibernate <literal>Transaction</"
+"literal> API is used, flush automatically using the explained routine, or "
+"never flush unless <literal>flush()</literal> is called explicitly. The last "
+"mode is useful for long running units of work, where a <literal>Session</"
+"literal> is kept open and disconnected for a long time (see <xref linkend="
+"\"transactions-optimistic-longsession\" />)."
+msgstr ""
+"flushê° ë무 ì주 ë°ìíì§ ìëë¡ ëí´í¸ íì를 ë³ê²½íë ê²ì´ ê°ë¥íë¤. "
+"<literal>FlushMode</literal> í´ëì¤ë ì¸ ê°ì ë¤ë¥¸ 모ëë¤ì ì ìíë¤: ì¤ì§ 커"
+"ë° ì(ê·¸ë¦¬ê³ Hibernate <literal>Transaction</literal> APIê° ì¬ì©ë ëìë§) "
+"flush 모ë, ì¤ëª
ë 루í´ì ì¬ì©íë ìëì ì¸ flush 모ë, ëë <literal>flush()"
+"</literal>ê° ëª
ìì ì¼ë¡ í¸ì¶ëì§ ìë í flush ìí¤ì§ ìë 모ë. ë§ì§ë§ 모ë"
+"ë ì¤ë ëì ì¤íëë ìì
ë¨ìì ëí´ ì ì©íê³ , ì¬ê¸°ì <literal>Session</"
+"literal>ì ì´ë ¤ì§ì±ë¡ ì ì§ëê³ ì¤ë ìê° ëì ì°ê²°ì´ í´ì ë ì±ë¡ ì ì§ëë¤. "
+"(<xref linkend=\"transactions-optimistic-longsession\"/>를 ë³´ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"During flush, an exception might occur (e.g. if a DML operation violates a "
+"constraint). Since handling exceptions involves some understanding of "
+"Hibernate's transactional behavior, we discuss it in <xref linkend="
+"\"transactions\" />."
+msgstr ""
+"flush ëìì, íëì ìì¸ìí©ì´ ë°ìí ìë ìë¤(ì를 ë¤ë©´. ë§ì¼ DML ì¤í¼ë ì´"
+"ì
ì´ ì»¨ì¤í¸ë ì¸í¸ë¥¼ ìë°í ê²½ì°). ìì¸ìí©ë¤ì ì²ë¦¬íë ê²ì Hibernatemì í¸"
+"ëìì
í¹ì§ì ê´í ì´ë¤ ì´í´ë¥¼ ìë°íë©°, ì°ë¦¬ë <xref linkend=\"transactions"
+"\"/>ìì ê·¸ê²ì ë
¼ìíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr "Transitive persistence(ì ì´ ìì)"
+
+#. 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 ""
+"í¹í ë¹ì ì´ ì°ê´ë ê°ì²´ë¤ì ê·¸ëí를 ë¤ë£° ê²½ì°ì, í¹í ê°ë³ ê°ì²´ë¤ì ì ì¥í"
+"ê³ , ìì íê±°ë, ì¬ì²¨ë¶ìí¤ë ê²ì´ 꽤 ë²ê±°ë¡ë¤. ê³µíµë ê²½ì°ë íëì ë¶ëª¨/ì"
+"ì ê´ê³ì´ë¤. ë¤ì ìì 를 ê²í íì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the children in a parent/child relationship would be value typed (e.g. a "
+"collection of addresses or strings), their life cycle would depend on the "
+"parent and no further action would be required for convenient \"cascading\" "
+"of state changes. When the parent is saved, the value-typed child objects "
+"are saved and when the parent is deleted, the children will be deleted, etc. "
+"This works for operations such as the removal of a child from the "
+"collection. Since value-typed objects cannot have shared references, "
+"Hibernate will detect this and delete the child from the database."
+msgstr ""
+"ë§ì¼ ë¶ëª¨/ìì ê´ê³ìì ììë¤ì´ ê°(value) íì
(ì를 ë¤ë©´. 주ìë¤ ëë 문ìì´"
+"ë¤ì ê°ì§ íëì ì½ë ì
)ì¼ ê²½ì°, ê·¸ê²ë¤ì ìëª
주기ë ë¶ëª¨ì ìì¡´í ê²ì´ê³ ì"
+"í ë³ê²½ë¤ì ëí´ í¸ë¦¬í \"ì¼ì¤ì¼ì´ë©\"ì ë ì´ìì ì¡ì
ì´ íìíì§ ìì ê²ì´"
+"ë¤. ë§ì¼ ë¶ëª¨ê° ì ì¥ë ë, ê°(value)-íì
ì ìì ê°ì²´ë¤ë ë§ì°¬ê°ì§ë¡ ì ì¥ë"
+"ê³ , ë¶ëª¨ê° ìì ë ë, ììë¤ì´ ìì ë ê²ì´ë¤. ì´ê²ì ì¬ì§ì´ ì½ë ì
ì¼ë¡ë¶í° í"
+"ëì ììì ì ê±°íë ê·¸ë° ì¤í¼ë ì´ì
ë¤ì ëí´ìë ëìíë¤; Hibernateë ì´ê²"
+"ì ê²ì¶íê³ , ê°(value)-íì
ì ê°ì²´ë¤ì 참조를 ê³µì í ì ìì¼ë¯ë¡, ë°ì´í°ë² ì´"
+"ì¤ë¡ë¶í° ê·¸ ììì ìì ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now consider the same scenario with parent and child objects being entities, "
+"not value-types (e.g. categories and items, or parent and child cats). "
+"Entities have their own life cycle and support shared references. Removing "
+"an entity from the collection does not mean it can be deleted), and there is "
+"by default no cascading of state from one entity to any other associated "
+"entities. Hibernate does not implement <emphasis>persistence by "
+"reachability</emphasis> by default."
+msgstr ""
+"ì´ì ê°(value) íì
ì´ ìë, ìí°í°ë¤ì¸ ë¶ëª¨ì ìì ê°ì²´ë¤ì ê°ì§ ëì¼í ìë"
+"리ì¤ë¥¼ ê²í íì(ì를 ë¤ë©´. ì¹´í
ê³ ë¦¬ë¤ê³¼ ìì´í
ë¤, ëë ë¶ëª¨ ê³ ìì´ë ìì ê³ "
+"ìì´). ìí°í°ë¤ì ê·¸ê²ë¤ ìì ì ìëª
주기를 ê°ê³ , ê³µì ë 참조ë¤ì ì§ìíê³ (ë°"
+"ë¼ì ì½ë ì
ì¼ë¡ë¶í° íëì ìí°í°ë¥¼ ì ê±°íë ê²ì ê·¸ê²ì´ ìì ë ì ììì ì"
+"미íì§ ìëë¤), ê·¸ë¦¬ê³ ëí´í¸ë¡ íëì ìí°í°ë¡ë¶í° ì´ë¤ ë¤ë¥¸ ì°ê´ë ìí°í°ë¤"
+"ë¡ì ìíì ì¼ì¤ì¼ì´ë©ì ì¡´ì¬íì§ ìëë¤. 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 ""
+"- <literal>persist(), merge(), saveOrUpdate(), delete(), lock(), refresh(), "
+"evict(), replicate()</literal>를 í¬í¨íë- Hibernate ì¸ì
ì ëí ê°ê°ì 기본 "
+"ì¤í¼ë ì´ì
ì ëí´ì íëì ëìíë ì¼ì¤ì¼ì´ë© ì¤íì¼ì´ ì¡´ì¬íë¤. ì¼ì¤ì¼ì´ë "
+"ì¤íì¼ë¤ ê°ê°ì <literal>create, merge, save-update, delete, lock, refresh, "
+"evict, replicate</literal>ë¡ ëª
ëª
ëë¤. ë§ì¼ ë¹ì ì´ íëì ì¤í¼ë ì´ì
ì´ íë"
+"ì ì°ê´ì ë°ë¼ ì¼ì¤ì¼ì´ë©ëë ê²ì ìí ê²½ì°, ë¹ì ì 매í 문ì ë´ì ê·¸ê²ì ì§"
+"ìí´ì¼ íë¤. ì를 ë¤ë©´:"
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr "ì¼ì¤ì¼ì´ë© ì¤íì¼ë¤ì´ ê²°í©ë ìë ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can even use <literal>cascade=\"all\"</literal> to specify that "
+"<emphasis>all</emphasis> operations should be cascaded along the "
+"association. The default <literal>cascade=\"none\"</literal> specifies that "
+"no operations are to be cascaded."
+msgstr ""
+"ë¹ì ì <emphasis>모ë </emphasis> ì¤í¼ë ì´ì
ë¤ì´ ê·¸ ì°ê´ì ë°ë¼ ì¼ì¤ì¼ì´ë ë"
+"ì´ì¼ í¨ì ì§ì íëë° <literal>cascade=\"all\"</literal>ì ì¬ì©í ìë ìë¤. "
+"ëí´í¸<literal>cascade=\"none\"</literal>ì ì¤í¼ë ì´ì
ë¤ì´ ì¼ì¤ì¼ì´ë ëì§ ì"
+"ì ê²ìì ì§ì íë¤."
+
+#. 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 ""
+"í¹ì í ì¼ì¤ì¼ì´ë ì¤íì¼ì¸, <literal>delete-orphan</literal>ì ì¤ì§ one-to-"
+"many ì°ê´ë¤ìë§ ì ì©ëê³ , <literal>delete()</literal> ì¤í¼ë ì´ì
ì´ ê·¸ ì°ê´ì¼"
+"ë¡ë¶í° ì ê±°ëë ììì ìì ê°ì²´ì ì ì©ëì´ì¼ í¨ì ëíë¸ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr "ê¶ì¥ì¬íë¤ :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It does not usually make sense to enable cascade on a <literal><many-to-"
+"one></literal> or <literal><many-to-many></literal> association. "
+"Cascade is often useful for <literal><one-to-one></literal> and "
+"<literal><one-to-many></literal> associations."
+msgstr ""
+"íëì <literal><many-to-one></literal> ëë <literal><many-to-"
+"many></literal> ì°ê´ì ëí´ ì¼ì¤ì¼ì´ë를 ê°ë¥íê² íë ê²ì ëê° ìë¯¸ê° ì"
+"ë¤. ì¼ì¤ì¼ì´ëë <literal><one-to-one></literal> ì°ê´ê³¼ <literal><"
+"one-to-many></literal> ì°ê´ì ëí´ ì¢
ì¢
ì ì©íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make it a <emphasis>life cycle object</emphasis> by specifying "
+"<literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr ""
+"ë§ì¼ ìì ê°ì²´ì ìëª
ì´ ê·¸ ë¶ëª¨ ê°ì²´ì ìëª
ì 묶ì¬ì ¸ ìì ê²½ì°, "
+"<literal>cascade=\"all,delete-orphan\"</literal>ì ì§ì í¨ì¼ë¡ì¨ ê·¸ê²ì "
+"<emphasis>ìëª
주기 ê°ì²´</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 ""
+"ê·¸ ë°ì ê²½ì°, ë¹ì ì ì¼ì¤ì¼ì´ë를 ì í íìë¡ íì§ ìì ì ìë¤. ê·¸ë¬ë ë§ì¼ "
+"ë¹ì ì´ ëì¼í í¸ëìì
ë´ìì ë¶ëª¨ì ììì ëí´ ì주 í¨ê» ìì
íê² ë ê²ì´"
+"ë¼ ìê°ëê³ , ë¹ì ì¤ì¤ë¡ íì´í íë ê²ì ì ì½íê³ ì ìí ê²½ì°, "
+"<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> ì¤"
+"íì¼ì ê´ê³ë¡ ë§í¬íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Furthermore, a mere reference to a child from a persistent parent will "
+"result in save/update of the child. This metaphor is incomplete, however. A "
+"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal><one-to-many></"
+"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
+"literal>. The precise semantics of cascading operations for a parent/child "
+"relationship are as follows:"
+msgstr ""
+"ê²ë¤ê°, íëì ìì ë¶ëª¨ë¡ë¶í° íëì ììì ëí ë¨ìí 참조ë ììì ì ì¥/"
+"ì
ë°ì´í¸ë¡ ê·ê²°ë ê²ì´ë¤. íì§ë§ ì´ ë©íí¬ë ë¶ìì íë¤. ê·¸ê²ì ë¶ëª¨ì ìí´ "
+"참조 í´ì ëë ììì <literal>cascade=\"delete-orphan\"</literal>ì¼ë¡ 매íë "
+"íëì <literal><one-to-many></literal> ì°ê´ì ê²½ì°ë¥¼ ì ì¸íë©´, ìëì "
+"ì¼ë¡ ìì ëì§ <emphasis>ìëë¤</emphasis>. íëì ë¶ëª¨/ìì ê´ê³ì ëí ì¼ì¤"
+"ì¼ì´ë© ì¤í¼ë ì´ì
ì ì íí ì미ë ë¤ìê³¼ ê°ë¤:"
+
+#. 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>ì ì ë¬ëë¤"
+
+#. 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>ì ì ë¬ëë¤"
+
+#. 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>ì ì ë¬ëë¤"
+
+#. 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>ì ì ë¬ëë¤"
+
+#. Tag: para
+#, no-c-format
+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> - ì´í리ì¼ì´ì
ì íìí ê²½ì°ì ììì ëª
ìì ì¼ë¡ ìì í´ì¼ íë¤ -, "
+"<literal>cascade=\"delete-orphan\"</literal>ì¸ ê²½ì°ì \"orphaned(ê³ ì)\"ì¸ ê²½"
+"ì° ììì´ ìì ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, note that cascading of operations can be applied to an object graph "
+"at <emphasis>call time</emphasis> or at <emphasis>flush time</emphasis>. All "
+"operations, if enabled, are cascaded to associated entities reachable when "
+"the operation is executed. However, <literal>save-update</literal> and "
+"<literal>delete-orphan</literal> are transitive for all associated entities "
+"reachable during flush of the <literal>Session</literal>."
+msgstr ""
+"ë§ì§ë§ì¼ë¡ ì¤í¼ë ì´ì
ë¤ì ì¼ì¤ì¼ì´ë©ì´ <emphasis>í¸ì¶ ìì </emphasis>ìì ë"
+"ë <emphasis>flush ìì </emphasis>ìì ê°ì²´ ê·¸ëíì ì ì©ë ì ììì ë
¸í¸í"
+"ë¼. ì´ì© ê°ë¥í ê²½ì°ì 모ë ì¤í¼ë ì´ì
ë¤ì ê·¸ ì¤í¼ë ì´ì
ì´ ì¤íë ë ëë¬ ê°"
+"ë¥í ì°ê´ë ìí°í°ë¤ì ëí´ ì¼ì¤ì¼ì´ë ëë¤. íì§ë§ <literal>save-upate</"
+"literal>ì <literal>delete-orphan</literal>ì <literal>Session</literal>ì "
+"flush ëìì ëë¬ ê°ë¥í 모ë ì°ê´ë ìí°í°ë¤ì ëí´ ì´íì (transitive)ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr "ë©íë°ì´í° ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate requires a rich meta-level model of all entity and value types. "
+"This model can be useful to the application itself. For example, the "
+"application might use Hibernate's metadata to implement a \"smart\" deep-"
+"copy algorithm that understands which objects should be copied (eg. mutable "
+"value types) and which objects that should not (e.g. immutable value types "
+"and, possibly, associated entities)."
+msgstr ""
+"Hibernateë 모ë ìí°í°ì ê°(value) íì
ë¤ì ê°ì§ ë§¤ì° íë¶í ë©í-ë 벨 모í"
+"ì íìë¡ íë¤. ìê°ì´ ì§ë¨ì ë°ë¼, ì´ ëª¨íì ì´í리ì¼ì´ì
ê·¸ ìì²´ì ë§¤ì° ì "
+"ì©íë¤. ì를 ë¤ì´, ì´í리ì¼ì´ì
ì ì´ë ê°ì²´ë¤ì´ ë³µì¬ëì´ì¼ íëì§(ì를 ë¤ë©´ "
+"ê°ë³ì ì¸ ê°(value) íì
ë¤) ê·¸ë¦¬ê³ ì´ë ê²ì´ ë³µì¬ëì§ ë§ìì¼ íëì§(ì를 ë¤"
+"ë©´, ë¶ë³ì value íì
ë¤ê³¼ ê°ë¥í ì°ê´ë ìí°í°ë¤)를 ì¸ì§íë \"ì¤ë§í¸\" deep-"
+"copy ìê³ ë¦¬ì¦ì 구ííëë° Hibernateì ë©íë°ì´í°ë¥¼ ì¬ì©í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate exposes metadata via the <literal>ClassMetadata</literal> and "
+"<literal>CollectionMetadata</literal> interfaces and the <literal>Type</"
+"literal> hierarchy. Instances of the metadata interfaces can be obtained "
+"from the <literal>SessionFactory</literal>."
+msgstr ""
+"Hibernateë <literal>ClassMetadata</literal> ì¸í°íì´ì¤ì "
+"<literal>CollectionMetadata</literal> ì¸í°íì´ì¤ ê·¸ë¦¬ê³ <literal>Type</"
+"literal> ê³ì¸µêµ¬ì¡°ë¥¼ íµí´ ë©íë°ì´í°ë¥¼ ë
¸ì¶ìí¨ë¤. ë©íë°ì´í° ì¸í°íì´ì¤ë¤ì "
+"ì¸ì¤í´ì¤ë¤ì <literal>SessionFactory</literal>ë¡ë¶í° ì»ì´ì§ ìë ìë¤."
+
+#~ msgid "UPDATE"
+#~ msgstr "UPDATE"
+
+#~ msgid "DELETE"
+#~ msgstr "DELETE"
+
+#~ msgid "state management"
+#~ msgstr "ìí ê´ë¦¬"
+
+#~ msgid "statements"
+#~ msgstr "문ì¥ë¤"
+
+#~ msgid "Connection"
+#~ msgstr "session.connection()"
+
+#~ msgid "session.connection()"
+#~ msgstr "Connection"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/toolset_guide.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/toolset_guide.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/toolset_guide.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,949 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr "ë구ì
ìë´"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
+"plugins, commandline tools, and Ant tasks."
+msgstr ""
+"Hibernateì ëí ë¼ì´ëí¸ë¦½ ìì§ëì´ë§ì Eclipse íë¬ê·¸ì¸ ì¸í¸, ëª
ë ¹ë¼ì¸ ë구"
+"ë¤, ë¿ë§ ìëë¼ Ant íì¤í¬ë¤ì ì¬ì©íì¬ ê°ë¥íë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"<emphasis>Hibernate ë구ë¤</emphasis>ì íì¬ ê¸°ì¡´ ë°ì´í°ë² ì´ì¤ë¤ì ëí 리ë²"
+"ì¤ ìì§ëì´ë§ì ìí´ Ant íì¤í¬ë¤ ë¿ë§ ìëë¼ Eclipse IDEì© íë¬ê·¸ì¸ë¤ì í¬í¨"
+"íê³ ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
+"files that supports auto-completion and syntax highlighting. It also "
+"supports semantic auto-completion for class names and property/field names, "
+"making it more versatile than a normal XML editor."
+msgstr ""
+"<emphasis>매í í¸ì§ê¸°:</emphasis> ìë ìì± ê¸°ë¥ê³¼ 구문 ê°ì¡°ë¥¼ ì§ìíë "
+"Hibernate XML 매í íì¼ë¤ì ëí í¸ì§ê¸°. ê·¸ê²ì ëí íµìì XML í¸ì§ê¸° ë³´ë¤ "
+"í¨ì¬ ë ìµíµì± ìê² ë§ë¤ì´ì í´ëì¤ ì´ë¦ë¤ê³¼ íë¡í¼í°/íë ì´ë¦ë¤ì ëí ì미"
+"ë¡ ì ìë ìì± ê¸°ë¥ì ì§ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
+"addition to a tree overview of your console configurations, you are also "
+"provided with an interactive view of your persistent classes and their "
+"relationships. The console allows you to execute HQL queries against your "
+"database and browse the result directly in Eclipse."
+msgstr ""
+"<emphasis>ì½ì:</emphasis> ì½ìì Eclipseìì ìë¡ì´ ë·°ì´ë¤. ë¹ì ì ì½ì 구ì±"
+"ë¤ì ëí tree overviewì ë§ë¶ì¬, ë¹ì ì ëí ë¹ì ì ìì í´ëì¤ë¤ê³¼ ê·¸ê²ë¤"
+"ì ê´ê³ë¤ì ëí ìí¸ìì© ë·°ë¥¼ ì»ëë¤. ì½ìì ë¹ì ì ë°ì´í°ë² ì´ì¤ì ëí´ HQL "
+"ì§ìë¤ì ì¤ííê³ ê·¸ 결과를 Eclipse ë´ìì ì§ì ë¸ë¼ì°ì§ íëë¡ ë¹ì ìê² íì©"
+"í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Development Wizards:</emphasis> several wizards are provided with "
+"the Hibernate Eclipse tools. You can use a wizard to quickly generate "
+"Hibernate configuration (cfg.xml) files, or to reverse engineer an existing "
+"database schema into POJO source files and Hibernate mapping files. The "
+"reverse engineering wizard supports customizable templates."
+msgstr ""
+"<emphasis>ê°ë° ë§ë²ì¬ë¤:</emphasis> ëªëª ë§ë²ì¬ë¤ì´ Hibernate Eclipse ë구ë¤"
+"ì ì ê³µëë¤; ë¹ì ì Hibernate êµ¬ì± (cfg.xml) íì¼ë¤ì ë¹ ë¥´ê² ìì±ìí¤ëë° ë§"
+"ë²ì¬ë¥¼ ì¬ì©íê±°ë, ì¬ì§ì´ ë¹ì ì 기존 ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ë¥¼ POJO ìì¤ íì¼ë¤"
+"ê³¼ Hibernate 매í íì¼ë¤ë¡ ìì íê² ë¦¬ë²ì¤ ìì§ëì´ë§í ìë ìë¤. 리ë²ì¤ ì"
+"ì§ëì´ë§ ë§ë²ì¬ë ë§ì¶¤ ê°ë¥í í
í릿ë¤ì ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
+"documentation for more information."
+msgstr ""
+"ì¶ê° ì ë³´ë <emphasis>Hibernate Tools</emphasis> í¨í¤ì§ì ê·¸ê²ì 문ì를 참조"
+"í길 ë°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, the Hibernate main package comes bundled with an integrated tool : "
+"<emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even "
+"be used from \"inside\" Hibernate."
+msgstr ""
+"íì§ë§ Hibernate ë©ì¸ í¨í¤ì§ë íµí© ë구ì ë²ë¤í ëì´ ìë¤(ê·¸ê²ì ì¬ì§ì´ í"
+"ë¼ì´ ììì Hibernate \"ë´ìì\" ì¬ì©ë ì ìë¤): <emphasis>SchemaExport</"
+"emphasis> ë³ì¹ì <literal>hbm2ddl</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr "ìëì ì¸ ì¤í¤ë§ ìì±"
+
+#. Tag: para
+#, fuzzy, 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 ""
+"DDLì Hibernate ì í¸ë¦¬í°ì ìí´ ë¹ì ì 매í íì¼ë¤ë¡ë¶í° ìì±ë ì ìë¤. ìì±"
+"ë ì¤í¤ë§ë ìí°í° í
ì´ë¸ê³¼ ì½ë ì
í
ì´ë¸ì ëí 참조 ë¬´ê²°ì± ì»¨ì¤í¸ë ì¸í¸ë¤"
+"(íë¼ì´ë¨¸ë¦¬ í¤ì foreign í¤ë¤)ì í¬í¨íë¤. í
ì´ë¸ë¤ê³¼ ìíì¤ë¤ì ëí íì¹ë "
+"ìë³ì ìì±ê¸°ë¤ì ëí´ ìì±ëë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"DDLì´ ë§¤ì° ë²¤ëì í¹ì íë¯ë¡, ì´ ë구를 ì¬ì©í ë ë¹ì ì <literal>hibernate."
+"dialect</literal> íë¡í¼í°ë¥¼ íµí´ í ê°ì SQL <literal>Dialect</literal>를 ì§"
+"ì <emphasis>í´ì¼ íë¤</emphasis>."
+
+#. Tag: para
+#, fuzzy, 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
+#, no-c-format
+msgid "Customizing the schema"
+msgstr "ì¤í¤ë§ ë§ì¶¤í ìí¤ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Many Hibernate mapping elements define optional attributes named "
+"<literal>length</literal>, <literal>precision</literal> and <literal>scale</"
+"literal>. You can set the length, precision and scale of a column with this "
+"attribute."
+msgstr ""
+"ë§ì Hibernate 매í ììë¤ì <literal>length</literal>ë¡ ëª
ëª
ë ìµì
ìì±ì "
+"ì ìíë¤. ë¹ì ì ì´ ìì±ì¼ë¡ 컬ë¼ì 길ì´ë¥¼ ì¤ì í ì ìë¤.(ëë numeric/"
+"decimal ë°ì´í° íì
ë¤, ë°°ì ëì ëí´ ). ë§ì Hibernate ë§¤ì¹ ììë¤ì "
+"<literal>length</literal>, <literal>precision</literal> ê·¸ë¦¬ê³ "
+"<literal>scale</literal>ë¡ ëª
ëª
ë ìµì
ìì±ë¤ì ì ìíê³ ìë¤. ë¹ì ì ì´ ìì±"
+"ì¼ë¡ì 컬ë¼ì´ 길ì´, ì ë°ë, í¬ê¸°ë¥¼ ì¤ì í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, 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 ""
+"ëªëª íê·¸ë¤ì ëí (í
ì´ë¸ 컬ë¼ë¤ì ëí <literal>NOT NULL</literal> 컨ì¤í¸ë "
+"ì¸í¸ë¥¼ ìì±ìí¤ë) <literal>not-null</literal> ìì±ê³¼ (í
ì´ë¸ 컬ë¼ë¤ì ëí "
+"<literal>UNIQUE</literal> 컨ì¤í¸ë ì¸í¸ë¥¼ ìì±ìí¤ë) <literal>unique</"
+"literal> ìì±ì ìì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>unique-key</literal> attribute can be used to group columns in a "
+"single, unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL. It is only used to group the "
+"columns in the mapping file."
+msgstr ""
+"<literal>unique-key</literal> ìì±ì íëì ì ì¼ í¤ ì»¨ì¤í¸ë ì¸í¸ë¡ 컬ë¼ë¤ì "
+"그룹ì§ì°ëë° ì¬ì©ë ìë ìë¤. íì¬ <literal>unique-key</literal> ìì±ì ì§ì "
+"ë ê°ì ì°ì¶ë DDLë´ìì 컨ì¤í¸ë ì¸í¸ë¥¼ ëª
ëª
íëë° ì¬ì©ëì§ <emphasis>ìê³ </"
+"emphasis>, ì¤ì§ 매í íì¼ ë´ìì 컬ë¼ë¤ì 그룹 ì§ì°ëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns can be "
+"grouped into the same index by simply specifying the same index name."
+msgstr ""
+"<literal>index</literal> ìì±ì 매íë ì»¬ë¼ ëë 컬ë¼ë¤ì ì¬ì©íì¬ ìì±ë ì¸"
+"ë±ì¤ì ì´ë¦ì ì§ì íë¤. ê°ë¨íê² ëì¼í ì¸ë±ì¤ ì´ë¦ì ì§ì í¨ì¼ë¡ì¨ ì¬ë¬ 컬ë¼"
+"ë¤ì´ ëì¼í ì¸ë±ì¤ ë´ë¡ 그룹ì§ìì§ ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>foreign-key</literal> attribute can be used to override the name "
+"of any generated foreign key constraint."
+msgstr ""
+"<literal>foreign-key</literal> ìì±ì ììì ì°ì¶ë foreign í¤ ì»¨ì¤í¸ë ì¸í¸"
+"ì ì´ë¦ì ì¤ë²ë¼ì´ë ìí¤ëë° ì¬ì©ë ì ë ìë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many mapping elements also accept a child <literal><column></literal> "
+"element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+"ë§ì 매í ììë¤ì ëí íëì ìì <literal><column></literal> ìì를 "
+"íì©íë¤. ì´ê²ì í¹í ë¤ì¤ ì»¬ë¼ íì
ë¤ì 매ííëë° ì ì©íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>default</literal> attribute allows you to specify a default "
+"value for a column.You should assign the same value to the mapped property "
+"before saving a new instance of the mapped class."
+msgstr ""
+"ë¤ë¥¸ ë°©ë²ì¼ë¡, ì´ë¤ ììë¤ì ëí ìì <literal><column></literal> ìì"
+"를 ìì©íë¤. ì´ê²ì ë¤ì¤ ì»¬ë¼ íì
ë¤ì í¹í ì ì©íë¤: <literal>default</"
+"literal> ìì±ì ë¹ì ì¼ë¡ íì¬ê¸ íëì 컬ë¼ì ëí ëí´í¸ ê°ì ì¤ì íëë¡ í"
+"ë¤(ë¹ì ì 매íë í´ëì¤ì ìë¡ì´ ì¸ì¤í´ì¤ë¥¼ ì ì¥í기 ì ì 매íë íë¡í¼í°ì "
+"ëì¼í ê°ì í ë¹íê² ë ê²ì´ë¤)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>sql-type</literal> attribute allows the user to override the "
+"default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+"<literal>sql-type</literal> ìì±ì SQL ë°ì´í°íì
ì ëí Hibernate íì
ì ë"
+"í´í¸ 매íì ì¤ë²ë¼ì´ë ìí¤ë ê²ì ì¬ì©ììê² íì©í´ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>check</literal> attribute allows you to specify a check "
+"constraint."
+msgstr ""
+"<literal>check</literal> ìì±ì check 컨ì¤í¸ë ì¸í¸ë¥¼ ì§ì íë ê²ì ë¹ì ìê² "
+"íì©í´ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "ìì½"
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr "ìì±"
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr "ê°ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr "í´ì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>length</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr "number"
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr "ì»¬ë¼ ê¸¸ì´"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr "ì»¬ë¼ decimal ì ë°ë"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr "ì»¬ë¼ decimal í¬ê¸°"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr "컬ë¼ì´ nullì´ ìëì´ì¼ í¨ì ì§ì íë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr "컬ë¼ì´ íëì ì ì¼ ì»¨ì¤í¸ë ì¸í¸ë¥¼ ê°ì ¸ì¼í¨ì ì§ì íë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>index</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr "(ë¤ì¤-컬ë¼) ì¸ë±ì¤ì ì´ë¦ì ì§ì íë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr "ë¤ì¤-ì»¬ë¼ ì ì¼ ì»¨ì¤í¸ë ì¸í¸ì ì´ë¦ì ì§ì íë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr "foreign_key_name"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"specifies the name of the foreign key constraint generated for an "
+"association, for a <literal><one-to-one></literal>, <literal><many-"
+"to-one></literal>, <literal><key></literal>, or <literal><many-"
+"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
+"literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+"íëì ì°ê´ì ëí´, <placeholder-1/>, <placeholder-2/>, <placeholder-3/>, ë"
+"ë <placeholder-4/> 매í ììì ëí´ foreign key 컨ì¤í¸ë ì¸í¸ì ì´ë¦ì ì§ì í"
+"ë¤.<placeholder-5/> 측ë¤ì <placeholder-6/>ì ìí´ ê³ ë ¤ëì§ ìì ê²ìì ë
¸í¸"
+"íë¼."
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr "SQL column type"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid ""
+"overrides the default column type (attribute of <literal><column></"
+"literal> element only)"
+msgstr ""
+"ëí´í¸ ì»¬ë¼ íì
ì ì¤ë²ë¼ì´ë ìí¨ë¤ (<placeholder-1/> ììì ìì±ìë§)"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>default</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr "SQL expression"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr "컬ë¼ì ëí ëí´í¸ ê°ì ì§ì íë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>check</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr "ì»¬ë¼ ëë í
ì´ë¸ì ëí SQL check 컨ì¤í¸ë ì¸í¸ë¥¼ ìì±ìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><comment></literal> element allows you to specify "
+"comments for the generated schema."
+msgstr ""
+"<literal><comment></literal> ììë ìì±ë ì¤í¤ë§ì ëí 주ìë¤ì ì§ì "
+"íë ê²ì ë¹ì ìê² íì©í´ì¤ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This results in a <literal>comment on table</literal> or <literal>comment on "
+"column</literal> statement in the generated DDL where supported."
+msgstr ""
+"ì´ê²ì (ì§ìëë ê²½ì°) ìì±ë DDLìì <literal>comment on table</literal> ë"
+"ë <literal>comment on column</literal> 문ì¥ì¼ë¡ ê·ê²°ëë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr "ë구 ì¤íí기"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
+"and/or executes the DDL statements."
+msgstr ""
+"<literal>SchemaExport</literal> ë구ë DDL ì¤í¬ë¦½í¸ë¥¼ íì¤ ì¶ë ¥ì¼ë¡ ê¸°ë¡ í"
+"ê³ /íê±°ë DDL 문ì¥ë¤ì ì¤íìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaExport</literal> command "
+"line options"
+msgstr "<literal>SchemaExport</literal> ëª
ë ¹ ë¼ì¸ ìµì
ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr "<literal>SchemaExport</literal> ëª
ë ¹ ë¼ì¸ ìµì
ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr "ìµì
"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "ì¤ëª
"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "do not output the script to stdout"
+msgstr "ì¤í¬ë¦½í¸ë¥¼ íì¤ì¶ë ¥ì¼ë¡ ì¶ë ¥íì§ ìëë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr "ì¤ì§ í
ì´ë¸ë¤ì ëë¡ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr "ì¤ì§ í
ì´ë¸ë¤ì ìì±ìí¨ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "do not export to the database"
+msgstr "ë°ì´í°ë² ì´ì¤ë¡ ë´ë³´ë´ê¸° íì§ ìëë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "--output=my_schema.ddl"
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr "ddl ì¤í¬ë¦½í¸ë¥¼ íì¼ë¡ ì¶ë ¥íë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "--naming=eg.MyNamingStrategy"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "--config=hibernate.cfg.xml"
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr "XML íì¼ë¡ë¶í° Hibernate 구ì±ì ì½ì´ë¤ì¸ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "read database properties from a file"
+msgstr ""
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"íì¼ë¡ë¶í° ë°ì´í°ë² ì´ì¤ íë¡í¼í°ë¤ì ì½ì´ë¤ì¸ë¤\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"íì¼ë¡ë¶í° ë°ì´í°ë² ì´ì¤ íë¡í¼í°ë¤ì ì½ì´ ë¤ì¸ë¤\n"
+"#-#-#-#-# - (PACKAGE VERSION) #-#-#-#-#\n"
+"íì¼ë¡ë¶í° ë°ì´í°ë² ì´ì¤ íë¡í¼í°ë¤ì ì½ì´ë¤ì¸ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr "ìì±ë SQLì ì¤í¬ë¦½í¸ ë´ì ì¢ê² íìì§ì´ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr "ì¤í¬ë¦½í¸ë¥¼ ìí ë¼ì¸ ê²½ê³ì ëì ì¤ì íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr ""
+"ë¹ì ì ë¹ì ì ì´í리ì¼ì´ì
ë´ì <literal>SchemaExport</literal>를 ì½ì
ìí¬ ì"
+"ë ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "íë¡í¼í°ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Database properties can be specified:"
+msgstr "ë°ì´í°ë² ì´ì¤ íë¡í¼í°ë¤ì ë¤ìê³¼ ê°ì´ ì§ì ë ì ìë¤"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"as system properties with <literal>-D</literal><emphasis><property></"
+"emphasis>"
+msgstr ""
+"<literal>-D</literal><emphasis><property></emphasis>를 ê°ì§ ìì¤í
íë¡"
+"í¼í°ë¡ì"
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr "<literal>--properties</literal>를 ê°ì§ ëª
ëª
ë íë¡í¼í°ë¤ ë´ìì"
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr "íìí íë¡í¼í°ë¤ì ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr "SchemaExport 커ë¥ì
íë¡í¼í°ë¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr "íë¡í¼í° ì´ë¦"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "hibernate.connection.driver_class"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr "jdbc ëë¼ì´ë² í´ëì¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr "jdbc url"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr "ë°ì´í°ë² ì´ì¤ ì¬ì©ì"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr "ì¬ì©ì í¨ì¤ìë"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.properties</literal> ë´ìì"
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr "dialect"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr "Ant ì¬ì©í기"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr ""
+"ë¹ì ì ë¹ì ì Ant ë¹ë ì¤í¬ë¦½í¸ìì <literal>SchemaExport</literal>를 í¸ì¶í "
+"ì ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr "ì ì¦íë ì¤í¤ë§ ì
ë°ì´í¸ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>SchemaUpdate</literal> tool will update an existing schema with "
+"\"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon "
+"the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr ""
+"<literal>SchemaUpdate</literal> ë구ë \"ì ì¦íë\" ë³ê²½ë¤ì ê°ì§ 기존 ì¤í¤ë§"
+"를 ë³ê²½ìí¬ ê²ì´ë¤. <literal>SchemaUpdate</literal>ë JDBC ë©íë°ì´í° APIì "
+"무ê²ê² ìì¡´íì¬ì, ê·¸ê²ì 모ë JDBC ëë¼ì´ë²ë¤ì ëìíì§ ìì ê²ìì 주목í"
+"ë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr "<literal>SchemaUpdate</literal> ëª
ë ¹ ë¼ì¸ ìµì
ë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "do not export the script to the database"
+msgstr "ì¤í¬ë¦½í¸ë¥¼ ë°ì´í°ë² ì´ì¤ë¡ ë´ë³´ë´ê¸° íì§ ìëë¤"
+
+#. Tag: entry
+#, fuzzy, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr "<placeholder-1/> íì¼ì ì§ì íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr ""
+"ë¹ì ì ë¹ì ì ì´í리ì¼ì´ì
ë´ì <literal>SchemaUpdate</literal>를 ì½ì
ìí¬ "
+"ì ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr "ì ì¦íë ì¤í¤ë§ ì
ë°ì´í¸ë¤ì Ant ì¬ì©í기"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr ""
+"ë¹ì ì Ant ì¤í¬ë¦½í¸ìì<literal>SchemaUpdate</literal>를 í¸ì¶í ì ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr "ì¤í¤ë§ ì í¨ì± ê²ì¬"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>SchemaValidator</literal> tool will validate that the existing "
+"database schema \"matches\" your mapping documents. The "
+"<literal>SchemaValidator</literal> depends heavily upon the JDBC metadata "
+"API and, as such, will not work with all JDBC drivers. This tool is "
+"extremely useful for testing."
+msgstr ""
+"<literal>SchemaValidator</literal> ë구ë 기존ì ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ê° ë¹ì "
+"ì 매í 문ìë¤ê³¼ \"ì¼ì¹íëì§\"를 ì í¨ì± ê²ì¬í ê²ì´ë¤. "
+"<literal>SchemaValidator</literal>ê° JDBC ë©íë°ì´í° APIì 무ê²ê² ìì¡´íë¯ë¡ "
+"ê·¸ê²ì 모ë JDBC ëë¼ì´ë²ë¤ì ëí´ ëìíì§ ìì ê²ì´ë¤. ì´ ë구ë í
ì¤í
ì "
+"ê·¹í ì ì©íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr "<literal>SchemaValidator</literal> ëª
ë ¹ ë¼ì¸ ìµì
ë¤"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr "<literal>SchemaValidator</literal> ëª
ë ¹ ë¼ì¸ ìµì
ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr ""
+"ë¹ì ì ë¹ì ì ì´í리ì¼ì´ì
ë´ì <literal>SchemaValidator</literal>ì ì½ì
ì"
+"í¬ ì ë ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr "ì¤í¤ë§ ì í¨ì± ê²ì¬ë¥¼ ìí´ Ant ì¬ì©í기"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
+msgstr ""
+"ë¹ì ì Ant ì¤í¬ë¦½í¸ìì <literal>SchemaValidator</literal>를 í¸ì¶í ì ìë¤:"
+
+#~ 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 íì¤í¬ë¤:"
+
+#~ msgid "<one-to-one>"
+#~ msgstr "<one-to-one>"
+
+#~ msgid "<many-to-one>"
+#~ msgstr "<many-to-one>"
+
+#~ msgid "<key>"
+#~ msgstr "<key>"
+
+#~ msgid "<many-to-many>"
+#~ msgstr "<many-to-many>"
+
+#~ msgid "inverse=\"true\""
+#~ msgstr "inverse=\"true\""
+
+#~ msgid "SchemaExport"
+#~ msgstr "SchemaExport"
+
+#~ msgid "<column>"
+#~ msgstr "<column>"
+
+#~ msgid "java -cp"
+#~ msgstr "java -cp"
+
+#~ msgid "hibernate_classpaths"
+#~ msgstr "hibernate_classpaths"
+
+#~ msgid "org.hibernate.tool.hbm2ddl.SchemaExport"
+#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaExport"
+
+#~ msgid "options mapping_files"
+#~ msgstr "options mapping_files"
+
+#~ msgid "NamingStrategy"
+#~ msgstr "NamingStrategy"
+
+#~ msgid "select a <placeholder-1/>"
+#~ msgstr "íëì <placeholder-1/>를 ì ííë¤"
+
+#~ msgid "org.hibernate.tool.hbm2ddl.SchemaUpdate"
+#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaUpdate"
+
+#~ msgid ".cfg.xml"
+#~ msgstr ".cfg.xml"
+
+#~ msgid "org.hibernate.tool.hbm2ddl.SchemaValidator"
+#~ msgstr "org.hibernate.tool.hbm2ddl.SchemaValidator"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/transactions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/transactions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/transactions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1779 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Transactions and Concurrency"
+msgstr "í¸ëìì
ë¤ê³¼ ëìì±"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The most important point about Hibernate and concurrency control is that it "
+"is easy to understand. Hibernate directly uses JDBC connections and JTA "
+"resources without adding any additional locking behavior. It is recommended "
+"that you spend some time with the JDBC, ANSI, and transaction isolation "
+"specification of your database management system."
+msgstr ""
+"Hibernateì ëìì± ì ì´ì ëí ê°ì¥ ì¤ìí ì ì ì´í´íê¸°ê° ë§¤ì° ì½ë¤ë ì ì´"
+"ë¤. Hibernateë ì´ë¤ ì¶ê°ì ì¸ ì ê¸ íì ìì´ JDBC 커ë¥ì
ë¤ê³¼ JTA 리ìì¤ë¤ì "
+"ì§ì ì¬ì©íë¤. ì°ë¦¬ë ë¹ì ì ë°ì´í°ë² ì´ì¤ ê´ë¦¬ ìì¤í
ì JDBC, ANSI, ê·¸ë¦¬ê³ í¸"
+"ëìì
격리 ëª
ì¸ì ì½ê°ì ìê°ì í ì í ê²ì ë§¤ì° ê¶ì¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate does not lock objects in memory. Your application can expect the "
+"behavior as defined by the isolation level of your database transactions. "
+"Through <literal>Session</literal>, which is also a transaction-scoped "
+"cache, Hibernate provides repeatable reads for lookup by identifier and "
+"entity queries and not reporting queries that return scalar values."
+msgstr ""
+"Hibernateë ë©ëª¨ë¦¬ ë´ìì ê°ì²´ë¤ì ì ê·¸ì§ ìëë¤. ë¹ì ì ì´í리ì¼ì´ì
ì 격리 "
+"ë 벨ì ìí´ ì ìë ëë¡ íì를 기ëí ì ìë¤. ëí transaction-ììì ìºì"
+"ì¸ <literal>Session</literal> ëë¶ì, Hibernateë (ì¤ì¹¼ë¼ ê°ë¤ì ë°ííë ì§"
+"ìë¤ì ë³´ê³ íì§ ìë) ìë³ìì ìí°í° ì§ìë¤ì ìí 룩ì
ì ìí´ ë°ë³µ ê°ë¥í "
+"ì½ê¸°ë¥¼ ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In addition to versioning for automatic optimistic concurrency control, "
+"Hibernate also offers, using the <literal>SELECT FOR UPDATE</literal> "
+"syntax, a (minor) API for pessimistic locking of rows. Optimistic "
+"concurrency control and this API are discussed later in this chapter."
+msgstr ""
+"ìëì ì¸ optimistic ëìì± ì ì´ë¥¼ ìí ë²ì íì ë§ë¶ì¬, Hibernateë ëí "
+"<literal>SELECT FOR UPDATE</literal> 구문ì ì¬ì©íì¬ íë¤ì ëí pessimistic "
+"ì ê¸ì ìí íëì (ë§ì´ë)API를 ì ê³µíë¤. optimistic ëìì± ì ì´ì ì´ APIë "
+"ì´ ì¥ì ë·ë¶ë¶ìì ë
¼ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The discussion of concurrency control in Hibernate begins with the "
+"granularity of <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal>, and <literal>Session</literal>, as well as database transactions "
+"and long conversations."
+msgstr ""
+"ì°ë¦¬ë <literal>Configuration</literal>, <literal>SessionFactory</literal>, "
+"<literal>Session</literal>, ìê°±ì´ë¥¼ ê°ì§ Hibernateììì ëìì± ì ì´ ë¿ë§ ì"
+"ëë¼ ë°ì´í°ë² ì´ì¤ í¸ëìì
ê³¼ ì¥ê¸°ê°ì ê±¸ì¹ (ì»´í¨í°ìì)ëíë¤ì ëí ë
¼ì를 "
+"ììíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr "ì¸ì
ììê³¼ í¸ëìì
ìì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>SessionFactory</literal> is an expensive-to-create, threadsafe "
+"object, intended to be shared by all application threads. It is created "
+"once, usually on application startup, from a <literal>Configuration</"
+"literal> instance."
+msgstr ""
+"<literal>SessionFactory</literal>ë 모ë ì´í리ì¼ì´ì
ì°ë ëë¤ì ìí´ ê³µì ë"
+"ëë¡ ê³ ìë ìì±ì ë¹ì©ì´ ëë, ì°ë ëìì (threadsafe) ê°ì²´ì´ë¤. ê·¸ê²ì ëê° "
+"ì´í리ì¼ì´ì
ìì ìì <literal>Configuration</literal> ì¸ì¤í´ì¤ë¡ë¶í° íë² "
+"ìì±ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>Session</literal> is an inexpensive, non-threadsafe object that "
+"should be used once and then discarded for: a single request, a conversation "
+"or a single unit of work. A <literal>Session</literal> will not obtain a "
+"JDBC <literal>Connection</literal>, or a <literal>Datasource</literal>, "
+"unless it is needed. It will not consume any resources until used."
+msgstr ""
+"<literal>Session</literal>ì íëì ìì², íëì ëí , íëì ìì
ë¨ì를 ì"
+"í´ íë²ë§ ì¬ì©ëê³ ëì í기ë ìì ì¸, ë¹ì©ì´ ë¤ì§ ìë, ì°ë ë ìì íì§ ì"
+"ì ê°ì²´ì´ë¤. <literal>Session</literal>ì 커ë¥ì
ì´ íìíì§ ìì¼ë©´ íëì "
+"JDBC <literal>Connection</literal>(ëë <literal>Datasource</literal>)를 ì»"
+"ì§ ìì ê²ì´ë¯ë¡, ì¬ì©ë ëê¹ì§ 리ìì¤ë¤ì ìë¹íì§ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In order to reduce lock contention in the database, a database transaction "
+"has to be as short as possible. Long database transactions will prevent your "
+"application from scaling to a highly concurrent load. It is not recommended "
+"that you hold a database transaction open during user think time until the "
+"unit of work is complete."
+msgstr ""
+"ì´ ê·¸ë¦¼ì ìì±í기 ìí´ ë¹ì ì ëí ë°ì´í°ë² ì´ì¤ í¸ëì¬ì
ë¤ì ëí´ ìê°í´ì¼ "
+"íë¤. ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ë°ì´í°ë² ì´ì¤ìì ì ê¸ ë¤í¼ì ì¤ì´ê¸° ìí´ ê°ë¥"
+"í 짧ìì¼ íë¤. 긴 ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì ë¹ì ì ì´í리ì¼ì´ì
ì´ ê³ ëì ë"
+"ìì± ë¡ëë¡ì ê°ì©ì±ì ëì´ë ê²ì ë°©í´í ê²ì´ë¤. ê·¸ë¬ë¯ë¡ ì¬ì©ìê° ìê°íë "
+"ìê° ëì ë¨ì ìì
ì´ ìë£ë ëê¹ì§ ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì´ë ¤ì§ì±ë¡ ìì í"
+"ë ê²ì ëê° ê²°ì½ ì¢ì ì¤ê³ë ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What is the scope of a unit of work? Can a single Hibernate "
+"<literal>Session</literal> span several database transactions, or is this a "
+"one-to-one relationship of scopes? When should you open and close a "
+"<literal>Session</literal> and how do you demarcate the database transaction "
+"boundaries? These questions are addressed in the following sections."
+msgstr ""
+"íëì ìì
ë¨ìì ììì 무ìì¸ê°? íëì Hibernate <literal>Session</"
+"literal>ì ëªëª ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì ê±¸ì¹ ì ìëê° ëë ì´ê²ì ììë¤"
+"ì one-to-one ê´ê³ì¸ê°? ë¹ì ì ì¸ì <literal>Session</literal>ì ì´ê³ ë«ëê° "
+"ê·¸ë¦¬ê³ ë¹ì ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ê²½ê³ë¤ì ì´ë»ê² íì íëê°?"
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+msgstr "ìì
ë¨ì"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not use the <emphasis>session-per-operation</emphasis> antipattern: do "
+"not open and close a <literal>Session</literal> for every simple database "
+"call in a single thread. The same is true for database transactions. "
+"Database calls in an application are made using a planned sequence; they are "
+"grouped into atomic units of work. This also means that auto-commit after "
+"every single SQL statement is useless in an application as this mode is "
+"intended for ad-hoc SQL console work. Hibernate disables, or expects the "
+"application server to disable, auto-commit mode immediately. Database "
+"transactions are never optional. All communication with a database has to "
+"occur inside a transaction. Auto-commit behavior for reading data should be "
+"avoided, as many small transactions are unlikely to perform better than one "
+"clearly defined unit of work. The latter is also more maintainable and "
+"extensible."
+msgstr ""
+"첫ë²ì§¸ë¡, <emphasis>session-per-operation</emphasis> anti-í¨í´ì ì¬ì©íì§ ë§"
+"ë¼. ì¦, ë¨ì¼ ì°ë ë ë´ìì 모ë ê°ë¨í ë°ì´í°ë² ì´ì¤ í¸ì¶ì ëí´ "
+"<literal>Session</literal>ì ì´ê³ ë«ì§ ë§ë¼! ë¬¼ë¡ ê°ì ê²ì´ ë°ì´í°ë² ì´ì¤ í¸ë"
+"ìì
ë¤ì ëí´ìë ì°¸ì´ë¤. ì´í리ì¼ì´ì
ë´ì ë°ì´í°ë² ì´ì¤ í¸ì¶ë¤ì ê³íë ìì"
+"를ì¬ì©íì¬ íí´ì§ë©°, ê·¸ê²ë¤ì ìì ìì
ë¨ì ìì¼ë¡ 그룹ì§ìì§ë¤. (ì´ê²ì ë"
+"í 모ë íëì SQL ë¬¸ì¥ ë¤ì auto-commit(ìë-커ë°)ì´ ì´í리ì¼ì´ì
ë´ìì 무"
+"ì©ì§ë¬¼ìì ì미íê³ , ì´ ëª¨ëê° SQL ì½ì ìì
ì ëëë¡ ê³ ìëììì ë
¸í¸íë¼. "
+"Hibernateë ì미íê³ , ì´ ëª¨ëë Hibernateë ì¦ì ìë-ì»¤ë° ëª¨ë를 ì¬ì© ë¶ê°ë¥"
+"íê² íê±°ë, ì´í리ì¼ì´ì
ìë²ê° ê·¸ë ê² ííê³ , ì¦ì ìë-커ë°ìí¤ë ê²ì ì¬"
+"ì©ë¶ê°ë¥íê² íê±°ë ,ê·¸ë ê² ííë ê²ì 기ëíë¤.) ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì "
+"ê²°ì½ ìµì
ì´ ìëë©°, íëì ë°ì´í°ë² ì´ì¤ìì 모ë íµì ì ë¹ì ì´ ë°ì´í°ë¥¼ ì½ë "
+"ì°ë¨ê°ì ìê´ìì´ íëì í¸ëìì
ë´ìì ë°ìí´ì¼ íë¤. ì¤ëª
íìë¯ì´, ë°ì´í° "
+"ì½ê¸°ë¥¼ ìí auto-commit í¹ì§ì í¼í´ì¼ í ê²ì´ë©°, ë§ì ìì í¸ëìì
ë¤ì íë"
+"ì ëª
ë£íê² ì ìë ìì
ë¨ìë³´ë¤ ë ì¢ê² ìíë ê² ê°ì§ ìë¤. íìê° ëí í¨"
+"ì¬ ë ì ì§ê°ë¥íê³ íì¥ì ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The most common pattern in a multi-user client/server application is "
+"<emphasis>session-per-request</emphasis>. In this model, a request from the "
+"client is sent to the server, where the Hibernate persistence layer runs. A "
+"new Hibernate <literal>Session</literal> is opened, and all database "
+"operations are executed in this unit of work. On completion of the work, and "
+"once the response for the client has been prepared, the session is flushed "
+"and closed. Use a single database transaction to serve the clients request, "
+"starting and committing it when you open and close the <literal>Session</"
+"literal>. The relationship between the two is one-to-one and this model is a "
+"perfect fit for many applications."
+msgstr ""
+"ë¤ì¤ ì¬ì©ì í´ë¼ì´ì¸í¸/ìë² ì´í리ì¼ì´ì
ìì ê°ì¥ ê³µíµë í¨í´ì "
+"<emphasis>session-per-request</emphasis>ì´ë¤. ì´ ëª¨íìì, í´ë¼ì´ì¸í¸ë¡ë¶í°"
+"ì ìì²ì (Hibernate ìì ê³ì¸µì´ ì¤íëë) ìë²ë¡ ì ì¡ëê³ , ìë¡ì´ Hibernate "
+"<literal>Session</literal>ì´ ì´ë ¤ì§ê³ , 모ë ë°ì´í°ë² ì´ì¤ ì¤í¼ë ì´ì
ë¤ì´ ì´ ì"
+"ì
ë¨ì ë´ìì ì¤íëë¤. ì¼ë¨ ê·¸ ìì
ì´ ìë£ëìë¤ë©´(ê·¸ë¦¬ê³ í´ë¼ì´ì¸í¸ì ë"
+"í ìëµì´ ì¤ë¹ëìë¤ë©´), ê·¸ ì¸ì
ì flush ëê³ ë«íì§ë¤. ë¹ì ì ëí ë¹ì ì´ "
+"<literal>Session</literal>ì ì´ê³ ë«ì ë ê·¸ê²ì ììíê³ ì»¤ë°ìì¼ì í´ë¼ì´ì¸"
+"í¸ ìì²ì ìë¹ì¤íëë° í ê°ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì¬ì©íê² ë ê²ì´ë¤. "
+"ë ì¬ì´ì ê´ê³ë ì¼ëì¼ ëìì´ê³ ì´ ëª¨íì ë§ì ì´í리ì¼ì´ì
ë¤ìì ìì íê² "
+"ì í©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The challenge lies in the implementation. Hibernate provides built-in "
+"management of the \"current session\" to simplify this pattern. Start a "
+"transaction when a server request has to be processed, and end the "
+"transaction before the response is sent to the client. Common solutions are "
+"<literal>ServletFilter</literal>, AOP interceptor with a pointcut on the "
+"service methods, or a proxy/interception container. An EJB container is a "
+"standardized way to implement cross-cutting aspects such as transaction "
+"demarcation on EJB session beans, declaratively with CMT. If you use "
+"programmatic transaction demarcation, for ease of use and code portability "
+"use the Hibernate <literal>Transaction</literal> API shown later in this "
+"chapter."
+msgstr ""
+"ëì ë 구íì ëì¬ìë¤: Hibernateë ì´ í¨í´ì ë¨ìí ìí¤ê¸° ìí´ \"íì¬ ì¸ì
"
+"\"ì ê´í 미리 ë¹ëë ê´ë¦¬ë¥¼ ì ê³µíë¤. ë¹ì ì´ íí´ì¼í 모ë ê²ì ìë² ìì²ì´ "
+"ì²ë¦¬ëì´ì¼ í ë í¸ëìì
ì ììíê³ , ê·¸ ìëµì´ í´ë¼ì´ì¸í¸ë¡ ì ì¡ë기 ì ì í¸"
+"ëìì
ì ëë´ë ê²ì´ë¤. ë¹ì ì ë¹ì ì´ ì¢ìíë ììì ë°©ë²ì¼ë¡ ì´ê²ì íí "
+"ì ìì¼ë©°, ê³µíµë í´ê²°ì±
ë¤ì ìë¹ì¤ ë©ìëë¤ ìì 첨ë¨, ëë íëì íë½ì/ì¸"
+"í°ì
ì
컨í
ì´ë를 ê°ì§ APO ì¸í°ì
í°ì¸, <literal>ServletFilter</literal>ì´ë¤. "
+"íëì EJB 컨í
ì´ëë CMTì ê²½ì°ì ì ì¸ì ì¼ë¡ EJB session beans ìì í¸ëì"
+"ì
ê²½ê³êµ¬ë¶ê³¼ ê°ì ëì ëì¡° 측면ë¤ì 구ííë íì¤ ë°©ë²ì´ë¤. ë§ì¼ ë¹ì ì´ í"
+"ë¡ê·¸ë¨ ìì í¸ëìì
ê²½ê³êµ¬ë¶ì ì¬ì©íê³ ì ê²°ì íë¤ë©´, ì¬ì©ì ì©ì´ì±ê³¼ ì½ë "
+"ì´ìì±ì ìí´ ì´ ì¥ì ë· ë¶ë¶ìì ë³´ì¬ì§ Hibernate <literal>Transaction</"
+"literal>ì ì í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Your application code can access a \"current session\" to process the "
+"request by calling <literal>sessionFactory.getCurrentSession()</literal>. "
+"You will always get a <literal>Session</literal> scoped to the current "
+"database transaction. This has to be configured for either resource-local or "
+"JTA environments, see <xref linkend=\"architecture-current-session\" />."
+msgstr ""
+"ë¹ì ì ì´í리ì¼ì´ì
ì½ëë ì´ëìë íìí ë ì¢
ì¢
<literal>sessionFactory."
+"getCurrentSession()</literal>ì ê°ë¨í í¸ì¶í¨ì¼ë¡ì¨ ìì²ì ì²ë¦¬í \"íì¬ ì¸ì
"
+"\"ì ì ê·¼í ì ìë¤. ë¹ì ì íì¬ ë°ì´í°ë² ì´ì¤ í¸ëìì
ì¼ë¡ ììíë íëì "
+"<literal>Session</literal>ì íì ì»ê² ë ê²ì´ë¤. ì´ê²ì resource-local íê²½ "
+"ëë JTA íê²½ì ëí´ êµ¬ì±ëì´ì¼ íë©°, <xref linkend=\"architecture-current-"
+"session\"/>ì ë³´ë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can extend the scope of a <literal>Session</literal> and database "
+"transaction until the \"view has been rendered\". This is especially useful "
+"in servlet applications that utilize a separate rendering phase after the "
+"request has been processed. Extending the database transaction until view "
+"rendering, is achieved by implementing your own interceptor. However, this "
+"will be difficult if you rely on EJBs with container-managed transactions. A "
+"transaction will be completed when an EJB method returns, before rendering "
+"of any view can start. See the Hibernate website and forum for tips and "
+"examples relating to this <emphasis>Open Session in View</emphasis> pattern."
+msgstr ""
+"ëëë¡ \"ë·°ê° ë ëë§ë ëê¹ì§\" íëì <literal>Session</literal> ê³¼ ë°ì´í°ë² "
+"ì´ì¤ í¸ëìì
ì ììì íì¥ìí¤ë ê²ì´ í¸ë¦¬íë¤. ì´ê²ì ìì²ì´ ì²ë¦¬ë íì í"
+"ëì ë³ëì ë ëë§ ë¨ê³ë¥¼ íì©íë ìë¸ë¦¿ ì´í리ì¼ì´ì
ë¤ìì í¹í ì ì©íë¤. "
+"ë·° ë ëë§ì´ ìë£ë ëê¹ì§ ë°ì´í°ë² ì´ì¤ í¸ëìì
ì íì¥íë ê²ì ë¹ì ì´ ë¹ì "
+"ìì ì ì¸í°ì
í°ë¥¼ 구ííë ê²½ì°ì ííê¸°ê° ì½ë¤. íì§ë§ ë§ì¼ ë¹ì ì´ ì»¨í
ì´ë"
+"ì ìí´ ê´ë¦¬ëë í¸ëìì
ë¤ì ê°ì§ EJBë¤ì ìì¡´í ê²½ì°ì, íëì EJB ë©ìë"
+"ê° ë°íë ë ììì ë·° ë ëë§ì´ ììë ì ì기 ì ì íëì í¸ëìì
ì´ ìë£ë"
+"기 ë문ì, ííë ê²ì´ ì½ì§ ìë¤. ì´ <emphasis>Open Session in View</"
+"emphasis> í¨í´ì ëë¬ì¼ íë¤ê³¼ ìì ë¤ì Hibernate ì¹ ì¬ì´í¸ì í¬ë¼ì ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr "ì¥ê¸°ê°ì ëí"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The session-per-request pattern is not the only way of designing units of "
+"work. Many business processes require a whole series of interactions with "
+"the user that are interleaved with database accesses. In web and enterprise "
+"applications, it is not acceptable for a database transaction to span a user "
+"interaction. Consider the following example:"
+msgstr ""
+"session-per-request í¨í´ì ë¹ì ì´ ìì
ë¨ìë¤ì ì¤ê³íëë° ì¬ì©í ì ìë ì "
+"ì¼í ì ì©í ê°ë
ì´ ìëë¤. ë§ì ë¹ì§ëì¤ íë¡ì¸ì¤ë¤ì ë°ì´í°ë² ì´ì¤ ì ê·¼ë¤ì "
+"ì¤ì¬íë ì¬ì©ì ì¬ì´ì ì ì²´ ì¼ë ¨ì ìí¸ìì©ë¤ì íìë¡ íë¤. ì¹ê³¼ ìí°íë¼ì´"
+"ì¦ ì´í리ì¼ì´ì
ìì ì¬ì©ì ìí¸ìì©ì 걸ì¹ë ê²ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì í"
+"ì©ëì§ ìëë¤. ë¤ì ìì 를 ê²í íì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The first screen of a dialog opens. The data seen by the user has been "
+"loaded in a particular <literal>Session</literal> and database transaction. "
+"The user is free to modify the objects."
+msgstr ""
+"ëíììì 첫 ë²ì§¸ íë©´ì´ ì´ë¦¬ê³ , ì¬ì©ììê² ë³´ì¬ì§ ë°ì´í°ë í¹ì "
+"<literal>Session</literal>ê³¼ ë°ì´í°ë² ì´ì¤ í¸ëìì
ìì ë¡ëëìë¤. ì¬ì©ìê° "
+"ê°ì²´ë¤ì ë³ê²½ìí¤ë ê²ì´ ìì ë¡ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The user clicks \"Save\" after 5 minutes and expects their modifications to "
+"be made persistent. The user also expects that they were the only person "
+"editing this information and that no conflicting modification has occurred."
+msgstr ""
+"ì¬ì©ìë 5ë¶ íì \"ì ì¥\"ì í´ë¦íê³ ê·¸ì ë³ê²½ë¤ì´ ììí ë기를 기ëíë¤; "
+"ê·¸ë ëí ê·¸ê° ì´ ì 보를 í¸ì§íë ì ì¼í ê°ì¸ì´ê³ ë³ê²½ 충ëì´ ë°ìíì§ ì기"
+"를 기ëíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"From the point of view of the user, we call this unit of work a long-running "
+"<emphasis>conversation</emphasis> or <emphasis>application transaction</"
+"emphasis>. There are many ways to implement this in your application."
+msgstr ""
+"ì°ë¦¬ë ì¬ì©ìì ê´ì ìì, ì´ê²ì ìì
ë¨ì, ì¥ê¸°ê° ì¤íëë <emphasis>ëí</"
+"emphasis> (ëë <emphasis>ì´í리ì¼ì´ì
í¸ëìì
</emphasis>)ì´ë¼ê³ ëª
ëª
íë¤. "
+"ë¹ì ì´ ë¹ì ì ì´í리ì¼ì´ì
ìì ì´ê²ì ì´ë»ê² 구íí ì ìë ë§ì ë°©ë²ë¤ì´ ì¡´"
+"ì¬íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A first naive implementation might keep the <literal>Session</literal> and "
+"database transaction open during user think time, with locks held in the "
+"database to prevent concurrent modification and to guarantee isolation and "
+"atomicity. This is an anti-pattern, since lock contention would not allow "
+"the application to scale with the number of concurrent users."
+msgstr ""
+"첫 ë²ì§¸ naive 구íì ëìì± ë³ê²½ì ë°©ì§íê³ , 격리ì atomicity(ìì ë¨ìì±)ì "
+"ë³´ì¥í기 ìí´ ë°ì´í°ë² ì´ì¤ì ìí´ ìì ë ì ê¸ì¼ë¡ ì¬ì©ìê° ìê°íëëì "
+"<literal>Session</literal>ê³¼ ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì ì§í ìë ìë¤. ì´ê²"
+"ì ë¬¼ë¡ anti-í¨í´ì´ë¤. ìëíë©´ ì ê¸ ë¤í¼ì ì´í리ì¼ì´ì
ì´ ëì ì¬ì©ìë¤ì ê°"
+"ì© ì«ì를 ëì´ë ê²ì íì©íì§ ìì ê²ì´ê¸° ë문ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You have to use several database transactions to implement the conversation. "
+"In this case, maintaining isolation of business processes becomes the "
+"partial responsibility of the application tier. A single conversation "
+"usually spans several database transactions. It will be atomic if only one "
+"of these database transactions (the last one) stores the updated data. All "
+"others simply read data (for example, in a wizard-style dialog spanning "
+"several request/response cycles). This is easier to implement than it might "
+"sound, especially if you utilize some of Hibernate's features:"
+msgstr ""
+"ëª
ë£íê², ì°ë¦¬ë ëí(<emphasis>ì´í리ì¼ì´ì
í¸ëìì
</emphasis>)를 구ííë"
+"ë° ëªëª ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì ì¬ì©í´ì¼ íë¤. ì´ ê²½ì°ì, ë¹ì§ëì¤ íë¡ì¸ì¤"
+"ë¤ì 격리를 ì ì§íë ê²ì ì´í리ì¼ì´ì
í°ì´ì ë¶ë¶ì ì¸ ì±
ìì´ ëë¤. ë¨ì¼ ëí"
+"ë ëê° ì¬ë¬ ê°ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì 걸ì¹ë¤. ê·¸ê²ì ì´ë¤ ë°ì´í°ë² ì´ì¤ "
+"í¸ëìì
ë¤ ì¤ ì¤ì§ í ê°(ë§ì§ë§ í¸ëìì
)ê° ì
ë°ì´í¸ë ë°ì´í°ë¥¼ ì ì¥íê³ , 모"
+"ë ë¤ë¥¸ í¸ëìì
ë¤ì´ ë¨ìí ë°ì´í°ë¥¼ ì½ë (ì를 ë¤ë©´, ëªëª ìì²/ìëµ ì£¼ê¸°ì "
+"걸ì¹ë ë§ë²ì¬ ì¤íì¼ì ëí ìììì) ê²½ì°ìë§ ììë¨ìê° ë ê²ì´ë¤. í¹í ë¹"
+"ì ì´ Hibernateì í¹ì§ë¤ì ì¬ì©í ê²½ì°ì , ì´ê²ì ë¤ë¦¬ë ê²ë³´ë¤ 구ííê¸°ê° ë "
+"ì½ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Automatic Versioning</emphasis>: Hibernate can perform automatic "
+"optimistic concurrency control for you. It can automatically detect if a "
+"concurrent modification occurred during user think time. Check for this at "
+"the end of the conversation."
+msgstr ""
+"<emphasis>ìëì ì¸ ë²ì í</emphasis> - Hibernateë ë¹ì ì ìí´ ìëì ì¸ "
+"optimistic ëìì± ì ì´ë¥¼ íí ì ìê³ , ê·¸ê²ì ì¬ì©ìê° ìê°íë ìê° ëì ë"
+"ìì ì¸ ë³ê²½ì´ ë°ìíëì§ë¥¼ ìëì ì¼ë¡ ê²ì¶í ì ìë¤. ëê° ì°ë¦¬ë ì¤ì§ ëí"
+"ì ëìì ì²´í¬íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Detached Objects</emphasis>: if you decide to use the "
+"<emphasis>session-per-request</emphasis> pattern, all loaded instances will "
+"be in the detached state during user think time. Hibernate allows you to "
+"reattach the objects and persist the modifications. The pattern is called "
+"<emphasis>session-per-request-with-detached-objects</emphasis>. Automatic "
+"versioning is used to isolate concurrent modifications."
+msgstr ""
+"<emphasis>Detached ê°ì²´ë¤</emphasis> - ë§ì¼ ë¹ì ì´ ì´ë¯¸ ë
¼ìë "
+"<emphasis>session-per-request</emphasis> í¨í´ì ì¬ì©íê³ ì ê²°ì íë ê²½ì°, 모"
+"ë ë¡ëë ì¸ì¤í´ì¤ë¤ì ì¬ì©ìê° ìê°íë ìê° ëì detached ìíì ìì ê²ì´"
+"ë¤. Hibernateë ê·¸ ê°ì²´ë¤ì ì¬ì²¨ë¶ìí¤ê³ ë³ê²½ë¤ì ììí ìí¤ë ê²ì íì©í´ì£¼"
+"ë©°, ê·¸ í¨í´ì <emphasis>session-per-request-with-detached-objects(detached-ê°"
+"ì²´ë¤ì ê°ì§ ìì² ë¹ ì¸ì
)</emphasis>ì¼ë¡ ëª
ëª
ëë¤. ìëì ì¸ ë²ì íë ëìì± "
+"ë³ê²½ë¤ì 격리ìí¤ëë° ì¬ì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis>Extended (or Long) Session</emphasis>: the Hibernate "
+"<literal>Session</literal> can be disconnected from the underlying JDBC "
+"connection after the database transaction has been committed and reconnected "
+"when a new client request occurs. This pattern is known as <emphasis>session-"
+"per-conversation</emphasis> and makes even reattachment unnecessary. "
+"Automatic versioning is used to isolate concurrent modifications and the "
+"<literal>Session</literal> will not be allowed to be flushed automatically, "
+"but explicitly."
+msgstr ""
+"<emphasis>íì¥ë (ëë Long) Session</emphasis> - Hibernate "
+"<emphasis>Session</emphasis>ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì´ ì»¤ë°ë íì 기본 JDBC "
+"커ë¥ì
ì´ ì°ê²° í´ì ë ìë ìê³ , ìë¡ì´ í´ë¼ì´ì¸í¸ ìì²ì´ ë°ìí ë ë¤ì ì°ê²°"
+"ë ì ìë¤. ì´ í¨í´ì <emphasis>session-per-conversation(ëí ë¹ ì¸ì
)</"
+"emphasis>ì¼ë¡ ìë ¤ì ¸ ìê³ ì¬ì²¨ë¶ë¥¼ ë¶íìíê² ë§ë ë¤. ìëì ì¸ ë²ì íë ëì"
+"ì± ë³ê²½ë¤ì 격리ìí¤ëë° ì¬ì©ëê³ <literal>Session</literal>ì ìëì ì¼ë¡ "
+"flushëë ê²ì´ íì©ëì§ ìì§ë§ ëª
ìì ì¼ë¡ flushëë ê²ì íì©ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Both <emphasis>session-per-request-with-detached-objects</emphasis> and "
+"<emphasis>session-per-conversation</emphasis> have advantages and "
+"disadvantages. These disadvantages are discussed later in this chapter in "
+"the context of optimistic concurrency control."
+msgstr ""
+"<emphasis>session-per-request-with-detached-objects</emphasis>ê³¼ "
+"<emphasis>session-per-conversation</emphasis> ììë ì¥ì ë¤ê³¼ ë¨ì ë¤ì ê°ë"
+"ë°, ì°ë¦¬ë ì´ ì¥ì ë· ë¶ë¶ìì optimistic ëìì± ì ì´ ë¨ë½ìì ê·¸ê²ë¤ì ë
¼ì"
+"íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr "ê°ì²´ identity ê³ ë ¤í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An application can concurrently access the same persistent state in two "
+"different <literal>Session</literal>s. However, an instance of a persistent "
+"class is never shared between two <literal>Session</literal> instances. It "
+"is for this reason that there are two different notions of identity:"
+msgstr ""
+"ì´í리ì¼ì´ì
ì ë ê°ì ë¤ë¥¸ <literal>Session</literal>ë¤ ë´ì ìë ëì¼í ì"
+"ì ìíì ëìì ì ê·¼í ìë ìë¤. íì§ë§ ìì í´ëì¤ì ì¸ì¤í´ì¤ë ë ê°ì "
+"<literal>Session</literal> ì¸ì¤í´ì¤ë¤ ì¬ì´ì ê²°ì½ ê³µì ëì§ ìëë¤. ê·¸ë¬ë¯ë¡ "
+"identityì ëí ë ê°ì ë¤ë¥¸ ê°ë
ë¤ì´ ì¡´ì¬íë¤:"
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr "ë°ì´í°ë² ì´ì¤ Identity"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "foo.getId().equals( bar.getId() )"
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr "JVM Identity"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For objects attached to a <emphasis>particular</emphasis> <literal>Session</"
+"literal> (i.e., in the scope of a <literal>Session</literal>), the two "
+"notions are equivalent and JVM identity for database identity is guaranteed "
+"by Hibernate. While the application might concurrently access the \"same"
+"\" (persistent identity) business object in two different sessions, the two "
+"instances will actually be \"different\" (JVM identity). Conflicts are "
+"resolved using an optimistic approach and automatic versioning at flush/"
+"commit time."
+msgstr ""
+"ê·¸ë (ì를 ë¤ì´ <literal>Session</literal> ìììì) <emphasis>í¹ì </"
+"emphasis><literal>Session</literal>ì 첨ë¶ë ê°ì²´ë¤ì ê²½ì° ë ê°ì ê°ë
ë¤ì "
+"ëë±í ê²ì´ê³ , ë°ì´í°ë² ì´ì¤ identityì ëí JVM identityê° Hibernateì ìí´ "
+"ë³´ì¥ëë¤. íì§ë§, ì´í리ì¼ì´ì
ì´ ë ê°ì ë¤ë¥¸ ì¸ì
ë¤ìì \"ëì¼í\" (ìì "
+"identity) ë¹ì§ëì¤ ê°ì²´ì ëìì ì ê·¼íë ëì, ë ê°ì ì¸ì¤í´ì¤ë¤ì ì¤ì ë¡ "
+"\"ë¤ë¥´ë¤\"(JVM identity). 충ëë¤ì flush/ì»¤ë° ìì (ìëì ì¸ ë²ì í)를 ì¬ì©í"
+"ì¬, optimistic ì ê·¼ë²ì ì¬ì©íì¬ í´ê²°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This approach leaves Hibernate and the database to worry about concurrency. "
+"It also provides the best scalability, since guaranteeing identity in single-"
+"threaded units of work means that it does not need expensive locking or "
+"other means of synchronization. The application does not need to synchronize "
+"on any business object, as long as it maintains a single thread per "
+"<literal>Session</literal>. Within a <literal>Session</literal> the "
+"application can safely use <literal>==</literal> to compare objects."
+msgstr ""
+"ì´ ì ê·¼ë²ì Hibernateì ë°ì´í°ë² ì´ì¤ê° ëìì±ì ëí´ ê±±ì íì§ ìëë¡ í´ì¤ë¤; "
+"ê·¸ê²ì ëí ìµìì scalability를 ì ê³µíë¤. ìëíë©´ ë¨ì¼ ì°ë ë-ìì
ë¨ì ë´"
+"ìì identity ë³´ì¥ì ë¨ì§ ë¹ì©ì´ ëë ì ê¸ì´ë ë¤ë¥¸ ë기í ìë¨ë¤ì íìë¡ í"
+"ì§ ì기 ë문ì´ë¤. ì´í리ì¼ì´ì
ì ê·¸ê²ì´ <literal>Session</literal> ë¹ ë¨ì¼ ì°"
+"ë ë를 ê°ì íë í, ì´ë¤ ë¹ì§ëì¤ ê°ì²´ì ëí´ ê²°ì½ ë기í ìí¬ íìê° ìë¤. "
+"íëì <literal>Session</literal> ë´ìì ì´í리ì¼ì´ì
ì ê°ì²´ë¤ì ë¹êµíëë° "
+"<literal>==</literal>를 ìì íê² ì¬ì©í ìê° ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"<literal>Session</literal> might produce unexpected results. This might "
+"occur even in some unexpected places. For example, if you put two detached "
+"instances into the same <literal>Set</literal>, both might have the same "
+"database identity (i.e., they represent the same row). JVM identity, "
+"however, is by definition not guaranteed for instances in a detached state. "
+"The developer has to override the <literal>equals()</literal> and "
+"<literal>hashCode()</literal> methods in persistent classes and implement "
+"their own notion of object equality. There is one caveat: never use the "
+"database identifier to implement equality. Use a business key that is a "
+"combination of unique, usually immutable, attributes. The database "
+"identifier will change if a transient object is made persistent. If the "
+"transient instance (usually together with detached instances) is held in a "
+"<literal>Set</literal>, changing the hashcode breaks the contract of the "
+"<literal>Set</literal>. Attributes for business keys do not have to be as "
+"stable as database primary keys; you only have to guarantee stability as "
+"long as the objects are in the same <literal>Set</literal>. See the "
+"Hibernate website for a more thorough discussion of this issue. Please note "
+"that this is not a Hibernate issue, but simply how Java object identity and "
+"equality has to be implemented."
+msgstr ""
+"íì§ë§, íëì <literal>Session</literal> ì¸ë¶ìì <literal>==</literal>를 ì¬"
+"ì©íë ì´í리ì¼ì´ì
ì ìê¸°ì¹ ìì ê²°ê³¼ë¤ì ë³´ê² ë ìë ìë¤. ì´ê²ì ì´ë¤ ì"
+"ê¸°ì¹ ìì ì¥ìë¤ìì, ì를 ë¤ì´ ë¹ì ì´ ë ê°ì detached ì¸ì¤í´ì¤ë¤ì ëì¼í "
+"<literal>Set</literal> ë´ì ì§ì´ë£ì ê²½ì°ì ë°ìí ìë ìë¤. ë ë¤ ëì¼í ë°"
+"ì´í°ë² ì´ì¤ identity를 ê°ì§ ì ìì§ë§ (ì를 ë¤ì´ ê·¸ê²ë¤ì ëì¼í íì ííí"
+"ë¤), JVM identityë ì ì ì detached ìíì ìë ì¸ì¤í´ì¤ë¤ì ë³´ì¥íì§ ìë"
+"ë¤. ê°ë°ìë ìì í´ëì¤ë¤ë´ì <literal>equals()</literal> ë©ìëì "
+"<literal>hashCode()</literal> ë©ìë를 ì¤ë²ë¼ì´ë ìì¼ì¼ íê³ ê°ì²´ equality"
+"ì ëí ê·¸ ìì ì ê°ë
ì 구íí´ì¼ íë¤. íëì ê²½ê³ ê° ì¡´ì¬íë¤: equality를 구"
+"ííëë° ë°ì´í°ë² ì´ì¤ identifier를 ê²°ì½ ì¬ì©íì§ ë§ê³ , íëì ë¹ì§ëì¤ í¤, ì "
+"ì¼í, ëê° ë¶ë³ì¸ ìì±ë¤ì ì¡°í©ì ì¬ì©íë¼. ë°ì´í°ë² ì´ì¤ ìë³ìë ë§ì¼ "
+"transient ê°ì²´ê° ììíëë ê²½ì°ì ë³ê²½ë ê²ì´ë¤. ë§ì¼ transient ì¸ì¤í´ì¤ê°"
+"(ëê° detached ì¸ì¤í´ì¤ë¤ê³¼ í¨ê») <literal>Set</literal> ë´ì ë³´ê´ëë ê²½ì°"
+"ì, hashcode ë³ê²½ì <literal>Set</literal>ì ê³ì½ì í기ìí¨ë¤. ë¹ì§ëì¤ í¤ë¤"
+"ì ëí ìì±ë¤ì ë°ì´í°ë² ì´ì¤ íë¼ì´ë¨¸ë¦¬ í¤ë¤ ë§í¼ ìì ì ì´ì´ìë ìëë©°, ë¹"
+"ì ì ì¤ì§ ê°ì²´ë¤ì´ ëì¼í <literal>Set</literal> ë´ì ìë íìì ìì ì±ì ë³´"
+"ì¥í´ì¼ë§ íë¤. ì´ ìì ì ê´í ë
¼ìì ëí ë ë§ì ê²ì Hibernate ì¹ ì¬ì´í¸ë¥¼ "
+"ë³´ë¼. ëí ì´ê²ì´ Hibernate ìì ì´ ìëë©°, ë¨ì§ ìë° ê°ì²´ identityì equality"
+"ê° êµ¬íëì´ì¼ íë ë°©ë²ìì ë
¸í¸íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr "ê³µíµë ìì ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not use the anti-patterns <emphasis>session-per-user-session</emphasis> "
+"or <emphasis>session-per-application</emphasis> (there are, however, rare "
+"exceptions to this rule). Some of the following issues might also arise "
+"within the recommended patterns, so ensure that you understand the "
+"implications before making a design decision:"
+msgstr ""
+"ìí°-í¨í´ë¤ <emphasis>session-per-user-session</emphasis> ëë "
+"<emphasis>session-per-application</emphasis>ì ê²°ì½ ì¬ì©íì§ ë§ë¼(ë¬¼ë¡ ì´ ê·"
+"ì¹ì ëí ë문 ìì¸ìí©ë¤ì´ ì¡´ì¬íë¤). ë¤ì ìì ë¤ ì¤ ëªëªì´ ëí ê¶ì¥ëë í¨"
+"í´ë¤ë¡ ëíë ì ììì ë
¸í¸íê³ , ë¹ì ì´ ì¤ê³ ê²°ì ì ë´ë¦¬ê¸° ì ì ë´í¬ë ì미"
+"ë¤ì íì¤í ì´í´íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <literal>Session</literal> is not thread-safe. Things that work "
+"concurrently, like HTTP requests, session beans, or Swing workers, will "
+"cause race conditions if a <literal>Session</literal> instance is shared. If "
+"you keep your Hibernate <literal>Session</literal> in your "
+"<literal>HttpSession</literal> (this is discussed later in the chapter), you "
+"should consider synchronizing access to your Http session. Otherwise, a user "
+"that clicks reload fast enough can use the same <literal>Session</literal> "
+"in two concurrently running threads."
+msgstr ""
+"<literal>Session</literal>ì ì°ë ë-ìì íì§ ìë¤. HTTP ìì²ë¤, ì¸ì
ë¹ì¦, ë"
+"ë Swing workerë¤ì²ë¼ ëìì ìì
íë ê²ì¼ë¡ ê°ì ëë ê²ë¤ì íëì "
+"<literal>Session</literal> ì¸ì¤í´ì¤ê° ê³µì ë ê²½ì°ì ê²½ì ì¡°ê±´ë¤ì ë°ììí¬ ê²"
+"ì´ë¤. ë§ì¼ ë¹ì ì´ ë¹ì ì <literal>HttpSession</literal> ë´ì Hibernate "
+"<literal>Session</literal>ì ì ì§ìí¤ë ê²½ì°(ëì¤ì ë
¼ìë¨), ë¹ì ì ë¹ì ì "
+"Http ì¸ì
ì ëí ì ê·¼ì ë기í ìí¤ë ê²ì ê³ ë ¤í´ì¼ íë¤. ê·¸ ë°ì ê²½ì°, 충ë¶"
+"í ë¹ ë¥´ê² reload를 í´ë¦íë ì¬ì©ìë ë ê°ì ëìì ì¼ë¡ ì¤íëë ì°ë ëë¤ ë´"
+"ìì ëì¼í <literal>Session</literal>ì ì¬ì©í ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An exception thrown by Hibernate means you have to rollback your database "
+"transaction and close the <literal>Session</literal> immediately (this is "
+"discussed in more detail later in the chapter). If your <literal>Session</"
+"literal> is bound to the application, you have to stop the application. "
+"Rolling back the database transaction does not put your business objects "
+"back into the state they were at the start of the transaction. This means "
+"that the database state and the business objects will be out of sync. "
+"Usually this is not a problem, because exceptions are not recoverable and "
+"you will have to start over after rollback anyway."
+msgstr ""
+"Hibernateì ìí´ ëì ¸ì§ ìì¸ìí©ì ë¹ì ì´ ë¹ì ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì 롤"
+"ë°± ìí¤ê³ ì¦ì <literal>Session</literal>ì ë«ìì¼ í¨ì ì미íë¤(ëì¤ì ìì¸"
+"í ë
¼ìë¨). ë§ì¼ ë¹ì ì <literal>Session</literal>ì´ ì´í리ì¼ì´ì
ì ë°ì¸ë ë"
+"ì´ ìë ê²½ì°, ë¹ì ì ì´í리ì¼ì´ì
ì ì¤ì§ìì¼ì¼ íë¤. ë°ì´í°ë² ì´ì¤ í¸ëìì
롤"
+"ë°±ì ë¹ì ì ë¹ì§ëì¤ ê°ì²´ë¤ì ê·¸ê²ë¤ì´ í¸ëìì
ì ìì ìì 머물ë ë ìíë¡ "
+"ëë리ì§ë ìëë¤. ì´ê²ì ë°ì´í°ë² ì´ì¤ ìíì ë¹ì§ëì¤ ê°ì²´ë¤ì´ ë기í를 ë²ì´"
+"ë¨ì ì미íë¤. ëê° ì´ê²ì 문ì ê° ìëë¤. ìëíë©´ ìì¸ìí©ë¤ì íë³µê°ë¥í ê²"
+"ì´ ìëê³ ë¹ì ì´ ì´ë»ê²ë 롤백 íì ììí´ì¼ í기 ë문ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Session</literal> caches every object that is in a persistent "
+"state (watched and checked for dirty state by Hibernate). If you keep it "
+"open for a long time or simply load too much data, it will grow endlessly "
+"until you get an OutOfMemoryException. One solution is to call <literal>clear"
+"()</literal> and <literal>evict()</literal> to manage the <literal>Session</"
+"literal> cache, but you should consider a Stored Procedure if you need mass "
+"data operations. Some solutions are shown in <xref linkend=\"batch\" />. "
+"Keeping a <literal>Session</literal> open for the duration of a user session "
+"also means a higher probability of stale data."
+msgstr ""
+"<literal>Session</literal>ì (Hibernateì ìí´ dirty ìíë¡ ê´ì°°ëìê±°ë ì²´í¬"
+"ë) ìì ìíì ìë 모ë ê°ì²´ë¥¼ ìºì ìí¨ë¤. ì´ê²ì ë¹ì ì´ ì¤ë ìê° ëì "
+"<literal>Session</literal>ì ì´ì´ë ì±ë¡ ì ì§íê±°ë ë¨ìíê² ë무 ë§ì ë°ì´í°"
+"를 ë¡ëìí¬ ê²½ì°ì, ë¹ì ì´ OutOfMemoryExceptionì ì»ê¸° ì ê¹ì§, ê·¸ê²ì´ ëìì´ "
+"ì±ì¥íë¤ë ì ì ì미íë¤. ì´ê²ì ëí íëì í´ê²°ì±
ì <literal>Session</"
+"literal> ìºì를 ê´ë¦¬í기 ìí´ <literal>clear()</literal>ì <literal>evict()</"
+"literal>를 í¸ì¶íë ê²ì´ì§ë§, ë¹ì ì´ ëì©ë ë°ì´í° ì¤í¼ë ì´ì
ë¤ì íìë¡ í"
+"ë ê²½ì°ì ë¹ì ì ëê° ë´ì¥ íë¡ìì 를 ê³ ë ¤í´ì¼ í ê²ì´ë¤. ëªëª í´ê²°ì±
ë¤ì´ "
+"<xref linkend=\"batch\"/>ì ë³´ì¬ì ¸ ìë¤. ì¬ì©ì ì¸ì
ëìì "
+"<literal>Session</literal>ì ì´ë ¤ì§ ì±ë¡ ì ì§íë ê²ì ëí ì¤í¨ì±ì´ ë¨ì´ì§ "
+"ë°ì´í°ì ëí ëì íë¥ ì ì미íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr "ë°ì´í°ë² ì´ì¤ í¸ëìì
ê²½ê³ ì¤ì "
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Database, or system, transaction boundaries are always necessary. No "
+"communication with the database can occur outside of a database transaction "
+"(this seems to confuse many developers who are used to the auto-commit "
+"mode). Always use clear transaction boundaries, even for read-only "
+"operations. Depending on your isolation level and database capabilities this "
+"might not be required, but there is no downside if you always demarcate "
+"transactions explicitly. Certainly, a single database transaction is going "
+"to perform better than many small transactions, even for reading data."
+msgstr ""
+"ë°ì´í°ë² ì´ì¤ (ëë ìì¤í
) í¸ëìì
ê²½ê³ë¤ì íì íìì ì´ë¤. ë°ì´í°ë² ì´ì¤ì"
+"ì íµì ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì¸ë¶ìì ë°ìí ì ìë¤(ì´ê²ì ìë-ì»¤ë° ëª¨"
+"ëë¡ ì¬ì©ëë ë§ì ê°ë°ìë¤ìê²ë í¼ëì¤ë¬ì ë³´ì¸ë¤). íì ì¬ì§ì´ ì½ê¸° ì ì© "
+"ì¤í¼ë ì´ì
ë¤ì ëí´ìë ëª
ë£í í¸ëìì
ê²½ê³ë¤ì ì¬ì©íë¼. ë¹ì ì 격리 ë 벨"
+"ê³¼ ë°ì´í°ë² ì´ì¤ ê°ì©ì±ë¤ì ë°ë¼, ì´ê²ì íìíì§ ìì ì ìì§ë§, ë§ì¼ ë¹ì ì´ "
+"íì í¸ëìì
ë¤ì ëª
ìì ì¼ë¡ ê²½ê³ ì¤ì í ê²½ì°ìë íê°íë ê²°ì ë¤ì´ ì¡´ì¬íì§ "
+"ìëë¤. íì¤í, íëì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì¬ì§ì´ ë°ì´í° ì½ê¸°ì¡°ì°¨ë ë§ì "
+"ìì í¸ëìì
ë¤ì ê²½ì°ë³´ë¤ë ë ì¢ê² ìíë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A Hibernate application can run in non-managed (i.e., standalone, simple "
+"Web- or Swing applications) and managed J2EE environments. In a non-managed "
+"environment, Hibernate is usually responsible for its own database "
+"connection pool. The application developer has to manually set transaction "
+"boundaries (begin, commit, or rollback database transactions) themselves. A "
+"managed environment usually provides container-managed transactions (CMT), "
+"with the transaction assembly defined declaratively (in deployment "
+"descriptors of EJB session beans, for example). Programmatic transaction "
+"demarcation is then no longer necessary."
+msgstr ""
+"Hibernate ì´í리ì¼ì´ì
ì ê´ë¦¬ëì§ ìë íê²½(ì를 ë¤ë©´. ì¤í ëì¼ë¡ , ê°ë¨í ì¹ "
+"ì´í리ì¼ì´ì
ë¤ ëë Swing ì´í리ì¼ì´ì
ë¤)ê³¼ ê´ë¦¬ëë J2EE íê²½ìì ì¤íë ì "
+"ìë¤. ê´ë¦¬ëì§ ìë íê²½ìì, Hibernateë ëê° ê·¸ê² ìì ì ë°ì´í°ë² ì´ì¤ 커ë¥"
+"ì
íì ëí ì±
ìì´ ìë¤. ì´í리ì¼ì´ì
ê°ë°ìë í¸ëìì
ê²½ê³ë¤ì ìì ì¤ì í´"
+"ì¼ íë¤. ë¬ë¦¬ ë§í´, ê°ë°ì ì¤ì¤ë¡ ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ì ììíê³ , 커ë°ì"
+"í¤ê±°ë 롤백ìì¼ì¼ íë¤. ê´ë¦¬ëë íê²½ì ëê° ì를 ë¤ì´ EJB ì¸ì
ë¹ì¦ì ë°°ì¹ "
+"ëì¤í¬ë¦½í° ìì ì ì¸ì ì¼ë¡ ì ìë í¸ëìì
ì´ì
ë¸ë¦¬ë¥¼ ê°ì§, 컨í
ì´ëì ìí´-"
+"ê´ë¦¬ëë í¸ëìì
ë¤(CMT)ì ì ê³µíë¤. ê·¸ë íë¡ê·¸ë¨ ìì í¸ëìì
ê²½ê³ ì¤ì ì "
+"ë ì´ì íìíì§ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"However, it is often desirable to keep your persistence layer portable "
+"between non-managed resource-local environments, and systems that can rely "
+"on JTA but use BMT instead of CMT. In both cases use programmatic "
+"transaction demarcation. Hibernate offers a wrapper API called "
+"<literal>Transaction</literal> that translates into the native transaction "
+"system of your deployment environment. This API is actually optional, but we "
+"strongly encourage its use unless you are in a CMT session bean."
+msgstr ""
+"íì§ë§, CMT ëì BMT를 ì¬ì©íë JTAì ìì¡´í ì ìë ìì¤í
ë¤, ê·¸ë¦¬ê³ ê´ë¦¬ë"
+"ì§ ìë resource-local íê²½ë¤ ì¬ì´ìì ë¹ì ì ìì ê³ì¸µì ì´ìì±ì ì ì§ìí¤"
+"ë ê²ì´ ì주 í¬ë§ëë¤. ë ê²½ì°ë¤ìì ë¹ì ì íë¡ê·¸ë¨ ìì í¸ëìì
ê²½ê³ì¤ì "
+"ì ì¬ì©í ê²ì´ë¤. Hibernateë ë¹ì ì ë°°ì¹ íê²½ì ê³ ì í í¸ëìì
ìì¤í
ìì¼"
+"ë¡ ë³íëë <literal>Transaction</literal>ì´ë¼ ëª
ëª
ëë wrapper API 를 ì ê³µí"
+"ë¤. ì´ APIë ì¤ì ë¡ ìµì
ì´ì§ë§ ì°ë¦¬ë ë¹ì ì´ CMT session bean ìì ìì§ ìë "
+"í ê·¸ê²ì ì¬ì©ì ê°ë ¥íê² ê¶ì¥íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr ""
+"ëê° <literal>Session</literal> ì¢
ë£ë ë¤ ê°ì 구ë¶ëë ë¨ê³ë¤ì ìë°íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr "ì¸ì
ì flush ìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr "í¸ëìì
ì ì»¤ë° ìí¨ë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr "ì¸ì
ì ë«ëë¤"
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr "ìì¸ìí©ë¤ì ì²ë¦¬íë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We discussed Flushing the session earlier, so we will now have a closer look "
+"at transaction demarcation and exception handling in both managed and non-"
+"managed environments."
+msgstr ""
+"ì¸ì
ì flush ìí¤ë ê²ì ìì ë
¼ìëìê³ , ì°ë¦¬ë ì´ì ê´ë¦¬ëë í경과 ê´ë¦¬ë"
+"ì§ ìë íê²½ ìììì í¸ëìì
ê²½ê³ ì¤ì ê³¼ ìì¸ìí©ì ë ìì¸í ì´í´ë³¼ ê²ì´"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr "ê´ë¦¬ëì§ ìë íê²½"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If a Hibernate persistence layer runs in a non-managed environment, database "
+"connections are usually handled by simple (i.e., non-DataSource) connection "
+"pools from which Hibernate obtains connections as needed. The session/"
+"transaction handling idiom looks like this:"
+msgstr ""
+"ë§ì¼ Hibernate ìì ê³ì¸µì´ ê´ë¦¬ëì§ ìë(non-managed) íê²½ìì ì¤íë ê²½ì°, "
+"ë°ì´í°ë² ì´ì¤ 커ë¥ì
ë¤ì ëê° Hibernateê° íìë¡í ë 커ë¥ì
ë¤ì íëíë ê°ë¨"
+"í (ì를 ë¤ë©´ DataSourceê° ìë) 커ë¥ì
í(pool)ë¤ë¡ë¶í° ì²ë¦¬ëë¤. session/"
+"transaction ì²ë¦¬ ê´ì©êµ¬ë ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You do not have to <literal>flush()</literal> the <literal>Session</literal> "
+"explicitly: the call to <literal>commit()</literal> automatically triggers "
+"the synchronization depending on the <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> for the session. A call to <literal>close()</literal> "
+"marks the end of a session. The main implication of <literal>close()</"
+"literal> is that the JDBC connection will be relinquished by the session. "
+"This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+"ë¹ì ì <literal>Session</literal>ì ëª
ìì ì¼ë¡ <literal>flush()</literal> í"
+"ì§ ë§ìì¼ íë¤ - <literal>commit()</literal>ì ëí í¸ì¶ì (ê·¸ ì¸ì
ì ëí "
+"<xref linkend=\"objectstate-flushing\">FlushMode</xref>ì ë°ë¼)ìëì ì¼ë¡ ë"
+"기í를 í¸ë¦¬ê±°ìí¨ë¤. <literal>close()</literal>ì ëí í¸ì¶ì ì¸ì
ì ëì ë§"
+"í¬íë¤. <literal>close()</literal>ì 주ë 구íì JDBC 커ë¥ì
ì´ ê·¸ ì¸ì
ì ì"
+"í´ í¬ê¸°ë ê²ì´ë¼ë ì ì´ë¤. ì´ Java ì½ëë ê´ë¦¬ëì§ ìë í경과 JTA íê²½ ìì"
+"ìì ì´ìì±ì´ ìê³ ì¤íëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"As outlined earlier, a much more flexible solution is Hibernate's built-in "
+"\"current session\" context management:"
+msgstr ""
+"ë³´ë¤ ë ì ì°í í´ê²°ì±
ì ìì ì¤ëª
íë¯ì´ Hibernateì 미리 ë¹ëëì´ ìë \"í"
+"ì¬ ì¸ì
\" 컨í
ì¤í¸ ê´ë¦¬ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You will not see these code snippets in a regular application; fatal "
+"(system) exceptions should always be caught at the \"top\". In other words, "
+"the code that executes Hibernate calls in the persistence layer, and the "
+"code that handles <literal>RuntimeException</literal> (and usually can only "
+"clean up and exit), are in different layers. The current context management "
+"by Hibernate can significantly simplify this design by accessing a "
+"<literal>SessionFactory</literal>. Exception handling is discussed later in "
+"this chapter."
+msgstr ""
+"ë¹ì ì íµìì ì´í리ì¼ì´ì
ìì ë¹ì§ëì¤ ì½ë ìì ì´ ê´ì©êµ¬ë¥¼ ê²°ì½ ë³´ì§ ìì "
+"ê²ì´ë¤; ì¹ëª
ì ì¸(ìì¤í
) ìì¸ìí©ë¤ì íì \"ìë¨\"ìì ì¡íì¼ íë¤. ë¬ë¦¬ ë§"
+"í´, (ìì ê³ì¸µìì) Hibernate í¸ì¶ë¤ì ì¤íìí¤ë ì½ëì "
+"<literal>RuntimeException</literal>ì ì²ë¦¬í(ê³ ëê° ì¤ì§ ì ê±°íê³ ë¹ ì ¸ëê° "
+"ì ìë) ì½ëë ë¤ë¥¸ ê³ì¸µë¤ ìì ìë¤. Hibernateì ìí íì¬ ì»¨í
ì¤í¸ ê´ë¦¬ë "
+"ì´ ì¤ê³ë¥¼ í격íê² ë¨ìíìì¼ì, ë¹ì ì´ íìë¡ íë 모ë ê²ì "
+"<literal>SessionFactory</literal>ì ëí ì ê·¼ì´ë¤.ìì¸ìí© ì²ë¦¬ë ì´ ì¥ì ë·"
+"ë¶ë¶ìì ë
¼ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You should select <literal>org.hibernate.transaction.JDBCTransactionFactory</"
+"literal>, which is the default, and for the second example select <literal>"
+"\"thread\"</literal> as your <literal>hibernate."
+"current_session_context_class</literal>."
+msgstr ""
+"ë¹ì ì (ëí´í¸ì¸) <literal>org.hibernate.transaction.JDBCTransactionFactory</"
+"literal>를 ì íí´ì¼ íê³ , ëë²ì§¸ ìì ì ê²½ì° ë¹ì ì <literal>hibernate."
+"current_session_context_class</literal>를 ì íí´ì¼ í¨ì ë
¸í¸íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr "JTA ì¬ì©í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If your persistence layer runs in an application server (for example, behind "
+"EJB session beans), every datasource connection obtained by Hibernate will "
+"automatically be part of the global JTA transaction. You can also install a "
+"standalone JTA implementation and use it without EJB. Hibernate offers two "
+"strategies for JTA integration."
+msgstr ""
+"ë§ì¼ ë¹ì ì ìì ê³ì¸µì´ ì´í리ì¼ì´ì
ìë²ìì(ì를 ë¤ì´, EJB ì¸ì
ë¹ì¦ ì´ë©´ì"
+"ì) ì¤íë ê²½ì°, Hibernateì ìí´ íëë 모ë ë°ì´í°ìì¤ ì»¤ë¥ì
ì ìëì ì¼ë¡ "
+"ì ì JTA í¸ëìì
ì ë¶ë¶ì¼ ê²ì´ë¤. ë¹ì ì ëí ì¤í ëì¼ë¡ JTA 구íì ì¤ì¹í "
+"ì ìê³ EJB ìì´ ê·¸ê²ì ì¬ì©í ì ìë¤. Hibernateë JTA íµí©ì ìí ë ê°ì "
+"ë°©ëë¤ì ì ê³µíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you use bean-managed transactions (BMT), Hibernate will tell the "
+"application server to start and end a BMT transaction if you use the "
+"<literal>Transaction</literal> API. The transaction management code is "
+"identical to the non-managed environment."
+msgstr ""
+"ë§ì¼ ë¹ì ì´ bean-managed transactions(BMT)를 ì¬ì©í ê²½ì° Hibernateë ë¹ì ì´ "
+"<literal>Transaction</literal> API를 ì¬ì©í ê²½ì°ì BMT í¸ëìì
ì ììíê³ ì¢
"
+"ë£íëë¡ ì´í리ì¼ì´ì
ìë²ìê² ìë ¤ì¤ ê²ì´ë¤. ë°ë¼ì í¸ëìì
ê´ë¦¬ ì½ëë "
+"non-managed í경과 ëì¼íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you want to use a transaction-bound <literal>Session</literal>, that is, "
+"the <literal>getCurrentSession()</literal> functionality for easy context "
+"propagation, use the JTA <literal>UserTransaction</literal> API directly:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ í¸ëìì
ì ë¬¶ì¸ <literal>Session</literal>, ì¦ ì¬ì´ 컨í
ì¤í¸ ë³´ê¸"
+"ì ìí <literal>getCurrentSession()</literal> 기ë¥ì ì¬ì©íê³ ì ìí ê²½ì°, "
+"ë¹ì ì JTA <literal>UserTransaction</literal> API를 ì§ì ì¬ì©í´ì¼ í ê²ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"With CMT, transaction demarcation is completed in session bean deployment "
+"descriptors, not programmatically. The code is reduced to:"
+msgstr ""
+"CMTì ê²½ì°, í¸ëìì
ê´í [ê²½ê³ ì¤ì ]ì íë¡ê·¸ë¨ ìì´ ìë, session bean ë°°ì¹ "
+"ëì¤í¬ë¦½í°ë¤ ììì íí´ì§ë¤. ê·¸ë¬ë¯ë¡ ì½ëë ë¤ìì¼ë¡ ê°ìëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In a CMT/EJB, even rollback happens automatically. An unhandled "
+"<literal>RuntimeException</literal> thrown by a session bean method tells "
+"the container to set the global transaction to rollback. <emphasis>You do "
+"not need to use the Hibernate <literal>Transaction</literal> API at all with "
+"BMT or CMT, and you get automatic propagation of the \"current\" Session "
+"bound to the transaction.</emphasis>"
+msgstr ""
+"ìëíë©´ íëì ì¸ì
ë¹ ë©ìëì ìí´ ëì ¸ì§ ì²ë¦¬ëì§ ìì "
+"<literal>RuntimeException</literal>ì´ ê¸ë¡ë² í¸ëìì
ì rollbackì¼ë¡ ì¤ì íë"
+"ë¡ ì»¨í
ì´ëìê² ìë ¤ì£¼ê¸° ë문ì, CMT/EJBììì¡°ì°¨ 롤백ì ìëì ì¼ë¡ ë°ìëë¤. "
+"<emphasis>ì´ê²ì ë¹ì ì´ BMT ì´ë CMTì´ë 모ëìì Hibernate "
+"<literal>Transaction</literal> API를 ì¬ì©í íìê° ìì¼ë©°, ë¹ì ì ê·¸ í¸ëìì
"
+"ì ë¬¶ì¸ \"íì¬\" Sessionì ìëì ì¸ ë³´ê¸(propagation)ì ì»ê² ë¨ì ì미íë¤.</"
+"emphasis>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When configuring Hibernate's transaction factory, choose <literal>org."
+"hibernate.transaction.JTATransactionFactory</literal> if you use JTA "
+"directly (BMT), and <literal>org.hibernate.transaction."
+"CMTTransactionFactory</literal> in a CMT session bean. Remember to also set "
+"<literal>hibernate.transaction.manager_lookup_class</literal>. Ensure that "
+"your <literal>hibernate.current_session_context_class</literal> is either "
+"unset (backwards compatibility), or is set to <literal>\"jta\"</literal>."
+msgstr ""
+"ë¹ì ì´ Hibernateì í¸ëìì
í©í 리를 구ì±í ë, ë¹ì ì´ JTA를 ì§ì ì¬ì©í ê²½ì°"
+"(BMT) ë¹ì ì <literal>org.hibernate.transaction.JTATransactionFactory</"
+"literal>를 ì íí´ì¼íê³ , CMT session beanììë <literal>org.hibernate."
+"transaction.CMTTransactionFactory</literal>를 ì íí´ì¼ í¨ì ë
¸í¸íë¼. ëí "
+"<literal>org.hibernate.transaction.manager_lookup_class</literal>를 ì¤ì íë "
+"ê²ì ì¼ëì ëë¼. ê²ë¤ê° ë°ëì ë¹ì ì <literal>hibernate."
+"current_session_context_class</literal>ì´ ì¤ì ëì§ ìëë¡ íê±°ë(ìí¸íì±), "
+"ëë <literal>\"jta\"</literal>ë¡ ì¤ì ëëë¡ íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>getCurrentSession()</literal> operation has one downside in a "
+"JTA environment. There is one caveat to the use of <literal>after_statement</"
+"literal> connection release mode, which is then used by default. Due to a "
+"limitation of the JTA spec, it is not possible for Hibernate to "
+"automatically clean up any unclosed <literal>ScrollableResults</literal> or "
+"<literal>Iterator</literal> instances returned by <literal>scroll()</"
+"literal> or <literal>iterate()</literal>. You <emphasis>must</emphasis> "
+"release the underlying database cursor by calling <literal>ScrollableResults."
+"close()</literal> or <literal>Hibernate.close(Iterator)</literal> explicitly "
+"from a <literal>finally</literal> block. Most applications can easily avoid "
+"using <literal>scroll()</literal> or <literal>iterate()</literal> from the "
+"JTA or CMT code.)"
+msgstr ""
+"<literal>getCurrentSession()</literal> ì¤í¼ë ì´ì
ë¤ì JTA íê²½ìì í ê°ì§ ë¨"
+"ì ì ê°ê³ ìë¤. ëí´í¸ë¡ ì¬ì©ëë, <literal>after_statement</literal> 커ë¥ì
"
+"í´ì 모ë ì¬ì©ì ëí íëì ë³´ë¥ íµë³´ê° ì¡´ì¬íë¤. JTA ëª
ì¸ìì ì´ë¦¬ìì ì í"
+"ì¼ë¡ ì¸í´, Hibernateê° <literal>scroll()</literal> ëë <literal>iterate()</"
+"literal>ì ìí´ ë°íëë ììì ë«íì§ì§ ìì <literal>ScrollableResults</"
+"literal> ëë <literal>Iterator</literal> ì¸ì¤í´ì¤ë¤ì ìëì ì¼ë¡ ì ê±°íë ê²"
+"ì´ ë¶ê°ë¥íë¤. ë¹ì ì <literal>finally</literal> ë¸ë¡ ë´ìì ëª
ìì ì¼ë¡ "
+"<literal>ScrollableResults.close()</literal> ëë <literal>Hibernate.close"
+"(Iterator)</literal>를 í¸ì¶íì¬ ê¸°ë³¸ ë°ì´í°ë² ì´ì¤ 커ì를 í´ì <emphasis>ìì¼"
+"ì¼ íë¤</emphasis>.(ë¬¼ë¡ ëë¶ë¶ì ì´í리ì¼ì´ì
ë¤ì JTA ëë CMT ì½ëìì "
+"<literal>scroll()</literal>ì´ë <literal>iterate()</literal>를 ì¬ì©íë ê²ì "
+"ì½ê² í¼í ì ìë¤.)"
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr "ìì¸ìí© ì²ë¦¬"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the <literal>Session</literal> throws an exception, including any "
+"<literal>SQLException</literal>, immediately rollback the database "
+"transaction, call <literal>Session.close()</literal> and discard the "
+"<literal>Session</literal> instance. Certain methods of <literal>Session</"
+"literal> will <emphasis>not</emphasis> leave the session in a consistent "
+"state. No exception thrown by Hibernate can be treated as recoverable. "
+"Ensure that the <literal>Session</literal> will be closed by calling "
+"<literal>close()</literal> in a <literal>finally</literal> block."
+msgstr ""
+"ë§ì¼<literal>Session</literal>ì´ (ì´ë¤ <literal>SQLException</literal>ì í¬í¨"
+"íë) ìì¸ìí©ì ëì§ ê²½ì°, ë¹ì ì ë°ì´í°ë² ì´ì¤ í¸ëìì
ì ì¦ì 롤백ìí¤ê³ , "
+"<literal>Session.close()</literal>를 í¸ì¶íê³ <literal>Session</literal> ì¸ì¤"
+"í´ì¤ë¥¼ í기ìì¼ì¼íë¤. <literal>Session</literal>ì ì´ë¤ ë©ìëë¤ì ê·¸ ì¸ì
"
+"ì ì¼ê´ë ìíë¡ ë¨ê²¨ëì§ <emphasis>ìì</emphasis> ê²ì´ë¤. Hibernateì ìí´ "
+"ëì ¸ì§ ìì¸ìí©ì 복구ê°ë¥í ê²ì¼ë¡ ì·¨ê¸ë ì ìë¤. ê·¸ <literal>Session</"
+"literal>ì´ <literal>finally</literal> ë¸ë¡ ë´ìì <literal>close()</literal>"
+"를 í¸ì¶íì¬ ë«íì§ëë¡ íì¤í íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>HibernateException</literal>, which wraps most of the errors "
+"that can occur in a Hibernate persistence layer, is an unchecked exception. "
+"It was not in older versions of Hibernate. In our opinion, we should not "
+"force the application developer to catch an unrecoverable exception at a low "
+"layer. In most systems, unchecked and fatal exceptions are handled in one of "
+"the first frames of the method call stack (i.e., in higher layers) and "
+"either an error message is presented to the application user or some other "
+"appropriate action is taken. Note that Hibernate might also throw other "
+"unchecked exceptions that are not a <literal>HibernateException</literal>. "
+"These are not recoverable and appropriate action should be taken."
+msgstr ""
+"Hibernate ìì ê³ì¸µìì ë°ìí ì ìë ëë¶ë¶ì ì¤ë¥ë¤ì í¬ì¥íë, "
+"<literal>HibernateException</literal>ì ì²´í¬ëì§ ìì ìì¸ìí©ì´ë¤(ê·¸ê²ì "
+"Hibernateì ì´ì ë²ì ìë ììë¤). ì°ë¦¬ì ì견ì¼ë¡, ì°ë¦¬ë ë®ì ê³ì¸µìì 복구"
+"ë¶ê°ë¥í ìì¸ìí©ì ë¶ì¡ëë¡ ì´í리ì¼ì´ì
ê°ë°ììê² ê°ì íì§ ìì ê²ì´ë¤. ë"
+"ë¶ë¶ì ìì¤í
ë¤ìì, ì²´í¬ëì§ ìì ì¹ëª
ì ì¸ ìì¸ìí©ë¤ì (ì를 ë¤ì´, ë ëì "
+"ê³ì¸µìì) ë©ìë í¸ì¶ ì¤íì 첫 ë²ì§¸ íë ìë¤ ì¤ íë ììì ì²ë¦¬ëê³ , í ê°"
+"ì ì¤ë¥ ë©ìì§ê° ì´í리ì¼ì´ì
ì¬ì©ììê² íìëë¤(ëë ì´ë¤ ë¤ë¥¸ ì ì í ì¡ì
"
+"ì´ ì·¨í´ì§ë¤). Hibernateë ëí <literal>HibernateException</literal>ì´ ìë, "
+"ë¤ë¥¸ ì²´í¬ëì§ ìì ìì¸ìí©ë¤ì ëì§ ìë ììì ë
¸í¸íë¼. ë¤ì ì´ê²ë¤ì 복구"
+"ê°ë¥íì§ ìê³ ì ì í ì¡ì
ì´ ì·¨í´ì ¸ì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
+"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
+"will attempt to convert the exception into a more meaningful subclass of "
+"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
+"literal> is always available via <literal>JDBCException.getCause()</"
+"literal>. Hibernate converts the <literal>SQLException</literal> into an "
+"appropriate <literal>JDBCException</literal> subclass using the "
+"<literal>SQLExceptionConverter</literal> attached to the "
+"<literal>SessionFactory</literal>. By default, the "
+"<literal>SQLExceptionConverter</literal> is defined by the configured "
+"dialect. However, it is also possible to plug in a custom implementation. "
+"See the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
+"class for details. The standard <literal>JDBCException</literal> subtypes "
+"are:"
+msgstr ""
+"Hibernateë ë°ì´í°ë² ì´ì¤ì ìí¸ìì©íë ëìì ëì ¸ì§ <literal>SQLException</"
+"literal>ë¤ì íëì <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ì ì"
+"í´ ì ìëë¤; íì§ë§ ë§ì¶¤ 구í ìì íë¬ê·¸ì¸ ìí¤ë ê²ì´ ëí ê°ë¥íë¤(ìì¸í "
+"ê²ì <literal>SQLExceptionConverterFactory</literal> í´ëì¤ì ê´í javadocs"
+"를 ë³´ë¼). íì¤ <literal>JDBCException</literal> ìë¸íì
ì ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>JDBCConnectionException</literal>: indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+"<literal>JDBCConnectionException</literal> - 기본 JDBC íµì ì ëí ì¤ë¥ë¥¼ ë"
+"íë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+"<literal>SQLGrammarException</literal> - ì겨ë SQLì ëí ë¬¸ë² ëë 구문 문"
+"ì ì ì ëíë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ConstraintViolationException</literal>: indicates some form of "
+"integrity constraint violation."
+msgstr ""
+"<literal>ConstraintViolationException</literal> - ë¬´ê²°ì± ì ì½ ìë°ì ê´í ì´"
+"ë¤ íìì ëíë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockAcquisitionException</literal>: indicates an error acquiring a "
+"lock level necessary to perform the requested operation."
+msgstr ""
+"<literal>LockAcquisitionException</literal> - ìì²ë ì¤í¼ë ì´ì
ì ì¤ííëë° "
+"íìì ì¸ ì ê¸ ë 벨ì íëíë ì¤ë¥ë¥¼ ëíë¸ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>GenericJDBCException</literal>: a generic exception which did not "
+"fall into any of the other categories."
+msgstr ""
+"<literal>GenericJDBCException</literal> - ë¤ë¥¸ ì¹´í
ê³ ë¦¬ë¤ ì¤ ì´ë¤ ê²ì¼ë¡ ë¶ë¥"
+"ëì§ ììë ì¼ë°ì ì¸ ìì¸ìí©."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr "í¸ëìì
íììì"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"An important feature provided by a managed environment like EJB, that is "
+"never provided for non-managed code, is transaction timeout. Transaction "
+"timeouts ensure that no misbehaving transaction can indefinitely tie up "
+"resources while returning no response to the user. Outside a managed (JTA) "
+"environment, Hibernate cannot fully provide this functionality. However, "
+"Hibernate can at least control data access operations, ensuring that "
+"database level deadlocks and queries with huge result sets are limited by a "
+"defined timeout. In a managed environment, Hibernate can delegate "
+"transaction timeout to JTA. This functionality is abstracted by the "
+"Hibernate <literal>Transaction</literal> object."
+msgstr ""
+"ê´ë¦¬ëì§ ìë ì½ëì ëí´ìë ê²°ì½ ì ê³µëì§ ìë EJBì ê°ì´ ê´ë¦¬ëë íê²½ì "
+"ìí´ ì ê³µëë í ê°ì§ ê·¹í ì¤ìí í¹ì§ì í¸ëìì
íìììì´ë¤. í¸ëìì
íì"
+"ììì ì¬ì©ììê² ìëµì ë°ííì§ ìë ëìì 무ë¡í íëì ííë í¸ëìì
"
+"ì´ ììë¤ì 무íì 묶ì´ë ì ììì ë³´ì¦í´ì¤ë¤. ê´ë¦¬ëë (JTA) íê²½ ì¸ë¶ì"
+"ì, Hibernateë ì´ ê¸°ë¥ì ì¨ì íê² ì ê³µí ì ìë¤. íì§ë§ Hibernateë ë°ì´í°"
+"ë² ì´ì¤ ë 벨 ë°ëë½ë¤ê³¼ ê±°ëí ê²°ê³¼ ì
ë¤ì ê°ì§ ì§ìë¤ì´ ì ìë íìììì ì"
+"í´ ì ì½ëë ê²ì ë³´ì¥í¨ì¼ë¡ì¨ ìµìí ë°ì´í° ì ê·¼ ì¤í¼ë ì´ì
ë¤ì ì ì´í ì ì"
+"ë¤. ê´ë¦¬ëë íê²½ìì, Hibernateë í¸ëìì
íìììì JTAìê² ìììí¬ ì ì"
+"ë¤. ì´ ê¸°ë¥ì Hibernate <literal>Transaction</literal> ê°ì²´ì ìí´ ì¶ìí ë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
+"transaction timeouts must be defined declaratively."
+msgstr ""
+"<literal>setTimeout()</literal>ì CMT bean ë´ìì í¸ì¶ë리 ì ììì ë
¸í¸í"
+"ë¼. ì¬ê¸°ì í¸ëìì
íìììë¤ì ì ì¸ì ì¼ë¡ ì ìëì´ì¼ íë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr "Optimistic ëìì± ì ì´"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The only approach that is consistent with high concurrency and high "
+"scalability, is optimistic concurrency control with versioning. Version "
+"checking uses version numbers, or timestamps, to detect conflicting updates "
+"and to prevent lost updates. Hibernate provides three possible approaches to "
+"writing application code that uses optimistic concurrency. The use cases we "
+"discuss are in the context of long conversations, but version checking also "
+"has the benefit of preventing lost updates in single database transactions."
+msgstr ""
+"ê³ ëì ëìì±ê³¼ ê³ ëì ê°ì©ì±ì ì¼ì¹ìí¤ë ì ì¼í ì ê·¼ë²ì ë²ì í를 ê°ì§ "
+"optimisticëìì± ì ì´ì´ë¤. ë²ì ì²´í¹ì ì
ë°ì´í¸ 충ëì ê²ì¶í기 ìí´(ê·¸ë¦¬ê³ "
+"ì
ë°ì´í¸ ìì¤ì ë°©ì§í기 ìí´) ë²ì ë²í¸ë¤ ëë timestampë¤ì ì¬ì©íë¤. "
+"Hibernateë optimistic ëìì±ì ì¬ì©íë ì´í리ì¼ì´ì
ì½ë ìì±ì ì¸ ê°ì§ ê°"
+"ë¥í ì ê·¼ë²ë¤ì ì ê³µíë¤. ì°ë¦¬ê° ë³´ì¬ì£¼ë ì°ììë¤ì ì¥ìê°ì ëíì ìí© ì"
+"ì ìì§ë§, ë²ì ì²´í¹ ëí ë¨ì¼ ë°ì´í°ë² ì´ì¤ í¸ëìì
ë¤ìì ì
ë°ì´í¸ ìì¤ì ë°©"
+"ì§íë ì´ì ì ê°ê³ ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr "ì´í리ì¼ì´ì
ë²ì ì²´í¹"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In an implementation without much help from Hibernate, each interaction with "
+"the database occurs in a new <literal>Session</literal> and the developer is "
+"responsible for reloading all persistent instances from the database before "
+"manipulating them. The application is forced to carry out its own version "
+"checking to ensure conversation transaction isolation. This approach is the "
+"least efficient in terms of database access. It is the approach most similar "
+"to entity EJBs."
+msgstr ""
+"íëì 구íìì Hibernateë¡ë¶í° ë§ì ëìì´ ìì´, ë°ì´í°ë² ì´ì¤ì ëí ê°ê°ì "
+"ìí¸ìì©ì ìë¡ì´ <literal>Session</literal> ë´ìì ì¼ì´ëê³ , ê°ë°ìë ìì "
+"ì¸ì¤í´ì¤ë¤ì ì²ë¦¬í기 ì ì ë°ì´í°ë² ì´ì¤ë¡ë¶í° 모ë ìì ì¸ì¤í´ì¤ë¤ì ë¤ì ë¡"
+"ëìí¬ ì±
ìì´ ìë¤. ì´ ì ê·¼ë²ì ëí í¸ëìì
ì íì¤í 격리ìí¤ê¸° ìí´ ê·¸ê² "
+"ìì ì ë²ì ì²´í¹ì ìííëë¡ ì´í리ì¼ì´ì
ìê² ê°ì ìí¨ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal><"
+"version></literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"version íë¡í¼í°ë <literal><version></literal>ì ì¬ì©íì¬ ë§¤íëê³ , "
+"Hibernateë ë§ì¼ ìí°í°ê° dirtyì¼ ê²½ì° flush ëìì ê·¸ê²ì ìëì ì¼ë¡ ì¦ê°ì"
+"í¬ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you are operating in a low-data-concurrency environment, and do not "
+"require version checking, you can use this approach and skip the version "
+"check. In this case, <emphasis>last commit wins</emphasis> is the default "
+"strategy for long conversations. Be aware that this might confuse the users "
+"of the application, as they might experience lost updates without error "
+"messages or a chance to merge conflicting changes."
+msgstr ""
+"ë¬¼ë¡ , ë¹ì ì´ ë®ì ë°ì´í° ëìì± íê²½ìì ìì
íê³ ìê³ ë²ì ì²´í¹ì íìë¡ í"
+"ì§ ìì ê²½ì°ì, ë¹ì ì ì´ ì ê·¼ë²ì ì¬ì©í ì ë ìê³ ë¨ì§ ë²ì ì²´í¬ë¥¼ ìëµí "
+"ìë ìë¤. ê·¸ ê²½ì°ì, <emphasis>ë§ì§ë§ì ì»¤ë° ì±ê³µ</emphasis>ì ë¹ì ì ì¥ìê°"
+"ì ëíì ëí ëí´í¸ ë°©ëê° ë ê²ì´ë¤. ì´ê²ì´ ì´í리ì¼ì´ì
ì ì¬ì©ìë¤ì í¼ë"
+"ìí¬ ì ììì ì¼ëì ëë¼. ìëíë©´ ì¬ì©ìë¤ì ì¤ë¥ ë©ìì§ë¤ ëë 충ë ë³ê²½"
+"ë¤ì ë³í©ìí¬ ê¸°í ìì´ ì
ë°ì´í¸ë¤ ìì¤ì 겪ì ìë ì기 ë문ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Manual version checking is only feasible in trivial circumstances and not "
+"practical for most applications. Often not only single instances, but "
+"complete graphs of modified objects, have to be checked. Hibernate offers "
+"automatic version checking with either an extended <literal>Session</"
+"literal> or detached instances as the design paradigm."
+msgstr ""
+"ëª
ë£íê² ììì
ë²ì ì²´í¹ì ë§¤ì° ì¬ìí íê²½ë¤ììë ê³µí¬ì ì´ê³ ëë¶ë¶ì ì´í"
+"리ì¼ì´ì
ë¤ì ëí´ ì¤ì ì ì´ì§ ìë¤. íí ë¨ì¼ ì¸ì¤í´ì¤ ë¿ë§ ìëë¼ ë³ê²½ë ê°ì²´"
+"ë¤ì ì ì²´ ê·¸ëíë¤ì´ ì²´í¬ëì´ì¼ íë¤. Hibernateë ì¤ê³ í¨ë¬ë¤ìì¼ë¡ì íëì "
+"íì¥ë <literal>Session</literal> ëë detached ì¸ì¤í´ì¤ë¤ì ëí´ ìëì ì¸ ë²"
+"ì ì²´í¹ì ì ê³µíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr "íì¥ë ì¸ì
ê³¼ ìëì ì¸ ë²ì í"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A single <literal>Session</literal> instance and its persistent instances "
+"that are used for the whole conversation are known as <emphasis>session-per-"
+"conversation</emphasis>. Hibernate checks instance versions at flush time, "
+"throwing an exception if concurrent modification is detected. It is up to "
+"the developer to catch and handle this exception. Common options are the "
+"opportunity for the user to merge changes or to restart the business "
+"conversation with non-stale data."
+msgstr ""
+"íëì <literal>Session</literal> ì¸ì¤í´ì¤ì ê·¸ê²ì ìì ì¸ì¤í´ì¤ë¤ì ì ì²´ ì´"
+"í리ì¼ì´ì
í¸ëìì
ì ì¬ì©ëë¤. Hibernateë flush í ë ì¸ì¤í´ì¤ ë²ì ë¤ì ì²´"
+"í¬íê³ ë§ì¼ ëìì± ë³ê²½ì´ ê²ì¶ë ê²½ì°ì ìì¸ìí©ì ëì§ë¤. ì´ ìì¸ìí©ì ì¡ì"
+"ë´ê³ ì²ë¦¬íë ê²ì ê°ë°ìì 몫ì´ë¤(ê³µíµë ìµì
ë¤ì ë³ê²½ë¤ì ë³í©ìí¤ê±°ë ë"
+"ë ì¸ëª¨ê° ìì§ ìì ë°ì´í°ë¡ ë¹ì§ëì¤ íë¡ì¸ì¤ë¥¼ ë¤ì ììíë 기í를 ì¬ì©ì"
+"ìê² ì£¼ë ê²ì´ë¤). íëì <literal>Session</literal> ì¸ì¤í´ì¤ì ê·¸ê²ì ìì "
+"ì¸ì¤í´ì¤ë¤ì <emphasis>session-per-conversation</emphasis>ë¡ ìë ¤ì§ ì ì²´ ëí"
+"ì ì¬ì©ëë¤. Hibernateë flush ìì ìì ì¸ì¤í´ì¤ ë²ì ë¤ì ì²´í¬íë©°, ë§ì¼ ëì"
+"ì ì¸ ë³ê²½ì´ ê²ì¶ë ê²½ì°ì íëì ìì¸ìí©ì ëì§ë¤. ì´ ìì¸ìí©ì í¬ì°©íê³ ì²"
+"리íë ê²ì ê°ë°ìì 몫ì´ë¤(ê³µíµë ìµì
ë¤ì ì¬ì©ìê° ë³ê²½ë¤ì ë³í©íê±°ë ìì¤"
+"ëì§ ìì ë°ì´í°ë¥¼ ê°ì§ê³ ë¹ì§ëì¤ ëí를 ì¬ììíë 기íì´ë¤)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>Session</literal> is disconnected from any underlying JDBC "
+"connection when waiting for user interaction. This approach is the most "
+"efficient in terms of database access. The application does not version "
+"check or reattach detached instances, nor does it have to reload instances "
+"in every database transaction."
+msgstr ""
+"<literal>Session</literal>ì ì¬ì©ì ìí¸ìì©ì 기ë¤ë¦´ ë ì´ë¤ 기본 JDBC 커ë¥"
+"ì
ì¼ë¡ë¶í° ì°ê²°í´ì ëë¤. ì´ ì ê·¼ë²ì ë°ì´í°ë² ì´ì¤ ì ê·¼ì ê´ì ìì ë³´ë©´ ê°ì¥ "
+"í¨ì¨ì ì´ë¤. ì´í리ì¼ì´ì
ì ë²ì ì²´í¹ ëë detached ì¸ì¤í´ì¤ë¤ì ì¬ì²¨ë¶íë ê²"
+"ì ê·¸ ìì²´ ê´ê³í íìê° ìê±°ë ê·¸ê²ì 모ë ë°ì´í°ë² ì´ì¤ í¸ëìì
ìì ì¸ì¤í´"
+"ì¤ë¤ì ë¤ì ë¡ëìí¬ íìê° ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>foo</literal> object knows which <literal>Session</literal> it "
+"was loaded in. Beginning a new database transaction on an old session "
+"obtains a new connection and resumes the session. Committing a database "
+"transaction disconnects a session from the JDBC connection and returns the "
+"connection to the pool. After reconnection, to force a version check on data "
+"you are not updating, you can call <literal>Session.lock()</literal> with "
+"<literal>LockMode.READ</literal> on any objects that might have been updated "
+"by another transaction. You do not need to lock any data that you "
+"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
+"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
+"last database transaction cycle is allowed to actually persist all "
+"modifications made in this conversation. Only this last database transaction "
+"will include the <literal>flush()</literal> operation, and then "
+"<literal>close()</literal> the session to end the conversation."
+msgstr ""
+"<literal>foo</literal> ê°ì²´ë ê·¸ê²ì´ ë¡ëëìë <literal>Session</literal>ì´ "
+"ì´ë ê²ì¸ì§ë¥¼ ì¬ì í ìê³ ìë¤. ì´ì ì¸ì
ììì íëì ìë¡ì´ ë°ì´í°ë² ì´ì¤ "
+"í¸ëìì
ì ììíë ê²ì íëì ìë¡ì´ 커ë¥ì
ì íëíê³ ê·¸ ì¸ì
ì ìë¹íë¤. "
+"ë°ì´í°ë² ì´ì¤ í¸ëìì
ì 커ë°(íì½)ìí¤ë ê²ì ê·¸ JDBC 커ë¥ì
ì¼ë¡ë¶í° íëì "
+"ì¸ì
ì ì°ê²°í´ì ìí¤ê³ ê·¸ 커ë¥ì
ì í(pool)ë¡ ë°íìí¬ ê²ì´ë¤. ì¬ì°ê²° íì, ë¹"
+"ì ì´ ì
ë°ì´í¸íê³ ìì§ ìì ë°ì´í°ì ëí ë²ì ì²´í¬ë¥¼ ê°ì ìí¤ê¸° ìí´ì, ë¹ì "
+"ì ë ë¤ë¥¸ í¸ëìì
ì ìí´ ì
ë°ì´í¸ëìì ìë ìë ììì ê°ì²´ë¤ì ëí´ "
+"<literal>LockMode.READ</literal>ë¡ì <literal>Session.lock()</literal>ì í¸ì¶"
+"í ìë ìë¤. ë¹ì ì ë¹ì ì´ ì
ë°ì´í¸ ì¤ì¸ ììì ë°ì´í°ë¥¼ ì ê¸í íìê° ì"
+"ë¤. ëê° ë¹ì ì ë§ì§ë§ ë°ì´í°ë² ì´ì¤ í¸ëìì
주기ë§ì´ ì´ ëí ë´ìì íí´ì§ "
+"모ë ë³ê²½ë¤ì ì¤ì ë¡ ììíìí¤ë ê²ì´ íì©ëëë¡ í기 ìí´, íëì íì¥ë "
+"<literal>Session</literal>ì ëí´ <literal>FlushMode.MANUAL</literal>를 ì¤ì "
+"í ê²ì´ë¤. ê·¸ë¬ë¯ë¡ ì¤ì§ ì´ ë§ì§ë§ ë°ì´í°ë² ì´ì¤ í¸ëìì
ë§ì´ <literal>flush"
+"()</literal> ì¤í¼ë ì´ì
ì í¬í¨í ê²ì´ê³ , ëí ëí를 ì¢
ë£ìí¤ê¸° ìí´ ì¸ì
ì "
+"<literal>close()</literal>í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This pattern is problematic if the <literal>Session</literal> is too big to "
+"be stored during user think time (for example, an <literal>HttpSession</"
+"literal> should be kept as small as possible). As the <literal>Session</"
+"literal> is also the first-level cache and contains all loaded objects, we "
+"can probably use this strategy only for a few request/response cycles. Use a "
+"<literal>Session</literal> only for a single conversation as it will soon "
+"have stale data."
+msgstr ""
+"ë§ì¼ ì¬ì©ìê° ìê°íëìê° ëì <literal>Session</literal>ì´ ì ì¥ë기ì ë무 "
+"í° ê²½ì° ì´ í¨í´ì 문ì ì±ì´ ìë¤. ì를 ë¤ì´ <literal>HttpSession</literal>ì "
+"ê°ë¥í ìì ê²ì¼ë¡ ì ì§ëì´ì¼ íë¤. ëí <literal>Session</literal>ì (íì"
+"ì) 첫 ë²ì§¸ ë 벨 ìºìì´ê³ 모ë ë¡ëë ê°ì²´ë¤ì í¬í¨í기 ë문ì, ì°ë¦¬ë ìë§ "
+"ì ì ìì²/ìëµ ì£¼ê¸°ë¤ì ëí´ìë§ ì´ ë°©ë를 ì¬ì©í ì ìë¤. ë¹ì ì íëì ëí"
+"ì ëí´ìë§ íëì <literal>Session</literal>ì ì¬ì©í´ì¼ íë¤. ìëíë©´ ê·¸ê²"
+"ì ëí 곧 ì¤ìë ë°ì´í°ê° ë ê²ì´ê¸° ë문ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Earlier versions of Hibernate required explicit disconnection and "
+"reconnection of a <literal>Session</literal>. These methods are deprecated, "
+"as beginning and ending a transaction has the same effect."
+msgstr ""
+"(ì´ê¸°ì Hibernate ë²ì ë¤ì <literal>Session</literal>ì ëí ëª
ìì ì¸ ì°ê²°í´"
+"ì ì ì¬ì°ê²°ì íìë¡ íìì ë
¸í¸íë¼. í¸ëìì
ì ììíê³ ëë´ë ê²ì´ ëì¼í "
+"í¨ê³¼ë¥¼ ê°ì§ë¯ë¡, ì´ë¤ ë°©ë²ë¤ì ì§ë¶íê² ëìë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Keep the disconnected <literal>Session</literal> close to the persistence "
+"layer. Use an EJB stateful session bean to hold the <literal>Session</"
+"literal> in a three-tier environment. Do not transfer it to the web layer, "
+"or even serialize it to a separate tier, to store it in the "
+"<literal>HttpSession</literal>."
+msgstr ""
+"ëí ë¹ì ì ìì ê³ì¸µì ëí´ ì°ê²°í´ì ë <literal>Session</literal>ì ë«íì§ì±"
+"ë¡ ì ì§í´ì¼í¨ì ë
¸í¸íë¼. ë¬ ë¦¬ë§í´, íëì 3-tier íê²½ìì "
+"<literal>Session</literal>ì ìì íëë° EJB stateful session beanì ì¬ì©í"
+"ê³ , <literal>HttpSession</literal> ë´ì ê·¸ê²ì ì ì¥í기 ìí´ ê·¸ê²ì ì¹ ê³ì¸µ"
+"ì ì ì¡íì§ ë§ë¼ (ëë ê·¸ê²ì ë³ëì í°ì´ì ì§ë ¬í ìí¤ì§ë ë§ë¼)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The extended session pattern, or <emphasis>session-per-conversation</"
+"emphasis>, is more difficult to implement with automatic current session "
+"context management. You need to supply your own implementation of the "
+"<literal>CurrentSessionContext</literal> for this. See the Hibernate Wiki "
+"for examples."
+msgstr ""
+"íì¥ë ì¸ì
í¨í´, ëë <emphasis>session-per-conversation</emphasis>ì ìëì "
+"ì¸ íì¬ ì¸ì
컨í
ì¤í¸ ê´ë¦¬ì ëí´ êµ¬ííê¸°ê° ë ì´ë µë¤. ë¹ì ì ì´ë¥¼ ìí´ ë¹"
+"ì ìì ì <literal>CurrentSessionContext</literal> 구íì ê³µê¸í íìê° ìì¼"
+"ë©°, ìì ë¤ì Hibernate Wiki를 ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr "Detached ê°ì²´ë¤ê³¼ ìëì ì¸ ë²ì í"
+
+#. 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>ìì ì¼"
+"ì´ëë¤. íì§ë§ ëì¼í ìì ì¸ì¤í´ì¤ë¤ì ë°ì´í°ë² ì´ì¤ìì ê°ê°ì ìí¸ìì©ì ì¬"
+"ì¬ì©ëë¤. ì´í리ì¼ì´ì
ì ìë ë¡ëëìë detached ì¸ì¤í´ì¤ë¤ì ìí를 ë ë¤"
+"른 <literal>Session</literal> ë´ìì ì²ë¦¬íê³ ëì <literal>Session.update()"
+"</literal>, <literal>Session.saveOrUpdate()</literal>, <literal>Session.merge"
+"()</literal>를 ì¬ì©íì¬ ê·¸ê²ë¤ì ë¤ì 첨ë¶ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Again, Hibernate will check instance versions during flush, throwing an "
+"exception if conflicting updates occurred."
+msgstr ""
+"ë¤ì, Hibernateë flush ëìì ì¸ì¤í´ì¤ ë²ì ë¤ì ì²´í¬í ê²ì´ê³ ì
ë°ì´í¸ 충ë"
+"ì´ ë°ìí ê²½ì°ì ìì¸ìí©ì ëì§ ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also call <literal>lock()</literal> instead of <literal>update()</"
+"literal>, and use <literal>LockMode.READ</literal> (performing a version "
+"check and bypassing all caches) if you are sure that the object has not been "
+"modified."
+msgstr ""
+"ë¹ì ì ëí <literal>update()</literal>ëì ì <literal>lock()</literal>ì í¸"
+"ì¶í ìë ìê³ ë§ì¼ ê·¸ ê°ì²´ê° ë³ê²½ëì§ ìììì ë¹ì ì´ íì íë ê²½ì°ì (ë²ì "
+"ì²´í¹ì ìííê³ ëª¨ë ìºìë¤ì 무ìíë) <literal>LockMode.READ</literal>를 ì¬"
+"ì©í ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr "ìëì ì¸ ë²ì í를 ë§ì¶¤í ìí¤ê¸°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can disable Hibernate's automatic version increment for particular "
+"properties and collections by setting the <literal>optimistic-lock</literal> "
+"mapping attribute to <literal>false</literal>. Hibernate will then no longer "
+"increment versions if the property is dirty."
+msgstr ""
+"ë¹ì ì <literal>optimistic-lock</literal> 매í ìì±ì <literal>false</"
+"literal>ë¡ ì¤ì í¨ì¼ë¡ì¨ í¹ì íë¡í¼í°ë¤ê³¼ ì½ë ì
ë¤ì ëí Hibernateì ìëì "
+"ì¸ ë²ì ì¦ê°ë¥¼ ë¶ê°ë¥íëë¡ í ìë ìë¤. ê·¸ë Hibernateë ê·¸ íë¡í¼í°ê° "
+"dirty ì¼ ê²½ì°ì ë ì´ì ë²ì ì ì¦ê°ìí¤ì§ ìì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Legacy database schemas are often static and cannot be modified. Or, other "
+"applications might access the same database and will not know how to handle "
+"version numbers or even timestamps. In both cases, versioning cannot rely on "
+"a particular column in a table. To force a version check with a comparison "
+"of the state of all fields in a row but without a version or timestamp "
+"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal><class></literal> mapping. This conceptually only works if "
+"Hibernate can compare the old and the new state (i.e., if you use a single "
+"long <literal>Session</literal> and not session-per-request-with-detached-"
+"objects)."
+msgstr ""
+"리거ì ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ë¤ì ì주 staticì´ê³ ë³ê²½ë ì ìë¤. ëë ë¤ë¥¸ ì´í"
+"리ì¼ì´ì
ë¤ì ëí ëì¼í ë°ì´í°ë² ì´ì¤ì ì ê·¼íê³ ë²ì ë²í¸ë¤ ëë ì¬ì§ì´ "
+"timestampë¤ì ì²ë¦¬íë ë°©ë²ì 모를 ìë ìë¤. ë ê²½ì°ë¤ìì, ë²ì íë í
ì´ë¸ "
+"ë´ì í¹ì 컬ë¼ì ìì§í ì ìë¤. version ëë timestamp íë¡í¼í° 매í ìì´ "
+"í ë´ì 모ë íëë¤ì ëí ìí를 ë¹êµíì¬ ë²ì ì²´í¬ë¥¼ ê°ì ìí¤ê¸° ìí´ì, "
+"<literal><class></literal> 매í ìì <literal>optimistic-lock=\"all\"</"
+"literal>ì íìíë¼. ë§ì¼ Hibernateê° ì´ì ìíì ìë¡ì´ ìí를 ë¹êµí ì ì"
+"ì ê²½ì°ì, ì를 ë¤ë©´ ë¹ì ì´ íëì 긴 <literal>Session</literal>ì ì¬ì©íê³ "
+"session-per-request-with-detached-objectsì ì¬ì©íì§ ìì ê²½ì° ì´ê²ì ê°ë
ì "
+"ì¼ë¡ë§ ëìí¨ì ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Concurrent modification can be permitted in instances where the changes that "
+"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
+"\"</literal> when mapping the <literal><class></literal>, Hibernate "
+"will only compare dirty fields during flush."
+msgstr ""
+"ëëë¡ íí´ì¡ë ë³ê²½ë¤ì´ ì¤ì²©ëì§ ìë í ëìì ì¸ ë³ê²½ì´ íì©ë ì ìë¤. ë§"
+"ì¼ <literal><class></literal>를 매íí ë ë¹ì ì´ <literal>optimistic-"
+"lock=\"dirty\"</literal>를 ì¤ì íë©´, Hibernateë flush ëìì dirty íëë¤ì "
+"ë¹êµë§ í ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with a full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate may execute unnecessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal><class></literal> mapping, forcing Hibernate "
+"to <literal>SELECT</literal> the instance to ensure that changes did occur "
+"before updating the row."
+msgstr ""
+"ë ê²½ì°ë¤ìì, ì ì© version/timestamp 컬ë¼ì ê²½ì° ëë full/dirty íë ë¹êµ"
+"ì ê²½ì°, Hibernateë ë²ì ì²´í¬ë¥¼ ì¤ííê³ ì 보를 ì
ë°ì´í¸íëë° ìí°í° ë¹ (ì "
+"ì í <literal>WHERE</literal> ì ì ê°ì§) í ê°ì<literal>UPDATE</literal> 문"
+"ì¥ì ì¬ì©íë¤. ë§ì¼ ë¹ì ì´ ì°ê´ë ìí°í°ë¤ì ëí ì¬ì²¨ë¶ë¥¼ ì¼ì¤ì¼ì´ë íëë° "
+"transitive ììì ì¬ì©í ê²½ì°, Hibernateë ë¶íìíê² ì
ë°ì´í¸ë¤ì ì¤íí ì"
+"ë ìë¤. ì´ê²ì ëê° ë¬¸ì ê° ìëì§ë§, ì¬ì§ì´ ë³ê²½ë¤ì´ detached ì¸ì¤í´ì¤ë¤ì "
+"ëí´ íí´ì§ì§ ììì ëìë ë°ì´í°ë² ì´ì¤ ë´ìì <emphasis>on update</"
+"emphasis> í¸ë¦¬ê±°ë¤ì´ ì¤íë ìë ìë¤. ê·¸ íì ì
ë°ì´í¸í기 ì ì ë³ê²½ë¤ì´ ì¤"
+"ì ë¡ ì¼ì´ë¬ìì íì¸í기 ìí´ ì¸ì¤í´ì¤ë¥¼ <literal>SELECT</literal>íë ê²ì "
+"Hibernateìê² ê°ì ìí¤ë, <literal><class></literal> 매í ìì "
+"<literal>select-before-update=\"true\"</literal>를 ì¤ì í¨ì¼ë¡ì¨ ë¹ì ì ì´ í¹"
+"ì§ì ë§ì¶¤í ìí¬ ì ìë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Pessimistic locking"
+msgstr "Pessimistic ì ê¸"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is not intended that users spend much time worrying about locking "
+"strategies. It is usually enough to specify an isolation level for the JDBC "
+"connections and then simply let the database do all the work. However, "
+"advanced users may wish to obtain exclusive pessimistic locks or re-obtain "
+"locks at the start of a new transaction."
+msgstr ""
+"ì¬ì©ìë¤ì ì ê¸ ë°©ëì ëí´ ê±±ì íëë° ë§ì ìê°ì í ì ííë ¤ê³ ìê°íì§ ìë"
+"ë¤. ëê° JDBC 커ë¥ì
ë¤ì ëí 격리 ë 벨ì ì§ì íë ê²ì¼ë¡ 충ë¶íê³ ê·¸ë° ë¤ì "
+"ë¨ìí ë°ì´í°ë² ì´ì¤ë¡ íì¬ê¸ 모ë ìì
ì ííëë¡ íë¤. íì§ë§ ì§ì¼ë³´í ì¬ì©"
+"ìë¤ì ëëë¡ ë°°íì ì¸ pessimistic ì ê¸ë¤ì ì»ê±°ë ëë ìë¡ì´ í¸ëìì
ì ì"
+"ì ìì ì ê¸ë¤ì ë¤ì ì»ê³ ì ìí ìë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate will always use the locking mechanism of the database; it never "
+"lock objects in memory."
+msgstr ""
+"Hibernateë ê²°ì½ ë©ëª¨ë¦¬ ë´ì ìë ê°ì²´ë¤ì´ ìë, ë°ì´í°ë² ì´ì¤ì ì ê¸ ë©ì»¤ëì¦"
+"ì íì ì¬ì©í ê²ì´ë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>LockMode</literal> class defines the different lock levels that "
+"can be acquired by Hibernate. A lock is obtained by the following mechanisms:"
+msgstr ""
+"<literal>LockMode</literal> í´ëì¤ë Hibernateì ìí´ íëë ì ìë ë¤ë¥¸ ì "
+"ê¸ ë 벨ë¤ì ì ìíë¤. ì ê¸ì ë¤ì ë©ì»¤ëì¦ë¤ì ìí´ ì»ì´ì§ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"<literal>LockMode.WRITE</literal>ë Hibernateê° í íì ì
ë°ì´í¸ íê±°ë "
+"insert í ë ìëì ì¼ë¡ íëëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockMode.UPGRADE</literal> can be acquired upon explicit user "
+"request using <literal>SELECT ... FOR UPDATE</literal> on databases which "
+"support that syntax."
+msgstr ""
+"<literal>LockMode.UPGRADE</literal>ë <literal>SELECT ... FOR UPDATE</"
+"literal> 구문ì ì§ìíë ë°ì´í°ë² ì´ì¤ ììì <literal>SELECT ... FOR UPDATE</"
+"literal>를 ì¬ì©íì¬ ëª
ìì ì¸ ì¬ì©ì ìì² ììì ì»ì´ì§ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> can be acquired upon explicit "
+"user request using a <literal>SELECT ... FOR UPDATE NOWAIT</literal> under "
+"Oracle."
+msgstr ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal>ë ì¤ë¼í´ìì <literal>SELECT ... "
+"FOR UPDATE NOWAIT</literal>를 ì¬ì©íì¬ ëª
ìì ì¸ ì¬ì©ì ìì² ììì ì»ì´ì§ ì"
+"ë ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>LockMode.READ</literal> is acquired automatically when Hibernate "
+"reads data under Repeatable Read or Serializable isolation level. It can be "
+"re-acquired by explicit user request."
+msgstr ""
+"<literal>LockMode.READ</literal>ë Hibernateê° ë°ë³µ ê°ë¥í ì½ê¸°(Repeatable "
+"Read) ëë Serialization 격리 ë 벨ìì ë°ì´í°ë¥¼ ì½ì´ë¤ì¼ ë ìëì ì¼ë¡ ì»ì´"
+"ì§ ìë ìë¤. ëª
ìì ì¸ ì¬ì©ì ìì²ì ìí´ ë¤ì ì»ì´ì§ ìë ìë¤."
+
+#. 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>ì ëìì ì´ ì ê¸ ëª¨ëë¡ ì íëë¤. "
+"<literal>update()</literal> ëë <literal>saveOrUpdate()</literal>ì ëí í¸"
+"ì¶ì íµí´ ì¸ì
ê³¼ ì°ê´ë ê°ì²´ë¤ì´ ëí ì´ ì ê¸ ëª¨ëë¡ ììëë¤."
+
+#. Tag: para
+#, no-c-format
+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>LockMode</literal>를 ì§ì í <literal>Session.load()</literal>ì ë"
+"í í¸ì¶."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr "<literal>Session.lock()</literal>ì ëí í¸ì¶."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr "<literal>Query.setLockMode()</literal>ì ëí í¸ì¶."
+
+#. 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>Session.load()</literal>ê° <literal>UPGRADE</literal> ëë "
+"<literal>UPGRADE_NOWAIT</literal> 모ëë¡ í¸ì¶ëê³ ,ìì²ë ê°ì²´ê° ìì§ ì´ ì¸ì
"
+"ì ìí´ ë¡ëëì§ ììë¤ë©´, ê·¸ ê°ì²´ë <literal>SELECT ... FOR UPDATE</literal>"
+"를 ì¬ì©íì¬ ë¡ëëë¤. ë§ì¼ ìì²ë ê²ì´ ìë ë¤ì ì íì ì¸ ì ê¸ì¼ë¡ ì´ë¯¸ ë¡ë"
+"ëì´ ìë ê°ì²´ì ëí´ <literal>load()</literal>ê° í¸ì¶ë ê²½ì°, Hibernateë "
+"ê·¸ ê°ì²´ì ëí´ <literal>lock()</literal>ì í¸ì¶íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>Session.lock()</literal> performs a version number check if the "
+"specified lock mode is <literal>READ</literal>, <literal>UPGRADE</literal> "
+"or <literal>UPGRADE_NOWAIT</literal>. In the case of <literal>UPGRADE</"
+"literal> or <literal>UPGRADE_NOWAIT</literal>, <literal>SELECT ... FOR "
+"UPDATE</literal> is used."
+msgstr ""
+"ë§ì¼ ì§ì ë ì ê¸ ëª¨ëê° <literal>READ</literal>, <literal>UPGRADE</literal> "
+"ëë <literal>UPGRADE_NOWAIT</literal> ì¼ ê²½ì°ì <literal>Session.lock()</"
+"literal>ì ë²ì ë²í¸ ì²´í¬ë¥¼ ìííë¤. (<literal>UPGRADE</literal> ëë "
+"<literal>UPGRADE_NOWAIT</literal> ì¸ ê²½ì°ì, <literal>SELECT ... FOR UPDATE</"
+"literal>ê° ì¬ì©ëë¤.)"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If the requested lock mode is not supported by the database, Hibernate uses "
+"an appropriate alternate mode instead of throwing an exception. This ensures "
+"that applications are portable."
+msgstr ""
+"ë§ì¼ ë°ì´í°ë² ì´ì¤ê° ìì²ë ì ê¸ ëª¨ë를 ì§ìíì§ ìì ê²½ì°, (ìì¸ìí©ì ëì§"
+"ë ëì ì) Hibernateë ì ì í ëì²´ 모ë를 ì¬ì©í ê²ì´ë¤. ì´ê²ì ì´í리ì¼ì´ì
"
+"ì´ ì´ì ê°ë¥í ê²ìì íì¤í í´ì¤ë¤."
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Connection release modes"
+msgstr "ì°ê²° í´ì 모ëë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"One of the legacies of Hibernate 2.x JDBC connection management meant that a "
+"<literal>Session</literal> would obtain a connection when it was first "
+"required and then maintain that connection until the session was closed. "
+"Hibernate 3.x introduced the notion of connection release modes that would "
+"instruct a session how to handle its JDBC connections. The following "
+"discussion is pertinent only to connections provided through a configured "
+"<literal>ConnectionProvider</literal>. User-supplied connections are outside "
+"the breadth of this discussion. The different release modes are identified "
+"by the enumerated values of <literal>org.hibernate.ConnectionReleaseMode</"
+"literal>:"
+msgstr ""
+"JDBC 커ë¥ì
ê´ë¦¬ì ê´í Hibernateì 리거ì(2.x) í¹ì§ì ê·¸ê²ì´ ì²ìì¼ë¡ íì"
+"ë¡ íì ë íëì <literal>Session</literal>ì´ íëì 커ë¥ì
ì íëí ê²ì´"
+"ê³ , ê·¸ë° ë¤ì ê·¸ 커ë¥ì
ì ê·¸ ì¸ì
ì´ ë«íì§ëê¹ì§ ë³´ê´ëë¤ë ê²ì´ìë¤. "
+"Hibernate 3.xë ì¸ì
ìê² ê·¸ê²ì JDBC 커ë¥ì
ë¤ì ì²ë¦¬íë ë°©ë²ì ìë ¤ì£¼ê¸° ì"
+"í´ ì°ê²° í´ì 모ëë¤ì ê´í ê°ë
ì ëì
íë¤. ë¤ì ë
¼ìë 구ì±ë "
+"<literal>ConnectionProvider</literal>를 íµí´ ì ê³µëë 커ë¥ì
ë¤ì ëí´ìë§ ì "
+"ì íë¤ë ì ì ë
¸í¸íë¼; ì¬ì©ìê° ì ê³µíë 커ë¥ì
ë¤ì <literal>org.hibernate."
+"ConnectionReleaseMode</literal>ì ì´ê±°ë ê°ë¤ì ìí´ ìë³ëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>ON_CLOSE</literal>: is the legacy behavior described above. The "
+"Hibernate session obtains a connection when it first needs to perform some "
+"JDBC access and maintains that connection until the session is closed."
+msgstr ""
+"<literal>ON_CLOSE</literal> - ë 본ì§ì ì¼ë¡ ìì ì¤ëª
ë 리거ì í¹ì§ì´ë¤. "
+"Hibernate ì¸ì
ì ê·¸ê²ì´ ì´ë¤ JDBC ì ê·¼ì ìííê³ ì¸ì
ì´ ë«íì§ ëê¹ì§ ê·¸ 커"
+"ë¥ì
ì ë³´ê´í íìê° ìì ë íëì 커ë¥ì
ì íëíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_TRANSACTION</literal>: releases connections after a "
+"<literal>org.hibernate.Transaction</literal> has been completed."
+msgstr ""
+"<literal>AFTER_TRANSACTION</literal> - ì íëì <literal>org.hibernate."
+"Transaction</literal>ì´ ìë£ë íì ì°ê²°ë¤ì í´ì íë¼ê³ ë§íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>AFTER_STATEMENT</literal> (also referred to as aggressive release): "
+"releases connections after every statement execution. This aggressive "
+"releasing is skipped if that statement leaves open resources associated with "
+"the given session. Currently the only situation where this occurs is through "
+"the use of <literal>org.hibernate.ScrollableResults</literal>."
+msgstr ""
+"<literal>AFTER_STATEMENT</literal> (ëí ì ê·¹ì ì¸ í´ì ë¼ê³ ì¸ê¸ë¨) - ë ê°ê°"
+"ì 모ë ë¬¸ì¥ ì¤í íì 커ë¥ì
ë¤ì í´ì íë¼ê³ ë§íë¤. ì´ ì ê·¹ì ì¸ í´ì ë ê·¸ 문"
+"ì¥ì´ 주ì´ì§ ì¸ì
ê³¼ ì°ê´ë 리ìì¤ë¤ì ì´ë ¤ì§ì±ë¡ ë¨ê²¨ë ê²½ì°ìë ê±´ëë°ê²"
+"(skip) ëë¤; íì¬ ì´ê²ì´ ì¼ì´ëë ì ì¼í ìí©ì <literal>org.hibernate."
+"ScrollableResults</literal>ì ì¬ì©ì íµí´ìì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The configuration parameter <literal>hibernate.connection.release_mode</"
+"literal> is used to specify which release mode to use. The possible values "
+"are as follows:"
+msgstr ""
+"ì¬ì©í í´ì 모ë를 ì§ì í기 ìí´ êµ¬ì± íë¼ë¯¸í° <literal>hibernate.connection."
+"release_mode</literal>ê° ì¬ì©ëë¤. ê°ë¥í ê°ë¤ì ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>auto</literal> (the default): this choice delegates to the release "
+"mode returned by the <literal>org.hibernate.transaction.TransactionFactory."
+"getDefaultReleaseMode()</literal> method. For JTATransactionFactory, this "
+"returns ConnectionReleaseMode.AFTER_STATEMENT; for JDBCTransactionFactory, "
+"this returns ConnectionReleaseMode.AFTER_TRANSACTION. Do not change this "
+"default behavior as failures due to the value of this setting tend to "
+"indicate bugs and/or invalid assumptions in user code."
+msgstr ""
+"<literal>auto</literal> (ëí´í¸) - ì´ ì íì <literal>org.hibernate."
+"transaction.TransactionFactory.getDefaultReleaseMode()</literal> ë©ìëì ì"
+"í´ ë°íë í´ì 모ëë¡ ìììí¨ë¤. JTATransactionFactoryì¸ ê²½ì°, ì´ê²ì "
+"ConnectionReleaseMode.AFTER_STATEMENT를 ë°ííë¤; JDBCTransactionFactoryì¸ ê²½"
+"ì°, ì´ê²ì ConnectionReleaseMode.AFTER_TRANSACTIONì ë°ííë¤. ì´ ì¤ì ì ê°"
+"ì´ ì¬ì©ì ì½ë ë´ì ë²ê·¸ë¤ ê·¸ë¦¬ê³ /ëë ì í¨íì§ ìì ê°ì ë¤ì ê°ë¦¬í¤ë ê²½í¥"
+"ì´ ììì¼ë¡ ì¸í´ ì´ ëí´í¸ í¹ì§ì ì¤í¨ë¡ ë³ê²½íë ê²ì ê±°ì ì¢ì ìê°ì´ ìë"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>on_close</literal>: uses ConnectionReleaseMode.ON_CLOSE. This "
+"setting is left for backwards compatibility, but its use is discouraged."
+msgstr ""
+"<literal>on_close</literal> - ë ConnectionReleaseMode.ON_CLOSE를 ì¬ì©íë¼ê³ "
+"ë§íë¤. ì´ ì¤ì ì ìí¸íì±ì ìí´ ë¨ê²¨ì¡ì§ë§, ê·¸ê²ì ì¬ì©ì ë§¤ì° ê¶ì¥ëì§ ì"
+"ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>after_transaction</literal>: uses ConnectionReleaseMode."
+"AFTER_TRANSACTION. This setting should not be used in JTA environments. Also "
+"note that with ConnectionReleaseMode.AFTER_TRANSACTION, if a session is "
+"considered to be in auto-commit mode, connections will be released as if the "
+"release mode were AFTER_STATEMENT."
+msgstr ""
+"<literal>after_transaction</literal> - ì ConnectionReleaseMode."
+"AFTER_TRANSACTIONì ì¬ì©íë¼ê³ ë§íë¤. ì´ ì¤ì ì JTA íê²½ë¤ìì ì¬ì©ëì§ ì"
+"ì ê²ì´ë¤. ëí ConnectionReleaseMode.AFTER_TRANSACTIONì¸ ê²½ì°ì ë§ì¼ ì¸ì
ì´ "
+"auto-commit 모ëì ìëë¡ ê³ ë ¤ë ê²½ì°, 커ë¥ì
ë¤ì ë§ì¹ í´ì 모ëê° "
+"AFTER_STATEMENTì¸ ê²ì²ë¼ í´ì ë ê²ìì ëí ë
¸í¸íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>after_statement</literal>: uses ConnectionReleaseMode."
+"AFTER_STATEMENT. Additionally, the configured <literal>ConnectionProvider</"
+"literal> is consulted to see if it supports this setting "
+"(<literal>supportsAggressiveRelease()</literal>). If not, the release mode "
+"is reset to ConnectionReleaseMode.AFTER_TRANSACTION. This setting is only "
+"safe in environments where we can either re-acquire the same underlying JDBC "
+"connection each time you make a call into <literal>ConnectionProvider."
+"getConnection()</literal> or in auto-commit environments where it does not "
+"matter if we re-establish the same connection."
+msgstr ""
+"<literal>after_statement</literal> - ë ConnectionReleaseMode.AFTER_STATEMENT"
+"를 ì¬ì©íë¼ê³ ë§íë¤. ì¶ê°ì ì¼ë¡ 구ì±ë <literal>ConnectionProvider</literal>"
+"ë ê·¸ê²ì´ ì´ ì¤ì (<literal>supportsAggressiveRelease()</literal>)ì ì§ìíë"
+"ì§ ì¬ë¶ë¥¼ ì기 ìí´ ì°¸ê³ ëë¤. ë§ì¼ ì§ìíì§ ìì ê²½ì°, í´ì 모ëë "
+"ConnectionReleaseMode.AFTER_TRANSACTIONì¼ë¡ ì¬ì¤ì ëë¤. ì´ ì¤ì ì ì°ë¦¬ê° "
+"<literal>ConnectionProvider.getConnection()</literal>ì í¸ì¶í ëë§ë¤ ì°ë¦¬ê° "
+"ëì¼í 기본 JDBC 커ë¥ì
ì ë¤ì íìë¡ í ì ìë íê²½ë¤ìì ëë ì°ë¦¬ê° ëì¼"
+"í 커ë¥ì
ì ì»ë ê²ì ìê´ìë auto-commit íê²½ìì ì¤ì§ ìì íë¤."
+
+#~ msgid "foo==bar"
+#~ msgstr "foo==bar"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/tutorial.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/tutorial.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/tutorial.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2000 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:22\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The distribution contains another example application under the "
+"<filename>tutorial/eg</filename> project source directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr "íí¸ 1 - 첫 ë²ì§¸ Hibernate ì´í리ì¼ì´ì
"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For this example, we will set up a small database application that can store "
+"events we want to attend and information about the host(s) of these events."
+msgstr ""
+"ì°ë¦¬ê° ì°ë¦¬ê° ìë°íê³ ì ìíë ì´ë²¤í¸ë¤ì ì ì¥í ì ìë ìì ë°ì´í°ë² ì´ì¤ "
+"ì´í리ì¼ì´ì
ê³¼ ì´ë¤ ì´ë²¤í¸ë¤ì í¸ì¤í¸ë¤ì ëí ì 보를 íìë¡ íë¤ê³ ê°ì íì."
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is not a requirement to use Maven. If you wish to use something else to "
+"build this tutoial (such as Ant), the layout will remain the same. The only "
+"change is that you will need to manually account for all the needed "
+"dependencies. If you use something like <ulink url=\"http://ant.apache.org/"
+"ivy/\">Ivy</ulink> providing transitive dependency management you would "
+"still use the dependencies mentioned below. Otherwise, you'd need to grab "
+"<emphasis>all</emphasis> dependencies, both explicit and transitive, and add "
+"them to the project's classpath. If working from the Hibernate distribution "
+"bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts "
+"in the <filename>lib/required</filename> directory and all files from either "
+"the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/"
+"javassist</filename> directory; additionally you will need both the servlet-"
+"api jar and one of the slf4j logging backends."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr "첫 ë²ì§¸ í´ëì¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next, we create a class that represents the event we want to store in the "
+"database; it is a simple JavaBean class with some properties:"
+msgstr ""
+"ë¤ìì¼ë¡ ì°ë¦¬ë ì°ë¦¬ê° ë°ì´í°ë² ì´ì¤ ìì ì ì¥ìí¤ê³ ì ìíë ì´ë²¤í¸ë¥¼ ííí"
+"ë í ê°ì í´ëì¤ë¥¼ ìì±ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This class uses standard JavaBean naming conventions for property getter and "
+"setter methods, as well as private visibility for the fields. Although this "
+"is the recommended design, it is not required. Hibernate can also access "
+"fields directly, the benefit of accessor methods is robustness for "
+"refactoring."
+msgstr ""
+"ë¹ì ì ì´ í´ëì¤ê° íë¡í¼í° getterì setter ë©ìëë¤ì ëí íì¤ ìë°ë¹ì¦ ëª
"
+"ëª
ë²ë¤ ë¿ë§ ìëë¼ íëë¤ì ëí private ê°ìì±ì ì¬ì©íê³ ììì ì ì ì"
+"ë¤. ì´ê²ì ê¶ì¥ëë ì¤ê³ì´ì§ë§, íìì ì´ì§ë ìë¤. Hibernateë ëí íëë¤ì "
+"ì§ì ì ê·¼í ì ìì¼ë©°, accessor ë©ìëë¤ì ì´ì ì ê°ê±´í 리í©í ë§ì´ë¤. ìê·ë¨¼"
+"í¸ ìë ìì±ìë reflectionì íµí´ ì´ í´ëì¤ì ê°ì²´ë¥¼ ì´ê¸°í ìí¬ íìê° ì"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>id</literal> property holds a unique identifier value for a "
+"particular event. All persistent entity classes (there are less important "
+"dependent classes as well) will need such an identifier property if we want "
+"to use the full feature set of Hibernate. In fact, most applications, "
+"especially web applications, need to distinguish objects by identifier, so "
+"you should consider this a feature rather than a limitation. However, we "
+"usually do not manipulate the identity of an object, hence the setter method "
+"should be private. Only Hibernate will assign identifiers when an object is "
+"saved. Hibernate can access public, private, and protected accessor methods, "
+"as well as public, private and protected fields directly. The choice is up "
+"to you and you can match it to fit your application design."
+msgstr ""
+"<literal>id</literal> íë¡í¼í°ë í¹ë³í ì´ë²¤í¸ë¥¼ ìí ì ì¼ ìë³ì를 ìì í"
+"ë¤. 모ë ìì ìí°í° í´ëì¤ë¤ (ë³´ë¤ ë ì¤ìí ì¢
ì í´ëì¤ë¤ë ì¡´ì¬íë¤)ì ì°"
+"ë¦¬ê° Hibernateì ì ì²´ í¹ì§ ì§í©ì ì¬ì©íê³ ì ìí ê²½ì°ì ê·¸ë° ìë³ì íë¡í¼í°"
+"를 íìë¡ í ê²ì´ë¤. ì¬ì¤ ëë¶ë¶ì ì´í리ì¼ì´ì
ë¤(í¹í ì¹ ì´í리ì¼ì´ì
ë¤)ì "
+"ìë³ìì ìí´ ê°ì²´ë¤ì 구ë¶ì§ì íìê° ìì´ì, ë¹ì ì ì´ê²ì ì´ë¤ ì ì½ì ì´ë¼"
+"기 ë³´ë¤ë íëì í¹ì§ì¼ë¡ ê°ì£¼í ê²ì´ë¤. íì§ë§ ì°ë¦¬ë ëê° ê°ì²´ì íë±"
+"(identity)를 ì²ë¦¬íì§ ìì¼ë¯ë¡, setter ë©ìëë privateì´ì´ì¼ íë¤. ê°ì²´ê° ì "
+"ì¥ë ë, Hibernateë ë¨ì§ ìë³ìë¤ì í ë¹í ê²ì´ë¤. ë¹ì ì Hibernateê° "
+"public, private, protected ì ê·¼ì ë©ìëë¤ ë¿ë§ ìëë¼ (public, private, "
+"protected) íëë¤ìë ì§ì ì ê·¼í ì ììì ì ì ìë¤. ì íì ë¹ì ìê² ë¬ë ¤ "
+"ìì¼ë©°, ë¹ì ì ë¹ì ì ì´í리ì¼ì´ì
ì¤ê³ì ì í©íëë¡ ê·¸ê²ì ë¶í©ìí¬ ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The no-argument constructor is a requirement for all persistent classes; "
+"Hibernate has to create objects for you, using Java Reflection. The "
+"constructor can be private, however package or public visibility is required "
+"for runtime proxy generation and efficient data retrieval without bytecode "
+"instrumentation."
+msgstr ""
+"ìê·ë¨¼í¸ ìë ìì±ìë 모ë ìì í´ëì¤ë¤ì ëí íìì¡°ê±´ì´ë¤; Hibernateë ë¹"
+"ì ì ìí´ Java Reflectionì ì¬ì©íì¬ ê°ì²´ë¤ì ìì±ìì¼ì¼ íë¤. íì§ë§ ìì±ì"
+"ë private ì¼ ì ìê³ , í¨í¤ì§ ê°ìì±ì ë°íì íë½ì ìì±ê³¼ ë°ì´í¸ì½ë ë°©í¸ "
+"ìë í¨ì¨ì ì¸ ë°ì´í° ê²ìì íìíë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr "The mapping file"
+
+#. 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ë ìì í¬ëì¤ë¤ì ëí ê°ì²´ë¤ì ë¡ëìí¤ê³ ì ì¥ìí¤ë ë°©ë²ì ì í"
+"ìê° ìë¤. ì´ê³³ì Hibernate 매í íì¼ì´ ìí ì ííë ê³³ì´ë¤. 매í íì¼ì "
+"Hibernateê° ì ê·¼í´ì¼ íë ë°ì´í°ë² ì´ì¤ ë´ì í
ì´ë¸ì´ 무ìì¸ì§, ê·¸ë¦¬ê³ ê·¸ê²ì´ "
+"ì¬ì©í´ì¼ íë ê·¸ í
ì´ë¸ ë´ì 컬ë¼ë¤ì´ 무ìì¸ì§ë¥¼ Hibernateìê² ìë ¤ì¤ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr "매í íì¼ì 기본 구조ë ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate DTD is sophisticated. You can use it for auto-completion of XML "
+"mapping elements and attributes in your editor or IDE. Opening up the DTD "
+"file in your text editor is the easiest way to get an overview of all "
+"elements and attributes, and to view the defaults, as well as some comments. "
+"Hibernate will not load the DTD file from the web, but first look it up from "
+"the classpath of the application. The DTD file is included in "
+"<filename>hibernate-core.jar</filename> (it is also included in the "
+"<filename>hibernate3.jar</filename>, if using the distribution bundle)."
+msgstr ""
+"Hibernate DTDë ë§¤ì° ì êµíë¤. ë¹ì ì ë¹ì ì í¸ì§ê¸° ëë IDE ë´ìì XML 매í "
+"ììë¤ê³¼ ìì±ë¤ì ëí ìë ìì± ê¸°ë¥ì ìí´ ê·¸ê²ì ì¬ì©í ì ìë¤. ë¹ì ì ë"
+"í ë¹ì ì í
ì¤í¸ í¸ì§ê¸° ë´ì DTD íì¼ì ì´ ì ìì ê²ì´ë¤ - ê·¸ê²ì 모ë ìì"
+"ë¤ê³¼ ìì±ë¤ì ëí ì ì²´ìì ì»ê³ ëí´í¸ë¤ ë¿ë§ ìëë¼ ëªëª 주ìë¤ì ë³´ë ê°"
+"ì¥ ìì¬ì´ ë°©ë²ì´ë¤. Hibernateë ì¹ì¼ë¡ë¶í° DTD íì¼ì ë¡ëìí¤ì§ ìì§ë§, 먼"
+"ì ì´í리ì¼ì´ì
ì classpath ê²½ë¡ë¡ë¶í° ê·¸ê²ì 먼ì 룩ì
í ê²ìì ë
¸í¸íë¼. "
+"DTD íì¼ì <literal>hibernate3.jar</literal> ìì í¬í¨ëì´ ìì ë¿ë§ ìëë¼ "
+"Hibernate ë°°í¬ë³¸ì <literal>src/</literal> ëë í 리 ìì í¬í¨ëì´ ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will omit the DTD declaration in future examples to shorten the code. It "
+"is, of course, not optional."
+msgstr ""
+"ì°ë¦¬ë ì½ë를 ê°ëµí ìí¤ê¸° ìí´ ì¥ëì ìì ìì DTD ì ì¸ì ìëµí ê²ì´ë¤. ê·¸"
+"ê²ì ë¬¼ë¡ ìµì
ì´ ìëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Between the two <literal>hibernate-mapping</literal> tags, include a "
+"<literal>class</literal> element. All persistent entity classes (again, "
+"there might be dependent classes later on, which are not first-class "
+"entities) need a mapping to a table in the SQL database:"
+msgstr ""
+"ë ê°ì <literal>hibernate-mapping</literal> íê·¸ë¤ ì¬ì´ì <literal>class</"
+"literal> ìì를 í¬í¨ìì¼ë¼. 모ë ìì ìí°í° í´ëì¤ë¤(ë¤ìê¸ ì¢
ì í´ëì¤ë¤ì¼ "
+"ì ìê³ , ê·¸ê²ì 첫ë²ì§¸-ê¸ì ìí°í°ë¤ì´ ìëë¤)ì SQL ë°ì´í°ë² ì´ì¤ ë´ì í
ì´ë¸"
+"ì ëí ê·¸ë° ë§¤íì íìë¡ íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"So far we have told Hibernate how to persist and load object of class "
+"<literal>Event</literal> to the table <literal>EVENTS</literal>. Each "
+"instance is now represented by a row in that table. Now we can continue by "
+"mapping the unique identifier property to the tables primary key. As we do "
+"not want to care about handling this identifier, we configure Hibernate's "
+"identifier generation strategy for a surrogate primary key column:"
+msgstr ""
+"ì§ê¸ê¹ì§ ì°ë¦¬ë ê·¸ í
ì´ë¸ ë´ì ìë í íì ìí´ ííë ê°ê°ì ì¸ì¤í´ì¤ì¸, í´"
+"ëì¤ì ê°ì²´ë¥¼ ììí ìí¤ê³ ë¡ëìí¤ë ë°©ë²ì Hibernateìê² ìë ¤ì£¼ìë¤. ì´ì "
+"ì°ë¦°ë í
ì´ë¸ íë¼ì´ë¨¸ë¦¬ í¤ì ëí ì ì¼ ìë³ì íë¡í¼í° 매íì ê³ì ííë¤. "
+"ê²ë¤ê° ì°ë¦¬ë ì´ ìë³ì를 ì²ë¦¬íë ê²ì 주ì를 기ì¸ì´ê³ ì ìíì§ ìì¼ë¯ë¡, ì°"
+"리ë ëì© í¤ íë¼ì´ë¨¸ë¦¬ í¤ ì»¬ë¼ì ëí 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>native</literal> is no longer consider the best strategy in terms "
+"of portability. for further discussion, see <xref linkend=\"portability-idgen"
+"\" />"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Lastly, we need to tell Hibernate about the remaining entity class "
+"properties. By default, no properties of the class are considered persistent:"
+msgstr ""
+"ë§ì§ë§ì¼ë¡ ì°ë¦¬ë 매í íì¼ ììì í´ëì¤ì ìì íë¡í¼í°ë¤ì ëí ì ì¸ë¤ì "
+"í¬í¨íë¤. ëí´í¸ë¡, í´ëì¤ì íë¡í¼í°ë¤ì ììì ì¸ ê²ì¼ë¡ ê°ì£¼ëì§ ìëë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Similar to the <literal>id</literal> element, the <literal>name</literal> "
+"attribute of the <literal>property</literal> element tells Hibernate which "
+"getter and setter methods to use. In this case, Hibernate will search for "
+"<literal>getDate()</literal>, <literal>setDate()</literal>, <literal>getTitle"
+"()</literal> and <literal>setTitle()</literal> methods."
+msgstr ""
+"<literal>id</literal> ììì ê²½ì°ì²ë¼, <literal>property</literal> ììì "
+"<literal>name</literal> ìì±ì ì¬ì©í getter ë° setter ë©ìëë¤ì´ ì´ë ê²ì¸ì§"
+"를 Hibernateìê² ìë ¤ì¤ë¤. ë°ë¼ì ì´ ê²½ì°ì Hibernateë <literal>getDate()/"
+"setDate()</literal> ë¿ë§ ìëë¼ <literal>getTitle()/setTitle()</literal>ì ì°¾"
+"ê² ë ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Why does the <literal>date</literal> property mapping include the "
+"<literal>column</literal> attribute, but the <literal>title</literal> does "
+"not? Without the <literal>column</literal> attribute, Hibernate by default "
+"uses the property name as the column name. This works for <literal>title</"
+"literal>, however, <literal>date</literal> is a reserved keyword in most "
+"databases so you will need to map it to a different name."
+msgstr ""
+"<literal>date</literal> íë¡í¼í° 매íì <literal>column</literal> ìì±ì í¬í¨"
+"íëë°, ì <literal>title</literal>ì <literal>column</literal> ìì±ì í¬í¨í"
+"ì§ ìëê°? <literal>column</literal> ìì±ì´ ìì ê²½ì° Hibernateë ëí´í¸ë¡ 컬"
+"ë¼ ì´ë¦ì¼ë¡ì íë¡í¼í° ì´ë¦ì ì¬ì©íë¤. ì´ê²ì ì ëí´ ì ëìíë¤. íì§ë§ "
+"<literal>date</literal>ë ëë¶ë¶ì ë°ì´í°ë² ì´ì¤ìì ìì½ë í¤ìëì´ì´ì, ì°ë¦¬"
+"ë ê·¸ê²ì ë¤ë¥¸ ì´ë¦ì¼ë¡ ë ì¢ê² 매í ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The <literal>title</literal> mapping also lacks a <literal>type</literal> "
+"attribute. The types declared and used in the mapping files are not Java "
+"data types; they are not SQL database types either. These types are called "
+"<emphasis>Hibernate mapping types</emphasis>, converters which can translate "
+"from Java to SQL data types and vice versa. Again, Hibernate will try to "
+"determine the correct conversion and mapping type itself if the "
+"<literal>type</literal> attribute is not present in the mapping. In some "
+"cases this automatic detection using Reflection on the Java class might not "
+"have the default you expect or need. This is the case with the "
+"<literal>date</literal> property. Hibernate cannot know if the property, "
+"which is of <literal>java.util.Date</literal>, should map to a SQL "
+"<literal>date</literal>, <literal>timestamp</literal>, or <literal>time</"
+"literal> column. Full date and time information is preserved by mapping the "
+"property with a <literal>timestamp</literal> converter."
+msgstr ""
+"ë¤ì í¥ë¯¸ë¡ì´ ì ì <literal>title</literal> 매í ëí <literal>type</"
+"literal> ìì±ì ê°ì§ ìëë¤. ì°ë¦¬ê° 매ííì¼ë¤ ììì ì ì¸íê³ ì¬ì©íë íì
"
+"ë¤ì ë¹ì ì´ ììíë Java ë°ì´í° íì
ë¤ì´ ìëë¤. ê·¸ê²ë¤ì ëí SQL ë°ì´í°ë² "
+"ì´ì¤ íì
ë¤ë ìëë¤. ì´ë¤ íì
ë¤ì ì´ë¥¸ë° <emphasis>Hibernate 매í íì
ë¤</"
+"emphasis>, ì¦ Java íì
ë¤ë¡ë¶í° SQL íì
ë¤ë¡ ë³íë ì ìê³ ë°ëë¡ SQL íì
ë¤"
+"ë¡ë¶í° Java íì
ë¤ë¡ 매íë ì ìë 컨ë²í°ë¤ì´ë¤. ë¤ìë§í´, <literal>type</"
+"literal> ìì±ì´ 매í ìì ì¡´ì¬íì§ ìì ê²½ì° Hibernateë ì íí ë³í ë° ë§¤í "
+"íì
ê·¸ ì체를 ê²°ì íë ¤ê³ ìëí ê²ì´ë¤. ëªëª ê²½ì°ë¤ìì (Java í´ëì¤ì ëí "
+"Reflectionì ì¬ì©íë) ì´ ìëì ì¸ ê²ì¶ì ë¹ì ì´ ììíê±°ë íìë¡ íë ëí´"
+"í¸ë¥¼ ê°ì§ ìì ìë ìë¤. ì´ê²ì <literal>date</literal> íë¡í¼í°ë¥¼ ê°ì§ ê²½ì°"
+"ì´ë¤. Hibernateë ê·¸ íë¡í¼í°ê° 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this mapping file as <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr "Hibernate 구ì±"
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will utilize the Maven exec plugin to launch the HSQLDB server by "
+"running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
+"Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see "
+"it start up and bind to a TCP/IP socket; this is where our application will "
+"connect later. If you want to start with a fresh database during this "
+"tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</"
+"filename> directory, and start HSQLDB again."
+msgstr ""
+"ê°ë° ëë í 리ì 루í¸ì <literal>data</literal>ë¡ ëª
ëª
ë ëë í 리를 ìì±ìì¼"
+"ë¼ - ì´ ëë í 리ë HSQL DBê° ê·¸ê²ì ë°ì´í° íì¼ë¤ì ì ì¥íê² ë ì¥ìì´ë¤. ì´"
+"ì ì´ ë°ì´í° ëë í 리ìì <literal>java -classpath ../lib/hsqldb.jar org."
+"hsqldb.Server</literal>를 ì¤íìì¼ì ë°ì´í°ë² ì´ì¤ë¥¼ ìììì¼ë¼. ë¹ì ì ê·¸ê²"
+"ì´ ììëê³ ì´ê²ì ì°ë¦¬ì ì´í리ì¼ì´ì
ì´ ëì¤ì ì°ê²°íê² ë ì¥ìì¸, íëì "
+"TCP/IP ìì¼ì ë°ì¸ë ëë ê²ì ë³¼ ì ìë¤. ë§ì¼ ì´ íí ë¦¬ì¼ ëìì ë¹ì ì´ ì "
+"ë°ì´í°ë² ì´ì¤ë¡ ììíê³ ì ìí ê²½ì°, HSQL DB를 ì
§ë¤ì´ìí¤ê³ (ì¼ëì°ìì "
+"<literal>CTRL + C</literal>를 ëë¬ë¼), <literal>data/</literal> ëë í 리 ë´"
+"ì ìë 모ë íì¼ë¤ì ìì íê³ ë¤ì HSQL DB를 ììíë¼."
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in Hibernate connection pool is in no way intended for production "
+"use. It lacks several features found on any decent connection pool."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For Hibernate's configuration, we can use a simple <literal>hibernate."
+"properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</"
+"literal> file, or even complete programmatic setup. Most users prefer the "
+"XML configuration file:"
+msgstr ""
+"Hibernateì 구ì±ì ìí´, ì°ë¦¬ë í ê°ì ê°ë¨í <literal>hibernate."
+"properties</literal> íì¼, í ê°ì ì½ê° ë ì¸ë ¨ë <literal>hibernate.cfg."
+"xml</literal> íì¼, ëë ì¬ì§ì´ ìì í íë¡ê·¸ë¨ ìì ì¤ì ì ì¬ì©í ì ìë¤. "
+"ëë¶ë¶ì ì¬ì©ìë¤ì XMl êµ¬ì± íì¼ì ì í¸íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
+"is a global factory responsible for a particular database. If you have "
+"several databases, for easier startup you should use several <literal><"
+"session-factory></literal> configurations in several configuration files."
+msgstr ""
+"ì´ XML 구ì±ì´ ë¤ë¥¸ DTD를 ì¬ì©í¨ì ë
¸í¸íë¼. ì°ë¦¬ë Hibernateì "
+"<literal>SessionFactory</literal> -í¹ì ë°ì´í°ë² ì´ì¤ì ëí´ ì±
ìì´ ìë ì ì "
+"í©í 리-를 구ì±íë¤. ë§ì¼ ë¹ì ì´ ì¬ë¬ ë°ì´í°ë² ì´ì¤ë¤ì ê°ê³ ìë¤ë©´, (ë³´ë¤ ì¬"
+"ì´ ììì ìí´) ëª ê°ì êµ¬ì± íì¼ë¤ ìì ì¬ë¬ ê°ì <literal><session-"
+"factory></literal> 구ì±ë¤ì ì¬ì©íë¼."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The first four <literal>property</literal> elements contain the necessary "
+"configuration for the JDBC connection. The dialect <literal>property</"
+"literal> element specifies the particular SQL variant Hibernate generates."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In most cases, Hibernate is able to properly determine which dialect to use. "
+"See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate's automatic session management for persistence contexts is "
+"particularly useful in this context. The <literal>hbm2ddl.auto</literal> "
+"option turns on automatic generation of database schemas directly into the "
+"database. This can also be turned off by removing the configuration option, "
+"or redirected to a file with the help of the <literal>SchemaExport</literal> "
+"Ant task. Finally, add the mapping file(s) for persistent classes to the "
+"configuration."
+msgstr ""
+"ì²ì ë¤ ê°ì <literal>property</literal> ììë¤ì JDBC 커ë¥ì
ì ìí íì 구"
+"ì±ì í¬í¨íë¤. dialect <literal>property</literal> ììë Hibernateê° ë°ìì"
+"í¤ë í¹ë³í SQL ì´í(ç°å½¢)ì ì§ì íë¤. <literal>hbm2ddl.auto</literal> ìµì
"
+"ì -ì§ì ë°ì´í°ë² ì´ì¤ ìì¼ë¡- ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ì ìëì ì¸ ìì±ì íì±í ì"
+"í¨ë¤. ë¬¼ë¡ ì´ê²ì (config ìµì
ì ì ê±°í¨ì¼ë¡ì¨) ë¹íì±í ìí¬ ì ìê±°ë "
+"<literal>SchemaExport</literal> Ant íì¤í¬ì ëìì¼ë¡ íì¼ë¡ 리ë¤ì´ë í¸ ë "
+"ì ìë¤. ë§ì§ë§ì¼ë¡ ì°ë¦¬ë ìì í´ëì¤ë¤ì ìí 매í íì¼(ë¤)ì ì¶ê°ìí¨ë¤."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>hibernate.cfg.xml</filename> into the "
+"<filename>src/main/resources</filename> directory."
+msgstr ""
+
+#. Tag: title
+#, fuzzy, no-c-format
+msgid "Building with Maven"
+msgstr "Antë¡ ë¹ëí기"
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr "ììê³¼ helperë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"It is time to load and store some <literal>Event</literal> objects, but "
+"first you have to complete the setup with some infrastructure code. You have "
+"to startup Hibernate by building a global <interfacename>org.hibernate."
+"SessionFactory</interfacename> object and storing it somewhere for easy "
+"access in application code. A <interfacename>org.hibernate.SessionFactory</"
+"interfacename> is used to obtain <interfacename>org.hibernate.Session</"
+"interfacename> instances. A <interfacename>org.hibernate.Session</"
+"interfacename> represents a single-threaded unit of work. The "
+"<interfacename>org.hibernate.SessionFactory</interfacename> is a thread-safe "
+"global object that is instantiated once."
+msgstr ""
+"ëªëª <literal>Event</literal> ê°ì²´ë¤ì ë¡ëìí¤ê³ ì ì¥í ì°¨ë¡ì´ì§ë§, 먼ì ì°"
+"리ë ì´ë¤ ì¸íë¼ì¤í¸ëì² ì½ëë¡ ì¤ì ì ìë£í´ì¼ íë¤. ì°ë¦¬ë Hibernate를 ìì"
+"í´ì¼ íë¤. ì´ ììì ì ì <literal>SessionFactory</literal> ê°ì²´ë¥¼ ë¹ëíê³ "
+"ì´í리ì¼ì´ì
ë´ìì ì©ì´í ì ê·¼ì ìí´ ê·¸ê²ì ì´ë¤ ê³³ì ì ì¥íë ê²ì í¬í¨í"
+"ë¤. <literal>SessionFactory</literal>ë ìë¡ì´ <literal>Session</literal>ë¤"
+"ì ì´ ì ìë¤. <literal>Session</literal>ì ìì
ì ë¨ì¼-ì°ë ë ë¨ì를 ííí"
+"ë©°, <literal>SessionFactory</literal>ë íë² ì´ê¸°í ëë íëì thread-safe "
+"ì ì ê°ì²´ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We will create a <literal>HibernateUtil</literal> helper class that takes "
+"care of startup and makes accessing the <interfacename>org.hibernate."
+"SessionFactory</interfacename> more convenient."
+msgstr ""
+"ì°ë¦¬ë ììì ì²ë¦¬íê³ <literal>Session</literal> ì²ë¦¬ë¥¼ í¸ë¦¬íê² í´ì£¼ë "
+"<literal>HibernateUtil</literal> helper í´ëì¤ë¥¼ ìì±ìí¬ ê²ì´ë¤. ì´ë¥¸ë° "
+"<emphasis>ThreadLocal Session</emphasis> í¨í´ì´ ì¬ê¸°ì ì ì©íë©°, ì°ë¦¬ë íì¬"
+"ì ìì
ë¨ì를 íì¬ì ì°ë ëì ì°ê´ì§ì ì ì§íë¤. 구íì ì´í´ë³´ì:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
+"HibernateUtil.java</filename>"
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This class not only produces the global <interfacename>org.hibernate."
+"SessionFactory</interfacename> reference in its static initializer; it also "
+"hides the fact that it uses a static singleton. We might just as well have "
+"looked up the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"reference from JNDI in an application server or any other location for that "
+"matter."
+msgstr ""
+"ì´ í´ëì¤ë (í´ëì¤ê° ë¡ëë ë JVMì ìí´ íë² í¸ì¶ëë) ê·¸ê²ì static ì´ê¸°"
+"ì ë´ì ì ì <literal>SessionFactory</literal>를 ì°ì¶í ë¿ë§ ìëë¼ ëí í"
+"ì¬ ì°ë ëì ëí <literal>Session</literal>ì ìì íë <literal>ThreadLocal</"
+"literal> ë³ì를 ê°ëë¤. ë¹ì ì´ <literal>HibernateUtil.getCurrentSession()</"
+"literal>ì í¸ì¶íë ìì ìë 문ì ê° ìì¼ë©°, ê·¸ê²ì íì ëì¼ ì°ë ë ë´ì ëì¼"
+"í Hibernate ìì
ë¨ì를 ë°íí ê²ì´ë¤. <literal>HibernateUtil.closeSession()"
+"</literal>ì ëí í¸ì¶ì ì°ë ëì íì¬ ì°ê´ëì´ ìë ìì
ë¨ì를 ì¢
ë£ìí¨ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you give the <interfacename>org.hibernate.SessionFactory</interfacename> "
+"a name in your configuration, Hibernate will try to bind it to JNDI under "
+"that name after it has been built. Another, better option is to use a JMX "
+"deployment and let the JMX-capable container instantiate and bind a "
+"<literal>HibernateService</literal> to JNDI. Such advanced options are "
+"discussed later."
+msgstr ""
+"ë¹ì ì´ ì´ helper를 ì¬ì©í기 ì ì thread-local ë³ìë¤ì ëí Java ê°ë
ì íì¤"
+"í ì´í´íëë¡ íë¼. ë³´ë¤ ê°ë ¥í <literal>HibernateUtil</literal> helperë "
+"http://caveatemptor.hibernate.org/ì ìë <literal>CaveatEmptor</literal> ë¿"
+"ë§ ìëë¼ \"Java Persistence with Hibernate\" ì±
ìì ì°¾ì ì ìë¤. ë¹ì ì´ "
+"J2EE ì´í리ì¼ì´ì
ìë² ë´ì Hibernate를 ë°°ì¹í ê²½ì°ì ì´ í´ëì¤ë íìì ì´ì§ "
+"ìë¤: íëì <literal>Session</literal>ì íì¬ì JTA í¸ëìì
ì ìëì ì¼ë¡ ë°"
+"ì¸ë ë ê²ì´ê³ ë¹ì ì JNDI를 íµí´ <literal>SessionFactory</literal>를 룩ì
í "
+"ì ìë¤. ë§ì¼ ë¹ì ì´ JBoss AS를 ì¬ì©í ê²½ì°, Hibernateë ê´ë¦¬ëë ìì¤í
ìë¹"
+"ì¤ë¡ì ë°°ì¹ë ì ìê³ <literal>SessionFactory</literal>를 JNDI ì´ë¦ì ìëì "
+"ì¼ë¡ ë°ì¸ëìí¬ ì ìì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You now need to configure a logging system. Hibernate uses commons logging "
+"and provides two choices: Log4j and JDK 1.4 logging. Most developers prefer "
+"Log4j: copy <literal>log4j.properties</literal> from the Hibernate "
+"distribution in the <literal>etc/</literal> directory to your <literal>src</"
+"literal> directory, next to <literal>hibernate.cfg.xml</literal>. If you "
+"prefer to have more verbose output than that provided in the example "
+"configuration, you can change the settings. By default, only the Hibernate "
+"startup message is shown on stdout."
+msgstr ""
+"ì´ê²ì 문ì ìì´ ë¤ì ì»´íì¼ ë ê²ì´ë¤. ì°ë¦¬ë ë§ì§ë§ì¼ë¡ ë¡ê¹
ìì¤í
ì 구ì±"
+"í íìê° ìë¤ - Hibernateë commons logging를 ì¬ì©íê³ Log4jì JDK 1.4 ì¬ì´"
+"ì ì íì ë¹ì ì 몫ì¼ë¡ ë¨ê²¨ëë¤. ëë¶ë¶ì ê°ë°ìë¤ì Log4j를 ì í¸íë¤: "
+"Hibernate ë°°í¬ë³¸ì ìë <literal>log4j.properties</literal>(ì´ê²ì ëë í 리 "
+"<literal>etc/</literal> ë´ì ìë¤)를 <literal>src</literal> ëë í ë¦¬ë¡ ë³µì¬í"
+"ê³ , ë¤ìì¼ë¡ <literal>hibernate.cfg.xml</literal>ì ë³µì¬íë¼. ìì 구ì±ì ì´"
+"í´ë³´ê³ ë¹ì ì´ ë ë§ì verbose ì¶ë ¥ì ìí ê²½ì°ì ì¤ì ë¤ì ë³ê²½íë¼. ëí´í¸ë¡ "
+"Hibernate ìì ë©ìì§ë stdout ìì ë³´ì¬ì§ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The tutorial infrastructure is complete and you are now ready to do some "
+"real work with Hibernate."
+msgstr ""
+"íí ë¦¬ì¼ ì¸íë¼ì¤í¸ëì²ë ìì íë¤ - ê·¸ë¦¬ê³ ì°ë¦¬ë Hibernateë¡ ì´ë¤ ì¤ì ìì
"
+"ì íí ì¤ë¹ê° ëì´ ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr "ê°ì²´ ë¡ë©ê³¼ ê°ì²´ ì ì¥"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"We are now ready to start doing some real worjk with Hibernate. Let's start "
+"by writing an <literal>EventManager</literal> class with a <literal>main()</"
+"literal> method:"
+msgstr ""
+"ë§ì§ë§ì¼ë¡ ì°ë¦¬ë ê°ì²´ë¤ì ë¡ëìí¤ê³ ì ì¥íëë° Hibernate를 ì¬ì©í ì ìë¤. "
+"ì°ë¦¬ë í ê°ì <literal>main()</literal> ë©ìë를 ê°ì§ í ê°ì "
+"<literal>EventManager</literal> í´ëì¤ë¥¼ ìì±íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In <literal>createAndStoreEvent()</literal> we created a new <literal>Event</"
+"literal> object and handed it over to Hibernate. At that point, Hibernate "
+"takes care of the SQL and executes an <literal>INSERT</literal> on the "
+"database."
+msgstr ""
+"ì°ë¦¬ë í ê°ì ìë¡ì´ <literal>Event</literal> ê°ì²´ë¥¼ ìì±ìí¤ê³ , ê·¸ê²ì "
+"Hibernateìê² ê±´ë¤ì¤ë¤. Hibernateë ì´ì SQLì ì²ë¦¬íê³ ë°ì´í°ë² ì´ì¤ ììì "
+"<literal>INSERT</literal>ë¤ì ì¤íìí¨ë¤. -ì°ë¦¬ê° ì´ê²ì ì¤íí기 ì ì ì½ë"
+"를 ì²ë¦¬íë- <literal>Session</literal>ê³¼ <literal>Transaction</literal>ì ì´"
+"í´ë³´ì."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <interface>org.hibernate.Session</interface> is designed to represent a "
+"single unit of work (a single atmoic piece of work to be performed). For now "
+"we will keep things simple and assume a one-to-one granularity between a "
+"Hibernate <interface>org.hibernate.Session</interface> and a database "
+"transaction. To shield our code from the actual underlying transaction "
+"system we use the Hibernate <interfacename>org.hibernate.Transaction</"
+"interfacename> API. In this particular case we are using JDBC-based "
+"transactional semantics, but it could also run with JTA."
+msgstr ""
+"<literal>Session</literal>ì í ê°ì ìì
ë¨ìì´ë¤. ì§ê¸ë¶í° ì°ë¦¬ë ë¨ì¨í¨ì "
+"ì ì§í ê²ì´ê³ Hibernate <literal>Session</literal>ê³¼ ë°ì´í°ë² ì´ì¤ í¸ëìì
ì¬"
+"ì´ì ì¼-ë-ì¼ ê³¼ë¦½í(granularity)ì ê°ì í ê²ì´ë¤. ì¤ì ê¸°ë° í¸ëìì
ìì¤í
"
+"ì¼ë¡ë¶í° ì°ë¦¬ì ìì¤ë¥¼ ìíìí¤ê¸° ìí´(ì´ ê²½ì° íµìì JDBCì´ì§ë§, ê·¸ê²ì ë"
+"í JTAìë ì¤íëë¤) ì°ë¦¬ë Hibernate <literal>Session</literal> ììì ì´ì© "
+"ê°ë¥í <literal>Transaction</literal> API를 ì¬ì©íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What does <literal>sessionFactory.getCurrentSession()</literal> do? First, "
+"you can call it as many times and anywhere you like once you get hold of "
+"your <interfacename>org.hibernate.SessionFactory</interfacename>. The "
+"<literal>getCurrentSession()</literal> method always returns the \"current\" "
+"unit of work. Remember that we switched the configuration option for this "
+"mechanism to \"thread\" in our <filename>src/main/resources/hibernate.cfg."
+"xml</filename>? Due to that setting, the context of a current unit of work "
+"is bound to the current Java thread that executes the application."
+msgstr ""
+"<literal>sessionFactory.getCurrentSession()</literal>ì 무ìì ííëê°? 먼"
+"ì ë¹ì ì ë¹ì ì´ (<literal>HibernateUtil</literal> ëë¶ì ì½ê²) "
+"<literal>SessionFactory</literal>ì ë¹ì ì´ ìì íê³ ìë¤ë©´, ìíë ë§í¼ ì´ë"
+"ìë ì¬ë¬ë² ê·¸ê²ì í¸ì¶í ì ìë¤. <literal>getCurrentSession()</literal> ë©"
+"ìëë íì \"íì¬ì\" ìì
ë¨ì를 ë°ííë¤. ì°ë¦¬ê° <literal>hibernate.cfg."
+"xml</literal> ë´ìì ì´ ë§¤ì»¤ëì¦ì ëí êµ¬ì± ìµì
ì \"thread\"ë¡ ì íìì¼°ì"
+"ì 기ìµíëê°? ê·¸ë¬ë¯ë¡ ìì
ì íì¬ ë¨ìë ì°ë¦¬ì ì´í리ì¼ì´ì
ì ì¤íìí¤ë "
+"íì¬ ìë° ì°ë ëì ë¬¶ì¬ ìë¤. íì§ë§ ì´ê²ì ì ì²´ ê·¸ë¦¼ì´ ìëë©°, ë¹ì ì ëí "
+"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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A <interface>org.hibernate.Session</interface> begins when the first call to "
+"<literal>getCurrentSession()</literal> is made for the current thread. It is "
+"then bound by Hibernate to the current thread. When the transaction ends, "
+"either through commit or rollback, Hibernate automatically unbinds the "
+"<interface>org.hibernate.Session</interface> from the thread and closes it "
+"for you. If you call <literal>getCurrentSession()</literal> again, you get a "
+"new <interface>org.hibernate.Session</interface> and can start a new unit of "
+"work."
+msgstr ""
+"<literal>Session</literal>ì ê·¸ê²ì´ ì²ìì¼ë¡ íìë¡ ëê³ "
+"<literal>getCurrentSession()</literal>ì ëí 첫 ë²ì§¸ í¸ì¶ì´ ì´ë£¨ì´ì§ ë ìì"
+"ëë¤. ê·¸ë ê·¸ê²ì Hibernateì ìí´ íì¬ì ì°ë ëì ë°ì¸ë ëë¤. 커ë°ëë 롤백"
+"ëë ê°ì í¸ëìì
ì´ ì¢
ë£ëê³ , Hibernateê° ìëì ì¼ë¡ ê·¸ ì°ë ëë¡ë¶í° "
+"<literal>Session</literal>ì ë°ì¸ë í´ì ìí¤ê³ ë¹ì ì ìí´ ì¸ì
ì ë«ëë¤. ë§"
+"ì¼ ë¹ì ì´ <literal>getCurrentSession()</literal>ì ë¤ì í¸ì¶íë¤ë©´, ë¹ì ì ì"
+"ë¡ì´ <literal>Session</literal>ì ì»ê³ ìë¡ì´ ìì
ë¨ì를 ììí ì ìë¤. ì´ "
+"<emphasis>thread-bound</emphasis> íë¡ê·¸ëë° ëª¨íì Hibernate를 ì¬ì©íë ê°"
+"ì¥ ëì¤ì ì¸ ë°©ë²ì´ë¤. ìëíë©´ ê·¸ê²ì ë¹ì ì ì½ë를 ì ì°íê² ê³ì¸µíìí¤ë ê²"
+"ì íì©í´ì£¼ê¸° ë문ì´ë¤(í¸ëìì
ê²½ê³ ë¶í ì½ëë ë°ì´í¸ ì ê·¼ ì½ëì 구ë³ì§ì"
+"ì§ ì ìëë°, ì°ë¦¬ë ì´ íí 리ì¼ì ë·ë¶ë¶ìì ì´ê²ì ë¤ë£° ê²ì´ë¤.)."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Related to the unit of work scope, should the Hibernate <interface>org."
+"hibernate.Session</interface> be used to execute one or several database "
+"operations? The above example uses one <interface>org.hibernate.Session</"
+"interface> for one operation. However this is pure coincidence; the example "
+"is just not complex enough to show any other approach. The scope of a "
+"Hibernate <interface>org.hibernate.Session</interface> is flexible but you "
+"should never design your application to use a new Hibernate <interface>org."
+"hibernate.Session</interface> for <emphasis>every</emphasis> database "
+"operation. Even though it is used in the following examples, consider "
+"<emphasis>session-per-operation</emphasis> an anti-pattern. A real web "
+"application is shown later in the tutorial which will help illustrate this."
+msgstr ""
+"ìì
ììì ë¨ìì ê´ë ¨íì¬, Hibernate <literal>Session</literal>ì íë ë"
+"ë ì¬ë¬ ê°ì ë°ì´í°ë² ì´ì¤ ì¤í¼ë ì´ì
ë¤ì ì¤íìí¤ëë° ì¬ì©ë ì ìëê°? ìì "
+"ìì ë íëì ì¤í¼ë ì´ì
ì í ê°ì <literal>Session</literal>ì ì¬ì©íê³ ì"
+"ë¤. ì´ê²ì ìì§í ì¼ì¹ì´ë©°, ìì ë ì´ë¤ ë¤ë¥¸ ì ê·¼ë²ì ë³´ì¬ì£¼ê¸°ìë 충ë¶í ë³µ"
+"ì¡íì§ ìë¤. Hibernate <literal>Session</literal>ì scope(ìì)ì ì ì°íì§ë§ "
+"ë¹ì ì ê²°ì½ <emphasis>모ë </emphasis> ë°ì´í°ë² ì´ì¤ ì¤í¼ë ì´ì
ê°ê°ì ëí´ ì"
+"ë¡ì´ Hibernate <literal>Session</literal>ì ì¬ì©íëë¡ ë¹ì ì ì´í리ì¼ì´ì
ì "
+"ì¤ê³í ì ìë¤. ë°ë¼ì ì¬ì§ì´ ë¹ì ì´ ë¤ìì (ë§¤ì° ì¬ìí) ìì ë¤ìì ì¬ë¬ ë² "
+"ê·¸ê²ì ë³¼ ì ììì§ë¼ë <emphasis>session-per-operation</emphasis>ì íëì "
+"ìí°-í¨í´ì¼ë¡ ê°ì£¼íë¼. ì¤ì (ì¹) ì´í리ì¼ì´ì
ì ì´ íí 리ì¼ì ë·ë¶ë¶ì ë³´ì¬"
+"ì§ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"See <xref linkend=\"transactions\" /> for more information about transaction "
+"handling and demarcation. The previous example also skipped any error "
+"handling and rollback."
+msgstr ""
+"í¸ëìì
í¸ë¤ë§ê³¼ ê²½ê³êµ¬ë¶ì ëí ì¶ê° ì ë³´ë <xref linkend=\"transactions\"/"
+">ì ì´í´ë³´ë¼. ì°ë¦¬ë ëí ìì ìì ìì ììì ì¤ë¥ ì²ë¦¬ì 롤백ì ìëµíë¤."
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You should see Hibernate starting up and, depending on your configuration, "
+"lots of log output. Towards the end, the following line will be displayed:"
+msgstr ""
+"ì»´íì¼, 구ì±ì ë°ë¥¸ Hibernate ìì íì, ë¹ì ì ë§ì ë¡ê·¸ ì¶ë ¥ì ë³´ê² ë ê²ì´"
+"ë¤. ëìì ë¹ì ì ë¤ì ë¼ì¸ì ë°ê²¬í ê²ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr ""
+"ì´ì ì°ë¦¬ë ë§ì°¬ê°ì§ë¡ ì ì¥ë ì´ë²¤í¸ë¤ì ì´ê±°íê³ ì ìíë©°, ì°ë¦¬ë main ë©ì"
+"ëì í ê°ì ìµì
ì ì¶ê°íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+msgstr ""
+"ì°ë¦¬ë ëí ìë¡ì´ <literal>listEvents() method</literal> ë©ìë를 ì¶ê° ìí¨"
+"ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Here, we are using a Hibernate Query Language (HQL) query to load all "
+"existing <literal>Event</literal> objects from the database. Hibernate will "
+"generate the appropriate SQL, send it to the database and populate "
+"<literal>Event</literal> objects with the data. You can create more complex "
+"queries with HQL. See <xref linkend=\"queryhql\" /> for more information."
+msgstr ""
+"ì¬ê¸°ì ì°ë¦¬ê° íí ê²ì ë°ì´í°ë² ì´ì¤ë¡ë¶í° 모ë ì¡´ì¬íë <literal>Event</"
+"literal> ê°ì²´ë¤ì ë¡ëìí¤ê¸° ìí´ HQL (Hibernate Query Language) ì§ì를 ì¬ì©"
+"íë ê²ì´ë¤. Hibernateë ì ì í SQLì ìì±ìí¬ ê²ì´ê³ , ê·¸ê²ì ë°ì´í°ë² ì´ì¤ë¡ "
+"ì ì¡íê³ ë°ì´í°ë¥¼ <literal>Event</literal> ê°ì²´ë¤ì 거주ìí¬ ê²ì´ë¤. ë¹ì ì "
+"ë¬¼ë¡ HQLë¡ì ë³´ë¤ ë³µì¡í ì§ìë¤ì ìì±ìí¬ ì ìë¤."
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr "íí¸ 2 - ì°ê´ë¤ì 매íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"So far we have mapped a single persistent entity class to a table in "
+"isolation. Let's expand on that a bit and add some class associations. We "
+"will add people to the application and store a list of events in which they "
+"participate."
+msgstr ""
+"ì°ë¦¬ë í ê°ì ìì ìí°í° í´ëì¤ë¥¼ í ê°ì í
ì´ë¸ë¡ 매ííë¤. ì´ê² ììì ë¹"
+"ëíê³ ëªëª í´ëì¤ ì°ê´ë¤ì ì¶ê°ìí¤ì. 먼ì ì°ë¦¬ë ì°ë¦¬ì ì´í리ì¼ì´ì
ì ì¬"
+"ëë¤ì ì¶ê°íê³ ê·¸ë¤ì´ ì°¸ì¬íë ì´ë²¤í¸ë¤ì 목ë¡ì ì ì¥í ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr "Person í´ëì¤ ë§¤íí기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr "í´ëì¤ì 첫 ë²ì§¸ ì¥ë©´ì ê°ë¨íë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
+"domain/Person.java</filename>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr "ë§ì§ë§ì¼ë¡ ìë¡ì´ 매íì Hibernateì 구ì±ì ì¶ê°íë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Create an association between these two entities. Persons can participate in "
+"events, and events have participants. The design questions you have to deal "
+"with are: directionality, multiplicity, and collection behavior."
+msgstr ""
+"ì´ì ì°ë¦¬ë ì´ë¤ ë ê°ì ìí°í°ë¤ ì¬ì´ì í ê°ì ì°ê´ì ìì±ìí¬ ê²ì´ë¤. ëª
ë°±"
+"íê², ê°ì¸ë¤ì ì´ë²¤í¸ë¤ì ì°¸ì¬í ì ìê³ , ì´ë²¤í¸ë¤ì ì°¸ì¬ìë¤ì ê°ëë¤. ì°ë¦¬"
+"ê° ë¤ë£¨ì´ì¼ íë ì¤ê³ ì§ë¬¸ë¤ì ë¤ìê³¼ ê°ë¤ : ë°©í¥ì±(directionality), ë¤ì¤ì±"
+"(multiplicity), ê·¸ë¦¬ê³ ì½ë ì
í¹ì§."
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr "ë¨ë°©í¥ Set-기ë°ì ì°ê´"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"By adding a collection of events to the <literal>Person</literal> class, you "
+"can easily navigate to the events for a particular person, without executing "
+"an explicit query - by calling <literal>Person#getEvents</literal>. Multi-"
+"valued associations are represented in Hibernate by one of the Java "
+"Collection Framework contracts; here we choose a <interfacename>java.util."
+"Set</interfacename> because the collection will not contain duplicate "
+"elements and the ordering is not relevant to our examples:"
+msgstr ""
+"ì°ë¦¬ë <literal>Person</literal> í´ëì¤ì ì´ë²¤í¸ë¤ì ê°ì§ í ê°ì ì½ë ì
ì ì¶"
+"ê°í ê²ì´ë¤. ê·¸ ë°©ë²ì¼ë¡ ì°ë¦¬ë ëª
ìì ì¸ ì§ì-<literal>aPerson.getEvents()</"
+"literal>를 í¸ì¶í¨ì¼ë¡ì¨-를 ì¤íìí¤ì§ ìê³ ì í¹ì ê°ì¸ì ëí ì´ë²¤í¸ë¤ì ì½"
+"ê² ë¤ë¹ê²ì´í¸í ì ìë¤. ì°ë¦¬ë íëì Java ì½ë ì
, íëì <literal>Set</"
+"literal>를 ì¬ì©íë¤. ìëíë©´ ê·¸ ì½ë ì
ì ì¤ë³µ ììë¤ì í¬í¨í기 ìì ê²ì´ê³ "
+"ê·¸ ììê° ì°ë¦¬ì ê´ë ¨ëì´ ìì§ ì기 ë문ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Before mapping this association, let's consider the other side. We could "
+"just keep this unidirectional or create another collection on the "
+"<literal>Event</literal>, if we wanted to be able to navigate it from both "
+"directions. This is not necessary, from a functional perspective. You can "
+"always execute an explicit query to retrieve the participants for a "
+"particular event. This is a design choice left to you, but what is clear "
+"from this discussion is the multiplicity of the association: \"many\" valued "
+"on both sides is called a <emphasis>many-to-many</emphasis> association. "
+"Hence, we use Hibernate's many-to-many mapping:"
+msgstr ""
+"ì°ë¦¬ê° ì´ ì°ê´ì 매íí기 ì ì, ë¤ë¥¸ 측ì ëí´ ìê°íë¼. ëª
ë°±íê² ì°ë¦¬ë ì´ê²"
+"ì ë¨ì§ ë¨ë°©í¥ì¼ë¡ ì ì§ìí¬ ì ìë¤. ëë ì°ë¦¬ê° ê·¸ê²ì ìë°©í¥ì¼ë¡ ë¤ë¹ê²ì´í¸"
+"íë ê²-ì를 ë¤ì´ <literal>anEvent.getParticipants()</literal>-ì´ ê°ë¥íëë¡ "
+"ìí ê²½ì°ì, <literal>Event</literal>측 ìì ë ë¤ë¥¸ ì½ë ì
ì ìì±ìí¬ ì ì"
+"ë¤. ì´ê²ì ë¹ì ìê² ë¨ê²¨ì§ ì¤ê³ ì íì´ì§ë§, ì´ ë
¼ììì ëª
ë£í ì ì ì°ê´ì ë¤"
+"ì¤ì±ì´ë¤: ì 측 ììì \"ë¤ì¤\" ê°ì ê°ë ê²½ì°, ì°ë¦¬ë ì´ê²ì <emphasis>many-"
+"to-many</emphasis> ì°ê´ì´ë¼ê³ ëª
ëª
íë¤. ê·¸ë¬ë¯ë¡ ì°ë¦¬ë Hibernateì many-to-"
+"many 매íì ì¬ì©íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate supports a broad range of collection mappings, a <literal>set</"
+"literal> being most common. For a many-to-many association, or <emphasis>n:"
+"m</emphasis> entity relationship, an association table is required. Each row "
+"in this table represents a link between a person and an event. The table "
+"name is decalred using the <literal>table</literal> attribute of the "
+"<literal>set</literal> element. The identifier column name in the "
+"association, for the person side, is defined with the <literal>key</literal> "
+"element, the column name for the event's side with the <literal>column</"
+"literal> attribute of the <literal>many-to-many</literal>. You also have to "
+"tell Hibernate the class of the objects in your collection (the class on the "
+"other side of the collection of references)."
+msgstr ""
+"Hibernateë 모ë ì¢
ë¥ì ì½ë ì
매íë¤, ê°ì¥ ê³µíµì ì¸ <literal><set></"
+"literal>ì ì§ìíë¤. many-to-many ì°ê´ (ëë <emphasis>n:m</emphasis> ìí°í° "
+"ê´ê³)ì ê²½ì°, í ê°ì ì°ê´ í
ì´ë¸ì´ íìíë¤. ì´ í
ì´ë¸ ë´ì ìë ê°ê°ì í"
+"ì í ëª
ì ê°ì¸ê³¼ í ê°ì ì´ë²¤í¸ ì¬ì´ì ë§í¬ë¥¼ íííë¤. í
ì´ë¸ ì´ë¦ì "
+"<literal>set</literal> ììì <literal>table</literal> ìì±ì¼ë¡ 구ì±ëë¤. ì°"
+"ê´ ë´ì ìë³ì ì»¬ë¼ ì´ë¦ì ê°ì¸ 측ì ëí´ <literal><key></literal> ìì"
+"ë¡ ì ìëê³ ì´ë²¤í¸ 측ì ëí ì»¬ë¼ ì´ë¦ì <literal><many-to-many></"
+"literal>ì <literal>column</literal> ìì±ì¼ë¡ ì ìëë¤. ë¹ì ì ëí ë¹ì ì ì½"
+"ë ì
ë´ì ìë ê°ì²´ë¤ì í´ëì¤(ì ííê² : 참조ë¤ì ê°ì§ ì½ë ì
ì ë¤ë¥¸ 측 ì"
+"ì ìë í´ëì¤)를 Hibernateìê² ìë ¤ì£¼ì´ì¼ íë¤."
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr "ë°ë¼ì ì´ ë§¤íì ìí ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ë ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr "ì°ê´ë¤ì ìì
í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now we will bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
+msgstr ""
+"<literal>EventManager</literal> ìì ìë í ê°ì ìë¡ì´ ë©ìë ë´ì ëªëª ì¬"
+"ëë¤ê³¼ ì´ë²¤í¸ë¤ì í¨ê» ê°ì ¸ì¤ì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"After loading a <literal>Person</literal> and an <literal>Event</literal>, "
+"simply modify the collection using the normal collection methods. There is "
+"no explicit call to <literal>update()</literal> or <literal>save()</"
+"literal>; Hibernate automatically detects that the collection has been "
+"modified and needs to be updated. This is called <emphasis>automatic dirty "
+"checking</emphasis>. You can also try it by modifying the name or the date "
+"property of any of your objects. As long as they are in "
+"<emphasis>persistent</emphasis> state, that is, bound to a particular "
+"Hibernate <interfacename>org.hibernate.Session</interfacename>, Hibernate "
+"monitors any changes and executes SQL in a write-behind fashion. The process "
+"of synchronizing the memory state with the database, usually only at the end "
+"of a unit of work, is called <emphasis>flushing</emphasis>. In our code, the "
+"unit of work ends with a commit, or rollback, of the database transaction."
+msgstr ""
+"<literal>Person</literal>ê³¼ <literal>Event</literal>를 ë¡ëìí¨ íì, ì ê· ì½"
+"ë ì
ë©ìëë¤ì ì¬ì©íì¬ ì½ë ì
ì ê°ë¨íê² ë³ê²½íë¼. ë¹ì ì´ ì ì ìë¯ì´, "
+"<literal>update()</literal> ëë <literal>save()</literal>ì ëí ëª
ìì ì¸ í¸"
+"ì¶ì´ ì¡´ì¬íì§ ìê³ , ë³ê²½ëìê³ ì ì¥í íìê° ìë ì½ë ì
ì Hibernateê° ìëì "
+"ì¼ë¡ ê²ì¶í´ë¸ë¤. ì´ê²ì <emphasis>ìëì ì¸ dirty ì²´í¹</emphasis>ì´ë¼ ë¶ë ¤ì§"
+"ë©°, ë¹ì ì ëí ë¹ì ì ììì ê°ì²´ë¤ì ëí name ëë date íë¡í¼í°ë¥¼ ë³ê²½í¨"
+"ì¼ë¡ì¨ ê·¸ê²ì ìëí ì ìë¤. ê·¸ê²ë¤ì´ <emphasis>ìì(persistent)</emphasis> "
+"ìíì ìë ëì, ì¦ í¹ì Hibernate <literal>Session</literal>ì ë°ì¸ëëì´ "
+"ìë ëì(ì를 ë¤ë©´. ê·¸ê²ë¤ì ìì
ë¨ì ìì ë°©ê¸ ë¡ëëìê±°ë ì ì¥ëìë¤), "
+"Hibernateë ììì ë³ê²½ë¤ì 모ëí°ë§íê³ ì°ê¸° ì´ë©´ì ííë¡ SQLì ì¤íìí¨"
+"ë¤. ë©ëª¨ë¦¬ ìí를 ë°ì´í°ë² ì´ì¤ì ë기í ìí¤ë ê³¼ì ì ëê° ì¤ì§ ìì
ë¨ìì "
+"ëììì´ê³ , <emphasis>flushing</emphasis>ì´ë¼ ëª
ëª
ëë¤. ì°ë¦¬ì ì½ëìì, ì"
+"ì
ë¨ìë <literal>CurrentSessionContext</literal> í´ëì¤ì ëí "
+"<literal>thread</literal> êµ¬ì± ìµì
ì ìí´ ì ìë ëë¡ - ë°ì´í°ë² ì´ì¤ í¸ëì"
+"ì
ì 커ë°(ëë 롤백)ì¼ë¡ ëì´ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can load person and event in different units of work. Or you can modify "
+"an object outside of a <interfacename>org.hibernate.Session</interfacename>, "
+"when it is not in persistent state (if it was persistent before, this state "
+"is called <emphasis>detached</emphasis>). You can even modify a collection "
+"when it is detached:"
+msgstr ""
+"ë¬¼ë¡ ë¹ì ì ë¤ë¥¸ ìì
ë¨ì ìì ê°ì¸ê³¼ ì´ë²¤í¸ë¥¼ ë¡ëìí¬ ì ë ìë¤. ëë ë¹"
+"ì ì íëì ê°ì²´ê·¸ ìì ìíì ìì§ ìì ë <literal>Session</literal>ì ì¸ë¶"
+"ìì ê°ì²´ë¥¼ ë³ê²½ìí¬ ìë ìë¤(ë§ì¼ ê°ì²´ê° ì´ì ì ììí ëìë¤ë©´, ì°ë¦¬ë ì´ "
+"ìí를 <emphasis>detached</emphasis>ë¼ê³ ë¶ë¥¸ë¤). (ë§¤ì° ì¬ì¤ì ì´ì§ ìì) ì½"
+"ë ë´ìì ì´ê²ì ë¤ìê³¼ ê°ì ì ìë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The call to <literal>update</literal> makes a detached object persistent "
+"again by binding it to a new unit of work, so any modifications you made to "
+"it while detached can be saved to the database. This includes any "
+"modifications (additions/deletions) you made to a collection of that entity "
+"object."
+msgstr ""
+"<literal>update</literal>ì ëí í¸ì¶ì í ê°ì detached ê°ì²´ë¥¼ ë¤ì ììí "
+"ìí¤ê³ , ë¹ì ì ê·¸ê²ì´ ìë¡ì´ ìì
ë¨ìì ë°ì¸ëëë¤ê³ ë§í ì ìê³ , ë°ë¼ì "
+"detached ëìì ë¹ì ì´ ê·¸ê²ì ëí´ íí ììì ë³ê²½ë¤ì´ ë°ì´í°ë² ì´ì¤ì ì ì¥"
+"ë ì ìë¤. ì´ê²ì ë¹ì ì´ ê·¸ ìí°í° ê°ì²´ì ì½ë ì
ì ëí´ ííë ììì ë³ê²½ë¤"
+"(ì¶ê°/ìì )를 í¬í¨íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is not much use in our example, but it is an important concept you can "
+"incorporate into your own application. Complete this exercise by adding a "
+"new action to the main method of the <literal>EventManager</literal> and "
+"call it from the command line. If you need the identifiers of a person and "
+"an event - the <literal>save()</literal> method returns it (you might have "
+"to modify some of the previous methods to return that identifier):"
+msgstr ""
+"ë¬¼ë¡ , ì°ë¦¬ì íì¬ ìí©ìì ì´ê²ì ë§ì´ ì¬ì©ëì§ ìì§ë§, ê·¸ê²ì ë¹ì ì´ ë¹ì ì"
+"ì ì ì´í리ì¼ì´ì
ë´ë¡ ì¤ê³í ì ìë ì¤ìí ê°ë
ì´ë¤. ì§ê¸ "
+"<literal>EventManager</literal>ì main ë©ìëì í ê°ì ìë¡ì´ ì¡ì
ì ì¶ê°í"
+"ê³ ëª
ë ¹ ë¼ì¸ìì ê·¸ê²ì í¸ì¶íì¬ ì´ ì°ìµì ìë£íë¼. ë§ì¼ ë¹ì ì´ íëª
ì ê°ì¸"
+"ê³¼ í ê°ì ì´ë²¤í¸ì ëí ìë³ìë¤ì íìë¡ í ê²½ì° - <literal>save()</"
+"literal> ë©ìëê° ê·¸ê²ì ë°íìí¨ë¤(ë¹ì ì ê·¸ ìë³ì를 ë°íìí¤ë ìì ë©ìë"
+"ë¤ ì¤ ëªëªì ë³ê²½ìì¼ì¼ í ê²ì´ë¤):"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This is an example of an association between two equally important classes : "
+"two entities. As mentioned earlier, there are other classes and types in a "
+"typical model, usually \"less important\". Some you have already seen, like "
+"an <literal>int</literal> or a <classname>java.lang.String</classname>. We "
+"call these classes <emphasis>value types</emphasis>, and their instances "
+"<emphasis>depend</emphasis> on a particular entity. Instances of these types "
+"do not have their own identity, nor are they shared between entities. Two "
+"persons do not reference the same <literal>firstname</literal> object, even "
+"if they have the same first name. Value types cannot only be found in the "
+"JDK , but you can also write dependent classes yourself such as an "
+"<literal>Address</literal> or <literal>MonetaryAmount</literal> class. In "
+"fact, in a Hibernate application all JDK classes are considered value types."
+msgstr ""
+"ì´ê²ì ë ê°ì ëë±íê² ì¤ìí í´ëì¤ë¤, ë ê°ì ìí°í°ë¤ ì¬ì´ìì í ê°ì ì°"
+"ê´ì ê´í ìì ìë¤. ìì ì¸ê¸íë¯ì´, ì íì ì¸ ëª¨í ë´ìë ë¤ë¥¸ í´ëì¤ë¤ê³¼ í"
+"ì´ë¤ì´ ì¡´ì¬íëë°, ëê° \"ë ì¤ìíë¤\". ë¹ì ì ì´ë¯¸ <literal>int</literal> "
+"ëë <literal>String</literal>ê³¼ ê°ì ì´ë¤ ê²ì ì´ë¯¸ ë³´ìë¤. ì°ë¦¬ë ì´ë¤ í´ë"
+"ì¤ë¤ì <emphasis>ê° íì
ë¤(value types)</emphasis>ì´ë¼ ëª
ëª
íê³ , ê·¸ë¤ ì¸ì¤í´"
+"ì¤ë¤ì í¹ì ìí°í°ì <emphasis>ìì¡´íë¤(depend)</emphasis>. ì´ë¤ íì
ë¤ì ê°"
+"ì§ ì¸ì¤í´ì¤ë¤ì ê·¸ê²ë¤ ìì ì ìë³ì±(identity)를 ê°ì§ ìê±°ë, ê·¸ê²ë¤ì ìí°í°"
+"ë¤ ì¬ì´ìì ê³µì ëì§ë ìëë¤(ëê°ì personë¤ì ì¬ì§ì´ ê·¸ê²ë¤ì´ ê°ì 첫 ë²ì§¸ "
+"ì´ë¦ì ê°ë ê²½ì°ìë ëì¼í <literal>firstname</literal>ì 참조íì§ ìë"
+"ë¤ ). ë¬¼ë¡ ê° íì
ë¤ì JDK ë´ìì ë°ê²¬ë ë¿ë§ ìëë¼(ì¬ì¤, Hibernate ì´í리ì¼"
+"ì´ì
ìì 모ë JDK í´ëì¤ë¤ì ê° íì
ë¤ë¡ ê°ì£¼ëë¤), ë¹ì ì ëí ë¹ì ì¤ì¤ë¡ "
+"ì¢
ì í´ëì¤ë¤, ì를 ë¤ë©´ <literal>Address</literal> ëë "
+"<literal>MonetaryAmount</literal>ì ìì±í ì ìë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also design a collection of value types. This is conceptually "
+"different from a collection of references to other entities, but looks "
+"almost the same in Java."
+msgstr ""
+"ë¹ì ì ëí ê° íì
ë¤ì ì¤ê³í ì ìë¤. ì´ê²ì ë¤ë¥¸ ìí°í°ë¤ì ëí 참조ë¤ì "
+"ê°ì§ ì½ë ì
ê³¼ë ê°ë
ì ì¼ë¡ ë§¤ì° ë¤ë¥´ì§ë§, Javaììë ëê° ëì¼í ê²ì¼ë¡ ë³´ì¬"
+"ì§ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr "ê°ë¤ì ê°ì§ ì½ë ì
"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr "ì´ <literal>Set</literal>ì ëí 매íì ë¤ìê³¼ ê°ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The difference compared with the earlier mapping is the use of the "
+"<literal>element</literal> part which tells Hibernate that the collection "
+"does not contain references to another entity, but is rather a collection "
+"whose elements are values types, here specifically of type <literal>string</"
+"literal>. The lowercase name tells you it is a Hibernate mapping type/"
+"converter. Again the <literal>table</literal> attribute of the <literal>set</"
+"literal> element determines the table name for the collection. The "
+"<literal>key</literal> element defines the foreign-key column name in the "
+"collection table. The <literal>column</literal> attribute in the "
+"<literal>element</literal> element defines the column name where the email "
+"address values will actually be stored."
+msgstr ""
+"ìì 매íê³¼ ë¹êµí ì°¨ì´ì ì <literal>element</literal> ë¶ë¶ì¸ë°, ê·¸ê²ì ê·¸ ì½"
+"ë ì
ì´ ë ë¤ë¥¸ ìí°í°ì ëí 참조ë¤ì í¬í¨íì§ ìì ê²ì´ì§ë§ "
+"<literal>String</literal>(ì문ì ì´ë¦ì ê·¸ê²ì´ Hibernate 매í íì
/ë³íìì"
+"ì ë¹ì ìê² ë§í´ì¤ë¤) íì
ì ììë¤ì ê°ì§ í ê°ì ì½ë ì
ì í¬í¨í ê²ìì "
+"Hibernateìê² ìë ¤ì¤ë¤. ì¼ë¨ ë¤ì <literal>set</literal> ììì "
+"<literal>table</literal> ìì±ì ê·¸ ì½ë ì
ì ëí í
ì´ë¸ ì´ë¦ì ê²°ì íë¤. "
+"<literal>key</literal> ììë ì½ë ì
í
ì´ë¸ ë´ìì foreign-key ì»¬ë¼ ì´ë¦ì ì "
+"ìíë¤. <literal>element</literal> ìì ë´ì ìë <literal>column</literal> "
+"ìì±ì <literal>String</literal> ê°ë¤ì´ ì¤ì ë¡ ì ì¥ë ì»¬ë¼ ì´ë¦ì ì ìíë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "Here is the updated schema:"
+msgstr "ì
ë°ì´í¸ë ì¤í¤ë§ë¥¼ ì´í´ë³´ë¼:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can see that the primary key of the collection table is in fact a "
+"composite key that uses both columns. This also implies that there cannot be "
+"duplicate email addresses per person, which is exactly the semantics we need "
+"for a set in Java."
+msgstr ""
+"ë¹ì ì ì½ë ì
í
ì´ë¸ì íë¼ì´ë¨¸ë¦¬ í¤ê° ì¬ì¤ì ë 컬ë¼ë¤ì ì¬ì©íë í ê°ì í©"
+"ì± í¤(composite key)ìì ì ì ìë¤. ì´ê²ì ëí ê°ì¸ì ëí´ email 주ìê° ì¤"
+"ë³µë ì ììì ì미íë©°, ê·¸ê²ì ì ííê² ì°ë¦¬ê° Javaìì setì íìë¡ íë ì"
+"ë¯¸ë¡ ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can now try to add elements to this collection, just like we did before "
+"by linking persons and events. It is the same code in Java:"
+msgstr ""
+"ë§ì¹ ê°ì¸ë¤ê³¼ ì´ë²¤í¸ë¤ì ë§í¬ìì¼ì ì´ì ì ì°ë¦¬ê° ííë ê²ì²ë¼ ì´ì ë¹ì ì "
+"ììë¤ì ìëíê³ ì´ ì½ë ì
ì ì¶ê°í ì ìë¤. ê·¸ê²ì Javaìì ëì¼í ì½ëì´"
+"ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This time we did not use a <emphasis>fetch</emphasis> query to initialize "
+"the collection. Monitor the SQL log and try to optimize this with an eager "
+"fetch."
+msgstr ""
+"ì§ê¸ ì°ë¦¬ë ì½ë ì
ì ì´ê¸°í ìí¤ëë° <emphasis>fetch</emphasis> ì§ì를 ì¬ì©í"
+"ì§ ììë¤. ê·¸ë¬ë¯ë¡ ì½ë ì
ì getter ë©ìëì ëí í¸ì¶ì ì½ë ì
ì ì´ê¸°í ìí¤"
+"기 ìí´ ì¶ê°ì ì¸ select를 í¸ë¦¬ê±° ìí¬ ê²ì´ì´ì, ì°ë¦¬ë ê·¸ê²ì ìì를 ì¶ê°ì"
+"í¬ ì ìë¤. SQL ë¡ê·¸ë¥¼ ê´ì°°íê³ ì´ê²ì eager fetchë¡ ìµì í ìí¤ë ¤ê³ ìëí"
+"ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr "Bi-directional associations"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next you will map a bi-directional association. You will make the "
+"association between person and event work from both sides in Java. The "
+"database schema does not change, so you will still have many-to-many "
+"multiplicity."
+msgstr ""
+"ë¤ìì¼ë¡ ì°ë¦¬ë ìë°©í¥ ì°ê´ì 매íìí¬ ìì ì´ë¤-ê°ì¸ê³¼ ì´ë²¤í¸ ì¬ì´ì ì°ê´ì "
+"ë§ëë ê²ì Javaìì ì 측ë¤ìì ëìíë¤. ë¬¼ë¡ ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ë ë³ê²½ë"
+"ì§ ìê³ , ì°ë¦¬ë ì¬ì í many-to-many ë¤ì¤ì±ì ê°ëë¤. ê´ê³í ë°ì´í°ë² ì´ì¤ë ë¤"
+"í¸ì íë¡ê·¸ëë° ì¸ì´ ë³´ë¤ í¨ì¬ ë ì ì°íì¬ì, ê·¸ê²ì ë¤ë¹ê²ì´ì
ë°©í¥ê³¼ ê°ì "
+"ì´ë¤ ê²ì íìë¡ íì§ ìëë¤ - ë°ì´í°ë ì´ë¤ ê°ë¥í ë°ì
ã
ì¼ë¡ ë³´ì¬ì§ ì ì"
+"ê³ ê²ìë ì ìë¤."
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"class:"
+msgstr ""
+"먼ì , ì°¸ì¬ìë¤ì ê°ì§ í ê°ì ì½ë ì
ì <literal>Event</literal> Event í´ëì¤"
+"ì ì¶ê°ìì¼ë¼:"
+
+#. Tag: para
+#, 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: para
+#, fuzzy, no-c-format
+msgid ""
+"These are normal <literal>set</literal> mappings in both mapping documents. "
+"Notice that the column names in <literal>key</literal> and <literal>many-to-"
+"many</literal> swap in both mapping documents. The most important addition "
+"here is the <literal>inverse=\"true\"</literal> attribute in the "
+"<literal>set</literal> element of the <literal>Event</literal>'s collection "
+"mapping."
+msgstr ""
+"ë¹ì ì´ ë³¼ ì ìë¯ì´, ì´ê²ë¤ì ë 매í 문ìë¤ ë´ìì ì ê· <literal>set</"
+"literal> 매íë¤ì´ë¤. <literal>key</literal>ì <literal>many-to-many</literal>"
+"ìì ì»¬ë¼ ì´ë¦ë¤ì ë 매í 문ìë¤ìì ë°ëì´ì§ë¤. ì¬ê¸°ì ê°ì¥ ì¤ìí ë¶ê°ë¬¼"
+"ì <literal>Event</literal>ì ì½ë ì
매íì ê´í <literal>set</literal> ìì "
+"ë´ì ìë <literal>inverse=\"true\"</literal> ìì±ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What this means is that Hibernate should take the other side, the "
+"<literal>Person</literal> class, when it needs to find out information about "
+"the link between the two. This will be a lot easier to understand once you "
+"see how the bi-directional link between our two entities is created."
+msgstr ""
+"ì´ê²ì´ ì미íë ë°ë Hibernateê° ë ì¬ì´ì ë§í¬ì ëí ì 보를 ì íìê° ìì "
+"ë ë¤ë¥¸ 측-<literal>Person</literal> í´ëì¤-를 ì·¨í ê²ì´ë¼ë ì ì´ë¤. ì¼ë¨ ë¹"
+"ì ì´ ì°ë¦¬ì ë ìí°í°ë¤ ì¬ì´ì ìë°©í¥ ë§í¬ê° ìì±ëë ë°©ë²ì ìë¤ë©´ ì´ê²ì ì´"
+"í´íê¸°ê° í¨ì¬ ë ì¬ì¸ ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr "ìë°©í¥ ë§í¬ë¤ì ìì
í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First, keep in mind that Hibernate does not affect normal Java semantics. "
+"How did we create a link between a <literal>Person</literal> and an "
+"<literal>Event</literal> in the unidirectional example? You add an instance "
+"of <literal>Event</literal> to the collection of event references, of an "
+"instance of <literal>Person</literal>. If you want to make this link bi-"
+"directional, you have to do the same on the other side by adding a "
+"<literal>Person</literal> reference to the collection in an <literal>Event</"
+"literal>. This process of \"setting the link on both sides\" is absolutely "
+"necessary with bi-directional links."
+msgstr ""
+"첫 ë²ì§¸ë¡ Hibernateê° ì ê· Java ìë¯¸ë¡ ì ìí¥ì ì£¼ì§ ììì ì¼ëì ëë¼. ì°ë¦¬"
+"ë ë¨ë°©í¥ ìì ìì <literal>Person</literal>ê³¼ <literal>Event</literal> ì¬ì´"
+"ì ì´ë»ê² í ê°ì ë§í¬ë¥¼ ìì±ìì¼°ëê°? ì°ë¦¬ë <literal>Event</literal> íì
"
+"ì ì¸ì¤í´ì¤ë¥¼ <literal>Person</literal> íì
ì ì´ë²¤í¸ 참조ë¤ì ê°ì§ ì½ë ì
ì "
+"ì¶ê°ìì¼°ë¤. ë°ë¼ì ëª
ë°±íê² ì°ë¦¬ê° ì´ ë§í¬ë¥¼ ìë°©í¥ì¼ë¡ ëìíëë¡ ë§ë¤ê³ ì "
+"ìíë¤ë©´, ì°ë¦¬ë ë¤ë¥¸ 측 ììì -íëì <literal>Person</literal> 참조를 íë"
+"ì <literal>Event</literal> ë´ì ìë ì½ë ì
ì ì¶ê°ìí´ì¼ë¡ì¨- ëì¼í ê²ì í"
+"í´ì¼ íë¤. ì´ \"ì 측 ìì ë§í¬ ì¤ì í기\"ë ì ëì ì¼ë¡ íìì ì´ê³ ë¹ì ì ê·¸"
+"ê²ì ííë ê²ì ê²°ì½ ìì§ ë§ìì¼ íë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Many developers program defensively and create link management methods to "
+"correctly set both sides (for example, in <literal>Person</literal>):"
+msgstr ""
+"ë§ì ê°ë°ìë¤ì ë°©ë¹ì±
ì íë¡ê·¸ë¨íê³ ì 측ë¤ì ì ííê² ì¤ì í기 ìí íë"
+"ì ë§í¬ ê´ë¦¬ ë©ìëë¤ì ìì±ìí¨ë¤. ì를 ë¤ë©´ <literal>Person</literal>ìì :"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The get and set methods for the collection are now protected. This allows "
+"classes in the same package and subclasses to still access the methods, but "
+"prevents everybody else from altering the collections directly. Repeat the "
+"steps for the collection on the other side."
+msgstr ""
+"ì½ë ì
ì ëí get ë° set ë©ìëëì ì´ì protectedìì ì¸ì§íë¼ - ì´ê²ì ëì¼"
+"í í¨í¤ì§ ë´ì ìë í´ëì¤ë¤ê³¼ ìë¸í´ëì¤ë¤ì´ ê·¸ ë©ìëë¤ì ì ê·¼íë ê²ì í"
+"ì©í´ì£¼ì§ë§, ê·¸ ë°ì 모ë ê²ë¤ì´ ê·¸ ì½ë ì
ë¤ì (ë¬¼ë¡ , ëê°) ì§ì ë§ì§ë ê²ì "
+"ê¸ì§ìí¨ë¤. ë¹ì ì ë¤ë¥¸ 측 ìì ìë ì½ë ì
ì ëí´ ëì¼í ê²ì íí ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"What about the <literal>inverse</literal> mapping attribute? For you, and "
+"for Java, a bi-directional link is simply a matter of setting the references "
+"on both sides correctly. Hibernate, however, does not have enough "
+"information to correctly arrange SQL <literal>INSERT</literal> and "
+"<literal>UPDATE</literal> statements (to avoid constraint violations). "
+"Making one side of the association <literal>inverse</literal> tells "
+"Hibernate to consider it a <emphasis>mirror</emphasis> of the other side. "
+"That is all that is necessary for Hibernate to resolve any issues that arise "
+"when transforming a directional navigation model to a SQL database schema. "
+"The rules are straightforward: all bi-directional associations need one side "
+"as <literal>inverse</literal>. In a one-to-many association it has to be the "
+"many-side, and in many-to-many association you can select either side."
+msgstr ""
+"<literal>inverse</literal> 매í ìì±ì 무ìì¸ê°? ë¹ì ì ê²½ì°, ê·¸ë¦¬ê³ Javaì "
+"ê²½ì°, í ê°ì ìë°©í¥ ë§í¬ë ë¨ìí ì 측ë¤ì ëí 참조ë¤ì ì ííê² ì¤ì íë "
+"문ì ì´ë¤. íì§ë§ Hibernateë (컨ì¤í¸ë ì¸í¸ ì배를 í¼í기 ìí´ì) SQL "
+"<literal>INSERT</literal> 문ì¥ê³¼ <literal>UPDATE</literal> 문ì¥ì ì ííê² ë§"
+"ë ¨í기ì 충ë¶í ì 보를 ê°ê³ ìì§ ìì¼ë©°, ìë°©í¥ ì°ê´ë¤ì ì¬ë°ë¥´ê² ì²ë¦¬í기 ì"
+"í´ ì´ë¤ ëìì íìë¡ íë¤. ì°ê´ì í 측ì <literal>inverse</literal>ë¡ ë§ë"
+"ë ê²ì 기본ì ì¼ë¡ ê·¸ê²ì 무ìíê³ ê·¸ê²ì ë¤ë¥¸ 측ì <emphasis>ê±°ì¸(mirror)</"
+"emphasis>ë¡ ê°ì£¼íëë¡ Hibernateìê² ìë ¤ì¤ë¤. ê·¸ê²ì Hibernateê° íëì ë°©í¥"
+"ì± ë¤ë¹ê²ì´ì
모íì í ê°ì SQL ì¤í¤ë§ë¡ ë³íìí¬ ë 모ë ìì ë¤ì ì í´ê²°í"
+"ëë° íìì ì¸ ëª¨ë ê²ì´ë¤. ë¹ì ì´ ì¼ëì ëì´ì¼ íë ê·ì¹ë¤ì ê°ë¨íë¤ : 모"
+"ë ìë°©í¥ ì°ê´ë¤ì í ìª½ì´ <literal>inverse</literal>ì¼ íìê° ìë¤. one-to-"
+"many ì°ê´ìì ê·¸ê²ì many-측ì´ì´ì¼ íê³ , many-to-many ì°ê´ìì ë¹ì ì ì´ë 측"
+"ì´ë ì íí ì ìì¼ë©° ì°¨ì´ì ì ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr "íí¸ 3 - EventManager ì¹ ì´í리ì¼ì´ì
"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A Hibernate web application uses <literal>Session</literal> and "
+"<literal>Transaction</literal> almost like a standalone application. "
+"However, some common patterns are useful. You can now write an "
+"<literal>EventManagerServlet</literal>. This servlet can list all events "
+"stored in the database, and it provides an HTML form to enter new events."
+msgstr ""
+"Hibernate ì¹ ì´í리ì¼ì´ì
ì ëë¶ë¶ì ì¤í ëì¼ë¡ ì´í리ì¼ì´ì
ê³¼ ê°ì´ "
+"<literal>Session</literal>ê³¼ <literal>Transaction</literal>ì ì¬ì©íë¤. íì§"
+"ë§ ëªëª ê³µíµ í¨í´ë¤ì´ ì ì©íë¤. ì°ë¦¬ë ì´ì <literal>EventManagerServlet</"
+"literal>를 ìì±íë¤. ì´ ìë¸ë¦¿ì ë°ì´í°ë² ì´ì¤ ë´ì ì ì¥ë 모ë ì´ë²¤í¸ë¤ì ë"
+"ì´í ì ìê³ , ê·¸ê²ì ìë¡ì´ ì´ë²¤í¸ë¤ì ì
ë ¥í기 ìí HTML formì ì ê³µíë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr "기본 ìë¸ë¦¿ ìì±í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"First we need create our basic processing servlet. Since our servlet only "
+"handles HTTP <literal>GET</literal> requests, we will only implement the "
+"<literal>doGet()</literal> method:"
+msgstr ""
+"ìë¸ë¦¿ì 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The pattern applied here is called <emphasis>session-per-request</emphasis>. "
+"When a request hits the servlet, a new Hibernate <literal>Session</literal> "
+"is opened through the first call to <literal>getCurrentSession()</literal> "
+"on the <literal>SessionFactory</literal>. A database transaction is then "
+"started. All data access occurs inside a transaction irrespective of whether "
+"the data is read or written. Do not use the auto-commit mode in applications."
+msgstr ""
+"ì°ë¦¬ê° ì¬ê¸°ì ì ì©íë í¨í´ì <emphasis>session-per-request</emphasis>ì´ë¤. "
+"íëì ìì²ì´ ìë¸ë¦¿ì ëë¬í ë, íëì ìë¡ì´ Hibernate <literal>Session</"
+"literal>ì´ <literal>SessionFactory</literal> ìì <literal>getCurrentSession"
+"()</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 ""
+"모ë ë°ì´í°ë² ì´ì¤ ì¤í¼ë ì´ì
ê°ê°ì ëí´ ìë¡ì´ Hibernate <literal>Session</"
+"literal>ì ì¬ì©íì§ <emphasis>ë§ë¼</emphasis>. ì ì²´ ìì²ì ëí´ ììì§ìì§ "
+"í ê°ì Hibernate <literal>Session</literal>ì ì¬ì©íë¼. ê·¸ê²ì´ ìëì ì¼ë¡ í"
+"ì¬ì ìë° ì°ë ëì ë°ì¸ëëëë¡ <literal>getCurrentSession()</literal>ì ì¬ì©"
+"íë¼."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Next, the possible actions of the request are processed and the response "
+"HTML is rendered. We will get to that part soon."
+msgstr ""
+"ë¤ìì¼ë¡, ìì²ì ê°ë¥í ì¡ì
ë¤ì´ ì²ë¦¬ëê³ ìëµ HTMLì´ ë ëë§ëë¤. ì°ë¦¬ë 곧"
+"ì¥ ê·¸ë¶ë¶ì¼ë¡ ê° ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Finally, the unit of work ends when processing and rendering are complete. "
+"If any problems occurred during processing or rendering, an exception will "
+"be thrown and the database transaction rolled back. This completes the "
+"<literal>session-per-request</literal> pattern. Instead of the transaction "
+"demarcation code in every servlet, you could also write a servlet filter. "
+"See the Hibernate website and Wiki for more information about this pattern "
+"called <emphasis>Open Session in View</emphasis>. You will need it as soon "
+"as you consider rendering your view in JSP, not in a servlet."
+msgstr ""
+"ë§ì§ë§ì¼ë¡, íë¡ì¸ì±ê³¼ ë ëë§ì´ ìë£ë ë ìì
ë¨ìê° ì¢
ë£ëë¤. ë§ì¼ ì´ë¤ 문"
+"ì ê° íë¡ì¸ì±ê³¼ ë ëë§ ëìì ë°ìë ê²½ì°, íëì ìì¸ìí©ì´ ëì ¸ì§ ê²ì´ê³ ë°"
+"ì´í°ë² ì´ì¤ í¸ëìì
ì 롤백ë ê²ì´ë¤. ì´ê²ì <literal>session-per-request</"
+"literal>ì ìë£ìí¨ë¤. 모ë ìë¸ë¦¿ ë´ì ìë í¸ëìì
구í ì½ë ëì ì ë¹ì "
+"ì ëí ìë¸ë¦¿ íí°ë¥¼ ì¬ì©í ì ìë¤. <emphasis>Open Session in View</"
+"emphasis>ë¡ ëª
ëª
ëë ì´ í¨í´ì ëí ì¶ê° ì ë³´ë Hibernate ì¹ ì¬ì´í¸ì ìí¤ë¥¼ "
+"ë³´ë¼. ë¹ì ì ìë¸ë¦¿ ë´ììê° ìë JSP ë´ì ë¹ì ì 뷰를 ë ëë§íë ê²ì ê³ ë ¤"
+"í ë ê·¸ê²ì íìë¡ í ê²ì´ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr "íë¡ì¸ì±ê³¼ ë ëë§"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Now you can implement the processing of the request and the rendering of the "
+"page."
+msgstr "ìì²ì ì²ë¦¬ì íì´ì§ì ë ëë§ì 구ííì."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This coding style, with a mix of Java and HTML, would not scale in a more "
+"complex application—keep in mind that we are only illustrating basic "
+"Hibernate concepts in this tutorial. The code prints an HTML header and a "
+"footer. Inside this page, an HTML form for event entry and a list of all "
+"events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
+msgstr ""
+"Javaì HTMLì´ í¼í©ë ì´ ì½ë©ì´ ë³´ë¤ ë³µì¡í ì´í리ì¼ì´ì
ìì 기ì¤ì´ ë ì ì"
+"ë¤ í ì§ë¼ë, ì°ë¦¬ë ë¨ì§ ì´ íí ë¦¬ì¼ ë´ìì 기본 Hibernate ê°ë
ë¤ì ì¤ëª
íê³ "
+"ììì ì¼ëì ëë¼. ì½ëë íëì HTML í¤ëì íëì footer를 í린í¸íë¤. ì´ "
+"íì´ì§ ë´ì ì´ë²¤í¸ ìí¸ë¦¬ë¥¼ ìí íëì HTML formê³¼ ë°ì´í°ë² ì´ì¤ ë´ì ìë 모"
+"ë ì´ë²¤í¸ë¤ì 목ë¡ì´ í린í¸ëë¤. 첫 ë²ì§¸ ë©ìëë ìíì ì´ê³ ì¤ì§ 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>ì ì¬ì©íë¤:"
+
+#. 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>ì ì¬ì©íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"The servlet is now complete. A request to the servlet will be processed in a "
+"single <literal>Session</literal> and <literal>Transaction</literal>. As "
+"earlier in the standalone application, Hibernate can automatically bind "
+"these objects to the current thread of execution. This gives you the freedom "
+"to layer your code and access the <literal>SessionFactory</literal> in any "
+"way you like. Usually you would use a more sophisticated design and move the "
+"data access code into data access objects (the DAO pattern). See the "
+"Hibernate Wiki for more examples."
+msgstr ""
+"ì¦ ìë¸ë¦¿ì´ ìì±ëë¤. ìë¸ë¦¿ì ëí ìì²ì íëì ë¨ì¼ <literal>Session</"
+"literal>ê³¼ <literal>Transaction</literal> ë´ìì ì²ë¦¬ë ê²ì´ë¤. ì´ì ì²ë¼ ì¤í "
+"ëì¼ë¡ ì´í리ì¼ì´ì
ìì, Hibernateë ì´ë¤ ê°ì²´ë¤ì ì¤í ì¤ì¸ íì¬ ì°ë ëì ì"
+"ëì ì¼ë¡ ë°ì¸ëìí¬ ì ìë¤. ì´ê²ì ë¹ì ì ì½ë를 ê³ì¸µí ìí¤ê³ ë¹ì ì´ ì¢ìí"
+"ë ììì ë°©ë²ì¼ë¡ <literal>SessionFactory</literal>ì ì ê·¼íë ìì 를 ë¹ì ì"
+"ê² ë¶ì¬íë¤. ëê° ë¹ì ì ë³´ë¤ ì¸ë ¨ë ì¤ê³ë¥¼ ì¬ì©í ê²ì´ê³ ë°ì´í° ì ê·¼ ì½ë를 "
+"ë°ì´í° ì ê·¼ ê°ì²´ë¤ ë´ë¡ ì´ëìí¬ ê²ì´ë¤(DAO í¨í´). ì¶ê° ìì ë¤ì Hibernate ì"
+"í¤ë¥¼ ë³´ë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr "ë°°ì¹í기 ê·¸ë¦¬ê³ í
ì¤í¸í기"
+
+#. 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 ""
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"To build and deploy call <literal>mvn package</literal> in your project "
+"directory and copy the <filename>hibernate-tutorial.war</filename> file into "
+"your Tomcat <filename>webapps</filename> directory."
+msgstr ""
+"ë¹ëíê³ ë°°ì¹í기 ìí´ ë¹ì ì íë¡ì í¸ ëë í 리 ë´ìì <literal>ant war</"
+"literal>를 í¸ì¶íê³ <literal>hibernate-tutorial.war</literal> íì¼ì ë¹ì ì "
+"Tomcat <literal>webapp</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 ""
+
+#. 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>ë¡ ì´í리ì¼ì´ì
ì ì ê·¼íë¼. 첫 ë²ì§¸ ìì²ì´ ë¹"
+"ì ì ìë¸ë¦¿ì ëë¬í ë Hibernateê° ì´ê¸°í(<literal>HibernateUtil</literal> "
+"ë´ì ìë static initializerê° í¸ì¶ëë¤) ëë ê²ì 보기 ìí´ ê·¸ë¦¬ê³ ë§ì¼ ì´"
+"ë¤ ìì¸ìí©ë¤ì´ ë°ìí ê²½ì° ìì¸í ì¶ë ¥ì ì»ê¸° ìí´ì Tomcat ë¡ê·¸ë¥¼ ì§ì¼ë³´ë"
+"ë¡ íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "ìì½"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This tutorial covered the basics of writing a simple standalone Hibernate "
+"application and a small web application. More tutorials are available from "
+"the Hibernate <ulink url=\"http://hibernate.org\">website</ulink>."
+msgstr ""
+"ì´ íí 리ì¼ì ê°ë¨í ì¤í ëì¼ë¡ Hibernate ì´í리ì¼ì´ì
ê³¼ íëì ìì ì¹ ì´í"
+"리ì¼ì´ì
ì ìì±íë 기ì´ë¥¼ ë¤ë£¨ìë¤."
+
+#~ msgid "Introduction to Hibernate"
+#~ msgstr "Hibernate ê°ì"
+
+#~ msgid "Preface"
+#~ msgstr "머리ë§"
+
+#~ msgid ""
+#~ "This chapter is an introductory tutorial for new users of Hibernate. We "
+#~ "start with a simple command line application using an in-memory database "
+#~ "and develop it in easy to understand steps."
+#~ msgstr ""
+#~ "ì´ ì¥ì Hibernate ì´ì¬ì를 ìí ê°ë¡ ì ì¸ íí 리ì¼ì´ë¤. ì°ë¦¬ë ë©ëª¨ë¦¬-ë´ ë°"
+#~ "ì´í°ë² ì´ì¤ë¥¼ ì¬ì©íë ê°ë¨í ëª
ë ¹ ë¼ì¸ ì´í리ì¼ì´ì
ì¼ë¡ ììíê³ ë¨ê³ë¤ì "
+#~ "ì´í´íëë¡ ì½ê² ê·¸ê²ì ê°ë°íë¤."
+
+#~ msgid ""
+#~ "This tutorial is intended for new users of Hibernate but requires Java "
+#~ "and SQL knowledge. It is based on a tutorial by Michael Gloegl, the third-"
+#~ "party libraries we name are for JDK 1.4 and 5.0. You might need others "
+#~ "for JDK 1.3."
+#~ msgstr ""
+#~ "ì´ íí 리ì¼ì Hibernate ì ê· ì¬ì©ìë¤ì ìëíê³ ìì§ë§ Javaì SQL ì§ìì "
+#~ "íìë¡ íë¤. ê·¸ê²ì Michael Gloeglì´ ìì±í íí 리ì¼ì 기ì´íë©°, ì°ë¦¬ê° ëª
"
+#~ "ëª
íë ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¤ì JDK 1.4ì 5.0 ë²ì ì©ì´ë¤. ë¹ì ì JDK1.3ì ë"
+#~ "í´ ë¤ë¥¸ ë¼ì´ë¸ë¬ë¦¬ë¤ì íìë¡ í ìë ìë¤."
+
+#~ msgid ""
+#~ "The source code for the tutorial is included in the distribution in the "
+#~ "<literal>doc/reference/tutorial/</literal> directory."
+#~ msgstr ""
+#~ "íí 리ì¼ì© ìì¤ë <literal>doc/reference/tutorial/</literal> ëë í 리 ë´"
+#~ "ì ìë ë°°í¬ë³¸ ë´ì í¬í¨ëì´ ìë¤."
+
+#~ msgid ""
+#~ "First, we'll create a simple console-based Hibernate application. We use "
+#~ "an Java database (HSQL DB), so we do not have to install any database "
+#~ "server."
+#~ msgstr ""
+#~ "먼ì , ì°ë¦¬ë í ê°ì ê°ë¨í ì½ì-ê¸°ë° Hibernate ì´í리ì¼ì´ì
ì ìì±ìí¬ ê²"
+#~ "ì´ë¤. ì°ë¦¬ë ë©ëª¨ë¦¬-ë´ ë°ì´í°ë² ì´ì¤(HSQL DB)를 ì¬ì©íë¯ë¡, ì°ë¦¬ë ì´ë¤ ë°"
+#~ "ì´í°ë² ì´ì¤ ìë²ë¥¼ ì¤ì¹íì§ ììë ëë¤."
+
+#~ msgid ""
+#~ "The first thing we do, is set up our development directory and put all "
+#~ "the Java libraries we need into it. Download the Hibernate distribution "
+#~ "from the Hibernate website. Extract the package and place all required "
+#~ "libraries found in <literal>/lib</literal> into into the <literal>/lib</"
+#~ "literal> directory of your new development working directory. It should "
+#~ "look like this:"
+#~ msgstr ""
+#~ "ì°ë¦¬ê° íí 첫 ë²ì§¸ ê²ì ì°ë¦¬ì ê°ë° ëë í 리를 ì¤ì íê³ , ì°ë¦¬ê° íìë¡ í"
+#~ "ë 모ë Java ë¼ì´ë¸ë¬ë¦¬ë¤ì ê·¸ê² ìì ì§ì´ ë£ë ê²ì´ë¤. Hibernate ì¹ ì¬ì´"
+#~ "í¸ë¡ë¶í° Hibernate ë°°í¬ë³¸ì ë´ë ¤ ë°ìë¼. í¨í¤ì§ë¥¼ ì¶ì¶í´ë´ê³ <literal>/"
+#~ "lib</literal> ììì ë°ê²¬ëë 모ë íìí ë¼ì´ë¸ë¬ë¦¬ë¤ì ë¹ì ì ìë¡ì´ ê°"
+#~ "ë° ìì
ëë í 리ì <literal>/lib</literal> ëë í 리 ìì ìì¹ì§ìë¼. ê·¸ê²"
+#~ "ì ë¤ìê³¼ ê°ì ê²ì´ë¤:"
+
+#~ msgid ""
+#~ "This is the minimum set of required libraries (note that we also copied "
+#~ "hibernate3.jar, the main archive) for Hibernate <emphasis>at the time of "
+#~ "writing</emphasis>. The Hibernate release you are using might require "
+#~ "more or less libraries. See the <literal>README.txt</literal> file in the "
+#~ "<literal>lib/</literal> directory of the Hibernate distribution for more "
+#~ "information about required and optional third-party libraries. (Actually, "
+#~ "Log4j is not required but preferred by many developers.)"
+#~ msgstr ""
+#~ "ì´ê²ì <emphasis>ê¸ì ìì± ìì ìì</emphasis> Hibernateì íìì ì¸ ìµìí"
+#~ "ì ì¸í¸ì´ë¤(ì°ë¦¬ë ëí ë©ì¸ ìì¹´ì´ë¸ì¸ hibernate3.jar를 ë³µì¬íìì ë
¸í¸í"
+#~ "ë¼). ë¹ì ì´ ì¬ì© ì¤ì¸ Hibernate ë°°í¬ë³¸ì´ ë ë§ê±°ë ë³´ë¤ ì ì ë¼ì´ë¸ë¬ë¦¬ë¤"
+#~ "ì íìë¡ í ìë ìë¤. íì ë¼ì´ë¸ë¬ë¦¬ë¤ê³¼ ì íì ì¸ ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¤ì "
+#~ "ëí ì¶ê° ì ë³´ë Hibernate ë°°í¬ë³¸ì <literal>lib/</literal> ëë í 리 ë´ì "
+#~ "ìë <literal>README.txt</literal> íì¼ì ë³´ë¼. (ì¤ì ë¡, Log4jë íìë ì"
+#~ "ëì§ë§ ë§ì ê°ë°ìë¤ì ìí´ ì í¸ëë¤.)"
+
+#~ msgid ""
+#~ "Our first persistent class is a simple JavaBean class with some "
+#~ "properties:"
+#~ msgstr ""
+#~ "ì°ë¦¬ì 첫 ë²ì§¸ ìì í´ëì¤ë ëªëª íë¡í¼í°ë¤ì ê°ì§ ê°ë¨í ìë°ë¹ì¦ í´ëì¤"
+#~ "ì´ë¤:"
+
+#~ msgid ""
+#~ "Place this Java source file in a directory called <literal>src</literal> "
+#~ "in the development folder, and in its correct package. The directory "
+#~ "should now look like this:"
+#~ msgstr ""
+#~ "ì´ Java ìì¤ íì¼ì ê°ë° í´ë ë´ì <literal>src</literal>ë¡ ëª
ëª
ë ëë í "
+#~ "리 ìì ìë ìì¹ì§ìë¼. ì´ì ê·¸ ëë í 리ë ë¤ìê³¼ ê°ì ê²ì´ë¤:"
+
+#~ msgid "In the next step, we tell Hibernate about this persistent class."
+#~ msgstr ""
+#~ "ë¤ì ë¨ê³ìì, ì°ë¦¬ë Hiberanteìê² ì´ ìì í´ëì¤ì ëí´ ìë ¤ ì¤ë¤."
+
+#~ msgid ""
+#~ "The <literal>id</literal> element is the declaration of the identifer "
+#~ "property, <literal>name=\"id\"</literal> declares the name of the Java "
+#~ "property - Hibernate will use the getter and setter methods to access the "
+#~ "property. The column attribute tells Hibernate which column of the "
+#~ "<literal>EVENTS</literal> table we use for this primary key. The nested "
+#~ "<literal>generator</literal> element specifies the identifier generation "
+#~ "strategy, in this case we used <literal>native</literal>, which picks the "
+#~ "best strategy depending on the configured database (dialect). Hibernate "
+#~ "supports database generated, globally unique, as well as application "
+#~ "assigned identifiers (or any strategy you have written an extension for)."
+#~ msgstr ""
+#~ "<literal>id</literal> ììë ìë³ì íë¡í¼í°ì ì ì¸ì´ê³ , <literal>name="
+#~ "\"id\"</literal>ë Java íë¡í¼í°ì ì´ë¦ì ì ì¸íë¤ - Hibernateë ê·¸ íë¡í¼"
+#~ "í°ì ì ê·¼íëë° getter ë° setter ë©ìëë¤ì ì¬ì©í ê²ì´ë¤. column ìì±ì "
+#~ "ì°ë¦¬ê° <literal>EVENTS</literal> í
ì´ë¸ì ì´ë 컬ë¼ì ì´ íë¼ì´ë¨¸ë¦¬ í¤ë¡ "
+#~ "ì¬ì©íëì§ë¥¼ Hibernateìê² ìë ¤ì¤ë¤. ë´í¬ë <literal>generator</literal> "
+#~ "ììë ìë³ì ìì± ë°©ë를 ì§ì íë©°, ì´ ê²½ì°ì ì°ë¦¬ë <literal>increment</"
+#~ "literal>를 ì¬ì©íê³ , ê·¸ê²ì ëê° í
ì¤í
(ê³¼ íí 리ì¼ë¤)ì ì ì©í ë§¤ì° ê°ë¨"
+#~ "í ë©ëª¨ë¦¬-ë´ ì«ì ì¦ê° ë°©ë²ì´ë¤. Hibernateë ëí ì ìì ì¼ë¡ ì ì¼í ë°ì´í°"
+#~ "ë² ì´ì¤ì ìí´ ìì±ë ìë³ì ë¿ë§ ìëë¼ ì´í리ì¼ì´ì
ì ìí´ í ë¹ë ìë³ì"
+#~ "(ëë ë¹ì ì´ íì¥ì¼ë¡ ìì±í ì´ë¤ ë°©ë)를 ì§ìíë¤."
+
+#~ msgid ""
+#~ "This mapping file should be saved as <literal>Event.hbm.xml</literal>, "
+#~ "right in the directory next to the <literal>Event</literal> Java class "
+#~ "source file. The naming of mapping files can be arbitrary, however the "
+#~ "<literal>hbm.xml</literal> suffix is a convention in the Hibernate "
+#~ "developer community. The directory structure should now look like this:"
+#~ msgstr ""
+#~ "ë¤ì 매í íì¼ì <literal>Event</literal> Java í´ëì¤ ìì¤ íì¼ê³¼ ê°ì ë"
+#~ "ë í 리 ìì <literal>Event.hbm.xml</literal>ë¡ì ì ì¥ë ê²ì´ë¤. 매í íì¼"
+#~ "ë¤ì ëí ë¤ì´ë°ì ììì ì¼ ì ìì§ë§, ì ë¯¸ì¬ <literal>hbm.xml</literal>"
+#~ "ì Hibernate ê°ë°ì ê³µëì²´ ë´ìì 컨벤ì
ì´ ëìë¤. ëë í 리 구조ë ì´ì ë¤"
+#~ "ìê³¼ ê°ì ê²ì´ë¤:"
+
+#~ msgid "We continue with the main configuration of Hibernate."
+#~ msgstr "ì°ë¦¬ë Hibernateì ë©ì¸ 구ì±ì ê³ì ííë¤."
+
+#~ msgid ""
+#~ "We now have a persistent class and its mapping file in place. It is time "
+#~ "to configure Hibernate. Before we do this, we will need a database. HSQL "
+#~ "DB, a java-based SQL DBMS, can be downloaded from the HSQL DB website"
+#~ "(http://hsqldb.org/). Actually, you only need the <literal>hsqldb.jar</"
+#~ "literal> from this download. Place this file in the <literal>lib/</"
+#~ "literal> directory of the development folder."
+#~ msgstr ""
+#~ "ì°ë¦¬ë ì´ì ì ì í ê³³ì í ê°ì ìì í´ëì¤ì ê·¸ê²ì 매í íì¼ì ê°ê³ ì"
+#~ "ë¤. Hibernate를 구ì±í ì°¨ë¡ì´ë¤. ì°ë¦¬ê° ì´ê²ì íí기 ì ì, ì°ë¦¬ë ë°ì´í°"
+#~ "ë² ì´ì¤ë¥¼ íìë¡ í ê²ì´ë¤. ìë° ê¸°ë°ì ë©ëª¨ë¦¬-ë´ SQL DBMSì¸ HSQL DBë "
+#~ "HSQL DB ì¹ ì¬ì´í¸ìì ë´ë ¤ë°ì ì ìë¤. ì¤ì ë¡, ë¹ì ì ì´ ë¤ì´ë¡ëìì ì¤"
+#~ "ì§ <literal>hsqldb.jar</literal> ë§ì íìë¡ íë¤. ê°ë° í´ëì "
+#~ "<literal>lib/</literal> ëë í 리 ìì ì´ íì¼ì ìì¹ì§ìë¼."
+
+#~ msgid ""
+#~ "Hibernate is the layer in your application which connects to this "
+#~ "database, so it needs connection information. The connections are made "
+#~ "through a JDBC connection pool, which we also have to configure. The "
+#~ "Hibernate distribution contains several open source JDBC connection "
+#~ "pooling tools, but will use the Hibernate built-in connection pool for "
+#~ "this tutorial. Note that you have to copy the required library into your "
+#~ "classpath and use different connection pooling settings if you want to "
+#~ "use a production-quality third party JDBC pooling software."
+#~ msgstr ""
+#~ "Hibernateë ë¹ì ì ì´í리ì¼ì´ì
ë´ìì ì´ ë°ì´í°ë² ì´ì¤ì ì°ê²°íë ê³ì¸µì´"
+#~ "ê³ , ë°ë¼ì ê·¸ê²ì 커ë¥ì
ì 보를 íìë¡ íë¤. 커ë¥ì
ë¤ì ë§ì°¬ê°ì§ë¡ 구ì±ë"
+#~ "ì´ì¼ íë íëì JDBC 커ë¥ì
íì íµí´ íí´ì§ë¤. Hibernate ë°°í¬ë³¸ì ëªëª "
+#~ "ì¤í ìì¤ JDBC 커ë¥ì
íë§ ë구ë¤ì í¬í¨íê³ ìì§ë§, ì´ íí 리ì¼ììë "
+#~ "Hibernateì ìí´ ë¯¸ë¦¬ ë¹ëë 커ë¥ì
íë§ì ì¬ì©í ê²ì´ë¤. ë¹ì ì´ íì ë¼ì´"
+#~ "ë¸ë¬ë¦¬ë¥¼ ë¹ì ì classpath ìì ë³µì¬í´ì¼ íê³ ë§ì¼ ë¹ì ì´ ì í-í¹ì§ì ì 3"
+#~ "ì JDBC íë§ ìíí¸ì¨ì´ë¥¼ ì¬ì©íê³ ì ìí ê²½ì°ìë ë¤ë¥¸ 커ë¥ì
íë§ ì¤ì ë¤"
+#~ "ì ì¬ì©í´ì¼ í¨ì ë
¸í¸íë¼."
+
+#~ msgid ""
+#~ "Copy this file into the source directory, so it will end up in the root "
+#~ "of the classpath. Hibernate automatically looks for a file called "
+#~ "<literal>hibernate.cfg.xml</literal> in the root of the classpath, on "
+#~ "startup."
+#~ msgstr ""
+#~ "ì´ íì¼ì ìì¤ ëë í 리 ìì¼ë¡ ë³µì¬íê³ , ë°ë¼ì ê·¸ê²ì classpathì 루í¸ì"
+#~ "ì ëë ê²ì´ë¤. Hibernateë ìì ìì classpathì 루í¸ìì "
+#~ "<literal>hibernate.cfg.xml</literal>ë¡ ëª
ëª
ë íì¼ì ìëì ì¼ë¡ ì°¾ëë¤."
+
+#~ msgid ""
+#~ "We'll now build the tutorial with Ant. You will need to have Ant "
+#~ "installed - get it from the <ulink url=\"http://ant.apache.org/"
+#~ "bindownload.cgi\">Ant download page</ulink>. How to install Ant will not "
+#~ "be covered here. Please refer to the <ulink url=\"http://ant.apache.org/"
+#~ "manual/index.html\">Ant manual</ulink>. After you have installed Ant, we "
+#~ "can start to create the buildfile. It will be called <literal>build.xml</"
+#~ "literal> and placed directly in the development directory."
+#~ msgstr ""
+#~ "ì°ë¦¬ë ì´ì Antë¡ íí 리ì¼ì ë¹ëí ê²ì´ë¤. ë¹ì ì Ant를 ì¤ì¹í íìê° ì"
+#~ "ì ê²ì´ë¤ - <ulink url=\"http://ant.apache.org/bindownload.cgi\">Ant ë´ë ¤"
+#~ "ë°ê¸° íì´ì§</ulink>ìì Ant를 ì»ì´ë¼. Ant를 ì¤ì¹íë ë°©ë²ì ì¬ê¸°ì ë¤ë£¨ì§ "
+#~ "ìì ê²ì´ë¤. <ulink url=\"http://ant.apache.org/manual/index.html\">Ant 매"
+#~ "ë´ì¼</ulink>ì 참조í길 ë°ëë¤. ë¹ì ì´ Ant를 ì¤ì¹í íì, ì°ë¦¬ë ë¹ëíì¼ "
+#~ "ìì±ì ììí ì ìë¤. ê·¸ê²ì <literal>build.xml</literal>ë¡ ëª
ëª
ëê³ ê°"
+#~ "ë° ëë í 리 ìì ì§ì ìì¹ë ê²ì´ë¤."
+
+#~ msgid "A basic build file looks like this:"
+#~ msgstr "기본 ë¹ë íì¼ì ë¤ìê³¼ ê°ë¤:"
+
+#~ msgid ""
+#~ "This will tell Ant to add all files in the lib directory ending with "
+#~ "<literal>.jar</literal> to the classpath used for compilation. It will "
+#~ "also copy all non-Java source files to the target directory, e.g. "
+#~ "configuration and Hibernate mapping files. If you now run Ant, you should "
+#~ "get this output:"
+#~ msgstr ""
+#~ "ì´ê²ì <literal>.jar</literal>ë¡ ëëë lib ëë í 리 ë´ì ìë 모ë íì¼ë¤"
+#~ "ì ì»´íì¼ì ì¬ì©ëë classpathì ì¶ê°íëë¡ Antìê² ìë ¤ì¤ ê²ì´ë¤. ê·¸ê²ì "
+#~ "ëí 모ë ë¹-Java ìì¤ íì¼ë¤ì ëì ëë í ë¦¬ë¡ ë³µì¬í ê²ì´ë¤. ì를 ë¤ë©´, "
+#~ "êµ¬ì± ë° Hibernate 매í íì¼ë¤. ë§ì¼ ë¹ì ì´ Ant를 ì´ì ì¤íí ê²½ì°, ë¹ì ì "
+#~ "ë¤ì ì¶ë ¥ì ì»ê² ë ê²ì´ë¤:"
+
+#~ msgid ""
+#~ "Place <literal>HibernateUtil.java</literal> in the development source "
+#~ "directory, in a package next to <literal>events</literal>:"
+#~ msgstr ""
+#~ "ê°ë° ìì¤ ëë í 리 ìì <literal>HibernateUtil.java</literal> 를 ìì¹ì§ì°"
+#~ "ê³ , ë¤ìì¼ë¡ <literal>Event.java</literal>를 ìì¹ì§ìë¼:"
+
+#~ msgid ""
+#~ "To run this first routine we have to add a callable target to the Ant "
+#~ "build file:"
+#~ msgstr ""
+#~ "ì´ ì²« ë²ì§¸ 루í´ì ì¤íí기 ìí´ì ì°ë¦¬ë í¸ì¶ ê°ë¥í ëìì Ant ë¹ë íì¼"
+#~ "ì ì¶ê°í´ì¼ íë¤:"
+
+#~ msgid ""
+#~ "The value of the <literal>action</literal> argument is set on the command "
+#~ "line when calling the target:"
+#~ msgstr ""
+#~ "<literal>action</literal> ìê·ë¨¼í¸ì ê°ì ëìì í¸ì¶í ë ëª
ë ¹ ë¼ì¸ ìì"
+#~ "ì ì¤ì ëë¤:"
+
+#~ msgid ""
+#~ "This is the <literal>INSERT</literal> executed by Hibernate, the question "
+#~ "marks represent JDBC bind parameters. To see the values bound as "
+#~ "arguments, or to reduce the verbosity of the log, check your "
+#~ "<literal>log4j.properties</literal>."
+#~ msgstr ""
+#~ "ì´ê²ì Hibernateì ìí´ ì¤íë <literal>INSERT</literal>ì´ê³ , 물ìí 기í¸"
+#~ "ë JDBC ë°ì¸ë íë¼ë¯¸í°ë¤ì ëíë¸ë¤. ìê·ë¨¼í¸ë¡ì ë°ì¸ë ë ê°ë¤ì ë³´ê±°"
+#~ "ë ì¥í©í ë¡ê·¸ë¥¼ ì¤ì´ë ¤ë©´ ë¹ì ì <literal>log4j.properties</literal>를 ì²´"
+#~ "í¬íë¼."
+
+#~ msgid "Now, to execute and test all of this, follow these steps:"
+#~ msgstr "ì´ì ì´ ëª¨ë ê²ì ì¤ííê³ í
ì¤í¸í기 ìí´, ë¤ì ë¨ê³ë¤ì ë°ë¥´ë¼:"
+
+#~ msgid ""
+#~ "Run <literal>ant run -Daction=store</literal> to store something into the "
+#~ "database and, of course, to generate the database schema before through "
+#~ "hbm2ddl."
+#~ msgstr ""
+#~ "ë°ì´í°ë² ì´ì¤ ìì¼ë¡ ì´ë¤ ê²ì ì ì¥íê³ ë¬¼ë¡ ìì hbm2ddlì íµí´ ë°ì´í°ë² ì´"
+#~ "ì¤ ì¤í¤ë§ë¥¼ ì°ì¶ìí¤ê¸° ìí´ <literal>ant run -Daction=store</literal>를 ì¤"
+#~ "ííë¼."
+
+#~ msgid ""
+#~ "Now disable hbm2ddl by commenting out the property in your "
+#~ "<literal>hibernate.cfg.xml</literal> file. Usually you only leave it "
+#~ "turned on in continous unit testing, but another run of hbm2ddl would "
+#~ "<emphasis>drop</emphasis> everything you have stored - the "
+#~ "<literal>create</literal> configuration setting actually translates into "
+#~ "\"drop all tables from the schema, then re-create all tables, when the "
+#~ "SessionFactory is build\"."
+#~ msgstr ""
+#~ "ì´ì ë¹ì ì <literal>hibernate.cfg.xml</literal> íì¼ ììì ê·¸ íë¡í¼í°"
+#~ "를 주ìì²ë¦¬í¨ì¼ë¡ì¨ hbm2ddlì ì¬ì©ë¶ê°ë¥íê² íë¼. ëê° ë¹ì ì ì§ìëë ë¨"
+#~ "ì í
ì¤í
ììë ê·¸ê²ì ì¬ì© ê°ë¥íê² ë´ë²ë ¤ëì´ë ëì§ë§, ë ë¤ë¥¸ hbm2ddl"
+#~ "ì ì¤íì ë¹ì ì´ ì ì¥íë 모ë ê²ì <emphasis>drop</emphasis>ìí¬ ê²ì´ë¤ "
+#~ "- <literal>create</literal> êµ¬ì± ì¤ì ì ì¤ì ë¡ \"ì¤í¤ë§ë¡ë¶í° 모ë í
ì´ë¸"
+#~ "ë¤ì ëë¡ìí¤ê³ ëì, SessionFactoryê° ë¹ëë ë 모ë í
ì´ë¸ë¤ì ë¤ì ìì±"
+#~ "ìí¤ë ê²\"ì¼ë¡ ë³íëë¤."
+
+#~ msgid ""
+#~ "If you now call Ant with <literal>-Daction=list</literal>, you should see "
+#~ "the events you have stored so far. You can of course also call the "
+#~ "<literal>store</literal> action a few times more."
+#~ msgstr ""
+#~ "ë§ì¼ ë¹ì ì´ ì§ê¸ <literal>-Daction=list</literal>ë¡ Ant를 í¸ì¶í ê²½ì°, ë¹"
+#~ "ì ì ë¹ì ì´ ì§ê¸ê¹ì§ ì ì¥íë ì´ë²¤í¸ë¤ì ë³´ê² ë ê²ì´ë¤. ë¬¼ë¡ ë¹ì ì ëí "
+#~ "ì¬ë¬ ë² <literal>store</literal> ì¡ì
ì í¸ì¶í ì ìë¤."
+
+#~ msgid ""
+#~ "Note: Most new Hibernate users fail at this point and we see questions "
+#~ "about <emphasis>Table not found</emphasis> error messages regularly. "
+#~ "However, if you follow the steps outlined above you will not have this "
+#~ "problem, as hbm2ddl creates the database schema on the first run, and "
+#~ "subsequent application restarts will use this schema. If you change the "
+#~ "mapping and/or database schema, you have to re-enable hbm2ddl once again."
+#~ msgstr ""
+#~ "ë
¸í¸ : ëë¶ë¶ì Hibernate ì¬ì©ìë¤ì ì´ ì§ì ìì ì¤í¨íê³ ì°ë¦¬ë ì 기ì ì¼"
+#~ "ë¡ <emphasis>Table not found</emphasis> ì¤ë¥ ë©ìì§ë¤ì ê´í ì§ë¬¸ì ë°ë"
+#~ "ë¤. íì§ë§ ë§ì¼ ë¹ì ì´ ìì ì¡°ëª
ë ë¨ê²ë¤ì ë°ë¥¼ ê²½ì° ë¹ì ì ì´ ë¬¸ì 를 겪"
+#~ "ì§ ìì ê²ì´ê³ , hbm2ddlì´ ì²ì ì¤í ìì ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ë¥¼ ìì±ìí¤ë¯"
+#~ "ë¡, ì°¨íì ì´í리ì¼ì´ì
ì¬ììì ì´ ì¤í¤ë§ë¥¼ ì¬ì©í ê²ì´ë¤. ë§ì¼ ë¹ì ì´ ë§¤"
+#~ "í ê·¸ë¦¬ê³ /ëë ë°ì´í°ë² ì´ì¤ ì¤í¤ë§ë¥¼ ë³ê²½í ê²½ì°ì, ë¹ì ì ë¤ì íë² ë "
+#~ "hbm2ddlì ì´ì© ê°ë¥íëë¡ í´ì¼ íë¤."
+
+#~ msgid ""
+#~ "Create a new mapping file called <literal>Person.hbm.xml</literal> (don't "
+#~ "forget the DTD reference at the top):"
+#~ msgstr ""
+#~ "<literal>Person.hbm.xml</literal>ë¡ ëª
ëª
ëë ìë¡ì´ 매í íì¼ì ìì±ìì¼"
+#~ "ë¼ (맨ìì DTD 참조를 ìì§ë§ë¼):"
+
+#~ msgid ""
+#~ "We need a unidirectional, many-valued associations, implemented with a "
+#~ "<literal>Set</literal>. Let's write the code for this in the Java classes "
+#~ "and then map it:"
+#~ msgstr ""
+#~ "ì°ë¦¬ë íëì <literal>Set</literal>ì¼ë¡ 구íë, íëì ë¨ë°©í¥, ë¤ì¤ê° ì°"
+#~ "ê´ë¤ì íìë¡ íë¤. Java í´ëì¤ë¤ ë´ì ì´ë¥¼ ìí ì½ë를 ìì±íê³ ê·¸ë° ë¤"
+#~ "ì ê·¸ê²ì 매íìí¤ì:"
+
+#~ msgid ""
+#~ "We add a collection of value typed objects to the <literal>Person</"
+#~ "literal> entity. We want to store email addresses, so the type we use is "
+#~ "<literal>String</literal>, and the collection is again a <literal>Set</"
+#~ "literal>:"
+#~ msgstr ""
+#~ "ì°ë¦¬ë ê° íì
ì ê°ì²´ë¤ì ê°ì§ í ê°ì ì½ë ì
ì <literal>Person</literal> "
+#~ "ìí°í°ì ì¶ê°ìí¨ë¤. ì°ë¦¬ë email 주ì를 ì ì¥íê³ ì ìíë¯ë¡, ì°ë¦¬ê° ì¬ì©"
+#~ "íë íì
ì <literal>String</literal>ì´ê³ , ê·¸ ì½ë ì
ì ë¤ì í ê°ì "
+#~ "<literal>Set</literal>ì´ë¤:"
+
+#~ msgid "Let's turn this into a small web application."
+#~ msgstr "Let's turn this into a small web application."
+
+#~ msgid ""
+#~ "Create a new class in your source directory, in the <literal>events</"
+#~ "literal> package:"
+#~ msgstr ""
+#~ "ë¤ì ì¥ìì ì°ë¦¬ë Hibernate를 Tomcat ë° WebWorkì íµí©ìí¨ë¤. "
+#~ "<literal>EventManager</literal>ë ì°ë¦¬ì ì±ì¥íë ì´í리ì¼ì´ì
ì ëì´ì ê°"
+#~ "ë¹íì§ ëª»íë¤. ë¹ì ì ìì¤ ëë í 리ìì <literal>events</literal> í¨í¤ì§ "
+#~ "ë´ì ìë¡ì´ í´ëì¤ë¥¼ ìì±ìì¼ë¼:"
+
+#~ msgid ""
+#~ "To deploy this application you have to create a web archive, a WAR. Add "
+#~ "the following Ant target to your <literal>build.xml</literal>:"
+#~ msgstr ""
+#~ "ì´ ì´í리ì¼ì´ì
ì ë°°ì¹í기 ìí´ì ë¹ì ì íëì ì¹ ìì¹´ì´ë¸, WAR를 ìì±ì"
+#~ "ì¼ì¼ íë¤. ë¤ì Ant targetì ë¹ì ì <literal>build.xml</literal> ë´ì ì¶ê°"
+#~ "íë¼:"
+
+#~ msgid ""
+#~ "This target creates a file called <literal>hibernate-tutorial.war</"
+#~ "literal> in your project directory. It packages all libraries and the "
+#~ "<literal>web.xml</literal> descriptor, which is expected in the base "
+#~ "directory of your project:"
+#~ msgstr ""
+#~ "ì´ targetì ë¹ì ì íë¡ì í¸ ëë í 리 ë´ì <literal>hibernate-tutorial."
+#~ "war</literal>ë¡ ëª
ëª
ë íëì íì¼ì ìì±ìí¨ë¤. ê·¸ê²ì ë¹ì ì íë¡ì í¸ì "
+#~ "기본 ëë í 리 ë´ì 기ëëë 모ë ë¼ì´ë¸ë¬ë¦¬ë¤ê³¼ <literal>web.xml</"
+#~ "literal> ëì¤í¬ë¦½í°ë¥¼ í¨í¤ì§íë¤:"
+
+#~ msgid ""
+#~ "Before you compile and deploy the web application, note that an "
+#~ "additional library is required: <literal>jsdk.jar</literal>. This is the "
+#~ "Java servlet development kit, if you don't have this library already, get "
+#~ "it from the Sun website and copy it to your library directory. However, "
+#~ "it will be only used for compliation and excluded from the WAR package."
+#~ msgstr ""
+#~ "ë¹ì ì´ ì¹ ì´í리ì¼ì´ì
ì ì»´íì¼íê³ ë°°ì¹í기 ì ì, íëì ë¶ê°ì ì¸ ë¼ì´ë¸"
+#~ "ë¬ë¦¬ê° íìí¨ì ë
¸í¸íë¼: <literal>jsdk.jar</literal>. ë¹ì ì´ ì´ë¯¸ ì´ ë¼ì´"
+#~ "ë¸ë¬ë¦¬ë¥¼ ê°ê³ ìì§ ìì ê²½ì°, ì´ê²ì Java servlet development kitì´ë©°, "
+#~ "Sun ì¹ ì¬ì´í¸ë¡ë¶í° ê·¸ê²ì ì»ì´ì ê·¸ê²ì ë¹ì ì ë¼ì´ë¸ë¬ë¦¬ ëë í 리ì ë³µì¬"
+#~ "íë¼. íì§ë§ ê·¸ê²ì ì¤ì§ ì»´íì¼ ììë§ ì¬ì©ë ê²ì´ê³ WAR í¨í¤ì§ììë ì ì¸"
+#~ "ëë¤."
+
+#~ msgid ""
+#~ "If you already feel confident with Hibernate, continue browsing through "
+#~ "the reference documentation table of contents for topics you find "
+#~ "interesting - most asked are transactional processing (<xref linkend="
+#~ "\"transactions\"/>), fetch performance (<xref linkend=\"performance\"/>), "
+#~ "or the usage of the API (<xref linkend=\"objectstate\"/>) and the query "
+#~ "features (<xref linkend=\"objectstate-querying\"/>)."
+#~ msgstr ""
+#~ "ë§ì¼ ë¹ì ì´ ì´ë¯¸ Hibernateì ìì ì´ ìë¤ê³ ëëë¤ë©´, ë¹ì ì´ í¥ë¯¸ë¥¼ ì°¾ë 주"
+#~ "ì ë¤ì ëí 참조 문ì 목차를 ê³ì ë¸ë¼ì°ì§íë¼ - ê°ì¥ ë§ì´ ìì²ëë ê²ì "
+#~ "í¸ëìì
ì²ë¦¬(<xref linkend=\"transactions\"/>), íì¹ í¼í¬ë¨¼ì¤(<xref "
+#~ "linkend=\"performance\"/>), ëë API ì¬ì©ë²(<xref linkend=\"objectstate\"/"
+#~ ">), ê·¸ë¦¬ê³ ì§ì í¹ì§ë¤(<xref linkend=\"objectstate-querying\"/>)ì´ë¤."
+
+#~ msgid ""
+#~ "Don't forget to check the Hibernate website for more (specialized) "
+#~ "tutorials."
+#~ msgstr ""
+#~ "ë ë§ì(í¹íë) íí 리ì¼ë¤ì ëí´ìë Hibernate ì¹ ì¬ì´í¸ë¥¼ ì²´í¬íë ê²ì "
+#~ "ìì§ ë§ë¼."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/xml.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/xml.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/content/xml.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,232 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+msgstr "XML 매í"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<emphasis> XML Mapping is an experimental feature in Hibernate 3.0 and is "
+"currently under active development. </emphasis>"
+msgstr ""
+"ì´ê²ì Hibernate3.0ìì ì¤íì ì¸ í¹ì§ì´ê³ ë§¤ì° íëì ì¼ë¡ ê°ë° ì¤ì ììì ë
¸"
+"í¸íë¼."
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr "XML ë°ì´í°ë¡ ìì
í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Hibernate allows you to work with persistent XML data in much the same way "
+"you work with persistent POJOs. A parsed XML tree can be thought of as "
+"another way of representing the relational data at the object level, instead "
+"of POJOs."
+msgstr ""
+"Hibernateë ë¹ì ì´ ìì POJOë¤ë¡ ìì
íë ê²ê³¼ ì주 ëì¼í ë°©ë²ì¼ë¡ ìì XML "
+"ë°ì´í°ì ìì
íëë¡ í´ì¤ë¤. íì±ë XML í¸ë¦¬ë ë¨ì§ ê°ì²´ ë 벨ìì ê´ê³í ë°ì´"
+"í°ë¥¼ ëíë´ë ë ë¤ë¥¸ ë°©ë²ì¼ë¡ ê°ì£¼ë ì ìë¤. íëì íì±ë 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ë XML í¸ë¦¬ë¤ì ì²ë¦¬íë APIë¡ì dom4j를 ì§ìíë¤. ë¹ì ì ë°ì´í°ë² ì´"
+"ì¤ë¡ë¶í° dom4j í¸ë¦¬ë¤ì ê²ìíê³ ë¹ì ì´ ê·¸ í¸ë¦¬ë¥¼ ë°ì´í°ë² ì´ì¤ì ìëì ì¼ë¡ "
+"ë기íìí¤ê¸° ìí´ ì´ë¤ ë³ê²½ì ííëë¡ íë ì§ìë¤ì ìì±í ì ìë¤. ë¹ì ì "
+"ì¬ì§ì´ XML 문ì를 ì·¨íê³ , dom4j를 ì¬ì©íì¬ ê·¸ê²ì íì±íê³ , Hibernateì ë¤ì "
+"기본ì ì¸ ì¤í¼ë ì´ì
ë¤ ì¤ ì´ë¤ ê²ì¼ë¡ì ê·¸ê²ì ë°ì´í°ë² ì´ì¤ì ì ì¥ìí¬ ì ì"
+"ë¤: <literal>persist(), saveOrUpdate(), merge(), delete(), replicate()</"
+"literal>(merging(ë³í©)ì ìì§ ì§ìëì§ ìëë¤)."
+
+#. 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-기ë°ì ë í¬í
ì "
+"íµí ìí°í° ë°ì´í°ì 구체í를 í¬í¨íë ë§ì ì´í리ì¼ì´ì
ë¤ì ê°ëë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A single mapping can be used to simultaneously map properties of a class and "
+"nodes of an XML document to the database, or, if there is no class to map, "
+"it can be used to map just the XML."
+msgstr ""
+"íëì 매íì í´ëì¤ë¤ì íë¡í¼í°ë¤ê³¼ XML 문ìì ë
¸ëë¤ì ë°ì´í°ë² ì´ì¤ë¡ ëì"
+"ì 매íìí¤ëë° ì¬ì©ë ì ìê±°ë, ë§ì¼ 매íí í´ëì¤ê° ì¡´ì¬íì§ ìì ê²½ì°, ê·¸"
+"ê²ì ë¨ì§ XMLì 매íìí¤ëë° ì¬ì©ë ìë ìë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying XML and class mapping together"
+msgstr "XMLê³¼ í´ëì¤ ë§¤íì í¨ê» ì§ì í기"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr "ë¤ìì POJOì XMLì ëìì 매íìí¤ë ìì ì´ë¤ :"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr "XML 매íë§ì ì§ì í기"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr "ë¤ìì POJO í´ëì¤ê° ì¡´ì¬íì§ ìë ìì ì´ë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"This mapping allows you to access the data as a dom4j tree, or as a graph of "
+"property name/value pairs or java <literal>Map</literal>s. The property "
+"names are purely logical constructs that can be referred to in HQL queries."
+msgstr ""
+"ì´ ë§¤íì dom4j í¸ë¦¬ë¡ì ëë íë¡í¼í° name/value ìë¤(java <literal>Map</"
+"literal>ë¤)ì ê·¸ëíë¡ì ë°ì´í°ì ì ê·¼íë ê²ì ë¹ì ìê² íì©í´ì¤ë¤. íë¡í¼"
+"í° ì´ë¦ë¤ì HQL ì§ìë¤ ë´ìì 참조ë ìë ìë ììíê² ë
¼ë¦¬ì ì¸ êµ¬ì¡°ì²´ë¤ì´"
+"ë¤."
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr "XML 매í ë©íë°ì´í°"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"A range of Hibernate mapping elements accept the <literal>node</literal> "
+"attribute. This lets you specify the name of an XML attribute or element "
+"that holds the property or entity data. The format of the <literal>node</"
+"literal> attribute must be one of the following:"
+msgstr ""
+"ë§ì Hibernate 매í ììë¤ì <literal>node</literal> ìì±ì ìì©íë¤. ì´ê²ì "
+"ë¹ì ì´ íë¡í¼í° ëë ìí°í° ë°ì´í°ë¥¼ ìì íë XML ìì±ì´ë ììì ì´ë¦ì ì§ì "
+"íëë¡ íë¤. <literal>node</literal> ìì±ì í¬ë§·ì ë¤ì ì¤ íëì´ì´ì¼ íë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>\"element-name\"</literal>: map to the named XML element"
+msgstr "<literal>\"element-name\"</literal> - ëª
ëª
ë XML ììë¡ ë§¤íìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
+msgstr ""
+"<literal>\"@attribute-name\"</literal> - ëª
ëª
ë XML ìì±ì¼ë¡ 매íìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr "<literal>\".\"</literal> - ë¶ëª¨ ììë¡ ë§¤í ìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<literal>\"element-name/@attribute-name\"</literal>: map to the named "
+"attribute of the named element"
+msgstr ""
+"<literal>\"element-name/@attribute-name\"</literal> - ëª
ëª
ë ììì ëª
ëª
ë ì"
+"ì±ì¼ë¡ 매íìí¨ë¤"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"For collections and single valued associations, there is an additional "
+"<literal>embed-xml</literal> attribute. If <literal>embed-xml=\"true\"</"
+"literal>, the default, the XML tree for the associated entity (or collection "
+"of value type) will be embedded directly in the XML tree for the entity that "
+"owns the association. Otherwise, if <literal>embed-xml=\"false\"</literal>, "
+"then only the referenced identifier value will appear in the XML for single "
+"point associations and collections will not appear at all."
+msgstr ""
+"ì½ë ì
ë¤ê³¼ ë¨ì¼ ê° ì½ë ì
ë¤ì ê²½ì°, ì¶ê°ì ì¸ <literal>embed-xml</literal> ì"
+"ì±ì´ ì¡´ì¬íë¤. ë§ì¼ <literal>embed-xml=\"true\"</literal> ì¼ ê²½ì°, ì°ê´ë ì"
+"í°í°(ëë value íì
ì ê°ì§ ì½ë ì
)ì ëí ëí´í¸ XML í¸ë¦¬ë ê·¸ ì°ê´ì ìì í"
+"ë ìí°í°ì ëí XML í¸ë¦¬ ìì ì§ì ì½ì
ë ê²ì´ë¤. ê·¸ ë°ì ê²½ì° "
+"<literal>embed-xml=\"false\"</literal> ì¼ ê²½ì°, 참조ë ìë³ì ê° ë§ì´ ë¨ì¼ í¬"
+"ì¸í¸ ì°ê´ë¤ì ëí´ ëíë ê²ì´ê³ ì½ë ì
ë¤ì ë¨ìí ì í ëíëì§ ìì ê²ì´ë¤."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Do not leave <literal>embed-xml=\"true\"</literal> for too many "
+"associations, since XML does not deal well with circularity."
+msgstr ""
+"ë¹ì ì ë무 ë§ì ì°ê´ë¤ì ëí´ <literal>embed-xml=\"true\"</literal>ë¡ ë¨ê²¨ë"
+"ì§ ë§ëë¡ ì£¼ìí´ì¼ íë¤. ìëíë©´ XMLì´ ìíì ì¼ë¡ ì ì²ë¦¬íì§ ëª»í기 ë문ì´"
+"ë¤!"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"In this case, the collection of account ids is embedded, but not the actual "
+"account data. The following HQL query:"
+msgstr ""
+"ì´ ê²½ì°ì, ì°ë¦¬ë ì¤ì account ë°ì´í°ê° ìë, account idë¤ì ê°ì§ ì½ë ì
ì ì½"
+"ì
ìí¤ê¸°ë¡ ê²°ì íë¤. ë¤ì HQL ì§ì:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid "would return datasets such as this:"
+msgstr "ë ë¤ìê³¼ ê°ì ë°ì´í°ì
ë¤ì ë°íí ê²ì´ë¤:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
+"many></literal> mapping, the data might look more like this:"
+msgstr ""
+"ë§ì¼ ë¹ì ì´ <literal><one-to-many></literal> 매íì ëí´ "
+"<literal>embed-xml=\"true\"</literal>를 ì¤ì í ê²½ì°, ë°ì´í°ë ë¤ìê³¼ ê°ì´ ë³´"
+"ì¼ ìë ìë¤:"
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr "XML ë°ì´í° ì²ë¦¬í기"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"You can also re-read and update XML documents in the application. You can do "
+"this by obtaining a dom4j session:"
+msgstr ""
+"ì°ë¦¬ì ì´í리ì¼ì´ì
ë´ìì XML 문ìë¤ì ë¤ì ì½ì´ë¤ì´ê³ ì
ë°ì´í¸ ìí¤ì. ì°ë¦¬"
+"ë dom4j ì¸ì
ì ì»ì´ì ì´ê²ì ííë¤:"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"When implementing XML-based data import/export, it is useful to combine this "
+"feature with Hibernate's <literal>replicate()</literal> operation."
+msgstr ""
+"XML 기ë°ì ë°ì´í° ê°ì ¸ì¤ê¸°/ë´ë³´ë´ê¸°ë¥¼ 구ííëë° ì´ í¹ì§ê³¼ Hibernateì "
+"<literal>replicate()</literal> ì¤í¼ë ì´ì
ì ê²°í©ìí¤ë ê²ì´ ë§¤ì° ì ì©íë¤."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Conventions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Conventions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Conventions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,214 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-02-04T04:51:23\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,34 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-02-04T04:51:23\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr ""
+
+#. Tag: primary
+#, no-c-format
+msgid "feedback"
+msgstr ""
+
+#. Tag: secondary
+#, no-c-format
+msgid "contact information for this manual"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/fallback_content/Legal_Notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,19 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-02-04T04:51:23\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/legal_notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/legal_notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/ko-KR/legal_notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,78 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr "Legal Notice"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
+"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
+"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
+"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
+"Triangle Park</city>, <state>NC</state><postcode>27709</"
+"postcode><country>USA</country> </address>"
+msgstr ""
+"<street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</"
+"state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 "
+"919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 "
+"3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, "
+"<state>NC</state><postcode>27709</postcode><country>USA</country>"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+msgstr ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+msgstr ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+msgstr ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr "The GPG fingerprint of the security at redhat.com key is:"
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/Book_Info.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/Book_Info.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/Book_Info.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,29 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-31T00:33:04\n"
+"PO-Revision-Date: 2010-03-31T00:33:04\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&version;"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,14 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-31T00:33:04\n"
+"PO-Revision-Date: 2010-03-31T00:33:04\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"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/Hibernate_Reference.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/Hibernate_Reference.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/Hibernate_Reference.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,29 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-02-11T05:38:14\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr ""
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/author_group.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/author_group.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/author_group.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,149 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-31T00:33:04\n"
+"PO-Revision-Date: 2010-03-31T00:33:04\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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/architecture.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/architecture.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/architecture.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,274 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-31T00:33:04\n"
+"PO-Revision-Date: 2010-03-31T00:33:04\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The diagram below provides a high-level view of the Hibernate architecture:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</literal>)"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Consult the JBoss AS user guide for more information about these options."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Contextual sessions"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The first two implementations provide a \"one session - one database transaction\" programming model. This is 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
+#, 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/association_mapping.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/association_mapping.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/association_mapping.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,199 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-31T00:33:04\n"
+"PO-Revision-Date: 2010-03-31T00:33:04\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Associations will be classified by multiplicity and whether or not they map to an intervening join table."
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <emphasis>unidirectional many-to-one association</emphasis> is the most common kind of unidirectional association."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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: title
+#, no-c-format
+msgid "One-to-many"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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: para
+#, no-c-format
+msgid "A <emphasis>unidirectional one-to-one association on a join table</emphasis> is possible, but extremely unusual."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, here is an example of a <emphasis>unidirectional many-to-many association</emphasis>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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: para
+#, no-c-format
+msgid "If the underlying foreign key column is <literal>NOT NULL</literal>, it is important that you define <literal>not-null=\"true\"</literal> on the <literal><key></literal> element of the collection mapping. Do not only declare <literal>not-null=\"true\"</literal> on a possible nested <literal><column></literal> element, but on the <literal><key></literal> element."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> is common:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <emphasis>bidirectional one-to-one association on a primary key</emphasis> uses the special id generator:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr ""
+
+#. Tag: para
+#, 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: title
+#, no-c-format
+msgid "one to one"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <emphasis>bidirectional one-to-one association on a join table</emphasis> is possible, but extremely unusual."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of a <emphasis>bidirectional many-to-many association</emphasis>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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: para
+#, 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: para
+#, 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/basic_mapping.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/basic_mapping.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/basic_mapping.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1959 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example mapping:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr ""
+
+#. 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 <link linkend=\"mapping-types-custom\">typedef</link>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate-mapping"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>default-cascade</literal> (optional - defaults to <literal>none</literal>): a default cascade style."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal><class></literal> mappings, as shown above. It is, however, good practice (and expected by some tools) to map only a single persistent class, or a single class hierarchy, in one mapping file and name it after the persistent superclass. For example, <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, <literal>Animal.hbm.xml</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Class"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can declare a persistent class using the <literal>class</literal> element. For example:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal> (optional - defaults to the unqualified class name): the name of its database table."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): overrides the schema name specified by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): overrides the catalog name specified by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>persister</literal> (optional): specifies a custom <literal>ClassPersister</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>optimistic-lock</literal> (optional - defaults to <literal>version</literal>): determines the optimistic locking strategy."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>lazy</literal> (optional): lazy fetching can be disabled by setting <literal>lazy=\"false\"</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>abstract</literal> (optional): is used to mark abstract superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr ""
+
+#. 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><subclass></literal> element. You can persist any <emphasis>static</emphasis> inner class. Specify the class name using the standard form i.e. <literal>e.g.Foo$Bar</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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><class></literal> declaration as a <literal><subclass></literal> or <literal><joined-subclass></literal>. For most purposes, the default <literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit polymorphism is useful when two different classes are mapped to the same table This allows a \"lightweight\" class that contains a subset of the table columns."
+msgstr ""
+
+#. 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 ""
+
+#. 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><subclass></literal> or <literal><joined-subclass></literal> elements. Although these settings can increase performance in some cases, they can actually decrease performance in others."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you enable <literal>dynamic-update</literal>, you will have a choice of optimistic locking strategies:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>dirty</literal>: check the changed columns, allowing some concurrent updates"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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><subselect></literal> is available both as an attribute and a nested mapping element."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "id"
+msgstr ""
+
+#. 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><id></literal> element defines the mapping from that property to the primary key column."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal> (optional): the name of the identifier property."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of the primary key column."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "The <literal>unsaved-value</literal> attribute is almost never needed in Hibernate3."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There is an alternative <literal><composite-id></literal> declaration that allows access to legacy data with composite keys. Its use is strongly discouraged for anything else."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal><generator></literal> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <literal><param></literal> element."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>increment</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>identity</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>guid</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>native</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr ""
+
+#. 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><generator></literal> element is specified."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>select</literal>"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "uses the identifier of another associated object. It is usually used in conjunction with a <literal><one-to-one></literal> primary key association."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr ""
+
+#. 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><generator></literal> element."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Enhanced identifier generators"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>optimizer</literal> (optional - defaults to <literal>none</literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>optimizer</literal> (optional - defaults to <literal></literal>): See <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Identifier generator optimization"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr ""
+
+#. 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><composite-id></literal> element accepts <literal><key-property></literal> property mappings and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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><composite-id></literal> element are duplicated on both the persistent class and a separate identifier class."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The third approach, an <emphasis>identifier component</emphasis>, is recommended for almost all applications."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Discriminator"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><discriminator></literal> element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy. It declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types can be used: <literal>string</literal>, <literal>character</literal>, <literal>integer</literal>, <literal>byte</literal>, <literal>short</literal>, <literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to <literal>class</literal>): the name of the discriminator column."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (optional - defaults to <literal>string</literal>): a name that indicates the Hibernate type"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal><class></literal> and <literal><subclass></literal> elements."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Version (optional)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><version></literal> element is optional and indicates that the table contains versioned data. This is particularly useful if you plan to use <emphasis>long transactions</emphasis>. See below for more information:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of a property of the persistent class."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (optional - defaults to <literal>integer</literal>): the type of the version number."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 <link linkend=\"mapping-generated\">generated properties</link> for more information."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Timestamp (optional)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal><timestamp></literal> element indicates that the table contains timestamped data. This provides an alternative to versioning. Timestamps are a less safe implementation of optimistic locking. However, sometimes the application might use the timestamps in other ways."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional - defaults to the property name): the name of a column holding the timestamp."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 <link linkend=\"mapping-generated\">generated properties</link> for more information."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal><Timestamp></literal> is equivalent to <literal><version type=\"timestamp\"></literal>. And <literal><timestamp source=\"db\"></literal> is equivalent to <literal><version type=\"dbtimestamp\"></literal>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><property></literal> element declares a persistent JavaBean style property of the class."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of the property, with an initial lowercase letter."
+msgstr ""
+
+#. 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><column></literal> element(s)."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>not-null</literal> (optional): enables the DDL generation of a nullability constraint for the columns."
+msgstr ""
+
+#. 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 ""
+
+#. 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 <link linkend=\"mapping-generated\">generated properties</link> for more information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The class name of a custom type: <literal>com.illflow.type.MyCustomType</literal> etc."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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><formula></literal> mapping element if you do not want to use the attribute."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr ""
+
+#. 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><column></literal> element(s)."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>entity-name</literal> (optional): the entity name of the associated class."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is not encouraged, however."
+msgstr ""
+
+#. 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><properties></literal> element."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If the referenced unique key is the property of a component, you can specify a property path:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This association can be made bidirectional by adding the following to the <literal>Person</literal> mapping:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Natural-id"
+msgstr ""
+
+#. 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><natural-id></literal> element. Hibernate will generate the necessary unique key and nullability constraints and, as a result, your mapping will be more self-documenting."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Component and dynamic-component"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><component></literal> element maps properties of a child object to columns of the table of a parent class. Components can, in turn, declare their own properties, components or collections. See the \"Component\" examples below:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>insert</literal>: do the mapped columns appear in SQL <literal>INSERTs</literal>?"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>update</literal>: do the mapped columns appear in SQL <literal>UPDATEs</literal>?"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The child <literal><property></literal> tags map properties of the child class to table columns."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><component></literal> element allows a <literal><parent></literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><dynamic-component></literal> element allows a <literal>Map</literal> to be mapped as a component, where the property names refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for more information."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><properties></literal> element allows the definition of a named, logical grouping of the properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a <literal>property-ref</literal>. It is also a convenient way to define a multi-column unique constraint. For example:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "For example, if we have the following <literal><properties></literal> mapping:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The use of this outside the context of mapping legacy data is not recommended."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Subclass"
+msgstr ""
+
+#. 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><subclass></literal> declaration is used. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>discriminator-value</literal> (optional - defaults to the class name): a value that distinguishes individual subclasses."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies a class or interface used for lazy initializing proxies."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Each subclass declares its own persistent properties and subclasses. <literal><version></literal> and <literal><id></literal> properties are assumed to be inherited from the root class. Each subclass in a hierarchy must define a unique <literal>discriminator-value</literal>. If this is not specified, the fully qualified Java class name is used."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "For information about inheritance mappings see <xref linkend=\"inheritance\" />."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Joined-subclass"
+msgstr ""
+
+#. 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><joined-subclass></literal> element. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies a class or interface to use for lazy initializing proxies."
+msgstr ""
+
+#. 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 ""
+
+#. 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><key></literal> element. The mapping at the start of the chapter would then be re-written as:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Union-subclass"
+msgstr ""
+
+#. 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><class></literal> declaration. However, if you wish use polymorphic associations (e.g. an association to the superclass of your hierarchy), you need to use the <literal><union-subclass></literal> mapping. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "No discriminator column or key column is required for this mapping strategy."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Join"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Using the <literal><join></literal> element, it is possible to map properties of one class to several tables that have a one-to-one relationship. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr ""
+
+#. 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><join></literal> defined by a class or its superclasses. It will use an outer join for a <literal><join></literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal><join></literal> defined on a subclass. This will be issued only if a row represents an instance of the subclass. Inner joins will still be used to retrieve a <literal><join></literal> defined by the class and its superclasses."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Key"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><key></literal> element has featured a few times within this guide. It appears anywhere the parent mapping element defines a join to a new table that references the primary key of the original table. It also defines the foreign key in the joined table:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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><key not-null=\"true\"></literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Column and formula elements"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Mapping elements which accept a <literal>column</literal> attribute will alternatively accept a <literal><column></literal> subelement. Likewise, <literal><formula></literal> is an alternative to the <literal>formula</literal> attribute. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Most of the attributes on <literal>column</literal> provide a means of tailoring the DDL during automatic schema generation. The <literal>read</literal> and <literal>write</literal> attributes allow you to specify custom SQL that Hibernate will use to access the column's value. For more on this, see the discussion of <link linkend=\"mapping-column-read-and-write\">column read and write expressions</link>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>column</literal> and <literal>formula</literal> elements can even be combined within the same property or association mapping to express, for example, exotic join conditions."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Import"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Any"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There is one more type of property mapping. The <literal><any></literal> mapping element defines a polymorphic association to classes from multiple tables. This type of mapping requires more than one column. The first column contains the type of the associated entity. The remaining columns contain the identifier. It is impossible to specify a foreign key constraint for this kind of association. This is not the usual way of mapping polymorphic associations and you should use this only in special cases. For example, for audit logs, user session data, etc."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>cascade</literal> (optional- defaults to <literal>none</literal>): the cascade style."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate types"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In relation to the persistence service, Java language-level objects are classified into two groups:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr ""
+
+#. 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><class></literal>, <literal><subclass></literal> and so on are used. For value types we use <literal><property></literal>, <literal><component></literal>etc., that usually have a <literal>type</literal> attribute. The value of this attribute is the name of a Hibernate <emphasis>mapping type</emphasis>. Hibernate provides a range of mappings for standard JDK value types out of the box. You can write your own mapping types and implement your own custom conversion strategies."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "With the exception of collections, all built-in Hibernate types support null semantics."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The built-in <emphasis>basic mapping types</emphasis> can be roughly categorized into the following:"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>integer, long, short, float, double, character, byte, boolean, yes_no, true_false</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>string</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>class</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>binary</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>text</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</literal> type."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>imm_date, imm_time, imm_timestamp, imm_calendar, imm_calendar_date, imm_serializable, imm_binary</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the use of <literal><column></literal> tags to map a property to multiple columns."
+msgstr ""
+
+#. 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 ""
+
+#. 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><type></literal> element in your mapping files."
+msgstr ""
+
+#. 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 ""
+
+#. 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><typedef></literal> element. Typedefs assign a name to a custom type, and can also contain a list of default parameter values if the type is parameterized."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Associations are now specified using <literal>entity-name</literal> instead of <literal>class</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Generated properties"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Properties marked as generated must additionally be non-insertable and non-updateable. Only <link linkend=\"mapping-declaration-version\">versions</link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, and <link linkend=\"mapping-declaration-property\">simple properties</link>, can be marked as generated."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>never</literal> (the default): the given property value is not generated within the database."
+msgstr ""
+
+#. 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 <link linkend=\"mapping-declaration-version\">version</link> and <link linkend=\"mapping-declaration-timestamp\">timestamp</link> properties can be marked as generated, this option is not available."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>always</literal>: the property value is generated both on insert and on update."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate allows you to customize the SQL it uses to read and write the values of columns mapped to <link linkend=\"mapping-declaration-property\">simple properties</link>. For example, if your database provides a set of data encryption functions, you can invoke them for individual columns like this: <programlisting role=\"XML\"><property name=\"creditCardNumber\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate applies the custom expressions automatically whenever the property is referenced in a query. This functionality is similar to a derived-property <literal>formula</literal> with two differences:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The property is backed by one or more columns that are exported as part of automatic schema generation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>write</literal> expression, if specified, must contain exactly one '?' placeholder for the value."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Auxiliary database objects"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The first mode is to explicitly list the CREATE and DROP commands in the mapping file:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally, these database objects can be optionally scoped so that they only apply when certain dialects are used."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/batch.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/batch.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/batch.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,189 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A naive approach to inserting 100,000 rows in the database using Hibernate might look like this:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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:"
+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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+msgstr ""
+
+#. 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 (<link linkend=\"queryhql\">HQL</link>)."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or explicit, can be specified in a bulk HQL query. Sub-queries can be used in the where-clause, where the subqueries themselves may contain joins."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> statements, by default, do not effect the <link linkend=\"mapping-declaration-version\">version</link> or the <link linkend=\"mapping-declaration-timestamp\">timestamp</link> property values for the affected entities. However, you can force Hibernate to reset the <literal>version</literal> or <literal>timestamp</literal> property values through the use of a <literal>versioned update</literal>. This is achieved by adding the <literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> keyword."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "To execute an HQL <literal>DELETE</literal>, use the same <literal>Query.executeUpdate()</literal> method:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Only the INSERT INTO ... SELECT ... form is supported; not the INSERT INTO ... VALUES ... form."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of an HQL <literal>INSERT</literal> statement execution:"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/best_practices.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/best_practices.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/best_practices.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,209 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Write fine-grained classes and map them using <literal><component></literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Use an <literal>Address</literal> class to encapsulate <literal>street</literal>, <literal>suburb</literal>, <literal>state</literal>, <literal>postcode</literal>. This encourages code reuse and simplifies refactoring."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate makes identifier properties optional. There are a range of reasons why you should use them. We recommend that identifiers be 'synthetic', that is, generated with no business meaning."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Identify natural keys:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Identify natural keys for all entities, and map them using <literal><natural-id></literal>. Implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the properties that make up the natural key."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes sense, particularly in a team environment."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Load mappings as resources:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is recommended if your queries call non-ANSI-standard SQL functions. Externalizing the query strings to mapping files will make the application more portable."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "As in JDBC, always replace non-constant values by \"?\". Do not use string manipulation to bind a non-constant value in a query. You should also consider using named parameters in queries."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate allows the application to manage JDBC connections, but his approach should be considered a last-resort. If you cannot use the built-in connection providers, consider providing your own implementation of <literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Consider using a custom type:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Suppose you have a Java type from a library that needs to be persisted but does not provide the accessors needed to map it as a component. You should consider implementing <literal>org.hibernate.UserType</literal>. This approach frees the application code from implementing transformations to/from a Hibernate type."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In performance-critical areas of the system, some kinds of operations might benefit from direct JDBC. Do not assume, however, that JDBC is necessarily faster. Please wait until you <emphasis>know</emphasis> something is a bottleneck. If you need to use direct JDBC, you can open a Hibernate <literal>Session</literal>, wrap your JDBC operation as a <literal>org.hibernate.jdbc.Work</literal> object and using that JDBC connection. This way you can still use the same transaction strategy and underlying connection provider."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Sometimes the Session synchronizes its persistent state with the database. Performance will be affected if this process occurs too often. You can sometimes minimize unnecessary flushing by disabling automatic flushing, or even by changing the order of queries and other operations within a particular transaction."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "When using a servlet/session bean architecture, you can pass persistent objects loaded in the session bean to and from the servlet/JSP layer. Use a new session to service each request. Use <literal>Session.merge()</literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the database."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Database Transactions have to be as short as possible for best scalability. However, it is often necessary to implement long running <emphasis>application transactions</emphasis>, a single unit-of-work from the point of view of a user. An application transaction might span several client request/response cycles. It is common to use detached objects to implement application transactions. An appropriate alternative in a two tiered architecture, is to maintain a single open persistence contact session for the whole life cycle of the application transaction. Then simply disconnect from the JDBC connection at the end of each request and reconnect at the beginning of the subsequent request. Never share a single session across more than one application transaction or you will be working with stale data."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is more of a necessary practice than a \"best\" practice. When an exception occurs, roll back the <literal>Transaction</literal> and close the <literal>Session</literal>. If you do not do this, Hibernate cannot guarantee that in-memory state accurately represents the persistent state. For example, do not use <literal>Session.load()</literal> to determine if an instance with the given identifier exists on the database; use <literal>Session.get()</literal> or a query instead."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Use eager fetching sparingly. Use proxies and lazy collections for most associations to classes that are not likely to be completely held in the second-level cache. For associations to cached classes, where there is an a extremely high probability of a cache hit, explicitly disable eager fetching using <literal>lazy=\"false\"</literal>. When join fetching is appropriate to a particular use case, use a query with a <literal>left join fetch</literal>."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Use the <emphasis>open session in view</emphasis> pattern, or a disciplined <emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate frees the developer from writing tedious <emphasis>Data Transfer Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual purposes: first, they work around the problem that entity beans are not serializable; second, they implicitly define an assembly phase where all data to be used by the view is fetched and marshalled into the DTOs before returning control to the presentation tier. Hibernate eliminates the first purpose. Unless you are prepared to hold the persistence context (the session) open across the view rendering process, you will still need an assembly phase. Think of your business methods as having a strict contract with the presentation tier about what data is available in the detached objects. This is not a limitation of Hibernate. It is a fundamental requirement of safe transactional data access."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hide Hibernate data-access code behind an interface. Combine the <emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> patterns. You can even have some classes persisted by handcoded JDBC associated to Hibernate via a <literal>UserType</literal>. This advice is, however, intended for \"sufficiently large\" applications. It is not appropriate for an application with five tables."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Practical test cases for real many-to-many associations are rare. Most of the time you need additional information stored in the \"link table\". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, most associations are one-to-many and many-to-one. For this reason, you should proceed cautiously when using any other association style."
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Unidirectional associations are more difficult to query. In a large application, almost all associations must be navigable in both directions in queries."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/bibliography.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/bibliography.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/bibliography.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr ""
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr ""
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/collection_mapping.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/collection_mapping.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/collection_mapping.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,624 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mapping"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate requires that persistent collection-valued fields be declared as an interface type. For example:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr ""
+
+#. 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 ""
+
+#. 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><set></literal> element is used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Apart from <literal><set></literal>, there is also <literal><list></literal>, <literal><map></literal>, <literal><bag></literal>, <literal><array></literal> and <literal><primitive-array></literal> mapping elements. The <literal><map></literal> element is representative:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>cascade</literal> (optional - defaults to <literal>none</literal>): enables operations to cascade to child entities."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr ""
+
+#. 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><key></literal> element."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The foreign key constraint can use <literal>ON DELETE CASCADE</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "See the previous chapter for a full definition of the <literal><key></literal> element."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr ""
+
+#. 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 ""
+
+#. 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><element></literal> or <literal><composite-element></literal>, or in the case of entity references, with <literal><one-to-many></literal> or <literal><many-to-many></literal>. The first two map elements with value semantics, the next two are used to map entity associations."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr ""
+
+#. 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><map-key></literal>. It can be an entity reference mapped with <literal><map-key-many-to-many></literal>, or it can be a composite type mapped with <literal><composite-map-key></literal>. The index of an array or list is always of type <literal>integer</literal> and is mapped using the <literal><list-index></literal> element. The mapped column contains sequential integers that are numbered from zero by default."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column_name</literal> (required): the name of the column holding the collection index values."
+msgstr ""
+
+#. 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 ""
+
+#. 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><bag></emphasis>. A bag does not retain its order when it is retrieved from the database, but it can be optionally sorted or ordered."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of values and many-to-many associations"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "For a collection of values use the <literal><element></literal> tag. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the column holding the collection element values."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (required): the type of the collection element."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <emphasis>many-to-many association</emphasis> is specified using the <literal><many-to-many></literal> element."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the element foreign key column."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>formula</literal> (optional): an SQL formula used to evaluate the element foreign key value."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr ""
+
+#. 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><many-to-many></literal> nested element."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some examples."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A set of strings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A bag containing integers with an iteration order determined by the <literal>order-by</literal> attribute:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "An array of entities, in this case, a many-to-many association:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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."
+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><one-to-many></literal> tag indicates that this is a one-to-many association."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If the foreign key column of a <literal><one-to-many></literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal><key></literal> mapping <literal>not-null=\"true\"</literal> or <emphasis>use a bidirectional association</emphasis> with the collection mapping marked <literal>inverse=\"true\"</literal>. See the discussion of bidirectional associations later in this chapter for more information."
+msgstr ""
+
+#. 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
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Sorted collections actually behave like <literal>java.util.TreeSet</literal> or <literal>java.util.TreeMap</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The value of the <literal>order-by</literal> attribute is an SQL ordering, not an HQL ordering."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Associations can even be sorted by arbitrary criteria at runtime using a collection <literal>filter()</literal>:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A bidirectional association where one end is represented as a <literal><list></literal> or <literal><map></literal>, requires special consideration. If there is a property of the child class that maps to the index column you can use <literal>inverse=\"true\"</literal> on the collection mapping:"
+msgstr ""
+
+#. 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 ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "A final alternative is to use composite elements, which will be discussed later."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><idbag></literal> element lets you map a <literal>List</literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "An <literal><idbag></literal> has a synthetic id generator, just like an entity class. A different surrogate key is assigned to each collection row. Hibernate does not, however, provide any mechanism for discovering the surrogate key value of a particular row."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The update performance of an <literal><idbag></literal> supersedes a regular <literal><bag></literal>. Hibernate can locate individual rows efficiently and update or delete them individually, similar to a list, map or set."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In the current implementation, the <literal>native</literal> identifier generation strategy is not supported for <literal><idbag></literal> collection identifiers."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This section covers collection examples."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following class has a collection of <literal>Child</literal> instances:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-many association:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr ""
+
+#. 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><key></literal> mapping:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "On the other hand, if a child has multiple parents, a many-to-many association is appropriate:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Even more complex association mappings are covered in the next chapter."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/component_mapping.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/component_mapping.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/component_mapping.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,204 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><component></literal> element allows a <literal><parent></literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Collections of components are supported (e.g. an array of type <literal>Name</literal>). Declare your component collection by replacing the <literal><element></literal> tag with a <literal><composite-element></literal> tag:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Composite elements can contain components but not collections. If your composite element contains components, use the <literal><nested-composite-element></literal> tag. This case is a collection of components which themselves have components. You may want to consider if a one-to-many association is more appropriate. Remodel the composite element as an entity, but be aware that even though the Java model is the same, the relational model and persistence semantics are still slightly different."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A composite element mapping does not support null-able properties if you are using a <literal><set></literal>. There is no separate primary key column in the composite element table. Hibernate uses each column's value to identify a record when deleting objects, which is not possible with null values. You have to either use only not-null properties in a composite-element or choose a <literal><list></literal>, <literal><map></literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A special case of a composite element is a composite element with a nested <literal><many-to-one></literal> element. This mapping allows you to map extra columns of a many-to-many association table to the composite element class. The following is a many-to-many association from <literal>Order</literal> to <literal>Item</literal>, where <literal>purchaseDate</literal>, <literal>price</literal> and <literal>quantity</literal> are properties of the association:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Composite elements can appear in queries using the same syntax as associations to other entities."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><composite-map-key></literal> element allows you to map a component class as the key of a <literal>Map</literal>. Ensure that you override <literal>hashCode()</literal> and <literal>equals()</literal> correctly on the component class."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In Hibernate3, although the second requirement is not an absolutely hard requirement of Hibernate, it is recommended."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Use the <literal><composite-id></literal> tag, with nested <literal><key-property></literal> elements, in place of the usual <literal><id></literal> declaration. For example, the <literal>OrderLine</literal> class has a primary key that depends upon the (composite) primary key of <literal>Order</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>column</literal> element is an alternative to the <literal>column</literal> attribute everywhere. Using the <literal>column</literal> element just gives more declaration options, which are mostly useful when utilizing <literal>hbm2ddl</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>many-to-many</literal> association to <literal>OrderLine</literal> also uses the composite foreign key:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The collection of <literal>OrderLine</literal>s in <literal>Order</literal> would use:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If <literal>OrderLine</literal> itself owns a collection, it also has a composite foreign key."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The semantics of a <literal><dynamic-component></literal> mapping are identical to <literal><component></literal>. The advantage of this kind of mapping is the ability to determine the actual properties of the bean at deployment time just by editing the mapping document. Runtime manipulation of the mapping document is also possible, using a DOM parser. You can also access, and change, Hibernate's configuration-time metamodel via the <literal>Configuration</literal> object."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/configuration.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/configuration.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/configuration.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1664 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <classname>org.hibernate.cfg.Configuration</classname> also allows you to specify configuration properties. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is not the only way to pass configuration properties to Hibernate. Some alternative options include:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Pass an instance of <classname>java.util.Properties</classname> to <literal>Configuration.setProperties()</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Place a file named <filename>hibernate.properties</filename> in a root directory of the classpath."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Set <literal>System</literal> properties using <literal>java -Dproperty=value</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Include <literal><property></literal> elements in <literal>hibernate.cfg.xml</literal> (this is discussed later)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you want to get started quickly<filename>hibernate.properties</filename> is the easiest approach."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr ""
+
+#. 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 <interfacename>org.hibernate.Session</interfacename> instances. This factory is intended to be shared by all application threads:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate does allow your application to instantiate more than one <interfacename>org.hibernate.SessionFactory</interfacename>. This is useful if you are using more than one database."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example <filename>hibernate.properties</filename> file for c3p0:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example <filename>hibernate.properties</filename> file for an application server provided JNDI datasource:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Some of these properties are \"system-level\" only.</emphasis> System-level properties can be set only via <literal>java -Dproperty=value</literal> or <filename>hibernate.properties</filename>. They <emphasis>cannot</emphasis> be set by the other techniques described above."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of.Dialect</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | <literal>false</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Qualify unqualified table names with the given schema/tablespace in generated SQL."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>0</literal> and <literal>3</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values <literal>4</literal>, <literal>8</literal>, <literal>16</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default mode for entity representation for all sessions opened from this <literal>SessionFactory</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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: entry
+#, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value determines the JDBC fetch size (calls <literal>Statement.setFetchSize()</literal>)."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>5</literal> and <literal>30</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. Most applications will not need this configuration property."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.BatcherFactory</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <interfacename>org.hibernate.connection.ConnectionProvider</interfacename> which provides JDBC connections to Hibernate."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, 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
+#, 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 ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.</property><emphasis><propertyName></emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Pass the JDBC property <emphasis><propertyName></emphasis> to <literal>DriverManager.getConnection()</literal>."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Pass the property <emphasis><propertyName></emphasis> to the JNDI <literal>InitialContextFactory</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.CacheProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables the query cache. Individual queries still have to be set cachable."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Can be used to completely disable the second level cache, which is enabled by default for classes which specify a <literal><cache></literal> mapping."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>QueryCache</literal> interface, defaults to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionFactory</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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 ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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 ""
+
+#. 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 ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, 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: entry
+#, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr ""
+
+#. Tag: entry
+#, 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
+#, no-c-format
+msgid "SQL Dialects"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 9i"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 10g"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can define new Hibernate query tokens using <literal>hibernate.query.substitutions</literal>. For example:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log the state of all entities (max 20 entities) associated with the session at flush time"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Log everything. This is a lot of information but it is useful for troubleshooting"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can specify a different strategy by calling <literal>Configuration.setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its <literal>SessionFactory</literal> to JNDI after startup."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also define your own transaction strategies (for a CORBA transaction service, for example)."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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—see chapter 1."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Current Session context management with JTA"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/events.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/events.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/events.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,129 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Interceptors"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "You can either implement <literal>Interceptor</literal> directly or extend <literal>EmptyInterceptor</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are two kinds of inteceptors: <literal>Session</literal>-scoped and <literal>SessionFactory</literal>-scoped."
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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: title
+#, no-c-format
+msgid "Event system"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, 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
+#, 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
+#, 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: para
+#, no-c-format
+msgid "You also need a configuration entry telling Hibernate to use the listener in addition to the default listener:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Listeners registered declaratively cannot share instances. If the same class name is used in multiple <literal><listener/></literal> elements, each reference will result in a separate instance of that class. If you need to share listener instances between listener types you must use the programmatic registration approach."
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "First, you must configure the appropriate event listeners, to enable the use of JAAS authorization."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note that <literal><listener type=\"...\" class=\"...\"/></literal> is shorthand for <literal><event type=\"...\"><listener class=\"...\"/></event></literal> when there is exactly one listener for a particular event type."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Next, while still in <literal>hibernate.cfg.xml</literal>, bind the permissions to roles:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_mappings.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_mappings.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_mappings.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,119 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "The following mapping document correctly represents these relationships:"
+msgstr ""
+
+#. Tag: para
+#, 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: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "The mapping document will look like this:"
+msgstr ""
+
+#. Tag: para
+#, 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: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_parentchild.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_parentchild.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_parentchild.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,204 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "One of the first things that new users want to do with Hibernate is to model a parent/child type relationship. There are two different approaches to this. The most convenient approach, especially for new users, is to model both <literal>Parent</literal> and <literal>Child</literal> as entity classes with a <literal><one-to-many></literal> association from <literal>Parent</literal> to <literal>Child</literal>. The alternative approach is to declare the <literal>Child</literal> as a <literal><composite-element></literal>. The default semantics of a one-to-many association in Hibernate are much less close to the usual semantics of a parent/child relationship than those of a composite element mapping. We will explain how to use a <emphasis>bidirectional one-to-many association with cascades</emphasis> to model a parent/child relationship efficiently and elegantly."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate collections are considered to be a logical part of their owning entity and not of the contained entities. Be aware that this is a critical distinction that has the following consequences:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "When you remove/add an object from/to a collection, the version number of the collection owner is incremented."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If an object that was removed from a collection is an instance of a value type (e.g. a composite element), that object will cease to be persistent and its state will be completely removed from the database. Likewise, adding a value type instance to the collection will cause its state to be immediately persistent."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Conversely, if an entity is removed from a collection (a one-to-many or many-to-many association), it will not be deleted by default. This behavior is completely consistent; a change to the internal state of another entity should not cause the associated entity to vanish. Likewise, adding an entity to a collection does not cause that entity to become persistent, by default."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Adding an entity to a collection, by default, merely creates a link between the two entities. Removing the entity will remove the link. This is appropriate for all sorts of cases. However, it is not appropriate in the case of a parent/child relationship. In this case, the life of the child is bound to the life cycle of the parent."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Suppose we start with a simple <literal><one-to-many></literal> association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If we were to execute the following code:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "an <literal>UPDATE</literal> to create the link from <literal>p</literal> to <literal>c</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is not only inefficient, but also violates any <literal>NOT NULL</literal> constraint on the <literal>parent_id</literal> column. You can fix the nullability constraint violation by specifying <literal>not-null=\"true\"</literal> in the collection mapping:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The underlying cause of this behavior is that the link (the foreign key <literal>parent_id</literal>) from <literal>p</literal> to <literal>c</literal> is not considered part of the state of the <literal>Child</literal> object and is therefore not created in the <literal>INSERT</literal>. The solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You also need to add the <literal>parent</literal> property to the <literal>Child</literal> class."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Now that the <literal>Child</literal> entity is managing the state of the link, we tell the collection not to update the link. We use the <literal>inverse</literal> attribute to do this:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You could also create an <literal>addChild()</literal> method of <literal>Parent</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The code to add a <literal>Child</literal> looks like this:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Cascading life cycle"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can address the frustrations of the explicit call to <literal>save()</literal> by using cascades."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This simplifies the code above to:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Similarly, we do not need to iterate over the children when saving or deleting a <literal>Parent</literal>. The following removes <literal>p</literal> and all its children from the database."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "However, the following code:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "will not remove <literal>c</literal> from the database. In this case, it will only remove the link to <literal>p</literal> and cause a <literal>NOT NULL</literal> constraint violation. You need to explicitly <literal>delete()</literal> the <literal>Child</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In our case, a <literal>Child</literal> cannot exist without its parent. So if we remove a <literal>Child</literal> from the collection, we do want it to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan\"</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Even though the collection mapping specifies <literal>inverse=\"true\"</literal>, cascades are still processed by iterating the collection elements. If you need an object be saved, deleted or updated by cascade, you must add it to the collection. It is not enough to simply call <literal>setParent()</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</literal>, made some changes in a UI action and wanted to persist these changes in a new session by calling <literal>update()</literal>. The <literal>Parent</literal> will contain a collection of children and, since the cascading update is enabled, Hibernate needs to know which children are newly instantiated and which represent existing rows in the database. We will also assume that both <literal>Parent</literal> and <literal>Child</literal> have generated identifier properties of type <literal>Long</literal>. Hibernate will use the identifier and version/timestamp property value to determine which of the children are new. (See <xref linkend=\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer necessary to specify an <literal>unsaved-value</literal> explicitly.</emphasis>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following code will update <literal>parent</literal> and <literal>child</literal> and insert <literal>newChild</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This may be suitable for the case of a generated identifier, but what about assigned identifiers and composite identifiers? This is more difficult, since Hibernate cannot use the identifier property to distinguish between a newly instantiated object, with an identifier assigned by the user, and an object loaded in a previous session. In this case, Hibernate will either use the timestamp or version property, or will actually query the second-level cache or, worst case, the database, to see if the row exists."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The sections we have just covered can be a bit confusing. However, in practice, it all works out nicely. Most Hibernate applications use the parent/child pattern in many places."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "We mentioned an alternative in the first paragraph. None of the above issues exist in the case of <literal><composite-element></literal> mappings, which have exactly the semantics of a parent/child relationship. Unfortunately, there are two big limitations with composite element classes: composite elements cannot own collections and they should not be the child of any entity other than the unique parent."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_weblog.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_weblog.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/example_weblog.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The persistent classes here represent a weblog and an item posted in a weblog. They are to be modelled as a standard parent/child relationship, but we will use an ordered bag, instead of a set:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following class demonstrates some of the kinds of things we can do with these classes using Hibernate:"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/filters.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/filters.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/filters.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,94 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Hibernate filters"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "In order to use filters, they must first be defined and then attached to the appropriate mapping elements. To define a filter, use the <literal><filter-def/></literal> element within a <literal><hibernate-mapping/></literal> element:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to a collection:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, no-c-format
+msgid "Methods on the org.hibernate.Filter interface do allow the method-chaining common to much of Hibernate."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following is a full example, using temporal data with an effective record date pattern:"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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
+#, 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
+#, no-c-format
+msgid "After being defined, a filter might be attached to multiple entities and/or collections each with its own condition. This can be problematic when the conditions are the same each time. Using <literal><filter-def/></literal> allows you to definine a default condition, either as an attribute or CDATA:"
+msgstr ""
+
+#. Tag: para
+#, 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/inheritance_mapping.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/inheritance_mapping.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/inheritance_mapping.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,334 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Inheritance mapping"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The three strategies"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "table per subclass"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In addition, Hibernate supports a fourth, slightly different kind of polymorphism:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr ""
+
+#. Tag: para
+#, 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><subclass></literal>, <literal><joined-subclass></literal> and <literal><union-subclass></literal> mappings under the same root <literal><class></literal> element. It is possible to mix together the table per hierarchy and table per subclass strategies under the the same <literal><class></literal> element, by combining the <literal><subclass></literal> and <literal><join></literal> elements (see below for an example)."
+msgstr ""
+
+#. Tag: para
+#, 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: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr ""
+
+#. Tag: para
+#, 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: para
+#, 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
+#, no-c-format
+msgid "Table per subclass"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr ""
+
+#. Tag: para
+#, 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><subclass></literal> and <literal><join></literal>, as follows:"
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can even mix the table per hierarchy and table per subclass strategies using the following approach:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "For any of these mapping strategies, a polymorphic association to the root <literal>Payment</literal> class is mapped using <literal><many-to-one></literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are two ways we can map the table per concrete class strategy. First, you can use <literal><union-subclass></literal>."
+msgstr ""
+
+#. Tag: para
+#, 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
+#, 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
+#, 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
+#, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr ""
+
+#. Tag: para
+#, 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>[ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr ""
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "For this mapping strategy, a polymorphic association to <literal>Payment</literal> is usually mapped using <literal><any></literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Since the subclasses are each mapped in their own <literal><class></literal> element, and since <literal>Payment</literal> is just an 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: para
+#, 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
+#, no-c-format
+msgid "Limitations"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are limitations to the \"implicit polymorphism\" approach to the table per concrete-class mapping strategy. There are somewhat less restrictive limitations to <literal><union-subclass></literal> mappings."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following table shows the limitations of table per concrete-class mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Outer join fetching"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per class-hierarchy"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-many></literal> (for <literal>inverse=\"true\"</literal> only)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><any></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</literal>"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/performance.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/performance.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/performance.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1104 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Immediate fetching</emphasis>: an association, collection or attribute is fetched immediately when the owner is loaded."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>fetch</literal> strategy defined in the mapping document affects:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval that happens implicitly when an association is navigated"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan\"."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A completely different approach to problems with N+1 selects is to use the second-level cache."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Certain operations do <emphasis>not</emphasis> require proxy initialization:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>equals()</literal>: if the persistent class does not override <literal>equals()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>hashCode()</literal>: if the persistent class does not override <literal>hashCode()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate will detect persistent classes that override <literal>equals()</literal> or <literal>hashCode()</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate will now execute only three queries: the pattern is 10, 10, 5."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Fetch profiles"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Another way to affect the fetching strategy for loading associated objects is through something called a fetch profile, which is a named configuration associated with the <interfacename>org.hibernate.SessionFactory</interfacename> but enabled, by name, on the <interfacename>org.hibernate.Session</interfacename>. Once enabled on a <interfacename>org.hibernate.Session</interfacename>, the fetch profile wull be in affect for that <interfacename>org.hibernate.Session</interfacename> until it is explicitly disabled."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "So what does that mean? Well lets explain that by way of an example. Say we have the following mappings:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Now normally when you get a reference to a particular customer, that customer's set of orders will be lazy meaning we will not yet have loaded those orders from the database. Normally this is a good thing. Now lets say that you have a certain use case where it is more efficient to load the customer and their orders together. One way certainly is to use \"dynamic fetching\" strategies via an HQL or criteria queries. But another option is to use a fetch profile to achieve that. Just add the following to your mapping:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Now the following code will actually load both the customer <emphasis>and their orders</emphasis>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Currently only join style fetch profiles are supported, but they plan is to support additional styles. See <ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "To enable lazy property loading, set the <literal>lazy</literal> attribute on your particular property mappings:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "For bytecode instrumentation, use the following Ant task:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can force the usual eager fetching of properties using <literal>fetch all properties</literal> in HQL."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "yes"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "EHCache"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 2"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><cache></literal> element of a class or collection mapping has the following form:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can specify <literal><class-cache></literal> and <literal><collection-cache></literal> elements in <literal>hibernate.cfg.xml</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>usage</literal> attribute specifies a <emphasis>cache concurrency strategy</emphasis>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Concurrency Strategy Support"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "To evict all objects from the session cache, call <literal>Session.clear()</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>CacheMode</literal> controls how a particular session interacts with the second-level cache:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>CacheMode.NORMAL</literal>: will read items from and write items to the second-level cache"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Caching of query results introduces some overhead in terms of your applications normal transactional processing. For example, if you cache results of a query against Person Hibernate will need to keep track of when those results should be invalidated because changes have been committed against Person. That, coupled with the fact that most applications simply gain no benefit from caching query results, leads Hibernate to disable caching of query results by default. To use query caching, you will first need to enable the query cache:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the cached query results"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding timestamps of the most recent updates to queryable tables. These are used to validate the results as they are served from the query cache."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you configure your underlying cache implementation to use expiry or timeouts is is very important that the cache timeout of the underlying cache region for the UpdateTimestampsCache be set to a higher value than the timeouts of any of the query caches. In fact, we recommend that the the UpdateTimestampsCache region not be configured for expiry at all. Note, in particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "As mentioned above, most queries do not benefit from caching or their results. So by default, individual queries are not cached even after enabling query caching. To enable results caching for a particular query, call <literal>org.hibernate.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
+#, no-c-format
+msgid "The query cache does not cache the state of the actual entities in the cache; it caches only identifier values and results of value type. For this reaso, the query cache should always be used in conjunction with the second-level cache for those entities expected to be cached as part of a query result cache (just as with collection caching)."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Query cache regions"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you want to force the query cache to refresh one of its regions (disregard any cached results it finds there) you can use <literal>org.hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction with the region you have defined for the given query, Hibernate will selectively force the results cached in that particular region to be refreshed. This is particularly useful in cases where underlying data may have been updated via a separate process and is a far more efficient alternative to bulk eviction of the region via <literal>org.hibernate.SessionFactory.evictQueries()</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "one-to-many associations"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "many-to-many associations"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "All indexed collections (maps, lists, and arrays) have a primary key consisting of the <literal><key></literal> and <literal><index></literal> columns. In this case, collection updates are extremely efficient. The primary key can be efficiently indexed and a particular row can be efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Sets have a primary key consisting of <literal><key></literal> and element columns. This can be less efficient for some types of collection element, particularly composite elements or large text or binary fields, as the database may not be able to index a complex primary key as efficiently. However, for one-to-many or many-to-many associations, particularly in the case of synthetic identifiers, it is likely to be just as efficient. If you want <literal>SchemaExport</literal> to actually create the primary key of a <literal><set></literal>, you must declare all columns as <literal>not-null=\"true\"</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal><idbag></literal> mappings define a surrogate key, so they are efficient to update. In fact, they are the best case."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Lists, maps, idbags and sets are the most efficient collections to update"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr ""
+
+#. 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"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "One-shot-delete does not apply to collections mapped <literal>inverse=\"true\"</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can activate and deactivate the monitoring for a <literal>SessionFactory</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "at configuration time, set <literal>hibernate.generate_statistics</literal> to <literal>false</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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."
+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 ""
+
+#. 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 ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/persistent_classes.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/persistent_classes.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/persistent_classes.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,284 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Persistent classes are classes in an application that implement the entities of the business problem (e.g. Customer and Order in an E-commerce application). Not all instances of a persistent class are considered to be in the persistent state. For example, an instance can instead be transient or detached."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. However, none of these rules are hard requirements. Indeed, Hibernate3 assumes very little about the nature of your persistent objects. You can express a domain model in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Most Java applications require a persistent class representing felines. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The four main rules of persistent classes are explored in more detail in the following sections."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Cat</literal> has a no-argument constructor. All persistent classes must have a default constructor (which can be non-public) so that Hibernate can instantiate them using <literal>Constructor.newInstance()</literal>. It is recommended that you have a default constructor with at least <emphasis>package</emphasis> visibility for runtime proxy generation in Hibernate."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Cat</literal> has a property called <literal>id</literal>. This property maps to the primary key column of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or <literal>java.util.Date</literal>. If your legacy database table has composite keys, you can use a user-defined class with properties of these types (see the section on composite identifiers later in the chapter.)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier property is strictly optional. You can leave them off and let Hibernate keep track of object identifiers internally. We do not recommend this, however."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In fact, some functionality is available only to classes that declare an identifier property:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "We recommend that you declare consistently-named identifier properties on persistent classes and that you use a nullable (i.e., non-primitive) type."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon the persistent class being either non-final, or the implementation of an interface that declares all public methods."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can persist <literal>final</literal> classes that do not implement an interface with Hibernate. You will not, however, be able to use proxies for lazy association fetching which will ultimately limit your options for performance tuning."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You should also avoid declaring <literal>public final</literal> methods on the non-final classes. If you want to use a class with a <literal>public final</literal> method, you must explicitly disable proxying by setting <literal>lazy=\"false\"</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Cat</literal> declares accessor methods for all its persistent fields. Many other ORM tools directly persist instance variables. It is better to provide an indirection between the relational schema and internal data structures of the class. By default, Hibernate persists JavaBeans style properties and recognizes method names of the form <literal>getFoo</literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If required, you can switch to direct field access for particular properties."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Properties need <emphasis>not</emphasis> be declared public - Hibernate can persist a property with a default, <literal>protected</literal> or <literal>private</literal> get / set pair."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A subclass must also observe the first and second rules. It inherits its identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You have to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods if you:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "intend to put instances of persistent classes in a <literal>Set</literal> (the recommended way to represent many-valued associations); <emphasis>and</emphasis>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate guarantees equivalence of persistent identity (database row) and Java identity only inside a particular session scope. When you mix instances retrieved in different sessions, you must implement <literal>equals()</literal> and <literal>hashCode()</literal> if you wish to have meaningful semantics for <literal>Set</literal>s."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The most obvious way is to implement <literal>equals()</literal>/<literal>hashCode()</literal> by comparing the identifier value of both objects. If the value is the same, both must be the same database row, because they are equal. If both are added to a <literal>Set</literal>, you will only have one element in the <literal>Set</literal>). Unfortunately, you cannot use that approach with generated identifiers. Hibernate will only assign identifier values to objects that are persistent; a newly created instance will not have any identifier value. Furthermore, if an instance is unsaved and currently in a <literal>Set</literal>, saving it will assign an identifier value to the object. If <literal>equals()</literal> and <literal>hashCode()</literal> are based on the identifier value, the hash code would change, breaking the contract of the <literal>Set</literal>. See the Hibernate website for a full discussion of this problem. This is not a Hibernate issue, but normal Ja!
va semantics of object identity and equality."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> using <emphasis>Business key equality</emphasis>. Business key equality means that the <literal>equals()</literal> method compares only the properties that form the business key. It is a key that would identify our instance in the real world (a <emphasis>natural</emphasis> candidate key):"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A business key does not have to be as solid as a database primary key candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable or unique properties are usually good candidates for a business key."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>The following features are currently considered experimental and may change in the near future.</emphasis>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Persistent entities do not necessarily have to be represented as POJO classes or as JavaBean objects at runtime. Hibernate also supports dynamic models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) and the representation of entities as DOM4J trees. With this approach, you do not write persistent classes, only mapping files."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "By default, Hibernate works in normal POJO mode. You can set a default entity representation mode for a particular <literal>SessionFactory</literal> using the <literal>default_entity_mode</literal> configuration option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following examples demonstrate the representation using <literal>Map</literal>s. First, in the mapping file an <literal>entity-name</literal> has to be declared instead of, or in addition to, a class name:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Even though associations are declared using target class names, the target type of associations can also be a dynamic entity instead of a POJO."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "After setting the default entity mode to <literal>dynamic-map</literal> for the <literal>SessionFactory</literal>, you can, at runtime, work with <literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "One of the main advantages of dynamic mapping is quick turnaround time for prototyping, without the need for entity class implementation. However, you lose compile-time type checking and will likely deal with many exceptions at runtime. As a result of the Hibernate mapping, the database schema can easily be normalized and sound, allowing to add a proper domain model implementation on top later on."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Entity representation modes can also be set on a per <literal>Session</literal> basis:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Please note that the call to <literal>getSession()</literal> using an <literal>EntityMode</literal> is on the <literal>Session</literal> API, not the <literal>SessionFactory</literal>. That way, the new <literal>Session</literal> shares the underlying JDBC connection, transaction, and other context information. This means you do not have to call <literal>flush()</literal> and <literal>close()</literal> on the secondary <literal>Session</literal>, and also leave the transaction and connection handling to the primary unit of work."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "More information about the XML representation capabilities can be found in <xref linkend=\"xml\" />."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are responsible for managing a particular representation of a piece of data given that representation's <literal>org.hibernate.EntityMode</literal>. If a given piece of data is thought of as a data structure, then a tuplizer is the thing that knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the corresponding tuplizer knows how create the POJO through its constructor. It also knows how to access the POJO properties using the defined property accessors."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are two high-level types of Tuplizers, represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for managing the above mentioned contracts in regards to entities, while <literal>ComponentTuplizer</literal>s do the same for components."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Users can also plug in their own tuplizers. Perhaps you require that a <literal>java.util.Map</literal> implementation other than <literal>java.util.HashMap</literal> be used while in the dynamic-map entity-mode. Or perhaps you need to define a different proxy generation strategy than the one used by default. Both would be achieved by defining a custom tuplizer implementation. Tuplizer definitions are attached to the entity or component mapping they are meant to manage. Going back to the example of our customer entity:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "EntityNameResolvers"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <interfacename>org.hibernate.EntityNameResolver</interfacename> interface is a contract for resolving the entity name of a given entity instance. The interface defines a single method <methodname>resolveEntityName</methodname> which is passed the entity instance and is expected to return the appropriate entity name (null is allowed and would indicate that the resolver does not know how to resolve the entity name of the given entity instance). Generally speaking, an <interfacename>org.hibernate.EntityNameResolver</interfacename> is going to be most useful in the case of dynamic models. One example might be using proxied interfaces as your domain model. The hibernate test suite has an example of this exact style of usage under the <package>org.hibernate.test.dynamicentity.tuplizer2</package>. Here is some of the code from that package for illustration."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In order to register an <interfacename>org.hibernate.EntityNameResolver</interfacename> users must either:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</link>, implementing the <methodname>getEntityNameResolvers</methodname> method."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</classname> (which is the implementation class for <interfacename>org.hibernate.SessionFactory</interfacename>) using the <methodname>registerEntityNameResolver</methodname> method."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/portability.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/portability.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/portability.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,136 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+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-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: portability.xml:31
+#, no-c-format
+msgid "Database Portability Considerations"
+msgstr ""
+
+#. Tag: title
+#: portability.xml:34
+#, no-c-format
+msgid "Portability Basics"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:36
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:47
+#, no-c-format
+msgid "Dialect"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:49
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:60
+#, no-c-format
+msgid "Dialect resolution"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:62
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:69
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:77
+#, no-c-format
+msgid "Starting with version 3.3, Hibernate has a fare more powerful way to automatically determine which dialect to should be used by relying on a series of delegates which implement the <interfacename>org.hibernate.dialect.resolver.DialectResolver</interfacename> which defines only a single method:<programlisting role=\"JAVA\"><![CDATA[public Dialect resolveDialect(DatabaseMetaData metaData) throws JDBCConnectionException]]></programlisting>. The basic contract here is that if the resolver 'understands' the given database metadata then it returns the corresponding Dialect; if not it returns null and the process continues to the next resolver. The signature also identifies <exceptionname>org.hibernate.exception.JDBCConnectionException</exceptionname> as possibly being thrown. A JDBCConnectionException here is interpreted to imply a \"non transient\" (aka non-recoverable) connection problem and is used to indicate an immediate stop to resolution attempts. All other exceptio!
ns result in a warning and continuing on to the next resolver."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:90
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:103
+#, no-c-format
+msgid "Identifier generation"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:105
+#, 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. <note> <para> Hibernate was changed slightly once the implication of this was better understood so that the insert is delayed in cases where that is feasible. </para> </note> The underlying issue is that the actual semanctics of the application itself changes in these cases."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:130
+#, no-c-format
+msgid "Starting with version 3.2.3, Hibernate comes with a set of <ulink url=\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators targetting portability in a much different way. <note> <para> There are specifically 2 bundled <emphasis>enhanced</emphasis>generators: <itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> <classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </listitem> </itemizedlist> </para> </note> The idea behind these generators is to port the actual semantics of the identifer value generation to the different databases. For example, the <classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname> mimics the behavior of a sequence on databases which do not support sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#: portability.xml:159
+#, no-c-format
+msgid "Database functions"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:162
+#, no-c-format
+msgid "This is an area in Hibernate in need of improvement. In terms of portability concerns, this function handling currently works pretty well from HQL; however, it is quite lacking in all other aspects."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:169
+#, no-c-format
+msgid "SQL functions can be referenced in many ways by users. However, not all databases support the same set of functions. Hibernate, provides a means of mapping a <emphasis>logical</emphasis> function name to a delegate which knows how to render that particular function, perhaps even using a totally different physical function call."
+msgstr ""
+
+#. Tag: para
+#: portability.xml:175
+#, 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 ""
+
+#. Tag: para
+#: portability.xml:182
+#, 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 ""
+
+#. Tag: title
+#: portability.xml:192
+#, no-c-format
+msgid "Type mappings"
+msgstr ""
+
+#. Tag: para
+#: portability.xml:194
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/preface.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/preface.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/preface.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,84 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an Object/Relational Mapping tool for Java environments. The term Object/Relational Mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Read <xref linkend=\"architecture\" /> to understand the environments where Hibernate can be used."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Use this reference documentation as your primary source of information. Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need more help with application design, or if you prefer a step-by-step tutorial. Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Links to third party demos, examples, and tutorials are maintained on the Hibernate website."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_criteria.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_criteria.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_criteria.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,244 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate features an intuitive, extensible criteria query API."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>{alias}</literal> placeholder with be replaced by the row alias of the queried entity."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can order the results using <literal>org.hibernate.criterion.Order</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "By navigating associations using <literal>createCriteria()</literal> you can specify constraints upon related entities:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This will return all of the <literal>Cat</literal>s with a mate whose name starts with \"good\" ordered by their mate's age, and all cats who do not have a mate. This is useful when there is a need to order or limit in the database prior to returning complex/large result sets, and removes many instances where multiple queries would have to be performed and the results unioned by java in memory."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Without this feature, first all of the cats without a mate would need to be loaded in one query."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A second query would need to retreive the cats with mates who's name started with \"good\" sorted by the mates age."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can specify association fetching semantics at runtime using <literal>setFetchMode()</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can even use examples to place criteria upon associated objects."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also use <literal>Property.forName()</literal> to express projections:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "First, map the natural key of your entity using <literal><natural-id></literal> and enable use of the second-level cache."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This functionality is not intended for use with entities with <emphasis>mutable</emphasis> natural keys."
+msgstr ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_hql.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_hql.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_hql.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,794 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate uses a powerful query language (HQL) that is similar in appearance to SQL. Compared with SQL, however, HQL is fully object-oriented and understands notions like inheritance, polymorphism and association."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "With the exception of names of Java classes and properties, queries are case-insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</literal> is the same as <literal>SELECT</literal>, but <literal>org.hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses lowercase HQL keywords. Some users find queries with uppercase keywords more readable, but this convention is unsuitable for queries embedded in Java code."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This returns all instances of the class <literal>eg.Cat</literal>. You do not usually need to qualify the class name, since <literal>auto-import</literal> is the default. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In order to refer to the <literal>Cat</literal> in other parts of the query, you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This query assigns the alias <literal>cat</literal> to <literal>Cat</literal> instances, so you can use that alias later in the query. The <literal>as</literal> keyword is optional. You could also write:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Multiple classes can appear, resulting in a cartesian product or \"cross\" join."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "It is good practice to name query aliases using an initial lowercase as this is consistent with Java naming standards for local variables (e.g. <literal>domesticCat</literal>)."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also assign aliases to associated entities or to elements of a collection of values using a <literal>join</literal>. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>inner join</literal>, <literal>left outer join</literal> and <literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You may supply extra join conditions using the HQL <literal>with</literal> keyword."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A \"fetch\" join allows associations or collections of values to be initialized along with their parent objects using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A fetch join does not usually need to assign an alias, because the associated objects should not be used in the <literal>where</literal> clause (or any other clause). The associated objects are also not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason you might need an alias is if you are recursively join fetching a further collection:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>fetch</literal> construct cannot be used in queries called using <literal>iterate()</literal> (though <literal>scroll()</literal> can be used). <literal>Fetch</literal> should be used together with <literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, as these operations are based on the result rows which usually contain duplicates for eager collection fetching, hence, the number of rows is not what you would expect. <literal>Fetch</literal> should also not be used together with impromptu <literal>with</literal> condition. It is possible to create a cartesian product by join fetching more than one collection in a query, so take care in this case. Join fetching multiple collection roles can produce unexpected results for bag mappings, so user discretion is advised when formulating queries in this case. Finally, note that <literal>full join fetch</literal> and <literal>right join fetch</literal> are not meaningful."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties in the first query immediately using <literal>fetch all properties</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL supports two forms of association joining: <literal>implicit</literal> and <literal>explicit</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The queries shown in the previous section all use the <literal>explicit</literal> form, that is, where the join keyword is explicitly used in the from clause. This is the recommended form."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>implicit</literal> form does not use the join keyword. Instead, the associations are \"dereferenced\" using dot-notation. <literal>implicit</literal> joins can appear in any of the HQL clauses. <literal>implicit</literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Referring to identifier property"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The special property (lowercase) <literal>id</literal> may be used to reference the identifier property of an entity <emphasis>provided that the entity does not define a non-identifier property named id</emphasis>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If the entity defines a named identifier property, you can use that property name."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named id, the composite identifier property can only be referenced by its defined named. Otherwise, the special <literal>id</literal> property can be used to reference the identifier property."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Please note that, starting in version 3.2.2, this has changed significantly. In previous versions, <literal>id</literal> <emphasis>always</emphasis> referred to the identifier property regardless of its actual name. A ramification of that decision was that non-identifier properties named <literal>id</literal> could never be referenced in Hibernate queries."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>select</literal> clause picks which objects and properties to return in the query result set. Consider the following:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The query will select <literal>mate</literal>s of other <literal>Cat</literal>s. You can express this query more compactly as:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Queries can return properties of any value type including properties of component type:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Queries can return multiple objects and/or properties as an array of type <literal>Object[]</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Or - assuming that the class <literal>Family</literal> has an appropriate constructor - as an actual typesafe Java object:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is most useful when used together with <literal>select new map</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries can even return the results of aggregate functions on properties:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can use arithmetic operators, concatenation, and recognized SQL functions in the select clause:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>distinct</literal> and <literal>all</literal> keywords can be used and have the same semantics as in SQL."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "returns instances not only of <literal>Cat</literal>, but also of subclasses like <literal>DomesticCat</literal>. Hibernate queries can name <emphasis>any</emphasis> Java class or interface in the <literal>from</literal> clause. The query will return instances of all persistent classes that extend that class or implement the interface. The following query would return all persistent objects:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The interface <literal>Named</literal> might be implemented by various persistent classes:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "These last two queries will require more than one SQL <literal>SELECT</literal>. This means that the <literal>order by</literal> clause does not correctly order the whole result set. It also means you cannot call these queries using <literal>Query.scroll()</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>where</literal> clause allows you to refine the list of instances returned. If no alias exists, you can refer to properties by name:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "returns all instances of <literal>Foo</literal> with an instance of <literal>bar</literal> with a <literal>date</literal> property equal to the <literal>startDate</literal> property of the <literal>Foo</literal>. Compound path expressions make the <literal>where</literal> clause extremely powerful. Consider the following:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This query translates to an SQL query with a table (inner) join. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>=</literal> operator can be used to compare not only properties, but also instances:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The special property (lowercase) <literal>id</literal> can be used to reference the unique identifier of an object. See <xref linkend=\"queryhql-identifier-property\" /> for more information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of composite identifiers can also be used. Consider the following example where <literal>Person</literal> has composite identifiers consisting of <literal>country</literal> and <literal>medicareNumber</literal>:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"queryhql-identifier-property\" /> for more information regarding referencing identifier properties)"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The special property <literal>class</literal> accesses the discriminator value of an instance in the case of polymorphic persistence. A Java class name embedded in the where clause will be translated to its discriminator value."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also use components or composite user types, or properties of said component types. See <xref linkend=\"queryhql-components\" /> for more information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "An \"any\" type has the special properties <literal>id</literal> and <literal>class</literal> that allows you to express a join in the following way (where <literal>AuditLog.item</literal> is a property mapped with <literal><any></literal>):"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>log.item.class</literal> and <literal>payment.class</literal> would refer to the values of completely different database columns in the above query."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Expressions used in the <literal>where</literal> clause include the following:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "binary comparison operators: <literal>=, >=, <=, <>, !=, like</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "string concatenation <literal>...||...</literal> or <literal>concat(...,...)</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>current_date()</literal>, <literal>current_time()</literal>, and <literal>current_timestamp()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, and <literal>year(...)</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>str()</literal> for converting numeric or temporal values to a readable string"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>cast(... as ...)</literal>, where the second argument is the name of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI <literal>cast()</literal> and <literal>extract()</literal> is supported by the underlying database"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the HQL <literal>index()</literal> function, that applies to aliases of a joined indexed collection"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL functions that take collection-valued path expressions: <literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>, along with the special <literal>elements()</literal> and <literal>indices</literal> functions that can be quantified using <literal>some, all, exists, any, in</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Any database-supported SQL scalar function like <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "named parameters <literal>:name</literal>, <literal>:start_date</literal>, and <literal>:x1</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Java <literal>public static final</literal> constants <literal>eg.Color.TABBY</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Similarly, <literal>is null</literal> and <literal>is not null</literal> can be used to test for null values."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Booleans can be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This will replace the keywords <literal>true</literal> and <literal>false</literal> with the literals <literal>1</literal> and <literal>0</literal> in the translated SQL from this HQL:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can test the size of a collection with the special property <literal>size</literal> or the special <literal>size()</literal> function."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "For indexed collections, you can refer to the minimum and maximum indices using <literal>minindex</literal> and <literal>maxindex</literal> functions. Similarly, you can refer to the minimum and maximum elements of a collection of basic type using the <literal>minelement</literal> and <literal>maxelement</literal> functions. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL functions <literal>any, some, all, exists, in</literal> are supported when passed the element or index set of a collection (<literal>elements</literal> and <literal>indices</literal> functions) or the result of a subquery (see below):"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note that these constructs - <literal>size</literal>, <literal>elements</literal>, <literal>indices</literal>, <literal>minindex</literal>, <literal>maxindex</literal>, <literal>minelement</literal>, <literal>maxelement</literal> - can only be used in the where clause in Hibernate3."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Elements of indexed collections (arrays, lists, and maps) can be referred to by index in a where clause only:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The expression inside <literal>[]</literal> can even be an arithmetic expression:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL also provides the built-in <literal>index()</literal> function for elements of a one-to-many association or collection of values."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Consider how much longer and less readable the following query would be in SQL:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The list returned by a query can be ordered by any property of a returned class or components:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order respectively."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A query that returns aggregate values can be grouped by any property of a returned class or components:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "SQL functions and aggregate functions are allowed in the <literal>having</literal> and <literal>order by</literal> clauses if they are supported by the underlying database (i.e., not in MySQL)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Neither the <literal>group by</literal> clause nor the <literal>order by</literal> clause can contain arithmetic expressions. Hibernate also does not currently expand a grouped entity, so you cannot write <literal>group by cat</literal> if all properties of <literal>cat</literal> are non-aggregated. You have to list all non-aggregated properties explicitly."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note that subqueries can also utilize <literal>row value constructor</literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more information."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's main strengths. The following example queries are similar to queries that have been used on recent projects. Please note that most queries you will write will be much simpler than the following examples."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following query returns the order id, number of items, the given minimum total value and the total value of the order for all unpaid orders for a particular customer. The results are ordered by total value. In determining the prices, it uses the current catalog. The resulting SQL query, against the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The next query counts the number of payments in each status, excluding all payments in the <literal>AWAITING_APPROVAL</literal> status where the most recent status change was made by the current user. It translates to an SQL query with two inner joins and a correlated subselect against the <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and <literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If the <literal>statusChanges</literal> collection was mapped as a list, instead of a set, the query would have been much simpler to write."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The next query uses the MS SQL Server <literal>isNull()</literal> function to return all the accounts and unpaid payments for the organization to which the current user belongs. It translates to an SQL query with three inner joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and <literal>ORG_USER</literal> tables."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL now supports <literal>update</literal>, <literal>delete</literal> and <literal>insert ... select ...</literal> statements. See <xref linkend=\"batch-direct\" /> for more information."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If your database supports subselects, you can place a condition upon selection size in the where clause of your query:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "As this solution cannot return a <literal>User</literal> with zero messages because of the inner join, the following form is also useful:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Collections are pageable by using the <literal>Query</literal> interface with a filter:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Components can be used similarly to the simple value types that are used in HQL queries. They can appear in the <literal>select</literal> clause as follows:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "where the Person's name property is a component. Components can also be used in the <literal>where</literal> clause:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Another common use of components is in <link linkend=\"queryhql-tuple\">row value constructors</link>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "HQL supports the use of ANSI SQL <literal>row value constructor</literal> syntax, sometimes referred to AS <literal>tuple</literal> syntax, even though the underlying database may not support that notion. Here, we are generally referring to multi-valued comparisons, typically associated with components. Consider an entity Person which defines a name component:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "That is valid syntax although it is a little verbose. You can make this more concise by using <literal>row value constructor</literal> syntax:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "It can also be useful to specify this in the <literal>select</literal> clause:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Using <literal>row value constructor</literal> syntax can also be beneficial when using subqueries that need to compare against multiple values:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "One thing to consider when deciding if you want to use this syntax, is that the query will be dependent upon the ordering of the component sub-properties in the metadata."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_sql.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_sql.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/query_sql.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,594 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following form is not vulnerable to column name duplication:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].[componentname].[propertyname]}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "property of the element in the collection"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the the collection"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><return-join></literal> element is use to join associations and the <literal><load-collection></literal> element is used to define queries which initialize collections,"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the <literal><return-scalar></literal> element:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can externalize the resultset mapping information in a <literal><resultset></literal> element which will allow you to either reuse them across several named queries or through the <literal>setResultSetMapping()</literal> API."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can, alternatively, use the resultset mapping information in your hbm files directly in java code."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can explicitly tell Hibernate what column aliases to use with <literal><return-property></literal>, instead of using the <literal>{}</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal><return-property></literal> also works with multiple columns. This solves a limitation with the <literal>{}</literal>-syntax which cannot allow fine grained control of multi-column properties."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In this example <literal><return-property></literal> was used in combination with the <literal>{}</literal>-syntax for injection. This allows users to choose how they want to refer column and properties."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If your mapping has a discriminator you must use <literal><return-discriminator></literal> to specify the discriminator column."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "To use this query in Hibernate you need to map it via a named query."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Stored procedures currently only return scalars and entities. <literal><return-join></literal> and <literal><load-collection></literal> are not supported."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Stored procedure queries cannot be paged with <literal>setFirstResult()/setMaxResults()</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The recommended call form is standard SQL92: <literal>{ ? = call functionName(<parameters>) }</literal> or <literal>{ ? = call procedureName(<parameters>}</literal>. Native call syntax is not supported."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 can use custom SQL for create, update, and delete operations. The SQL can be overridden at the statement level or inidividual column level. This section describes statement overrides. For columns, see <xref linkend=\"mapping-column-read-and-write\" />."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The class and collection persisters in Hibernate already contain a set of configuration time generated strings (insertsql, deletesql, updatesql etc.). The mapping tags <literal><sql-insert></literal>, <literal><sql-delete></literal>, and <literal><sql-update></literal> override these strings:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Stored procedures are supported if the <literal>callable</literal> attribute is set:"
+msgstr ""
+
+#. 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."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also declare your own SQL (or HQL) queries for entity loading. As with inserts, updates, and deletes, this can be done at the individual column level as described in <xref linkend=\"mapping-column-read-and-write\" /> or at the statement level. Here is an example of a statement level override:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can also define an entity loader that loads a collection by join fetching:"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/readonly.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/readonly.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/readonly.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,951 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+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-xml2pot; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: readonly.xml:33
+#, no-c-format
+msgid "Read-only entities"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:36
+#, no-c-format
+msgid "Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ from what you may have encountered elsewhere. Incorrect usage may cause unexpected results."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:43
+#, no-c-format
+msgid "When an entity is read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:48
+#, no-c-format
+msgid "Hibernate does not dirty-check the entity's simple properties or single-ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:54
+#, no-c-format
+msgid "Hibernate will not update simple properties or updatable single-ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:60
+#, no-c-format
+msgid "Hibernate will not update the version of the read-only entity if only simple properties or single-ended updatable associations are changed;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:69
+#, no-c-format
+msgid "In some ways, Hibernate treats read-only entities the same as entities that are not read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:75
+#, no-c-format
+msgid "Hibernate cascades operations to associations as defined in the entity mapping."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:81
+#, no-c-format
+msgid "Hibernate updates the version if the entity has a collection with changes that dirties the entity;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:87
+#, no-c-format
+msgid "A read-only entity can be deleted."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:94
+#, no-c-format
+msgid "Even if an entity is not read-only, its collection association can be affected if it contains a read-only entity."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:99
+#, no-c-format
+msgid "For details about the affect of read-only entities on different property and association types, see <xref linkend=\"readonly-proptypes\"/>."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:105
+#, no-c-format
+msgid "For details about how to make entities read-only, see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:110
+#, no-c-format
+msgid "Hibernate does some optimizing for read-only entities:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:115
+#, no-c-format
+msgid "It saves execution time by not dirty-checking simple properties or single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:121
+#, no-c-format
+msgid "It saves memory by deleting database snapshots."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:128
+#, no-c-format
+msgid "Making persistent entities read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:130
+#, no-c-format
+msgid "Only persistent entities can be made read-only. Transient and detached entities must be put in persistent state before they can be made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:136
+#, no-c-format
+msgid "Hibernate provides the following ways to make persistent entities read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:142
+#, no-c-format
+msgid "you can map an entity class as <emphasis>immutable</emphasis>; when an entity of an immutable class is made persistent, Hibernate automatically makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:150
+#, no-c-format
+msgid "you can change a default so that entities loaded into the session by Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-loaddefault\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:157
+#, no-c-format
+msgid "you can make an HQL query or criteria read-only so that entities loaded when the query or criteria executes, scrolls, or iterates, are automatically made read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:165
+#, no-c-format
+msgid "you can make a persistent entity that is already in the in the session read-only; see <xref linkend=\"readonly-api-entity\"/> for details"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:174
+#, no-c-format
+msgid "Entities of immutable classes"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:176
+#, no-c-format
+msgid "When an entity instance of an immutable class is made persistent, Hibernate automatically makes it read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:180
+#, no-c-format
+msgid "An entity of an immutable class can created and deleted the same as an entity of a mutable class."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:185
+#, no-c-format
+msgid "Hibernate treats a persistent entity of an immutable class the same way as a read-only persistent entity of a mutable class. The only exception is that Hibernate will not allow an entity of an immutable class to be changed so it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:196
+#, no-c-format
+msgid "Loading persistent entities as read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:199 readonly.xml:286
+#, no-c-format
+msgid "Entities of immutable classes are automatically loaded as read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:205
+#, no-c-format
+msgid "To change the default behavior so Hibernate loads entity instances of mutable classes into the session and automatically makes them read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:210
+#, no-c-format
+msgid "Session.setDefaultReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:212
+#, no-c-format
+msgid "To change the default back so entities loaded by Hibernate are not made read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:216
+#, no-c-format
+msgid "Session.setDefaultReadOnly( false );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:218
+#, no-c-format
+msgid "You can determine the current setting by calling:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:221
+#, no-c-format
+msgid "Session.isDefaultReadOnly();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:223
+#, no-c-format
+msgid "If Session.isDefaultReadOnly() returns true, entities loaded by the following are automatically made read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:229
+#, no-c-format
+msgid "Session.load()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:234
+#, no-c-format
+msgid "Session.get()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:239
+#, no-c-format
+msgid "Session.merge()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:244
+#, no-c-format
+msgid "executing, scrolling, or iterating HQL queries and criteria; to override this setting for a particular HQL query or criteria see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:253
+#, no-c-format
+msgid "Changing this default has no effect on:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:258
+#, no-c-format
+msgid "persistent entities already in the session when the default was changed"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:264
+#, no-c-format
+msgid "persistent entities that are refreshed via Session.refresh(); a refreshed persistent entity will only be read-only if it was read-only before refreshing"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:272
+#, no-c-format
+msgid "persistent entities added by the application via Session.persist(), Session.save(), and Session.update() Session.saveOrUpdate()"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:283
+#, no-c-format
+msgid "Loading read-only entities from an HQL query/criteria"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:292
+#, no-c-format
+msgid "If Session.isDefaultReadOnly() returns false (the default) when an HQL query or criteria executes, then entities and proxies of mutable classes loaded by the query will not be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:299
+#, no-c-format
+msgid "You can override this behavior so that entities and proxies loaded by an HQL query or criteria are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:304
+#, no-c-format
+msgid "For an HQL query, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:307
+#, no-c-format
+msgid "Query.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:309
+#, no-c-format
+msgid "<literal>Query.setReadOnly( true )</literal> must be called before <literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, <literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:315
+#, no-c-format
+msgid "For an HQL criteria, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:318
+#, no-c-format
+msgid "Criteria.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:320
+#, no-c-format
+msgid "<literal>Criteria.setReadOnly( true )</literal> must be called before <literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</literal>, or <literal>Criteria.scroll()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:326
+#, no-c-format
+msgid "Entities and proxies that exist in the session before being returned by an HQL query or criteria are not affected."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:331
+#, no-c-format
+msgid "Uninitialized persistent collections returned by the query are not affected. Later, when the collection is initialized, entities loaded into the session will be read-only if Session.isDefaultReadOnly() returns true."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:338
+#, no-c-format
+msgid "Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria.setReadOnly( true )</literal> works well when a single HQL query or criteria loads all the entities and intializes all the proxies and collections that the application needs to be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:346
+#, no-c-format
+msgid "When it is not possible to load and initialize all necessary entities in a single query or criteria, you can temporarily change the session default to load entities as read-only before the query is executed. Then you can explicitly initialize proxies and collections before restoring the session default."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:355
+#, no-c-format
+msgid ""
+ "Session session = factory.openSession();\n"
+ "Transaction tx = session.beginTransaction();\n"
+ " \n"
+ "setDefaultReadOnly( true );\n"
+ "Contract contract = \n"
+ " ( Contract ) session.createQuery(\n"
+ " \"from Contract where customerName = 'Sherman'\" )\n"
+ " .uniqueResult();\n"
+ "Hibernate.initialize( contract.getPlan() );\n"
+ "Hibernate.initialize( contract.getVariations() );\n"
+ "Hibernate.initialize( contract.getNotes() );\n"
+ "setDefaultReadOnly( false );\n"
+ "...\n"
+ "tx.commit();\n"
+ "session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:357
+#, no-c-format
+msgid "If Session.isDefaultReadOnly() returns true, then you can use Query.setReadOnly( false ) and Criteria.setReadOnly( false ) to override this session setting and load entities that are not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:367
+#, no-c-format
+msgid "Making a persistent entity read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:369
+#, no-c-format
+msgid "Persistent entities of immutable classes are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:375
+#, no-c-format
+msgid "To make a persistent entity or proxy read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:378
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, true)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:380
+#, no-c-format
+msgid "To change a read-only entity or proxy of a mutable class so it is no longer read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:384
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, false)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:387
+#, no-c-format
+msgid "When a read-only entity or proxy is changed so it is no longer read-only, Hibernate assumes that the current state of the read-only entity is consistent with its database representation. If this is not true, then any non-flushed changes made before or while the entity was read-only, will be ignored."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:396
+#, no-c-format
+msgid "To throw away non-flushed changes and make the persistent entity consistent with its database representation, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:400
+#, no-c-format
+msgid "session.refresh( entity );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:402
+#, no-c-format
+msgid "To flush changes made before or while the entity was read-only and make the database representation consistent with the current state of the persistent entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:408
+#, no-c-format
+msgid ""
+ "// evict the read-only entity so it is detached\n"
+ "session.evict( entity );\n"
+ "\n"
+ "// make the detached entity (with the non-flushed changes) persistent\n"
+ "session.update( entity );\n"
+ "\n"
+ "// now entity is no longer read-only and its changes can be flushed\n"
+ "s.flush();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:413
+#, no-c-format
+msgid "Read-only affect on property type"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:415
+#, no-c-format
+msgid "The following table summarizes how different property types are affected by making an entity read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:421
+#, no-c-format
+msgid "Affect of read-only entity on property types"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:427
+#, no-c-format
+msgid "Property/Association Type"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:428
+#, no-c-format
+msgid "Changes flushed to DB?"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:433
+#, no-c-format
+msgid "Simple"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:435
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:439
+#, no-c-format
+msgid "<entry>no*</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:443
+#, no-c-format
+msgid "Unidirectional one-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:444
+#, no-c-format
+msgid "Unidirectional many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:445
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:451 readonly.xml:452
+#, no-c-format
+msgid "<para>no*</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:457
+#, no-c-format
+msgid "Unidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:458
+#, no-c-format
+msgid "Unidirectional many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:459
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:464 readonly.xml:465 readonly.xml:489
+#, no-c-format
+msgid "<para>yes</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:470
+#, no-c-format
+msgid "<para>Bidirectional one-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:471
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:475
+#, no-c-format
+msgid "only if the owning entity is not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:479
+#, no-c-format
+msgid "<para>Bidirectional one-to-many/many-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:480
+#, no-c-format
+msgid "inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:481
+#, no-c-format
+msgid "non-inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:482
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:488
+#, no-c-format
+msgid "only added/removed entities that are not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:494
+#, no-c-format
+msgid "<para>Bidirectional many-to-many</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:495
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:499
+#, no-c-format
+msgid "<entry>yes</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:505
+#, no-c-format
+msgid "* Behavior is different when the entity having the property/association is read-only, compared to when it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:511
+#, no-c-format
+msgid "Simple properties"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:513
+#, no-c-format
+msgid "When a persistent object is read-only, Hibernate does not dirty-check simple properties."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:518
+#, no-c-format
+msgid "Hibernate will not synchronize simple property state changes to the database. If you have automatic versioning, Hibernate will not increment the version if any simple properties change."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:524
+#, no-c-format
+msgid ""
+ "Session session = factory.openSession();\n"
+ "Transaction tx = session.beginTransaction();\n"
+ "\n"
+ "// get a contract and make it read-only\n"
+ "Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+ "session.setReadOnly( contract, true );\n"
+ "\n"
+ "// contract.getCustomerName() is \"Sherman\"\n"
+ "contract.setCustomerName( \"Yogi\" );\n"
+ "tx.commit();\n"
+ "\n"
+ "tx = session.beginTransaction();\n"
+ "\n"
+ "contract = ( Contract ) session.get( Contract.class, contractId );\n"
+ "// contract.getCustomerName() is still \"Sherman\"\n"
+ "...\n"
+ "tx.commit();\n"
+ "session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:529
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:532
+#, no-c-format
+msgid "Unidirectional one-to-one and many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:534
+#, no-c-format
+msgid "Hibernate treats unidirectional one-to-one and many-to-one associations in the same way when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:540
+#, no-c-format
+msgid "We use the term <emphasis>unidirectional single-ended association</emphasis> when referring to functionality that is common to unidirectional one-to-one and many-to-one associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:547
+#, no-c-format
+msgid "Hibernate does not dirty-check unidirectional single-ended associations when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:552
+#, no-c-format
+msgid "If you change a read-only entity's reference to a unidirectional single-ended association to null, or to refer to a different entity, that change will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:560
+#, no-c-format
+msgid "If an entity is of an immutable class, then its references to unidirectional single-ended associations must be assigned when that entity is first created. Because the entity is automatically made read-only, these references can not be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:570
+#, no-c-format
+msgid "If automatic versioning is used, Hibernate will not increment the version due to local changes to unidirectional single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:576
+#, no-c-format
+msgid "In the following examples, Contract has a unidirectional many-to-one association with Plan. Contract cascades save and update operations to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:582
+#, no-c-format
+msgid "The following shows that changing a read-only entity's many-to-one association reference to null has no effect on the entity's database representation."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:588
+#, no-c-format
+msgid ""
+ "// get a contract with an existing plan;\n"
+ "// make the contract read-only and set its plan to null \n"
+ "tx = session.beginTransaction();\n"
+ "Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+ "session.setReadOnly( contract, true );\n"
+ "contract.setPlan( null );\n"
+ "tx.commit();\n"
+ "\n"
+ "// get the same contract\n"
+ "tx = session.beginTransaction();\n"
+ "contract = ( Contract ) session.get( Contract.class, contractId );\n"
+ "\n"
+ "// contract.getPlan() still refers to the original plan;\n"
+ "\n"
+ "tx.commit();\n"
+ "session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:590
+#, no-c-format
+msgid "The following shows that, even though an update to a read-only entity's many-to-one association has no affect on the entity's database representation, flush still cascades the save-update operation to the locally changed association."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:599
+#, no-c-format
+msgid ""
+ "// get a contract with an existing plan;\n"
+ "// make the contract read-only and change to a new plan\n"
+ "tx = session.beginTransaction();\n"
+ "Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+ "session.setReadOnly( contract, true );\n"
+ "Plan newPlan = new Plan( \"new plan\"\n"
+ "contract.setPlan( newPlan);\n"
+ "tx.commit();\n"
+ "\n"
+ "// get the same contract\n"
+ "tx = session.beginTransaction();\n"
+ "contract = ( Contract ) session.get( Contract.class, contractId );\n"
+ "newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
+ "\n"
+ "// contract.getPlan() still refers to the original plan;\n"
+ "// newPlan is non-null because it was persisted when \n"
+ "// the previous transaction was committed; \n"
+ "\n"
+ "tx.commit();\n"
+ "session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:604
+#, no-c-format
+msgid "Unidirectional one-to-many and many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:606
+#, no-c-format
+msgid "Hibernate treats unidirectional one-to-many and many-to-many associations owned by a read-only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:613
+#, no-c-format
+msgid "Hibernate dirty-checks unidirectional one-to-many and many-to-many associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:618
+#, no-c-format
+msgid "The collection can contain entities that are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:624
+#, no-c-format
+msgid "Entities can be added and removed from the collection; changes are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:629
+#, no-c-format
+msgid "If automatic versioning is used, Hibernate will update the version due to changes in the collection if they dirty the owning entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:640
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:643
+#, no-c-format
+msgid "<title>Bidirectional one-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:645
+#, no-c-format
+msgid "If a read-only entity owns a bidirectional one-to-one association:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:652
+#, no-c-format
+msgid "Hibernate does not dirty-check the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:657
+#, no-c-format
+msgid "updates that change the association reference to null or to refer to a different entity will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:664
+#, no-c-format
+msgid "If automatic versioning is used, Hibernate will not increment the version due to local changes to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:673
+#, no-c-format
+msgid "If an entity is of an immutable class, and it owns a bidirectional one-to-one association, then its reference must be assigned when that entity is first created. Because the entity is automatically made read-only, these references cannot be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:683
+#, no-c-format
+msgid "When the owner is not read-only, Hibernate treats an association with a read-only entity the same as when the association is with an entity that is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:693
+#, no-c-format
+msgid "<title>Bidirectional one-to-many/many-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:695
+#, no-c-format
+msgid "A read-only entity has no impact on a bidirectional one-to-many/many-to-one association if:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:702
+#, no-c-format
+msgid "the read-only entity is on the one-to-many side using an inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:708
+#, no-c-format
+msgid "the read-only entity is on the one-to-many side using a non-inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:714
+#, no-c-format
+msgid "the one-to-many side uses a non-inverse collection that contains the read-only entity"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:721
+#, no-c-format
+msgid "When the one-to-many side uses an inverse collection:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:727
+#, no-c-format
+msgid "a read-only entity can only be added to the collection when it is created;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:733
+#, no-c-format
+msgid "a read-only entity can only be removed from the collection by an orphan delete or by explicitly deleting the entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:744
+#, no-c-format
+msgid "<title>Bidirectional many-to-many</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:745
+#, no-c-format
+msgid "Hibernate treats bidirectional many-to-many associations owned by a read-only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:752
+#, no-c-format
+msgid "Hibernate dirty-checks bidirectional many-to-many associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:757
+#, no-c-format
+msgid "The collection on either side of the association can contain entities that are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:763
+#, no-c-format
+msgid "Entities are added and removed from both sides of the collection; changes are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:769
+#, no-c-format
+msgid "If automatic versioning is used, Hibernate will update the version due to changes in both sides of the collection if they dirty the entity owning the respective collections."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/session_api.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/session_api.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/session_api.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,759 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-02-11T05:38:15\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can assign the identifier using an overloaded version of <literal>save()</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate queries sometimes return tuples of objects. Each tuple is returned as an array:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "named parameters are insensitive to the order they occur in the query string"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate knows how to translate this limit query into the native SQL of your DBMS."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Also note that a query declaration inside a <literal><hibernate-mapping></literal> element requires a global unique name for the query, while a query declaration inside a <literal><class></literal> element is made unique automatically by prepending the fully qualified name of the class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Other models for long units of work are discussed in <xref linkend=\"transactions-optimistic\" />."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are used in the following scenario:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "if another object associated with the session has the same identifier, throw an exception"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "if the object has no identifier property, <literal>save()</literal> it"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is versioned by a <literal><version></literal> or <literal><timestamp></literal>, and the version property value is the same value assigned to a newly instantiated object, <literal>save()</literal> it"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "the given instance does not become associated with the session, it remains detached"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing database row with the same identifier"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "all entity insertions in the same order the corresponding objects were saved using <literal>Session.save()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "all entity deletions in the same order the corresponding objects were deleted using <literal>Session.delete()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "An exception is that objects using <literal>native</literal> ID generation are inserted when they are saved."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "It does not usually make sense to enable cascade on a <literal><many-to-one></literal> or <literal><many-to-many></literal> association. Cascade is often useful for <literal><one-to-one></literal> and <literal><one-to-many></literal> associations."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Furthermore, a mere reference to a child from a persistent parent will result in save/update of the child. This metaphor is incomplete, however. A child which becomes unreferenced by its parent is <emphasis>not</emphasis> automatically deleted, except in the case of a <literal><one-to-many></literal> association mapped with <literal>cascade=\"delete-orphan\"</literal>. The precise semantics of cascading operations for a parent/child relationship are as follows:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If a parent is passed to <literal>persist()</literal>, all children are passed to <literal>persist()</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If a parent is passed to <literal>merge()</literal>, all children are passed to <literal>merge()</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "If a parent is deleted, all children are passed to <literal>delete()</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/toolset_guide.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/toolset_guide.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/toolset_guide.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,629 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Roundtrip engineering with Hibernate is possible using a set of Eclipse plugins, commandline tools, and Ant tasks."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hibernate Tools</emphasis> currently include plugins for the Eclipse IDE as well as Ant tasks for reverse engineering of existing databases:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping files that supports auto-completion and syntax highlighting. It also supports semantic auto-completion for class names and property/field names, making it more versatile than a normal XML editor."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Console:</emphasis> the console is a new view in Eclipse. In addition to a tree overview of your console configurations, you are also provided with an interactive view of your persistent classes and their relationships. The console allows you to execute HQL queries against your database and browse the result directly in Eclipse."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Development Wizards:</emphasis> several wizards are provided with the Hibernate Eclipse tools. You can use a wizard to quickly generate Hibernate configuration (cfg.xml) files, or to reverse engineer an existing database schema into POJO source files and Hibernate mapping files. The reverse engineering wizard supports customizable templates."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Please refer to the <emphasis>Hibernate Tools</emphasis> package documentation for more information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "However, the Hibernate main package comes bundled with an integrated tool : <emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even be used from \"inside\" Hibernate."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "DDL can be generated from your mapping files by a Hibernate utility. The generated schema includes referential integrity constraints, primary and foreign keys, for entity and collection tables. Tables and sequences are also created for mapped identifier generators."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via the <literal>hibernate.dialect</literal> property when using this tool, as DDL is highly vendor-specific."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "First, you must customize your mapping files to improve the generated schema. The next section covers schema customization."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing the schema"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Many Hibernate mapping elements define optional attributes named <literal>length</literal>, <literal>precision</literal> and <literal>scale</literal>. You can set the length, precision and scale of a column with this attribute."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Some tags also accept a <literal>not-null</literal> attribute for generating a <literal>NOT NULL</literal> constraint on table columns, and a <literal>unique</literal> attribute for generating <literal>UNIQUE</literal> constraint on table columns."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>unique-key</literal> attribute can be used to group columns in a single, unique key constraint. Currently, the specified value of the <literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to name the constraint in the generated DDL. It is only used to group the columns in the mapping file."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "An <literal>index</literal> attribute specifies the name of an index that will be created using the mapped column or columns. Multiple columns can be grouped into the same index by simply specifying the same index name."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>foreign-key</literal> attribute can be used to override the name of any generated foreign key constraint."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Many mapping elements also accept a child <literal><column></literal> element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>default</literal> attribute allows you to specify a default value for a column.You should assign the same value to the mapped property before saving a new instance of the mapped class."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>sql-type</literal> attribute allows the user to override the default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>check</literal> attribute allows you to specify a check constraint."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>length</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>precision</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>scale</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of the foreign key constraint generated for an association, for a <literal><one-to-one></literal>, <literal><many-to-one></literal>, <literal><key></literal>, or <literal><many-to-many></literal> mapping element. Note that <literal>inverse=\"true\"</literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "overrides the default column type (attribute of <literal><column></literal> element only)"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>default</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>check</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><comment></literal> element allows you to specify comments for the generated schema."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This results in a <literal>comment on table</literal> or <literal>comment on column</literal> statement in the generated DDL where supported."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>SchemaExport</literal> tool writes a DDL script to standard out and/or executes the DDL statements."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following table displays the <literal>SchemaExport</literal> command line options"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options mapping_files</emphasis>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "do not output the script to stdout"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--create</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--text</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export to the database"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "read database properties from a file"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--format</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Database properties can be specified:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "as system properties with <literal>-D</literal><emphasis><property></emphasis>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>SchemaUpdate</literal> tool will update an existing schema with \"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options mapping_files</emphasis>"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export the script to the database"
+msgstr ""
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>SchemaValidator</literal> tool will validate that the existing database schema \"matches\" your mapping documents. The <literal>SchemaValidator</literal> depends heavily upon the JDBC metadata API and, as such, will not work with all JDBC drivers. This tool is extremely useful for testing."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> <emphasis>options mapping_files</emphasis>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The following table displays the <literal>SchemaValidator</literal> command line options:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/transactions.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/transactions.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/transactions.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,659 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Transactions and Concurrency"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr ""
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr ""
+
+#. 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 ""
+
+#. 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 <link linkend=\"objectstate-flushing\">FlushMode</link> for the session. A call to <literal>close()</literal> marks the end of a session. The main implication of <literal>close()</literal> is that the JDBC connection will be relinquished by the session. This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>JDBCConnectionException</literal>: indicates an error with the underlying JDBC communication."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>SQLGrammarException</literal>: indicates a grammar or syntax problem with the issued SQL."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>ConstraintViolationException</literal>: indicates some form of integrity constraint violation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>LockAcquisitionException</literal>: indicates an error acquiring a lock level necessary to perform the requested operation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>GenericJDBCException</literal>: a generic exception which did not fall into any of the other categories."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>setTimeout()</literal> cannot be called in a CMT bean, where transaction timeouts must be defined declaratively."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>version</literal> property is mapped using <literal><version></literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Again, Hibernate will check instance versions during flush, throwing an exception if conflicting updates occurred."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Legacy database schemas are often static and cannot be modified. Or, other applications might access the same database and will not know how to handle version numbers or even timestamps. In both cases, versioning cannot rely on a particular column in a table. To force a version check with a comparison of the state of all fields in a row but without a version or timestamp property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal><class></literal> mapping. This conceptually only works if Hibernate can compare the old and the new state (i.e., if you use a single long <literal>Session</literal> and not session-per-request-with-detached-objects)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Concurrent modification can be permitted in instances where the changes that have been made do not overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal><class></literal>, Hibernate will only compare dirty fields during flush."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In both cases, with dedicated version/timestamp columns or with a full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement, with an appropriate <literal>WHERE</literal> clause, per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate may execute unnecessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal><class></literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did occur before updating the row."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Pessimistic locking"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate will always use the locking mechanism of the database; it never lock objects in memory."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate updates or inserts a row."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Connection release modes"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>AFTER_TRANSACTION</literal>: releases connections after a <literal>org.hibernate.Transaction</literal> has been completed."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/tutorial.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/tutorial.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/tutorial.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,699 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The distribution contains another example application under the <filename>tutorial/eg</filename> project source directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "It is not a requirement to use Maven. If you wish to use something else to build this tutoial (such as Ant), the layout will remain the same. The only change is that you will need to manually account for all the needed dependencies. If you use something like <ulink url=\"http://ant.apache.org/ivy/\">Ivy</ulink> providing transitive dependency management you would still use the dependencies mentioned below. Otherwise, you'd need to grab <emphasis>all</emphasis> dependencies, both explicit and transitive, and add them to the project's classpath. If working from the Hibernate distribution bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts in the <filename>lib/required</filename> directory and all files from either the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/javassist</filename> directory; additionally you will need both the servlet-api jar and one of the slf4j logging backends."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</filename> directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>native</literal> is no longer consider the best strategy in terms of portability. for further discussion, see <xref linkend=\"portability-idgen\" />"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this mapping file as <filename>src/main/resources/org/hibernate/tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "We will utilize the Maven exec plugin to launch the HSQLDB server by running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see it start up and bind to a TCP/IP socket; this is where our application will connect later. If you want to start with a fresh database during this tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</filename> directory, and start HSQLDB again."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The built-in Hibernate connection pool is in no way intended for production use. It lacks several features found on any decent connection pool."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory is a global factory responsible for a particular database. If you have several databases, for easier startup you should use several <literal><session-factory></literal> configurations in several configuration files."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "In most cases, Hibernate is able to properly determine which dialect to use. See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this file as <filename>hibernate.cfg.xml</filename> into the <filename>src/main/resources</filename> directory."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Building with Maven"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this code as <filename>src/main/java/org/hibernate/tutorial/util/HibernateUtil.java</filename>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The tutorial infrastructure is complete and you are now ready to do some real work with Hibernate."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this to a file named <filename>src/main/java/org/hibernate/tutorial/domain/Person.java</filename>"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Now we will bring some people and events together in a new method in <literal>EventManager</literal>:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the updated schema:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "First, add a collection of participants to the <literal>Event</literal> class:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "Save this servlet as <filename>src/main/java/org/hibernate/tutorial/web/EventManagerServlet.java</filename>"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Now you can implement the processing of the request and the rendering of the page."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This coding style, with a mix of Java and HTML, would not scale in a more complex application—keep in mind that we are only illustrating basic Hibernate concepts in this tutorial. The code prints an HTML header and a footer. Inside this page, an HTML form for event entry and a list of all events in the database are printed. The first method is trivial and only outputs HTML:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/xml.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/xml.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/content/xml.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,144 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying XML and class mapping together"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"element-name\"</literal>: map to the named XML element"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"element-name/@attribute-name\"</literal>: map to the named attribute of the named element"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. Tag: para
+#, no-c-format
+msgid "would return datasets such as this:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-many></literal> mapping, the data might look more like this:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Conventions.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Conventions.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Conventions.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,214 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr ""
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Feedback.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Feedback.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Feedback.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,34 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr ""
+
+#. Tag: primary
+#, no-c-format
+msgid "feedback"
+msgstr ""
+
+#. Tag: secondary
+#, no-c-format
+msgid "contact information for this manual"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Legal_Notice.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Legal_Notice.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/fallback_content/Legal_Notice.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,19 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pot/legal_notice.pot
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pot/legal_notice.pot (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pot/legal_notice.pot 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,49 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-02-11T05:38:16\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: application/x-publican; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General Public License</ulink>, as published by the Free Software Foundation."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red Hat, Inc. in the United States and other countries."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "All other trademarks referenced herein are the property of their respective owners."
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr ""
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr ""
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Book_Info.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Book_Info.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Book_Info.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,31 @@
+# translation of Book_Info.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Book_Info\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-03-19 15:37+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr "HIBERNATE - Persistência Relacional para Java Idiomático"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Documentação de Referência Hibernate"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&version;"
+msgstr "&version;"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,23 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#~ msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+#~ msgstr "HIBERNATE - Relational Persistence for Idiomatic Java"
+
+#~ msgid "Hibernate Reference Documentation"
+#~ msgstr "Documentação da Referência do Hibernate"
+
+#~ msgid "©rightHolder;"
+#~ msgstr "©rightHolder;"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Hibernate_Reference.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Hibernate_Reference.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/Hibernate_Reference.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,31 @@
+# translation of Hibernate_Reference.po to
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Hibernate_Reference\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-03-19 15:38+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr "HIBERNATE - Persistência Relacional para Java Idiomático"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Documentação de Referência Hibernate"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr "&versionNumber;"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/author_group.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/author_group.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/author_group.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,152 @@
+# translation of author_group.po to
+# Language pt-BR translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: author_group\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-03-19 15:45+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr "Gavin"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr "Christian"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr "Max"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr "Emmanuel"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr "Steve"
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr "James"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr "Cheyenne"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr "Vincent"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr "Sebastien"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr "Michael"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr "Baptiste"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr "Anthony"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr "Alvaro"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr "Anderson"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr "Daniel Vieira"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr "Francisco"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr "Gamarra"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr "Luiz Carlos"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr "Marcel"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr "Paulo"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr "Pablo L."
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr "Renato"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr "Rogério"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr "Wanderson"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr "Cao"
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr "RedSaga"
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr "Time de Tradução"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/architecture.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/architecture.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/architecture.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,711 @@
+# translation of architecture.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: architecture\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-03-17 10:18+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr "Arquitetura "
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr "Visão Geral"
+
+#. Tag: para
+#, no-c-format
+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:"
+
+#. 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 ""
+"Nós não temos o escopo neste documento para mostrar uma visão mais detalhada "
+"da arquitetura em execução. O Hibernate é muito flexÃvel e suporta várias "
+"abordagens. Mostraremos os dois extremos. No entanto, nós apresentaremos os "
+"dois extremos: arquitetura \"mÃnima\" e arquitetura \"compreensiva\". "
+
+#. 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 ""
+"Este diagrama mostra o Hibernate usando o banco de dados e a configuração de "
+"dados para prover persistência de serviços e persistência de objetos para o "
+"aplicativo."
+
+#. 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 ""
+"Na arquitetura \"mÃnima\", o aplicativo fornece suas próprias conexões JDBC "
+"e gerencia suas transações. Esta abordagem usa o mÃnimo de subconjuntos das "
+"APIs do Hibernate:"
+
+#. 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 ""
+"A arquitetura \"compreensiva\" abstrai a aplicação do JDBC/JTA e APIs "
+"adjacentes e deixa o Hibernate tomar conta dos detalhes."
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr "Algumas definições dos objetos descritos nos diagramas: "
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+
+#. 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 ""
+"O threadsafe, cachê imutável composto de mapeamentos compilados para um "
+"único banco de dados. Uma fábrica para <literal>Session</literal> e um "
+"cliente de <literal>ConnectionProvider</literal>, <literal>SessionFactory</"
+"literal> pode conter um cachê opcional de dados (segundo nÃvel) "
+"reutilizáveis entre transações, no nÃvel de processo ou cluster."
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr "Session (<literal>org.hibernate.Session</literal>)"
+
+#. 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 ""
+"Objeto single-threaded, de vida curta, representa uma conversação entre o "
+"aplicativo e o armazenamento persistente. Cria uma camada sobre uma conexão "
+"JDBC. Ã uma fabrica de <literal>Transaction</literal>. A <literal>Session</"
+"literal> possui um cachê obrigatório (primeiro nÃvel) de objetos "
+"persistentes, usado para navegação nos gráficos de objetos e pesquisa de "
+"objetos pelo identificador."
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr "Objetos persistentes e coleções"
+
+#. 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 ""
+"Objetos, de vida curta, single threaded contendo estado persistente e função "
+"de negócios. Esses podem ser JavaBeans/POJOs, onde a única coisa especial "
+"sobre eles é que são associados a (exatamente uma) <literal>Session</"
+"literal>. Quando a <literal>Session</literal> é fechada, eles são separados "
+"e liberados para serem usados dentro de qualquer camada da aplicação (Ex. "
+"diretamente como objetos de transferência de dados de e para a camada de "
+"apresentação)."
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr "Objetos e coleções desanexados e transientes"
+
+#. 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 ""
+"Instâncias de classes persistentes que ainda não estão associadas a uma "
+"<literal>Session</literal>. Eles podem ter sido instanciados pela aplicação "
+"e não persistidos (ainda) ou eles foram instanciados por uma "
+"<literal>Session</literal> encerrada."
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "Transaction (<literal>org.hibernate.Transaction</literal>)"
+
+#. 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 ""
+"(Opcional) Objeto de vida curta, single threaded, usado pela aplicação para "
+"especificar unidades atômicas de trabalho. Abstrai o aplicativo das "
+"transações JDBC, JTA ou CORBA adjacentes. Uma <literal>Session</literal> "
+"pode, em alguns casos, iniciar várias <literal>Transaction</literal>s. "
+"Entretanto, a demarcação da transação, mesmo utilizando API ou "
+"<literal>Transaction</literal> subjacentes, nunca é opcional."
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"ConnectionProvider (<literal>org.hibernate.connection.ConnectionProvider</"
+"literal>)"
+msgstr ""
+"Connection Provider (<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 ""
+"(Opcional) Uma fábrica de, e pool de, conexões JDBC. Abstrai a aplicação dos "
+"<literal>Datasource</literal> ou <literal>DriverManager</literal> "
+"adjacentes. Não exposto para a aplicação, mas pode ser implementado ou "
+"estendido pelo programador. "
+
+#. Tag: term
+#, no-c-format
+msgid "TransactionFactory (<literal>org.hibernate.TransactionFactory</literal>)"
+msgstr "Transaction Factory (<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 ""
+"(Opcional) Uma fábrica para instâncias de <literal>Transaction</literal>. "
+"Não exposta a aplicação, mas pode ser estendida/implementada pelo "
+"programador."
+
+#. Tag: term
+#, no-c-format
+msgid "<emphasis>Extension Interfaces</emphasis>"
+msgstr "<emphasis>Interfaces de Extensão</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 ""
+"O Hibernate oferece várias opções de interfaces estendidas que você pode "
+"implementar para customizar sua camada persistente. Veja a documentação da "
+"API para maiores detalhes. "
+
+#. 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 ""
+"Dada uma arquitetura \"mÃnima\", o aplicativo passa pelas APIs "
+"<literal>Transaction</literal>/<literal>TransactionFactory</literal> e/ou "
+"<literal>ConnectionProvider</literal> para se comunicar diretamente com a "
+"transação JTA ou JDBC."
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr "Estados de instância"
+
+#. 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 ""
+"Uma instância de classes persistentes pode estar em um dos três diferentes "
+"estados, que são definidos respeitando um <emphasis>contexto persistente</"
+"emphasis>. O objeto <literal>Session</literal> do Hibernate é o contexto "
+"persistente. Os três diferentes estados são os seguintes:"
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr "transiente"
+
+#. 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 ""
+"A instância não é associada a nenhum contexto persistente. Não possui uma "
+"identidade persistente ou valor de chave primária."
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr "persistente"
+
+#. 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 ""
+"A instância está atualmente associada a um contexto persistente. Possui uma "
+"identidade persistente (valor de chave primária) e, talvez, correspondente a "
+"uma fila no banco de dados. Para um contexto persistente em particular, o "
+"Hibernate <emphasis>garante</emphasis> que a identidade persistente é "
+"equivalente à identidade Java (na localização em memória do objeto)."
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr "desanexado"
+
+#. 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 ""
+"A instância foi associada com um contexto persistente, porém este contexto "
+"foi fechado, ou a instância foi serializada por outro processo. Possui uma "
+"identidade persistente, e, talvez, corresponda a uma fila no banco de dados. "
+"Para instâncias desanexadas, o Hibernate não garante o relacionamento entre "
+"identidade persistente e identidade Java."
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr "Integração JMX"
+
+#. 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 é o padrão do J2EE para manipulação de componentes Java. O Hibernate "
+"pode ser manipulado por um serviço JMX padrão. Nós fornecemos uma "
+"implementação do MBean na distribuição: <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 ""
+"Para um exemplo de como implementar o Hibernate como um serviço JMX em um "
+"Servidor de Aplicativo JBoss, por favor, consulte o Guia do Usuário do "
+"JBoss. No JBoss As, você poderá ver os benefÃcios de se fazer a "
+"implementação usando JMX:"
+
+#. 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>Session Management:</emphasis> O ciclo de vida de uma "
+"<literal>Session</literal> do Hibernate pode ser automaticamente conectada a "
+"um escopo de transação JTA. Isso significa que você não precisará mais abrir "
+"e fechar manualmente uma <literal>Session</literal>, isso se torna uma "
+"tarefa para um interceptor EJB do JBoss. Você também não precisará mais se "
+"preocupar com demarcação de transação em seu código (caso você prefira "
+"escrever uma camada persistente portável, use a API opcional do Hibernate "
+"<literal>Transaction</literal>). Você deve chamar <literal>HibernateContext</"
+"literal> para acessar uma <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 deployment:</emphasis>: Normalmente você implementa o serviço "
+"JMX do Hibernate usando um serviço descritor de implementação do JBoss em um "
+"EAR e/ou arquivo SAR, que suporta todas as configurações comuns de uma "
+"<literal>SessionFactory</literal> do Hibernate. Entretanto, você ainda "
+"precisa nomear todos os seus arquivos de mapeamento no descritor de "
+"implementação. Se você decidir usar a implementaçao opcional HAR, o JBoss "
+"irá automaticamente detectar todos os seus arquivos de mapeamento no seu "
+"arquivo HAR."
+
+#. Tag: para
+#, no-c-format
+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
+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."
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr "Suporte JCA"
+
+#. 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 ""
+"O Hibernate pode também ser configurado como um conector JCA. Por favor, "
+"visite o website para maiores detalhes. Observe também, que o suporte do JCA "
+"do Hibernate ainda é considerado experimental."
+
+#. Tag: title
+#, no-c-format
+msgid "Contextual sessions"
+msgstr "Sessões Contextuais"
+
+#. 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 ""
+"A maioria das aplicações que usa o Hibernate necessita de algum tipo de "
+"sessão \"contextual\", onde uma sessão dada é na verdade um escopo de um "
+"contexto. Entretanto, através de aplicações, a definição sobre um contexto é "
+"geralmente diferente; e contextos diferentes definem escopos diferentes. "
+"Aplicações usando versões anteriores ao Hibernate 3.0 tendem a utilizar "
+"tanto sessões contextuais baseadas em <literal>ThreadLocal</literal>, "
+"classes utilitárias como <literal>HibernateUtil</literal>, ou utilizar "
+"frameworks de terceiros (como Spring ou Pico) que provê sessões contextuais "
+"baseadas em proxy."
+
+#. 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 ""
+"A partir da versão 3.0.1, o Hibernate adicionou o método "
+"<literal>SessionFactory.getCurrentSession()</literal>. Inicialmente, este "
+"considerou o uso de transações <literal>JTA</literal>, onde a transação "
+"<literal>JTA</literal> definia tanto o escopo quanto o contexto de uma "
+"sessão atual. Dada a maturidade de diversas implementações autônomas "
+"disponÃveis do <literal>JTA TransactionManager</literal>, a maioria (se não "
+"todos) dos aplicativos deveria utilizar o gerenciador de transações "
+"<literal>JTA</literal> sendo ou não instalados dentro de um recipiente "
+"<literal>J2EE</literal>. Baseado neste recurso, você deve sempre utilizar "
+"sessões contextuais baseadas em <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 ""
+"Entretanto, a partir da versão 3.1, o processo por trás do método "
+"<literal>SessionFactory.getCurrentSession()</literal> é agora plugável. Com "
+"isso, uma nova interface (<literal>org.hibernate.context."
+"CurrentSessionContext</literal>) e um novo parâmetro de configuração "
+"(<literal>hibernate.current_session_context_class</literal>) foram "
+"adicionados para possibilitar a compatibilidade do contexto e do escopo na "
+"definição de sessões correntes."
+
+#. 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 ""
+"Consulte no Javadocs sobre a interface <literal>org.hibernate.context."
+"CurrentSessionContext</literal> para uma discussão detalhada. Ela define um "
+"método único, <literal>currentSession()</literal>, pelo qual a implementação "
+"é responsável por rastrear a sessão contextual atual. Fora da caixa, o "
+"Hibernate surge com três implementações dessa interface:"
+
+#. 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>: As sessões "
+"correntes são rastreadas e recebem um escopo por uma transação <literal>JTA</"
+"literal>. O processamento aqui é exatamente igual à abordagem anterior do "
+"JTA somente. Consulte em Javadocs para maiores detalhes."
+
+#. 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> - As "
+"sessões correntes são rastreadas por uma thread de execução. Novamente, "
+"consulte em Javadocs para maiores detalhes. "
+
+#. 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>. As sessões "
+"atuais são rastreadas por uma thread de execução. Entretanto, você é "
+"responsável por vincular e desvincular uma instância <literal>Session</"
+"literal> com métodos estáticos nesta classe, que nunca abre, libera ou fecha "
+"uma <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 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 ""
+"As duas primeiras implementações usam o modelo de programação \"uma sessão - "
+"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 "
+"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\" /> para mais informações e exemplos de código."
+
+#. 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 ""
+"O parâmetro de configuração <literal>hibernate."
+"current_session_context_class</literal> define qual implementação "
+"<literal>org.hibernate.context.CurrentSessionContext</literal> deve ser "
+"usada. Note que para compatibilidade anterior, se este parâmetro de "
+"configuração não for determinado mas um <literal>org.hibernate.transaction."
+"TransactionManagerLookup</literal> for configurado, Hibernate usará o "
+"<literal>org.hibernate.context.JTASessionContext</literal>. Tipicamente, o "
+"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\"."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/association_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/association_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/association_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1239 @@
+# translation of association_mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: association_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr "Mapeamento de associações "
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr "Introdução"
+
+#. Tag: para
+#, 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 ""
+"Os mapeamentos de associações são, geralmente, os mais difÃceis de se "
+"acertar. Nesta seção nós examinaremos pelos casos canônicos um por um, "
+"começando com mapeamentos unidirecionais e considerando os casos "
+"bidirecionais. Usaremos <literal>Person</literal> e <literal>Address</"
+"literal> em todos os exemplos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations will be classified by multiplicity and whether or not they map "
+"to an intervening join table."
+msgstr ""
+"Classificaremos as associações pela sua multiplicidade e se elas mapeiam ou "
+"não uma intervenção na tabela associativa."
+
+#. Tag: para
+#, 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 ""
+"O uso de chaves externas anuláveis não é considerado uma boa prática na "
+"modelagem de dados tradicional, assim todos os nossos exemplos usam chaves "
+"externas anuláveis. Esta não é uma exigência do Hibernate, e todos os "
+"mapeamentos funcionarão se você remover as restrições de anulabilidade."
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr "Associações Unidirecionais"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "Muitos-para-um"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr ""
+"Uma <emphasis>associação unidirecional muitos-para-um</emphasis> é o tipo "
+"mais comum de associação unidirecional."
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "Um-para-um"
+
+#. Tag: para
+#, 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 ""
+"Uma <emphasis>associação unidirecional um-para-um em uma chave externa </"
+"emphasis> é quase idêntica. A única diferença é a restrição única na coluna."
+
+#. Tag: para
+#, 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 ""
+"Uma <emphasis>associação unidirecional um-para-um na chave primária</"
+"emphasis> geralmente usa um gerador de id especial. Note que nós invertemos "
+"a direção da associação nesse exemplo."
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many"
+msgstr "Um-para-muitos"
+
+#. Tag: para
+#, 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 ""
+"Uma <emphasis>associação unidirecional um-para-muitos em uma chave externa</"
+"emphasis> é um caso muito incomum, e realmente não é recomendada."
+
+#. Tag: para
+#, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr ""
+"Acreditamos ser melhor usar uma tabela associativa para este tipo de "
+"associação. "
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr "Associações Unidirecionais com tabelas associativas"
+
+#. Tag: para
+#, 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 ""
+"Uma <emphasis>associação um-para-muitos unidirecional usando uma tabela "
+"associativa</emphasis> é o mais comum. Note que se especificarmos "
+"<literal>unique=\"true\"</literal>, estaremos modificando a multiplicidade "
+"de muitos-para-muitos para um-para-muitos."
+
+#. Tag: para
+#, 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 ""
+"Uma <emphasis>associação unidirecional muitos-para-um em uma tabela "
+"associativa</emphasis> é bastante comum quando a associação for opcional. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"Uma <emphasis>associação unidirecional um-para-um em uma tabela associativa</"
+"emphasis> é extremamente incomum, mas possÃvel. "
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many"
+msgstr "Muitos-para-muitos "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Finally, here is an example of a <emphasis>unidirectional many-to-many "
+"association</emphasis>."
+msgstr ""
+"Finalmente, nós temos a <emphasis>associação unidirecional muitos-para- "
+"muitos</emphasis>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "Associações Bidirecionais"
+
+#. Tag: title
+#, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr "Um-para-muitos/muitos-para-um"
+
+#. Tag: para
+#, 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 ""
+"Uma <emphasis>associação bidirecional muitos-para-um</emphasis> é o tipo "
+"mais comum de associação. A seguinte amostra ilustra o relacionamento padrão "
+"pai/filho. )"
+
+#. Tag: para
+#, 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 ""
+"Se você usar uma <literal>List</literal> ou outra coleção indexada, você "
+"precisará especificar a coluna <literal>key</literal> da chave externa como "
+"<literal>not null</literal>. O Hibernate administrará a associação do lado "
+"da coleção para que seja mantido o Ãndice de cada elemento da coleção "
+"(fazendo com que o outro lado seja virtualmente inverso ajustando "
+"<literal>update=\"false\"</literal> e <literal>insert=\"false\"</literal>):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
+"important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal><key></literal> element of the collection mapping. Do not "
+"only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal><column></literal> element, but on the <literal><key></"
+"literal> element."
+msgstr ""
+"Caso uma coluna chave externa adjacente for <literal>NOT NULL</literal>, é "
+"importante que você defina <literal>not-null=\"true\"</literal> no elemento "
+"<literal><key></literal> no mapeamento na coleção se a coluna de chave "
+"externa para <literal>NOT NULL</literal>. Não declare como <literal>not-null="
+"\"true\"</literal> apenas um elemento aninhado <literal><column></"
+"literal>, mas sim o elemento <literal><key></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is common:"
+msgstr ""
+"Uma <emphasis>associação bidirecional um para um em uma chave externa </"
+"emphasis> é bastante comum:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator:"
+msgstr ""
+"Uma <emphasis>associação bidirecional um para um em uma chave primária</"
+"emphasis> usa um gerador de id especial:"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr "Associações Bidirecionais com tabelas associativas"
+
+#. Tag: para
+#, 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 ""
+"Segue abaixo uma amostra da <emphasis>associação bidirecional um para muitos "
+"em uma tabela de união</emphasis>. Veja que <literal>inverse=\"true\"</"
+"literal> pode ser colocado em qualquer ponta da associação, na coleção, ou "
+"na união."
+
+#. Tag: title
+#, no-c-format
+msgid "one to one"
+msgstr "Um para um"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"Uma <emphasis>associação bidirecional um-para-um em uma tabela de união</"
+"emphasis> é algo bastante incomum, mas possÃvel."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example of a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
+msgstr ""
+"Finalmente, nós temos uma <emphasis>associação bidirecional de muitos para "
+"muitos</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr "Mapeamento de associações mais complexas"
+
+#. Tag: para
+#, 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 ""
+"Uniões de associações mais complexas são <emphasis>extremamente</emphasis> "
+"raras. O Hibernate possibilita o tratamento de mapeamentos mais complexos, "
+"usando fragmentos de SQL embutidos no documento de mapeamento. Por exemplo, "
+"se uma tabela com informações de dados históricos de uma conta define as "
+"colunas <literal>accountNumber</literal>, <literal>effectiveEndDate</"
+"literal> e <literal>effectiveStartDate</literal>, mapeadas assim como segue:"
+
+#. Tag: para
+#, 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 ""
+"Então nós podemos mapear uma associação para a instância <emphasis>atual</"
+"emphasis>, aquela com <literal>effectiveEndDate</literal> nulo, usando:"
+
+#. Tag: para
+#, 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 ""
+"Em um exemplo mais complexo, imagine que a associação entre "
+"<literal>Employee</literal> e <literal>Organization</literal> é mantida em "
+"uma tabela <literal>Employment</literal> cheia de dados históricos do "
+"trabalho. Então a associação do funcionário <emphasis>mais recentemente</"
+"emphasis> e empregado, aquele com a mais recente <literal>startDate</"
+"literal>, deve ser mapeado desta maneira: "
+
+#. Tag: para
+#, 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 ""
+"Esta funcionalidade permite um grau de criatividade e flexibilidade, mas "
+"geralmente é mais prático tratar estes tipos de casos, usando uma pesquisa "
+"HQL ou uma pesquisa por critério."
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/basic_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/basic_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/basic_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,4384 @@
+# translation of basic_mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: basic_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-18 10:20+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr "Mapeamento O/R Básico"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr "Declaração de mapeamento"
+
+#. 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 ""
+"O mapeamento de objeto/relacional é geralmente definido em um documento XML. "
+"O documento de mapeamento é criado para ser de leitura e editável "
+"manualmente. A linguagem do mapeamento é Java-centric, ou seja, os "
+"mapeamentos são construÃdos em torno de declarações de classe persistente e "
+"não de declarações de tabelas. "
+
+#. 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 ""
+"Note que, embora muitos usuários do Hibernate escolham gravar o XML "
+"manualmente, existem diversas ferramentas para gerar o documento de "
+"mapeamento, incluindo o XDoclet Middlegen e AndroMDA."
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example mapping:"
+msgstr "Vamos iniciar com um exemplo de mapeamento:"
+
+#. 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 ""
+"Discutiremos agora o conteúdo deste documento de mapeamento. Iremos apenas "
+"descrever os elementos do documento e funções que são utilizadas pelo "
+"Hibernate em tempo de execução. O documento de mapeamento também contém "
+"algumas funções adicionais e opcionais além de elementos que afetam os "
+"esquemas de banco de dados exportados pela ferramenta de exportação de "
+"esquemas. (Por exemplo, o atributo <literal>not-null</literal>). "
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr "Doctype"
+
+#. 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 ""
+"Todos os mapeamentos de XML devem declarar o doctype exibido. O DTD atual "
+"pode ser encontrado na URL abaixo, no diretório <literal>hibernate-x.x.x/src/"
+"org/ hibernate </literal> ou no <literal>hibernate3.jar</literal>. O "
+"Hibernate sempre irá procurar pelo DTD inicialmente no seu classpath. Se "
+"você tentar localizar o DTD usando uma conexão de internet, compare a "
+"declaração do seu DTD com o conteúdo do seu classpath."
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr "Solucionador de Entidade"
+
+#. 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 ""
+"O Hibernate irá primeiro tentar solucionar os DTDs em seus classpath. Isto é "
+"feito, registrando uma implementação <literal>org.xml.sax.EntityResolver</"
+"literal> personalizada com o SAXReader que ele utiliza para ler os arquivos "
+"xml. Este <literal>EntityResolver</literal> personalizado, reconhece dois "
+"nomes de espaço de sistemas Id diferentes:"
+
+#. 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 ""
+"Um <literal>hibernate namespace</literal> é reconhecido quando um "
+"solucionador encontra um systema Id iniciando com <literal>http://hibernate."
+"sourceforge.net/</literal>. O solucionador tenta solucionar estas entidades "
+"através do carregador de classe que carregou as classes do Hibernate. "
+
+#. 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 ""
+"Um <literal>user namespace</literal> é reconhecido quando um solucionador "
+"encontra um sistema Id, utilizando um protocolo URL de <literal>classpath://"
+"</literal>. O solucionador tentará solucionar estas entidades através do "
+"carregador de classe do contexto de thread atual (1) e o carregador de "
+"classe (2) que carregou as classes do Hibernate. "
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr "Um exemplo de utilização do espaço de nome do usuário:"
+
+#. 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 <link linkend=\"mapping-types-"
+"custom\">typedef</link>."
+msgstr ""
+"Onde <literal>types.xml</literal> é um recurso no pacote <literal>your."
+"domain</literal> e contém um <link linkend=\"mapping-types-"
+"custom\">typedef</link> "
+"personalizado."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate-mapping"
+msgstr "Mapeamento do Hibernate"
+
+#. 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 ""
+"Este elemento possui diversos atributos opcionais. Os atributos "
+"<literal>schema</literal> e <literal>catalog</literal> especificam que "
+"tabelas referenciadas neste mapeamento pertencem ao esquema e/ou ao catálogo "
+"nomeado. Se especificados, os nomes das tabelas serão qualificados no "
+"esquema ou catálogo dado. Se não, os nomes das tabelas não serão "
+"qualificados. O atributo <literal>default-cascade</literal> especifica qual "
+"estilo de cascata será considerado pelas propriedades e coleções que não "
+"especificarem uma função <literal>cascade</literal>. A função <literal>auto-"
+"import</literal> nos deixa utilizar nomes de classes não qualificados na "
+"linguagem de consulta, por padrão."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr "<literal>schema</literal> (opcional): O nome do esquema do banco de dados. "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr "<literal>catalog</literal> (opcional): O nome do catálogo do banco de dados. "
+
+#. 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> (opcional â o padrão é <literal>none</"
+"literal>): Um estilo cascata padrão."
+
+#. 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> (opcional â o padrão é <literal>property</"
+"literal>): A estratégia que o Hibernate deve utilizar para acessar todas as "
+"propridades. Pode ser uma implementação personalizada de "
+"<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> (opcional - o padrão é <literal>true</"
+"literal>): O valor padrão para atributos <literal>lazy</literal> não "
+"especificados da classe e dos mapeamentos de coleções."
+
+#. 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> (opcional - o padrão é <literal>true</"
+"literal>): Especifica se podemos usar nomes de classes não qualificados, das "
+"classes deste mapeamento, na linguagem de consulta."
+
+#. 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> (opcional): Especifica um prefixo do pacote a ser "
+"considerado para nomes de classes não qualificadas no documento de "
+"mapeamento. "
+
+#. 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 ""
+"Se você tem duas classes persistentes com o mesmo nome (não qualificadas), "
+"você deve ajustar <literal>auto-import=\"false\"</literal>. Caso você tentar "
+"ajustar duas classes para o mesmo nome \"importado\", isto resultará numa "
+"exceção."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>hibernate-mapping</literal> element allows you to nest several "
+"persistent <literal><class></literal> mappings, as shown above. It is, "
+"however, good practice (and expected by some tools) to map only a single "
+"persistent class, or a single class hierarchy, in one mapping file and name "
+"it after the persistent superclass. For example, <literal>Cat.hbm.xml</"
+"literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, "
+"<literal>Animal.hbm.xml</literal>."
+msgstr ""
+"Observe que o elemento <literal>hibernate-mapping</literal> permite que você "
+"aninhe diversos mapeamentos de <literal><class></literal> "
+"persistentes, como mostrado abaixo. Entretanto, é uma boa prática (e "
+"esperado por algumas ferramentas) o mapeamento de apenas uma classe "
+"persistente simples (ou uma hierarquia de classes simples) em um arquivo de "
+"mapeamento e nomeá-la após a superclasse persistente, por exemplo: "
+"<literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, ou se "
+"estiver usando herança, <literal>Animal.hbm.xml</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Class"
+msgstr "Classe"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can declare a persistent class using the <literal>class</literal> "
+"element. For example:"
+msgstr ""
+"Você pode declarar uma classe persistente utilizando o elemento "
+"<literal>class</literal>. Por exemplo:"
+
+#. 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> (opcional): O nome da classe Java inteiramente "
+"qualificado da classe persistente (ou interface). Se a função é ausente, "
+"assume-se que o mapeamento é para entidades não-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> (opcional â padrão para nomes de classes não "
+"qualificadas): O nome da sua tabela do banco de dados."
+
+#. 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> (opcional â padrão para o nome da "
+"classe): Um valor que distingue subclasses individuais, usadas para o "
+"comportamento polimórfico. Valores aceitos incluem <literal>null</literal> e "
+"<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> (opcional - valor padrão <literal>true</"
+"literal>): Especifica quais instâncias da classe são (ou não) mutáveis."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>schema</literal> (optional): overrides the schema name specified by "
+"the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>schema</literal> (opcional): Sobrepõe o nome do esquema "
+"especificado pelo elemento raÃz <literal><hibernate-mapping></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>catalog</literal> (optional): overrides the catalog name specified "
+"by the root <literal><hibernate-mapping></literal> element."
+msgstr ""
+"<literal>catalog</literal> (opcional): Sobrepõe o nome do catálogo "
+"especificado pelo elemento raÃz <literal><hibernate-mapping></literal>."
+
+#. 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> (opcional): Especifica uma interface para ser "
+"utilizada pelos proxies de inicialização lazy. Você pode especificar o nome "
+"da própria classe. "
+
+#. 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> (opcional, valor padrão <literal>false</"
+"literal>): Especifica que o SQL de <literal>UPDATE</literal> deve ser gerado "
+"em tempo de execução e conter apenas aquelas colunas cujos valores foram "
+"alterados. "
+
+#. 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> (opcional, valor padrão <literal>falso</"
+"literal>): Especifica que o SQL de <literal>INSERT</literal> deve ser gerado "
+"em tempo de execução e conter apenas aquelas colunas cujos valores não estão "
+"nulos. "
+
+#. 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> (opcional, valor padrão "
+"<literal>false</literal>): Especifica que o Hibernate <emphasis>nunca</"
+"emphasis> deve executar um SQL de <literal>UPDATE</literal> a não ser que "
+"seja certo que um objeto está atualmente modificado. Em certos casos (na "
+"verdade, apenas quando um objeto transiente foi associado a uma nova sessão "
+"utilizando <literal>update()</literal>), isto significa que o Hibernate irá "
+"executar uma instrução SQL de <literal>SELECT</literal> adicional para "
+"determinar se um <literal>UPDATE</literal> é necessário nesse momento."
+
+#. 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> (opcional, padrão para <literal>implicit</"
+"literal>): Determina se deve ser utilizado a consulta polimórfica implÃcita "
+"ou explicitamente. "
+
+#. 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> (opicional): Especifica um comando SQL "
+"<literal>WHERE</literal> arbitrário para ser usado quando da recuperação de "
+"objetos desta classe."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>persister</literal> (optional): specifies a custom "
+"<literal>ClassPersister</literal>."
+msgstr ""
+"<literal>persister</literal> (opcional): Especifica uma "
+"<literal>ClassPersister</literal> customizada."
+
+#. 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> (opcional, valor padrão <literal>1</literal>) "
+"Especifica um \"tamanho de lote\" para a recuperação de instâncias desta "
+"classe pela identificação."
+
+#. 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> (opcional, valor padrão <literal>version</"
+"literal>): Determina a estratégia de bloqueio."
+
+#. 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> (opcional): A recuperação lazy pode ser "
+"completamente desabilitada, ajustando <literal>lazy=\"false\"</literal>."
+
+#. 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> (opcional - padrão para o nome da classe): O "
+"Hibernate3 permite uma classe ser mapeada múltiplas vezes, potencialmente "
+"para diferentes tabelas. Além disso, isto permite mapeamentos de entidades "
+"que são representadas por Maps ou XML no nÃvel Java. Nestes casos, você deve "
+"especificar um nome arbitrário explicitamente para a entidade. Veja <xref "
+"linkend=\"persistent-classes-dynamicmodels\"/> e <xref linkend=\"xml\"/> "
+"para maiores informações."
+
+#. 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> (opcional): Uma expressão SQL utilizada para gerar "
+"uma restrição de <emphasis>verificação</emphasis> de múltiplas linhas para a "
+"geração automática do esquema. "
+
+#. 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> (opcional): O Hibernate poder usar as então "
+"chamadas ROWIDs em bancos de dados que a suportam. Por exemplo, no Oracle, o "
+"Hibernate pode utilizar a coluna extra rowid para atualizações mais rápidas "
+"se você configurar esta opção para <literal>rowid</literal>. Um ROWID é uma "
+"implementação que representa de maneira detalhada a localização fÃsica de "
+"uma determinada tuple armazenada. "
+
+#. 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> (opcional): Mapeia uma entidade imutável e "
+"somente de leitura para um subconjunto do banco de dados. Ãtil se você "
+"quiser ter uma visão, ao invés de uma tabela. Veja abaixo para mais "
+"informações. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>abstract</literal> (optional): is used to mark abstract "
+"superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr ""
+"<literal>abstract</literal> (opcional): Utilizada para marcar superclasses "
+"abstratas em hierarquias <literal><union-subclass></literal>. "
+
+#. 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><"
+"subclass></literal> element. You can persist any <emphasis>static</"
+"emphasis> inner class. Specify the class name using the standard form i.e. "
+"<literal>e.g.Foo$Bar</literal>."
+msgstr ""
+"à perfeitamente aceitável uma classe persitente nomeada ser uma interface. "
+"Você deverá então declarar as classes implementadas desta interface "
+"utilizando o elemento <literal><subclass></literal>. Você pode "
+"persistir qualquer classe interna <emphasis>estática</emphasis>. Você deverá "
+"especificar o nome da classe usando a forma padrão, por exemplo: <literal>eg."
+"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 ""
+"Classes imutáveis, <literal>mutable=\"false\"</literal>, não podem ser "
+"modificadas ou excluÃdas pela aplicação. Isso permite que o Hibernate "
+"aperfeiçoe o desempenho. "
+
+#. 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 ""
+"A função opcional <literal>proxy</literal> habilita a inicialização lazy das "
+"instâncias persistentes da classe. O Hibernate irá retornar CGLIB proxies "
+"como implementado na interface nomeada. O objeto persistente atual será "
+"carregado quando um método do proxy for invocado. Veja \"Inicialização de "
+"Coleções e Proxies\" abaixo. "
+
+#. 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><class>"
+"</literal> declaration as a <literal><subclass></literal> or "
+"<literal><joined-subclass></literal>. For most purposes, the default "
+"<literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit "
+"polymorphism is useful when two different classes are mapped to the same "
+"table This allows a \"lightweight\" class that contains a subset of the "
+"table columns."
+msgstr ""
+"Polimorfismo <emphasis>implÃcito</emphasis> significa que instâncias de uma "
+"classe serão retornadas por uma consulta que dá nome a qualquer superclasse "
+"ou interface e classe implementada, além das instâncias de qualquer "
+"subclasse da classe serão retornadas por uma consulta que nomeia a classe "
+"por si. Polimorfismo <emphasis>explÃcito</emphasis> significa que instâncias "
+"da classe serão retornadas apenas por consultas que explicitamente nomeiam a "
+"classe e que as consultas que nomeiam as classes irão retornar apenas "
+"instâncias de subclasses mapeadas dentro da declaração <literal><class>"
+"</literal> como uma <literal><subclass></literal> ou <literal><"
+"joined-subclass></literal>. Para a maioria dos casos, o valor padrão "
+"<literal>polymorphism=\"implicit\"</literal>, é apropriado. Polimorfismo "
+"explicito é útil quando duas classes distintas estão mapeadas para a mesma "
+"tabela. Isso aceita uma classe \"peso leve\" que contém um subconjunto de "
+"colunas da tabela. "
+
+#. 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 ""
+"O atributo <literal>persister</literal> deixa você customizar a estratégia "
+"de persistência utilizada para a classe. Você pode, por exemplo, especificar "
+"sua própria subclasse do <literal>org.hibernate.persister.EntityPersister</"
+"literal> ou você pode criar uma implementação completamente nova da "
+"interface <literal>org.hibernate.persister.ClassPersister</literal> que "
+"implementa a persistência através de, por exemplo, chamadas a procedimentos "
+"armazenados, serialização de arquivos planos ou LDAP. Veja <literal>org."
+"hibernate.test.CustomPersister</literal> para um exemplo simples de "
+"\"persistência\" para uma <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><subclass></literal> or <literal><joined-subclass></"
+"literal> elements. Although these settings can increase performance in some "
+"cases, they can actually decrease performance in others."
+msgstr ""
+"Observe que as configurações <literal>dynamic-update</literal> e "
+"<literal>dynamic-insert</literal> não são herdadas pelas subclasses e assim "
+"podem também ser especificadas em elementos <literal><subclass></"
+"literal> ou <literal><joined-subclass></literal>. Estas configurações "
+"podem incrementar o desempenho em alguns casos, mas podem realmente diminuir "
+"o desempenho em outras. "
+
+#. 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 ""
+"O uso de <literal>select-before-update</literal> geralmente irá diminuir o "
+"desempenho. Ela é muito útil para prevenir que um trigger de atualização no "
+"banco de dados seja ativado desnecessariamente, se você reconectar um nó de "
+"uma instância desconectada em uma <literal>Session</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you enable <literal>dynamic-update</literal>, you will have a choice of "
+"optimistic locking strategies:"
+msgstr ""
+"Se você ativar <literal>dynamic-update</literal>, você terá de escolher a "
+"estratégia de bloqueio otimista:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr "<literal>version</literal>: verifica as colunas de versão/timestamp"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr "<literal>all</literal>: verifica todas as colunas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dirty</literal>: check the changed columns, allowing some "
+"concurrent updates"
+msgstr ""
+"<literal>dirty</literal>: verifica as colunas modificadas, permitindo "
+"algumas atualizações concorrentes"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr "<literal>none</literal>: não utiliza o bloqueio otimista"
+
+#. 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 ""
+"Nós <emphasis>realmente</emphasis> recomendamos que você utilize as colunas "
+"de versão/timestamp para o bloqueio otimista com o Hibernate. Esta é a "
+"melhor estratégia em relação ao desempenho e é a única estratégia que trata "
+"corretamente as modificações efetuadas em instâncias desconectadas (por "
+"exemplo, quando <literal>Session.merge()</literal> é utilizado)."
+
+#. 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 ""
+"Não há diferença entre uma visão e uma tabela para o mapeamento do "
+"Hibernate, e como esperado isto é transparente no nÃvel do banco de dados, "
+"mesmo que alguns bancos de dados não suportam visões apropriadamente, "
+"especialmente com atualizações. Algumas vezes, você quer utilizar uma visão, "
+"mas não pode criá-la no banco de dados (por exemplo, com um esquema legado). "
+"Neste caso, você pode mapear uma entidade imutável e de somente leitura, "
+"para uma dada expressão de subseleção 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><subselect></literal> is available both as an "
+"attribute and a nested mapping element."
+msgstr ""
+"Declare as tabelas para sincronizar com esta entidade, garantindo que a auto-"
+"liberação ocorra corretamente, e que as consultas para esta entidade "
+"derivada não retornem dados desatualizados. O <literal><subselect></"
+"literal> está disponÃvel tanto como um atributo como um elemento mapeado "
+"aninhado."
+
+#. Tag: title
+#, no-c-format
+msgid "id"
+msgstr "id"
+
+#. 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><id></"
+"literal> element defines the mapping from that property to the primary key "
+"column."
+msgstr ""
+"Classes mapeadas <emphasis>devem</emphasis> declarar a coluna de chave "
+"primária da tabela do banco de dados. Muitas classes irão também ter uma "
+"propriedade ao estilo Java-Beans declarando o identificador único de uma "
+"instância. O elemento <literal><id></literal> define o mapeamento "
+"desta propriedade para a chave primária."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal> (optional): the name of the identifier property."
+msgstr "<literal>name</literal> (opcional): O nome da propriedade do identificador."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (optional): a name that indicates the Hibernate type."
+msgstr "<literal>type</literal> (opcional): um nome que indica o tipo de Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional - defaults to the property name): the "
+"name of the primary key column."
+msgstr ""
+"<literal>column</literal> (opcional â padrão para o nome da propridade): O "
+"nome coluna chave primária."
+
+#. 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> (opcional - padrão para um valor \"sensÃvel"
+"\"): O valor da propriedade de identificação que indica que a instância foi "
+"novamente instanciada (unsaved), diferenciando de instâncias desconectadas "
+"que foram salvas ou carregadas em uma sessão anterior. "
+
+#. 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> (opcional - padrão para <literal>property</"
+"literal>): A estratégia que o Hiberante deve utilizar para acessar o valor "
+"da propriedade."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>name</literal> attribute is missing, it is assumed that the "
+"class has no identifier property."
+msgstr ""
+"Se a função <literal>name</literal> não for declarada, considera-se que a "
+"classe não tem a propriedade de identificação."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>unsaved-value</literal> attribute is almost never needed in "
+"Hibernate3."
+msgstr ""
+"A função <literal>unsaved-value</literal> não é mais necessária no Hibernate "
+"3."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There is an alternative <literal><composite-id></literal> declaration "
+"that allows access to legacy data with composite keys. Its use is strongly "
+"discouraged for anything else."
+msgstr ""
+"Há uma declaração alternativa <literal><composite-id></literal> que "
+"permite o acesso à dados legados com chaves compostas. Nós realmente "
+"desencorajamos o uso deste para qualquer outra função."
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr "Gerador"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><generator></literal> child element names a Java "
+"class used to generate unique identifiers for instances of the persistent "
+"class. If any parameters are required to configure or initialize the "
+"generator instance, they are passed using the <literal><param></"
+"literal> element."
+msgstr ""
+"O elemento filho opcional <literal><generator></literal> nomeia uma "
+"classe Java usada para gerar identificadores únicos para instâncias de uma "
+"classe persistente. Se algum parâmetro é requerido para configurar ou "
+"inicializar a instância geradora, eles são passados utilizando o elemento "
+"<literal><param></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 ""
+"Todos os geradores implementam a interface <literal>org.hibernate.id."
+"IdentifierGenerator</literal>. Esta é uma interface bem simples. Algumas "
+"aplicações podem prover suas próprias implementações especializadas, "
+"entretanto, o Hibernate disponibiliza um conjunto de implementações "
+"internamente. Há nomes de atalhos para estes geradores internos, conforme "
+"segue abaixo: "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>increment</literal>"
+
+#. 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 ""
+"gera identificadores dos tipos <literal>long</literal>, <literal>short</"
+"literal> ou <literal>int</literal> que são únicos apenas quando nenhum outro "
+"processo está inserindo dados na mesma tabela. <emphasis>Não utilize em "
+"ambientes de cluster.</emphasis>"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>identity</literal>"
+
+#. 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 ""
+"suporta colunas de identidade em DB2, MySQL, Servidor MS SQL, Sybase e "
+"HypersonicSQL. O identificador retornado é do tipo <literal>long</literal>, "
+"<literal>short</literal> ou <literal>int</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>sequence</literal>"
+
+#. 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 ""
+"utiliza uma seqüência em DB2, PostgreSQL, Oracle, SAP DB, McKoi ou um "
+"gerador no Interbase. O identificador de retorno é do tipo <literal> long</"
+"literal>, <literal>short</literal> ou <literal>int</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>hilo</literal>"
+
+#. 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 ""
+"utiliza um algoritmo hi/lo para gerar de forma eficiente identificadores do "
+"tipo <literal>long</literal>, <literal>short</literal> ou <literal>int</"
+"literal>, a partir de uma tabela e coluna fornecida (por padrão "
+"<literal>hibernate_unique_key</literal> e <literal>next_hi</literal>) como "
+"fonte para os valores hi. O algoritmo hi/lo gera identificadores que são "
+"únicos apenas para um banco de dados especÃfico."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>seqhilo</literal>"
+
+#. 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 ""
+"utiliza um algoritmo hi/lo para gerar de forma eficiente identificadores do "
+"tipo <literal>long</literal>, <literal>short</literal> ou <literal>int</"
+"literal>, a partir de uma seqüência de banco de dados fornecida."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>uuid</literal>"
+
+#. 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 ""
+"utiliza um algorÃtimo UUID de 128-bits para gerar identificadores do tipo "
+"string, únicos em uma rede (o endereço IP é utilizado). O UUID é codificado "
+"como um string de dÃgitos hexadecimais de tamanho 32."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>guid</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr "utiliza um string GUID gerado pelo banco de dados no Servidor MS SQL e MySQL."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>native</literal>"
+
+#. 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 ""
+"seleciona entre <literal>identity</literal>, <literal>sequence</literal>ou "
+"<literal>hilo</literal> dependendo das capacidades do banco de dados "
+"utilizado."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>assigned</literal>"
+
+#. 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><"
+"generator></literal> element is specified."
+msgstr ""
+"deixa a aplicação definir um identificador para o objeto antes que o "
+"<literal>save()</literal> seja chamado. Esta é a estratégia padrão caso "
+"nenhum elemento <literal><generator></literal> seja especificado. "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>select</literal>"
+
+#. 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."
+msgstr ""
+"retorna a chave primária recuperada por um trigger do banco de dados, "
+"selecionando uma linha pela chave única e recuperando o valor da chave "
+"primária."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>foreign</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"uses the identifier of another associated object. It is usually used in "
+"conjunction with a <literal><one-to-one></literal> primary key "
+"association."
+msgstr ""
+"utiliza o identificador de um outro objeto associado. Normalmente utilizado "
+"em conjunto com uma associação de chave primária do tipo <literal><one-to-"
+"one></literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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 ""
+"uma estratégia de geração de seqüência especializada que use uma seqüência "
+"de banco de dados para a geração de valor atual, mas combina isto com JDBC3 "
+"getGeneratedKeys para de fato retornar o valor do identificador gerado como "
+"parte da execução de instrução de inserção. Esta estratégia é somente "
+"conhecida para suportar drivers da Oracle 10g, focados em JDK 1.4. Note que "
+"os comentários sobre estas instruções de inserção estão desabilitados devido "
+"a um bug nos drivers da Oracle. "
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr "Algoritmo Hi/lo"
+
+#. 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 ""
+"Os geradores <literal>hilo</literal> e <literal>seqhilo</literal> fornecem "
+"duas implementações alternativas do algoritmo hi/lo, uma solução "
+"preferencial para a geração de identificadores. A primeira implementação "
+"requer uma tabela \"especial\" do banco de dados para manter o próximo valor "
+"\"hi\" disponÃvel. A segunda utiliza uma seqüência do estilo Oracle (quando "
+"suportado)."
+
+#. 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 ""
+"Infelizmente, você não pode utilizar <literal>hilo</literal> quando estiver "
+"fornecendo sua própria <literal>Connection</literal> para o Hibernate. "
+"Quando o Hibernate estiver usando uma fonte de dados do servidor de "
+"aplicações para obter conexões suportadas com JTA, você precisará configurar "
+"adequadamente o <literal>hibernate.transaction.manager_lookup_class</"
+"literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr "Algoritmo UUID"
+
+#. 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 ""
+"O UUID contém: o endereço IP, hora de inÃcio da JVM que é com precisão de um "
+"quarto de segundo, a hora do sistema e um valor contador que é único dentro "
+"da JVM. Não é possÃvel obter o endereço MAC ou um endereço de memória do "
+"código Java, portanto este é o melhor que pode ser feito sem utilizar JNI."
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr "Colunas de identidade e seqüências"
+
+#. 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 ""
+"Para bancos de dados que suportam colunas de identidade (DB2, MySQL, Sybase, "
+"MS SQL), você pode utilizar uma geração de chave <literal>identity</"
+"literal>. Para bancos de dados que suportam sequencias (DB2, Oracle, "
+"PostgreSQL, Interbase, McKoi, SAP DB) você pode utilizar a geração de chaves "
+"no estilo <literal>sequence</literal>. As duas estratégias requerem duas "
+"consultas SQL para inserir um novo objeto. "
+
+#. 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 ""
+"Para desenvolvimento multi-plataforma, a estratégia <literal>native</"
+"literal> irá escolher entre as estratégias <literal>identity</literal>, "
+"<literal>sequence</literal> e <literal>hilo</literal>, dependendo das "
+"capacidades do banco de dados utilizado."
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr "Identificadores atribuÃdos"
+
+#. 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><generator></literal> "
+"element."
+msgstr ""
+"Se você quiser que a aplicação especifique os identificadores, em vez do "
+"Hibernate gerá-los, você deve utilizar o gerador <literal>assigned</"
+"literal>. Este gerador especial irá utilizar o valor do identificador "
+"especificado para a propriedade de identificação do objeto. Este gerador é "
+"usado quando a chave primária é a chave natural em vez de uma chave "
+"substituta. Este é o comportamento padrão se você não especificar um "
+"elemento <literal><generator></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 ""
+"A escolha do gerador <literal>assigned</literal> faz com que o Hibernate "
+"utilize <literal>unsaved-value=\"undefined\"</literal>. Isto força o "
+"Hibernate ir até o banco de dados para determinar se uma instância está "
+"transiente ou desacoplada, a não ser que haja uma versão ou uma propriedade "
+"de timestamp, ou que você definia <literal>Interceptor.isUnsaved()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr "Chaves primárias geradas por triggers"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate does not generate DDL with triggers. It is for legacy schemas only."
+msgstr "O Hibernate não gera DDL com triggers, apenas para sistemas legados."
+
+#. 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 ""
+"No exemplo acima, há uma única propriedade com valor nomeada "
+"<literal>socialSecurityNumber</literal> definida pela classe, uma chave "
+"natural, e uma chave substituta nomeada <literal>person_id</literal> cujo "
+"valor é gerado por um trigger."
+
+#. Tag: title
+#, no-c-format
+msgid "Enhanced identifier generators"
+msgstr "Aprimoração dos geradores de identificador"
+
+#. 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 ""
+"Iniciando com a liberação 3.2.3, existem dois novos geradores que "
+"representam uma reavaliação de dois diferentes aspectos da geração "
+"identificadora. O primeiro aspecto é a portabilidade do banco de dados, o "
+"segundo é a otimização. A otimização significa que você não precisa "
+"questionar o banco de dados a cada solicitação para um novo valor de "
+"identificador. Estes dois geradores possuem por intenção substituir alguns "
+"dos geradores nomeados acima, começando em 3.3.x. No entanto, eles estão "
+"incluÃdos nas liberações atuais e podem ser referenciados pelo 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 ""
+"A primeira destas novas gerações é a <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal> que primeiramente é uma substituição para o "
+"gerador <literal>sequence</literal> e, segundo, um melhor gerador de "
+"portabilidade que o <literal>native</literal>. Isto é devido ao "
+"<literal>native</literal> normalmente escolher entre <literal>identity</"
+"literal> e <literal>sequence</literal>, que são semânticas extremamente "
+"diferentes das quais podem causar problemas súbitos em portabilidade de "
+"observação de aplicativos. No entanto, o <literal>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</literal> atinge a portabilidade numa maneira "
+"diferente. Ele escolhe entre uma tabela ou uma seqüência no banco de dados "
+"para armazenar seus valores de incrementação, dependendo nas capacidades do "
+"dialeto sendo usado. A diferença entre isto e o <literal>native</literal> é "
+"que o armazenamento baseado na tabela e seqüência possuem exatamente a mesma "
+"semântica. Na realidade, as seqüências são exatamente o que o Hibernate "
+"tenta imitar com os próprios geradores baseados na tabela. Este gerador "
+"possui um número de parâmetros de configuração: "
+
+#. 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> (opcional - valor padrão "
+"<literal>hibernate_sequence</literal>) o nome da seqüência ou tabela a ser "
+"usada."
+
+#. 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> (opcional - padrão para <literal>1</"
+"literal>) O valor inicial a ser restaurado a partir da seqüência/tabela. Em "
+"termos da criação de seqüência, isto é análogo à cláusula tipicamente "
+"nomeada \"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> (opcional - padrão para <literal>1</"
+"literal>): o valor pelo qual as chamadas para a seqüência/tabela devem "
+"diferenciar-se. Nos termos da criação da seqüência, isto é análogo à "
+"cláusula tipicamente nomeada \"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> (opcional - padrão para <literal>false</"
+"literal>): devemos forçar o uso de uma tabela como uma estrutura de reforço, "
+"mesmo que o dialeto possa suportar a seqüência?"
+
+#. 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> (opcional - padrão para <literal>next_val</"
+"literal>): apenas relevante para estruturas de tabela, este é o nome da "
+"coluna onde na tabela que é usado para manter o valor."
+
+#. 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> (opcional â padrão para <literal>none</"
+"literal>): Veja <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 ""
+"O segundo destes novos geradores é o <literal>org.hibernate.id.enhanced."
+"TableGenerator</literal>, que primeiramente é uma substituição para o "
+"gerador <literal>table</literal>, mesmo que isto funcione muito mais como um "
+"<literal>org.hibernate.id.MultipleHiLoPerTableGenerator</literal>, e "
+"segundo, como uma reimplementação do <literal>org.hibernate.id."
+"MultipleHiLoPerTableGenerator</literal> que utiliza a noção dos otimizadores "
+"pugláveis. Basicamente, este gerador define uma tabela capacitada de manter "
+"um número de valores de incremento simultâneo pelo uso múltiplo de filas de "
+"chaves distintas. Este gerador possui um número de parâmetros de "
+"configuração."
+
+#. 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> (opcional - padrão para "
+"<literal>hibernate_sequences</literal>): O nome da tabela a ser usado."
+
+#. 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> (opcional - padrão para "
+"<literal>next_val</literal>): o nome da coluna na tabela que é usado para "
+"manter o valor."
+
+#. 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> (opcional - padrão para "
+"<literal>sequence_name</literal>) O nome da coluna da tabela que é usado "
+"para manter a \"chave de segmento\". Este é o valor que identifica qual "
+"valor de incremento a ser usado."
+
+#. 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>base</literal> (opcional - padrão para <literal>default</literal>) "
+"O valor da \"chave de segmento\" para o segmento pelo qual nós queremos "
+"obter os valores de incremento para este gerador."
+
+#. 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> (opcional - padrão para "
+"<literal>255</literal>): Usado para a geração do esquema. O tamanho da "
+"coluna para criar esta coluna de chave de segmento."
+
+#. 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> (opcional - valor padrão para <literal>1</"
+"literal>): O valor inicial a ser restaurado a partir da tabela."
+
+#. 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> (opcional - padrão para <literal>1</"
+"literal>): O valor pelo qual as chamadas subseqüentes para a tabela devem "
+"diferir-se."
+
+#. 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> (opcional â padrão para <literal></literal>): "
+"Consulte <xref linkend=\"mapping-declaration-id-enhanced-optimizers\" />"
+
+#. Tag: title
+#, no-c-format
+msgid "Identifier generator optimization"
+msgstr "Otimização do Gerador de Identificação"
+
+#. 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 ""
+"Para os geradores de identificação que armazenam valores no banco de dados, "
+"é ineficiente para os mesmos atingirem o banco de dados em cada e toda "
+"chamada para gerar um valor de identificação novo. Ao invés disto, você pode "
+"agrupá-los na memória e apenas alcançar o banco de dados quando exceder o "
+"grupo de valor em memória. Esta é a função dos otimizadores pugláveis. "
+"Atualmente, apenas dois geradores aprimorados suportam esta operação. (<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> (geralmente este é o padrão, caso nenhum otimizador "
+"for especificado): isto não executará quaisquer otimizações e alcançará o "
+"banco de dados para cada e toda solicitação."
+
+#. 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>: aplica-se ao algoritmo em volta dos valores "
+"restaurados do banco de dados. Espera-se que os valores a partir do banco de "
+"dados para este otimizador sejam seqüenciais. Os valores restaurados a "
+"partir da estrutura do banco de dados para este otimizador indica um "
+"\"número de grupo\". O <literal>increment_size</literal> é multiplicado pelo "
+"valor em memória para definir um grupo \"hi value\"."
+
+#. 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>: assim como o caso do <literal>hilo</literal>, "
+"este otimizador tenta minimizar o número de tentativas no banco de dados. No "
+"entanto, nós simplesmente implementamos o valor de inicialização para o "
+"\"próximo grupo\" na estrutura do banco de dados ao invés do valor "
+"seqüencial na combinação com um algoritmo de agrupamento em memória. Neste "
+"caso, o <literal>increment_size</literal> refere-se aos valores de entrada a "
+"partir do banco de dados."
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr "Composição-id"
+
+#. 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><composite-id></literal> "
+"element accepts <literal><key-property></literal> property mappings "
+"and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr ""
+"Uma tabela com uma chave composta, pode ser mapeada com múltiplas "
+"propriedades da classe como propriedades de identificação. O elemento "
+"<literal><composite-id></literal> aceita o mapeamento da propriedade "
+"<literal><key-property></literal> e mapeamentos <literal><key-many-"
+"to-one></literal>como elementos filhos."
+
+#. 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 ""
+"A classe persistente <emphasis>precisa</emphasis> substituir <literal>equals"
+"()</literal> e <literal>hashCode()</literal> para implementar "
+"identificadores compostos igualmente. E precisa também implementar "
+"<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 ""
+"Infelizmente, esta solução para um identificador composto significa que um "
+"objeto persistente é seu próprio identificador. Não há outro \"handle\" "
+"conveniente a não ser o próprio objeto. Você mesmo precisa instanciar uma "
+"instância de outra classe persistente e preencher suas propriedades de "
+"identificação antes que você possa dar um <literal>load()</literal> para o "
+"estado persistente associado com uma chave composta. Nós chamamos esta "
+"solução de identificador composto <emphasis>incorporado</emphasis> e não "
+"aconselhamos para aplicações sérias."
+
+#. 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><"
+"composite-id></literal> element are duplicated on both the persistent "
+"class and a separate identifier class."
+msgstr ""
+"Uma segunda solução seria chamar de identificador composto <emphasis>mapped</"
+"emphasis> quando a propriedades de identificação nomeadas dentro do elemento "
+"<literal><composite-id></literal> estão duplicadas tanto na classe "
+"persistente como em uma classe de identificação separada."
+
+#. 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 ""
+"No exemplo, ambas as classes de identificadores compostas, "
+"<literal>MedicareId</literal>, e a própria classe entidade possuem "
+"propriedades nomeadas <literal>medicareNumber</literal> e "
+"<literal>dependent</literal>. A classe identificadora precisa sobrepor "
+"<literal>equals()</literal> e <literal>hashCode()</literal> e implementar "
+"<literal>Serializable</literal>. A desvantagem desta solução é óbvia: "
+"duplicação de código."
+
+#. Tag: para
+#, no-c-format
+msgid "The following attributes are used to specify a mapped composite identifier:"
+msgstr ""
+"As seguintes funções são utilizadas para especificar o mapeamento de um "
+"identificador composto:"
+
+#. 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> (opcional, <literal>false</literal> por padrão): "
+"Indica que um identificar composto mapeado é usado, e que as propriedades de "
+"mapeamento contidas refere-se tanto à classe entidade quanto à classe de "
+"identificação composta."
+
+#. 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> (opcional, mas requerida para um identificador "
+"composto mapeado): A classe usada como um identificador composto. "
+
+#. 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 ""
+"Descreveremos uma abordagem terciária e até mais conveniente, onde o "
+"identificador da composição é implementado como uma classe componente na "
+"<xref linkend=\"components-compositeid\"/>. Os atributos descritos abaixo "
+"aplicam-se apenas para esta abordagem: "
+
+#. 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> (opcional, requerida para esta abordagem): Uma "
+"propriedade do tipo componente que armazena o identificador composto. Para "
+"maiores informações, por favor consulte o capÃtulo 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> (opcional - padrão para <literal>property</"
+"literal>): A estratégia que o Hiberante deve utilizar para acessar o valor "
+"da propriedade."
+
+#. 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> (opcional - valor padrão para o tipo de propriedade "
+"determinando por reflexão): A classe componente utilizada como um "
+"identificador composto. Por favor consulte a próxima seção para maiores "
+"informações."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The third approach, an <emphasis>identifier component</emphasis>, is "
+"recommended for almost all applications."
+msgstr ""
+"Esta terceira abordagem, um <emphasis>componente identificador</emphasis>, é "
+"a que nós recomendamos para a maioria das aplicações. "
+
+#. Tag: title
+#, no-c-format
+msgid "Discriminator"
+msgstr "Discriminador "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><discriminator></literal> element is required for "
+"polymorphic persistence using the table-per-class-hierarchy mapping "
+"strategy. It declares a discriminator column of the table. The discriminator "
+"column contains marker values that tell the persistence layer what subclass "
+"to instantiate for a particular row. A restricted set of types can be used: "
+"<literal>string</literal>, <literal>character</literal>, <literal>integer</"
+"literal>, <literal>byte</literal>, <literal>short</literal>, "
+"<literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</"
+"literal>."
+msgstr ""
+"O elemento <literal><discriminator></literal> é necessário para "
+"persistência polimórfica utilizando a estratégia de mapeamento de tabela-por-"
+"classe-hierárquica e declara uma coluna discriminadora da tabela. A coluna "
+"discriminadora contém valores de marcação que informam à camada de "
+"persistência qual subclasse instanciar para uma linha em especÃfico. Um "
+"restrito conjunto de tipos que podem ser utilizados: <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> (opcional - padrão para <literal>class</literal>): "
+"O nome da coluna discriminadora."
+
+#. 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> (opcional - padrão para <literal>string</literal>): "
+"O nome que indica o tipo 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> (opcional - valor padrão <literal>false</literal>): "
+"\"Força\" o Hibernate a especificar valores discriminadores permitidos mesmo "
+"quando recuperando todas as instâncias da classe raÃz. "
+
+#. 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> (opcional - valor padrão para <literal>true</"
+"literal>) Ajuste para <literal>false</literal> se sua coluna discriminadora "
+"também fizer parte do identificador composto mapeado. (Isto informa ao "
+"Hibernate para não incluir a coluna em comandos SQL <literal>INSERT</"
+"literal>s)."
+
+#. 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> (opcional): Uma expressão SQL arbitrária que é "
+"executada quando um tipo tem que ser avaliado. Permite discriminação baseada "
+"em conteúdo. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Actual values of the discriminator column are specified by the "
+"<literal>discriminator-value</literal> attribute of the <literal><"
+"class></literal> and <literal><subclass></literal> elements."
+msgstr ""
+"Valores atuais de uma coluna discriminada são especificados pela função "
+"<literal>discriminator-value</literal> da <literal><class></literal> e "
+"elementos da <literal><subclass></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 ""
+"O atributo <literal>force</literal> é útil (apenas) em tabelas contendo "
+"linhas com valores discriminadores \"extras\" que não estão mapeados para "
+"uma classe persistente. Este não é geralmente o caso."
+
+#. 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 ""
+"Usando o atributo <literal>formula</literal> você pode declarar uma "
+"expressão SQL arbitrária que será utilizada para avaliar o tipo de uma "
+"linha. Por exemplo:"
+
+#. Tag: title
+#, no-c-format
+msgid "Version (optional)"
+msgstr "Versão (opcional) "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><version></literal> element is optional and indicates "
+"that the table contains versioned data. This is particularly useful if you "
+"plan to use <emphasis>long transactions</emphasis>. See below for more "
+"information:"
+msgstr ""
+"O elemento <literal><version></literal> é opcional e indica que a "
+"tabela possui dados versionados. Isto é particularmente útil se você planeja "
+"utilizar <emphasis>transações longas</emphasis>. Veja abaixo maiores "
+"informações: "
+
+#. 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> (opcional - tem como padrão o nome da propriedade "
+"name): O nome da coluna mantendo o número da versão."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of a property of the persistent class."
+msgstr "<literal>name</literal>: O nome da propriedade da classe persistente. "
+
+#. 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> (opcional - padrão para <literal>integer</literal>): "
+"O tipo do número da versão."
+
+#. 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> (opcional - padrão para <literal>property</"
+"literal>): A estratégia que o Hiberante deve utilizar para acessar o valor "
+"da propriedade."
+
+#. 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> (opcional â valor padrão para "
+"<literal>undefined </literal>): Um valor para a propriedade versão que "
+"indica que uma instância foi instanciada recentemente (unsaved), "
+"distinguindo de instâncias desconectadas que foram salvas ou carregadas em "
+"sessões anteriores. (<literal>undefined</literal> especifica que o valor da "
+"propriedade de identificação deve ser utilizado). "
+
+#. 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 <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (opcional - valor padrão <literal>never</"
+"literal>): Especifica que este valor de propriedade da versão é na verdade "
+"gerado pelo banco de dados. Veja o <link linkend=\"mapping-generated"
+"\">generated properties</link> "
+"para maiores informações. "
+
+#. 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> (opcional - padrão para <literal>true</literal>): "
+"Especifica se a coluna de versão deve ser incluÃda na instrução de inserção "
+"do SQL. Pode ser configurado como <literal>false</literal> se a coluna do "
+"banco de dados estiver definida com um valor padrão de <literal>0</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 ""
+"Números de versão podem ser dos tipos Hibernate <literal>long</literal>, "
+"<literal>integer</literal>, <literal>short</literal>, <literal>timestamp</"
+"literal> ou <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 ""
+"A versão ou timestamp de uma propriedade nunca deve ser nula para uma "
+"instância desconectada, assim o Hibernate irá identificar qualquer instância "
+"com uma versão nula ou timestamp como transiente, não importando qual outra "
+"estratégia <literal>unsaved-value</literal> tenha sido especificada. "
+"<emphasis>A declaração de uma versão nula ou a propriedade timestamp é um "
+"caminho fácil para tratar problemas com reconexões transitivas no Hibernate, "
+"especialmente úteis para pessoas utilizando identificadores atribuÃdos ou "
+"chaves compostas</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Timestamp (optional)"
+msgstr "Timestamp (opcional) "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal><timestamp></literal> element indicates that the "
+"table contains timestamped data. This provides an alternative to versioning. "
+"Timestamps are a less safe implementation of optimistic locking. However, "
+"sometimes the application might use the timestamps in other ways."
+msgstr ""
+"O elemento opcional <literal><timestamp></literal> indica que uma "
+"tabela contém dados em timestamp. Isso tem por objetivo dar uma alternativa "
+"para versionamento. Timestamps são por natureza uma implementação menos "
+"segura do bloqueio otimista. Entretanto, algumas vezes a aplicação pode usar "
+"timestamps em outros caminhos. "
+
+#. 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> (opcional - padrão para o nome da propriedade): O "
+"nome da coluna que mantém o timestamp."
+
+#. 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>: O nome da propriedade no estilo JavaBeans do tipo "
+"<literal>Date</literal> ou <literal>Timestamp</literal> da classe "
+"persistente."
+
+#. 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> (opcional - padrão para <literal>null</"
+"literal>): Um valor de propriedade da versão que indica que uma instância "
+"foi recentemente instanciada (unsaved), distinguindo-a de instâncias "
+"desconectadas que foram salvas ou carregadas em sessões prévias. "
+"<literal>Undefined</literal> especifica que um valor de propriedade de "
+"identificação deve ser utilizado."
+
+#. 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> (opcional - padrão para <literal>vm</literal>): De "
+"onde o Hibernate deve recuperar o valor timestamp? Do banco de dados ou da "
+"JVM atual? Timestamps baseados em banco de dados levam a um overhead porque "
+"o Hibernate precisa acessar o banco de dados para determinar o \"próximo "
+"valor\", mas é mais seguro para uso em ambientes de cluster. Observe também, "
+"que nem todos os <literal>Dialects</literal> suportam a recuperação do "
+"carimbo de data e hora atual do banco de dados, enquanto outros podem não "
+"ser seguros para utilização em bloqueios, pela falta de precisão (Oracle 8, "
+"por exemplo)."
+
+#. 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 <link linkend=\"mapping-"
+"generated\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (opcional - padrão para <literal>never</"
+"literal>): Especifica que o valor da propriedade timestamp é gerado pelo "
+"banco de dados. Veja a discussão do <link linkend=\"mapping-"
+"generated\">generated properties</link> "
+"para maiores informações. "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><Timestamp></literal> is equivalent to <literal><version "
+"type=\"timestamp\"></literal>. And <literal><timestamp source=\"db"
+"\"></literal> is equivalent to <literal><version type=\"dbtimestamp"
+"\"></literal>"
+msgstr ""
+"Observe que o <literal><timestamp></literal> é equivalente a "
+"<literal><version type=\"timestamp\"></literal>. E <literal><"
+"timestamp source=\"db\"></literal> é equivalente a <literal><version "
+"type=\"dbtimestamp\"></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Property"
+msgstr "Propriedade "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><property></literal> element declares a persistent "
+"JavaBean style property of the class."
+msgstr ""
+"O elemento <literal><property></literal> declara uma propriedade de "
+"estilo JavaBean de uma classe."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>name</literal>: the name of the property, with an initial lowercase "
+"letter."
+msgstr ""
+"<literal>name</literal>: o nome da propriedade, iniciando com letra "
+"minúscula."
+
+#. 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><column></literal> element(s)."
+msgstr ""
+"<literal>column</literal> (opcional - padrão para o nome da propriedade): O "
+"nome da coluna mapeada do banco de dados. Isto pode também ser especificado "
+"pelo(s) elemento(s) <literal><column></literal> aninhados."
+
+#. 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> (opcional - padrão para <literal>true</"
+"literal>): especifica que as colunas mapeadas devem ser incluÃdas nas "
+"instruções SQL de <literal>UPDATE</literal> e/ou <literal>INSERT</literal>. "
+"Ajustar ambas para <literal>false</literal> permite uma propridade \"derivada"
+"\" pura, cujo valor é inicializado de outra propriedade, que mapeie a mesma "
+"coluna(s) ou por uma disparo ou outra aplicação."
+
+#. 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> (opcional): uma instrução SQL que definie o valor "
+"para uma propriedade <emphasis>calculada</emphasis>. Propriedades calculadas "
+"não possuem uma coluna de mapeamento para elas."
+
+#. 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> (opcional - padrão para <literal>false</literal>): "
+"Especifica que esta propriedade deve ser atingida de forma lenta quando a "
+"instância da variável é acessada pela primeira vez. Isto requer "
+"instrumentação bytecode em tempo de criação."
+
+#. 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> (opcional): Habilita a geração de DDL de uma única "
+"restrição para as colunas. Da mesma forma, permita que isto seja o alvo de "
+"uma <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> (opcional): Habilita a geração de DDL de uma "
+"restrição de nulidade para as colunas. "
+
+#. 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> (opcional - padrão para <literal>true</"
+"literal>): Especifica se mudanças para esta propriedade requerem ou não "
+"bloqueio otimista. Em outras palavras, determina se um incremento de versão "
+"deve ocorrer quando esta propriedade está suja."
+
+#. 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 <link linkend=\"mapping-generated"
+"\">generated properties</link> for more information."
+msgstr ""
+"<literal>generated</literal> (opcional - padrão para <literal>never</"
+"literal>): Especifica que o valor da propriedade é na verdade gerado pelo "
+"banco de dados. Veja a discussão do <link linkend=\"mapping-generated"
+"\">generated properties</link> "
+"para maiores informações. "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr "<emphasis>typename</emphasis> pode ser:"
+
+#. 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 ""
+"O nome de um tipo básico de Hibernate: <literal>integer, string, character, "
+"date, timestamp, float, binary, serializable, object, blob</literal>, etc. "
+
+#. 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 ""
+"O nome da classe Java com um tipo básico padrão: <literal>int, float, char, "
+"java.lang.String, java.util.Date, java.lang.Integer, java.sql.Clob</"
+"literal>, etc."
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr "O nome da classe Java serializável"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The class name of a custom type: <literal>com.illflow.type.MyCustomType</"
+"literal> etc."
+msgstr ""
+"O nome da classe de um tipo customizado: <literal>com.illflow.type."
+"MyCustomType</literal>, etc."
+
+#. 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 ""
+"Se você não especificar um tipo, o Hibernate irá utilizar reflexão sobre a "
+"propriedade nomeada para ter uma idéia do tipo de Hibernate correto. O "
+"Hibernate tentará interpretar o nome da classe retornada, usando as regras "
+"2, 3 e 4 nesta ordem. Em certos casos, você ainda precisará do atributo "
+"<literal>type</literal>. Por exemplo, para distinguir entre "
+"<literal>Hibernate.DATE</literal> e <literal>Hibernate.TIMESTAMP</literal>, "
+"ou para especificar um tipo customizado."
+
+#. 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 ""
+"A função <literal>access</literal> permite que você controle como o "
+"Hibernate irá acessar a propriedade em tempo de execução. Por padrão, o "
+"Hibernate irá chamar os métodos get/set da propriedades. Se você especificar "
+"<literal>access=\"field\"</literal>, o Hibernate irá bipassar os metodos get/"
+"set, acessando o campo diretamente, usando reflexão. Você pode especificar "
+"sua própria estratégia para acesso da propriedade criando uma classe que "
+"implemente a interface <literal>org.hibernate.property.PropertyAccessor</"
+"literal>."
+
+#. 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 ""
+"Um recurso especialmente poderoso é o de propriedades derivadas. Estas "
+"propriedades são por definição somente leitura, e o valor da propriedade é "
+"calculado em tempo de execução. Você declara este cálculo como uma expressão "
+"SQL, que traduz para cláusula <literal>SELECT</literal> de uma subconsulta "
+"da consulta SQL que carrega a instância: "
+
+#. 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><formula></literal> mapping "
+"element if you do not want to use the attribute."
+msgstr ""
+"Observe que você pode referenciar as entidades da própria tabela, através da "
+"não declaração de um alias para uma coluna particular. Isto seria o "
+"<literal>customerId</literal> no exemplo dado. Observe também que você pode "
+"usar o mapeamento de elemento aninhado <literal><formula></literal>, "
+"se você não gostar de usar o atributo. "
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "Muitos-para-um "
+
+#. 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 ""
+"Uma associação ordinária para outra classe persistente é declarada usando o "
+"elemento <literal>many-to-one</literal>. O modelo relacional é uma "
+"associação muitos para um: uma chave exterior de uma tabela referenciando as "
+"colunas da chave primária da tabela destino."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr "<literal>name</literal>: O nome da propriedade. "
+
+#. 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><column></literal> "
+"element(s)."
+msgstr ""
+"<literal>column</literal> (opcional): O nome da coluna da chave exterior. "
+"Isto pode também ser especificado através de elementos aninhados "
+"<literal><column></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> (opcional â padrão para o tipo de propriedade "
+"determinado pela reflexão): O nome da classe associada."
+
+#. 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> (opcional): Especifica qual operação deve ser "
+"cascateada do objeto pai para o objeto associado. "
+
+#. 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> (opcional - padrão para <literal>select</literal>): "
+"Escolhe entre recuperação da união exterior ou recuperação seqüencial de "
+"seleção."
+
+#. 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> (opcional - valor padrão <literal>true</"
+"literal>): especifica que as colunas mapeadas devem ser incluÃdas em "
+"instruções SQL de <literal>UPDATE</literal> e/ou <literal>INSERT</literal>. "
+"Com o ajuste de ambas para <literal>false</literal> você permite uma "
+"associação \"derivada\" pura cujos valores são inicializados de algumas "
+"outras propriedades que mapeiam a(s) mesma(s) coluna(s) ou por um trigger ou "
+"outra aplicação. "
+
+#. 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>: (opcional) O nome de uma propriedade da "
+"classe associada que esteja unida à esta chave exterior. Se não for "
+"especificada, a chave primária da classe associada será utilizada. "
+
+#. 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> (opcional): Habilita a geração DDL de uma "
+"restrição única para a coluna da chave exterior. Além disso, permite ser o "
+"alvo de uma <literal>property-ref</literal>. Isso torna a multiplicidade da "
+"associação efetivamente um para um. "
+
+#. 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> (opcional): Habilita a geração DDL de uma "
+"restrição de nulidade para as colunas de chaves exteriores."
+
+#. 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>(opcional â padrão para <literal>proxy</literal>): "
+"Por padrão, associações de ponto único são envoltas em um proxie. "
+"<literal>lazy=\"no-proxy\"</literal> especifica que a propriedade deve ser "
+"trazida de forma tardia quando a instância da variável é acessada pela "
+"primeira vez. Isto requer instrumentação bytecode em tempo de criação. O "
+"<literal>lazy=\"false\"</literal> especifica que a associação será sempre "
+"procurada."
+
+#. 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> (opcional - padrão para <literal>exception</"
+"literal>): Especifica como as chaves exteriores que informam que linhas que "
+"estejam faltando serão manuseadas. O <literal>ignore</literal> tratará a "
+"linha faltante como uma associação nula."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>entity-name</literal> (optional): the entity name of the associated "
+"class."
+msgstr ""
+"<literal>entity-name</literal> (opcional): O nome da entidade da classe "
+"associada. "
+
+#. 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> (optional): Uma instrução SQL que define um valor "
+"para uma chave exterior <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 ""
+"Ao ajustar o valor do atributo <literal>cascade</literal> para qualquer "
+"valor diferente de <literal>none</literal> irá propagar certas operações ao "
+"objeto associado. Os valores significativos são divididos em três "
+"categorias. A primeira, operações básicas, que inclui: <literal>persist, "
+"merge, delete, save-update, evict, replicate, lock and refresh</literal>. A "
+"segunda, valores especiais: <literal>delete-orphan</literal> e a terceira "
+"combinações de vÃrgula separada <literal>all</literal> dos nomes da "
+"operação: <literal>cascade=\"persist,merge,evict\"</literal> ou "
+"<literal>cascade=\"all,delete-orphan\"</literal>. Veja <xref linkend="
+"\"objectstate-transitive\"/> para uma completa explicação. Perceba que as "
+"associações de valores únicos, muitos-para-um e um-para-um, não suportam "
+"delete órfão: "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of a typical <literal>many-to-one</literal> declaration:"
+msgstr ""
+"Segue abaixo uma amostra de uma tÃpica declaração <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 ""
+"O atributo <literal>property-ref</literal> deve apenas ser usado para mapear "
+"dados legados onde uma chave exterior se refere à uma chave exclusiva da "
+"tabela associada que não seja a chave primária. Este é um modelo relacional "
+"desagradável. Por exemplo, suponha que a classe <literal>Product</literal> "
+"tenha um número seqüencial exclusivo, que não seja a chave primária. O "
+"atributo <literal>unique</literal> controla a geração de DDL do Hibernate "
+"com a ferramenta SchemaExport."
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr "Então o mapeamento para <literal>OrderItem</literal> poderia usar:"
+
+#. Tag: para
+#, no-c-format
+msgid "This is not encouraged, however."
+msgstr "No entanto, isto não é recomendável."
+
+#. 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><"
+"properties></literal> element."
+msgstr ""
+"Se a chave exclusiva referenciada engloba múltiplas propriedades da entidade "
+"associada, você deve mapear as propriedades referenciadas dentro de um "
+"elemento chamado <literal><properties></literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the referenced unique key is the property of a component, you can specify "
+"a property path:"
+msgstr ""
+"Se a chave exclusiva referenciada é a propriedade de um componente, você "
+"pode especificar um caminho para a propriedade:"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "Um-para-um "
+
+#. 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 ""
+"Uma associação um-pra-um para outra classe persistente é declarada usando um "
+"elemento <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> (opcional): Especifica que uma restrição de "
+"chave exterior na chave primária da tabela mapeada referencia a tabela da "
+"classe associada. Esta opção afeta a ordem em que <literal>save()</literal> "
+"e <literal>delete()</literal> são cascateadas, e determina se a associação "
+"pode sofrer o proxie. Isto também é usado pela ferramenta schema export. "
+
+#. 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>(opcional): O nome da propriedade da classe "
+"associada que é ligada à chave primária desta classe. Se não for "
+"especificada, a chave primária da classe associada é utilizada. "
+
+#. 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> (opcional): Quase todas associações um-pra-um "
+"mapeiam para a chave primária da entidade dona. Caso este não seja o caso, "
+"você pode especificar uma outra coluna, colunas ou expressões para unir "
+"utilizando uma fórmula SQL. Veja <literal>org.hibernate.test."
+"onetooneformula</literal> para exemplo. "
+
+#. 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> (opcional â valor padrão <literal>proxy</literal>): "
+"Por padrão, as associações de ponto único estão em proxy. <literal>lazy=\"no-"
+"proxy\"</literal> especifica que a propriedade deve ser recuperada de forma "
+"preguiçosa quando a variável da instância for acessada pela primeira vez. "
+"Isto requer instrumentação de bytecode de tempo de construção. <literal>lazy="
+"\"false\"</literal> especifica que a associação terá sempre uma busca "
+"antecipada (eager fetched). <emphasis> Note que se <literal>constrained="
+"\"false\"</literal>, será impossÃvel efetuar o proxing e o Hibernate irá "
+"realizar uma busca antecipada na associação</emphasis>."
+
+#. Tag: para
+#, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr "Existem duas variedades de associações um-pra-um: "
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr "Associações de chave primária"
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr "Associações de chave exterior exclusiva"
+
+#. 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 ""
+"Associações de chave primária não necessitam de uma coluna extra de tabela. "
+"Se duas linhas forem relacionadas pela associação, então as duas linhas da "
+"tabela dividem o mesmo valor da chave primária. Assim, se você quiser que "
+"dois objetos sejam relacionados por uma associação de chave primária, você "
+"deve ter certeza que foram atribuÃdos com o mesmo valor identificador."
+
+#. 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 ""
+"Para uma associação de chave primária, adicione os seguintes mapeamentos em "
+"<literal>Employee</literal> e <literal>Person</literal>, respectivamente:"
+
+#. 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 ""
+"Agora devemos assegurar que as chaves primárias de linhas relacionadas nas "
+"tabelas PERSON e EMPLOYEE são iguais. Nós usamos uma estratégia especial de "
+"geração de identificador do Hibernate chamada <literal>foreign</literal>:"
+
+#. 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 ""
+"Uma nova instância de <literal>Person</literal> é atribuÃda com o mesmo "
+"valor da chave primária da instância de <literal>Employee</literal> "
+"referenciada com a propriedade <literal>employee</literal> daquela "
+"<literal>Person</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 ""
+"Alternativamente, uma chave exterior com uma restrição única, de "
+"<literal>Employee</literal> para <literal>Person</literal>, pode ser "
+"expressada como:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This association can be made bidirectional by adding the following to the "
+"<literal>Person</literal> mapping:"
+msgstr ""
+"Esta associação pode ser feita de forma bi-direcional adicionando o seguinte "
+"no mapeamento de <literal>Person</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "Natural-id"
+msgstr "Id Natural"
+
+#. 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><"
+"natural-id></literal> element. Hibernate will generate the necessary "
+"unique key and nullability constraints and, as a result, your mapping will "
+"be more self-documenting."
+msgstr ""
+"Embora recomendemos o uso das chaves substitutas como chaves primárias, você "
+"deve ainda identificar chaves naturais para todas as entidades. Uma chave "
+"natural é uma propriedade ou combinação de propriedades que é exclusiva e "
+"não nula. Mapeie as propriedades da chave natural dentro do elemento "
+"<literal><natural-id></literal>. O Hibernate irá gerar a chave "
+"exclusiva necessária e as restrições de anulabilidade, e seu mapeamento será "
+"apropriadamente auto documentado."
+
+#. 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 ""
+"Nós recomendamos com ênfase que você implemente <literal>equals()</literal> "
+"e <literal>hashCode()</literal> para comparar as propriedades da chave "
+"natural da entidade. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This mapping is not intended for use with entities that have natural primary "
+"keys."
+msgstr ""
+"Este mapeamento não pretende ser utilizado com entidades com chaves naturais "
+"primárias."
+
+#. 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> (opcional, padrão <literal>false</literal>): Por "
+"padrão, propriedades naturais identificadoras são consideradas imutáveis "
+"(constante)."
+
+#. Tag: title
+#, no-c-format
+msgid "Component and dynamic-component"
+msgstr "Componente e componente dinâmico"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element maps properties of a child "
+"object to columns of the table of a parent class. Components can, in turn, "
+"declare their own properties, components or collections. See the \"Component"
+"\" examples below:"
+msgstr ""
+"O elemento <literal><component></literal> mapeia propriedades de um "
+"objeto filho para colunas da tabela de uma classe pai. Os componentes podem, "
+"um após o outro, declarar suas próprias propriedades, componentes ou "
+"coleções. Veja \"Components\" abaixo:"
+
+#. 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> (opcional â padrão para o tipo de propriedade "
+"determinada por reflection): O nome da classe (filha) do componente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>insert</literal>: do the mapped columns appear in SQL "
+"<literal>INSERTs</literal>?"
+msgstr ""
+"<literal>insert</literal>: As colunas mapeadas aparecem nos SQL de "
+"<literal>INSERTs</literal>? "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>update</literal>: do the mapped columns appear in SQL "
+"<literal>UPDATEs</literal>?"
+msgstr ""
+"<literal>update</literal>: As colunas mapeadas aparecem nos SQL de "
+"<literal>UPDATEs</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> (opcional - padrão para <literal>false</literal>): "
+"Especifica que este componente deve ter uma busca lazy quando a função for "
+"acessada pela primeira vez. Isto requer instrumentação bytecode de tempo de "
+"construção."
+
+#. 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> (opcional â padrão para <literal>true</"
+"literal>): Especifica que atualizações para este componente requerem ou não "
+"aquisição de um bloqueio otimista. Em outras palavras, determina se uma "
+"versão de incremento deve ocorrer quando esta propriedade estiver suja."
+
+#. 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> (opcional â valor padrão <literal>false</"
+"literal>): Especifica que existe uma unique restrição em todas as colunas "
+"mapeadas do componente. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The child <literal><property></literal> tags map properties of the "
+"child class to table columns."
+msgstr ""
+"A tag filha <literal><property></literal> acrescenta a propriedade de "
+"mapeamento da classe filha para colunas de uma tabela."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"O elemento <literal><component></literal> permite um sub-elemento "
+"<literal><parent></literal> mapeie uma propriedade da classe do "
+"componente como uma referencia de volta para a entidade que o contém."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><dynamic-component></literal> element allows a "
+"<literal>Map</literal> to be mapped as a component, where the property names "
+"refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for "
+"more information."
+msgstr ""
+"O elemento <literal><dynamic-component></literal> permite que um "
+"<literal>Map</literal> possa ser mapeado como um componente onde os nomes "
+"das propriedades referem-se para as chaves no mapa. Consulte <xref linkend="
+"\"components-dynamic\"/> para maiores informações."
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "Propriedades"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><properties></literal> element allows the definition of a "
+"named, logical grouping of the properties of a class. The most important use "
+"of the construct is that it allows a combination of properties to be the "
+"target of a <literal>property-ref</literal>. It is also a convenient way to "
+"define a multi-column unique constraint. For example:"
+msgstr ""
+"O elemento <literal><properties></literal> permite a definição de um "
+"grupo com nome, lógico de propriedades de uma classe. A função mais "
+"importante do construtor é que ele permite que a combinação de propriedades "
+"seja o objetivo de uma <literal>property-ref</literal>. à também um modo "
+"conveninente para definir uma restrição única de múltiplas colunas. Por "
+"exemplo:"
+
+#. 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>: O nome lógico do agrupamento. Isto <emphasis>não</"
+"emphasis> é o nome atual de propriedade."
+
+#. 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> (opcional â padrão para <literal>true</"
+"literal>): Especifica que atualizações para estes componentes requerem ou "
+"não aquisição de um bloqueio otimista. Em outras palavras, determina se uma "
+"versão de incremento deve ocorrer quando estas propriedades estiverem sujas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For example, if we have the following <literal><properties></literal> "
+"mapping:"
+msgstr ""
+"Por exemplo, se temos o seguinte mapeamento de <literal><properties></"
+"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 ""
+"Então podemos ter uma associação de dados legados que referem a esta chave "
+"exclusiva da tabela <literal>Person</literal>, ao invés de se referirem a "
+"chave primária:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The use of this outside the context of mapping legacy data is not "
+"recommended."
+msgstr ""
+"Nós não recomendamos o uso deste tipo de coisa fora do contexto de "
+"mapeamento de dados legados."
+
+#. Tag: title
+#, no-c-format
+msgid "Subclass"
+msgstr "Subclass"
+
+#. 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><subclass></literal> declaration is used. For example:"
+msgstr ""
+"Finalmente, a persistência polimórfica requer a declaração de cada subclasse "
+"da classe raÃz de persistência. Para a estratégia de mapeamento tabela-por-"
+"hierarquia-de-classe, deve-se utilizar a declaração <literal><subclass>"
+"</literal>. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the fully qualified class name of the subclass."
+msgstr ""
+"<literal>name</literal>: O nome de classe completamente qualificada da "
+"subclasse. "
+
+#. 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> (opcional â padrão para o nome da "
+"classe): Um valor que distingue subclasses individuais."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>proxy</literal> (optional): specifies a class or interface used for "
+"lazy initializing proxies."
+msgstr ""
+"<literal>proxy</literal> (opcional): Especifica a classe ou interface que "
+"usará os proxies de inicialização lazy."
+
+#. 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> (opcional, padrão para <literal>true</literal>): "
+"Configurar <literal>lazy=\"false\"</literal> desabilitará o uso de "
+"inicialização lazy."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Each subclass declares its own persistent properties and subclasses. "
+"<literal><version></literal> and <literal><id></literal> "
+"properties are assumed to be inherited from the root class. Each subclass in "
+"a hierarchy must define a unique <literal>discriminator-value</literal>. If "
+"this is not specified, the fully qualified Java class name is used."
+msgstr ""
+"Cada subclasse deve declarar suas próprias propriedades persistentes e "
+"subclasses. As propriedades <literal><version></literal> e "
+"<literal><id></literal> são configuradas para serem herdadas da classe "
+"raÃz. Cada subclasse numa hierarquia deve definir um único "
+"<literal>discriminator-value</literal>. Se nenhum for especificado, será "
+"usado o nome da classe Java completamente qualificado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For information about inheritance mappings see <xref linkend=\"inheritance"
+"\" />."
+msgstr ""
+"Para informações sobre mapeamento de heranças. Consulte o <xref linkend="
+"\"inheritance\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Joined-subclass"
+msgstr "Subclasses Unidas "
+
+#. 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><joined-"
+"subclass></literal> element. For example:"
+msgstr ""
+"Alternativamente, cada subclasse pode ser mapeada para sua própria tabela. "
+"Isto é chamado estratégia de mapeamento de tabela-por-subclasse. O estado "
+"herdado é devolvido por associação com a tabela da superclasse. Nós usamos o "
+"elemento <literal><joined-subclass></literal>. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr "<literal>table</literal>: O nome da tabela da subclasse. "
+
+#. 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> (opcional): Especifica a classe ou interface que "
+"usará os proxies de inicialização lazy. "
+
+#. 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> (opcional, padrão para <literal>true</literal>): "
+"Configurar <literal>lazy=\"false\"</literal> desabilitará o uso de "
+"inicialização lazy."
+
+#. 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><key></literal> element. The mapping at the start "
+"of the chapter would then be re-written as:"
+msgstr ""
+"A coluna discriminadora não é requerida para esta estratégia de mapeamento. "
+"Cada subclasse deve declarar uma coluna de tabela com o identificador do "
+"objeto usando o elemento <literal><key></literal>. O mapeamento no "
+"inÃcio do capÃtulo poderia ser re-escrito assim: "
+
+#. Tag: title
+#, no-c-format
+msgid "Union-subclass"
+msgstr "Subclasse de União"
+
+#. 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><"
+"class></literal> declaration. However, if you wish use polymorphic "
+"associations (e.g. an association to the superclass of your hierarchy), you "
+"need to use the <literal><union-subclass></literal> mapping. For "
+"example:"
+msgstr ""
+"Uma terceira opção é mapear apenas as classes concretas de uma hierarquia de "
+"heranças para tabelas. Isto é chamado estratégia table-per-concrete-class. "
+"Cada tabela define todos os estados persistentes da classe, incluindo "
+"estados herdados. No Hibernate, não é absolutamente necessário mapear "
+"explicitamente como hierarquia de heranças. Você pode simplesmente mapear "
+"cada classe com uma declaração <literal><class></literal> separada. "
+"Porém, se você deseja usar associações polimórficas (por exemplo: uma "
+"associação para a superclasse de sua hierarquia), você precisa usar o "
+"mapeamento <literal><union-subclass></literal>. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "No discriminator column or key column is required for this mapping strategy."
+msgstr "A coluna discriminatória não é requerida para esta estratégia de mapeamento."
+
+#. Tag: title
+#, no-c-format
+msgid "Join"
+msgstr "União "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Using the <literal><join></literal> element, it is possible to map "
+"properties of one class to several tables that have a one-to-one "
+"relationship. For example:"
+msgstr ""
+"Usando o elemento <literal><join></literal>>, é possÃvel mapear "
+"propriedades de uma classe para várias tabelas que possuem uma relação um "
+"por um. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr "<literal>table</literal>: O nome da tabela associada. "
+
+#. 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><join></literal> defined by a class or its "
+"superclasses. It will use an outer join for a <literal><join></"
+"literal> defined by a subclass. If set to <literal>select</literal> then "
+"Hibernate will use a sequential select for a <literal><join></literal> "
+"defined on a subclass. This will be issued only if a row represents an "
+"instance of the subclass. Inner joins will still be used to retrieve a "
+"<literal><join></literal> defined by the class and its superclasses."
+msgstr ""
+"<literal>fetch</literal>(opcional â valor padrão <literal>join</literal>): "
+"Se ajustado para <literal>join</literal>, o padrão, o Hibernate irá usar uma "
+"união interna para restaurar um <literal>join</literal> definido por uma "
+"classe ou suas subclasses e uma união externa para um <literal>join</"
+"literal> definido por uma subclasse. Se ajustado para <literal>select</"
+"literal>, então o Hibernate irá usar uma seleção seqüencial para um "
+"<literal><join></literal> definida numa subclasse, que será emitido "
+"apenas se uma linha representar uma instância da subclasse. Uniões internas "
+"ainda serão utilizadas para restaurar um <literal><join></literal> "
+"definido pela classe e suas superclasses. "
+
+#. 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> (opcional â padrão para <literal>false</"
+"literal>): Se habilitado, o Hibernate não tentará inserir ou atualizar as "
+"propriedades definidas por esta união."
+
+#. 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> (opcional â padrão para <literal>false</"
+"literal>): Se habilitado, o Hibernate irá inserir uma linha apenas se as "
+"propriedades, definidas por esta junção, não forem nulas. Isto irá sempre "
+"usar uma união externa para recuperar as propriedades."
+
+#. 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 ""
+"Por exemplo, a informação de endereço para uma pessoa pode ser mapeada para "
+"uma tabela separada, enquanto preservando o valor da semântica de tipos para "
+"todas as propriedades:"
+
+#. 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 ""
+"Esta caracterÃstica é útil apenas para modelos de dados legados. Nós "
+"recomendamos menos tabelas do que classes e um modelo de domÃnio fine-"
+"grained. Porém, é útil para ficar trocando entre estratégias de mapeamento "
+"de herança numa hierarquia simples, como explicaremos mais a frente."
+
+#. Tag: title
+#, no-c-format
+msgid "Key"
+msgstr "Key"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><key></literal> element has featured a few times within "
+"this guide. It appears anywhere the parent mapping element defines a join to "
+"a new table that references the primary key of the original table. It also "
+"defines the foreign key in the joined table:"
+msgstr ""
+"Vimos que o elemento <literal><key></literal> (chave) surgiu algumas "
+"vezes até agora. Ele aparece em qualquer lugar que o elemento pai define uma "
+"junção para a nova tabela, e define a chave exterior para a tabela "
+"associada. Ele também referencia a chave primária da tabela original:"
+
+#. 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> (opcional, padrão para <literal>noaction</"
+"literal>): Especifica se a restrição da chave exterior no banco de dados "
+"está habilitada para o deletar cascade."
+
+#. 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> (opcional): Especifica que a chave exterior "
+"se refere a colunas que não são chave primária da tabela original. Ãtil para "
+"os dados legados."
+
+#. 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> (opcional): Especifica que a coluna da chave "
+"exterior não aceita valores nulos. Isto é implÃcito em qualquer momento que "
+"a chave exterior também fizer parte da chave primária."
+
+#. 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> (opcional): Especifica que a chave exterior nunca "
+"deve ser atualizada. Isto está implÃcito em qualquer momento que a chave "
+"exterior também fizer parte da chave primária."
+
+#. 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> (opcional): Especifica que a chave exterior deve "
+"ter uma restrição única. Isto é, implÃcito em qualquer momento que a chave "
+"exterior também fizer parte da chave primária."
+
+#. 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 ""
+"Nós recomendamos que para sistemas que o desempenho deletar seja importante, "
+"todas as chaves devem ser definidas <literal>on-delete=\"cascade\"</"
+"literal>. O Hibernate irá usar uma restrição a nÃvel de banco de dados "
+"<literal>ON CASCADE DELETE</literal>, ao invés de muitas instruções "
+"<literal>DELETE</literal>. Esteja ciente que esta caracterÃstica é um atalho "
+"da estratégia usual de bloqueio otimista do Hibernate para dados versionados."
+
+#. 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><key not-"
+"null=\"true\"></literal>."
+msgstr ""
+"As funções <literal>not-null</literal> e <literal>update</literal> são úteis "
+"quando estamos mapeando uma associação unidirecional um para muitos. Se você "
+"mapear uma associação unidirecional um para muitos para uma chave exterior "
+"não-nula, você <emphasis>deve</emphasis> declarar a coluna chave usando "
+"<literal><key not-null=\"true\"></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Column and formula elements"
+msgstr "Elementos coluna e fórmula "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Mapping elements which accept a <literal>column</literal> attribute will "
+"alternatively accept a <literal><column></literal> subelement. "
+"Likewise, <literal><formula></literal> is an alternative to the "
+"<literal>formula</literal> attribute. For example:"
+msgstr ""
+"Qualquer elemento de mapeamento que aceita uma função <literal>column</"
+"literal> irá aceitar alternativamente um sub-elemento <literal><column>"
+"</literal>. Da mesma forma, <literal><formula></literal> é uma "
+"alternativa para a função <literal>formula</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most of the attributes on <literal>column</literal> provide a means of "
+"tailoring the DDL during automatic schema generation. The <literal>read</"
+"literal> and <literal>write</literal> attributes allow you to specify custom "
+"SQL that Hibernate will use to access the column's value. For more on this, "
+"see the discussion of <link linkend=\"mapping-column-read-and-write\">column "
+"read and write expressions</link>."
+msgstr ""
+"A maioria das funções no <literal>column</literal> fornecem um significado de junção do DDL durante a geração automática do esquema. As funções <literal>read</"
+"literal> e <literal>write</literal> permitem que você especifique o SQL personalizado, do qual o Hibernate usará para acessar o valor da coluna. Consulte a discussão da <link linkend=\"mapping-column-read-and-write\">column "
+"read and write expressions</link> para maiores informações."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>column</literal> and <literal>formula</literal> elements can "
+"even be combined within the same property or association mapping to express, "
+"for example, exotic join conditions."
+msgstr ""
+"Os elementos <literal>column</literal> e <literal>formula</literal> podem até "
+"ser combinados dentro da mesma propriedade ou associação mapeando para "
+"expressar, por exemplo, condições de associações exóticas."
+
+#. Tag: title
+#, no-c-format
+msgid "Import"
+msgstr "Importar "
+
+#. 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 ""
+"Vamos supor que a sua aplicação tenha duas classes persistentes com o mesmo "
+"nome, e você não quer especificar o nome qualificado do pacote nas consultas "
+"do Hibernate. As Classes deverão ser \"importadas\" explicitamente, de "
+"preferência contando com <literal>auto-import=\"true\"</literal>. Você pode "
+"até importar classes e interfaces que não estão explicitamente mapeadas:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal>: the fully qualified class name of any Java class."
+msgstr ""
+"<literal>class</literal>: O nome qualificado do pacote de qualquer classe "
+"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> (opcional â padrão para o nome da classe não "
+"qualificada): Um nome que pode ser usado numa linguagem de consulta."
+
+#. Tag: title
+#, no-c-format
+msgid "Any"
+msgstr "Any"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There is one more type of property mapping. The <literal><any></"
+"literal> mapping element defines a polymorphic association to classes from "
+"multiple tables. This type of mapping requires more than one column. The "
+"first column contains the type of the associated entity. The remaining "
+"columns contain the identifier. It is impossible to specify a foreign key "
+"constraint for this kind of association. This is not the usual way of "
+"mapping polymorphic associations and you should use this only in special "
+"cases. For example, for audit logs, user session data, etc."
+msgstr ""
+"Existe mais um tipo de propriedade de mapeamento. O elemento de mapeamento "
+"<literal><any></literal> define uma associação polimórfica para "
+"classes de múltiplas tabelas. Este tipo de mapeamento sempre requer mais de "
+"uma coluna. A primeira coluna possui o tipo da entidade associada. A outra "
+"coluna restante possui o identificador. Ã impossÃvel especificar uma "
+"restrição de chave exterior para este tipo de associação, portanto isto "
+"certamente não é visto como um caminho usual para associações (polimórficas) "
+"de mapeamento. Você deve usar este mapeamento apenas em casos muito "
+"especiais. Por exemplo: audit logs, dados de sessão do usuário, etc. "
+
+#. 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 ""
+"A função <literal>meta-type</literal> permite que a aplicação especifique um "
+"tipo adaptado que mapeia valores de colunas de banco de dados para classes "
+"persistentes que possuem propriedades identificadoras do tipo especificado "
+"através do <literal>id-type</literal>. Você deve especificar o mapeamento de "
+"valores do meta-type para nome de classes. "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr "<literal>name</literal>: o nome da propriedade."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr "<literal>id-type</literal>: o tipo identificador."
+
+#. 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> (opcional â padrão para <literal>string</"
+"literal>): Qualquer tipo que é permitido para um mapeamento discriminador."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cascade</literal> (optional- defaults to <literal>none</literal>): "
+"the cascade style."
+msgstr ""
+"<literal>cascade</literal> (opcional â valor padrão <literal>none</"
+"literal>): o estilo cascata."
+
+#. 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> (opcional - valor padrão<literal>true</"
+"literal>): Especifica que as atualizações para esta propriedade requerem ou "
+"não aquisição da bloqueio otimista. Em outras palavras, define se uma versão "
+"de incremento deve ocorrer se esta propriedade for suja."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate types"
+msgstr "Tipos do Hibernate "
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr "Entidades e valores"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In relation to the persistence service, Java language-level objects are "
+"classified into two groups:"
+msgstr ""
+"Os objetos de nÃvel de linguagem Java são classificados em dois grupos, em "
+"relação ao serviço de persistência:"
+
+#. 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 ""
+"Uma <emphasis>entidade</emphasis> existe independentemente de qualquer outro "
+"objeto guardando referências para a entidade. Em contraste com o modelo "
+"usual de Java que um objeto não referenciado é coletado pelo coletor de "
+"lixo. Entidades devem ser explicitamente salvas ou deletadas (exceto em "
+"operações de salvamento ou deleção que possam ser executada em "
+"<emphasis>cascata</emphasis> de uma entidade pai para seus filhos). Isto é "
+"diferente do modelo ODMG de persistência do objeto por acessibilidade e se "
+"refere mais à forma como os objetos de aplicações são geralmente usados em "
+"grandes sistemas. Entidades suportam referências circulares e comuns. Eles "
+"podem ser versionados."
+
+#. 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 ""
+"O estado persistente da entidade consiste de referências para outras "
+"entidades e instâncias de tipos de <emphasis>valor</emphasis>. Valores são "
+"primitivos: coleções (não o que tem dentro de uma coleção), componentes e "
+"certos objetos imutáveis. Entidades distintas, valores (em coleções e "
+"componentes particulares) <emphasis>são</emphasis> persistidos e apagados "
+"por acessibilidade. Visto que objetos de valor (e primitivos) são "
+"persistidos e apagados junto com as entidades que os contém e não podem ser "
+"versionados independentemente. Valores têm identidade não independente, "
+"assim eles não podem ser comuns para duas entidades ou coleções."
+
+#. 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 ""
+"Até agora, estivemos usando o termo \"classe persistente\" para referir às "
+"entidades. Continuaremos a fazer isto. No entanto, nem todas as classes "
+"definidas pelo usuário com estados persistentes são entidades. Um "
+"<emphasis>componente</emphasis> é uma classe de usuário definida com valores "
+"semânticos. Uma propriedade de Java de tipo <literal>java.lang.String</"
+"literal> também tem um valor semântico. Dada esta definição, nós podemos "
+"dizer que todos os tipos (classes) fornecidos pelo JDK têm tipo de valor "
+"semântico em Java, enquanto que tipos definidos pelo usuário, podem ser "
+"mapeados com entidade ou valor de tipo semântico. Esta decisão pertence ao "
+"desenvolvedor da aplicação. Uma boa dica para uma classe de entidade em um "
+"modelo de domÃnio são referências comuns para uma instância simples daquela "
+"classe, enquanto a composição ou agregação geralmente se traduz para um tipo "
+"de valor."
+
+#. Tag: para
+#, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr "Iremos rever ambos os conceitos durante todo o guia de referência."
+
+#. 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><"
+"class></literal>, <literal><subclass></literal> and so on are used. "
+"For value types we use <literal><property></literal>, <literal><"
+"component></literal>etc., that usually have a <literal>type</literal> "
+"attribute. The value of this attribute is the name of a Hibernate "
+"<emphasis>mapping type</emphasis>. Hibernate provides a range of mappings "
+"for standard JDK value types out of the box. You can write your own mapping "
+"types and implement your own custom conversion strategies."
+msgstr ""
+"O desafio é mapear o sistema de tipo de Java e a definição do desenvolvedor "
+"de entidades e tipos de valor para o sistema de tipo SQL/banco de dados. A "
+"ponte entre ambos os sistemas é fornecida pelo Hibernate. Para entidades que "
+"usam <literal><class></literal>, <literal>< subclass></literal> "
+"e assim por diante. Para tipos de valores nós usamos <literal><"
+"property></literal>, <literal><component></literal>, etc, "
+"geralmente com uma função <literal>type</literal>. O valor desta função é o "
+"nome de um <emphasis>tipo de mapeamento</emphasis> do Hibernate. O Hibernate "
+"fornece muitos mapeamentos imediatos para tipos de valores do JDK padrão. "
+"Você pode escrever os seus próprios tipos de mapeamentos e implementar sua "
+"estratégia de conversão adaptada, como você."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"With the exception of collections, all built-in Hibernate types support null "
+"semantics."
+msgstr ""
+"Todos os tipos internos do hibernate exceto coleções, suportam semânticas "
+"nulas com a exceção das coleções."
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr "Valores de tipos básicos"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in <emphasis>basic mapping types</emphasis> can be roughly "
+"categorized into the following:"
+msgstr ""
+"Os <emphasis>tipos de mapeamento básicos</emphasis> fazem parte da "
+"categorização do seguinte:"
+
+#. 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>"
+
+#. 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 ""
+"Tipos de mapeamentos de classes primitivas ou wrapper Java especÃficos "
+"(vendor-specific) para tipos de coluna SQL. Boolean, <literal>boolean, "
+"yes_no</literal> são todas codificações alternativas para um "
+"<literal>boolean</literal> ou <literal>java.lang.Boolean</literal> do Java."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>string</literal>"
+
+#. 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 ""
+"Um tipo de mapeamento de <literal>java.lang.String</literal> para "
+"<literal>VARCHAR</literal> (ou <literal>VARCHAR2</literal> no Oracle)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "<literal>date, time, timestamp</literal>"
+
+#. 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 ""
+"Tipos de mapeamento de <literal>java.util.Date</literal> e suas subclasses "
+"para os tipos SQL <literal>DATE</literal>, <literal>TIME</literal> e "
+"<literal>TIMESTAMP</literal> (ou equivalente)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "<literal>calendar, calendar_date</literal>"
+
+#. 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 ""
+"Tipo de mapeamento de <literal>java.util.Calendar</literal> para os tipos "
+"SQL <literal>TIMESTAMP</literal> e <literal>DATE</literal> (ou equivalente)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "<literal>big_decimal, big_integer</literal>"
+
+#. 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 ""
+"Tipo de mapeamento de <literal>java.math.BigDecimal</literal> and "
+"<literal>java.math.BigInteger</literal> para <literal>NUMERIC</literal> (ou "
+"<literal>NUMBER</literal> no Oracle)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "<literal>locale, timezone, currency</literal>"
+
+#. 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 ""
+"Tipos de mapeamentos de <literal>java.util.Locale</literal>, <literal>java."
+"util.TimeZone</literal> e <literal>java.util.Currency</literal> para "
+"<literal>VARCHAR</literal> (ou <literal>VARCHAR2</literal> no Oracle). "
+"Instâncias de f <literal>Locale</literal> e <literal>Currency</literal> são "
+"mapeados para seus códigos ISO. Instâncias de <literal>TimeZone</literal> "
+"são mapeados para seu <literal>ID</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>class</literal>"
+
+#. 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 ""
+"Um tipo de mapeamento de <literal>java.lang.Class</literal> para "
+"<literal>VARCHAR</literal> (ou <literal>VARCHAR2</literal> no Oracle). Uma "
+"<literal>Class</literal> é mapeada pelo seu nome qualificado (completo)."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>binary</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr "Mapeia matrizes de bytes para um tipo binário de SQL apropriado."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>text</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Maps long Java strings to a SQL <literal>CLOB</literal> or <literal>TEXT</"
+"literal> type."
+msgstr ""
+"Mapeia strings de Java longos para um tipo SQL <literal>CLOB</literal> ou "
+"<literal>TEXT</literal>. "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>serializable</literal>"
+
+#. 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 ""
+"Mapeia tipos Java serializáveis para um tipo binário SQL apropriado. Você "
+"pode também indicar o tipo <literal>serializable</literal> do Hibernate com "
+"o nome da classe ou interface Java serializável que não é padrão para um "
+"tipo básico. "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>clob, blob</literal>"
+
+#. 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 ""
+"Tipos de mapeamentos para as classes JDBC <literal>java.sql.Clob</literal> "
+"and <literal>java.sql.Blob</literal>. Estes tipos podem ser inconvenientes "
+"para algumas aplicações, visto que o objeto blob ou clob não pode ser "
+"reusado fora de uma transação. Além disso, o suporte de driver é imcompleto "
+"e inconsistente."
+
+#. 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>"
+
+#. 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 ""
+"Mapeamento de tipos para, os geralmente considerados, tipos mutáveis de "
+"Java. Isto é onde o Hibernate faz determinadas otimizações apropriadas "
+"somente para tipos imutáveis de Java, e a aplicação trata o objeto como "
+"imutável. Por exemplo, você não deve chamar <literal>Date.setTime()</"
+"literal> para uma instância mapeada como <literal>imm_timestamp</literal>. "
+"Para mudar o valor da propriedade, e ter a mudança feita persistente, a "
+"aplicação deve atribuir um novo objeto (nonidentical) à propriedade."
+
+#. 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 ""
+"Identificadores únicos das entidades e coleções podem ser de qualquer tipo "
+"básico exceto <literal>binary</literal>, <literal>blob</literal> ou "
+"<literal>clob</literal>. (Identificadores compostos também são permitidos. "
+"Leia abaixo para maiores informações."
+
+#. 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 ""
+"Os tipos de valores básicos têm suas constantes <literal>Type</literal> "
+"correspondentes definidas em <literal>org.hibernate.Hibernate</literal>. Por "
+"exemplo, <literal>Hibernate.STRING</literal> representa o tipo "
+"<literal>string</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr "Tipos de valores personalizados"
+
+#. 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 ""
+"à relativamente fácil para desenvolvedores criarem seus próprios tipos de "
+"valores. Por exemplo, você pode querer persistir propriedades do tipo "
+"<literal>java.lang.BigInteger</literal> para colunas <literal>VARCHAR</"
+"literal>. O Hibernate não fornece um tipo correspondente para isso. Mas os "
+"tipos adaptados não são limitados a mapeamento de uma propriedade, ou "
+"elemento de coleção, a uma única coluna da tabela. Assim, por exemplo, você "
+"pode ter uma propriedade Java <literal>getName()</literal>/<literal>setName()"
+"</literal> do tipo <literal>java.lang.String</literal> que é persistido para "
+"colunas <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 ""
+"Para implementar um tipo personalizado, implemente <literal>org.hibernate."
+"UserType</literal> ou <literal>org.hibernate.CompositeUserType</literal> e "
+"declare propriedades usando o nome qualificado da classe do tipo. Veja "
+"<literal>org.hibernate.test.DoubleStringType</literal> para outras "
+"funcionalidades. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Notice the use of <literal><column></literal> tags to map a property "
+"to multiple columns."
+msgstr ""
+"Observe o uso da tag <literal><column></literal> para mapear uma "
+"propriedade para colunas múltiplas."
+
+#. 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 ""
+"As interfaces <literal>CompositeUserType</literal>, "
+"<literal>EnhancedUserType</literal>, <literal>UserCollectionType</literal>, "
+"e <literal>UserVersionType</literal> fornecem suporte para usos mais "
+"especializados."
+
+#. 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><"
+"type></literal> element in your mapping files."
+msgstr ""
+"Você mesmo pode fornecer parâmetros a um <literal>UserType</literal> no "
+"arquivo de mapeamento. Para isto, seu <literal>UserType</literal> deve "
+"implementar a interface <literal>org.hibernate.usertype.ParameterizedType</"
+"literal>. Para fornecer parâmetros a seu tipo personalizado, você pode usar "
+"o elemento <literal><type></literal> em seus arquivos de mapeamento. "
+
+#. 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 ""
+"O <literal>UserType</literal> pode agora recuperar o valor para o parâmetro "
+"chamado <literal>padrão</literal> da <literal>Propriedade</literal> do "
+"passado a ele."
+
+#. 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><"
+"typedef></literal> element. Typedefs assign a name to a custom type, and "
+"can also contain a list of default parameter values if the type is "
+"parameterized."
+msgstr ""
+"Se você usar freqüentemente um determinado <literal>UserType</literal>, pode "
+"ser útil definir um nome mais curto para ele. Você pode fazer isto usando o "
+"elemento <literal><typedef></literal>. Typedefs atribui um nome a um "
+"tipo personalizado, e pode também conter uma lista de valores de parâmetro "
+"padrão se o tipo for parametrizado."
+
+#. 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 ""
+"Também é possÃvel substituir os parâmetros fornecidos em um tipo de "
+"definição em situações de caso a caso, utilizando tipos de parâmetros no "
+"mapeamento da propriedade."
+
+#. 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 ""
+"Apesar da rica variedade, os tipos construÃdos do Hibernate e suporte para "
+"componentes raramente irão utilizar um tipo de padrão, no entanto, é "
+"considerado uma boa idéia, utilizar tipos customizados para classes não "
+"entidade que ocorrem com freqüência em seu aplicativo. Por exemplo, uma "
+"classe <literal>MonetaryAmount</literal> é um bom candidato para um "
+"<literal>CompositeUserType</literal>, apesar de poder ter sido mapeado "
+"facilmente como um componente. Uma motivação para isto é a abstração. Com um "
+"tipo padronizado, seus documentos de mapeamento seriam colocados à prova "
+"contra mudanças possÃveis na forma de representação de valores monetários. "
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr "Mapeando uma classe mais de uma vez"
+
+#. 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 ""
+"Ã possÃvel fornecer mais de um mapeamento para uma classe persistente em "
+"especÃfico. Neste caso, você deve especificar um <emphasis>nome de entidade</"
+"emphasis> para as instâncias das duas entidades mapeadas não se tornarem "
+"ambÃguas. Por padrão, o nome da entidade é o mesmo do nome da classe. O "
+"Hibernate o deixa especificar o nome de entidade quando estiver trabalhando "
+"com objetos persistentes, quando escrever consultas, ou ao mapear "
+"associações para a entidade nomeada. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations are now specified using <literal>entity-name</literal> instead "
+"of <literal>class</literal>."
+msgstr ""
+"Note como as associações são agora especificadas utilizando o "
+"<literal>entity-name</literal> ao invés da <literal>class</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr "Identificadores quotados do SQL"
+
+#. 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 ""
+"Você poderá forçar o Hibernate a quotar um identificador no SQL gerado, "
+"anexando o nome da tabela ou coluna aos backticks no documento de "
+"mapeamento. O Hibernate usará o estilo de quotação correto para o SQL "
+"<literal>Dialect</literal>. Geralmente são quotas dúplas, mas parênteses "
+"para o Servidor SQL e backticks para MeuSQL."
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr "Alternativas de Metadados"
+
+#. 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 ""
+"O XML não é para todos, e portanto existem algumas formas alternativas de "
+"defiinir o metadado de mapeamento no Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr "Usando a marcação XDoclet."
+
+#. 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 ""
+"Muitos usuários do Hibernate preferem encubar a informação de mapeamento "
+"diretamente no código de fonte utilizando o XDoclet <literal>@hibernate."
+"tags</literal>. Nós não falaremos sobre esta abordagem neste documento, uma "
+"vez que é estritamente considerado parte de um XDoclet. No entanto, "
+"incluÃmos os seguintes exemplos da classe <literal>Cat</literal> com os "
+"mapeamentos de XDoclet:"
+
+#. Tag: para
+#, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr ""
+"Veja o web site do Hibernate para maiores detalhes sobre um XDoclet e "
+"Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr "Usando as anotações JDK 5.0"
+
+#. 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 ""
+"O JDK 5.0 introduziu as anotações estilo XDoclet em nÃvel de linguagem, tipo "
+"seguro e checado em tempo de compilação. Este mecanismo é mais potente do "
+"que as anotações XDoclet e melhor suportado pelas ferramentas e IDEs. O "
+"IntelliJ IDEA por exemplo, suporta a auto complexão e destaque da sintaxe "
+"das anotações JDK 5.0. A nova revisão da especificação EJB (JSR-220) usa as "
+"anotações JDK 5.0 como mecanismos de metadados para beans de entidade. O "
+"Hibernate3 implementa o <literal>EntityManager</literal> do JSR-220 (o API "
+"de persistência). O suporte para mapear metadados está disponÃvel através do "
+"pacote <emphasis>Anotações do Hibernate</emphasis>, como um download "
+"separado. Ambos os EJB3 (JSR-220) e o metadado Hibernate3 são suportados. "
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr "Este é um exemplo de uma classe POJO anotado como um bean de entidade EJB:"
+
+#. 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 ""
+"Note que o suporte para Anotações JDK 5.0 (e JSR-220) ainda está em "
+"construção. Consulte o módulo de Anotações do Hibernate para maiores "
+"detalhes. "
+
+#. Tag: title
+#, no-c-format
+msgid "Generated properties"
+msgstr "Propriedades geradas "
+
+#. 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 ""
+"Propriedades Geradas são propriedades que possuem seus valores gerados pelo "
+"banco de dados. Como sempre, os aplicativos do Hibernate precisavam "
+"<literal>renovar</literal> objetos que contenham qualquer propriedade para "
+"qual o banco de dados estivesse gerando valores. No entanto, vamos permitir "
+"que o aplicativo delegue esta responsabilidade ao Hibernate. Essencialmente, "
+"quando o Hibernate edita um SQL INSERT ou UPDATE para uma entidade que tem "
+"propriedades geradas definidas, ele edita imediatamente depois uma seleção "
+"para recuperar os valores gerados."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties marked as generated must additionally be non-insertable and non-"
+"updateable. Only <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"and <link linkend=\"mapping-declaration-property\">simple properties</link>, "
+"can be marked as generated."
+msgstr ""
+"As propriedades marcadas como geradas devem ser não-inserÃveis e não-"
+"atualizáveis. Somente <link linkend=\"mapping-declaration-version\">versions</"
+"link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, "
+"e <link linkend=\"mapping-declaration-property\">simple properties</link> podem ser marcadas como geradas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>never</literal> (the default): the given property value is not "
+"generated within the database."
+msgstr ""
+"<literal>never</literal> (padrão) - significa que o valor de propriedade "
+"dado não é gerado dentro do banco de dados. "
+
+#. 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 <link linkend=\"mapping-declaration-"
+"version\">version</link> and <link linkend=\"mapping-declaration-timestamp"
+"\">timestamp</link> properties can be marked as generated, this option is "
+"not available."
+msgstr ""
+"<literal>insert</literal>: informa que o valor de propriedade dado é gerado "
+"ao inserir, mas não é novamente gerado nas próximas atualizações. "
+"Propriedades do tipo data criada, se encaixam nesta categoria. Note que "
+"embora as propriedades <link linkend=\"mapping-declaration-"
+"version\">version</link> e <link linkend=\"mapping-declaration-timestamp"
+"\">timestamp</link> podem ser marcadas como "
+"geradas, esta opção não está disponÃvel."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>always</literal>: the property value is generated both on insert "
+"and on update."
+msgstr ""
+"<literal>always</literal> - informa que o valor da propriedade é gerado "
+"tanto ao inserir quanto ao atualizar. "
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr "Coluna de expressöes de gravação e leitura"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows you to customize the SQL it uses to read and write the "
+"values of columns mapped to <link linkend=\"mapping-declaration-property"
+"\">simple properties</link>. For example, if your database provides a set of "
+"data encryption functions, you can invoke them for individual columns like "
+"this: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr ""
+"O Hibernate permite você personalizar o SQL utilizado para ler e gravar os valores da coluna mapeada ao <link linkend=\"mapping-declaration-property"
+"\">simple properties</link>. Por exemplo, caso o seu banco de dados fornecer um conjunto de funçöes encriptonados de dados, você poderá invocá-las para colunas individuais como: <programlisting role=\"XML\"><property name=\"creditCardNumber"
+"\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" "
+"write=\"encrypt(?)\"/> </property></programlisting>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate applies the custom expressions automatically whenever the property "
+"is referenced in a query. This functionality is similar to a derived-"
+"property <literal>formula</literal> with two differences:"
+msgstr "O Hibernate aplica automaticamente as expressöes personalizadas a todo instante que a propriedade é referenciada numa consulta. Esta funcionalidade é parecida a uma <literal>formula</literal> de propriedade-derivada com duas diferenças:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The property is backed by one or more columns that are exported as part of "
+"automatic schema generation."
+msgstr "Esta propriedade é suportada por uma ou mais colunas que são exportadas como parte da geração do esquema automático."
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr "Esta propriedade é de gravação-leitura, e não de leitura apenas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>write</literal> expression, if specified, must contain exactly "
+"one '?' placeholder for the value."
+msgstr "Caso a expressão <literal>write</literal>seja especificada, deverá conter um '?' para o valor."
+
+#. Tag: title
+#, no-c-format
+msgid "Auxiliary database objects"
+msgstr "Objetos de Banco de Dados Auxiliares "
+
+#. 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 ""
+"Permite o uso dos comandos CREATE e DROP para criar e remover os objetos de "
+"banco de dados arbitrários. Juntamente às ferramentas de evolução do esquema "
+"do Hibernate, eles possuem a habilidade de definir completamente um esquema "
+"de usuário dentro dos arquivos de mapeamento do Hibernate. Embora criado "
+"especificamente para criar e remover algo como trigger ou procedimento "
+"armazenado, qualquer comando SQL que pode rodar através de um método "
+"<literal>java.sql.Statement.execute()</literal> é válido. Existem dois "
+"módulos essenciais para definir objetos de banco de dados auxiliares:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The first mode is to explicitly list the CREATE and DROP commands in the "
+"mapping file:"
+msgstr ""
+"O primeiro módulo é para listar explicitamente os comandos CREATE e DROP no "
+"arquivo de mapeamento: "
+
+#. 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 ""
+"O segundo módulo é para fornecer uma classe padrão que sabe como construir "
+"os comandos CREATE e DROP. Esta classe padrão deve implementar a interface "
+"<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."
+msgstr ""
+"Além disso, estes objetos de banco de dados podem ter um escopo opcional que "
+"só será aplicado quando certos dialetos forem utilizados. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/batch.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/batch.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/batch.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,572 @@
+# translation of batch.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: batch\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-17 14:19+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr "Batch processing"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A naive approach to inserting 100,000 rows in the database using Hibernate "
+"might look like this:"
+msgstr ""
+"Uma alternativa para inserir 100.000 linhas no banco de dados usando o "
+"Hibernate pode ser a seguinte: "
+
+#. 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 ""
+"Isto irá falhar com um <literal>OutOfMemoryException</literal> em algum "
+"lugar próximo a linha 50.000. Isso ocorre devido ao fato do Hibernate fazer "
+"cache de todas as instâncias de <literal>Customer</literal> inseridas num "
+"cachê em nÃvel de sessão. Nós demonstraremos neste capitulo como evitar este "
+"problema."
+
+#. 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 ""
+"Entretanto, se você vai realizar processamento em lotes, é muito importante "
+"que você habilite o uso de lotes JDBC, se você pretende obter um desempenho "
+"razoável. Defina o tamanho do lote JDBC em um valor razoável (algo entre 10-"
+"50, por exemplo):"
+
+#. 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 ""
+"Note que o Hibernate desabilita o loteamento de inserção no nÃvel JDBC de "
+"forma transparente se você utilizar um gerador de identificador "
+"<literal>identiy</literal>. "
+
+#. 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:"
+msgstr ""
+"Você também pode querer rodar esse tipo de processamento em lotes com o "
+"cache secundário completamente desabilitado: "
+
+#. 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 ""
+"Mas isto não é absolutamente necessário, desde que possamos ajustar o "
+"<literal>CacheMode</literal> para desabilitar a interação com o cache "
+"secundário."
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr "Inserção em lotes"
+
+#. 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 ""
+"Quando você estiver inserindo novos objetos persistentes, vocês deve "
+"executar os métodos <literal>flush()</literal> e <literal>clear()</literal> "
+"regularmente na sessão, para controlar o tamanho do cache primário. "
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr "Atualização em lotes"
+
+#. 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 ""
+"Para recuperar e atualizar informações a mesma idéia é válida. Além disso, "
+"pode precisará usar o <literal>scroll()</literal> para usar recursos no lado "
+"do servidor em consultas que retornem muita informação. "
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr "A interface de Sessão sem Estado"
+
+#. 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 ""
+"Como forma alternativa, o Hibernate provê uma API orientada à comandos, que "
+"pode ser usada para transmitir um fluxo de dados de e para o banco de dados "
+"na forma de objetos desanexados. Um <literal>StatelessSession</literal> não "
+"tem um contexto persistente associado e não fornece muito das semânticas de "
+"alto nÃvel para controle do ciclo de vida. Especialmente uma Sessão sem "
+"Estado não implementa um cachê primário e nem interage com o cache "
+"secundário ou cachê de consulta. Ela não implementa uma gravação temporária "
+"transacional ou checagem suja automática. Operações realizadas usando uma "
+"sessão sem estado não fazem nenhum tipo de cascata com as instâncias "
+"associadas. As coleções são ignoradas por uma Sessão sem Estado. Operações "
+"realizadas com uma Sessão sem Estado ignoram a arquitetura de eventos e os "
+"interceptadores. As sessões sem estado são vulneráveis aos efeitos do alias "
+"dos dados, devido à falta do cachê primário. Uma Sessão sem Estado é uma "
+"abstração de baixo nÃvel, muito mais próxima do JDBC adjacente. "
+
+#. 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 ""
+"Veja neste exempo, as instâncias de <literal>Customer</literal> retornadas "
+"pela consulta, são imediatamente desvinculadas. Elas nunca serão associadas "
+"Ã um contexto persistente. "
+
+#. 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 ""
+"As operações <literal>insert(), update()</literal> e <literal>delete()</"
+"literal> definidas pela interface <literal>StatelessSession</literal> são "
+"considerados operações diretas no banco de dados. Isto resulta em uma "
+"execução imediata de comandos SQL <literal>INSERT, UPDATE</literal> ou "
+"<literal>DELETE</literal> respectivamente. Dessa forma, eles possuem uma "
+"semântica bem diferente das operações <literal>save(), saveOrUpdate()</"
+"literal> ou <literal>delete()</literal> definidas na interface "
+"<literal>Session</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+msgstr "Operações no estilo DML"
+
+#. 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 (<link linkend=\"queryhql"
+"\">HQL</link>)."
+msgstr ""
+"Como já discutido anteriormente, o mapeamento objeto/relacional automático e "
+"transparente é adquirido com a gerência do estado do objeto. Com isto o "
+"estado daquele objeto fica disponÃvel na memória. Isto significa que a "
+"manipulação de dados (usando as instruções SQL <literal>Data Manipulation "
+"Language</literal> (SQL-style DML): <literal>INSERT</literal>, "
+"<literal>UPDATE</literal>, <literal>DELETE</literal>) diretamente no banco "
+"de dados não irá afetar o estado registrado em memória. Entretanto, o "
+"Hibernate provê métodos para executar instruções de volume de SQL-style DML, "
+"que são totalmente executados com HQL (Hibernate Query Language - Linguagem "
+"de Consulta Hibernate) (<link linkend=\"queryhql"
+"\">HQL</link>)."
+
+#. 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 ""
+"A pseudo-sintaxe para instruções <literal>UPDATE</literal> e "
+"<literal>DELETE</literal> é: Algumas observações: <literal>( UPDATE | "
+"DELETE ) FROM? EntityName (WHERE where_conditions)?</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr "Alguns pontos a serem destacados:"
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr "Na cláusula from, a palavra chave FROM é opcional;"
+
+#. 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 ""
+"Somente uma entidade pode ser chamada na cláusula from. Isto pode, "
+"opcionalmente, ser um alias. Se o nome da entidade for um alias, então "
+"qualquer referência de propriedade deve ser qualificada usando esse alias. "
+"Caso o nome da entidade não for um alias, então será ilegal qualquer das "
+"referências de propriedade serem qualificadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or "
+"explicit, can be specified in a bulk HQL query. Sub-queries can be used in "
+"the where-clause, where the subqueries themselves may contain joins."
+msgstr ""
+"Nenhum <link linkend=\"queryhql-joins-forms\">joins</link>, tanto implÃcito ou "
+"explÃcito, pode ser especificado em uma consulta de volume HQL. As Sub-"
+"consultas podem ser utilizadas na cláusula onde, em que as subconsultas "
+"podem conter uniões. "
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr "A clausula onde também é opcional."
+
+#. 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 ""
+"Como exemplo para executar um HQL <literal>UPDATE</literal>, use o método "
+"<literal>Query.executeUpdate()</literal>. O método ganhou o nome devido à "
+"sua familiaridade com o do 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 <link linkend=\"mapping-"
+"declaration-version\">version</link> or the <link linkend=\"mapping-"
+"declaration-timestamp\">timestamp</link> property values for the affected "
+"entities. However, you can force Hibernate to reset the <literal>version</"
+"literal> or <literal>timestamp</literal> property values through the use of "
+"a <literal>versioned update</literal>. This is achieved by adding the "
+"<literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> "
+"keyword."
+msgstr ""
+"As instruções do HQL <literal>UPDATE</literal> por padrão não afetam o <link linkend=\"mapping-"
+"declaration-version\">version</link> ou os valores de propriedade <link linkend=\"mapping-"
+"declaration-timestamp\">timestamp</link> para as entidades afetadas, de "
+"acordo com a especificação EJB3. No entanto, você poderá forçar o Hibernate "
+"a redefinir corretamente os valores de propriedade <literal>version</"
+"literal> ou <literal>timestamp</literal> usando um <literal>versioned "
+"update</literal>. Para tal, adicione uma palavra chave <literal>VERSIONED</"
+"literal> após a palavra chave <literal>UPDATE</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 ""
+"Note que os tipos de versões padronizadas, <literal>org.hibernate.usertype."
+"UserVersionType</literal>, não são permitidos junto às instruções "
+"<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 ""
+"Para executar um HQL <literal>DELETE</literal>, use o mesmo método "
+"<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 ""
+"O valor <literal>int</literal> retornado pelo método <literal>Query."
+"executeUpdate()</literal> indica o número de entidade afetadas pela "
+"operação. Lembre-se que isso pode estar ou não relacionado ao número de "
+"linhas alteradas no banco de dados. Uma operação de volume HQL pode resultar "
+"em várias instruções SQL atuais a serem executadas (por exemplo, no caso de "
+"subclasses unidas). O número retornado indica a quantidade real de entidades "
+"afetadas pela instrução. Voltando ao exemplo da subclasse unida, a exclusão "
+"de uma das subclasses pode resultar numa exclusão em outra tabelas, não "
+"apenas na tabela para qual a subclasses está mapeada, mas também tabela "
+"\"root\" e possivelmente nas tabelas de subclasses unidas num nÃvel "
+"hierárquico imediatamente abaixo. "
+
+#. 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 ""
+"A pseudo-sintáxe para o comando <literal>INSERT</literal> é: <literal>INSERT "
+"INTO EntityName properties_list select_statement</literal>. Alguns pontos a "
+"observar:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Only the INSERT INTO ... SELECT ... form is supported; not the INSERT "
+"INTO ... VALUES ... form."
+msgstr ""
+"Apenas a forma INSERT INTO ... SELECT ... é suportada; INSERT INTO ... "
+"VALUES ... não é suportada."
+
+#. 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 ""
+"A lista de propriedade é análoga ao <literal>column specification</literal> "
+"do comando SQL <literal>INSERT</literal>. Para entidades envolvidas em "
+"mapeamentos, apenas as propriedades definidas diretamente em nÃvel da classe "
+"podem ser usadas na properties_list. Propriedades da superclasse não são "
+"permitidas e as propriedades da subclasse não fazem sentido. Em outras "
+"palavras, os comandos <literal>INSERT</literal> não são polimórficos. "
+
+#. 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 ""
+"selecionar_instruções pode ser qualquer consulta de seleção HQL válida, "
+"desde que os tipos de retorno sejam compatÃveis com os tipos esperados pela "
+"inserção. Atualmente, isto é verificado durante a compilação da consulta, ao "
+"invés de permitir que a verificação chegue ao banco de dados. Entretanto, "
+"perceba que isso pode causar problemas entre os <literal>Tipo</literal>s de "
+"Hibernate que são <emphasis>equivalentes</emphasis> e não <emphasis>iguais</"
+"emphasis>. Isso pode causar problemas nas combinações entre a propriedade "
+"definida como <literal>org.hibernate.type.DateType</literal>e uma "
+"propriedade definida como <literal>org.hibernate.type.TimestampType</"
+"literal>, embora o banco de dados não possa fazer uma distinção ou possa ser "
+"capaz de manusear a conversão."
+
+#. 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 ""
+"Para a propriedade id, a instrução insert oferece duas opções. Você pode "
+"especificar qualquer propriedade id explicitamente no properties_list (em "
+"alguns casos esse valor é obtido diretamente da instrução select) ou pode "
+"omitir do properties_list (nesse caso, um valor gerado é usado). Essa última "
+"opção só é válida quando são usados geradores de ids que operam no banco de "
+"dados; a tentativa de usar essa opção com geradores do tipo \"em memória\" "
+"irá causar um exceção durante a etapa de análise. Note que para a finalidade "
+"desta discussão, os seguintes geradores operam com o banco de dados "
+"<literal>org.hibernate.id.SequenceGenerator</literal> (e suas subclasses) e "
+"qualquer implementação de <literal>org.hibernate.id."
+"PostInsertIdentifierGenerator</literal>. Aqui, a exceção mais notável é o "
+"<literal>org.hibernate.id.TableHiLoGenerator</literal>, que não pode ser "
+"usado porque ele não dispõe de mecanismos para recuperar os seus valores."
+
+#. 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 ""
+"Para propriedades mapeadas como <literal>version</literal> ou "
+"<literal>timestamp</literal>, a instrução insert lhe oferece duas opções. "
+"Você pode especificar a propriedade na properties_list, nesse caso o seu "
+"valor é obtido a partir da instrução select correspondente, ou ele pode ser "
+"omitido da properties_list (neste caso utiliza-se o <literal>seed value</"
+"literal> definido pela classe <literal>org.hibernate.type.VersionType</"
+"literal>)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of an HQL <literal>INSERT</literal> statement "
+"execution:"
+msgstr "Segue abaixo o exemplo da execução de um HQL <literal>INSERT</literal>:"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/best_practices.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/best_practices.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/best_practices.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,530 @@
+# translation of best_practices.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: best_practices\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 15:52+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr "Melhores práticas"
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"Write fine-grained classes and map them using <literal><component></"
+"literal>:"
+msgstr ""
+"Escreva classes compactas e mapeie-as usando <literal><component></"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use an <literal>Address</literal> class to encapsulate <literal>street</"
+"literal>, <literal>suburb</literal>, <literal>state</literal>, "
+"<literal>postcode</literal>. This encourages code reuse and simplifies "
+"refactoring."
+msgstr ""
+"Use uma classe <literal>Endereço</literal> para encapsular <literal>rua</"
+"literal>, <literal>bairro</literal>, <literal>estado</literal>, "
+"<literal>CEP</literal>. Isto promove a reutilização de código e simplifica o "
+"refactoring."
+
+#. Tag: term
+#, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr "Declare propriedades identificadoras em classes persistentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate makes identifier properties optional. There are a range of reasons "
+"why you should use them. We recommend that identifiers be 'synthetic', that "
+"is, generated with no business meaning."
+msgstr ""
+"O Hibernate constrói propriedades identificadoras opcionais. Existem "
+"inúmeras razões para utilizá-las. Nós recomendamos que os identificadores "
+"sejam 'sintéticos', quer dizer, gerados sem significado para negócios. "
+
+#. Tag: term
+#, no-c-format
+msgid "Identify natural keys:"
+msgstr "Identifique chaves naturais:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Identify natural keys for all entities, and map them using <literal><"
+"natural-id></literal>. Implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> to compare the properties that make up the "
+"natural key."
+msgstr ""
+"Identifique chaves naturais para todas as entidades, e mapeie-as usando "
+"<literal><natural-id></literal>. Implemente <literal>equals()</"
+"literal> e <literal>hashCode()</literal> para comparar as propriedades que "
+"compõem a chave natural."
+
+#. Tag: term
+#, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr "Coloque cada classe de mapeamento em seu próprio arquivo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</"
+"literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes "
+"sense, particularly in a team environment."
+msgstr ""
+"Não use um único código de mapeamento monolÃtico. Mapeie <literal>com.eg."
+"Foo</literal> no arquivo <literal>com/eg/Foo.hbm.xml</literal>. Isto faz "
+"bastante sentido, especialmente em ambiente de equipe."
+
+#. Tag: term
+#, no-c-format
+msgid "Load mappings as resources:"
+msgstr "Carregue os mapeamentos como recursos:"
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr "Implemente os mapeamentos junto às classes que eles mapeiam."
+
+#. Tag: term
+#, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr "Considere a possibilidade de externar as strings de consultas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is recommended if your queries call non-ANSI-standard SQL functions. "
+"Externalizing the query strings to mapping files will make the application "
+"more portable."
+msgstr ""
+"Esta é uma boa prática se suas consultas chamam funções SQL que não sejam "
+"ANSI. Externar as strings de consultas para mapear arquivos irá tornar a "
+"aplicação mais portável. "
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr "Use variáveis de vÃnculo."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As in JDBC, always replace non-constant values by \"?\". Do not use string "
+"manipulation to bind a non-constant value in a query. You should also "
+"consider using named parameters in queries."
+msgstr ""
+"Assim como em JDBC, sempre substitua valores não constantes por \"?\". Nunca "
+"use a manipulação de strings para concatenar valores não constantes em uma "
+"consulta. Até melhor, considere a possibilidade de usar parâmetros nomeados "
+"nas consultas."
+
+#. Tag: term
+#, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr "Não gerencie suas conexões JDBC:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate allows the application to manage JDBC connections, but his "
+"approach should be considered a last-resort. If you cannot use the built-in "
+"connection providers, consider providing your own implementation of "
+"<literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr ""
+"O Hibernate permite que a aplicação gerencie conexões JDBC, mas esta "
+"abordagem deve ser considerada um último recurso. Se você não pode usar os "
+"provedores de conexão embutidos, considere fazer sua implementação a partir "
+"de <literal>org.hibernate.connection.ConnectionProvider</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid "Consider using a custom type:"
+msgstr "Considere a possibilidade de usar tipos customizados:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose you have a Java type from a library that needs to be persisted but "
+"does not provide the accessors needed to map it as a component. You should "
+"consider implementing <literal>org.hibernate.UserType</literal>. This "
+"approach frees the application code from implementing transformations to/"
+"from a Hibernate type."
+msgstr ""
+"Suponha que você tenha um tipo Java, de alguma biblioteca, que precisa ser "
+"persistido mas não provê de acessórios necessários para mapeá-lo como um "
+"componente. Você deve implementar <literal>org.hibernate.UserType</literal>. "
+"Esta abordagem livra o código da aplicação de implementar transformações de/"
+"para o tipo Hibernate. "
+
+#. Tag: term
+#, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr "Use código manual JDBC nos afunilamentos:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In performance-critical areas of the system, some kinds of operations might "
+"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
+"faster. Please wait until you <emphasis>know</emphasis> something is a "
+"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
+"<literal>Session</literal>, wrap your JDBC operation as a <literal>org."
+"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
+"way you can still use the same transaction strategy and underlying "
+"connection provider."
+msgstr ""
+"Nas áreas de desempenho crÃtico do sistema, alguns tipos de operações podem "
+"se beneficiar do uso direto do JDBC. Mas por favor, espere até você "
+"<emphasis>saber</emphasis> se é um afunilamento. E não suponha que o uso "
+"direto do JDBC é necessariamente mais rápido. Se você precisar usar "
+"diretamente o JDBC, vale a pena abrir uma <literal>Session</literal> do "
+"Hibernate, embrulhar a sua operaçäo JDBC como um objeto <literal>org."
+"hibernate.jdbc.Work</literal> e usar uma conexão JDBC. De modo que você possa ainda usar a mesma "
+"estratégia de transação e ocultar o provedor a conexão."
+
+#. Tag: term
+#, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr "Entenda o esvaziamento da <literal>Session</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sometimes the Session synchronizes its persistent state with the database. "
+"Performance will be affected if this process occurs too often. You can "
+"sometimes minimize unnecessary flushing by disabling automatic flushing, or "
+"even by changing the order of queries and other operations within a "
+"particular transaction."
+msgstr ""
+"De tempos em tempos a sessão sincroniza seu estado persistente com o banco "
+"de dados. O desempenho será afetado se este processo ocorrer frequentemente. "
+"Você pode algumas vezes minimizar a liberação desnecessária desabilitando a "
+"liberação automática ou até mesmo mudando a ordem das consultas e outras "
+"operações em uma transação particular. "
+
+#. Tag: term
+#, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr "Em uma arquitetura de três camadas, considere o uso de objetos separados:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"When using a servlet/session bean architecture, you can pass persistent "
+"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
+"new session to service each request. Use <literal>Session.merge()</literal> "
+"or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the "
+"database."
+msgstr ""
+"Ao usar a arquitetura do bean de sessão/servlet, você pode passar os objetos "
+"persistentes carregados no bean de sessão para e a partir da camada servlet/"
+"JSP. Use uma nova sessão para manipular cada solicitação. Use a "
+"<literal>Session.merge()</literal> ou a <literal>Session.saveOrUpdate()</"
+"literal> para sincronizar objetos com o banco de dados. "
+
+#. Tag: term
+#, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr ""
+"Em uma arquitetura de duas camadas, considere o uso de contextos de longa "
+"persistência:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Database Transactions have to be as short as possible for best scalability. "
+"However, it is often necessary to implement long running "
+"<emphasis>application transactions</emphasis>, a single unit-of-work from "
+"the point of view of a user. An application transaction might span several "
+"client request/response cycles. It is common to use detached objects to "
+"implement application transactions. An appropriate alternative in a two "
+"tiered architecture, is to maintain a single open persistence contact "
+"session for the whole life cycle of the application transaction. Then simply "
+"disconnect from the JDBC connection at the end of each request and reconnect "
+"at the beginning of the subsequent request. Never share a single session "
+"across more than one application transaction or you will be working with "
+"stale data."
+msgstr ""
+"As Transações do Banco de Dados precisam ser as mais curtas possÃveis para "
+"uma melhor escalabilidade. No entanto, é geralmente necessário implementar "
+"<emphasis>transações de aplicações</emphasis> de longa duração, uma única "
+"unidade de trabalho a partir do ponto de vista de um usuário. Uma transação "
+"de aplicação pode transpor diversos ciclos de solicitação/resposta de "
+"cliente. à comum usar objetos desanexados para implementar as transações de "
+"aplicação. Uma outra alternativa, extremamente apropriada em uma arquitetura "
+"de duas camadas, é manter um único contato de persistência aberto (sessão) "
+"para todo o tempo de vida da transação de aplicação e simplesmente "
+"disconectá-lo do JDBC ao final de cada solicitação e reconectá-lo no inÃcio "
+"de uma solicitação subsequente. Nunca compartilhe uma sessão única com mais "
+"de uma transação de aplicação, ou você irá trabalhar com dados antigos."
+
+#. Tag: term
+#, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr "Não trate as exceções como recuperáveis:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is more of a necessary practice than a \"best\" practice. When an "
+"exception occurs, roll back the <literal>Transaction</literal> and close the "
+"<literal>Session</literal>. If you do not do this, Hibernate cannot "
+"guarantee that in-memory state accurately represents the persistent state. "
+"For example, do not use <literal>Session.load()</literal> to determine if an "
+"instance with the given identifier exists on the database; use "
+"<literal>Session.get()</literal> or a query instead."
+msgstr ""
+"Isto é mais uma prática necessária do que uma \"melhor\" prática. Quando uma "
+"exceção ocorre, retorne à <literal>Transaction</literal> e feche a "
+"<literal>Sessão</literal>. Se não fizer isto, o Hibernate não poderá "
+"garantir que o estado em memória representará de forma precisa o estado "
+"persistente. Como este é um caso especial, não utilize a <literal>Session."
+"load()</literal> para determinar se uma instância com dado identificador "
+"existe em um banco de dados, use <literal>Session.get()</literal> ou então "
+"uma consulta. "
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr "Prefira a busca lazy para associações:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use eager fetching sparingly. Use proxies and lazy collections for most "
+"associations to classes that are not likely to be completely held in the "
+"second-level cache. For associations to cached classes, where there is an a "
+"extremely high probability of a cache hit, explicitly disable eager fetching "
+"using <literal>lazy=\"false\"</literal>. When join fetching is appropriate "
+"to a particular use case, use a query with a <literal>left join fetch</"
+"literal>."
+msgstr ""
+"Use a busca antecipada de forma moderada. Use as coleções proxy e lazy para "
+"a maioria das associações para classes que possam não ser completamente "
+"mantidas em cache de segundo nÃvel. Para associações de classes em cache, "
+"onde existe uma enorme probabilidade de coincidir caches, desabilite "
+"explicitamente a busca antecipada usando <literal>lazy=\"false\"</literal>. "
+"Quando uma busca de união é apropriada para um caso especÃfico, use a "
+"consulta com <literal>left join fetch</literal>."
+
+#. Tag: term
+#, no-c-format
+msgid ""
+"Use the <emphasis>open session in view</emphasis> pattern, or a disciplined "
+"<emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr ""
+"Use o modelo <emphasis>sessão aberta na visualização</emphasis>, ou uma "
+"<emphasis>fase de construção</emphasis> para evitar problemas com dados não "
+"encontrados."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
+"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
+"purposes: first, they work around the problem that entity beans are not "
+"serializable; second, they implicitly define an assembly phase where all "
+"data to be used by the view is fetched and marshalled into the DTOs before "
+"returning control to the presentation tier. Hibernate eliminates the first "
+"purpose. Unless you are prepared to hold the persistence context (the "
+"session) open across the view rendering process, you will still need an "
+"assembly phase. Think of your business methods as having a strict contract "
+"with the presentation tier about what data is available in the detached "
+"objects. This is not a limitation of Hibernate. It is a fundamental "
+"requirement of safe transactional data access."
+msgstr ""
+"O Hibernate libera o desenvolvedor de escrever <emphasis>Objetos de "
+"Transferência de Dados</emphasis> (DTO). Em uma arquitetura tradicional EJB, "
+"os DTOs servem dois propósitos: primeiro, eles se deparam com o problema de "
+"que os beans de entidade não são serializáveis, depois, eles implicitamente "
+"definem uma fase de construção onde todos os dados a serem utilizados pelo "
+"view são buscados e conduzidos aos DTOs antes mesmo de retornar o controle à "
+"camada de apresentação. O Hibernate elimina o primeiro propósito. No "
+"entanto, você ainda precisará de uma fase de construção (pense em seus "
+"métodos de negócios como tendo um contrato estrito com a camada de "
+"apresentação sobre o quais dados estão disponÃveis nos objetos desanexados) "
+"a não ser que você esteja preparado para manter o contexto de persistência "
+"(sessão) aberto no processo de renderização da visualização. Isto não é uma "
+"limitação do Hibernate. à uma solicitação fundamental para acesso a dados "
+"transacionais seguros."
+
+#. Tag: term
+#, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr "Considere abstrair sua lógica comercial do Hibernate:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hide Hibernate data-access code behind an interface. Combine the "
+"<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> "
+"patterns. You can even have some classes persisted by handcoded JDBC "
+"associated to Hibernate via a <literal>UserType</literal>. This advice is, "
+"however, intended for \"sufficiently large\" applications. It is not "
+"appropriate for an application with five tables."
+msgstr ""
+"Oculte (Hibernate) o código de acesso a dados atrás de uma interface. "
+"Combine os modelos <emphasis>DAO</emphasis> e <emphasis>Sessão Local de "
+"Thread</emphasis>. Você pode também persistir algumas classes pelo JDBC "
+"handcoded, associado ao Hibernate via um <literal>UserType</literal>. Este "
+"é um conselho para aplicações \"grandes o suficiente\", não é apropriado "
+"para uma aplicação com cinco tabelas."
+
+#. Tag: term
+#, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr "Não use mapeamentos de associação exóticos:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Practical test cases for real many-to-many associations are rare. Most of "
+"the time you need additional information stored in the \"link table\". In "
+"this case, it is much better to use two one-to-many associations to an "
+"intermediate link class. In fact, most associations are one-to-many and many-"
+"to-one. For this reason, you should proceed cautiously when using any other "
+"association style."
+msgstr ""
+"Casos de testes práticos para associações muitos-para-muitos reais são "
+"raros. A maioria do tempo você precisa de informação adicional armazenada na "
+"\" tabela de link\". Neste caso, é muito melhor usar associações dois um-"
+"para-muitos para uma classe de link intermediário. Na verdade, acreditamos "
+"que a maioria das associações é um-para-muitos e muitos-para-um, você deve "
+"tomar cuidado ao utilizar qualquer outro tipo de associação e perguntar a "
+"você mesmo se é realmente necessário. "
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr "Prefira associações bidirecionais:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Unidirectional associations are more difficult to query. In a large "
+"application, almost all associations must be navigable in both directions in "
+"queries."
+msgstr ""
+"As associações unidirecionais são mais difÃceis para pesquisar. Em "
+"aplicações grandes, quase todas as associações devem navegar nas duas "
+"direções em consultas. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/bibliography.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/bibliography.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/bibliography.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,52 @@
+# translation of bibliography.po to
+# Language pt-BR translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: bibliography\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-03-17 14:22+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr "Referências"
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr "Padröes da Arquitetura do Aplicativo Enterprise "
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr "Martin"
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr "Persitência Java com Hibernate"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr "Segunda Edição do Hibernate em Ação"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr "Christian"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr "Gavin"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/collection_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/collection_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/collection_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1319 @@
+# translation of collection_mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: collection_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-03-15 16:00+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mapping"
+msgstr "Mapeamento de coleção "
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr "Coleções persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate requires that persistent collection-valued fields be declared as "
+"an interface type. For example:"
+msgstr ""
+"O Hibernate requer que os campos de coleções de valor persistente sejam "
+"declarados como um tipo de interface. Por exemplo:"
+
+#. 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 ""
+"A interface atual pode ser <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> ou o que desejar. (\"o que desejar\" significa que "
+"você terá que escrever uma implementação de <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 ""
+"Observe como inicializamos a variável da instância com uma instância de "
+"<literal>HashSet</literal>. Esta é a melhor maneira de inicializar "
+"propriedades de coleções de valor de instâncias recentemente instanciadas "
+"(não persistentes). Quando você fizer uma instância persistente, chamando "
+"<literal>persist()</literal>, como por exemplo: o Hibernate substituirá o "
+"<literal>HashSet</literal> por uma instância da própria implementação do "
+"Hibernate do <literal>Set</literal>. Cuidado com erros como este:"
+
+#. 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 ""
+"As coleções persistentes injetadas pelo Hibernate, se comportam como "
+"<literal>HashMap</literal>, <literal>HashSet</literal>, <literal>TreeMap</"
+"literal>, <literal>TreeSet</literal> ou <literal>ArrayList</literal>, "
+"dependendo do tipo de interface."
+
+#. 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 ""
+"As instâncias de coleção têm o comportamento comum de tipos de valores. Eles "
+"são automaticamente persistidos quando referenciados por um objeto "
+"persistente e automaticamente deletados quando não referenciados. Se a "
+"coleção é passada de um objeto persistente para outro, seus elementos devem "
+"ser movidos de uma tabela para outra. Duas entidades não devem compartilhar "
+"uma referência com uma mesma instância de coleção. Devido ao modelo "
+"relacional adjacente, as propriedades de coleções válidas, não suportam "
+"semânticas de valores nulos. O Hibernate não distingue entre a referência da "
+"coleção nula e uma coleção vazia. "
+
+#. 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 ""
+"Use as coleções persistentes da mesma forma que usa coleções Java comuns. No "
+"entanto, somente tenha a certeza de entender as semânticas de associações "
+"bidirecionais (as quais serão discutidas mais tarde)."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr "Mapeamento de coleção"
+
+#. 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 ""
+"Existem diversas variedades de mapeamento que podem ser gerados para as "
+"coleções, cobrindo muitos modelos relacionais comuns. Sugerimos que você "
+"faça o teste com a ferramenta de geração do esquema para obter uma idéia de "
+"como diversas declarações de mapeamento traduzem as tabelas de banco de "
+"dados. "
+
+#. 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><set></literal> element is "
+"used for mapping properties of type <literal>Set</literal>."
+msgstr ""
+"O elemento do mapeamento do Hibernate, usado para mapear uma coleção, "
+"depende do tipo de interface. Por exemplo, um elemento <literal><set></"
+"literal> é usado para mapear propriedades do tipo <literal>Set</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Apart from <literal><set></literal>, there is also <literal><"
+"list></literal>, <literal><map></literal>, <literal><bag></"
+"literal>, <literal><array></literal> and <literal><primitive-"
+"array></literal> mapping elements. The <literal><map></literal> "
+"element is representative:"
+msgstr ""
+"Além do <literal><set></literal>, existe também os elementos de "
+"mapeamento <literal><list></literal>, <literal><map></literal>, "
+"<literal><bag></literal>, <literal><array></literal> and "
+"<literal><primitive-array></literal>. O elemento <literal><map></"
+"literal> é de representação:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr "<literal>name</literal>: o nome da propriedade da coleção"
+
+#. 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> (opcional - padrão para nome de propriedade): o "
+"nome da tabela de coleção. Isto não é usado para associações um-para-muitos."
+
+#. 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> (opcional): o nome de um esquema de tabela para "
+"sobrescrever o esquema declarado no elemento raÃz."
+
+#. 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> (opcional - padrão para <literal>true</literal>): "
+"pode ser utilizado para desabilitar a busca lazy e especificar que a "
+"associação é sempre buscada antecipadamente, ou para habilitar busca \"extra-"
+"lazy\" onde a maioria das operações não inicializa a coleção (apropriado "
+"para coleções bem grandes)."
+
+#. 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> (opcional - padrão para <literal>false</"
+"literal>): marque esta coleção como o lado \"inverso\" de uma associação "
+"bidirecional."
+
+#. 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> (opcional - padrão para <literal>none</literal>): "
+"habilita operações para cascata para entidades filho."
+
+#. 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> (opcional): especifica uma coleção escolhida com "
+"ordem de escolha<literal>natural</literal> ou uma dada classe comparatória."
+
+#. 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> (opcional, somente JDK1.4): especifica uma "
+"coluna da tabela (ou colunas) que define a ordem de iteração do "
+"<literal>Map</literal>, <literal>Set</literal> ou bag, juntos com um "
+"<literal>asc</literal> ou <literal>desc</literal> opcional."
+
+#. 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> (opcional): especifica uma condição SQL arbitrária "
+"<literal>WHERE</literal> a ser usada quando recuperar ou remover a coleção "
+"Isto é útil se a coleção tiver somente um subconjunto dos dados disponÃveis."
+
+#. 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> (opcional, padrão para <literal>select</literal>): "
+"escolha entre busca de união externa, busca por seleção sequencial e busca "
+"por subseleção sequencial."
+
+#. 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> (opcional, padrão para <literal>1</literal>): "
+"especifica um \"tamanho de lote\" para instâncias de busca lazy desta "
+"coleção."
+
+#. 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> (opcional - padrão para <literal>property</"
+"literal>): A estratégia que o Hibernate deve usar para acessar a coleção de "
+"valor de propriedade. "
+
+#. 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>optimistic-lock</literal> (opcional - padrão para <literal>true</"
+"literal>): especifica que alterações para o estado da coleção, resulta no "
+"incremento da versão da própria entidade. Para associações um-para-muitos, é "
+"sempre bom desabilitar esta configuração."
+
+#. 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> (opcional - padrão para <literal>true</literal>): "
+"um valor de <literal>false</literal> especifica que os elementos da coleção "
+"nunca mudam. Isto permite uma otimização mÃnima do desempenho em alguns "
+"casos."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr "Chaves Externas de Coleção"
+
+#. 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><key></"
+"literal> element."
+msgstr ""
+"Instâncias de coleção são distinguidas no banco de dados pela chave exterior "
+"da entidade que possui a coleção. Esta chave exterior é referida como a "
+"<emphasis>coluna de chave de coleção</emphasis> (ou colunas) da tabela de "
+"coleção. A coluna de chave de coleção é mapeada pelo elemento <literal><"
+"key></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 ""
+"Pode existir uma restrição de nulabilidade na coluna da chave exterior. Para "
+"a maioria das coleções, isto está implÃcito. Para associações unidirecionais "
+"um-para-muitos, a coluna de chave estrangeira é anulável por padrão, "
+"portanto você pode precisar especificar <literal>not-null=\"true\"</literal>."
+
+#. 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>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See the previous chapter for a full definition of the <literal><key></"
+"literal> element."
+msgstr ""
+"Veja nos capÃtulos anteriores para uma completa definição do "
+"elemento<literal><key></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr "Elementos de coleção"
+
+#. 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 ""
+"As coleções podem conter quase qualquer outro tipo de Hibernate, incluindo "
+"todos os tipos básicos, tipos padronizados, e é claro, referências a outras "
+"entidades. Isto é uma distinção importante: um objeto em uma coleção pode "
+"ser manipulada com as semânticas \"valor\" (seu ciclo de vida depende "
+"totalmente do proprietário da coleção), ou ele pode ser uma referência à "
+"outra entidade, com seu próprio ciclo de vida. No último caso, somente o "
+"\"link\" entre os dois objetos é considerado como estado seguro pela "
+"coleção. "
+
+#. 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><element></"
+"literal> or <literal><composite-element></literal>, or in the case of "
+"entity references, with <literal><one-to-many></literal> or "
+"<literal><many-to-many></literal>. The first two map elements with "
+"value semantics, the next two are used to map entity associations."
+msgstr ""
+"O tipo contido é referido como <emphasis>tipo de elemento de coleção</"
+"emphasis>. Os elementos de coleção são mapeados pelo <literal><element>"
+"</literal> ou <literal><composite-element></literal>,ou no caso de "
+"referências de entidade, com <literal><one-to-many></literal> "
+"ou<literal><many-to-many></literal>. Os primeiros dois, mapeiam "
+"elementos com semânticas de valor, os dois outros são usados para mapear "
+"associações de entidade."
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr "Coleções indexadas"
+
+#. 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><map-key></literal>. It can be "
+"an entity reference mapped with <literal><map-key-many-to-many></"
+"literal>, or it can be a composite type mapped with <literal><composite-"
+"map-key></literal>. The index of an array or list is always of type "
+"<literal>integer</literal> and is mapped using the <literal><list-"
+"index></literal> element. The mapped column contains sequential integers "
+"that are numbered from zero by default."
+msgstr ""
+"Todos os mapeamentos de coleção, exceto aqueles com semânticas de conjunto e "
+"bag, precisam de uma <emphasis>coluna Ãndice</emphasis> na tabela de "
+"coleção, uma coluna que mapeia para um Ãndice matriz ou Ãndice "
+"<literal>List</literal> ou chave de <literal>Map</literal>. O Ãndice de um "
+"<literal>Map</literal> pode ser de qualquer tipo, mapeado com <literal><"
+"map-key></literal>, pode ser uma referência de entidade mapeada com "
+"<literal><map-key-many-to-many></literal>, ou pode ser um tipo "
+"composto, mapeado com <literal><composite-map-key></literal>. O Ãndice "
+"de uma matriz ou lista é sempre do tipo <literal>integer</literal> e é "
+"mapeado usando o elemento <literal><list-index></literal>. As colunas "
+"mapeadas contém inteiros sequenciais, dos quais são numerados a partir do "
+"zero, por padrão. "
+
+#. Tag: para
+#, no-c-format
+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."
+
+#. 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> (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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr "<literal>type</literal> (requerido): o tipo de chaves de mapa."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>column</literal> (optional): the name of the foreign key column for "
+"the collection index values."
+msgstr ""
+"<literal>column</literal> (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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your table does not have an index column, and you still wish to use "
+"<literal>List</literal> as the property type, you can map the property as a "
+"Hibernate <emphasis><bag></emphasis>. A bag does not retain its order "
+"when it is retrieved from the database, but it can be optionally sorted or "
+"ordered."
+msgstr ""
+"Se sua tabela não possui uma coluna de Ãndice e você ainda quiser usar a "
+"<literal>Lista</literal> como tipo de propriedade, você deve mapeiar a "
+"propriedade como uma <emphasis><bag></emphasis> do Hibernate. Uma bag "
+"não mantém sua ordem quando é recuperadada do banco de dados, mas pode ser "
+"escolhida de forma opcional ou ordenada. "
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of values and many-to-many associations"
+msgstr "Coleções de valores e associações muitos-para-muitos"
+
+#. 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 ""
+"Quaisquer valores de coleção ou associação muitos-para-muitos requerem uma "
+"<emphasis>tabela de coleção</emphasis> dedicada, com uma coluna de chave "
+"exterior ou colunas, <emphasis>collection element column</emphasis> ou "
+"colunas e possivelmente uma coluna de Ãndice ou colunas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For a collection of values use the <literal><element></literal> tag. "
+"For example:"
+msgstr ""
+"Para uma coleção com valores, utilizamos a tag <literal><element></"
+"literal>. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (required): the type of the collection element."
+msgstr "<literal>type</literal> (requerido): o tipo do elemento de coleção."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>many-to-many association</emphasis> is specified using the "
+"<literal><many-to-many></literal> element."
+msgstr ""
+"A <emphasis>associação muitos-para-muitos</emphasis> é especificada usando o "
+"elemento <literal><many-to-many></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."
+
+#. 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."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr "<literal>class</literal> (requerido): O nome da classe associada. "
+
+#. 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><many-to-many></"
+"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><"
+"many-to-many></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> (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
+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> (opcional - padrão para <literal>exception</"
+"literal>): especifica como os identificadores em cache que referenciam as "
+"linhas faltantes serão tratadas: <literal>ignore</literal> tratará a linha "
+"faltante como uma associação nula. "
+
+#. 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> (opcional): O nome da entidade da classe "
+"associada, como uma alternativa para a <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> (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
+msgid "Here are some examples."
+msgstr "Segue abaixo alguns exemplos."
+
+#. Tag: para
+#, no-c-format
+msgid "A set of strings:"
+msgstr "Um conjunto de strings:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A bag containing integers with an iteration order determined by the "
+"<literal>order-by</literal> attribute:"
+msgstr ""
+"Uma bag contendo inteiros com uma ordem de iteração determinada pelo "
+"atributo <literal>order-by</literal>):"
+
+#. 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: "
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "Um mapa desde Ãndices de strigs até datas:"
+
+#. Tag: para
+#, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr "Uma lista de componentes (isto será discutido no próximo capÃtulo):"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "Associações um-para-muitos"
+
+#. 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 ""
+"Uma <emphasis>associação um para muitos</emphasis> liga as tabelas das duas "
+"classes através de uma chave exterior, sem a intervenção da tabela de "
+"coleção. Este mapeamento perde um pouco da semântica das coleções normais do "
+"Java: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An instance of the contained entity class cannot belong to more than one "
+"instance of the collection."
+msgstr ""
+"Uma instância de classes entidades contidas, podem não pertencer à mais de "
+"uma instância da coleção. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An instance of the contained entity class cannot appear at more than one "
+"value of the collection index."
+msgstr ""
+"Uma instância da classe de entidade contida pode não aparecer em mais de um "
+"valor do Ãndice da coleção. "
+
+#. 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><one-to-many></"
+"literal> tag indicates that this is a one-to-many association."
+msgstr ""
+"Uma associação a partir do <literal>Produto</literal> até a <literal>Parte</"
+"literal> requer a existência de uma coluna de chave exterior e possivelmente "
+"uma coluna de Ãndice para a tabela <literal>Part</literal> Uma tag "
+"<literal><one-to-many></literal> indica que esta é uma associação um "
+"para muitos."
+
+#. 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> (opcional - padrão para <literal>exception</"
+"literal>): Especifica como os identificadores em cache que referenciam as "
+"linhas faltantes serão tratadas: <literal>ignore</literal> tratará a linha "
+"faltante como uma associação nula. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><one-to-many></literal> element does not need to declare "
+"any columns. Nor is it necessary to specify the <literal>table</literal> "
+"name anywhere."
+msgstr ""
+"Note que o elemento <literal><one-to-many></literal> não precisa "
+"declarar qualquer coluna. Nem é necessário especificar o nome da "
+"<literal>table</literal> em qualquer lugar. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the foreign key column of a <literal><one-to-many></literal> "
+"association is declared <literal>NOT NULL</literal>, you must declare the "
+"<literal><key></literal> mapping <literal>not-null=\"true\"</literal> "
+"or <emphasis>use a bidirectional association</emphasis> with the collection "
+"mapping marked <literal>inverse=\"true\"</literal>. See the discussion of "
+"bidirectional associations later in this chapter for more information."
+msgstr ""
+"Se a coluna da chave exterior de uma associação <literal><one-to-many>"
+"</literal> for declarada como <literal>NOT NULL</literal>, você deve "
+"declarar a <literal><key></literal> mapeando <literal>not-null=\"true"
+"\"</literal> ou <emphasis>use uma associação bidirecional</emphasis> com o "
+"mapeamento da coleção marcado como <literal>inverse=\"true\"</literal>. Veja "
+"a discussão das associações bidirecionais mais tarde neste mesmo capÃtulo."
+
+#. 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 ""
+"Este exemplo demonstra um mapa das entidades <literal>Part</literal> por "
+"nome, onde <literal>partName</literal> é uma propriedade persistente de "
+"<literal>Part</literal>. Note que o uso de um Ãndice baseado em fórmula:"
+
+#. Tag: title
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr "Mapeamentos de coleção avançados."
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr "Coleções escolhidas"
+
+#. 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 ""
+"O Hibernate suporta a implementação de coleções <literal>java.util."
+"SortedMap</literal> e <literal>java.util.SortedSet</literal>. Você deve "
+"especificar um comparador no arquivo de mapeamento:"
+
+#. 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 ""
+"Valores permitidos da função<literal>sort</literal> são<literal>unsorted</"
+"literal>, <literal>natural</literal> e o nome de uma classe implementando "
+"<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 ""
+"Coleções escolhidas, na verdade se comportam como <literal>java.util."
+"TreeSet</literal> ou <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 ""
+"Se você quiser que o próprio banco de dados ordene os elementos da coleção "
+"use a função <literal>order-by</literal> do <literal>set</literal>, "
+"<literal>bag</literal> ou mapeamentos <literal>map</literal>. Esta solução "
+"está disponÃvel somente sob JDK 1.4 ou versões posteriores e é implementada "
+"usando <literal>LinkedHashSet</literal> ou <literal>LinkedHashMap</"
+"literal>). Este desempenha a ordenação na consulta SQL, não em memória."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The value of the <literal>order-by</literal> attribute is an SQL ordering, "
+"not an HQL ordering."
+msgstr ""
+"Note que o valor da função <literal>order-by</literal> é uma ordenação SQL e "
+"não uma ordenação."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations can even be sorted by arbitrary criteria at runtime using a "
+"collection <literal>filter()</literal>:"
+msgstr ""
+"Associações podem também ser escolhidas por algum critério arbritrário em "
+"tempo de espera usando uma coleção <literal>filter()</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "Associações Bidirecionais"
+
+#. 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 ""
+"Uma <emphasis>associação bidirecional</emphasis> permite a navegação de "
+"ambos os \"lados\" da associação. Dois dos casos de associação bidirecional, "
+"são suportados: "
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr "Um-para-muitos"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr "conjunto ou bag de valor em um dos lados, valor único do outro "
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr "Muitos-para-muitos"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr "Conjunto ou bag com valor em ambos os lados"
+
+#. 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 ""
+"Você deve especificar uma associação muitos-para-muitos bidirecional, "
+"simplesmente mapeando as duas associações muitos-para-muitos para alguma "
+"tabela de banco de dados e declarando um dos lados como <emphasis>inverso</"
+"emphasis> Voce não poderá selecionar uma coleção indexada."
+
+#. 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 ""
+"Segue aqui um exemplo de uma associação muitos-para-muitos bidirecional. "
+"Cada categoria pode ter muitos Ãtens e cada Ãtem pode estar em várias "
+"categorias: "
+
+#. 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 ""
+"As mudanças feitas somente de um lado da associação <emphasis>não</emphasis> "
+"são persistidas. Isto significa que o Hibernate tem duas representações na "
+"memória para cada associação bidirecional, uma associação de A para B e uma "
+"outra associação de B para A. Isto é mais fácil de compreender se você pensa "
+"sobre o modelo de objetos do Java e como criamos um relacionamento muitos "
+"para muitos em Java:"
+
+#. Tag: para
+#, no-c-format
+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."
+
+#. 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 ""
+"Você pode definir uma associação bidirecional um para muitos através de uma "
+"associação um-para-muitos indicando as mesmas colunas da tabela que à "
+"associação muitos-para-um e declarando a propriedade <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 ""
+"Mapear apenas uma das pontas da associação com <literal>inverse=\"true\"</"
+"literal> não afeta as operações em cascata, uma vez que isto é um conceito "
+"ortogonal."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr "Associações bidirecionais com coleções indexadas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A bidirectional association where one end is represented as a <literal><"
+"list></literal> or <literal><map></literal>, requires special "
+"consideration. If there is a property of the child class that maps to the "
+"index column you can use <literal>inverse=\"true\"</literal> on the "
+"collection mapping:"
+msgstr ""
+"Uma associação bidirecional onde um dos lados é representado por uma "
+"<literal><list></literal> ou <literal><map></literal> requer uma "
+"consideração especial. Se houver uma propriedade da classe filha que faça o "
+"mapeamento da coluna do Ãndice sem problemas, pode-se continuar usando "
+"<literal>inverse=\"true\"</literal> no mapeamento da coleção:"
+
+#. 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 ""
+"Mas, se não houver nenhuma propriedade na classe filha, não podemos ver essa "
+"associação como verdadeiramente bidirecional (há uma informação disponÃvel "
+"em um lado da associação que não está disponÃvel no extremo oposto). Nesse "
+"caso, nós não podemos mapear a coleção usando <literal>inverse=\"true\"</"
+"literal>. Devemos usar o seguinte mapeamento: "
+
+#. 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."
+msgstr ""
+"Veja que neste mapeamento, o lado de coleção válida da associação é "
+"responsável pela atualização da chave exterior. "
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr "Associações Ternárias"
+
+#. 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 ""
+"Há três meios possÃveis de se mapear uma associação ternária. Uma é usar um "
+"<literal>Map</literal> com uma associação como seu Ãndice: "
+
+#. 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 ""
+"A segunda maneira é simplesmente remodelar a associação das classes da "
+"entidade. Esta é a abordagem que utilizamos com mais freqüência. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A final alternative is to use composite elements, which will be discussed "
+"later."
+msgstr ""
+"Uma alternativa final é usar os elementos compostos, que nós discutiremos "
+"mais tarde. "
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr "<literal>Using an <idbag></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 ""
+"A maioria das associações e coleções muitos para muitos de valores "
+"apresentados anteriormente mapeiam às tabelas com as chaves de composição, "
+"mesmo que foi sugerido que as entidades devem ser identificadores sintéticos "
+"(chaves substitutas). Uma tabela de associação pura não parece tirar muito "
+"proveito de uma chave substituta, mesmo que uma coleção de valores compostos "
+"<emphasis>usufruam disto</emphasis>. à por este motivo que o Hibernate provê "
+"uma maneira de mapear uma associação muitos para muitos com uma coleção de "
+"valores para uma tabela com uma chave substituta. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><idbag></literal> element lets you map a <literal>List</"
+"literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr ""
+"O elemento <literal><idbag></literal> permite mapear um <literal>List</"
+"literal> (ou uma <literal>Collection</literal>) com uma semântica de bag. "
+"Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An <literal><idbag></literal> has a synthetic id generator, just like "
+"an entity class. A different surrogate key is assigned to each collection "
+"row. Hibernate does not, however, provide any mechanism for discovering the "
+"surrogate key value of a particular row."
+msgstr ""
+"O <literal><idbag></literal> possui um gerador de id sintético, igual "
+"a uma classe de entidade. Uma chave substituta diferente é associada para "
+"cada elemento de coleção. Porém, o Hibernate não provê de nenhum mecanismo "
+"para descobrir qual a chave substituta de uma linha em particular."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The update performance of an <literal><idbag></literal> supersedes a "
+"regular <literal><bag></literal>. Hibernate can locate individual rows "
+"efficiently and update or delete them individually, similar to a list, map "
+"or set."
+msgstr ""
+"Note que o desempenho de atualização de um <literal><idbag></literal> "
+"é melhor do que um <literal><bag></literal> normal. O Hibernate pode "
+"localizar uma linha individual eficazmente e atualizar ou deletar "
+"individualmente, como um list, map ou set."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In the current implementation, the <literal>native</literal> identifier "
+"generation strategy is not supported for <literal><idbag></literal> "
+"collection identifiers."
+msgstr ""
+"Na implementação atual, a estratégia de geração de identificador "
+"<literal>native</literal> não é suportada para identificadores de coleção "
+"usando o <literal><idbag></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr "Exemplos de coleções"
+
+#. Tag: para
+#, no-c-format
+msgid "This section covers collection examples."
+msgstr "Esta sessão cobre os exemplos de coleções."
+
+#. 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>:"
+
+#. 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 ""
+"Se cada Filho tiver no máximo um Pai, o mapeamento natural é uma associação "
+"um para muitos:"
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr "Esse mapeamento gera a seguinte definição de tabelas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the parent is <emphasis>required</emphasis>, use a bidirectional one-to-"
+"many association:"
+msgstr ""
+"Se o pai for <emphasis>obrigatório</emphasis>, use uma associação "
+"bidirecional um para muitos:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "Repare na restrição <literal>NOT NULL</literal>:"
+
+#. 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><key></"
+"literal> mapping:"
+msgstr ""
+"Uma outra alternativa, no caso de você insistir que esta associação deva ser "
+"unidirecional, você pode declarar a restrição como <literal>NOT NULL</"
+"literal> no mapeamento <literal><key></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 ""
+"Por outro lado, se um filho puder ter os múltiplos pais, a associação "
+"apropriada será muitos-para-muitos: "
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+msgstr "Definições das tabelas:"
+
+#. 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 ""
+"Para mais exemplos e um exemplo completo de mapeamento de relacionamento de "
+"mestre/detalhe, consulte <xref linkend=\"example-parentchild\" />."
+
+#. Tag: para
+#, no-c-format
+msgid "Even more complex association mappings are covered in the next chapter."
+msgstr ""
+"Até mesmo o mapeamento de associações mais complexos serão discutimos no "
+"próximo capÃtulo."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/component_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/component_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/component_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,513 @@
+# translation of component_mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: component_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-17 14:28+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr "Mapeamento de Componentes"
+
+#. 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 ""
+"A noção de <emphasis>componente</emphasis> é re-utilizada em vários "
+"contextos diferentes, para propósitos diferentes, pelo Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr "Objetos dependentes"
+
+#. 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 ""
+"Um componente é um objeto contido que é persistido como um tipo de valor, "
+"não uma referência de entidade. O termo \"componente\" refere-se à noção de "
+"composição da orientação a objetos e não a componentes no nÃvel de "
+"arquitetura. Por exemplo, você pode modelar uma pessoa desta maneira: "
+
+#. 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 ""
+"Agora <literal>Name</literal> pode ser persistido como um componente de "
+"<literal>Person</literal>. Note que <literal>Name</literal> define métodos "
+"getter e setter para suas propriedades persistentes, mas não necessita "
+"declarar nenhuma interface ou propriedades identificadoras. "
+
+#. Tag: para
+#, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr "Nosso mapeamento do Hibernate seria semelhante a este: "
+
+#. 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 ""
+"A tabela person teria as seguintes colunas <literal>pid</literal>, "
+"<literal>birthday</literal>, <literal>initial</literal>, <literal>first</"
+"literal> and <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 ""
+"Assim como todos tipos por valor, componentes não suportam referências "
+"cruzadas. Em outras palavras, duas persons podem ter o mesmo nome, mas os "
+"dois objetos person podem ter dois objetos de nome independentes, apenas \"o "
+"mesmo\" por valor. A semântica dos valores null de um componente são "
+"<emphasis>ad hoc</emphasis>. No recarregameno do conteúdo do objeto, o "
+"Hibernate entenderá que se todas as colunas do componente são null, então "
+"todo o componente é null. Isto seria o certo para a maioria dos propósitos."
+
+#. 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 ""
+"As propriedades de um componente podem ser de qualquer tipo do Hibernate"
+"(coleções, associações muitos-para-um, outros componentes, etc). Componentes "
+"agrupados <emphasis>não</emphasis> devem ser considerados luxo. O Hibernate "
+"tem a intenção de suportar um modelo de objetos fine-grained (muito bem "
+"granulados)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><component></literal> element allows a <literal><"
+"parent></literal> subelement that maps a property of the component class "
+"as a reference back to the containing entity."
+msgstr ""
+"O elemento <literal><component></literal> permite um sub-elemento "
+"<literal><parent></literal> mapeie uma propriedade da classe do "
+"componente como uma referencia de volta para a entidade que o contém."
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr "Coleções de objetos dependentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections of components are supported (e.g. an array of type "
+"<literal>Name</literal>). Declare your component collection by replacing the "
+"<literal><element></literal> tag with a <literal><composite-"
+"element></literal> tag:"
+msgstr ""
+"Coleções de componentes são suportadas (ex.: uma matriz de tipo "
+"<literal>Name</literal>). Declare a sua coleção de componentes substituindo "
+"a tag<literal><element></literal> pela tag <literal><composite-"
+"element></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 ""
+"Se você definir um <literal>Set</literal> de elementos compostos, é muito "
+"importante implementar <literal>equals()</literal> e <literal>hashCode()</"
+"literal> corretamente. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Composite elements can contain components but not collections. If your "
+"composite element contains components, use the <literal><nested-composite-"
+"element></literal> tag. This case is a collection of components which "
+"themselves have components. You may want to consider if a one-to-many "
+"association is more appropriate. Remodel the composite element as an entity, "
+"but be aware that even though the Java model is the same, the relational "
+"model and persistence semantics are still slightly different."
+msgstr ""
+"Elementos compostos podem conter componentes mas não coleções. Se o seu "
+"elemento composto tiver componentes , use a tag <literal><nested-"
+"composite-element></literal>. Este é um caso bastante exótico â coleções "
+"de componentes que por si própria possui componentes. Neste momento você "
+"deve estar se perguntando se uma associação de um-para-muitos seria mais "
+"apropriada. Tente remodelar o elemento composto como uma entidade â mas note "
+"que mesmo pensando que o modelo Java é o mesmo, o modelo relacional e a "
+"semântica de persistência ainda são diferentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A composite element mapping does not support null-able properties if you are "
+"using a <literal><set></literal>. There is no separate primary key "
+"column in the composite element table. Hibernate uses each column's value to "
+"identify a record when deleting objects, which is not possible with null "
+"values. You have to either use only not-null properties in a composite-"
+"element or choose a <literal><list></literal>, <literal><map></"
+"literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr ""
+"Um mapeamento de elemento composto não suporta propriedades capazes de serem "
+"null se você estiver usando um <literal><set></literal>. Não existe "
+"coluna chave primária separada na tabela de elemento composto. O Hibernate "
+"tem que usar cada valor das colunas para identificar um registro quando "
+"estiver deletando objetos, que não é possÃvel com valores null. Você tem que "
+"usar um dos dois, ou apenas propriedades não null em um elemento composto ou "
+"escolher uma <literal><list></literal>, <literal><map></"
+"literal>, <literal><bag></literal> ou <literal><idbag></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A special case of a composite element is a composite element with a nested "
+"<literal><many-to-one></literal> element. This mapping allows you to "
+"map extra columns of a many-to-many association table to the composite "
+"element class. The following is a many-to-many association from "
+"<literal>Order</literal> to <literal>Item</literal>, where "
+"<literal>purchaseDate</literal>, <literal>price</literal> and "
+"<literal>quantity</literal> are properties of the association:"
+msgstr ""
+"Um caso especial de elemento composto é um elemento composto com um elemento "
+"<literal><many-to-one></literal> aninhado. Um mapeamento como este "
+"permite que você mapeie colunas extras de uma tabela de associação de muitos-"
+"para-muitos para a classe de elemento composto. A seguinte associação de "
+"muitos-para-muitos de <literal>Order</literal> para um <literal>Item</"
+"literal> onde <literal>purchaseDate</literal>, <literal>price</literal> e "
+"<literal>quantity</literal> são propriedades da associação:"
+
+#. 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 ""
+"Não pode haver uma referência de compra no outro lado, para a navegação da "
+"associação bidirecional. Lembre-se que componentes são tipos por valor e não "
+"permitem referências compartilhadas. Uma classe <literal>Purchase</literal> "
+"simples pode estar no conjunto de uma classe <literal>Order</literal>, mas "
+"ela não pode ser referenciada por <literal>Item</literal> no mesmo momento."
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr "Até mesmo associações ternárias (ou quaternária, etc) são possÃveis:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Composite elements can appear in queries using the same syntax as "
+"associations to other entities."
+msgstr ""
+"Elementos compostos podem aparecer em pesquisas usando a mesma sintaxe assim "
+"como associações para outras entidades."
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr "Componentes como Ãndices de Map"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><composite-map-key></literal> element allows you to map a "
+"component class as the key of a <literal>Map</literal>. Ensure that you "
+"override <literal>hashCode()</literal> and <literal>equals()</literal> "
+"correctly on the component class."
+msgstr ""
+"O elemento <literal><composite-map-key></literal> permite você mapear "
+"uma classe componente como uma chave de um <literal>Map</literal>. Tenha "
+"certeza que você sobrescreveu <literal>hashCode()</literal> e <literal>equals"
+"()</literal> corretamente na classe componente. "
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr "Componentes como identificadores compostos"
+
+#. 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 ""
+"Você pode usar um componente como um identificador de uma classe entidade. "
+"Sua classe componente deve satisfazer certos requisitos: "
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr "Ele deve implementar <literal>java.io.Serializable</literal>."
+
+#. 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 ""
+"Ele deve re-implementar <literal>equals()</literal> e <literal>hashCode()</"
+"literal>, consistentemente com a noção de igualdade de chave composta do "
+"banco de dados. "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In Hibernate3, although the second requirement is not an absolutely hard "
+"requirement of Hibernate, it is recommended."
+msgstr ""
+"No Hibernate 3, o segundo requisito não é um requisito absolutamente "
+"necessário. Mas atenda ele de qualquer forma."
+
+#. 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 ""
+"Você não pode usar um <literal>IdentifierGenerator</literal> para gerar "
+"chaves compostas. Ao invés disso, o aplicativo deve gerenciar seus próprios "
+"identificadores."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use the <literal><composite-id></literal> tag, with nested "
+"<literal><key-property></literal> elements, in place of the usual "
+"<literal><id></literal> declaration. For example, the "
+"<literal>OrderLine</literal> class has a primary key that depends upon the "
+"(composite) primary key of <literal>Order</literal>."
+msgstr ""
+"Use a tag <literal><composite-id></literal>, com elementos "
+"<literal><key-property></literal> aninhados, no lugar da declaração "
+"<literal><id></literal> de costume. Por exemplo, a classe "
+"<literal>OrderLine</literal> possui uma chave primária que depende da chave "
+"primária (composta) de <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 ""
+"Agora, qualquer chave exterior referenciando a tabela <literal>OrderLine</"
+"literal> também será composta. Você deve declarar isto em seus mapeamentos "
+"para outras classes. Uma associação para <literal>OrderLine</literal> seria "
+"mapeada dessa forma:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>column</literal> element is an alternative to the "
+"<literal>column</literal> attribute everywhere. Using the <literal>column</"
+"literal> element just gives more declaration options, which are mostly "
+"useful when utilizing <literal>hbm2ddl</literal>"
+msgstr ""
+"O elemento <literal>column</literal> é uma alternativa para a função "
+"<literal>column</literal> em todos os lugares. O uso do elemento <literal>column</"
+"literal> apenas fornece mais opçöes de declaração, das quais são úteis quando utilizando <literal>hbm2ddl</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 ""
+"Uma associação <literal>many-to-many</literal> para <literal>many-to-many</"
+"literal> também usa a chave estrangeira composta:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The collection of <literal>OrderLine</literal>s in <literal>Order</literal> "
+"would use:"
+msgstr ""
+"A coleção de <literal>OrderLine</literal>s em <literal>Order</literal> "
+"usaria: "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr "O elemento <literal><one-to-many></literal> não declara colunas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If <literal>OrderLine</literal> itself owns a collection, it also has a "
+"composite foreign key."
+msgstr ""
+"Se <literal>OrderLine</literal> possui uma coleção, ela também tem uma chave "
+"externa composta."
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr "Componentes Dinâmicos"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr "Você pode até mesmo mapear uma propriedade do tipo <literal>Map</literal>: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The semantics of a <literal><dynamic-component></literal> mapping are "
+"identical to <literal><component></literal>. The advantage of this "
+"kind of mapping is the ability to determine the actual properties of the "
+"bean at deployment time just by editing the mapping document. Runtime "
+"manipulation of the mapping document is also possible, using a DOM parser. "
+"You can also access, and change, Hibernate's configuration-time metamodel "
+"via the <literal>Configuration</literal> object."
+msgstr ""
+"A semântica de um mapeamento <literal><dynamic-component></literal> é "
+"idêntica à <literal><component></literal>. A vantagem deste tipo de "
+"mapeamento é a habilidade de determinar as propriedades atuais do bean no "
+"momento da implementação, apenas editando o documento de mapeamento. A "
+"Manipulação em tempo de execução do documento de mapeamento também é "
+"possÃvel, usando o parser DOM. Até melhor, você pode acessar,e mudar, o "
+"tempo de configuração do metamodelo do Hibernate através do objeto "
+"<literal>Configuration</literal>."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/configuration.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/configuration.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/configuration.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2715 @@
+# translation of configuration.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: configuration\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-17 14:39+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr "Configuration"
+
+#. 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 ""
+"Devido ao fato do Hibernate ser projetado para operar em vários ambientes "
+"diferentes, há um grande número de parâmetros de configuração. Felizmente, a "
+"maioria possui valores padrão consideráveis e o Hibernate é distribuÃdo com "
+"um arquivo <literal>hibernate.properties</literal> de exemplo no "
+"<literal>etc/</literal> que mostra várias opções. Apenas coloque o arquivo "
+"de exemplo no seu classpath e personalize-o. "
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr "Configuração programática"
+
+#. 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 ""
+"Uma instância de <literal>org.hibernate.cfg.Configuration</literal> "
+"representa um conjunto inteiro de mapeamentos de tipos Java de aplicação "
+"para um banco de dados SQL. O <classname>org.hibernate.cfg.Configuration</"
+"classname> é usado para construir uma <literal>SessionFactory</literal> "
+"imutável. Os mapeamentos são compilados a partir de diversos arquivos de "
+"mapeamento 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 ""
+"Você pode obter uma instância <classname>org.hibernate.cfg.Configuration</"
+"classname> intanciando-a diretamente e especificando os documentos de "
+"mapeamento XML. Se os arquivos de mapeamento estiverem no classpath, use "
+"<literal>addResource()</literal>. Por exemplo:"
+
+#. 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 ""
+"Uma alternativa é especificar a classe mapeada e permitir que o Hibernate "
+"encontre o documento de mapeamento para você:"
+
+#. 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 ""
+"O Hibernate procurará pelos arquivos de mapeamento chamados <literal>/org/"
+"hibernate/auction/Item.hbm.xml</literal> e <literal>/org/hibernate/auction/"
+"Bid.hbm.xml</literal> no classpath. Esta abordagem elimina qualquer nome de "
+"arquivo de difÃcil compreensão."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <classname>org.hibernate.cfg.Configuration</classname> also allows you to "
+"specify configuration properties. For example:"
+msgstr ""
+"Uma <literal>Configuration</literal> também permite que você especifique "
+"propriedades de configuração especÃfica. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is not the only way to pass configuration properties to Hibernate. Some "
+"alternative options include:"
+msgstr ""
+"Esta não é a única forma de passar as propriedades de configuração para o "
+"Hibernate. As várias opções incluem: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Pass an instance of <classname>java.util.Properties</classname> to "
+"<literal>Configuration.setProperties()</literal>."
+msgstr ""
+"Passar uma instância de <literal>java.util.Properties</literal> para "
+"<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 ""
+"Colocar <literal>hibernate.properties</literal> de arquivo nomeado no "
+"diretório raÃz do classpath."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Set <literal>System</literal> properties using <literal>java -"
+"Dproperty=value</literal>."
+msgstr ""
+"Determinar as propriedades do <literal>System</literal> usando <literal>java "
+"-Dproperty=value</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Include <literal><property></literal> elements in <literal>hibernate."
+"cfg.xml</literal> (this is discussed later)."
+msgstr ""
+"Incluir elementos <literal><property></literal> no <literal>hibernate."
+"cfg.xml</literal> (discutido mais tarde). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to get started quickly<filename>hibernate.properties</filename> "
+"is the easiest approach."
+msgstr ""
+"Caso você deseje inicializar rapidamente o <filename>hibernate.properties</"
+"filename> é a abordagem mais rápida."
+
+#. 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 ""
+"O <classname>org.hibernate.cfg.Configuration</classname> é previsto como um "
+"objeto de tempo de inicialização, a ser descartado quando um "
+"<literal>SessionFactory</literal> for criado."
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr "Obtendo uma SessionFactory"
+
+#. 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 "
+"<interfacename>org.hibernate.Session</interfacename> instances. This factory "
+"is intended to be shared by all application threads:"
+msgstr ""
+"Quando todos os mapeamentos forem analisados pelo <classname>org.hibernate."
+"cfg.Configuration</classname>, a aplicação deve obter uma factory para as "
+"instâncias do <interfacename>org.hibernate.Session</interfacename>. O "
+"objetivo desta factory é ser compartilhado por todas as threads da aplicação: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate does allow your application to instantiate more than one "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. This is useful "
+"if you are using more than one database."
+msgstr ""
+"O Hibernate permite sua aplicação instanciar mais do que um "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. Isto será útil "
+"se você estiver usando mais do que um banco de dados. "
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr "Conexões JDBC"
+
+#. 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 ""
+"Normalmente, você deseja que o <interfacename>org.hibernate.SessionFactory</"
+"interfacename> crie e faça um um pool de conexões JDBC para você. Se você "
+"seguir essa abordagem, a abertura de um <interfacename>org.hibernate."
+"Session</interfacename> será tão simples quanto:"
+
+#. 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 ""
+"Assim que você fizer algo que requeira o acesso ao banco de dados, uma "
+"conexão JDBC será obtida a partir do pool."
+
+#. 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 ""
+"Para esse trabalho, precisaremos passar algumas propriedades da conexão JDBC "
+"para o Hibernate. Todos os nomes de propriedades Hibernate e semânticas são "
+"definidas na classe <literal>org.hibernate.cfg.Environment</literal>. "
+"Descreveremos agora as configurações mais importantes para a conexão 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 ""
+"O Hibernate obterá conexões (e efetuará o pool) usando <literal>java.sql."
+"DriverManager</literal> se você determinar as seguintes propriedades: "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr "Propriedades JDBC Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr "Nome da Propriedade"
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr "Propósito"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "<property>hibernate.connection.driver_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "<emphasis>JDBC driver class</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr "<property>hibernate.connection.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr "<emphasis>JDBC URL</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr "<property>hibernate.connection.username</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "<emphasis>usuário de banco de dados</emphasis> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr "<property>hibernate.connection.password</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr "<emphasis>senha de usuário de banco de dados</emphasis> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "<property>hibernate.connection.pool_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "<emphasis>número máximo de conexões em pool</emphasis>"
+
+#. 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 ""
+"No entanto, o algoritmo de pool de conexões do próprio Hibernate é um tanto "
+"rudimentar. A intenção dele é ajudar a iniciar e <emphasis>não para ser "
+"usado em um sistema de produção</emphasis> ou até para testar o desempenho. "
+"Você deve utilizar um pool de terceiros para conseguir um melhor desempenho "
+"e estabilidade. Apenas substitua a propriedade <literal>hibernate.connection."
+"pool_size</literal> pela configuração especÃfica do pool de conexões. Isto "
+"irá desligar o pool interno do Hibernate. Por exemplo, você pode gostar de "
+"usar 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 ""
+"O C3P0 é um pool conexão JDBC de código aberto distribuÃdo junto com "
+"Hibernate no diretório <literal>lib</literal>. O Hibernate usará o próprio "
+"<classname>org.hibernate.connection.C3P0ConnectionProvider</classname> para "
+"o pool de conexão se você configurar a propriedade <literal>hibernate.c3p0."
+"*</literal>. Se você gostar de usar Proxool, consulte o pacote "
+"<literal>hibernate.properties</literal> e o web site do Hibernate para mais "
+"informações."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example <filename>hibernate.properties</filename> file "
+"for c3p0:"
+msgstr ""
+"Este é um exemplo de arquivo <literal>hibernate.properties</literal> para "
+"c3p0:"
+
+#. 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 ""
+"Para usar dentro de um servidor de aplicação, você deve configurar o "
+"Hibernate para obter conexões de um servidor de aplicação "
+"<interfacename>javax.sql.Datasource</interfacename> registrado no JNDI. Você "
+"precisará determinar pelo menos uma das seguintes propriedades:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr "Propriedades do Datasource do Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "<property>hibernate.connection.datasource</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "<emphasis>nome JNDI de fonte de dados</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "<property>hibernate.jndi.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr "<emphasis>URL do fornecedor JNDI</emphasis> (opcional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "<property>hibernate.jndi.class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<emphasis>class of the JNDI <literal>InitialContextFactory</literal></"
+"emphasis> (optional)"
+msgstr ""
+"<emphasis>classe de JNDI <literal>InitialContextFactory</literal></emphasis> "
+"(opcional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr "<emphasis>usuário de banco de dados</emphasis> (opcional)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr "<emphasis>senha de usuário de banco de dados</emphasis> (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example <filename>hibernate.properties</filename> file for an "
+"application server provided JNDI datasource:"
+msgstr ""
+"Eis um exemplo de arquivo <literal>hibernate.properties</literal> para um "
+"servidor de aplicação fornecedor de fontes de dados JNDI:"
+
+#. 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 ""
+"Conexões JDBC obtidas de um datasource JNDI irão automaticamente participar "
+"das transações gerenciadas pelo recipiente no servidor de aplicação."
+
+#. 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 ""
+"As propriedades de conexão arbitrárias podem ser acrescentandas ao "
+"\"<literal>hibernate.connnection</literal>\" ao nome da propriedade. Por "
+"exemplo, você deve especificar a propriedade de conexão <literal>charSet</"
+"literal> usando <property>hibernate.connection.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 ""
+"Você pode definir sua própria estratégia de plugin para obter conexões JDBC "
+"implementando a interface <literal>org.hibernate.connection."
+"ConnectionProvider</literal> e especificando sua implementação customizada "
+"através da propriedade <literal>hibernate.connection.provider_class</"
+"literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr "Propriedades opcionais de configuração"
+
+#. 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 ""
+"Há um grande número de outras propriedades que controlam o comportamento do "
+"Hibernate em tempo de execução. Todos são opcionais e têm valores padrão "
+"lógicos. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Some of these properties are \"system-level\" only.</emphasis> "
+"System-level properties can be set only via <literal>java -Dproperty=value</"
+"literal> or <filename>hibernate.properties</filename>. They "
+"<emphasis>cannot</emphasis> be set by the other techniques described above."
+msgstr ""
+"<emphasis>Algumas destas propriedades são somente em nÃvel de sistema.</emphasis>. As propriedades "
+"em nÃvel de sistema podem ser determinadas somente via <literal>java -"
+"Dproperty=value</literal> ou <literal>hibernate.properties</literal>. Elas "
+"<emphasis>não podem</emphasis> ser configuradas por outras técnicas "
+"descritas acima."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr "Propriedades de Configuração do Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr "<property>hibernate.dialect</property>"
+
+#. Tag: entry
+#, 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 ""
+"O nome da classe de um Hibernate <classname>org.hibernate.dialect.Dialect</"
+"classname> que permite o Hibernate gerar SQL otimizado para um banco de "
+"dados relacional em particular. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of."
+"Dialect</literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</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 ""
+"Na maioria dos casos, o Hibernate irá atualmente estar apto a escolher a "
+"implementação <classname>org.hibernate.dialect.Dialect</classname> correta "
+"baseada no <literal>JDBC metadata</literal> retornado pelo JDBC driver."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr "<property>hibernate.show_sql</property>"
+
+#. Tag: entry
+#, 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 ""
+"Escreve todas as instruções SQL no console. Esta é uma alternativa para "
+"configurar a categoria de log <literal>org.hibernate.SQL</literal> to "
+"<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\">e.g.</emphasis> <literal>true</literal> | "
+"<literal>false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr "<property>hibernate.format_sql</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr "Imprime o SQL formatado no log e recipiente. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr "<property>hibernate.default_schema</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Qualify unqualified table names with the given schema/tablespace in "
+"generated SQL."
+msgstr ""
+"Qualifica no SQL gerado, os nome das tabelas desqualificadas com o esquema/"
+"espaço da tabela dado."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>SCHEMA_NAME</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "<property>hibernate.default_catalog</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Qualifies unqualified table names with the given catalog in generated SQL."
+msgstr ""
+"Qualifica no SQL gerado, os nome das tabelas desqualificadas com catálogo "
+"dado."
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+msgstr "<emphasis role=\"strong\">e.g.</emphasis> <literal>CATALOG_NAME</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "<property>hibernate.session_factory_name</property>"
+
+#. Tag: entry
+#, 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 ""
+"O <interfacename>org.hibernate.SessionFactory</interfacename> irá "
+"automaticamente se ligar a este nome no JNDI depois de ter sido criado. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "<property>hibernate.max_fetch_depth</property>"
+
+#. Tag: entry
+#, 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 ""
+"Estabelece a \"profundidade\" máxima para árvore de busca de união externa "
+"para associações finais únicas (um para um, muitos para um). Um <literal>0</"
+"literal> desativa por padrão a busca de união externa. "
+
+#. 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\">eg.</emphasis> valores recomendados "
+"entre<literal>0</literal> e <literal>3</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "<property>hibernate.default_batch_fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr "Determina um tamanho padrão para busca de associações em lotes do Hibernate."
+
+#. 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\">eg.</emphasis> valores recomendados <literal>4</"
+"literal>, <literal>8</literal>, <literal>16</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "<property>hibernate.default_entity_mode</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Sets a default mode for entity representation for all sessions opened from "
+"this <literal>SessionFactory</literal>"
+msgstr ""
+"Determina um modo padrão para representação de entidade para todas as "
+"sessões abertas desta <literal>SessionFactory</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+msgstr ""
+"<literal>dynamic-map</literal>, <literal>dom4j</literal>, <literal>pojo</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr "<property>hibernate.order_updates</property>"
+
+#. Tag: entry
+#, 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 ""
+"Força o Hibernate a ordenar os updates SQL pelo valor da chave primária dos "
+"Ãtens a serem atualizados. Isto resultará em menos deadlocks nas transações "
+"em sistemas altamente concorrente. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "<property>hibernate.generate_statistics</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr ""
+"Se habilitado, o Hibernate coletará estatÃsticas úteis para o ajuste do "
+"desempenho. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "<property>hibernate.use_identifier_rollback</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If enabled, generated identifier properties will be reset to default values "
+"when objects are deleted."
+msgstr ""
+"Se habilitado, propriedades identificadoras geradas serão zeradas para os "
+"valores padrão quando os objetos forem apagados. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "<property>hibernate.use_sql_comments</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"If turned on, Hibernate will generate comments inside the SQL, for easier "
+"debugging, defaults to <literal>false</literal>."
+msgstr ""
+"Se ligado, o Hibernate irá gerar comentários dentro do SQL, para facilitar a "
+"depuração, o valor padrão é <literal>false</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr "JDBC Hibernate e Propriedades de Conexão"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "<property>hibernate.jdbc.fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A non-zero value determines the JDBC fetch size (calls <literal>Statement."
+"setFetchSize()</literal>)."
+msgstr ""
+"Um valor maior que zero determina o tamanho da buscado JDBC (chamadas "
+"<literal>Statement.setFetchSize()</literal>)."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "<property>hibernate.jdbc.batch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr ""
+"Um valor maior que zero habilita o uso das atualizações em lotes JDBC2 pelo "
+"Hibernate. "
+
+#. 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\">ex.</emphasis> valores recomentados entre "
+"<literal>5</literal> e <literal>30</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "<property>hibernate.jdbc.batch_versioned_data</property>"
+
+#. Tag: entry
+#, 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 ""
+"Configure esta propriedade como <literal>true</literal> se seu driver JDBC "
+"retornar o número correto de linhas no <literal>executeBatch()</literal>. "
+"Geralmente é seguro ligar opção. O Hibernate então usará o DML em lotes para "
+"dados automaticamente vertidos. Padronizar para <literal>false</literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "<property>hibernate.jdbc.factory_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Most applications will not need this configuration property."
+msgstr ""
+"Escolher um <interfacename>org.hibernate.jdbc.Batcher</interfacename>. "
+"Muitas aplicações não irão precisar desta propriedade de configuração."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis> <literal>classname.of."
+"BatcherFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+
+#. Tag: entry
+#, 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 ""
+"Habilita o uso dos resultados de ajustes roláveis do JDBC2 pelo Hibernate. "
+"Essa propriedade somente é necessária quando se usa Conexões JDBC providas "
+"pelo usuário. Do contrário, o Hibernate os os metadados da conexão. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "<property>hibernate.jdbc.use_streams_for_binary</property>"
+
+#. Tag: entry
+#, 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 ""
+"Utilize fluxos para escrever/ler tipos <literal>binary</literal> ou tipos "
+"<literal>serializable</literal> para/do JDBC. <emphasis>*system-level "
+"property*</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "<property>hibernate.jdbc.use_get_generated_keys</property>"
+
+#. Tag: entry
+#, 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 ""
+"Possibilita o uso do <literal>PreparedStatement.getGeneratedKeys()</literal> "
+"JDBC3 para recuperar chaves geradas de forma nativa depois da inserção. "
+"Requer driver JDBC3+ e JRE1.4+, ajuste para falso se seu driver tiver "
+"problemas com gerador de indentificadores Hibernate. Por padrão, tente "
+"determinar o driver capaz de usar metadados da conexão. "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
+msgstr "<emphasis role=\"strong\">exemplo</emphasis> <literal>true|false</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "<property>hibernate.connection.provider_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename> which provides JDBC connections to "
+"Hibernate."
+msgstr ""
+"O nome da classe de um <interfacename>org.hibernate.connection."
+"ConnectionProvider</interfacename>, do qual proverá conexões JDBC para o "
+"Hibernate. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"ConnectionProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis><literal>classname.of."
+"ConnectionProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "<property>hibernate.connection.isolation</property>"
+
+#. Tag: entry
+#, 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 ""
+"Determina o nÃvel de isolamento de uma transação JDBC. Verifique "
+"<literal>java.sql.Connection</literal> para valores significativos mas note "
+"que a maior parte dos bancos de dados não suportam todos os isolamentos que "
+"não são padrões. "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>1, 2, 4, 8</literal>"
+msgstr "<emphasis role=\"strong\">exemplo</emphasis> <literal>1, 2, 4, 8</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "<property>hibernate.connection.autocommit</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr "Habilita o auto-commit para conexões no pool JDBC (não recomendado). "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "<property>hibernate.connection.release_mode</property>"
+
+#. Tag: entry
+#, 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 ""
+"Especifica quando o Hibernate deve liberar conexões JDBC. Por padrão, uma "
+"conexão JDBC é retida até a sessão estar explicitamente fechada ou "
+"desconectada. Para uma fonte de dados JTA do servidor de aplicação, você "
+"deve usar <literal>after_statement</literal> para forçar a liberação da "
+"conexões depois de todas as chamadas JDBC. Para uma conexão não-JTA, "
+"freqüentemente faz sentido liberar a conexão ao fim de cada transação, "
+"usando <literal>after_transaction</literal>. O <literal>auto</literal> "
+"escolherá <literal>after_statement</literal> para as estratégias de "
+"transaçãoes JTA e CMT e <literal>after_transaction</literal> para as "
+"estratégias de transação JDBC."
+
+#. 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\">exemplo</emphasis> <literal>auto</literal> "
+"(padrão) | <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 ""
+"Note que esta configuração somente afeta as <literal>Session</literal>s "
+"retornadas da <literal>SessionFactory.openSession</literal>. Para as "
+"<literal>Session</literal>s obtidas através da <literal>SessionFactory."
+"getCurrentSession</literal>, a implementação <literal>CurrentSessionContext</"
+"literal> configurada para uso, controla o modo de liberação de conexão para "
+"estas <literal>Session</literal>s. Consulte <xref linkend=\"architecture-"
+"current-session\" />"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+msgstr ""
+"<property>hibernate.connection.</property><emphasis><propertyName></"
+"emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the JDBC property <emphasis><propertyName></emphasis> to "
+"<literal>DriverManager.getConnection()</literal>."
+msgstr ""
+"Passar a propriedade JDBC <emphasis><propertyName></emphasis> para "
+"<literal>DriverManager.getConnection()</literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Pass the property <emphasis><propertyName></emphasis> to the JNDI "
+"<literal>InitialContextFactory</literal>."
+msgstr ""
+"Passar a propriedade <emphasis><propertyName></emphasis> para o JNDI "
+"<literal>InitialContextFactory</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr "Propriedades de Cachê do Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "<literal>hibernate.cache.provider_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr "O nome da classe de um <literal>CacheProvider</literal> personalizado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"CacheProvider</literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis> <literal>classname.of."
+"CacheProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "<literal>hibernate.cache.use_minimal_puts</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Otimizar operação de cachê de segundo nÃvel para minimizar escritas, ao "
+"custo de leituras mais freqüentes. Esta configuração é mais útil para cachês "
+"em cluster e, no Hibernate3, é habilitado por padrão para implementações de "
+"cache em cluster. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "<literal>hibernate.cache.use_query_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables the query cache. Individual queries still have to be set cachable."
+msgstr ""
+"Habilita a cache de consultas. Mesmo assim, consultas individuais ainda têm "
+"que ser habilitadas para o cache."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "<literal>hibernate.cache.use_second_level_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Can be used to completely disable the second level cache, which is enabled "
+"by default for classes which specify a <literal><cache></literal> "
+"mapping."
+msgstr ""
+"Pode ser utilizado para desabilitar completamente o cache de segundo nÃvel, "
+"o qual é habilitado por padrão para as classes que especificam um mapeamento "
+"<literal><cache></literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "<literal>hibernate.cache.query_cache_factory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"The classname of a custom <literal>QueryCache</literal> interface, defaults "
+"to the built-in <literal>StandardQueryCache</literal>."
+msgstr ""
+"O nome de classe de uma interface personalizada <literal>QueryCache</"
+"literal>, padroniza para o <literal>StandardQueryCache</literal> criado "
+"automaticamente. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</"
+"literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis> <literal>classname.of."
+"QueryCache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "<literal>hibernate.cache.region_prefix</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr "Um prefixo para usar em nomes regionais de cachê de segundo nÃvel"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+msgstr "<emphasis role=\"strong\">exemplo</emphasis> <literal>prefix</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "<literal>hibernate.cache.use_structured_entries</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Forces Hibernate to store data in the second-level cache in a more human-"
+"friendly format."
+msgstr ""
+"Força o Hibernate a armazenar dados no cachê de segundo nÃvel em um formato "
+"mais humanamente amigável."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr "Propriedades de Transação do Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "<literal>hibernate.transaction.factory_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"O nome da classe de uma <literal>TransactionFactory</literal> para usar com "
+"API do Hibernate <literal>Transaction</literal> ( por "
+"padrão<literal>JDBCTransactionFactory</literal> ). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionFactory</literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis> <literal>classname.of."
+"TransactionFactory</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "<literal>jta.UserTransaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the "
+"JTA <literal>UserTransaction</literal> from the application server."
+msgstr ""
+"Um nome JNDI usado pelo <literal>JTATransactionFactory</literal>para obter "
+"uma <literal>UserTransaction</literal> JTA a partir do servidor de "
+"aplicação. "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr "<literal>hibernate.transaction.manager_lookup_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"O nome da classe de um <literal>TransactionManagerLookup</literal>. Ele é "
+"requerido quando o caching a nÃvel JVM estiver habilitado ou quando "
+"estivermos usando um gerador hilo em um ambiente JTA. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis> <literal>classname.of."
+"TransactionManagerLookup</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr "<literal>hibernate.transaction.flush_before_completion</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Se habilitada, a sessão será automaticamente liberada antes da fase de "
+"conclusão da transação. Prefere-se o gerenciamento de contexto da sessão "
+"criada e automática, veja <xref linkend=\"architecture-current-session\" />."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr "<literal>hibernate.transaction.auto_close_session</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Se habilitada, a sessão será automaticamente fechada após a fase de "
+"conclusão da transação. Prefere-se a gerência interna e automática do "
+"contexto da sessão, veja <xref linkend=\"architecture-current-session\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr "Propriedades Variadas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr "<literal>hibernate.current_session_context_class</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Fornece uma estratégia personalizada para extensão da <literal>Session</"
+"literal>\"atual\". Veja <xref linkend=\"architecture-current-session\" /> "
+"para mais informação sobre estratégias internas. "
+
+#. 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\">exemplo</emphasis> <literal>jta</literal> | "
+"<literal>thread</literal> | <literal>managed</literal> | <literal>custom."
+"Class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "<literal>hibernate.query.factory_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr "Escolha a implementação de análise HQL. "
+
+#. 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\">exemplo</emphasis> <literal>org.hibernate.hql.ast. "
+"ASTQueryTranslatorFactory</literal> ou <literal>org.hibernate.hql.classic. "
+"ClassicQueryTranslatorFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "<literal>hibernate.query.substitutions</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Mapeamento a partir de sÃmbolos em consultas do Hibernate para para sÃmbolos "
+"SQL (sÃmbolos devem ser por exemplo, funções ou nome literais). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, "
+"hqlFunction=SQLFUNC</literal>"
+msgstr ""
+"<emphasis role=\"strong\">exemplo</emphasis> "
+"<literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "<literal>hibernate.hbm2ddl.auto</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Automaticamente valida ou exporta DDL esquema para o banco de dados quando o "
+"<literal>SessionFactory</literal> é criado. Com <literal>create-drop</"
+"literal>, o esquema do banco de dados será excluido quando a "
+"<literal>SessionFactory</literal> for fechada explicitamente. "
+
+#. 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\">exemplo</emphasis> <literal>validate</literal> | "
+"<literal>update</literal> | <literal>create</literal> | <literal>create-"
+"drop</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+
+#. Tag: entry
+#, 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 ""
+"Habilita o uso de CGLIB ao invés de reflexão em tempo de execução "
+"(propriedade a nÃvel de sistema). Reflexão pode algumas vezes ser útil "
+"quando controlar erros, note que o Hibernate sempre irá solicitar a CGLIB "
+"mesmo se você desligar o otimizador. Você não pode determinar esta "
+"propriedade no <literal>hibernate.cfg.xml</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "SQL Dialects"
+msgstr "Dialetos SQL"
+
+#. 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 ""
+"Você deve sempre determinar a propriedade <literal>hibernate.dialect</"
+"literal> para a subclasse de <literal>org.hibernate.dialect.Dialect</"
+"literal> correta de seu banco de dados. Se você especificar um dialeto, o "
+"Hibernate usará padrões lógicos para qualquer um das outras propriedades "
+"listadas abaixo, reduzindo o esforço de especificá-los manualmente."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr "Dialetos SQL do Hibernate (<literal>hibernate.dialect</literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr "RDBMS"
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialeto"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr "DB2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr "DB2 AS/400"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr "DB2 OS390"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr "Meu SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr "MeuSQL com InnoDB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr "Meu SQL com MeuISAM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr "Oracle (qualquer versão)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.OracleDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 9i"
+msgstr "Oracle 9i"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 10g"
+msgstr "Oracle 10g"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr "Sybase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr "Sybase Qualquer lugar"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr "Servidor Microsoft SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr "SAP DB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr "Informix"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InformixDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr "HypersonicSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr "Ingres"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.IngresDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr "Progresso"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr "Mckoi SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr "Interbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr "Base Ponto"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr "Base Frontal"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr "Firebird"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr "Busca por união externa (Outer Join Fetching)"
+
+#. 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 ""
+"Se seu banco de dados suporta união externa no estilo ANSI, Oracle ou "
+"Sybase, a <emphasis>outer join fetching</emphasis> freqüentemente aumentará "
+"o desempenho limitando o número de chamadas (round trips) para e a partir do "
+"banco de dados. No entanto, isto ao custo de possivelmente mais trabalho "
+"desempenhado pelo próprio banco de dados. A busca por união externa (outer "
+"join fetching) permite um gráfico completo de objetos conectados por "
+"associações muitos-para-um, um-para-muitos, muitos-para-muitos e um-para-um "
+"para serem recuperadas em uma simples instrução SQL <literal>SELECT</"
+"literal>."
+
+#. 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 ""
+"A busca por união externa pode ser desabilitada <emphasis>globalmente</"
+"emphasis> configurando a propriedade <literal>hibernate.max_fetch_depth</"
+"literal> para <literal>0</literal>. Um valor <literal>1</literal> ou maior "
+"habilita a busca por união externa para associações um-para-um e muitos-para-"
+"um, cujos quais têm sido mapeados com <literal>fetch=\"join\"</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "Veja <xref linkend=\"performance-fetching\" /> para mais informações."
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr "Fluxos Binários (Binary Streams)"
+
+#. 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 ""
+"O Oracle limita o tamanho de matrizes de <literal>byte</literal> que podem "
+"ser passadas para/do driver JDBC. Se você desejar usar grandes instâncias de "
+"tipos <literal>binary</literal> ou <literal>serializable</literal>, você "
+"deve habilitar <literal>hibernate.jdbc.use_streams_for_binary</literal>. "
+"<emphasis>Essa é uma configuração que só pode ser feita em nÃvel de sistema."
+"</emphasis> "
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr "Cachê de segundo nÃvel e consulta"
+
+#. 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 ""
+"As propriedades pré-fixadas pelo <literal>hibernate.cache</literal> permitem "
+"que você use um sistema de cache de segundo nÃvel em um processo executado "
+"ou em cluster com Hibernate. Veja <xref linkend=\"performance-cache\"/> para "
+"maiores detalhes. "
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr "Substituição na Linguagem de Consulta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can define new Hibernate query tokens using <literal>hibernate.query."
+"substitutions</literal>. For example:"
+msgstr ""
+"Você pode definir novos sÃmbolos de consulta Hibernate usando "
+"<literal>hibernate.query.substitutions</literal>. Por exemplo: "
+
+#. 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 ""
+"Isto faria com que os sÃmbolos <literal>true</literal> e <literal>false</"
+"literal> passasem a ser traduzidos para literais inteiros no SQL gerado."
+
+#. Tag: para
+#, no-c-format
+msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr "Isto permitirá que você renomeie a função <literal>LOWER</literal> no SQL."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr "EstatÃsticas do Hibernate"
+
+#. 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 ""
+"Se você habilitar <literal>hibernate.generate_statistics</literal>, o "
+"Hibernate exibirá um número de métricas bastante útil ao ajustar um sistema "
+"via <literal>SessionFactory.getStatistics()</literal>. O Hibernate pode até "
+"ser configurado para exibir essas estatÃsticas via JMX. Leia o Javadoc da "
+"interface <literal>org.hibernate.stats</literal> para mais informações."
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr "Logging"
+
+#. 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 ""
+"O Hibernate utiliza o <ulink url=\"http://www.slf4j.org/\">Simple Logging "
+"Facade for Java</ulink> (SLF4J) com o objetivo de registrar os diversos "
+"eventos de sistema. O SLF4J pode direcionar a sua saÃda de logging a "
+"diversos frameworks de logging (NOP, Simple, log4j version 1.2, JDK 1.4 "
+"logging, JCL ou logback) dependendo de sua escolha de vinculação. Com o "
+"objetivo de determinar o seu logging, você precisará do <filename>slf4j-api."
+"jar</filename> em seu classpatch juntamente com o arquivo jar para a sua "
+"vinculação preferida - <filename>slf4j-log4j12.jar</filename> no caso do "
+"Log4J. Consulte o SLF4J <ulink url=\"http://www.slf4j.org/manual.html"
+"\">documentation</ulink> para maiores detalhes. Para usar o Log4j você "
+"precisará também colocar um arquivo <filename>log4j.properties</filename> em "
+"seu classpath. Um exemplo do arquivo de propriedades está distribuÃdo com o "
+"Hibernate no diretório <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 ""
+"Nós recomendamos que você se familiarize-se com mensagens de log do "
+"Hibernate. Tem sido um árduo trabalho fazer o log Hibernate tão detalhado "
+"quanto possÃvel, sem fazê-lo ilegÃvel. à um dispositivo de controle de erros "
+"essencial. As categorias de log mais interessantes são as seguintes:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr "Categorias de Log do Hibernate"
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr "Categoria"
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr "Função"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "<literal>org.hibernate.SQL</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr "Registra todas as instruções SQL DML a medida que elas são executadas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "<literal>org.hibernate.type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr "Registra todos os parâmetros JDBC"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr "<literal>org.hibernate.tool.hbm2ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr "Registra todas as instruções SQL DDL a medida que elas são executadas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "<literal>org.hibernate.pretty</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log the state of all entities (max 20 entities) associated with the session "
+"at flush time"
+msgstr ""
+"Registra o estado de todas as entidades (máximo 20 entidades) associadas à "
+"sessão no momento da liberação (flush)."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "<literal>org.hibernate.cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr "Registra todas as atividades de cachê de segundo nÃvel"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr "<literal>org.hibernate.transaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr "Registra atividades relacionada à transação"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "<literal>org.hibernate.jdbc</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr "Registra todas as requisições de recursos JDBC"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr "<literal>org.hibernate.hql.ast.AST</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr "Registra instruções SQL e HQL durante a análise da consultas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "<literal>org.hibernate.secure</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr "Registra todas as requisições de autorização JAAS"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "<literal>org.hibernate</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"Log everything. This is a lot of information but it is useful for "
+"troubleshooting"
+msgstr ""
+"Registra tudo. Apesar de ter muita informação, é muito útil para o problema "
+"de inicialização."
+
+#. 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 ""
+"Ao desenvolver aplicações com Hibernate, você deve quase sempre trabalhar "
+"com o depurador <literal>debug</literal> habilitado para a categoria "
+"<literal>org.hibernate.SQL</literal>, ou, alternativamente, com a "
+"propriedade <literal>hibernate.show_sql</literal> habilitada."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr "Implementando um <literal>NamingStrategy</literal>"
+
+#. 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 ""
+"A interface <literal>org.hibernate.cfg.NamingStrategy</literal> permite que "
+"você especifique um \"padrão de nomeação\" para objetos do banco de dados e "
+"elementos de esquema."
+
+#. 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 ""
+"Você deve criar regras para a geração automaticamente de identificadores do "
+"banco de dados a partir de identificadores Java ou para processar colunas "
+"\"lógicas\" e nomes de tabelas dado o arquivo de mapeamento para nomes "
+"\"fÃsicos\" de tabelas e colunas. Este recurso ajuda a reduzir a verbosidade "
+"do documento de mapeamento, eliminando interferências repetitivas "
+"(<literal>TBL_</literal> prefixos, por exemplo). A estratégia padrão usada "
+"pelo Hibernate é bastante mÃnima. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can specify a different strategy by calling <literal>Configuration."
+"setNamingStrategy()</literal> before adding mappings:"
+msgstr ""
+"Você pode especificar uma estratégia diferente ao chamar "
+"<literal>Configuration.setNamingStrategy()</literal> antes de adicionar os "
+"mapeamentos: "
+
+#. 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> é uma estratégia "
+"interna que pode ser um ponto inicial útil para algumas aplicações."
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr "Arquivo de configuração XML"
+
+#. 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 ""
+"Uma maneira alternativa de configuração é especificar uma configuração "
+"completa em um arquivo chamado <literal>hibernate.cfg.xml</literal>. Este "
+"arquivo pode ser usado como um substituto para o arquivo <literal>hibernate."
+"properties</literal> ou, se ambos estiverem presentes, para substituir "
+"propriedades."
+
+#. 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 ""
+"O arquivo XML de configuração deve ser encontrado na raÃz do seu "
+"<literal>CLASSPATH</literal>. Veja um exemplo: "
+
+#. 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 ""
+"Como você pode ver, a vantagem deste enfoque é a externalização dos nomes "
+"dos arquivos de mapeamento para configuração. O <literal>hibernate.cfg.xml</"
+"literal> também é mais conveniente caso você tenha que ajustar o cache do "
+"Hibernate. Note que a escolha é sua em usar <literal>hibernate.properties</"
+"literal> ou <literal>hibernate.cfg.xml</literal>, ambos são equivalentes, "
+"exceto os acima mencionados de usar a sintaxe de XML. "
+
+#. Tag: para
+#, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr "Com a configuração do XML, iniciar o Hibernate é então tão simples quanto: "
+
+#. Tag: para
+#, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr "Você poderá escolher um arquivo de configuração XML diferente, utilizando:"
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr "Integração com servidores de aplicação J2EE"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr ""
+"O Hibernate tem os seguintes pontos da integração para a infraestrutura de "
+"J2EE:"
+
+#. 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>DataSources gerenciados pelo container</emphasis>: O Hibernate "
+"pode usar conexões JDBC gerenciadas pelo Container e fornecidas pela JNDI. "
+"Geralmente, um <literal>TransactionManager</literal> compatÃvel com JTA e um "
+"<literal>ResourceManager</literal> cuidam do gerenciamento da transação "
+"(CMT), especialmente em transações distribuÃdas, manipuladas através de "
+"vários DataSources. Naturalmente, você também pode demarcar os limites das "
+"transações programaticamente (BMT) ou você poderia querer usar a API "
+"opcional do Hibernate <literal>Transaction</literal> para esta manter seu "
+"código portável. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Automatic JNDI binding</emphasis>: Hibernate can bind its "
+"<literal>SessionFactory</literal> to JNDI after startup."
+msgstr ""
+"<emphasis>Vinculação (binding) automática à JNDI</emphasis>: O Hibernate "
+"pode associar sua <literal>SessionFactory</literal> a JNDI depois de "
+"iniciado."
+
+#. 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>Vinculação (binding) da Sessão na JTA:</emphasis> A "
+"<literal>Session</literal> do Hibernate pode automaticamente ser ligada ao "
+"escopo da transações JTA. Simplesmente localizando a "
+"<literal>SessionFactory</literal> da JNDI e obtendo a <literal>Session</"
+"literal> corrente. Deixe o Hibernate cuidar da liberação e encerramento da "
+"<literal>Session</literal> quando as transações JTA terminarem. A Demarcação "
+"de transação pode ser declarativa (CMT) ou programática (BMT/Transação do "
+"usuário)."
+
+#. 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 deployment:</emphasis> Se você usa um JMX servidor de "
+"aplicações capaz (ex. Jboss AS), você pode fazer a instalação do Hibernate "
+"como um MBean controlado. Isto evita ter que iniciar uma linha de código "
+"para construir sua <literal>SessionFactory</literal> de uma "
+"<literal>Configuration</literal>. O container iniciará seu "
+"<literal>HibernateService</literal>, e também cuidará das dependências de "
+"serviços (DataSources, têm que estar disponÃveis antes do Hibernate iniciar, "
+"etc.). "
+
+#. 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 ""
+"Dependendo do seu ambiente, você pode ter que ajustar a opção de "
+"configuração <literal>hibernate.connection.aggressive_release</literal> para "
+"verdadeiro ( true ), se seu servidor de aplicações lançar exeções \"retenção "
+"de conexão\"."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr "Configuração de estratégia de transação"
+
+#. 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 ""
+"A API Hibernate <literal>Session</literal> é independente de qualquer "
+"sistema de demarcação de transação em sua arquitetura. Se você deixar o "
+"Hibernate usar a JDBC diretamente, através de um pool de conexões, você pode "
+"inicializar e encerrar suas transações chamando a API JDBC. Se você rodar em "
+"um servidor de aplicações J2EE, você poderá usar transações controladas por "
+"beans e chamar a API JTA e <literal>UserTransaction</literal> quando "
+"necessário. "
+
+#. 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 ""
+"Para manter seu código portável entre estes dois (e outros) ambientes, "
+"recomendamos a API Hibernate <literal>Transaction</literal>, que envolve e "
+"esconde o sistema subjacente. Você tem que especificar uma classe "
+"construtora para instâncias <literal>Transaction</literal> ajustando a "
+"propriedade de configuração do <literal>hibernate.transaction.factory_class</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr "Existem três escolhas, ou internas, padrões: "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr "delega as transações (JDBC) para bases de dados (Padrão)"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+
+#. 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 ""
+"delega para uma transação à um container gerenciado se uma transação "
+"existente estiver de acordo neste contexto (ex: método bean de sessão EJB). "
+"No entanto, uma nova transação será iniciada e serão usadas transações "
+"controladas por um bean."
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr "delega para um container gerenciador de transações JTA"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also define your own transaction strategies (for a CORBA transaction "
+"service, for example)."
+msgstr ""
+"Você também pode definir suas próprias estratégias de transação (para um "
+"serviço de transação CORBA, por exemplo)."
+
+#. 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 ""
+"Algumas caracterÃsticas no Hibernate (ex., o cache de segundo nÃvel, sessões "
+"contextuais com JTA, etc.) requerem acesso a JTA "
+"<literal>TransactionManager</literal> em um ambiente controlado. Em um "
+"servidor de aplicação você tem que especificar como o Hibernate pode obter "
+"uma referência para a <literal>TransactionManager</literal>, pois o J2EE não "
+"padroniza um mecanismo simples:"
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr "Gerenciadores de transações JTA"
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr "Factory de Transação"
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr "Servidor de Aplicação"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr "JBoss"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr "Weblogic"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr "WebSphere"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+msgstr ""
+"<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</"
+"literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr "WebSphere 6"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr "Orion"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr "Resin"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr "JOTM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr "JOnAS"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr "JRun4"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr "Borland ES"
+
+#. Tag: title
+#, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr "<literal>SessionFactory</literal> vinculada à JNDI"
+
+#. 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 ""
+"Uma <literal>SessionFactory</literal> de Hibernate vinculada à JNDI pode "
+"simplificar a localização da fábrica e a criação de novas <literal>Session</"
+"literal>s. Observe que isto não está relacionado a um <literal>Datasource</"
+"literal> ligado a JNDI, simplesmente ambos usam o mesmo registro."
+
+#. 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 ""
+"Se você desejar ter uma <literal>SessionFactory</literal> limitada a um nome "
+"de espaço de JNDI, especifique um nome (ex.: <literal>java:hibernate/"
+"SessionFactory</literal>) usando a propriedade <literal>hibernate."
+"session_factory_name</literal>. Se esta propriedade for omitida, a "
+"<literal>SessionFactory</literal> não será limitada ao JNDI. Isto é muito "
+"útil em ambientes com uma implementação padrão JNDI de somente leitura (ex.: "
+"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 ""
+"Ao vincular a <literal>SessionFactory</literal> ao JNDI, o Hibernate irá "
+"utilizar os valores de <literal>hibernate.jndi.url</literal>, "
+"<literal>hibernate.jndi.class</literal> para instanciar um contexto inicial. "
+"Se eles não forem especificados, será usado o padrão "
+"<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 ""
+"O Hibernate colocará automaticamente a <literal>SessionFactory</literal> no "
+"JNDI depois que você chamar a <literal>cfg.buildSessionFactory()</literal>. "
+"Isto significa que você terá esta chamada em pelo menos algum código de "
+"inicialização (ou classe de utilidade) em seu aplicativo, a não ser que você "
+"use a implementação JMX com o <literal>HibernateService</literal> (discutido "
+"mais tarde). "
+
+#. 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 ""
+"Se você usar um JNDI <literal>SessionFactory</literal>, o EJB ou qualquer "
+"outra classe obterá a <literal>SessionFactory</literal> utilizando um "
+"localizador JNDI."
+
+#. 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—see chapter 1."
+msgstr ""
+"Recomendamos que você vincule a <literal>SessionFactory</literal> ao JNDI em "
+"um ambiente gerenciado e utilize um singleton <literal>static</literal>. "
+"Para proteger seu código de aplicativo destes detalhes, também recomendamos "
+"que esconda o código de localização atual para uma <literal>SessionFactory</"
+"literal> em uma classe de ajuda, assim como o <literal>HibernateUtil."
+"getSessionFactory()</literal>. Note que tal classe é também uma forma "
+"bastante conveniente de inicializar o Hibernate— veja o capÃtulo 1."
+
+#. Tag: title
+#, no-c-format
+msgid "Current Session context management with JTA"
+msgstr "Gerenciamento de contexto de Sessão atual com JTA"
+
+#. 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 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 ""
+"A maneira mais fácil de manusear as <literal>Session</literal> e transações "
+"é com o gerenciamento automático do Hibernates \"atual\" <literal>Session</"
+"literal>. Veja a discussão do <xref linkend=\"architecture-current-session\"/"
+">. Utilizando o contexto da sessão <literal>\"jta\"</literal>, caso não haja "
+"uma <literal>Session</literal> do Hibernate associada com a transação atual "
+"do JTA, uma será iniciada e associada à transação JTA na primeira vez que "
+"você chamar a <literal>sessionFactory.getCurrentSession()</literal>. As "
+"<literal>Session</literal>s recuperadas através do contexto "
+"<literal>getCurrentSession()</literal> em <literal>\"jta\"</literal> serão "
+"ajustadas para liberar automaticamente antes que a transação se complete, e "
+"fechada após a transação se complete e liberar instantaneamente as conexões "
+"JDBC após cada instrução. Isto permitirá que as <literal>Session</literal>s "
+"sejam gerenciadas pelo ciclo de vida da transação JTA para as quais estão "
+"associadas, mantendo o código do usuário limpo de tais preocupações de "
+"gerenciamento. Seu código pode tanto utilizar um JTA programaticamente "
+"através do <literal>UserTransaction</literal>, ou (recomendado para códigos "
+"portáveis) use o API <literal>Transaction</literal> do Hibernate para "
+"ajustar as limitações das transações. Se você rodar em um recipiente EJB, "
+"prefira uma demarcação de transação declarativa com CMT. "
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr "implementação JMX "
+
+#. 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 ""
+"A linha <literal>cfg.buildSessionFactory()</literal> ainda precisa ser "
+"executada em algum local para conseguir uma <literal>SessionFactory</"
+"literal> em JNDI. Você pode escolher fazer isto em um bloqueio de "
+"inicializador <literal>static</literal>, como aquele em "
+"<literal>HibernateUtil</literal>, ou implementar o Hibernate como "
+"<emphasis>serviço gerenciado</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 ""
+"O Hibernate é distribuÃdo com o <literal>org.hibernate.jmx.HibernateService</"
+"literal> para implementação em um servidor de aplicativo com capacidades "
+"JMX, tal como o JBoss AS. A implementação atual e configuração é comercial. "
+"Segue aqui um exemplo do <literal>jboss-service.xml</literal> para o JBoss "
+"4.0.x:"
+
+#. 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 ""
+"Este arquivo é implementado em um diretório chamado <literal>META-INF</"
+"literal> e envolto em um arquivo JAR com a extensão <literal>.sar</literal> "
+"(arquivo de serviço). Você também pode precisar envolver o Hibernate, suas "
+"bibliotecas de terceiros solicitadas, suas classes persistentes compiladas, "
+"assim como seus arquivos de mapeamento no mesmo arquivo. Seus beans de "
+"empresa (geralmente beans de sessão) podem ser mantidos em seus próprios "
+"arquivos JAR, mas você poderá incluir estes arquivos EJB JAR no arquivo de "
+"serviço principal para conseguir uma única unidade de (hot)-deployable. "
+"Consulte a documentação do JBoss AS para maiores informações sobre o serviço "
+"JMX e implementação EJB. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/events.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/events.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/events.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,663 @@
+# translation of events.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: events\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr "Interceptadores e Eventos"
+
+#. Tag: para
+#, 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 ""
+"à muito útil quando a aplicação precisa reagir a certos eventos que ocorrem "
+"dentro do Hibernate. Isso permite a implementação de certas funções "
+"genéricas, assim como permite estender as funcionalidades do Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors"
+msgstr "Interceptadores"
+
+#. Tag: para
+#, 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 ""
+"A interface <literal>Interceptor</literal> permite fornecer informações da "
+"sessão para o aplicativo, permitindo que o aplicativo inspecione e/ou "
+"manipule as propriedades de um objeto persistente antes de ser salvo, "
+"atualizado, excluÃdo ou salvo. Pode ser usado para gerar informações de "
+"auditoria. Por exemplo, o seguinte <literal>Interceptor</literal> ajusta a "
+"função automaticamente <literal>createTimestamp</literal> quando um "
+"<literal>Auditable</literal> é criado e atualiza a função "
+"<literal>lastUpdateTimestamp</literal> quando um <literal>Auditable</"
+"literal> é atualizado. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can either implement <literal>Interceptor</literal> directly or extend "
+"<literal>EmptyInterceptor</literal>."
+msgstr ""
+"Você pode implementar <literal>Interceptor</literal> diretamente ou pode "
+"estender <literal>EmptyInterceptor</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"Os interceptadores se apresentam de duas formas: <literal>Session</literal>-"
+"scoped e <literal>SessionFactory</literal>-scoped."
+
+#. Tag: para
+#, 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 ""
+"Um interceptador delimitado da <literal>Session</literal>, é definido quando "
+"uma sessão é aberta usando o método sobrecarregado da SessionFactory."
+"openSession() que aceita um <literal>Interceptor</literal> como parâmetro."
+
+#. Tag: para
+#, 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 ""
+"Um interceptador da <literal>SessionFactory</literal>-scoped é definido no "
+"objeto <literal>Configuration</literal> antes da <literal>SessionFactory</"
+"literal> ser instanciada. Nesse caso, o interceptador fornecido será "
+"aplicado para todas as sessões abertas por aquela <literal>SessionFactory</"
+"literal>; Isso apenas não ocorrerá caso seja especificado um interceptador "
+"no momento em que a sessão for aberta. Um interceptador no escopo de "
+"<literal>SessionFactory</literal> deve ser thread safe. Cetifique-se de não "
+"armazenar funções de estado especÃficos da sessão, pois, provavelmente, "
+"múltiplas sessões irão utilizar esse interceptador simultaneamente."
+
+#. Tag: title
+#, no-c-format
+msgid "Event system"
+msgstr "Sistema de Eventos"
+
+#. Tag: para
+#, 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 ""
+"Se você precisar executar uma ação em determinados eventos da camada de "
+"persistência, você também pode usar a arquitetura de <emphasis>event</"
+"emphasis> do Hibernate3. Um evento do sistema pode ser utilizado como "
+"complemento ou em substituição a um interceptador. "
+
+#. Tag: para
+#, 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 ""
+"Essencialmente todos os métodos da interface <literal>Session</literal> "
+"possuem um evento correlacionado. Se você tiver um <literal>LoadEvent</"
+"literal>, um <literal>LoadEvent</literal>, etc. Consulte o DTD do XML de "
+"arquivo deconfiguração ou o pacote <literal>org.hibernate.event</literal> "
+"para a lista completa dos tipos de eventos). Quando uma requisição é feita "
+"em um desses métodos, a <literal>Session</literal> do hibernate gera um "
+"evento apropriado e o envia para o listener de evento correspondente àquele "
+"tipo de evento. Esses listeners implementam a mesma lógica que aqueles "
+"métodos, trazendo os mesmos resultados. Entretanto, você é livre para "
+"implementar uma customização de um desses listeners (isto é, o "
+"<literal>LoadEvent</literal> é processado pela implementação registrada da "
+"interface <literal>LoadEventListener</literal>), então sua implementação vai "
+"ficar responsável por processar qualquer requisição <literal>load()</"
+"literal> feita pela <literal>Session</literal>."
+
+#. Tag: para
+#, 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 ""
+"Para todos os efeitos esses listeners devem ser considerados singletons. "
+"Isto significa que eles são compartilhados entre as requisições, e assim "
+"sendo, não devem salvar nenhum estado das variáveis instanciadas."
+
+#. Tag: para
+#, 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 ""
+"Um listener personalizado deve implementar a interface referente ao evento a "
+"ser processado e/ou deve estender a classes base equivalentes (ou mesmo os "
+"listeners padrões usados pelo Hibernate, eles não são declarados como finais "
+"com esse objetivo). O listener personalizado pode ser registrado "
+"programaticamente no objeto <literal>Configuration</literal>, ou "
+"declarativamente no XML de configuração do Hibernate especificado. A "
+"configuração declarativa através do arquivo de propriedades não é suportado. "
+"Aqui temos um exemplo de como carregar um listener personalizado:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"Você também precisa adicionar uma entrada no XML de configuração do "
+"Hibernate para registrar declarativamente qual listener deve se utilizado em "
+"conjunto com o listener padrão:"
+
+#. Tag: para
+#, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr "Ou, você pode registrar o listener programaticamente: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal><listener/></literal> elements, each "
+"reference will result in a separate instance of that class. If you need to "
+"share listener instances between listener types you must use the "
+"programmatic registration approach."
+msgstr ""
+"Listeners registrados declarativamente não compartilham da mesma instância. "
+"Se o mesmo nome da classe for utilizado em vários elementos <literal><"
+"listener/></literal>, cada um resultará em uma instância separada dessa "
+"classe. Se você tem a necessidade de compartilhar uma instância de um "
+"listener entre diversos tipos de listeners você deve registrar o listener "
+"programaticamente. "
+
+#. Tag: para
+#, 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 ""
+"Mas, por quê implementar uma interface e definir o tipo especÃfico durante a "
+"configuração? Bem, um listener pode implementar vários listeners de evento. "
+"Com o tipo sendo definido durante o registro, fica fácil ligar ou desligar "
+"listeners personalizados durante a configuração. "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr "Segurança declarativa do Hibernate"
+
+#. Tag: para
+#, 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 ""
+"Geralmente a segurança declarativa nos aplicativos do Hibernate é gerenciada "
+"em uma camada de fachada de sessão. Agora o Hibernate3 permite certas ações "
+"serem aceitas através do JACC e autorizadas através do JAAS. Esta é uma "
+"funcionalidade opcional construÃda em cima da arquitetura do evento. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"Primeiro, você precisa configurar um evento listener apropriado, para "
+"possibilitar o uso da autorização JAAS."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
+"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
+"></event></literal> when there is exactly one listener for a "
+"particular event type."
+msgstr ""
+"Note que <literal><listener type=\"...\" class=\"...\"/></literal> é "
+"somente um atalho para <literal><event type=\"...\"><listener class="
+"\"...\"/></event></literal> quando existir somente um listener para "
+"um tipo de evento em particular."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
+"permissions to roles:"
+msgstr ""
+"Depois disso, ainda em <literal>hibernate.cfg.xml</literal>, vincule as "
+"permissões aos papéis:"
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr "Os nomes das funções são as funções conhecidas pelo seu provedor JACC."
+
+#~ msgid ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+#~ msgstr ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_mappings.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_mappings.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_mappings.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1370 @@
+# translation of example_mappings.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: example_mappings\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr "Exemplo: Vários Mapeamentos"
+
+#. Tag: para
+#, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr ""
+"Este capÃtulo mostra algums mapeamentos de associações mais complexos. "
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr "Empregador/Empregado"
+
+#. Tag: para
+#, 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 ""
+"O modelo a seguir, do relacionamento entre <literal>Employer</literal> e "
+"<literal>Employee</literal> utiliza uma entidade de classe atual "
+"(<literal>Employment</literal>) para representar a associação. Isto é feito "
+"porque pode-se ter mais do que um perÃodo de trabalho para as duas partes "
+"envolvidas. Outros Componentes são usados para modelar valores monetários e "
+"os nomes do empregado. "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr "Abaixo, segue o documento de um possÃvel mapeamento: "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr ""
+"E abaixo, segue o esquema da tabela gerado pelo <literal>SchemaExport</"
+"literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr "Autor/Trabalho"
+
+#. Tag: para
+#, 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 ""
+"Considere o seguinte modelo de relacionamento entre <literal>Work</literal>, "
+"<literal>Author</literal> e <literal>Person</literal>. Nós representamos o "
+"relacionamento entre <literal>Work</literal> e <literal>Author</literal> "
+"como uma associação muitos-para-muitos. Nós escolhemos representar o "
+"relacionamento entre <literal>Author</literal> e <literal>Person</literal> "
+"como uma associação um-para-um. Outra possibilidade seria ter "
+"<literal>Author</literal> estendendo <literal>Person</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr ""
+"O mapeamento do código seguinte representa corretamente estes "
+"relacionamentos:"
+
+#. Tag: para
+#, 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 ""
+"Existem quatro tabelas neste mapeamento: <literal>works</literal>, "
+"<literal>authors</literal> e <literal>persons</literal> matém os dados de "
+"trabalho, autor e pessoa, respectivamente. O <literal>author_work</literal> "
+"é uma tabela de associação que liga autores à trabalhos. Abaixo, segue o "
+"esquema das tabelas, gerados pelo <literal>SchemaExport</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr "Cliente/Ordem/Produto"
+
+#. Tag: para
+#, 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 ""
+"Agora considere um modelo de relacionamento entre <literal>Customer</"
+"literal>, <literal>Order</literal> e <literal>LineItem</literal> e "
+"<literal>Product</literal>. Existe uma associação um-para-muitos entre "
+"<literal>Customer</literal> e <literal>Order</literal>, mas como devemos "
+"representar <literal>Order</literal> / <literal>LineItem</literal> / "
+"<literal>Product</literal>? Neste exemplo, o LineItem é mapeado como uma "
+"classe de associação representando a associação muitos-para-muitos entre "
+"<literal>Order</literal> e <literal>Product</literal>. No Hibernate, isto é "
+"conhecido como um elemento composto."
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping document will look like this:"
+msgstr "O documento de mapeamento será parecido com:"
+
+#. Tag: para
+#, 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 ""
+"<literal>customers</literal>, <literal>orders</literal>, "
+"<literal>line_items</literal> e <literal>products</literal> recebem os dados "
+"de customer, order, line_item e product, respectivamente. "
+"<literal>line_items</literal> também atua como uma tabela de associação "
+"ligando ordens a produtos."
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr "Exemplos variados de mapeamento"
+
+#. Tag: para
+#, 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 ""
+"Todos estes exemplos são retirados do conjunto de testes do Hibernate. Lá, "
+"você encontrará vários outros exemplos úteis de mapeamentos. Verifique o "
+"diretório <literal>test</literal> da distribuição do Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr "Associação um-para-um \"Typed\""
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr "Exemplo de chave composta"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr "Muitos-para-muitos com função de chave composta compartilhada"
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr "Conteúdo baseado em discriminação"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr "Associações em chaves alternativas"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+#~ msgstr ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_parentchild.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_parentchild.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_parentchild.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,519 @@
+# translation of example_parentchild.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: example_parentchild\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-03-17 14:42+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr "Exemplo: Pai/Filho"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One of the first things that new users want to do with Hibernate is to model "
+"a parent/child type relationship. There are two different approaches to "
+"this. The most convenient approach, especially for new users, is to model "
+"both <literal>Parent</literal> and <literal>Child</literal> as entity "
+"classes with a <literal><one-to-many></literal> association from "
+"<literal>Parent</literal> to <literal>Child</literal>. The alternative "
+"approach is to declare the <literal>Child</literal> as a <literal><"
+"composite-element></literal>. The default semantics of a one-to-many "
+"association in Hibernate are much less close to the usual semantics of a "
+"parent/child relationship than those of a composite element mapping. We will "
+"explain how to use a <emphasis>bidirectional one-to-many association with "
+"cascades</emphasis> to model a parent/child relationship efficiently and "
+"elegantly."
+msgstr ""
+"Uma das primeiras coisas que um usuário tenta fazer com o Hibernate é "
+"modelar um tipo de relacionamento Pai/Filho. Existem duas abordagens "
+"diferentes para isto. Por diversas razões diferentes, a abordagem mais "
+"conveniente, especialmente para novos usuários, é modelar ambos os "
+"<literal>Parent</literal> e <literal>Child</literal> como classes de "
+"entidade com uma associação <literal><one-to-many></literal> a partir "
+"do <literal>Parent</literal> para o <literal>Child</literal>. A abordagem "
+"alternativa é declarar o <literal>Child</literal> como um <literal><"
+"composite-element></literal>. As semânticas padrões da associação um para "
+"muitos (no Hibernate), são muito menos parecidas com as semânticas comuns de "
+"um relacionamento pai/filho do que aqueles de um mapeamento de elemento de "
+"composição. Explicaremos como utilizar uma <emphasis>associação bidirecional "
+"um para muitos com cascatas</emphasis> para modelar um relacionamento pai/"
+"filho de forma eficiente e elegante."
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr "Uma nota sobre as coleções"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate collections are considered to be a logical part of their owning "
+"entity and not of the contained entities. Be aware that this is a critical "
+"distinction that has the following consequences:"
+msgstr ""
+"As coleções do Hibernate são consideradas uma parte lógica de suas próprias "
+"entidades, nunca das entidades contidas. Saiba que esta é uma distinção que "
+"possui as seguintes conseqüências:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"When you remove/add an object from/to a collection, the version number of "
+"the collection owner is incremented."
+msgstr ""
+"Quando removemos ou adicionamos um objeto da/na coleção, o número da versão "
+"do proprietário da coleção é incrementado. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If an object that was removed from a collection is an instance of a value "
+"type (e.g. a composite element), that object will cease to be persistent and "
+"its state will be completely removed from the database. Likewise, adding a "
+"value type instance to the collection will cause its state to be immediately "
+"persistent."
+msgstr ""
+"Se um objeto removido de uma coleção for uma instância de um tipo de valor "
+"(ex.: um elemento de composição), este objeto irá parar de ser persistente e "
+"seu estado será completamente removido do banco de dados. Da mesma forma, ao "
+"adicionar uma instância de tipo de valor à coleção, causará ao estado uma "
+"persistência imediata. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Conversely, if an entity is removed from a collection (a one-to-many or many-"
+"to-many association), it will not be deleted by default. This behavior is "
+"completely consistent; a change to the internal state of another entity "
+"should not cause the associated entity to vanish. Likewise, adding an entity "
+"to a collection does not cause that entity to become persistent, by default."
+msgstr ""
+"Por outro lado, se uma entidade é removida de uma coleção (uma associação um-"
+"para-muitos ou muitos-para-muitos), ela não será deletada por padrão. Este "
+"comportamento é completamente consistente, uma mudança para o estado interno "
+"de uma outra entidade não deve fazer com que a entidade associada "
+"desapareça. Da mesma forma, ao adicionar uma entidade à coleção, não faz com "
+"que a entidade se torne persistente, por padrão. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Adding an entity to a collection, by default, merely creates a link between "
+"the two entities. Removing the entity will remove the link. This is "
+"appropriate for all sorts of cases. However, it is not appropriate in the "
+"case of a parent/child relationship. In this case, the life of the child is "
+"bound to the life cycle of the parent."
+msgstr ""
+"A adição de uma entidade à coleção, por padrão, meramente cria um link entre "
+"as duas entidades. A remoção da entidade, removerá o link. Isto é muito "
+"apropriado para alguns tipos de casos. No entanto, não é apropriado o caso "
+"de um relacionamento pai/filho. Neste caso, a vida do filho está vinculada "
+"ao ciclo de vida do pai."
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr "Bidirecional um-para-muitos"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we start with a simple <literal><one-to-many></literal> "
+"association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr ""
+"Suponha que começamos uma associação <literal><one-to-many></literal> "
+"simples de <literal>Parent</literal> para <literal>Child</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "If we were to execute the following code:"
+msgstr "Se fossemos executar o seguinte código:"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr "O Hibernate editaria duas instruções SQL"
+
+#. 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>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"an <literal>UPDATE</literal> to create the link from <literal>p</literal> to "
+"<literal>c</literal>"
+msgstr ""
+"um <literal>UPDATE</literal> para criar um link de <literal>p</literal> para "
+"<literal>c</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is not only inefficient, but also violates any <literal>NOT NULL</"
+"literal> constraint on the <literal>parent_id</literal> column. You can fix "
+"the nullability constraint violation by specifying <literal>not-null=\"true"
+"\"</literal> in the collection mapping:"
+msgstr ""
+"Isto não é somente ineficiente como também viola qualquer restrição "
+"<literal>NOT NULL</literal> na coluna <literal>parent_id</literal>. Nós "
+"podemos concertar a violação da restrição de nulabilidade, especificando um "
+"<literal>not-null=\"true\"</literal> no mapeamento da coleção:"
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr "No entanto, esta não é uma solução recomendada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The underlying cause of this behavior is that the link (the foreign key "
+"<literal>parent_id</literal>) from <literal>p</literal> to <literal>c</"
+"literal> is not considered part of the state of the <literal>Child</literal> "
+"object and is therefore not created in the <literal>INSERT</literal>. The "
+"solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr ""
+"As causas subjacentes deste comportamento é que o link (a chave exterior "
+"<literal>parent_id</literal>) de <literal>p</literal> para <literal>c</"
+"literal> não é considerada parte do estado do objeto <literal>Child</"
+"literal> e por isso não é criada no <literal>INSERT</literal>. Então a "
+"solução é fazer uma parte de link do mapeamento do <literal>Child</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need to add the <literal>parent</literal> property to the "
+"<literal>Child</literal> class."
+msgstr ""
+"Nós também precisamos adicionar a propriedade <literal>parent</literal> à "
+"classe do <literal>Child</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now that the <literal>Child</literal> entity is managing the state of the "
+"link, we tell the collection not to update the link. We use the "
+"<literal>inverse</literal> attribute to do this:"
+msgstr ""
+"Agora que a entidade <literal>Child</literal> está gerenciando o estado do "
+"link, informaremos à coleção para não atualizar o link. Utilizamos o "
+"atributo <literal>inverse</literal> para isto:"
+
+#. Tag: para
+#, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr ""
+"O seguinte código seria usado para adicionar um novo <literal>Child</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr "E agora, somente um SQL <literal>INSERT</literal> seria editado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You could also create an <literal>addChild()</literal> method of "
+"<literal>Parent</literal>."
+msgstr ""
+"Para assegurar tudo isto, podemos criar um método de <literal>addChild()</"
+"literal> do <literal>Parent</literal>. "
+
+#. 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: "
+
+#. Tag: title
+#, no-c-format
+msgid "Cascading life cycle"
+msgstr "Ciclo de vida em Cascata "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can address the frustrations of the explicit call to <literal>save()</"
+"literal> by using cascades."
+msgstr ""
+"A chamada explÃcita para <literal>save()</literal> ainda é incômoda. Iremos "
+"nos referir a ela utilizando cascatas."
+
+#. Tag: para
+#, no-c-format
+msgid "This simplifies the code above to:"
+msgstr "Isto simplifica o código acima para:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Similarly, we do not need to iterate over the children when saving or "
+"deleting a <literal>Parent</literal>. The following removes <literal>p</"
+"literal> and all its children from the database."
+msgstr ""
+"Da mesma forma, não precisamos repetir este comando com os filhos ao salvar "
+"ou deletar um <literal>Parent</literal>. O comando seguinte irá remover o "
+"<literal>p</literal> e todos os seus filhos do banco de dados. "
+
+#. Tag: para
+#, no-c-format
+msgid "However, the following code:"
+msgstr "No entanto, este código:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"will not remove <literal>c</literal> from the database. In this case, it "
+"will only remove the link to <literal>p</literal> and cause a <literal>NOT "
+"NULL</literal> constraint violation. You need to explicitly <literal>delete()"
+"</literal> the <literal>Child</literal>."
+msgstr ""
+"não irá remover <literal>c</literal> do banco de dados. Neste caso, ele "
+"somente removerá o link para <literal>p</literal> e causará uma violação de "
+"restrição <literal>NOT NULL</literal>). Você precisará <literal>delete()</"
+"literal> de forma explÃcita o <literal>Child</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In our case, a <literal>Child</literal> cannot exist without its parent. So "
+"if we remove a <literal>Child</literal> from the collection, we do want it "
+"to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan"
+"\"</literal>."
+msgstr ""
+"Agora, no seu caso, um <literal>Child</literal> não pode existir sem seu "
+"pai. Então, se removermos um <literal>Child</literal> da coleção, não iremos "
+"mais querer que ele seja deletado. Devido a isto, devemos utilizar um "
+"<literal>cascade=\"all-delete-orphan\"</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Even though the collection mapping specifies <literal>inverse=\"true\"</"
+"literal>, cascades are still processed by iterating the collection elements. "
+"If you need an object be saved, deleted or updated by cascade, you must add "
+"it to the collection. It is not enough to simply call <literal>setParent()</"
+"literal>."
+msgstr ""
+"Apesar do mapeamento da coleção especificar <literal>inverse=\"true\"</"
+"literal>, as cascatas ainda são processadas por repetição dos elementos de "
+"coleção. Portanto, se você requiser que um objeto seja salvo, deletado ou "
+"atualizado por uma cascata, você deverá adicioná-lo à sua coleção. Chamar "
+"<literal>setParent()</literal> não é o bastante."
+
+#. Tag: title
+#, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr "Cascatas e <literal>unsaved-value</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</"
+"literal>, made some changes in a UI action and wanted to persist these "
+"changes in a new session by calling <literal>update()</literal>. The "
+"<literal>Parent</literal> will contain a collection of children and, since "
+"the cascading update is enabled, Hibernate needs to know which children are "
+"newly instantiated and which represent existing rows in the database. We "
+"will also assume that both <literal>Parent</literal> and <literal>Child</"
+"literal> have generated identifier properties of type <literal>Long</"
+"literal>. Hibernate will use the identifier and version/timestamp property "
+"value to determine which of the children are new. (See <xref linkend="
+"\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer "
+"necessary to specify an <literal>unsaved-value</literal> explicitly.</"
+"emphasis>"
+msgstr ""
+"Vamos supor que tenhamos carregado um <literal>Parent</literal> em uma "
+"<literal>Session</literal>, fizemos algumas mudanças em uma ação UI e "
+"desejamos que persista estas mudanças em uma sessão nova, chamando um "
+"<literal>update()</literal>. O <literal>Parent</literal> irá conter uma "
+"coleção de filhos e uma vez que a atualização da cascata esteja habilitada, "
+"o Hibernate precisará saber qual filho foi instanciado mais recentemente e "
+"qual representa a linha existente no banco de dados. Vamos supor que ambos "
+"os <literal>Parent</literal> e <literal>Child</literal> tenham gerado "
+"propriedades de identificador do tipo <literal>Long</literal>. O Hibernate "
+"usará o identificador e o valor de propriedade da versão/carimbo de data e "
+"hora para determinar qual filho é novo. (Veja <xref linkend="
+"\"objectstate-saveorupdate\" />.) <emphasis>No Hibernate3, não é mais necessário "
+"especificar um <literal>unsaved-value</literal> explicitamente.</emphasis> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following code will update <literal>parent</literal> and <literal>child</"
+"literal> and insert <literal>newChild</literal>:"
+msgstr ""
+"O seguinte código atualizará o <literal>parent</literal> e o <literal>child</"
+"literal> e inserirá um <literal>newChild</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This may be suitable for the case of a generated identifier, but what about "
+"assigned identifiers and composite identifiers? This is more difficult, "
+"since Hibernate cannot use the identifier property to distinguish between a "
+"newly instantiated object, with an identifier assigned by the user, and an "
+"object loaded in a previous session. In this case, Hibernate will either use "
+"the timestamp or version property, or will actually query the second-level "
+"cache or, worst case, the database, to see if the row exists."
+msgstr ""
+"Bem, isto cabe bem no caso de um identificador gerado, mas e os "
+"identificadores atribuÃdos e os identificadores de composição? Isto é mais "
+"difÃcil, pois uma vez que o Hibernate não pode utilizar a propriedade do "
+"identificador para distinguir entre um objeto instanciado recentemente, com "
+"um identificador atribuÃdo pelo usuário, e um objeto carregado em uma sessão "
+"anterior. Neste caso, o Hibernate usará tanto um carimbo de data e hora "
+"(timestamp) ou uma propriedade de versão, ou irá na verdade consultar um "
+"cache de segundo nÃvel, ou no pior dos casos, o banco de dados, para ver se "
+"a linha existe. "
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr "Conclusão"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The sections we have just covered can be a bit confusing. However, in "
+"practice, it all works out nicely. Most Hibernate applications use the "
+"parent/child pattern in many places."
+msgstr ""
+"Há muito o que digerir aqui e pode parecer confuso na primeira vez. No "
+"entanto, na prática, funciona muito bem. A maioria dos aplicativos do "
+"Hibernate utiliza o modelo pai/filho em muitos lugares. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"We mentioned an alternative in the first paragraph. None of the above issues "
+"exist in the case of <literal><composite-element></literal> mappings, "
+"which have exactly the semantics of a parent/child relationship. "
+"Unfortunately, there are two big limitations with composite element classes: "
+"composite elements cannot own collections and they should not be the child "
+"of any entity other than the unique parent."
+msgstr ""
+"Nós mencionamos uma alternativa neste primeiro parágrafo. Nenhum dos casos "
+"acima existem no caso de mapeamentos <literal><composite-element></"
+"literal>, que possuem exatamente a semântica do relacionamento pai/filho. "
+"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. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_weblog.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_weblog.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/example_weblog.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,962 @@
+# translation of example_weblog.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: example_weblog\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr "Exemplo: Aplicativo Weblog"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "Classes Persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The persistent classes here represent a weblog and an item posted in a "
+"weblog. They are to be modelled as a standard parent/child relationship, but "
+"we will use an ordered bag, instead of a set:"
+msgstr ""
+"As classes persistentes representam um weblog, e um item postado em um "
+"weblog. Eles não devem ser modelados como um relacionamento padrão pai/"
+"filho, mas usaremos uma bolsa ordenada ao invés de um conjunto:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr "Mapeamentos Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr "Os mapeamentos XML devem agora ser um tanto diretos. Por exemplo:"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr "Código Hibernate "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes using Hibernate:"
+msgstr ""
+"A seguinte classe demonstra algumas atividades que podemos realizar com "
+"estas classes, usando Hibernate:"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/filters.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/filters.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/filters.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,427 @@
+# translation of filters.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: filters\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr "Filtrando dados"
+
+#. Tag: para
+#, 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 ""
+"O Hibernate3 provê um novo método inovador para manusear dados com regras de "
+"\"visibilidade\". Um <emphasis>Filtro do Hibernate</emphasis> é um filtro "
+"global, nomeado e parametrizado que pode ser habilitado ou não dentro de uma "
+"Sessão do Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate filters"
+msgstr "Filtros do Hibernate"
+
+#. Tag: para
+#, 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 ""
+"O Hibernate3 tem a habilidade de pré-definir os critérios do filtro e anexar "
+"esses filtros no nÃvel da classe e no nÃvel da coleção. Um critério do "
+"filtro é a habilidade de definir uma cláusula restritiva muito semelhante à "
+"função \"where\" disponÃvel para a classe e várias coleções. A não ser que "
+"essas condições de filtros possam ser parametrizadas. A aplicação pode, "
+"então decidir, em tempo de execução, se os filtros definidos devem estar "
+"habilitados e quais valores seus parâmetros devem ter. Os filtros podem ser "
+"usados como Views de bancos de dados, mas com parâmetros dentro da aplicação."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal><"
+"filter-def/></literal> element within a <literal><hibernate-mapping/"
+"></literal> element:"
+msgstr ""
+"Para usar esses filtros, eles devem inicialmente ser definidos e anexados "
+"aos elementos do mapeamento apropriados. Para definir um filtro, use o "
+"elemento <literal><filter-def/></literal> dentro do elemento "
+"<literal><hibernate-mapping/></literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr "Esse filtro pode ser acoplado à uma classe:"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to a collection:"
+msgstr "Ou, à uma coleção:"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr "Ou, mesmo para ambos (ou muitos de cada) ao mesmo tempo."
+
+#. Tag: para
+#, 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 ""
+"Os métodos na <literal>Session</literal> são: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal> e <literal>disableFilter(String filterName)</literal>. Por padrão, "
+"os filtros <emphasis>não</emphasis> são habilitados dentro de qualquer "
+"sessão. Eles devem ser explicitamente habilitados usando o método "
+"<literal>Session.enabledFilter()</literal>, que retorna uma instância da "
+"interface <literal>Filter</literal>. Usando o filtro simples definido acima, "
+"o código se pareceria com o seguinte: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Methods on the org.hibernate.Filter interface do allow the method-chaining "
+"common to much of Hibernate."
+msgstr ""
+"Veja que os métodos da interface org.hibernate.Filter permite o encadeamento "
+"do método, comum à maioria das funções do Hibernate. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is a full example, using temporal data with an effective "
+"record date pattern:"
+msgstr ""
+"Um exemplo completo, usando dados temporais com um padrão de datas de "
+"registro efetivo:"
+
+#. Tag: para
+#, 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 ""
+"Para garantir que você sempre tenha registro efetivos, simplesmente habilite "
+"o filtro na sessão antes de recuperar os dados dos empregados: "
+
+#. Tag: para
+#, 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 ""
+"No HQL acima, mesmo que tenhamos mencionado apenas uma restrição de salário "
+"nos resultados, por causa do filtro habilitado, a consulta retornará apenas "
+"os funcionários ativos cujo salário é maior que um milhão de dólares. "
+
+#. Tag: para
+#, 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 ""
+"Nota: se você planeja usar filtros com união externa (por HQL ou por busca "
+"de carga) seja cuidadoso quanto à direção da expressão de condição. à mais "
+"seguro configurá-lo para uma união externa esquerda. Coloque o parâmetro "
+"primeiro seguido pelo(s) nome(s) da coluna após o operador. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After being defined, a filter might be attached to multiple entities and/or "
+"collections each with its own condition. This can be problematic when the "
+"conditions are the same each time. Using <literal><filter-def/></"
+"literal> allows you to definine a default condition, either as an attribute "
+"or CDATA:"
+msgstr ""
+"Após ser definido, o filtro deve ser anexado às entidades múltiplas e/ou "
+"coleções, cada uma com sua própria condição. Isto pode ser tedioso quando as "
+"condições se repetem. Assim, usando o <literal><filter-def/></literal> "
+"permite denifir uma condição padrão, tanto como uma função quanto CDATA:"
+
+#. Tag: para
+#, 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 ""
+"Esta condição padrão será utilizada todas as vezes que um filtro for anexado "
+"a algo sem uma condição especÃfica. Note que isto significa que você pode "
+"dar uma condição especÃfica como parte de um anexo de filtro que substitua a "
+"condição padrão neste caso em particular. "
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+#~ msgstr ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/inheritance_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/inheritance_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/inheritance_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,630 @@
+# translation of inheritance_mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: inheritance_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-17 15:42+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Inheritance mapping"
+msgstr "Mapeamento de Herança "
+
+#. Tag: title
+#, no-c-format
+msgid "The three strategies"
+msgstr "As três estratégias "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr "O Hibernate suporta as três estratégias básicas de mapeamento de herança:"
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr "tabela por hierarquia de classes"
+
+#. Tag: para
+#, no-c-format
+msgid "table per subclass"
+msgstr "tabela por subclasse"
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr "tabela por classe concreta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In addition, Hibernate supports a fourth, slightly different kind of "
+"polymorphism:"
+msgstr ""
+"Além disso, o Hibernate suporta um quarto tipo de polimorfismo um pouco "
+"diferente:"
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr "polimorfismo implÃcito"
+
+#. Tag: para
+#, 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><subclass></literal>, "
+"<literal><joined-subclass></literal> and <literal><union-"
+"subclass></literal> mappings under the same root <literal><class></"
+"literal> element. It is possible to mix together the table per hierarchy and "
+"table per subclass strategies under the the same <literal><class></"
+"literal> element, by combining the <literal><subclass></literal> and "
+"<literal><join></literal> elements (see below for an example)."
+msgstr ""
+"à possÃvel usar diferentes estratégias de mapeamento para diferentes "
+"ramificações da mesma hierarquia de herança. Você pode fazer uso do "
+"polimorfismo implÃcito para alcançá-lo através da hierarquia completa. De "
+"qualquer forma, o Hibernate não suporta a mistura de mapeamentos "
+"<literal><subclass></literal>, <literal><joined-subclass></"
+"literal> e <literal><union-subclass></literal> dentro do mesmo "
+"elemento raÃz <literal><class></literal>. à possÃvel usar, junto à s "
+"estratégias, uma tabela por hierarquia e tabela por subclasse, abaixo do "
+"mesmo elemento <literal><class></literal>, combinando os elementos "
+"<literal><subclass></literal> e <literal><join></literal> (veja "
+"abaixo)."
+
+#. Tag: para
+#, 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 ""
+"Ã possÃvel definir mapeamentos <literal>subclass</literal>, <literal>union-"
+"subclass</literal> e <literal>joined-subclass</literal> em documentos de "
+"mapeamento separados, diretamente abaixo de <literal>hibernate-mapping</"
+"literal>. Isso permite que você estenda uma hierarquia de classes apenas "
+"adicionando um novo arquivo de mapeamento. Você deve especificar uma função "
+"<literal>extends</literal> no mapeamento da subclasse, nomeando uma "
+"superclasse previamente mapeada. Anteriormente esta caracterÃstica fazia o "
+"ordenamento dos documentos de mapeamento importantes. Desde o Hibernate3, o "
+"ordenamento dos arquivos de mapeamento não importa quando usamos a palavra "
+"chave extends. O ordenamento dentro de um arquivo de mapeamento simples "
+"ainda necessita ser definido como superclasse antes de subclasse."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr "Tabela por hierarquia de classes"
+
+#. Tag: para
+#, 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 ""
+"Vamos supor que temos uma interface <literal>Payment</literal>, com sua "
+"implementação <literal>CreditCardPayment</literal>, <literal>CashPayment</"
+"literal> e <literal>ChequePayment</literal>. O mapeamento da tabela por "
+"hierarquia seria parecido com:"
+
+#. Tag: para
+#, 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 ""
+"à requisitado exatamente uma tabela. Existe uma grande limitação desta "
+"estratégia de mapeamento: colunas declaradas por subclasses, tais como "
+"<literal>CCTYPE</literal>, podem não ter restrições <literal>NOT NULL</"
+"literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass"
+msgstr "Tabela por subclasse"
+
+#. Tag: para
+#, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr "Um mapeamento de tabela por subclasse seria parecido com: "
+
+#. Tag: para
+#, 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 ""
+"São necessárias quatro tabelas. As três tabelas subclasses possuem "
+"associação de chave primária para a tabela de superclasse, desta maneira o "
+"modelo relacional é atualmente uma associação de um-para-um."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr "Tabela por subclasse: usando um discriminador"
+
+#. Tag: para
+#, 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><subclass></literal> and "
+"<literal><join></literal>, as follows:"
+msgstr ""
+"A implementação de tabela por subclasse do Hibernate não necessita de coluna "
+"de discriminador. Outro mapeador objeto/relacional usa uma implementação "
+"diferente de tabela por subclasse, que necessita uma coluna com o tipo "
+"discriminador na tabela da superclasse. A abordagem escolhida pelo Hibernate "
+"é muito mais difÃcil de implementar, porém mais correto de um ponto de vista "
+"relacional. Se você deseja utilizar uma coluna discriminadora com a "
+"estratégia tabela por subclasse, você poderá combinar o uso de <literal><"
+"subclass></literal> e <literal><join></literal>, dessa maneira:"
+
+#. Tag: para
+#, 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 ""
+"A declaração opcional <literal>fetch=\"select\"</literal> diz ao Hibernate "
+"para não buscar os dados da subclasse <literal>ChequePayment</literal>, "
+"quando usar uma união externa pesquisando a superclasse."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr "Mesclar tabela por hierarquia de classes com tabela por subclasse"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can even mix the table per hierarchy and table per subclass strategies "
+"using the following approach:"
+msgstr ""
+"Você pode até mesmo mesclar a estratégia de tabela por hierarquia e tabela "
+"por subclasse usando esta abordagem: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For any of these mapping strategies, a polymorphic association to the root "
+"<literal>Payment</literal> class is mapped using <literal><many-to-one>"
+"</literal>."
+msgstr ""
+"Para qualquer uma dessas estratégias de mapeamento, uma associação "
+"polimórfica para a classe raÃz <literal>Payment</literal> deve ser mapeada "
+"usando <literal><many-to-one></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr "Tabela por classe concreta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two ways we can map the table per concrete class strategy. First, "
+"you can use <literal><union-subclass></literal>."
+msgstr ""
+"Existem duas formas que poderÃamos usar a respeito da estratégia de "
+"mapeamento de tabela por classe concreta. A primeira é usar <literal><"
+"union-subclass></literal>. "
+
+#. Tag: para
+#, 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 ""
+"Três tabelas estão envolvidas para as subclasses. Cada tabela define colunas "
+"para todas as propriedades da classe, incluindo propriedades herdadas."
+
+#. Tag: para
+#, 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 ""
+"A limitação dessa abordagem é que se uma propriedade é mapeada na "
+"superclasse, o nome da coluna deve ser o mesmo em todas as tabelas das "
+"subclasses. A estratégia do gerador identidade não é permitida na união da "
+"herança de sub-classe. A fonte de chave primária deve ser compartilhada "
+"através de todas subclasses unidas da hierarquia."
+
+#. Tag: para
+#, 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 ""
+"Se sua superclasse é abstrata, mapeie-a com <literal>abstract=\"true\"</"
+"literal>. Claro, que se ela não for abstrata, uma tabela adicional (padrão "
+"para <literal>PAYMENT</literal> no exemplo acima), será necessária para "
+"segurar as instâncias da superclasse."
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr "Tabela por classe concreta usando polimorfismo implÃcito"
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr "Uma abordagem alternativa é fazer uso de polimorfismo implÃcito:"
+
+#. Tag: para
+#, 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>[ <!ENTITY allproperties SYSTEM "
+"\"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> "
+"declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr ""
+"Veja que em nenhum lugar mencionamos a interface <literal>Payment</literal> "
+"explicitamente. Note também que propriedades de <literal>Payment</literal> "
+"são mapeadas em cada uma das subclasses. Se você quiser evitar duplicação, "
+"considere usar entidades de XML (ex. <literal>[ <!ENTITY allproperties "
+"SYSTEM \"allproperties.xml\"> ]</literal> na declaração do "
+"<literal>DOCTYPE</literal> e <literal>& allproperties;</literal> no "
+"mapeamento). "
+
+#. Tag: para
+#, 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 ""
+"A desvantagem dessa abordagem é que o Hibernate não gera <literal>UNION</"
+"literal>s de SQL quando executa pesquisas polimórficas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For this mapping strategy, a polymorphic association to <literal>Payment</"
+"literal> is usually mapped using <literal><any></literal>."
+msgstr ""
+"Para essa estratégia, uma associação polimórfica para <literal>Payment</"
+"literal> geralmente é mapeada usando <literal><any></literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr "Mesclando polimorfismo implÃcito com outros mapeamentos de herança"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Since the subclasses are each mapped in their own <literal><class></"
+"literal> element, and since <literal>Payment</literal> is just an "
+"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 ""
+"Existe ainda um item a ser observado sobre este mapeamento. Como as "
+"subclasses são mapeadas em seu próprio elemento <literal><class></"
+"literal>, e como o <literal>Payment</literal> é apenas uma interface, cada "
+"uma das subclasses pode ser facilmente parte de uma outra hierarquia de "
+"herança! (E você ainda pode usar pesquisas polimórficas em cima da interface "
+"<literal>Payment</literal>.)"
+
+#. Tag: para
+#, 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 ""
+"Mais uma vez, nós não mencionamos <literal>Payment</literal> explicitamente. "
+"Se nós executarmos uma pesquisa em cima da interface <literal>Payment</"
+"literal>, por exemplo, <literal>from Payment</literal> â o Hibernate retorna "
+"automaticamente instâncias de <literal>CreditCardPayment</literal> (e suas "
+"subclasses, desde que elas também implementem <literal>Payment</literal>), "
+"<literal>CashPayment</literal> e <literal>ChequePayment</literal> mas não as "
+"instâncias de <literal>NonelectronicTransaction</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Limitations"
+msgstr "Limitações"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are limitations to the \"implicit polymorphism\" approach to the table "
+"per concrete-class mapping strategy. There are somewhat less restrictive "
+"limitations to <literal><union-subclass></literal> mappings."
+msgstr ""
+"Existem certas limitações para a abordagem do \"polimorfismo implÃcito\" "
+"comparada com a estratégia de mapeamento da tabela por classe concreta. "
+"Existe uma limitação um tanto menos restritiva para mapeamentos <literal><"
+"union-subclass></literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table shows the limitations of table per concrete-class "
+"mappings, and of implicit polymorphism, in Hibernate."
+msgstr ""
+"A seguinte tabela demonstra as limitações do mapeamento de tabela por classe "
+"concreta e do polimorfismo implÃcito no Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr "Recurso dos Mapeamentos de Herança "
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr "Estratégia de Herança "
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr "muitos-para-um Polimórfico"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr "um-para-um Polimórfico"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr "um-para-muitos Polimórfico"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr "muitos-para-um Polimórfico"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr "Polimórfico <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Consultas Polimórficas"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr "Junçöes Polimórficas"
+
+#. Tag: entry
+#, no-c-format
+msgid "Outer join fetching"
+msgstr "Busca por união externa"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per class-hierarchy"
+msgstr "tabela por hierarquia de class"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr "<literal><many-to-one></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr "<literal><one-to-one></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr "<literal><one-to-many></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr "<literal><many-to-many></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr "<literal>s.get(Payment.class, id)</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr "<literal>from Payment p</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr "<literal>from Order o join o.payment p</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr "<emphasis>supported</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr "tabela por classe concreta (subclasses de união)"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+msgstr ""
+"<literal><one-to-many></literal> (for <literal>inverse=\"true\"</"
+"literal> only)"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr "tabela por classe concreta (polimorfismo implÃcito) "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><any></literal>"
+msgstr "<literal><any></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr "<emphasis>not supported</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr "<literal><many-to-any></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+msgstr ""
+"<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) )."
+"uniqueResult()</literal>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/performance.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/performance.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/performance.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2332 @@
+# translation of performance.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: performance\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-18 14:45+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr "Aumentando o desempenho"
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr "Estratégias de Busca "
+
+#. 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 ""
+"Uma <emphasis>estratégia de busca</emphasis> é a estratégia que o Hibernate "
+"irá usar para recuperar objetos associados se a aplicação precisar navegar "
+"pela associação. Estratégias de Busca podem ser declaradas nos metadados de "
+"mapeamento O/R, ou sobrescritos por uma consulta HQL ou consulta com "
+"<literal>Criteria</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr "Hibernate3 define as seguintes estratégias de busca:"
+
+#. 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> - o Hibernate busca o objeto ou coleção "
+"associada no mesmo <literal>SELECT</literal>, usando um <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> - um segundo <literal>SELECT</literal> "
+"é usado para buscar a entidade ou coleção associada. A menos que você "
+"desabilite a busca lazy, especificando <literal>lazy=\"false\"</literal>, "
+"esse segundo SELECT será executado apenas quando você acessar a associação. "
+
+#. 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> - um segundo <literal>SELECT</"
+"literal> será usado para recuperar as coleções associadas de todas as "
+"entidades recuperadas em uma consulta ou busca anterior. A menos que você "
+"desabilite a busca lazy especificando <literal>lazy=\"false\"</literal>, "
+"esse segundo SELECT será executado apenas quando você acessar a associação. "
+
+#. 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> - uma opção de otimização para "
+"selecionar a busca. O Hibernate recupera um lote de instâncias ou entidades "
+"usando um único <literal>SELECT</literal>, especificando uma lista de chaves "
+"primárias ou chaves externas."
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr "O Hibernate distingue também entre:"
+
+#. 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> - uma associação, coleção ou função "
+"é imediatamente recuperada, quando o proprietário for carregado. "
+
+#. 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> - a coleção é recuperada "
+"quando a aplicação invoca uma operação sobre aquela coleção. Esse é o padrão "
+"para coleções."
+
+#. 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</emphasis> - elementos "
+"individuais de uma coleção são acessados a partir do banco de dados quando "
+"necessário. O Hibernate tenta não buscar a coleção inteira dentro da memória "
+"a menos que seja absolutamente necessário. Isto é indicado para coleções "
+"muito grandes."
+
+#. 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>: uma associação de um valor é carregada "
+"quando um método diferente do getter do identificador é invocado sobre o "
+"objeto associado."
+
+#. 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> - uma associação de um único "
+"valor é recuperada quando a variável da instância é acessada. Comparada à "
+"busca proxy, esse método é menos preguiçoso (lazy); a associação é buscada "
+"até mesmo quando somente o identificador é acessado. Ela é mais "
+"transparente, já que não há proxies visÃveis para a aplicação. Esse método "
+"requer instrumentação de bytecodes em build-time e é raramente necessário."
+
+#. 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>: um atributo ou associação de "
+"um valor é buscado quanto a varÃavel da instância é acessada. Esse método "
+"requer instrumentação de bytecodes em build-time e é raramente necessário."
+
+#. 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 ""
+"Nós temos aqui duas noções ortogonais: <emphasis>quando</emphasis> a "
+"associação é buscada e <emphasis>como</emphasis> ela é buscada. à importante "
+"que você não os confuda. Nós usamos <literal>fetch</literal> para ajustar o "
+"desempenho. Podemos usar <literal>lazy</literal> para definir um contrato "
+"para qual dado é sempre disponÃvel em qualquer instância desconectada de uma "
+"classe particular."
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr "Trabalhando com associações preguiçosas (lazy)"
+
+#. 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 ""
+"Por padrão, o Hibernate3 usa busca preguiçosa para coleções e busca "
+"preguiçosa com proxy para associações de um valor. Esses padrões fazem "
+"sentido para quase todas as associações em quase todas a aplicações. "
+
+#. 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 ""
+"Se você ajustar <literal>hibernate. default_batch_fetch_size</literal>, o "
+"Hibernate irá usar otimização de busca em lote para a busca preguiçosa. Essa "
+"otimização pode ser também habilitada em um nÃvel mais fino."
+
+#. 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 ""
+"Perceba que o acesso a associações preguiçosas fora do contexto de uma "
+"sessão aberta do Hibernate irá resultar numa exceção. Por exemplo:"
+
+#. 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 ""
+"Como a coleção de permissões não foi inicializada quando a <literal>Session</"
+"literal> for fechada, a coleção não poderá carregar o seu estado. "
+"<emphasis>O Hibernate não suporta inicialização preguiçosa para objetos "
+"desconectados</emphasis>. Para consertar isso, é necessário mover o código "
+"que carrega a coleção para logo antes da transação ser submetida. "
+
+#. 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 ""
+"Alternativamente, nós podemos usar uma coleção ou associação não preguiçosa, "
+"especificando <literal>lazy=\"false\"</literal> para o mapeamento da "
+"associação. Porém, é pretendido que a inicialização preguiçosa seja usada "
+"por quase todas as coleções e associações. Se você definir muitas "
+"associações não preguiçosas em seu modelo de objetos, o Hibernate irá "
+"precisar buscar no banco de dados inteiro da memória em cada transação."
+
+#. 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 ""
+"Por outro lado, nós geralmente escolhemos a busca de união (que não é "
+"preguiçosa por natureza) ao invés do selecionar busca em uma transação "
+"particular. Nós agora veremos como customizar a estratégia de busca. No "
+"Hibernate3, os mecanismos para escolher a estratégia de busca são idênticos "
+"para as associações de valor único e para coleções."
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr "Personalizando as estratégias de busca"
+
+#. 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 ""
+"O padrão selecionar busca, é extremamente vunerável aos problemas de seleção "
+"N+1, então habilitaremos a busca de união no documento de mapeamento:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> strategy defined in the mapping document "
+"affects:"
+msgstr ""
+"A estratégia de <literal>fetch</literal> definida no documento de mapeamento "
+"afeta:"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval via <literal>get()</literal> or <literal>load()</literal>"
+msgstr "recupera via <literal>get()</literal> ou <literal>load()</literal>"
+
+#. 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"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr "consultas por <literal>Criteria</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr "consultas HQL se a busca por <literal>subselect</literal> for usada"
+
+#. 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 ""
+"Independentemente da estratégia de busca que você usar, o gráfico não "
+"preguiçoso definido será certamente carregado na memória. Note que isso irá "
+"resultar em diversas seleções imediatas sendo usadas para rodar uma consulta "
+"HQL em particular."
+
+#. 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 ""
+"Geralmente, não usamos documentos de mapeamento para customizar as buscas. "
+"Ao invés disso, nós deixamos o comportamento padrão e sobrescrevemos isso em "
+"uma transação em particular, usando <literal>left join fetch</literal> no "
+"HQL. Isso diz ao Hibernate para buscar a associação inteira no primeiro "
+"select, usando uma união externa. Na API de busca <literal>Criteria</"
+"literal>, você irá usar <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 ""
+"Se você quiser mudar a estratégia de busca usada pelo <literal>get()</"
+"literal> ou <literal>load()</literal>, simplesmente use uma consulta por "
+"<literal>Criteria</literal>, por exemplo: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is Hibernate's equivalent of what some ORM solutions call a \"fetch plan"
+"\"."
+msgstr ""
+"Isto é o equivalente do Hibernate para o que algumas soluções ORM chamam de "
+"\"plano de busca\"."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
+msgstr ""
+"Um meio totalmente diferente de evitar problemas com selects N+1 é usar um "
+"cache de segundo nÃvel. "
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr "Proxies de associação final único"
+
+#. 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 ""
+"A recuperação preguiçosa para coleções é implementada usando uma "
+"implementação própria do Hibernate para coleções persistentes. Porém, é "
+"necessário um mecanismo diferente para comportamento preguiçoso em "
+"associações de final único. A entidade alvo da associação precisa usar um "
+"proxy. O Hibernate implementa proxies para inicialização preguiçosa em "
+"objetos persistentes usando manipulação de bytecode, através da excelente "
+"biblioteca 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 ""
+"Por padrão, o Hibernate3 gera proxies (na inicialização) para todas as "
+"classes persistentes que os usem para habilitar recuperação preguiçosa de "
+"associações <literal>many-to-one</literal> e <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 ""
+"O arquivo de mapeamento deve declarar uma interface para usar como interface "
+"de proxy para aquela classe, com a função <literal>proxy</literal>. Por "
+"padrão, o Hibernate usa uma subclasse dessa classe. <emphasis>Note que a "
+"classe a ser usada via proxy precisa implementar o construtor padrão com "
+"pelo menos visibilidade de package. Nós recomendamos esse construtor para "
+"todas as classes persistentes</emphasis>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are potential problems to note when extending this approach to "
+"polymorphic classes.For example:"
+msgstr ""
+"Existe alguns truques que você deve saber quando estender esse comportamento "
+"para classes polimórficas. Por exemplo:"
+
+#. 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 ""
+"Primeiramente, instâncias de <literal>Cat</literal> nunca serão convertidas "
+"para <literal>DomesticCat</literal>, mesmo que a instância em questão seja "
+"uma instância de <literal>DomesticCat</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr "E, segundo, é possÃvel quebrar o proxy <literal>==</literal>:"
+
+#. 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 ""
+"Porém a situação não é tão ruim como parece. Mesmo quando temos duas "
+"referências para objetos proxies diferentes, a instância adjacente será do "
+"mesmo objeto:"
+
+#. 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 ""
+"E por terceiro, você não pode usar um proxy CGLIB em uma classe "
+"<literal>final</literal> ou com quaisquer métodos <literal>final</literal>."
+
+#. 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 ""
+"Finalmente, se o seu objeto persistente adquirir qualquer recurso durante a "
+"instanciação (ex. em inicializadores ou construtor padrão), então esses "
+"recursos serão adquiridos pelo proxy também. A classe de proxy é uma "
+"subclasse da classe persistente. "
+
+#. 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 ""
+"Esses problemas se dão devido à limitação originária do modelo de herança "
+"simples do Java. Se você quiser evitar esses problemas em suas classes "
+"persistentes você deve implementar uma interface que declare seus métodos "
+"comerciais. Você deve especificar essas interfaces no arquivo de mapeamento "
+"onde <literal>CatImpl</literal> implementa a interface <literal>Cat</"
+"literal> e <literal>DomesticCatImpl</literal> implementa a interface "
+"<literal>DomesticCat</literal>. Por exemplo: "
+
+#. 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 ""
+"Então, os proxies para instâncias de <literal>Cat</literal> e "
+"<literal>DomesticCat</literal> podem ser retornadas pelo <literal>load()</"
+"literal> ou <literal>iterate()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr "<literal>list()</literal> normalmente retorna proxies."
+
+#. 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 ""
+"Relacionamentos são também inicializados de forma preguiçosa. Isso significa "
+"que você precisa declarar qualquer propriedade como sendo do tipo "
+"<literal>Cat</literal>, e não <literal>CatImpl</literal>."
+
+#. 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: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>equals()</literal>: if the persistent class does not override "
+"<literal>equals()</literal>"
+msgstr ""
+"<literal>equals()</literal>: se a classe persistente não sobrescrever "
+"<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>: se a classe persistente não sobrescrever "
+"<literal>hashCode()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr "O método getter do identificador"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate will detect persistent classes that override <literal>equals()</"
+"literal> or <literal>hashCode()</literal>."
+msgstr ""
+"O Hibernate irá detectar classes persistentes que sobrescrevem "
+"<literal>equals()</literal> ou <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 ""
+"Escolhendo <literal>lazy=\"no-proxy\"</literal> ao invés do padrão "
+"<literal>lazy=\"proxy\"</literal>, podemos evitar problemas associados com "
+"typecasting. Porém, iremos precisar de instrumentação de bytecode em tempo "
+"de compilação e todas as operações irão resultar em inicializações de proxy "
+"imediatas. "
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr "Inicializando coleções e proxies"
+
+#. 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 ""
+"Será lançada uma <literal>LazyInitializationException</literal> se uma "
+"coleção não inicializada ou proxy for acessado fora do escopo da "
+"<literal>Session</literal>, isto é, quando a entidade que contém a coleção "
+"ou que possua a referência ao proxy estiver no estado desanexado. "
+
+#. 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 ""
+"Algumas vezes precisamos garantir que o proxy ou coleção é inicializado "
+"antes de fechar a <literal>Session</literal>. Claro que sempre podemos "
+"forçar a inicialização chamando <literal>cat.getSex()</literal> ou "
+"<literal>cat.getKittens().size()</literal>, por exemplo. Mas isto parece "
+"confuso para quem lê o código e não é conveniente para códigos genéricos. "
+
+#. 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 ""
+"Os métodos estáticos <literal>Hibernate.initialize()</literal> e "
+"<literal>Hibernate.isInitialized()</literal> favorecem a aplicação para "
+"trabalhar com coleções ou proxies inicializados de forma preguiçosa. O "
+"<literal>Hibernate.initialize(cat)</literal> irá forçar a inicialização de "
+"um proxy, <literal>cat</literal>, contanto que a <literal>Session</literal> "
+"esteja ainda aberta. <literal>Hibernate.initialize (cat.getKittens() )</"
+"literal> tem um efeito similar para a coleção de 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 ""
+"Uma outra opção é manter a <literal>Session</literal> aberta até que todas "
+"as coleções e os proxies necessários sejam carregados. Em algumas "
+"arquiteturas de aplicações, particularmente onde o código que acessa os "
+"dados usando Hibernate e o código que os usa, se encontram em diferentes "
+"camadas da aplicação ou diferentes processos fÃsicos, será um problema "
+"garantir que a <literal>Session</literal> esteja aberta quando uma coleção "
+"for inicializada. Existem dois caminhos básicos para lidar com esse "
+"problema: "
+
+#. 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 ""
+"Em uma aplicações web, um filtro servlet pode ser usado para fechar a "
+"<literal>Session</literal> somente no final da requisição do usuário, quando "
+"a renderização da view estiver completa (o modelo <emphasis>Abrir Sessão em "
+"View</emphasis>). Claro, que isto demanda uma exatidão no manuseio de "
+"exceções na infraestrutura de sua aplicação. à extremamente importante que a "
+"<literal>Session</literal> seja fechada e a transação terminada antes de "
+"retornar para o usuário, mesmo que uma exceção ocorra durante a renderização "
+"da view. Veja o Wiki do Hibernate para exemplos do pattern \"Abrir Sessão em "
+"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 ""
+"Em uma aplicação com uma camada de negócios separada, a lógica de negócios "
+"deve \"preparar\" todas as coleções que serão usadas pela camada web antes "
+"de retornar. Isto sgnifica que a camada de negócios deve carregar todos os "
+"dados e retorná-los já inicializados para a camada de apresentação que é "
+"representada para um caso de uso particular. Geralmente, a aplicação chama "
+"<literal>Hibernate.initialize()</literal> para cada coleção que será usada "
+"pela camada web (essa chamada deve ocorrer antes da sessão ser fechada) ou "
+"retorna a coleção usando uma consulta Hibernate com uma cláusula "
+"<literal>FETCH</literal> ou um <literal>FetchMode.JOIN</literal> na "
+"<literal>Criteria</literal>. Fica muito mais fácil se você adotar o modelo "
+"<emphasis>Command</emphasis> ao invés do <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 ""
+"Você também pode anexar um objeto previamente carregado em uma nova "
+"<literal>Session</literal><literal>merge()</literal> ou <literal>lock()</"
+"literal> antes de acessar coleções não inicializadas (ou outros proxies). O "
+"Hibernate não faz e certamente <literal>não deve</literal> fazer isso "
+"automaticamente, pois isso introduziria semântica em transações impromptu."
+
+#. 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 ""
+"Ãs vezes você não quer inicializar uma coleção muito grande, mas precisa de "
+"algumas informações, como o mesmo tamanho, ou um subconjunto de seus dados."
+
+#. Tag: para
+#, no-c-format
+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:"
+
+#. 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 ""
+"O método <literal>createFilter()</literal> é usado também para retornar "
+"algus dados de uma coleção eficientemente sem precisar inicializar a coleção "
+"inteira:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr "Usando busca em lote"
+
+#. 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 ""
+"O Hibernate pode fazer uso eficiente de busca em lote, ou seja o Hibernate "
+"pode carregar diversos proxies não inicializados, se um proxy for acessado "
+"(ou coleções). A busca em lote é uma otimização da estratégia da busca de "
+"seleção lazy. Existem duas maneiras para você usar a busca em lote: no nÃvel "
+"da classe ou no nÃvel da coleção."
+
+#. 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 ""
+"A recuperação em lote para classes/entidades é mais fácil de entender. "
+"Imagine que você tem a seguinte situação em tempo de execução: você tem 25 "
+"instâncias de <literal>Cat</literal> carregadas em uma <literal>Session</"
+"literal>, cada <literal>Cat</literal> possui uma referência ao seu "
+"<literal>owner</literal>, que é da classe <literal>Person</literal>. A "
+"classe <literal>Person</literal> é mapeada com um proxy, <literal>lazy=\"true"
+"\"</literal>. Se você interar sobre todos os Cat's e chamar <literal>getOwner"
+"()</literal> em cada, o Hibernate irá por padrão executar 25 comandos "
+"<literal>SELECT()</literal>, para buscar os proxies de owners. Você pode "
+"melhorar esse comportamento especificando um <literal>batch-size</literal> "
+"no mapeamento da classe <literal>Person</literal>: "
+
+#. 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."
+
+#. 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 ""
+"Você também pode habilitar busca em lote de uma coleção. Por exemplo, se "
+"cada <literal>Person</literal> tem uma coleção preguiçosa de <literal>Cat</"
+"literal>s e 10 persons estão já carregadas em uma <literal>Session</"
+"literal>, serão gerados 10 <literal>SELECT</literal>s ao se interar todas as "
+"persons, um para cada chamada de <literal>getCats()</literal>. Se você "
+"habilitar busca em lote para a coleção de <literal>cats</literal> no "
+"mapeamento da classe <literal>Person</literal>, o Hibernate pode fazer uma "
+"pré carga das coleções:"
+
+#. 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 ""
+"Com um <literal>batch-size</literal> de 3, o Hibernate irá carregar 3, 3, 3, "
+"1 coleções em 4 <literal>SELECT</literal>s. Novamente, o valor da função "
+"depende do número esperado de coleções não inicializadas em determinada "
+"<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 ""
+"A busca em lote de coleções é particularmente útil quando você tem uma "
+"árvore encadeada de Ãtens, ex.: o tÃpico padrão bill-of-materials (Se bem "
+"que um <emphasis>conjunto encadeado</emphasis> ou <emphasis>caminho "
+"materializado</emphasis> pode ser uma opção melhor para árvores com mais "
+"leitura."
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr "Usando busca de subseleção"
+
+#. 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 ""
+"Se uma coleção ou proxy simples precisa ser recuperado, o Hibernate carrega "
+"todos eles rodando novamente a consulta original em uma subseleção. Isso "
+"funciona da mesma maneira que busca em lote, sem carregar tanto."
+
+#. Tag: title
+#, no-c-format
+msgid "Fetch profiles"
+msgstr "Perfis de Busca "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another way to affect the fetching strategy for loading associated objects "
+"is through something called a fetch profile, which is a named configuration "
+"associated with the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> but enabled, by name, on the <interfacename>org.hibernate."
+"Session</interfacename>. Once enabled on a <interfacename>org.hibernate."
+"Session</interfacename>, the fetch profile wull be in affect for that "
+"<interfacename>org.hibernate.Session</interfacename> until it is explicitly "
+"disabled."
+msgstr ""
+"Outra forma de afetar a estratégia de busca para o carregamento de objetos "
+"associados é através do chamado perfil de busca, que é uma associação de "
+"configuração de nomeada com o <interfacename>org.hibernate.SessionFactory</"
+"interfacename>, porém ativado pelo nome no <interfacename>org.hibernate."
+"Session</interfacename>. Uma vez ativado no <interfacename>org.hibernate."
+"Session</interfacename>, o perfil de busca será afetado pelo "
+"<interfacename>org.hibernate.Session</interfacename> até que o mesmo seja "
+"completamente desativado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"So what does that mean? Well lets explain that by way of an example. Say we "
+"have the following mappings:"
+msgstr ""
+"O que isto significa? A explicação será através de um exemplo. Vamos dizer "
+"que nós temos os seguintes mapeamentos:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now normally when you get a reference to a particular customer, that "
+"customer's set of orders will be lazy meaning we will not yet have loaded "
+"those orders from the database. Normally this is a good thing. Now lets say "
+"that you have a certain use case where it is more efficient to load the "
+"customer and their orders together. One way certainly is to use \"dynamic "
+"fetching\" strategies via an HQL or criteria queries. But another option is "
+"to use a fetch profile to achieve that. Just add the following to your "
+"mapping:"
+msgstr ""
+"Normalmente, quando você recebe uma referência para um cliente em "
+"particular, o conjunto do cliente de pedidos será lento, significando que "
+"nós ainda não baixamos estes pedidos a partir do banco de dados. Na maioria "
+"das vezes isto é bom. Agora vamos imaginar que você possui um determinado "
+"caso de uso, onde é mais eficiente carregar o cliente e outros pedidos "
+"juntos. Uma maneira correta é utilizar as estratégias de \"busca dinâmica\" "
+"através de um HQL ou consultas de critério. Entretanto, outra opção é usar "
+"um perfil de busca para atingir o mesmo objeto. Apenas adicione o seguinte a "
+"seu mapeamento:"
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr "ou ainda:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now the following code will actually load both the customer <emphasis>and "
+"their orders</emphasis>:"
+msgstr ""
+"Agora que o código seguinte irá carregar ambos cliente <emphasis>e outros "
+"pedidos</emphasis>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Currently only join style fetch profiles are supported, but they plan is to "
+"support additional styles. See <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+"Apenas os perfis de busca em estilo são suportados, mas planeja-se o suporte "
+"de estilos adicionais. Consulte <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> para maiores detalhes."
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr "Usando busca preguiçosa de propriedade"
+
+#. 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 ""
+"O Hibernate3 suporta a busca lazy de propriedades individuais. Essa técnica "
+"de otimização é também conhecida como <emphasis>grupos de busca</emphasis>. "
+"Veja que esta é mais uma caracterÃstica de marketing já que na prática, é "
+"mais importante a otimização nas leituras dos registros do que na leitura "
+"das colunas. Porém, carregar apenas algumas propriedades de uma classe pode "
+"ser útil em casos extremos, onde tabelas legadas podem ter centenas de "
+"colunas e o modelo de dados não pode ser melhorado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To enable lazy property loading, set the <literal>lazy</literal> attribute "
+"on your particular property mappings:"
+msgstr ""
+"Para habilitar a carga de propriedade lazy, é preciso ajustar a função "
+"<literal>lazy</literal> no seu mapeamento de propriedade:"
+
+#. 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 ""
+"A carga de propriedades lazy requer instrumentação de bytecode. Se suas "
+"classes persistentes não forem melhoradas, o Hibernate irá ignorar "
+"silenciosamente essa configuração e usará a busca imediata."
+
+#. Tag: para
+#, no-c-format
+msgid "For bytecode instrumentation, use the following Ant task:"
+msgstr "Para instrumentação de bytecode, use a seguinte tarefa do Ant:"
+
+#. 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 ""
+"Uma forma diferente de evitar leitura de coluna desnecessária, ao menos para "
+"transações de somente leitura, deve-se usar os recursos de projeção do HQL "
+"ou consultas por Critério. Isto evita a necessidade de processamento de "
+"bytecode em build-time e é certamente uma melhor solução."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can force the usual eager fetching of properties using <literal>fetch "
+"all properties</literal> in HQL."
+msgstr ""
+"Você pode forçar a busca antecipada comum de propriedades usando "
+"<literal>buscar todas as propriedades</literal> no HQL."
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr "O Cachê de Segundo NÃvel"
+
+#. 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 ""
+"Uma <literal>Session</literal> do Hibernate é um cache de nÃvel transacional "
+"de dados persistentes. Ã possÃvel configurar um cluster ou um cache de nÃvel "
+"JVM (nÃvel <literal>SessionFactory</literal>) em uma estrutura classe por "
+"classe e coleção por coleção. Você pode até mesmo plugar em um cache em "
+"cluster. Tenha cuidado, pois os caches nunca sabem das mudanças feitas em "
+"armazenamento persistente por um outro aplicativo. No entanto, eles podem "
+"ser configurados para dados em cache vencido regularmente."
+
+#. 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 ""
+"Você tem a opção de informar o Hibernate sobre qual implementação de cache "
+"utilizar, especificando o nome de uma classe que implementa <literal>org."
+"hibernate.cache.CacheProvider</literal> usando a propriedade "
+"<literal>hibernate.cache.provider_class</literal>. O Hibernate vem envolvido "
+"com um número de integrações construÃdas com provedores de cache de fonte "
+"aberta (listados abaixo). Além disso, você pode implementar seu próprio e "
+"plugá-lo como mencionado acima. Note que as versões anteriores ao padrão 3.2 "
+"utilizam EhCache como provedor de cache padrão. "
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr "Provedores de Cache "
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr "Cache"
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr "Classe de provedor"
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr "Tipo"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr "Segurança de Cluster"
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr "Cache de Consulta Suportado"
+
+#. Tag: entry
+#, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr "Hashtable (não recomendado para uso de produção)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr "memória"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes"
+msgstr "sim"
+
+#. Tag: entry
+#, no-c-format
+msgid "EHCache"
+msgstr "EHCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr "memória, disco"
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr "OSCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr "SwarmCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr "clustered (ip multicast)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr "sim (invalidação em cluster)"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr "JBoss Cache 1.x"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr "(ip multicast) em cluster, transacional"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr "sim (replicação)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr "sim (solicitação de sync. de relógio)"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 2"
+msgstr "JBoss Cache 2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr "sim (invalidação ou replicação)"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr "Mapeamento de Cache"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><cache></literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"O elemento <literal><cache></literal> de uma classe ou mapeamento de "
+"coleção possui a seguinte forma:"
+
+#. 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>uso</literal> (solicitado) especifica a estratégia de cache: "
+"<literal>transacional</literal>, <literal>leitura-escrita</literal>, "
+"<literal>leitura-escrita não estrito</literal> ou <literal>somente leitura</"
+"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> (opcional: padrão à classe ou nome papel da "
+"coleção): especifica o nome da região do cache de segundo nÃvel"
+
+#. 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> (opcional: padrão para <literal>all</literal>) "
+"<literal>non-lazy</literal>: especifica que a propriedade da entidade "
+"mapeada com <literal>lazy=\"true\"</literal> pode não estar em cache quando "
+"o nÃvel da função busca lazy for habilitada"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Alternatively, you can specify <literal><class-cache></literal> and "
+"<literal><collection-cache></literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"De forma alternativa, você poderá especificar os elementos <literal><"
+"class-cache></literal> e <literal><collection-cache></literal> em "
+"<literal>hibernate.cfg.xml</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>usage</literal> attribute specifies a <emphasis>cache "
+"concurrency strategy</emphasis>."
+msgstr ""
+"A função <literal>uso </literal> especifica uma <emphasis>estratégia de "
+"concorrência de cache</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr "Estratégia: somente leitura"
+
+#. 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 ""
+"Se sua aplicação precisar ler mas nunca modificar instâncias de uma classe "
+"persistente, pode-se utilizar um cache de <literal>read-only</literal>. Esta "
+"é a estratégia de desempenho mais simples e melhor. à também perfeitamente "
+"seguro para uso em um cluster."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr "Estratégia: leitura/escrita"
+
+#. 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 ""
+"Se a aplicação precisar atualizar dados, um cache de <literal>read-write</"
+"literal> pode ser mais apropriado. Esta estratégia de cache nunca deve ser "
+"usada se solicitado um nÃvel de isolação de transação serializável. Se o "
+"cache for usado em um ambiente JTA, você deve especificar a propriedade "
+"<literal>hibernate.transaction.manager_lookup_class</literal>, nomeando uma "
+"estratégia por obter o <literal>TransactionManager</literal> JTA. Em outros "
+"ambientes, você deve assegurar que a transação está completa quando a "
+"<literal>Session.close()</literal> ou <literal>Session.disconnect()</"
+"literal> for chamada. Se desejar utilizar esta estratégia em um cluster, "
+"você deve assegurar que a implementação de cache adjacente suporta o "
+"bloqueio. Os provedores de cache built-in <emphasis>não</emphasis> suportam "
+"o bloqueamento."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr "Estratégia: leitura/escrita não estrita"
+
+#. 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 ""
+"Se a aplicação somente precisa atualizar dados ocasionalmente (ou seja, se "
+"for extremamente improvável que as duas transações tentem atualizar o mesmo "
+"Ãtem simultaneamente) e não for requerido uma isolação de transação estrita, "
+"o uso deum cache de <literal>nonstrict-read-write</literal> pode ser mais "
+"apropriado. Se um cache é usado em ambiente JTA, você deverá especificar o "
+"<literal>hibernate.transaction.manager_lookup_class</literal>. Em outros "
+"ambientes, você deve assegurar que a transação está completa quando a "
+"<literal>Session.close()</literal> ou <literal>Session.disconnect()</"
+"literal> for chamada."
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr "Estratégia: transacional"
+
+#. 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 ""
+"A estratégia de cache <literal>transactional</literal> provê suporte para "
+"provedores de cache transacional completo como o JBoss TreeCache. Tal cache, "
+"deve ser usado somente em um ambiente JTA e você deverá especificar o "
+"<literal>hibernate.transaction.manager_lookup_class</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr "Compatibilidade de Estratégia de Concorrência de Cache Provedor"
+
+#. Tag: para
+#, no-c-format
+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. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table shows which providers are compatible with which "
+"concurrency strategies."
+msgstr ""
+"A seguinte tabela mostra qual provedor é compatÃvel com qual estratégia de "
+"concorrência. "
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Concurrency Strategy Support"
+msgstr "Suporte de Estratégia de Concorrência de Cache"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr "somente leitura"
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr "leitura-escrita não estrita"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr "leitura-escrita"
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr "transacional"
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr "Gerenciando os caches"
+
+#. 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 ""
+"Quando passar um objeto para <literal>save()</literal>, <literal>update()</"
+"literal> ou <literal>saveOrUpdate()</literal> e quando recuperar um objeto "
+"usando um <literal>load()</literal>, <literal>get()</literal>, <literal>list"
+"()</literal>, <literal>iterate()</literal> ou <literal>scroll()</literal>, "
+"este objeto será adicionado ao cache interno da <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 ""
+"Quando o <literal>flush()</literal> for subsequentemente chamado, o estado "
+"deste objeto será sincronizado com o banco de dados. Se você não desejar que "
+"esta sincronização aconteça ou se você estiver processando uma grande "
+"quantidade de objetos e precisar gerenciar a memória de forma eficiente, o "
+"método <literal>evict()</literal> pode ser usado para remover o objeto de "
+"suas coleções de cache de primeiro nÃvel."
+
+#. 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 ""
+"A <literal>Session</literal> também oferece um método<literal>contains()</"
+"literal> para determinar se uma instância pertence ao cache de sessão."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"To evict all objects from the session cache, call <literal>Session.clear()</"
+"literal>"
+msgstr ""
+"Para despejar completamente todos os objetos do cache de Sessão, chame "
+"<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 ""
+"Para o cache de segundo nÃvel, existem métodos definidos na "
+"<literal>SessionFactory</literal> para despejar o estado de cache de uma "
+"instância, classe inteira, instância de coleção ou papel de coleção inteiro."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>CacheMode</literal> controls how a particular session interacts "
+"with the second-level cache:"
+msgstr ""
+"O <literal>CacheMode</literal> controla como uma sessão em particular "
+"interage com o cache de segundo nÃvel:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
+msgstr ""
+"<literal>CacheMode.NORMAL</literal> - lê e escreve itens ao cache de segundo "
+"nÃvel."
+
+#. 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>: itens de leitura do cache de segundo "
+"nÃvel. Não escreve ao cache de segundo nÃvel, exceto quando atualizar dados."
+
+#. 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>: escreve itens ao cache de segundo nÃvel. "
+"Não lê a partir do cache de segundo nÃvel."
+
+#. 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>: escreve itens ao cache de segundo "
+"nÃvel, mas não lê a partir do cache de segundo nÃvel. Passa o efeito de "
+"<literal>hibernate.cache.use_minimal_puts</literal>, forçando uma "
+"atualização do cache de segundo nÃvel para que todos os itens leiam a partir "
+"do banco de dados. "
+
+#. 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 ""
+"Para navegar o conteúdo do segundo nÃvel ou região de cache de consulta, use "
+"o<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 ""
+"Você precisará habilitar estatÃsticas e, opcionalmente, forçar o Hibernate a "
+"manter as entradas de cache em um formato mais compreensÃvel: "
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr "O Cache de Consulta"
+
+#. 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."
+msgstr ""
+"O conjunto de resultado de consulta pode também estar em cache. Isto é útil, "
+"somente para consultas que são rodadas freqüentemente com os mesmos "
+"parâmetros. "
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr "Ativação do cache de consulta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Caching of query results introduces some overhead in terms of your "
+"applications normal transactional processing. For example, if you cache "
+"results of a query against Person Hibernate will need to keep track of when "
+"those results should be invalidated because changes have been committed "
+"against Person. That, coupled with the fact that most applications simply "
+"gain no benefit from caching query results, leads Hibernate to disable "
+"caching of query results by default. To use query caching, you will first "
+"need to enable the query cache:"
+msgstr ""
+"A aplicação do cache nos resultados de consulta introduz alguns resultados "
+"referentes o seu processamento transacional normal de aplicações. Por "
+"exemplo, se você realizar o cache nos resultados de uma consulta do Person "
+"Hibernate, você precisará acompanhar quando estes resultados deverão ser "
+"inválidos devido alterações salvas no Person. Tudo isto, acompanhado com o "
+"fato de que a maioria dos aplicativos não recebem benefÃcio algum ao "
+"realizar o cache nos resultados da consulta, levando o Hibernate a desativar "
+"o cache de resultados de consulta por padrão. Para uso do cache de consulta, "
+"você primeiro precisa ativar o cache de consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr "Esta configuração cria duas novas regiões de cache:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the "
+"cached query results"
+msgstr ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, mantendo os "
+"resultados da consulta com cache."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding "
+"timestamps of the most recent updates to queryable tables. These are used to "
+"validate the results as they are served from the query cache."
+msgstr ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, mantém os "
+"timestamps das atualizações mais recentes para tabelas consultáveis. Elas "
+"são usadas para validar os resultados uma vez que elas são servidas a partir "
+"do cache de consulta."
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you configure your underlying cache implementation to use expiry or "
+"timeouts is is very important that the cache timeout of the underlying cache "
+"region for the UpdateTimestampsCache be set to a higher value than the "
+"timeouts of any of the query caches. In fact, we recommend that the the "
+"UpdateTimestampsCache region not be configured for expiry at all. Note, in "
+"particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+"Se você configurar sua implementação de cache adjacente para usar expirar ou "
+"intervalo, é bastante importante que o intervalo do cache da região de cache "
+"adjacente para o UpdateTimestampsCache seja coonfigurado num valor mais alto "
+"que os intervalos de qualquer um dos caches de consulta. Na realidade, nós "
+"recomendamos que a região UpdateTimestampsCache não seja configurada para "
+"expirar. Perceba que uma polÃtica expirar do cache LRU nunca será apropriada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As mentioned above, most queries do not benefit from caching or their "
+"results. So by default, individual queries are not cached even after "
+"enabling query caching. To enable results caching for a particular query, "
+"call <literal>org.hibernate.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 ""
+"Conforme mencionado acima, a maioria das consultas não se beneficiam do "
+"cache ou de seus resultados. Portanto por padrão, as consultas individuais "
+"não estão em cache mesmo depois de ativar o cache de consulta. Para "
+"habilitar o caching de resultados, chame <literal>org.hibernate.Query."
+"setCacheable(true)</literal>. Esta chamada permite que a consulta procure "
+"por resultados de caches existentes ou adicione seus resultados ao cache "
+"quando for executado. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query cache does not cache the state of the actual entities in the "
+"cache; it caches only identifier values and results of value type. For this "
+"reaso, the query cache should always be used in conjunction with the second-"
+"level cache for those entities expected to be cached as part of a query "
+"result cache (just as with collection caching)."
+msgstr ""
+"O cache de consulta não realiza o cache ao estado de entidades atuais no "
+"cache, ele apenas realiza o cache nos valores identificadores e resultados "
+"do tipo de valor. Por esta razão, o cache de consulta deve sempre ser usado "
+"em conjunção com o cache de segundo nÃvel para as entidades esperadas a "
+"sofrerem o cache como parte de um cache de resultado de consulta (apenas com "
+"o cache de coleção)."
+
+#. Tag: title
+#, no-c-format
+msgid "Query cache regions"
+msgstr "Regiões de cache de consulta"
+
+#. 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 ""
+"Se você solicitar um controle de granulado fino com polÃticas de validade do "
+"cache de consulta, você poderá especificar uma região de cache nomeada para "
+"uma consulta em particular, chamando <literal>Query.setCacheRegion()</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to force the query cache to refresh one of its regions "
+"(disregard any cached results it finds there) you can use <literal>org."
+"hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction "
+"with the region you have defined for the given query, Hibernate will "
+"selectively force the results cached in that particular region to be "
+"refreshed. This is particularly useful in cases where underlying data may "
+"have been updated via a separate process and is a far more efficient "
+"alternative to bulk eviction of the region via <literal>org.hibernate."
+"SessionFactory.evictQueries()</literal>."
+msgstr ""
+"Se você quiser forçar um cache de consulta para uma atualização de sua "
+"região (independente de quaisquer resultados com cache encontrados nesta "
+"região), você poderá usar <literal>org.hibernate.Query.setCacheMode"
+"(CacheMode.REFRESH)</literal>. Juntamente com a região que você definiu para "
+"o cache gerado, o Hibernate seletivamente forçará os resultados com cache, "
+"naquela região particular a ser atualizada. Isto é particularmente útil em "
+"casos onde dados adjacentes podem ter sido atualizados através de um "
+"processo em separado , além de ser uma alternativa mais eficiente se "
+"aplicada ao despejo de uma região de cache através de "
+"<literal>SessionFactory.evictQueries()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr "Entendendo o desempenho da Coleção"
+
+#. 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 ""
+"Nas seções anteriores nós descrevemos as coleções e seus aplicativos. Nesta "
+"seção nós exploraremos mais problemas em relação à s coleções no perÃodo de "
+"execução."
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr "Taxonomia"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr "O Hibernate define três tipos básicos de coleções:"
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr "Coleções de valores"
+
+#. Tag: para
+#, no-c-format
+msgid "one-to-many associations"
+msgstr "Associações um-para-muitos "
+
+#. Tag: para
+#, no-c-format
+msgid "many-to-many associations"
+msgstr "Associações muitos-para-muitos "
+
+#. 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 ""
+"A classificação distingue as diversas tabelas e relacionamento de chave "
+"externa, mas não nos diz tudo que precisamos saber sobre o modelo "
+"relacional. Para entender completamente a estrutura relacional e as "
+"caracterÃsticas de desempenho, devemos também considerar a estrutura da "
+"chave primária que é usada pelo Hibernate para atualizar ou deletar linhas "
+"de coleções. Isto sugere a seguinte classificação:"
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr "Coleções indexadas"
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr "conjuntos"
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr "Bags"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal><key></literal> and <literal><index></"
+"literal> columns. In this case, collection updates are extremely efficient. "
+"The primary key can be efficiently indexed and a particular row can be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"Todas as coleções indexadas (mapas, listas, matrizes) possuem uma chave "
+"primária, que consiste em colunas <literal><key></literal> e "
+"<literal><index></literal>. Neste caso, as atualizações de coleção são "
+"geralmente muito eficientes. A chave primária pode ser indexada de forma "
+"eficiente e uma linha em particular pode ser localizada de forma eficiente "
+"quando o Hibernate tentar atualizar ou deletá-la. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal><key></literal> and "
+"element columns. This can be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields, as "
+"the database may not be able to index a complex primary key as efficiently. "
+"However, for one-to-many or many-to-many associations, particularly in the "
+"case of synthetic identifiers, it is likely to be just as efficient. If you "
+"want <literal>SchemaExport</literal> to actually create the primary key of a "
+"<literal><set></literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"Os conjuntos possuem uma chave primária que consiste em <literal><key>"
+"</literal> e colunas de elemento. Isto pode ser menos eficiente para alguns "
+"tipos de elementos de coleções, especialmente elementos compostos ou textos "
+"grandes ou ainda campos binários. O banco de dados pode não ser capaz de "
+"indexar uma chave primária complexa de forma tão eficiente. Por um outro "
+"lado, para associações um-para-muitos ou muitos-para-muitos, especialmente "
+"no caso de identificadores sintáticos, é bem provável que seja tão eficiente "
+"quanto. Se você quiser que o <literal>SchemaExport</literal> crie para você "
+"uma chave primária de um <literal><set></literal> você deverá declarar "
+"todas as colunas como <literal>not-null=\"true\"</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><idbag></literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"Os mapeamentos <literal><idbag></literal> definem uma chave "
+"substituta, para que elas sejam sempre muito eficientes ao atualizar. Na "
+"verdade, este é o melhor caso. "
+
+#. 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 ""
+"As Bags são os piores casos. Como uma bag permite duplicar valores de "
+"elementos e não possui coluna de Ãndice, não se deve definir nenhuma chave "
+"primária. O Hibernate não tem como distinguir entre linhas duplicadas. O "
+"Hibernate resolve este problema, removendo completamente em um único "
+"<literal>DELETE</literal> e recria a coleção quando mudar. Isto pode ser "
+"bastante ineficiente."
+
+#. 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 ""
+"Note que para uma associação um-para-muitos, a chave primária pode não ser a "
+"chave primária fÃsica da tabela do banco de dados, mas mesmo neste caso, a "
+"classificação acima é ainda útil. Isto reflete como o Hibernate \"localiza\" "
+"linhas individuais da coleção."
+
+#. Tag: title
+#, no-c-format
+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"
+
+#. 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 ""
+"A partir da discussão acima, deve ficar claro que as coleções indexadas e "
+"conjuntos (geralmente) permitem uma operação mais eficente em termos de "
+"adição, remoção e atualização de elementos. "
+
+#. 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 ""
+"Existe ainda, mais uma vantagem, das coleções indexadas sob conjuntos para "
+"associações muitos-para-muitos. Por causa da estrutura de um <literal>Set</"
+"literal>, o Hibernate nunca utiliza o comando <literal>UPDATE</literal> em "
+"uma linha quando um elemento é \"modificado\". As mudanças para o <literal> "
+"Conjunto</literal> funcionam sempre através do comando <literal>INSERT</"
+"literal> e <literal>DELETE</literal> de linhas individuais. Novamente, esta "
+"consideração não se aplica às associações um para muitos. "
+
+#. 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 ""
+"Após observar que as matrizes não podem ser preguiçosas, nós concluimos que "
+"as listas, mapas e bags de id são tipos de coleções com maior desempenho "
+"(não inverso), com conjuntos que não ficam atrás. Espera-se que os conjuntos "
+"sejam um tipo mais comum de coleção nas aplicações Hibernate. Isto porque as "
+"semânticas \"conjunto\" são mais naturais em modelos relacionais. "
+
+#. 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 ""
+"No entanto, em modelos de domÃnio de Hibernate bem criados, geralmente vemos "
+"que a maioria das coleções são de fato, associações um-para-muitos com "
+"<literal>inverse=\"true\"</literal>. Para estas associações, a atualização é "
+"manipulada pelo lado muitos-para-um de uma associação e portanto "
+"considerações de desempenho de atualização de coleção simplesmente não se "
+"aplicam a este caso. "
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr "As Bags e listas são as coleções de inversão mais eficientes."
+
+#. 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 ""
+"Existe um caso em particular no qual as bags (e também as listas) possuem um "
+"desempenho muito maior do que conjuntos. Para uma coleção com "
+"<literal>inverse=\"true\"</literal>, o idioma de relacionamento um-para-um "
+"bidirecional padrão, por exemplo, podemos adicionar elementos a uma bag ou "
+"uma lista sem precisar inicializar (buscar) os elementos da bag. Isto "
+"acontece porque a <literal>Collection.add()</literal> ou <literal>Collection."
+"addAll()</literal> deve sempre retornar verdadeira para uma bag ou "
+"<literal>List</literal>. Isto pode fazer que o código comum seguinte seja "
+"muito mais rápido:"
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr "Deletar uma vez"
+
+#. 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 ""
+"Ãs vezes, deletar elementos de coleção um por um pode ser extremamente "
+"ineficiente. O Hibernate não é completamente burro, portanto ele sabe que "
+"não deve fazer isso no caso de uma coleção que tenha sido esvaziada "
+"recentemente (se você chamou <literal>list.clear()</literal>, por exemplo). "
+"Neste caso, o Hibernate irá editar um único <literal>DELETE</literal>."
+
+#. 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 ""
+"Vamos supor que tenha adicionado um elemento único à uma coleção de tamanho "
+"vinte e então remove dois elementos. O Hibernate irá editar uma instrução "
+"<literal>INSERT</literal> e duas instruções <literal>DELETE</literal>, a não "
+"ser que a coleção seja uma bag. Isto é certamente desejável."
+
+#. 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 ""
+"No entanto, suponha que removamos dezoito elementos, deixando dois e então "
+"adicionando três novos elementos. Existem duas formas possÃveis de se "
+"proceder:"
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr "delete dezoito linhas uma por uma e então insira três linhas"
+
+#. 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"
+msgstr ""
+"remova toda a coleção em um SQL <literal>DELETE</literal> e insira todos os "
+"cinco elementos atuais, um por um"
+
+#. 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 ""
+"O Hibernate não sabe que a segunda opção é provavelmente mais rápida neste "
+"caso. O Hibernate não deseha saber a opção, uma vez que tal comportamento "
+"deve confundir os triggers do banco de dados, etc."
+
+#. 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 ""
+"Felizmente, você pode forçar este comportamento (ou seja, uma segunda "
+"estratégia) a qualquer momento, descartando (ou seja, desreferenciando) a "
+"coleção original e retornando uma coleção recentemente instanciada com todos "
+"os elementos atuais. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"à claro que, deletar somente uma vez, não se aplica às coleções mapeadas "
+"<literal>inverse=\"true\"</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr "Monitorando desempenho"
+
+#. 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 ""
+"A otimização não é muito usada sem o monitoramento e acesso ao número de "
+"desempenho. O Hibernate oferece uma grande variedade de números sobre suas "
+"operações internas. EstatÃsticas em Hibernate estão disponÃveis através do "
+"<literal>SessionFactory</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr "Monitorando uma SessionFactory"
+
+#. 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 ""
+"Você poderá acessar as métricas da <literal>SessionFactory</literal> de duas "
+"formas. Sua primeira opção é chamar a <literal>sessionFactory.getStatistics()"
+"</literal> e ler ou dispôr as <literal>EstatÃsticas</literal> você mesmo."
+
+#. 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 ""
+"O Hibernate também usa o JMX para publicar métricas se você habilitar o "
+"MBean de <literal>StatisticsService</literal>. Você deve habiliar um MBean "
+"único para todas as suas <literal>SessionFactory</literal> ou uma por "
+"factory. Veja o seguinte código para exemplos de configurações "
+"minimalÃsticos: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can activate and deactivate the monitoring for a "
+"<literal>SessionFactory</literal>:"
+msgstr ""
+"Você pode (des)ativar o monitoramento para uma <literal>SessionFactory</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"at configuration time, set <literal>hibernate.generate_statistics</literal> "
+"to <literal>false</literal>"
+msgstr ""
+"no tempo de configuração, ajuste <literal>hibernate.generate_statistics</"
+"literal> para <literal>falso</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"at runtime: <literal>sf.getStatistics().setStatisticsEnabled(true)</literal> "
+"or <literal>hibernateStatsBean.setStatisticsEnabled(true)</literal>"
+msgstr ""
+"em tempo de espera: <literal>sf.getStatistics().setStatisticsEnabled(true)</"
+"literal> ou <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 ""
+"As estatÃsticas podem ser reajsutadas de forma programática, usando o método "
+"<literal>clear()</literal>. Um resumo pode ser enviado para o usuário (nÃvel "
+"de info) usando o método <literal>logSummary()</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr "Métricas"
+
+#. 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 ""
+"O Hibernate oferece um número de métricas, desde informações bem básicas até "
+"especializadas, somente relevantes a certos cenários. Todos os contadores "
+"disponÃveis estão descritos na API da interface <literal>Statistics</"
+"literal>, em três categorias: "
+
+#. 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 ""
+"As métricas relacionadas ao uso da <literal>Sessão</literal>, tal como um "
+"número de sessões em aberto, conexões JDBC recuperadas, etc."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Metrics related to the entities, collections, queries, and caches as a whole "
+"(aka global metrics)."
+msgstr ""
+"As métricas relacionadas às entidades, coleções, consultas e caches como um "
+"todo (mais conhecido como métricas globais). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Detailed metrics related to a particular entity, collection, query or cache "
+"region."
+msgstr ""
+"Métricas detalhadas relacionadas à uma entidade em particular, coleção, "
+"consulta ou região de cache."
+
+#. 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 ""
+"Por exemplo, você pode verificar a coincidência de um cache, perder e "
+"colocar a relação entre as entidades, colações e consultas e tempo médio que "
+"uma consulta precisa. Esteja ciente de que o número de milisegundos é "
+"sujeito a aproximação em Java. O Hibernate é preso à precisão do JVM, em "
+"algumas plataformas a precisão chega a ser de 10 segundos. "
+
+#. 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 ""
+"Os Getters simples são usados para acessar métricas globais (ou seja, não "
+"presos à uma entidade em particular, coleção, região de cache, etc.) Você "
+"pode acessar as métricas de uma entidade em particular, coleção ou região de "
+"cache através de seu nome e através de sua representação de HQL ou SQL para "
+"consultas. Por favor consulte a Javadoc API <literal>Statistics</literal>, "
+"<literal>EntityStatistics</literal>, <literal>CollectionStatistics</"
+"literal>, <literal>SecondLevelCacheStatistics</literal>, e "
+"<literal>QueryStatistics</literal> para maiores informações. O seguinte "
+"código mostra um exemplo simples: "
+
+#. 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 ""
+"Para trabalhar em todas as entidades, coleções, consultas e caches "
+"regionais, você poderá recuperar os nomes de lista de entidades, coleções, "
+"consultas e caches regionais com os seguintes métodos: <literal>getQueries()"
+"</literal>, <literal>getEntityNames()</literal>, "
+"<literal>getCollectionRoleNames()</literal>, e "
+"<literal>getSecondLevelCacheRegionNames()</literal>. "
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/persistent_classes.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/persistent_classes.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/persistent_classes.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,747 @@
+# translation of persistent_classes.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: persistent_classes\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-18 14:48+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "Classes Persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Persistent classes are classes in an application that implement the entities "
+"of the business problem (e.g. Customer and Order in an E-commerce "
+"application). Not all instances of a persistent class are considered to be "
+"in the persistent state. For example, an instance can instead be transient "
+"or detached."
+msgstr ""
+"As classes persistentes são classes dentro de um aplicativo que implementa "
+"as entidades de problemas de negócios (ex.: Cliente e Pedido em um "
+"aplicativo e-commerce). Nem todas as instâncias de uma classe persistente "
+"estão em estado persistente, uma instância pode, ao invés disso, ser "
+"transiente ou desanexada. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate works best if these classes follow some simple rules, also known "
+"as the Plain Old Java Object (POJO) programming model. However, none of "
+"these rules are hard requirements. Indeed, Hibernate3 assumes very little "
+"about the nature of your persistent objects. You can express a domain model "
+"in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr ""
+"O Hibernate trabalha melhor se estas classes seguirem uma regra simples, "
+"também conhecida como modelo de programação Objeto de Java Antigo Simples "
+"(POJO). No entanto, nenhuma destas regras são difÃceis solicitações. "
+"Certamente, o Hibernate3 considera muito pouco da natureza de seus objetos "
+"persistentes. Você pode expressar um modelo de domÃnio de outras formas (por "
+"exemplo: utilizando árvores de instâncias <literal>Map</literal>)."
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr "Um exemplo simples de POJO"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Most Java applications require a persistent class representing felines. For "
+"example:"
+msgstr ""
+"A maior parte dos aplicativos Java requerem uma classe persistente que "
+"representa os felinos. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The four main rules of persistent classes are explored in more detail in the "
+"following sections."
+msgstr ""
+"As quatro regras principais das classes persistentes são descritas em "
+"maiores detalhes nas seguintes seções."
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr "Implemente um construtor de não argumento"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a no-argument constructor. All persistent classes "
+"must have a default constructor (which can be non-public) so that Hibernate "
+"can instantiate them using <literal>Constructor.newInstance()</literal>. It "
+"is recommended that you have a default constructor with at least "
+"<emphasis>package</emphasis> visibility for runtime proxy generation in "
+"Hibernate."
+msgstr ""
+"<literal>Cat</literal> possui um construtor de não argumento. Todas as "
+"classes persistentes devem ter um construtor padrão (que não pode ser "
+"público), para que o Hibernate possa instanciá-lo utilizando um "
+"<literal>Constructor.newInstance()</literal>. Nós recomendamos enfaticamente "
+"ter um construtor padrão com ao menos uma visibilidade <emphasis>package</"
+"emphasis> para a geração de um proxy de tempo de espera no Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr "Providencie uma propriedade de identificador (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> has a property called <literal>id</literal>. This "
+"property maps to the primary key column of a database table. The property "
+"might have been called anything, and its type might have been any primitive "
+"type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or "
+"<literal>java.util.Date</literal>. If your legacy database table has "
+"composite keys, you can use a user-defined class with properties of these "
+"types (see the section on composite identifiers later in the chapter.)"
+msgstr ""
+"<literal>Cat</literal> possui uma propriedade chamada <literal>id</literal>. "
+"Esta propriedade mapeia para a coluna de chave primária de uma tabela de "
+"banco de dados. A propriedade pode ter sido chamada por qualquer nome e seu "
+"tipo pode ter sido qualquer um primitivo, ou qualquer tipo \"wrapper\", "
+"<literal>java.lang.String</literal> ou <literal>java.util.Date</literal>. Se "
+"sua tabela de banco de dados de legacia possuir chaves compostas, você "
+"também poderá usar uma classe de usuário definido, com propriedades destes "
+"tipos (veja a seção de identificadores compostos mais adiante.)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The identifier property is strictly optional. You can leave them off and let "
+"Hibernate keep track of object identifiers internally. We do not recommend "
+"this, however."
+msgstr ""
+"A propriedade de identificador é estritamente opcional. Você pode deixá-los "
+"desligados e deixar que o Hibernate encontre os identificadores de objeto "
+"internamente. No entanto, não recomendamos que faça isto."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In fact, some functionality is available only to classes that declare an "
+"identifier property:"
+msgstr ""
+"Na verdade, algumas funcionalidades estão disponÃveis somente para classes "
+"que declaram uma propriedade de identificador:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Transitive reattachment for detached objects (cascade update or cascade "
+"merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr ""
+"Reconexão transitiva para objetos desanexados (atualização de cascata ou "
+"mesclagem de cascata) - veja <xref linkend=\"objectstate-transitive\" />"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "<literal>Session.saveOrUpdate()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr "<literal>Session.merge()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"We recommend that you declare consistently-named identifier properties on "
+"persistent classes and that you use a nullable (i.e., non-primitive) type."
+msgstr ""
+"Recomendamos que você declare propriedades de identificador nomeados de "
+"forma consistente nas classes persistentes e que você use um tipo anulável "
+"(ou seja, não primitivo)."
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr "Prefira classes não finais (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon "
+"the persistent class being either non-final, or the implementation of an "
+"interface that declares all public methods."
+msgstr ""
+"Um recurso central do Hibernate, <emphasis>proxies</emphasis>, depende da "
+"classe persistente ser tanto não final como uma implementação de uma "
+"interface que declare todos os métodos públicos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can persist <literal>final</literal> classes that do not implement an "
+"interface with Hibernate. You will not, however, be able to use proxies for "
+"lazy association fetching which will ultimately limit your options for "
+"performance tuning."
+msgstr ""
+"Você pode persistir as classes <literal>final</literal> que não implementam "
+"uma interface com o Hibernate, mas não poderá usar os proxies para busca por "
+"associação lazy, que irá limitar suas opções para ajuste de desempenho. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You should also avoid declaring <literal>public final</literal> methods on "
+"the non-final classes. If you want to use a class with a <literal>public "
+"final</literal> method, you must explicitly disable proxying by setting "
+"<literal>lazy=\"false\"</literal>."
+msgstr ""
+"Você deve evitar declarar métodos <literal>public final</literal> em classes "
+"não finais. Se você desejar usar uma classe com um método <literal>public "
+"final</literal> você deve desabilitar o proxy explicitamente, ajustando "
+"<literal>lazy=\"false\"</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr "Declare acessores e mutadores para campos persistentes (opcional)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>Cat</literal> declares accessor methods for all its persistent "
+"fields. Many other ORM tools directly persist instance variables. It is "
+"better to provide an indirection between the relational schema and internal "
+"data structures of the class. By default, Hibernate persists JavaBeans style "
+"properties and recognizes method names of the form <literal>getFoo</"
+"literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If "
+"required, you can switch to direct field access for particular properties."
+msgstr ""
+"<literal>Cat</literal> declara os métodos assessores para todos os seus "
+"campos persistentes. Muitas ferramentas ORM persistem diretamente variáveis "
+"de instâncias. Acreditamos ser melhor prover uma indireção entre o esquema "
+"relacional e as estruturas de dados internos da classe. Por padrão, o "
+"Hibernate persiste as propriedades de estilo JavaBeans, e reconhece nomes de "
+"métodos da forma <literal>getFoo</literal>, <literal>isFoo</literal> e "
+"<literal>setFoo</literal>. Caso solicitado, você pode mudar para direcionar "
+"acesso ao campo para certas propriedades, caso seja necessário. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties need <emphasis>not</emphasis> be declared public - Hibernate can "
+"persist a property with a default, <literal>protected</literal> or "
+"<literal>private</literal> get / set pair."
+msgstr ""
+"As propriedades precisam <emphasis>not</emphasis> ser declaradas como "
+"públicas. O Hibernate pode persistir uma propriedade com um par get/set "
+"padrão <literal>protegido</literal> ou <literal>privado</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr "Implementando herança"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A subclass must also observe the first and second rules. It inherits its "
+"identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr ""
+"Uma subclasse também deve observar as primeiras e segundas regras. Ela herda "
+"sua propriedade de identificador a partir das superclasses, <literal>Cat</"
+"literal>. Por exemplo:"
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr "Implementando <literal>equals()</literal> e <literal>hashCode()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You have to override the <literal>equals()</literal> and <literal>hashCode()"
+"</literal> methods if you:"
+msgstr ""
+"Você precisa substituir os métodos <literal>equals()</literal> e "
+"<literal>hashCode()</literal> se você:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"intend to put instances of persistent classes in a <literal>Set</literal> "
+"(the recommended way to represent many-valued associations); <emphasis>and</"
+"emphasis>"
+msgstr ""
+"pretender inserir instâncias de classes persistentes em um <literal>Set</"
+"literal> (a forma mais recomendada é representar associações de muitos "
+"valores), <emphasis>e</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr "pretender usar reconexão de instâncias desanexadas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate guarantees equivalence of persistent identity (database row) and "
+"Java identity only inside a particular session scope. When you mix instances "
+"retrieved in different sessions, you must implement <literal>equals()</"
+"literal> and <literal>hashCode()</literal> if you wish to have meaningful "
+"semantics for <literal>Set</literal>s."
+msgstr ""
+"O Hibernate garante a equivalência de identidades persistentes (linha de "
+"base de dados) e identidade Java somente dentro de um certo escopo de "
+"sessão. Dessa forma, assim que misturarmos instâncias recuperadas em sessões "
+"diferentes, devemos implementar <literal>equals()</literal> e "
+"<literal>hashCode()</literal> se quisermos ter semânticas significativas "
+"para os <literal>Set</literal>s. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The most obvious way is to implement <literal>equals()</literal>/"
+"<literal>hashCode()</literal> by comparing the identifier value of both "
+"objects. If the value is the same, both must be the same database row, "
+"because they are equal. If both are added to a <literal>Set</literal>, you "
+"will only have one element in the <literal>Set</literal>). Unfortunately, "
+"you cannot use that approach with generated identifiers. Hibernate will only "
+"assign identifier values to objects that are persistent; a newly created "
+"instance will not have any identifier value. Furthermore, if an instance is "
+"unsaved and currently in a <literal>Set</literal>, saving it will assign an "
+"identifier value to the object. If <literal>equals()</literal> and "
+"<literal>hashCode()</literal> are based on the identifier value, the hash "
+"code would change, breaking the contract of the <literal>Set</literal>. See "
+"the Hibernate website for a full discussion of this problem. This is not a "
+"Hibernate issue, but normal Java semantics of object identity and equality."
+msgstr ""
+"A forma mais óbvia é implementar <literal>equals()</literal>/"
+"<literal>hashCode()</literal> comparando o valor do identificador de ambos "
+"objetos. Caso o valor seja o mesmo, ambos devem ter a mesma linha de base de "
+"dados, assim eles serão iguais (se ambos forem adicionados a um "
+"<literal>Set</literal>, nós só teremos um elemento no <literal>Set</"
+"literal>). Infelizmente, não podemos usar esta abordagem com os "
+"identificadores gerados. O Hibernate atribuirá somente os valores de "
+"identificadores aos objetos que forem persistentes, uma instância "
+"recentemente criada não terá nenhum valor de identificador. Além disso, se "
+"uma instância não for salva e estiver em um <literal>Set</literal>, salvá-la "
+"atribuirá um valor de identificador ao objeto. Se <literal>equals()</"
+"literal> e <literal>hashCode()</literal> fossem baseados em um valor "
+"identificador, o código hash teria mudado, quebrando o contrato do "
+"<literal>Set</literal>. Consulte o website do Hibernate para acessar uma "
+"discussão completa sobre este problema. Note que esta não é uma edição do "
+"Hibernate, e sim semânticas naturais do Java de igualdade e identidade."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is recommended that you implement <literal>equals()</literal> and "
+"<literal>hashCode()</literal> using <emphasis>Business key equality</"
+"emphasis>. Business key equality means that the <literal>equals()</literal> "
+"method compares only the properties that form the business key. It is a key "
+"that would identify our instance in the real world (a <emphasis>natural</"
+"emphasis> candidate key):"
+msgstr ""
+"Recomendamos implementar <literal>equals()</literal> e <literal>hashCode()</"
+"literal> usando <emphasis>Business key equality</emphasis>. A chave de "
+"negócios significa que o método <literal>equals()</literal> compara somente "
+"a propriedade que formar uma chave de negócios, uma chave que identificaria "
+"nossa instância na realidade (uma chave de candidato <emphasis>natural</"
+"emphasis>): "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A business key does not have to be as solid as a database primary key "
+"candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable "
+"or unique properties are usually good candidates for a business key."
+msgstr ""
+"Note que uma chave de negócios não tem que ser tão sólida quanto um "
+"candidato de chave primária de base de dados (veja <xref linkend=\"transactions-basics-identity\" />). Propriedades imutáveis ou únicas são "
+"bons candidatos para uma chave de negócios. "
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr "Modelos dinâmicos"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>The following features are currently considered experimental and "
+"may change in the near future.</emphasis>"
+msgstr ""
+"<emphasis>Os recursos seguintes são considerados experimentais no momento e "
+"podem mudar no futuro.</emphasis> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Persistent entities do not necessarily have to be represented as POJO "
+"classes or as JavaBean objects at runtime. Hibernate also supports dynamic "
+"models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) "
+"and the representation of entities as DOM4J trees. With this approach, you "
+"do not write persistent classes, only mapping files."
+msgstr ""
+"Entidades persistentes não precisam ser representadas como classes POJO ou "
+"como objetos JavaBeans em tempo de espera. O Hibernate também suporta "
+"modelos dinâmicos (usando <literal>Map</literal>s de <literal>Map</literal>s "
+"em tempo de execução) e a representação de entidades como árvores DOM4J. Com "
+"esta abordagem, você não escreve classes persistes, somente arquivos de "
+"mapeamentos. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By default, Hibernate works in normal POJO mode. You can set a default "
+"entity representation mode for a particular <literal>SessionFactory</"
+"literal> using the <literal>default_entity_mode</literal> configuration "
+"option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr ""
+"Por padrão, o Hibernate funciona em modo POJO normal. Você deve ajustar um "
+"modo de representação de entidade por padrão para uma certa "
+"<literal>SessionFactory</literal> usando a opção de configuração "
+"<literal>default_entity_mode</literal> (veja <xref linkend=\"configuration-optional-properties\" />). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following examples demonstrate the representation using <literal>Map</"
+"literal>s. First, in the mapping file an <literal>entity-name</literal> has "
+"to be declared instead of, or in addition to, a class name:"
+msgstr ""
+"Os seguintes exemplos demonstram a representação usando <literal>Map</"
+"literal>s. Primeiro, no arquivo de mapeamento, um <literal>entity-name</"
+"literal> precisa ser declarado ao invés de (ou além de) um nome de classe:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Even though associations are declared using target class names, the target "
+"type of associations can also be a dynamic entity instead of a POJO."
+msgstr ""
+"Note que embora as associações sejam declaradas utilizando nomes de classe, "
+"o tipo alvo de uma associação pode também ser uma entidade dinâmica, ao "
+"invés de um POJO. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After setting the default entity mode to <literal>dynamic-map</literal> for "
+"the <literal>SessionFactory</literal>, you can, at runtime, work with "
+"<literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr ""
+"Após ajustar o modo de entidade padrão para <literal>dynamic-map</literal> "
+"para a <literal>SessionFactory</literal>, você poderá trabalhar com "
+"<literal>Map</literal>s de <literal>Map</literal>s no perÃodo de execução: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One of the main advantages of dynamic mapping is quick turnaround time for "
+"prototyping, without the need for entity class implementation. However, you "
+"lose compile-time type checking and will likely deal with many exceptions at "
+"runtime. As a result of the Hibernate mapping, the database schema can "
+"easily be normalized and sound, allowing to add a proper domain model "
+"implementation on top later on."
+msgstr ""
+"As vantagens de um mapeamento dinâmico são o tempo de retorno rápido para "
+"realizar o protótipo sem a necessidade de implementar uma classe de "
+"entidade. No entanto, você perde o tipo de tempo de compilação, verificando "
+"e muito provavelmente terá que lidar com muitas exceções de tempo de espera. "
+"Graças ao mapeamento do Hibernate, o esquema do banco de dados pode ser "
+"facilmente normalizado e seguro, permitindo adicionar uma implementação "
+"modelo de domÃnio apropriado na camada do topo num futuro próximo. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Entity representation modes can also be set on a per <literal>Session</"
+"literal> basis:"
+msgstr ""
+"Modos de representação de entidade podem ser também ajustados para base por "
+"<literal>Session</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please note that the call to <literal>getSession()</literal> using an "
+"<literal>EntityMode</literal> is on the <literal>Session</literal> API, not "
+"the <literal>SessionFactory</literal>. That way, the new <literal>Session</"
+"literal> shares the underlying JDBC connection, transaction, and other "
+"context information. This means you do not have to call <literal>flush()</"
+"literal> and <literal>close()</literal> on the secondary <literal>Session</"
+"literal>, and also leave the transaction and connection handling to the "
+"primary unit of work."
+msgstr ""
+"Por favor, note que a chamada para a <literal>getSession()</literal> usando "
+"um <literal>EntityMode</literal> está na API de <literal>Session</literal> e "
+"não na <literal>SessionFactory</literal>. Dessa forma, a nova "
+"<literal>Session</literal> compartilha a conexão, transação e outra "
+"informação de contexto JDBC adjacente. Isto significa que você não precisará "
+"chamar <literal>flush()</literal> e <literal>close()</literal> na "
+"<literal>Session</literal> secundária, e também deixar a transação e o "
+"manuseio da conexão para a unidade primária do trabalho. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"More information about the XML representation capabilities can be found in "
+"<xref linkend=\"xml\" />."
+msgstr ""
+"Você poderá encontrar maiores informações sobre as atividades de "
+"representação XML em <xref linkend=\"xml\" />. "
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr "Tuplizadores"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are "
+"responsible for managing a particular representation of a piece of data "
+"given that representation's <literal>org.hibernate.EntityMode</literal>. If "
+"a given piece of data is thought of as a data structure, then a tuplizer is "
+"the thing that knows how to create such a data structure and how to extract "
+"values from and inject values into such a data structure. For example, for "
+"the POJO entity mode, the corresponding tuplizer knows how create the POJO "
+"through its constructor. It also knows how to access the POJO properties "
+"using the defined property accessors."
+msgstr ""
+"<literal>org.hibernate.tuple.Tuplizer</literal>, e suas sub-interfaces, são "
+"responsáveis por gerenciar uma certa representação de uma parte de dado, "
+"dada a <literal>org.hibernate.EntityMode</literal> da representação. Se uma "
+"parte de dado é tida como uma estrutura de dado, então o tuplizador se "
+"encarrega de criar tal estrutura de dado e como extrair e injetar valores de "
+"e em tal estrutura de dados. Por exemplo, para um modo POJO, o tuplizador "
+"correspondente sabe como criar um POJO através de seu construtor. Além "
+"disso, ele sabe como acessar propriedades de POJO usando assessores de "
+"propriedades definidas. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two high-level types of Tuplizers, represented by the <literal>org."
+"hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate."
+"tuple.component.ComponentTuplizer</literal> interfaces. "
+"<literal>EntityTuplizer</literal>s are responsible for managing the above "
+"mentioned contracts in regards to entities, while "
+"<literal>ComponentTuplizer</literal>s do the same for components."
+msgstr ""
+"Existem dois tipos de alto nÃvel de Tuplizadores, representados pelas "
+"interfaces <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> e "
+"<literal>org.hibernate.tuple.component.ComponentTuplizer</literal>. Os "
+"<literal>EntityTuplizer</literal>s são responsáveis pelo gerenciamento dos "
+"contratos mencionados acima em relação às entidades, enquanto os "
+"<literal>ComponentTuplizer</literal>s realizam o mesmo para os componentes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Users can also plug in their own tuplizers. Perhaps you require that a "
+"<literal>java.util.Map</literal> implementation other than <literal>java."
+"util.HashMap</literal> be used while in the dynamic-map entity-mode. Or "
+"perhaps you need to define a different proxy generation strategy than the "
+"one used by default. Both would be achieved by defining a custom tuplizer "
+"implementation. Tuplizer definitions are attached to the entity or component "
+"mapping they are meant to manage. Going back to the example of our customer "
+"entity:"
+msgstr ""
+"Os usuários podem também plugar seu próprio tuplizador. Talvez você queira "
+"usar uma implementação <literal>java.util.Map</literal> ao invés de uma "
+"<literal>java.util.HashMap</literal> enquanto estiver no modo de entidade "
+"mapa dinâmico, ou talvez você precise definir uma estratégia de geração de "
+"proxy diferente, ao invés de uma utilizada por padrão. Ambas seriam "
+"alcançadas definindo uma implementação de tuplizador personalizada. As "
+"definições do tuplizador estão anexadas à entidade ou ao mapeamento de "
+"componente que tiverem que gerenciar. Retornando ao exemplo da entidade do "
+"nosso cliente:"
+
+#. Tag: title
+#, no-c-format
+msgid "EntityNameResolvers"
+msgstr "EntityNameResolvers"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"interface is a contract for resolving the entity name of a given entity "
+"instance. The interface defines a single method "
+"<methodname>resolveEntityName</methodname> which is passed the entity "
+"instance and is expected to return the appropriate entity name (null is "
+"allowed and would indicate that the resolver does not know how to resolve "
+"the entity name of the given entity instance). Generally speaking, an "
+"<interfacename>org.hibernate.EntityNameResolver</interfacename> is going to "
+"be most useful in the case of dynamic models. One example might be using "
+"proxied interfaces as your domain model. The hibernate test suite has an "
+"example of this exact style of usage under the <package>org.hibernate.test."
+"dynamicentity.tuplizer2</package>. Here is some of the code from that "
+"package for illustration."
+msgstr ""
+"A interface <interfacename>org.hibernate.EntityNameResolver</interfacename> "
+"é um contrato para resolver o nome da entidade de uma instância de entidade "
+"dada. A interface define um <methodname>resolveEntityName</methodname> de "
+"método único que é passado à instância de entidade e é esperado a retornar "
+"ao nome de entidade apropriado (nulo é permitido e indicaria que o "
+"solucionador não saiba como resolver o nome de entidade da instância de "
+"entidade dada). Normalmente, um <interfacename>org.hibernate."
+"EntityNameResolver</interfacename> será mais útil no caso de modelos "
+"dinâmicos. Um exemplo poderá ser usado nas interfaces com proxie no caso dos "
+"modelos dinâmicos. O hibernate test suite possui um exemplo deste estilo "
+"exato de uso sob o <package>org.hibernate.test.dynamicentity.tuplizer2</"
+"package>. Segue abaixo parte do código a partir daquele pacote para "
+"ilustração."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to register an <interfacename>org.hibernate.EntityNameResolver</"
+"interfacename> users must either:"
+msgstr ""
+"Com o objetivo de registrar um <interfacename>org.hibernate."
+"EntityNameResolver</interfacename>, os usuários devem tanto:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link>, implementing the <methodname>getEntityNameResolvers</methodname> "
+"method."
+msgstr ""
+"Implementar um <link linkend=\"persistent-classes-tuplizers\">Tuplizer</"
+"link> personalizado, implementando o método <methodname>getEntityNameResolvers</methodname>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (which is the implementation class for <interfacename>org."
+"hibernate.SessionFactory</interfacename>) using the "
+"<methodname>registerEntityNameResolver</methodname> method."
+msgstr ""
+"Registrá-lo com o <classname>org.hibernate.impl.SessionFactoryImpl</"
+"classname> (que é a classe de implementação para <interfacename>org."
+"hibernate.SessionFactory</interfacename>) usando o método "
+"<methodname>registerEntityNameResolver</methodname>."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/portability.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/portability.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/portability.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,480 @@
+# translation of portability.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: portability\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-18 15:20+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: portability.xml:31
+#, no-c-format
+msgid "Database Portability Considerations"
+msgstr "Considerações da Portabilidade do Banco de Dados"
+
+#. Tag: title
+#: portability.xml:34
+#, no-c-format
+msgid "Portability Basics"
+msgstr "Fundamentos da Portabilidade"
+
+#. Tag: para
+#: portability.xml:36
+#, 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 ""
+"Um dos pontos de venda do Hibernate (e realmente Mapeamento do Objeto/"
+"Relacional como um conjunto) é a noção da portabilidade do banco de dados. "
+"Isto pode significar um usuário de TI interno migrando a partir de um "
+"fornecedor de banco de dados a outro, ou isto pode significar que um "
+"framework ou aplicativo implementável consumindo o Hibernate para produtos "
+"de banco de dados múltiplos de destinação simultaneamente pelos usuários. "
+"Independente do cenário exato, a idéia básica é que você queira que o "
+"Hibernate o ajude a rodar em referência a qualquer número de banco de dados "
+"sem as alterações a seu código e preferencialmente sem quaisquer alterações "
+"ao metadados de mapeamento."
+
+#. Tag: title
+#: portability.xml:47
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialeto"
+
+#. Tag: para
+#: portability.xml:49
+#, 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 ""
+"A primeira linha de portabilidade para o Hibernate é o dialeto, que trata-se "
+"de uma especialização de um contrato <classname>org.hibernate.dialect."
+"Dialect</classname>. Um dialeto encapsula todas as diferenças em como o "
+"Hibernate deve comunicar-se com um banco de dados particular para completar "
+"algumas tarefas como obter um valor de seqüência ou estruturar uma consulta "
+"SELECT. O Hibernate vincula uma variedade de dialetos para muitos dos bancos "
+"de dados mais populares. Se você achar que seu banco de dados particular não "
+"está seguindo os mesmos, não será difÃcil escrever o seu próprio."
+
+#. Tag: title
+#: portability.xml:60
+#, no-c-format
+msgid "Dialect resolution"
+msgstr "Resolução do Dialeto"
+
+#. Tag: para
+#: portability.xml:62
+#, 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 ""
+"Originalmente, o Hibernate sempre solicita que os usuários especifiquem qual "
+"dialeto a ser usado. No caso dos usuários buscarem banco de dados múltiplos "
+"de destinação simultaneamente com as próprias construções que eram "
+"problemáticas. Normalmente, isto solicita que seus próprios usuários "
+"configurem o dialeto do Hibernate ou definam o próprio método de "
+"determinação do valor."
+
+#. Tag: para
+#: portability.xml:69
+#, 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 ""
+"Inicializando com a versão 3.2, o Hibernate introduziu a noção de detecção "
+"automática do dialeto para uso baseado no <interfacename>java.sql."
+"DatabaseMetaData</interfacename> obtido a partir de um <interfacename>java."
+"sql.Connection</interfacename> para aquele banco de dados. Era muito melhor, "
+"esperar que esta resolução limitada aos bancos de dados Hibernate soubesse "
+"com antecedência e que em ocasião alguma era configurável ou substituÃvel."
+
+#. Tag: para
+#: portability.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"Starting with version 3.3, Hibernate has a fare more powerful way to "
+"automatically determine which dialect to should be used by relying on a "
+"series of delegates which implement the <interfacename>org.hibernate.dialect."
+"resolver.DialectResolver</interfacename> which defines only a single method:"
+"<programlisting role=\"JAVA\"><![CDATA[public Dialect resolveDialect"
+"(DatabaseMetaData metaData) throws JDBCConnectionException]]></"
+"programlisting>. The basic contract here is that if the resolver "
+"'understands' the given database metadata then it returns the corresponding "
+"Dialect; if not it returns null and the process continues to the next "
+"resolver. The signature also identifies <exceptionname>org.hibernate."
+"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
+"A JDBCConnectionException here is interpreted to imply a \"non transient"
+"\" (aka non-recoverable) connection problem and is used to indicate an "
+"immediate stop to resolution attempts. All other exceptions result in a "
+"warning and continuing on to the next resolver."
+msgstr ""
+"Inicializando com a versão 3.3, o Hibernate possui uma maneira muito mais "
+"potente para determinar automaticamente qual dialeto deve ser usado baseando-"
+"se numa série de delegações que determinam qual implementação deve ser usada "
+"baseando-se numa série de delegações que implementam o <interfacename>org."
+"hibernate.dialect.resolver.DialectResolver</interfacename> que define apenas "
+"um método único: <programlisting role=\"JAVA\">public Dialect resolveDialect"
+"(DatabaseMetaData metaData) throws JDBCConnectionException</programlisting>. "
+"Este contrato básico é que se o solucionador 'entender' o metadados do banco "
+"de dados dado, ele retornará o Dialeto correspondente. Caso contrário, ele "
+"retornará nulo e o processo continuará ao próximo solucionador. A assinatura "
+"também identifica o <exceptionname>org.hibernate.exception."
+"JDBCConnectionException</exceptionname> como possivelmente lançado. Neste "
+"caso, o JDBCConnectionException é interpretado para implicar um problema de "
+"conexão (também conhecida com não-recuperável) \"não transiente\" e é usado "
+"para indicar uma parada imediata de tentativas de resolução. Todas as demais "
+"exceções resultam num aviso e dão continuidade ao próximo solucionador. "
+
+#. Tag: para
+#: portability.xml:90
+#, 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 ""
+"A melhor parte destes solucionadores é que os usuários também podem "
+"registrar os seus próprios solucionadores personalizados dos quais serão "
+"processados antes dos Hibernates internos. Isto poderá ser útil em um número "
+"diferente de situações: permite uma integração fácil de auto-detecção de "
+"dialetos além daqueles lançados com o próprio Hibernate. Além disto, permite "
+"que você especifique o uso de um dialeto personalizado quando um banco de "
+"dados particular é reconhecido, etc. Para registrar um ou mais "
+"solucionadores, apenas especifique-os (separados por vÃrgula, tabs ou "
+"espaços) usando o conjunto de configuração 'hibernate."
+"dialect_resolvers' (consulte a constante <constant>DIALECT_RESOLVERS</"
+"constant> no <classname>org.hibernate.cfg.Environment</classname>)."
+
+#. Tag: title
+#: portability.xml:103
+#, no-c-format
+msgid "Identifier generation"
+msgstr "Geração do identificador"
+
+#. Tag: para
+#: portability.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"When considering portability between databases, another important decision "
+"is selecting the identifier generation stratagy you want to use. Originally "
+"Hibernate provided the <emphasis>native</emphasis> generator for this "
+"purpose, which was intended to select between a <emphasis>sequence</"
+"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
+"strategy depending on the capability of the underlying database. However, an "
+"insidious implication of this approach comes about when targtetting some "
+"databases which support <emphasis>identity</emphasis> generation and some "
+"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
+"definition of an IDENTITY (or auto-increment) column to manage the "
+"identifier value; it is what is known as a post-insert generation strategy "
+"becauase the insert must actually happen before we can know the identifier "
+"value. Because Hibernate relies on this identifier value to uniquely "
+"reference entities within a persistence context it must then issue the "
+"insert immediately when the users requests the entitiy be associated with "
+"the session (like via save() e.g.) regardless of current transactional "
+"semantics. <note> <para> Hibernate was changed slightly once the implication "
+"of this was better understood so that the insert is delayed in cases where "
+"that is feasible. </para> </note> The underlying issue is that the actual "
+"semanctics of the application itself changes in these cases."
+msgstr ""
+"Quando considerando a portabilidade entre os bancos de dados, outra "
+"importante decisão é selecionar a estratégia de geração do identificador que "
+"você deseja usar. Originalmente, o Hibernate fornecia o gerador "
+"<emphasis>nativo</emphasis> para este propósito, que intencionava selecionar "
+"entre uma estratégia de <emphasis>seqüência</emphasis>, "
+"<emphasis>identidade</emphasis> ou <emphasis>tabela</emphasis> dependendo da "
+"capacidade do banco de dados adjacente. No entanto, uma implicação insidiosa "
+"desta abordagem vêem quando destinando alguns bancos de dados que suportam a "
+"geração de identidade e outros que não suportam. A geração "
+"<emphasis>identidade</emphasis> baseia-se na definição de uma coluna (ou "
+"auto-incremento) IDENTITY para gerenciar o valor identificador. Isto é "
+"conhecido como estratégia de geração pós-inserção devido à inserção ter que "
+"ocorrer antes que nós possamos conhecer o valor identificador. Devido ao "
+"Hibernate depender neste valor identificador para unicamente referenciar "
+"entidades com um contexto persistente, ele deverá imprimir a inserção "
+"imediatamente quando as solicitações dos usuários de entidade estiverem "
+"associados com a sessão (como através save() e.g.) independente das "
+"semânticas de transação atual. "
+
+#. Tag: para
+#: portability.xml:130
+#, no-c-format
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way. <note> <para> There are "
+"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
+"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
+"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
+"listitem> </itemizedlist> </para> </note> The idea behind these generators "
+"is to port the actual semantics of the identifer value generation to the "
+"different databases. For example, the <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
+"databases which do not support sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#: portability.xml:159
+#, no-c-format
+msgid "Database functions"
+msgstr "Funções do banco de dados"
+
+#. Tag: para
+#: portability.xml:162
+#, no-c-format
+msgid ""
+"This is an area in Hibernate in need of improvement. In terms of portability "
+"concerns, this function handling currently works pretty well from HQL; "
+"however, it is quite lacking in all other aspects."
+msgstr ""
+"Esta é uma área do Hibernate com necessidade de melhoramentos. Este manuseio "
+"de função funciona atualmente muito bem com o HQL, quando falamos das "
+"preocupações de portabilidade. No entanto, é bastante precária em outros "
+"aspectos."
+
+#. Tag: para
+#: portability.xml:169
+#, no-c-format
+msgid ""
+"SQL functions can be referenced in many ways by users. However, not all "
+"databases support the same set of functions. Hibernate, provides a means of "
+"mapping a <emphasis>logical</emphasis> function name to a delegate which "
+"knows how to render that particular function, perhaps even using a totally "
+"different physical function call."
+msgstr ""
+"As funções SQL podem ser referenciadas em diversas maneiras pelos usuários. "
+"No entanto, nem todos os bancos de dados suportam o mesmo conjunto de "
+"função. O Hibernate fornece um significado de mapeamento do nome da função "
+"<emphasis>lógica</emphasis> para uma delegação que sabe como manusear aquela "
+"função em particular, mesmo quando usando uma chamada de função fÃsica "
+"totalmente diferente."
+
+#. Tag: para
+#: portability.xml:175
+#, 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 ""
+"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."
+
+#. Tag: para
+#: portability.xml:182
+#, 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 ""
+"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."
+
+#. Tag: title
+#: portability.xml:192
+#, no-c-format
+msgid "Type mappings"
+msgstr "Tipos de mapeamentos"
+
+#. Tag: para
+#: portability.xml:194
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr "A seção está esquematizada para finalização numa data posterior..."
+
+#~ msgid ""
+#~ "Hibernate was changed slightly once the implication of this was better "
+#~ "understood so that the insert is delayed in cases where that is feasible."
+#~ msgstr ""
+#~ "O Hibernate foi atualizado para que a inserção seja lenta em casos em que "
+#~ "isto é possÃvel, sendo desta forma melhor compreendido. "
+
+#~ msgid ""
+#~ "The underlying issue is that the actual semanctics of the application "
+#~ "itself changes in these cases."
+#~ msgstr ""
+#~ "O problema adjacente é que as semânticas atuais do próprio aplicativo "
+#~ "altere nestes casos."
+
+#~ 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 ""
+#~ "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."
+
+#~ msgid ""
+#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+#~ msgstr ""
+#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+
+#~ msgid ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+#~ msgstr ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+
+#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+
+#~ 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 ""
+#~ "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."
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/preface.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/preface.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/preface.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,297 @@
+# translation of Preface.po to
+# translation of preface.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: preface\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-18 15:24+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "Prefácio"
+
+#. 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 ""
+"O trabalho com o software objeto relacional e banco de dados relacionais, "
+"pode ser incômodo e desgastante atualmente num meio empresarial. Hibernate é "
+"um Objeto/Relacional de Mapeamento de ferramentas nos meios Java. O termo "
+"Objeto/Relacional de Mapeamento (ORM) refere-se à técnica de mapeamento de "
+"dados, representada desde o objeto modelo aos dados relacionais modelo com "
+"um esquema baseado na 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 ""
+"O Hibernate não cuida apenas do mapeamento desde às classes de Java até as "
+"mesas de banco de dados (e de tipos de dados Java até tipos de dados da "
+"SQL), mas também proporciona a consulta de dados e facildades de recuperação "
+"que pode significativamente reduzir o tempo de desenvolvimento. Do "
+"contrário, consumido com o manual de dados executados em SQL e 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 ""
+"A meta de Hibernate é aliviar o desenvolvedor em 95% de dados comuns de "
+"persistência relacionados as tarefas de programação. O Hibernate talvez não "
+"seja a melhor solução para as aplicações centradas em dados, das quais "
+"apenas usam procedimentos armazenados para a implementação das lógicas "
+"comerciais no banco de dados. Isto é mais utilizado orientando o objeto aos "
+"modelos de domÃnio e lógicas comerciais na camada intermediária baseada em "
+"Java. No entanto, o Hibernate pode certamente ajudá-lo a remover ou "
+"condensar o especÃfico código fornecedor SQL, e ajudará com a tarefa comum "
+"de resultado estabelecido pela tradução desde a representação tabular até um "
+"gráfico de objetos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you are new to Hibernate and Object/Relational Mapping or even Java, "
+"please follow these steps:"
+msgstr ""
+"Por favor siga os seguintes passos, caso você seja inexperiente com o "
+"Hibernate, Mapeamento Objeto/Relacional ou mesmo 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 ""
+"Leia <xref linkend=\"tutorial\" /> com passo-a-passo de instruções tutoriais. "
+"O código de origem tutorial está incluÃdo no diretório de distribuição <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 ""
+"Leia <xref linkend=\"architecture\"/> para melhor entendimento dos meios "
+"onde Hibernate pode ser utilizado. "
+
+#. 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 ""
+"Verifique no diretório <literal>eg/</literal> em sua distribuição de "
+"Hibernate, do qual possui uma simples aplicação autônoma. Copie seu driver "
+"JDBC para o diretório <literal>lib/</literal> e edite <literal>eg/hibernate."
+"properties</literal>, especificando valores corretos para o seu banco de "
+"dados. No diretório de distribuição sob o comando aviso, digite <literal>ant "
+"eg</literal> (usando Ant), ou sob Windows, digite <literal>build eg</"
+"literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Use this reference documentation as your primary source of information. "
+"Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need "
+"more help with application design, or if you prefer a step-by-step tutorial. "
+"Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download "
+"the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr ""
+"Utilize esta documentação de referência como a sua primeira fonte de "
+"informação. Considere a leitura <biblioref linkend=\"biblio-JPwH\"></biblioref>, caso você precise de auxÃlio com a aplicação de design, ou tutorial com passo-a-passo, caso seja desejado. "
+"Você pode também visitar <ulink url=\"http://caveatemptor.hibernate.org\" /> e fazer o "
+"download do exemplo de aplicação da <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr ""
+"As respostas das perguntas mais freqüentes podem ser encontradas no website "
+"Hibernate. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Links to third party demos, examples, and tutorials are maintained on the "
+"Hibernate website."
+msgstr ""
+"A terceira parte de demonstração, exemplos e tutoriais estão vinculadas no "
+"website 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 ""
+"A Ãrea de Comunidade no website Hibernate é um bom recurso para parceiros de "
+"design e várias soluções integradas. ( Tomcat, JBoss AS, Struts, EJB, etc. )"
+
+#. 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 ""
+"Em caso de dúvidas, utilize o fórum do usuário encontrado no website "
+"Hibernate. Nós também provemos o JIRA sistema de questão de rastreamento "
+"para os relatórios de erros de programação e recursos solicitados. Se você "
+"tem interesse no desenvolvimento do Hibernate, participe da lista de correio "
+"eletrônico do desenvolvedor. Caso você tenha interesse em traduzir este "
+"documento na sua própria lÃngua, por favor entre em contato conosco através "
+"da lista de correio eletrônico do desenvolvedor. "
+
+#. 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 ""
+"O suporte do desenvolvimento comercial, suporte de produção e treinamento de "
+"Hibernate está disponÃvel através do JBoss Inc. ( see http://www.hibernate."
+"org/SupportTraining/ ). Hibernate é um projeto de Fonte Aberta Profissional "
+"e componente crÃtico do Sistema Jboss de Empreendimento e Middleware "
+"( JEMS ) suÃte de produtos. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_criteria.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_criteria.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_criteria.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,508 @@
+# translation of query_criteria.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: query_criteria\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-19 09:29+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr "Consultas por critérios"
+
+#. 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."
+
+#. Tag: title
+#, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr "Criando uma instância <literal>Criteria</literal>"
+
+#. 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 ""
+"A interface <literal>org.hibernate.Criteria</literal> representa a consulta "
+"ao invés de uma classe persistente particular. A sessão é uma fábrica para "
+"instâncias de <literal>Criteria</literal> ."
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr "Limitando o conjunto de resultados"
+
+#. 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 ""
+"Um critério individual de consulta é uma instância da interface <literal>org."
+"hibernate.criterion.Criterion</literal>. A classe <literal>org.hibernate."
+"criterion.Restrictions</literal> define os métodos da fábrica para obter "
+"certos tipos de <literal>Criterion</literal> pré fabricados."
+
+#. Tag: para
+#, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr "Restrições podem ser logicamente agrupadas. "
+
+#. 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 ""
+"Existe um grande número de critérios pré-fabricados (subclasses de "
+"<literal>Restrictions</literal>). Um dos mais úteis permite especificar o "
+"SQL diretamente."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>{alias}</literal> placeholder with be replaced by the row alias "
+"of the queried entity."
+msgstr ""
+"O parâmetro <literal>{alias}</literal> será substituido pelo alias da "
+"entidade procurada."
+
+#. 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 ""
+"Uma maneira alternativa de obter um critério é apartir de uma instância "
+"<literal>Property</literal>. Você pode criar uma <literal>Property</literal> "
+"chamando <literal>Property.forName()</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr "Ordenando resultados"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can order the results using <literal>org.hibernate.criterion.Order</"
+"literal>."
+msgstr ""
+"Você poderá ordenar os resultados usando <literal>org.hibernate.criterion."
+"Order</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr "Associações"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"By navigating associations using <literal>createCriteria()</literal> you can "
+"specify constraints upon related entities:"
+msgstr ""
+"Através da navegação de associações usando <literal>createCriteria()</"
+"literal>, você pode especificar restrições por entidades relacionadas:"
+
+#. 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 ""
+"Note que o segundo <literal>createCriteria()</literal> retorna uma nova "
+"instância de <literal>Criteria</literal>, que refere aos elementos da "
+"coleção <literal>kittens</literal>."
+
+#. Tag: para
+#, no-c-format
+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
+#, no-c-format
+msgid ""
+"(<literal>createAlias()</literal> does not create a new instance of "
+"<literal>Criteria</literal>.)"
+msgstr ""
+"(<literal>createAlias()</literal> não cria uma nova instância de "
+"<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 ""
+"Note que as coleções de kittens mantidas pelas instâncias <literal>Cat</"
+"literal>, retornadas pelas duas consultas anteriores <emphasis>não</"
+"emphasis> são pré-filtradas pelo critério. Se você desejar recuperar somente "
+"os kittens que se encaixarem ao critérios, você deverá usar um "
+"<literal>ResultTransformer</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr "Você pode ainda manipular o conjunto do resultado usando a junção exterior restante:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will return all of the <literal>Cat</literal>s with a mate whose name "
+"starts with \"good\" ordered by their mate's age, and all cats who do not "
+"have a mate. This is useful when there is a need to order or limit in the "
+"database prior to returning complex/large result sets, and removes many "
+"instances where multiple queries would have to be performed and the results "
+"unioned by java in memory."
+msgstr "Isto retornará todos os <literal>Cat</literal>s com um mate (amigo) cujo nome inicia com \"bom\" ordenado pela idade de seu mate e todos os cats que não tem mates. Isto é útil quando houver necessidade de pedir ou limitar a prioridade do banco de dados em retornar conjuntos de resultado complexo/grande e remover muitas instâncias onde consultas múltiplas deveriam ter sido executadas e os resultados unidos pelo java em memória."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Without this feature, first all of the cats without a mate would need to be "
+"loaded in one query."
+msgstr "Sem este recurso, o primeiro de todos os cats sem um mate teria que ser carregado em uma consulta."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A second query would need to retreive the cats with mates who's name started "
+"with \"good\" sorted by the mates age."
+msgstr "Uma segunda consulta teria que restaurar os cats com os mates cujos os nomes iniciem com \"bom\" selecionados pelas idades dos mates. "
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr "A terceira, em memória; as listas teriam que ser unidas manualmente. "
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr "Busca de associação dinâmica"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can specify association fetching semantics at runtime using "
+"<literal>setFetchMode()</literal>."
+msgstr ""
+"Você deve especificar as semânticas de busca de associação em tempo de "
+"execução usando <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 ""
+"Esta consulta fará a busca tanto de <literal>mate</literal> quanto de "
+"<literal>kittens</literal> por uma união externa. Para maiores informações, "
+"veja <xref linkend=\"performance-fetching\" />. "
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr "Exemplos de consultas"
+
+#. 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 ""
+"A classe <literal>org.hibernate.criterion.Example</literal> permite que você "
+"construa um critério de consulta a partir de uma dada instância."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Version properties, identifiers and associations are ignored. By default, "
+"null valued properties are excluded."
+msgstr ""
+"Propriedades de versão, identificadores e associações são ignoradas. Por "
+"padrão, as propriedades de valor null são excluÃdas."
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr "Você pode ajustar como o <literal>Exemplo</literal> é aplicado."
+
+#. Tag: para
+#, no-c-format
+msgid "You can even use examples to place criteria upon associated objects."
+msgstr ""
+"Você pode até usar os exemplos para colocar os critérios em objetos "
+"associados."
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr "Projeções, agregações e agrupamento."
+
+#. 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 ""
+"A classe <literal>org.hibernate.criterion.Projections</literal> é uma "
+"fábrica para instâncias de <literal>Projection</literal>. Você pode aplicar "
+"uma projeção à uma consulta, chamando o <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 ""
+"Não há necessidade de um \"agrupamento por\" explÃcito em uma consulta por "
+"critério. Certos tipos de projeção são definidos para serem "
+"<emphasis>projeções de agrupamento</emphasis>, que também aparecem em uma "
+"cláusula <literal>agrupamento por</literal>SQL."
+
+#. 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 ""
+"Um alias pode ser atribuÃdo de forma opcional à uma projeção, assim o valor "
+"projetado pode ser referenciado em restrições ou ordenações. Aqui seguem "
+"duas formas diferentes para fazer isto: "
+
+#. 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 ""
+"Os métodos <literal>alias()</literal> e <literal>as()</literal> simplesmente "
+"envolvem uma instância de projeção à outra instância de <literal>Projeção</"
+"literal> em alias. Como um atalho, você poderá atribuir um alias quando "
+"adicionar a projeção à uma lista de projeção:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use <literal>Property.forName()</literal> to express "
+"projections:"
+msgstr ""
+"Você também pode usar um <literal>Property.forName()</literal> para "
+"expressar projeções:"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr "Consultas e subconsultas desanexadas."
+
+#. 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 ""
+"A classe <literal>DetachedCriteria</literal> deixa você criar uma consulta "
+"fora do escopo de uma sessão, e depois executá-la usando alguma "
+"<literal>Session</literal> arbitrária. "
+
+#. 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 ""
+"Um <literal>DetachedCriteria</literal> também pode ser usado para expressar "
+"uma subconsulta. As instâncias de critérios, que envolvem subconsultas, "
+"podem ser obtidas através das <literal>Subqueries</literal> ou "
+"<literal>Property</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr "Até mesmo as subconsultas correlacionadas são possÃveis: "
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr "Consultas por um identificador natural"
+
+#. 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 ""
+"Para a maioria das consultas, incluindo consultas de critérios, o cache de "
+"consulta não é muito eficiente, pois a invalidação do cache de consulta "
+"ocorre com muita frequência. No entanto, não há um tipo de consulta especial "
+"onde possamos otimizar um algoritmo de invalidação de cache: consultas "
+"realizadas por chaves naturais constantes. Em algumas aplicações, este tipo "
+"de consulta ocorre com freqüência. O API de critério provê provisão especial "
+"para este caso de uso. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, map the natural key of your entity using <literal><natural-id></"
+"literal> and enable use of the second-level cache."
+msgstr ""
+"Primeiro, você deve mapear a chave natural de sua entidade usando um "
+"<literal><natural-id></literal> e habilitar o uso de um cache de "
+"segundo nÃvel."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This functionality is not intended for use with entities with "
+"<emphasis>mutable</emphasis> natural keys."
+msgstr ""
+"Note que esta funcionalidade não é proposta para o uso com entidades com "
+"chaves naturais <emphasis>mutáveis</emphasis>. "
+
+#. 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 ""
+"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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_hql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_hql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_hql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1536 @@
+# translation of query_hql.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: query_hql\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-19 09:37+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr "HQL: A Linguagem de Consultas do Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate uses a powerful query language (HQL) that is similar in appearance "
+"to SQL. Compared with SQL, however, HQL is fully object-oriented and "
+"understands notions like inheritance, polymorphism and association."
+msgstr ""
+"O Hibernate vem com uma poderosa linguagem de consulta (HQL) que é muito "
+"parecida com o SQL. No entanto, comparado com o SQL o HQL é totalmente "
+"orientado à objetos, e compreende noções de herança, polimorfismo e "
+"associações."
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr "Diferenciação de maiúscula e minúscula"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"With the exception of names of Java classes and properties, queries are case-"
+"insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</"
+"literal> is the same as <literal>SELECT</literal>, but <literal>org."
+"hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, "
+"and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr ""
+"As Consultas não diferenciam maiúscula de minúscula, exceto pelo nomes das "
+"classes e propriedades Java. Portanto, <literal>SeLeCT</literal> é o mesmo "
+"que <literal>sELEct</literal> que é o mesmo que <literal>SELECT</literal>, "
+"mas <literal>org.hibernate.eg.FOO</literal> não é <literal>org.hibernate.eg."
+"Foo</literal> e <literal>foo.barSet</literal> não é <literal>foo.BARSET</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This manual uses lowercase HQL keywords. Some users find queries with "
+"uppercase keywords more readable, but this convention is unsuitable for "
+"queries embedded in Java code."
+msgstr ""
+"Esse manual usa as palavras chave HQL em letras minúsculas. Alguns usuários "
+"acreditam que com letras maiúsculas as consultas ficam mais legÃveis, mas "
+"nós acreditamos que este formato não é apropriado para o código Java. "
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr "A cláusula from"
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr "A consulta mais simples possÃvel do Hibernate é a seguinte:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This returns all instances of the class <literal>eg.Cat</literal>. You do "
+"not usually need to qualify the class name, since <literal>auto-import</"
+"literal> is the default. For example:"
+msgstr ""
+"Isto simplesmente retornará todas as instâncias da classe <literal>eg.Cat</"
+"literal>. Geralmente não precisamos qualificar o nome da classe, uma vez que "
+"o <literal>auto-import</literal> é o padrão. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to refer to the <literal>Cat</literal> in other parts of the query, "
+"you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr ""
+"Com o objetivo de referir-se ao <literal>Cat</literal> em outras partes da "
+"consulta, você precisará determinar um <emphasis>alias</emphasis>. Por "
+"exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This query assigns the alias <literal>cat</literal> to <literal>Cat</"
+"literal> instances, so you can use that alias later in the query. The "
+"<literal>as</literal> keyword is optional. You could also write:"
+msgstr ""
+"Essa consulta atribui um alias a <literal>cat</literal> para as instâncias "
+"de <literal>Cat</literal>, portanto poderemos usar esse alias mais tarde na "
+"consulta. A palavra chave <literal>as</literal> é opcional. Você também pode "
+"escrever assim:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Multiple classes can appear, resulting in a cartesian product or \"cross\" "
+"join."
+msgstr ""
+"Classes múltiplas podem ser envolvidas, resultando em um produto cartesiano "
+"ou união \"cruzada\". "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is good practice to name query aliases using an initial lowercase as this "
+"is consistent with Java naming standards for local variables (e.g. "
+"<literal>domesticCat</literal>)."
+msgstr ""
+"à considerada uma boa prática nomear alias de consulta, utilizando uma letra "
+"minúscula inicial, consistente com os padrões de nomeação Java para "
+"variáveis locais (ex.: <literal>domesticCat</literal>). "
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr "Associações e uniões"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also assign aliases to associated entities or to elements of a "
+"collection of values using a <literal>join</literal>. For example:"
+msgstr ""
+"Podemos também atribuir aliases em uma entidade associada, ou mesmo em "
+"elementos de uma coleção de valores, usando uma <literal>join</literal>. Por "
+"exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "Os tipos de uniões suportados foram inspirados no ANSI SQL:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "<literal>inner join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>left outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr "<literal>right outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr "<literal>união completa</literal> (geralmente não é útil)"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> and "
+"<literal>right outer join</literal> constructs may be abbreviated."
+msgstr ""
+"As construções <literal>inteiro</literal>, <literal>união esquerda externa</"
+"literal> e <literal>união direita externa</literal> podem ser abreviadas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You may supply extra join conditions using the HQL <literal>with</literal> "
+"keyword."
+msgstr ""
+"Você pode fornecer condições extras de união usando a palavra chave do HQL "
+"<literal>with</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A \"fetch\" join allows associations or collections of values to be "
+"initialized along with their parent objects using a single select. This is "
+"particularly useful in the case of a collection. It effectively overrides "
+"the outer join and lazy declarations of the mapping file for associations "
+"and collections. See <xref linkend=\"performance-fetching\" /> for more "
+"information."
+msgstr ""
+"A união de \"busca\" permite que associações ou coleções de valores sejam "
+"inicializadas junto com o objeto pai, usando apenas um select. Isso é muito "
+"útil no caso das coleções. Isso efetivamente substitui as declarações união "
+"externa e declarações lazy do arquivo de mapeamento para associações e coleções. Consulte <xref linkend=\"performance-fetching\" /> para mais informações."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A fetch join does not usually need to assign an alias, because the "
+"associated objects should not be used in the <literal>where</literal> clause "
+"(or any other clause). The associated objects are also not returned directly "
+"in the query results. Instead, they may be accessed via the parent object. "
+"The only reason you might need an alias is if you are recursively join "
+"fetching a further collection:"
+msgstr ""
+"Geralmente, uma união de busca não precisa atribuir um alias, pois o objeto "
+"associado não deve ser usado na cláusula <literal>where</literal> (ou em "
+"qualquer outra cláusula). Também, os objetos associados não são retornados "
+"diretamente nos resultados da consulta. Ao invés disso, eles devem ser "
+"acessados usando o objeto pai. A única razão pela qual precisariamos de um "
+"alias é quando fazemos uma união de busca recursivamente em uma coleção "
+"adicional: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>fetch</literal> construct cannot be used in queries called "
+"using <literal>iterate()</literal> (though <literal>scroll()</literal> can "
+"be used). <literal>Fetch</literal> should be used together with "
+"<literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, "
+"as these operations are based on the result rows which usually contain "
+"duplicates for eager collection fetching, hence, the number of rows is not "
+"what you would expect. <literal>Fetch</literal> should also not be used "
+"together with impromptu <literal>with</literal> condition. It is possible to "
+"create a cartesian product by join fetching more than one collection in a "
+"query, so take care in this case. Join fetching multiple collection roles "
+"can produce unexpected results for bag mappings, so user discretion is "
+"advised when formulating queries in this case. Finally, note that "
+"<literal>full join fetch</literal> and <literal>right join fetch</literal> "
+"are not meaningful."
+msgstr ""
+"Observe que a construção <literal>busca</literal> não deve ser usada em "
+"consultas invocadas usando <literal>iterate()</literal> (embora possa ser "
+"usado com <literal>scroll()</literal>). O <literal>Fetch</literal> também "
+"não deve ser usado junto com o <literal>setMaxResults()</literal> ou "
+"<literal>setFirstResult()</literal> pois essas operações são baseadas nas "
+"linhas retornadas, que normalmente contém duplicidade devido à busca das "
+"coleções, então o número de linhas pode não ser o que você espera. A "
+"<literal>Fetch</literal> não deve ser usada junto com uma condição "
+"<literal>with</literal>. Ã possÃvel que seja criado um produto cartesiano "
+"pela busca de união em mais do que uma coleção em uma consulta, então tome "
+"cuidado nesses casos. Uma busca de união em várias coleções pode trazer "
+"resultados inesperados para mapeamentos do tipo bag, tome cuidado na hora de "
+"formular consultas como essas. Finalmente, observe o seguinte, a "
+"<literal>busca de união completa</literal> e <literal>busca de união "
+"direita</literal> não são importantes."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you are using property-level lazy fetching (with bytecode "
+"instrumentation), it is possible to force Hibernate to fetch the lazy "
+"properties in the first query immediately using <literal>fetch all "
+"properties</literal>."
+msgstr ""
+"Se estiver usando o nÃvel de propriedade busca lazy (com instrumentação de "
+"bytecode), é possÃvel forçar o Hibernate a buscar as propriedades lazy "
+"imediatamente na primeira consulta, usando <literal>buscar todas as "
+"propriedades </literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr "Formas de sintáxe de uniões"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports two forms of association joining: <literal>implicit</literal> "
+"and <literal>explicit</literal>."
+msgstr ""
+"O HQL suporta duas formas de associação para união: <literal>implÃcita</"
+"literal> e <literal>explÃcita</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The queries shown in the previous section all use the <literal>explicit</"
+"literal> form, that is, where the join keyword is explicitly used in the "
+"from clause. This is the recommended form."
+msgstr ""
+"As consultas apresentadas na seção anterior usam a forma <literal>explÃcita</"
+"literal>, onde a palavra chave união é explicitamente usada na cláusula "
+"from. Essa é a forma recomendada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>implicit</literal> form does not use the join keyword. Instead, "
+"the associations are \"dereferenced\" using dot-notation. <literal>implicit</"
+"literal> joins can appear in any of the HQL clauses. <literal>implicit</"
+"literal> join result in inner joins in the resulting SQL statement."
+msgstr ""
+"A forma <literal>implÃcita</literal> não usa a palavra chave \"união\". "
+"Entretanto, as associações são \"diferenciadas\" usando pontuação (\".\" - "
+"dot-notation). Uniões<literal>implÃcitas</literal> podem aparecer em "
+"qualquer uma das cláusulas HQL. A união <literal>implÃcita</literal> resulta "
+"em declarações SQL que contém uniões inteiras."
+
+#. Tag: title
+#, no-c-format
+msgid "Referring to identifier property"
+msgstr "Referência à propriedade do identificador "
+
+#. Tag: para
+#, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr ""
+"Geralmente, existem duas formas para se referir à propriedade do "
+"indentificador de uma entidade: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the identifier property of an entity <emphasis>provided that the "
+"entity does not define a non-identifier property named id</emphasis>."
+msgstr ""
+"A propriedade especial (em letra minúscula) <literal>id</literal> pode ser "
+"usada para se referir à propriedade do identificador de uma entidade "
+"<emphasis>considerando que a entidade não define uma propriedade não "
+"identificadora chamada id</emphasis>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the entity defines a named identifier property, you can use that property "
+"name."
+msgstr ""
+"Se a entidade definir a propriedade do identificador nomeada, você poderá "
+"usar este nome de propriedade. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"References to composite identifier properties follow the same naming rules. "
+"If the entity has a non-identifier property named id, the composite "
+"identifier property can only be referenced by its defined named. Otherwise, "
+"the special <literal>id</literal> property can be used to reference the "
+"identifier property."
+msgstr ""
+"As referências à composição das propriedades do identificador seguem as "
+"mesmas regras de nomeação. Se a entidade tiver uma propriedade de não "
+"identificador chamada id, a composição da propriedade do identificador pode "
+"somente ser referenciada pelo seu nome definido. Do contrário, uma "
+"propriedade especial <literal>id</literal> poderá ser usada para referenciar "
+"a propriedade do identificador. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please note that, starting in version 3.2.2, this has changed significantly. "
+"In previous versions, <literal>id</literal> <emphasis>always</emphasis> "
+"referred to the identifier property regardless of its actual name. A "
+"ramification of that decision was that non-identifier properties named "
+"<literal>id</literal> could never be referenced in Hibernate queries."
+msgstr ""
+"Observe: esta ação mudou completamente na versão 3.2.2. Nas versões "
+"anteriores o <literal>id</literal> <emphasis>sempre</emphasis> referia-se à "
+"propriedade do identificador não importando seu nome atual. Uma ramificação "
+"desta decisão era que as propriedades do não identificador de chamadas "
+"<literal>id</literal> nunca poderiam ser referenciadas nas consultas do "
+"Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr "A cláusula select"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>select</literal> clause picks which objects and properties to "
+"return in the query result set. Consider the following:"
+msgstr ""
+"A cláusula <literal>select</literal> seleciona quais objetos e propriedades "
+"retornam no resultado da consulta. Considere: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. You can express this query more compactly as:"
+msgstr ""
+"A consulta selecionará <literal>mate</literal>s (parceiros), de outros "
+"<literal>Cat</literal>s. Atualmente, podemos expressar a consulta de forma "
+"mais compacta como: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Queries can return properties of any value type including properties of "
+"component type:"
+msgstr ""
+"As consultas podem retornar propriedades de qualquer tipo de valor, "
+"incluindo propriedades de tipo de componente: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Queries can return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>:"
+msgstr ""
+"As consultas podem retornar múltiplos objetos e/ou propriedades como uma "
+"matriz do tipo <literal>Object[]</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr "Ou como um <literal>List</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Or - assuming that the class <literal>Family</literal> has an appropriate "
+"constructor - as an actual typesafe Java object:"
+msgstr ""
+"Ou - considerando que a classe <literal>Family</literal> tenha um construtor "
+"apropriado - como um objeto Java typesafe atual:"
+
+#. Tag: para
+#, no-c-format
+msgid "You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+"Pode-se designar alias à expressões selecionadas usando <literal>as</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal>:"
+msgstr ""
+"Isto é bem mais útil quando usado junto <literal>com</"
+"literal><literal>selecione novo mapa</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+"Esta consulta retorna um <literal>Mapa</literal> de referências para valores "
+"selecionados."
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr "Funções de agregação"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries can even return the results of aggregate functions on properties:"
+msgstr ""
+"As consultas HQL podem retornar o resultado de funções agregadas nas "
+"propriedades:"
+
+#. Tag: para
+#, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr "As funções agregadas suportadas são: "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "<literal>count(*)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause:"
+msgstr ""
+"Pode-se usar operadores aritméticos, concatenação e funções SQL reconhecidas "
+"na cláusula select: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords can be "
+"used and have the same semantics as in SQL."
+msgstr ""
+"As palavras <literal>distinct</literal> e <literal>all</literal> podem ser "
+"usadas e têm a mesma semântica que no SQL. "
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "Pesquisas Polimórficas"
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr "A consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"returns instances not only of <literal>Cat</literal>, but also of subclasses "
+"like <literal>DomesticCat</literal>. Hibernate queries can name "
+"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
+"literal> clause. The query will return instances of all persistent classes "
+"that extend that class or implement the interface. The following query would "
+"return all persistent objects:"
+msgstr ""
+"retorna instâncias não só de <literal>Cat</literal>, mas também de "
+"subclasses como <literal>DomesticCat</literal>. As consultas do Hibernate "
+"podem nomear qualquer classe Java ou interface na cláusula <literal>from</"
+"literal>. A consulta retornará instâncias de todas as classes persistentes "
+"que extendam a determinada classe ou implemente a determinada interface. A "
+"consulta a seguir, poderia retornar todos os objetos persistentes: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+"A interface <literal>Named</literal> pode ser implementada por várias "
+"classes persistentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"These last two queries will require more than one SQL <literal>SELECT</"
+"literal>. This means that the <literal>order by</literal> clause does not "
+"correctly order the whole result set. It also means you cannot call these "
+"queries using <literal>Query.scroll()</literal>."
+msgstr ""
+"Note que as duas últimas consultas requerem mais de um SQL <literal>SELECT</"
+"literal>. Isto significa que a cláusula <literal>order by</literal> não "
+"ordena corretamente todo o resultado. Isso também significa que você não "
+"pode chamar essas consultas usando <literal>consulta.scroll()</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr "A cláusula where"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>where</literal> clause allows you to refine the list of "
+"instances returned. If no alias exists, you can refer to properties by name:"
+msgstr ""
+"A cláusula <literal>where</literal> permite estreitar a lista de instâncias "
+"retornadas. Se não houver referência alguma, pode-se referir à propriedades "
+"pelo nome: "
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr "Se houver uma referência, use o nome da propriedade qualificada:"
+
+#. Tag: para
+#, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr "Isto retorna instâncias de <literal>Cat</literal> com nome âFritzâ."
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr "A seguinte consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"returns all instances of <literal>Foo</literal> with an instance of "
+"<literal>bar</literal> with a <literal>date</literal> property equal to the "
+"<literal>startDate</literal> property of the <literal>Foo</literal>. "
+"Compound path expressions make the <literal>where</literal> clause extremely "
+"powerful. Consider the following:"
+msgstr ""
+"retornará todas as instâncias de <literal>Foo</literal>, para cada um que "
+"tiver uma instância de <literal>bar</literal> com a propriedade "
+"<literal>date</literal> igual a propriedade <literal>startDate</literal> de "
+"<literal>Foo</literal>. Expressões de caminho compostas fazem da cláusula "
+"<literal>where</literal>, extremamente poderosa. Consideremos: "
+
+#. Tag: para
+#, no-c-format
+msgid "This query translates to an SQL query with a table (inner) join. For example:"
+msgstr ""
+"Esta consulta traduz para uma consulta SQL com uma tabela (inner) união. Por "
+"exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr "resultaria numa consulta que necessitasse de união de quatro tabelas, no SQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>=</literal> operator can be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+"O operador <literal>=</literal> pode ser usado para comparar não apenas "
+"propriedades, mas também instâncias: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> can be used to "
+"reference the unique identifier of an object. See <xref linkend=\"queryhql-"
+"identifier-property\" /> for more information."
+msgstr ""
+"A propriedade especial (letra minúscula) <literal>id</literal> pode ser "
+"usada para referenciar o identificador único de um objeto. Para maiores "
+"informações consulte a <xref linkend=\"queryhql-"
+"identifier-property\" />. "
+
+#. Tag: para
+#, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr "A segunda consulta é eficiente e não requer nenhuma união de tabelas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Properties of composite identifiers can also be used. Consider the following "
+"example where <literal>Person</literal> has composite identifiers consisting "
+"of <literal>country</literal> and <literal>medicareNumber</literal>:"
+msgstr ""
+"As propriedades de identificadores compostas também podem ser usadas. "
+"Considere o seguinte exemplo onde <literal>Person</literal> possui "
+"identificadores compostos que consistem de <literal>country</literal> e "
+"<literal>medicareNumber</literal>: "
+
+#. Tag: para
+#, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr "Mais uma vez, a segunda consulta não precisa de nenhuma união de tabela."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"See <xref linkend=\"queryhql-identifier-property\" /> for more information "
+"regarding referencing identifier properties)"
+msgstr ""
+"Veja <xref linkend=\"queryhql-identifier-property\" /> para maiores "
+"informações a respeito das propriedades do identificador referenciado) "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The special property <literal>class</literal> accesses the discriminator "
+"value of an instance in the case of polymorphic persistence. A Java class "
+"name embedded in the where clause will be translated to its discriminator "
+"value."
+msgstr ""
+"Da mesma forma, a propriedade especial <literal>class</literal> acessa o "
+"valor discriminador da instância, no caso de persistência polimórfica. O "
+"nome de uma classe Java inclusa em uma cláusula where, será traduzida para "
+"seu valor discriminante."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also use components or composite user types, or properties of said "
+"component types. See <xref linkend=\"queryhql-components\" /> for more "
+"information."
+msgstr ""
+"Pode-se também utilizar componentes ou tipos de usuários de composição, ou "
+"propriedades dos tipos de componentes mencionados. Veja <xref linkend=\"queryhql-components\" /> para maiores informações."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal> that allows you to express a join in the following "
+"way (where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal><any></literal>):"
+msgstr ""
+"Um tipo \"any\" possui as propriedades <literal>id</literal> e "
+"<literal>class</literal> especiais, nos permitindo expressar uma união da "
+"seguinte forma (onde <literal>AuditLog.item</literal> é uma propriedade "
+"mapeada <literal>com</literal><literal><any></literal>):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>log.item.class</literal> and <literal>payment.class</literal> "
+"would refer to the values of completely different database columns in the "
+"above query."
+msgstr ""
+"Veja que <literal>log.item.class</literal> e <literal>payment.class</"
+"literal> podem referir-se à valores de colunas de banco de dados "
+"completamente diferentes, na consulta acima. "
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr "Expressões"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Expressions used in the <literal>where</literal> clause include the "
+"following:"
+msgstr ""
+"As expressões permitidas na cláusula <literal>where</literal> incluem o "
+"seguinte:"
+
+#. Tag: para
+#, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr "operadores matemáticos: <literal>+, -, *, /</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"binary comparison operators: <literal>=, >=, <=, <>, !=, like</"
+"literal>"
+msgstr ""
+"operadores de comparação binários: <literal>=, >=, <=, <>, !=, "
+"like</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr "operadores lógicos <literal>and, or, not</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr "Parênteses <literal>( )</literal> que indica o agrupamento"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> and <literal>not member of</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr ""
+"case \"simples\" , <literal>case ... when ... then ... else ... end</"
+"literal>, and \"searched\" case, <literal>case when ... then ... else ... "
+"end</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...)"
+"</literal>"
+msgstr ""
+"concatenação de string <literal>...||...</literal> ou <literal>concat"
+"(...,...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, and "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal> e "
+"<literal>current_timestamp()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"and <literal>year(...)</literal>"
+msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal> "
+"e <literal>year(...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim"
+"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()"
+"</literal>"
+msgstr ""
+"qualquer função ou operador definidos pela EJB-QL 3.0: <literal>substring(), "
+"trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), "
+"mod()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>str()</literal> for converting numeric or temporal values to a "
+"readable string"
+msgstr ""
+"<literal>str()</literal> para converter valores numéricos ou temporais para "
+"uma string de leitura"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>cast(... as ...)</literal>, where the second argument is the name "
+"of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI "
+"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
+"the underlying database"
+msgstr ""
+"<literal>cast(... as ...)</literal>, onde o segundo argumento é o nome do "
+"tipo hibernate, e<literal>extract(... from ...)</literal> se ANSI "
+"<literal>cast()</literal> e <literal>extract()</literal> é suportado pelo "
+"banco de dados adjacente"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the HQL <literal>index()</literal> function, that applies to aliases of a "
+"joined indexed collection"
+msgstr ""
+"A função HQL <literal>index()</literal> , que se aplicam às referências de "
+"coleçôes associadas e indexadas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL functions that take collection-valued path expressions: <literal>size(), "
+"minelement(), maxelement(), minindex(), maxindex()</literal>, along with the "
+"special <literal>elements()</literal> and <literal>indices</literal> "
+"functions that can be quantified using <literal>some, all, exists, any, in</"
+"literal>."
+msgstr ""
+"As funções HQL que retornam expressões de coleções de valores: <literal>size"
+"(), minelement(), maxelement(), minindex(), maxindex()</literal>, junto com "
+"o elemento especial, <literal>elements()</literal> e funções de "
+"<literal>Ãndices</literal> que podem ser quantificadas usando <literal>some, "
+"all, exists, any, in</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Any database-supported SQL scalar function like <literal>sign()</literal>, "
+"<literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</"
+"literal>"
+msgstr ""
+"Qualquer função escalar suportada pelo banco de dados como <literal>sign()</"
+"literal>, <literal>trunc()</literal>, <literal>rtrim()</literal> e "
+"<literal>sin()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr "Parâmetros posicionais ao estilo JDBC <literal>?</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"and <literal>:x1</literal>"
+msgstr ""
+"Parâmetros nomeados <literal>:name</literal>, <literal>:start_date</literal> "
+"e <literal>:x1</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr ""
+"Literais SQL <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E"
+"+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+"Constantes Java <literal>final estático público</literal><literal>ex: Color."
+"TABBY</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr ""
+"<literal>in</literal> e <literal>between</literal> podem ser usadas da "
+"seguinte maneira: "
+
+#. Tag: para
+#, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr "As formas negativas podem ser escritas conforme segue abaixo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Similarly, <literal>is null</literal> and <literal>is not null</literal> can "
+"be used to test for null values."
+msgstr ""
+"Da mesma forma, <literal>is null</literal> e <literal>is not null</literal> "
+"podem ser usados para testar valores nulos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Booleans can be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+"Booleanos podem ser facilmente usados em expressões, declarando as "
+"substituições da consulta HQL, na configuração do Hibernate:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
+msgstr ""
+"Isso irá substituir as palavras chave <literal>true</literal> e "
+"<literal>false</literal><literal>pelos</literal> literais <literal>1</"
+"literal> e <literal>0</literal> na tradução do HQL para SQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can test the size of a collection with the special property "
+"<literal>size</literal> or the special <literal>size()</literal> function."
+msgstr ""
+"Pode-se testar o tamanho de uma coleção com a propriedade especial "
+"<literal>size</literal> ou a função especial <literal>size()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For indexed collections, you can refer to the minimum and maximum indices "
+"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
+"Similarly, you can refer to the minimum and maximum elements of a collection "
+"of basic type using the <literal>minelement</literal> and "
+"<literal>maxelement</literal> functions. For example:"
+msgstr ""
+"Para coleções indexadas, você pode se referir aos Ãndices máximo e mÃnimo, "
+"usando as funções <literal>minindex</literal> e <literal>maxindex</literal>. "
+"Igualmente, pode-se referir aos elementos máximo e mÃnimo de uma coleção de "
+"tipos básicos usando as funções <literal>minelement</literal> e "
+"<literal>maxelement</literal>. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The SQL functions <literal>any, some, all, exists, in</literal> are "
+"supported when passed the element or index set of a collection "
+"(<literal>elements</literal> and <literal>indices</literal> functions) or "
+"the result of a subquery (see below):"
+msgstr ""
+"As funções SQL <literal>any, some, all, exists, in</literal> são suportadas "
+"quando passado o elemento ou o conjunto de Ãndices de uma coleção "
+"(<literal>elements</literal> e <literal>Ãndices</literal> de funções) ou o "
+"resultado de uma subconsulta (veja abaixo):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that these constructs - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - can only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+"Note que essas construções - <literal>tamanho</literal>, <literal>elementos</"
+"literal>, <literal>Ãndices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> â só podem ser usados na cláusula where do "
+"Hibernate3."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Elements of indexed collections (arrays, lists, and maps) can be referred to "
+"by index in a where clause only:"
+msgstr ""
+"Elementos de coleções com Ãndice (matriz, listas, mapas) podem ser "
+"referenciadas pelo Ãndice (apenas na cláusula where):"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> can even be an arithmetic "
+"expression:"
+msgstr ""
+"A expressão entre colchetes <literal>[]</literal> pode ser até uma expressão "
+"aritimética:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function for "
+"elements of a one-to-many association or collection of values."
+msgstr ""
+"O HQL também provê a função interna <literal>index()</literal> para "
+"elementos de associação um-para-muitos ou coleção de valores."
+
+#. Tag: para
+#, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr ""
+"Funções escalares SQL, suportadas pelo banco de dados subjacente podem ser "
+"usadas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Consider how much longer and less readable the following query would be in "
+"SQL:"
+msgstr ""
+"Se ainda não estiver totalmente convencido, pense o quão maior e menos "
+"legÃvel poderia ser a consulta a seguir, em SQL: "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr "<emphasis>Hint:</emphasis> algo como:"
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr "A cláusula ordenar por"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The list returned by a query can be ordered by any property of a returned "
+"class or components:"
+msgstr ""
+"A lista retornada pela consulta pode ser ordenada por qualquer propriedade "
+"da classe ou componentes retornados:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+"As opções <literal>asc</literal> ou <literal>desc</literal> indicam ordem "
+"crescente ou decrescente, respectivamente."
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr "A cláusula agrupar por"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A query that returns aggregate values can be grouped by any property of a "
+"returned class or components:"
+msgstr ""
+"Uma consulta que retorne valores agregados, podem ser agrupados por qualquer "
+"propriedade de uma classe ou componentes retornados:"
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr "Uma cláusula <literal>having</literal> também é permitida."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses if they are supported by "
+"the underlying database (i.e., not in MySQL)."
+msgstr ""
+"Funções SQL e funções agregadas são permitidas nas cláusulas "
+"<literal>having</literal> e <literal>order by</literal>, se suportadas pelo "
+"banco de dados subjacentes (ex: não no MeuSQL). "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Neither the <literal>group by</literal> clause nor the <literal>order by</"
+"literal> clause can contain arithmetic expressions. Hibernate also does not "
+"currently expand a grouped entity, so you cannot write <literal>group by "
+"cat</literal> if all properties of <literal>cat</literal> are non-"
+"aggregated. You have to list all non-aggregated properties explicitly."
+msgstr ""
+"Note que, nem a cláusula <literal>group by</literal> ou <literal>order by</"
+"literal> podem conter expressões aritméticas. O Hibernate também não expande "
+"atualmente uma entidade agrupada, portanto você não pode escrever "
+"<literal>group by cat</literal> caso todas as propriedades do <literal>cat</"
+"literal> não estiverem agregadas. Você precisa listar claramente todas as "
+"propriedades não-agregadas. "
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr "Subconsultas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For databases that support subselects, Hibernate supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+"Para bancos de dados que suportam subseleções, o Hibernate suporta "
+"subconsultas dentro de consultas. Uma subconsulta precisa estar entre "
+"parênteses (normalmente uma chamada de função agregada SQL). Mesmo "
+"subconsultas co-relacionadas (subconsultas que fazem referência à alias de "
+"outras consultas), são aceitas."
+
+#. Tag: para
+#, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr ""
+"Note que HQL subconsultas podem aparecer apenas dentro de cláusulas select "
+"ou where. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that subqueries can also utilize <literal>row value constructor</"
+"literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more "
+"information."
+msgstr ""
+"Note que as subconsultas também podem utilizar a sintáxe <literal>row value "
+"constructor</literal>. Veja <xref linkend=\"queryhql-tuple\" /> para maiores "
+"detalhes. "
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr "Exemplos de HQL"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate queries can be quite powerful and complex. In fact, the power of "
+"the query language is one of Hibernate's main strengths. The following "
+"example queries are similar to queries that have been used on recent "
+"projects. Please note that most queries you will write will be much simpler "
+"than the following examples."
+msgstr ""
+"As consultas do Hibernate, podem ser muito poderosas e complexas. De fato, o "
+"poder da linguagem de consulta é um dos pontos principais na distribuição do "
+"Hibernate. Aqui temos algumas consultas de exemplo, muito similares a "
+"consultas usadas em um projeto recente. Note que a maioria das consultas que "
+"você irá escrever, são mais simples que estas."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following query returns the order id, number of items, the given minimum "
+"total value and the total value of the order for all unpaid orders for a "
+"particular customer. The results are ordered by total value. In determining "
+"the prices, it uses the current catalog. The resulting SQL query, against "
+"the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, "
+"<literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</"
+"literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr ""
+"A consulta a seguir retorna o id de ordenar, número de Ãtens e o valor total "
+"do ordenar para todos os ordenar não pagos para um cliente particular e "
+"valor total mÃnimo dado, ordenando os resultados por valor total. Para "
+"determinar os preços, utiliza-se o catálogo atual. A consulta SQL "
+"resultante, usando tabelas <literal>ORDER</literal>, <literal>ORDER_LINE</"
+"literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> e "
+"<literal>PRICE</literal>, têm quatro uniões inteiras e uma subseleção (não "
+"correlacionada)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+"Que monstro! Na verdade, na vida real, eu não sou muito afeiçoado à "
+"subconsultas, então minha consulta seria mais parecida com isto:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+"A próxima consulta conta o número de pagamentos em cada status, excluindo "
+"todos os pagamentos no status <literal>AWAITING_APPROVAL</literal>, onde a "
+"mais recente mudança de status foi feita pelo usuário atual. Traduz-se para "
+"uma consulta SQL <literal>com</literal> duas uniões inteiras e uma "
+"subseleção correlacionada, nas tabelas <literal>PAYMENT</literal>, "
+"<literal>PAYMENT_STATUS</literal> e <literal>PAYMENT_STATUS_CHANGE</"
+"literal> ."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the <literal>statusChanges</literal> collection was mapped as a list, "
+"instead of a set, the query would have been much simpler to write."
+msgstr ""
+"Se eu tivesse mapeado a coleção <literal>statusChanges</literal> como um "
+"List, ao invés de um Set, a consulta teria sido muito mais simples de "
+"escrever. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+"A próxima consulta usa a função <literal>isNull()</literal> do Servidor MS "
+"SQL, para retornar todas as contas e pagamentos não efetuados para a "
+"organização, para aquele que o usuário atual pertencer. Traduz-se para uma "
+"consulta SQL <literal>com</literal> três uniões inteiras, uma união externa "
+"e uma subseleção nas tabelas <literal>ACCOUNT</literal>, <literal>PAYMENT</"
+"literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</"
+"literal>, <literal>ORGANIZATION</literal> e <literal>ORG_USER</literal> ."
+
+#. Tag: para
+#, no-c-format
+msgid "For some databases, we would need to do away with the (correlated) subselect."
+msgstr ""
+"Para alguns bancos de dados, precisaremos eliminar a subseleção "
+"(correlacionada)."
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr "Atualização e correção em lote"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL now supports <literal>update</literal>, <literal>delete</literal> and "
+"<literal>insert ... select ...</literal> statements. See <xref linkend="
+"\"batch-direct\" /> for more information."
+msgstr ""
+"Agora o HQL suporta declarações, <literal>update</literal>, <literal>delete</"
+"literal> e <literal>insert ... select ...</literal>. Veja <xref linkend="
+"\"batch-direct\" /> para mais detalhes. "
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr "Dicas & Truques"
+
+#. Tag: para
+#, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr "Pode-se contar o número de resultados da consulta, sem realmente retorná-los:"
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+"Para ordenar um resultado pelo tamanho de uma coleção, use a consulta a "
+"seguir."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+"Se seu banco de dados suporta subseleções, pode-se colocar uma condição "
+"sobre tamanho de seleção na cláusula where da sua consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr "Se seu banco de dados não suporta subseleções, use a consulta a seguir: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As this solution cannot return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+"Com essa solução não se pode retornar um <literal>User</literal> sem nenhuma "
+"menssagem, por causa da união inteira, a forma a seguir também é útil:"
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr ""
+"As propriedades de um JavaBean podem ser limitadas à parâmetros nomeados da "
+"consulta:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Collections are pageable by using the <literal>Query</literal> interface "
+"with a filter:"
+msgstr ""
+"As coleções são pagináveis, usando a interface <literal>Query</literal> com "
+"um filtro:"
+
+#. Tag: para
+#, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr ""
+"Os elementos da coleção podem ser ordenados ou agrupados usando um filtro de "
+"consulta: "
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr "Pode-se achar o tamanho de uma coleção sem inicializá-la:"
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr "Componentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Components can be used similarly to the simple value types that are used in "
+"HQL queries. They can appear in the <literal>select</literal> clause as "
+"follows:"
+msgstr ""
+"Os componentes podem ser usados de quase todas as formas que os tipos de "
+"valores simples são usados nas consultas HQL. Eles podem aparecer na "
+"cláusula <literal>select</literal>: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"where the Person's name property is a component. Components can also be used "
+"in the <literal>where</literal> clause:"
+msgstr ""
+"onde a propriedade do nome da Person é um componente. Os componentes também "
+"podem ser utilizados na cláusula <literal>where</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr ""
+"Os componentes também podem ser usados na cláusula <literal>order by</"
+"literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another common use of components is in <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+msgstr ""
+"Outro uso comum dos componentes é nos <link linkend=\"queryhql-tuple\">row "
+"value constructors</link>."
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr "Sintáxe do construtor de valores de linha"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"HQL supports the use of ANSI SQL <literal>row value constructor</literal> "
+"syntax, sometimes referred to AS <literal>tuple</literal> syntax, even "
+"though the underlying database may not support that notion. Here, we are "
+"generally referring to multi-valued comparisons, typically associated with "
+"components. Consider an entity Person which defines a name component:"
+msgstr ""
+"O HQL suporta o uso da sintáxe ANSI SQL <literal>row value constructor</"
+"literal>, algumas vezes chamado de sintáxe <literal>tupla</literal>, embora "
+"o banco de dados adjacente possa não suportar esta noção. Aqui nós "
+"geralmente nos referimos às comparações de valores múltiplos, tipicamente "
+"associada aos componentes. Considere uma entidade Person que define um "
+"componente de nome:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"That is valid syntax although it is a little verbose. You can make this more "
+"concise by using <literal>row value constructor</literal> syntax:"
+msgstr ""
+"Esta é uma sintáxe válida, embora um pouco verbosa. Seria ótimo tornar essa "
+"sintáxe um pouco mais concisa e utilizar a sintáxe <literal>row value "
+"constructor</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It can also be useful to specify this in the <literal>select</literal> "
+"clause:"
+msgstr "Pode também ser útil especificar isto na cláusula <literal>select</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Using <literal>row value constructor</literal> syntax can also be beneficial "
+"when using subqueries that need to compare against multiple values:"
+msgstr ""
+"Com o uso da sintáxe <literal>row value constructor</literal>, e que pode "
+"ser de benéfico, seria quando utilizar as subconsultas que precisem comparar "
+"com os valores múltiplos:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One thing to consider when deciding if you want to use this syntax, is that "
+"the query will be dependent upon the ordering of the component sub-"
+"properties in the metadata."
+msgstr ""
+"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. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_sql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_sql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/query_sql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1094 @@
+# translation of query_sql.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: query_sql\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:47\n"
+"PO-Revision-Date: 2010-03-19 09:46+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr "SQL Nativo"
+
+#. 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 ""
+"Você também pode expressar consultas no dialeto SQL nativo de seu banco de "
+"dados. Isto é bastante útil para usar recursos especÃficos do banco de "
+"dados, assim como dicas de consultas ou a palavra chave em Oracle "
+"<literal>CONNECT</literal>. Ele também oferece um caminho de migração limpo "
+"de uma aplicação baseada em SQL/JDBC direta até o 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 ""
+"O Hibernate3 permite que você especifique o SQL escrito à mão, incluindo "
+"procedimentos armazenados, para todas as operações de criar, atualizar, "
+"deletar e carregar."
+
+#. Tag: title
+#, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr "Usando um <literal>SQLQuery</literal>"
+
+#. 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 ""
+"A execução de consultas SQL nativa é controlada através da interface "
+"<literal>SQLQuery</literal> que é obtido, chamando a <literal>Session."
+"createSQLQuery()</literal>. As seções abaixo descrevem como usar este API "
+"para consultas."
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr "Consultas Escalares"
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr "A consulta SQL mais básica é obter uma lista dos escalares (valores)."
+
+#. 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 ""
+"Eles irão retornar uma matriz de Lista de Objeto (Object[]) com valores "
+"escalares para cada coluna na tabela CATS. O Hibernate usará o "
+"ResultSetMetadata para deduzir a ordem atual e tipos de valores escalares "
+"retornados."
+
+#. 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 ""
+"Para evitar o uso do <literal>ResultSetMetadata</literal> ou simplesmente "
+"para ser mais explÃcito em o quê é retornado, você poderá usar o "
+"<literal>addScalar()</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr "Esta consulta especificou:"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr "A string da consulta SQL"
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr "as colunas e tipos para retornar"
+
+#. 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 ""
+"Este ainda irá retornar as matrizes de Objeto, mas desta vez ele não usará o "
+"<literal>ResultSetMetdata</literal>, ao invés disso, obterá explicitamente a "
+"coluna de ID, NOME e DATA DE NASCIMENTO como respectivamente uma Longa, "
+"String e Curta a partir do conjunto de resultados adjacentes. Isto também "
+"significa que somente estas três colunas irão retornar, embora a consulta "
+"esteja utilizando <literal>*</literal> e possa retornar mais do que três "
+"colunas listadas. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is possible to leave out the type information for all or some of the "
+"scalars."
+msgstr ""
+"à possÃvel deixar de fora o tipo de informação para todos ou alguns dos "
+"escalares."
+
+#. 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 ""
+"Esta é a mesma consulta de antes, mas desta vez, o "
+"<literal>ResultSetMetaData</literal> é utilizado para decidir o tipo de NOME "
+"e DATA DE NASCIMENTO onde o tipo de ID é explicitamente especificado. "
+
+#. 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 ""
+"Como o java.sql.Types retornados do ResultSetMetadata é mapeado para os "
+"tipos Hibernate, ele é controlado pelo Dialeto. Se um tipo especÃfico não é "
+"mapeado ou não resulta no tipo esperado, é possÃvel padronizá-lo através de "
+"chamadas para <literal>registerHibernateType</literal> no Dialeto. "
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr "Consultas de Entidade"
+
+#. 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 ""
+"As consultas acima foram todas sobre o retorno de valores escalares, "
+"basicamente retornando os valores \"não processados\" do conjunto de "
+"resultados. A seguir, mostramos como obter objetos de entidade da consulta "
+"sql nativa através do <literal>addEntity()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr "A entidade retornada por uma consulta"
+
+#. 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 ""
+"Considerando que o Cat esteja mapeado como uma classe com colunas ID,NOME e "
+"DATA DE NASCIMENTO, as consultas acima irão devolver uma Lista onde cada "
+"elemento é uma entidade de 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 ""
+"Se a entidade estiver mapeada com um <literal>muitos-para-um</literal> para "
+"outra entidade, requer-se que devolva também este ao desempenhar a consulta "
+"nativa, senão ocorrerá um erro de banco de dados especÃfico \"coluna não "
+"encontrada\". As colunas adicionais serão automaticamente retornadas ao usar "
+"a anotação, mas preferimos ser explÃcitos como no seguinte exemplo para "
+"uma<literal>muitos-para-um</literal> para um <literal>Dog</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr "Isto irá permitir que o cat.getDog() funcione de forma apropriada"
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr "Manuseio de associações e coleções"
+
+#. 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 ""
+"à possÃvel realizar a recuperação adiantada no <literal>Dog</literal> para "
+"evitar uma viagem extra por inicializar o proxy. Isto é feito através do "
+"método <literal>addJoin()</literal>que permite que você se una à associação "
+"ou coleção."
+
+#. 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 ""
+"Neste exemplo, a devolução do <literal>Cat</literal> terá sua propriedade "
+"<literal>dog</literal> totalmente inicializada sem nenhuma viagem extra ao "
+"banco de dados. Note que adicionamos um nome alias (\"cat\") para poder "
+"especificar o caminho da propriedade alvo na união. à possÃvel fazer a mesma "
+"união para coleções, ex.: se ao invés disso, o <literal>Cat</literal> "
+"tivesse um-para-muitos para <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 ""
+"Neste estágio, estamos chegando no limite do que é possÃvel fazer com as "
+"consultas nativas sem começar a destacar as colunas sql para torná-las útil "
+"no Hibernate. Os problemas começam a surgir quando se retorna entidades "
+"múltiplas do mesmo tipo ou quando o padrão de nomes de alias/coluna não são "
+"suficientes. "
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr "Retorno de entidades múltiplas"
+
+#. 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 ""
+"Até aqui, os nomes de colunas do conjunto de resultados são considerados "
+"como sendo os mesmos que os nomes de colunas especificados no documento de "
+"mapeamento. Isto pode ser problemático para as consultas SQL, que une "
+"tabelas múltiplas, uma vez que os mesmos nomes de colunas podem aparecer em "
+"mais de uma tabela. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Column alias injection is needed in the following query (which most likely "
+"will fail):"
+msgstr ""
+"à necessário uma injeção de alias de coluna na seguinte consulta (a qual é "
+"bem provável que falhe):"
+
+#. 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 ""
+"A intenção para esta consulta é retornar duas instâncias Cat por linha: um "
+"cat e sua mãe. Isto irá falhar pois existe um conflito de nomes, são "
+"mapeados aos mesmos nomes de colunas e em alguns bancos de dados os aliases "
+"de colunas retornadas estarão, muito provavelmente, na forma de \"c.ID\", "
+"\"c.NOME\", etc., os quais não são iguais às colunas especificadas no "
+"mapeamento (\"ID\" e \"NOME\"). "
+
+#. Tag: para
+#, no-c-format
+msgid "The following form is not vulnerable to column name duplication:"
+msgstr "A seguinte forma não é vulnerável à duplicação do nome de coluna:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the SQL query string, with placeholders for Hibernate to inject column "
+"aliases"
+msgstr ""
+"a string da consulta SQL, com espaço reservado para Hibernate para injetar "
+"aliases de coluna."
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr "as entidades retornadas pela consulta"
+
+#. 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 ""
+"A anotação {cat.*} e {mãe.*} usada acima, é um atalho para \"todas as "
+"propriedades\". De forma alternativa, você pode listar as colunas "
+"explicitamente, mas até neste caso nós deixamos o Hibernate injetar os "
+"aliases de coluna SQL para cada propriedade. O espaço reservado para um "
+"alias de coluna é simplesmente o nome de propriedade qualificado pelo alias "
+"de tabela. No seguinte exemplo, recuperamos os Cats e suas mães de uma "
+"tabela diferente (cat_log) para aquele declarado no metadado de mapeamentos. "
+"Note que podemos até usar os aliases de propriedade na cláusula where se "
+"quisermos."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr "Alias e referências de propriedades"
+
+#. 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 ""
+"Para a maioria dos casos, necessita-se da injeção de alias acima. Para "
+"consultas relatadas aos mapeamentos mais complexos, como as propriedades "
+"compostas, discriminadores de herança, coleções, etc., você pode usar "
+"aliases especÃficos que permitem o Hibernate injetar os aliases apropriados."
+
+#. 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 ""
+"As seguintes tabelas mostram as diferentes formas de usar uma injeção de "
+"alias. Por favor note que os nomes de alias no resultado são exemplos, cada "
+"alias terá um nome único e provavelmente diferente quando usado."
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr "Nomes de injeção de alias"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "Descrição"
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr "Sintáxe"
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr "Exemplo"
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr "Uma propriedade simples"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "<literal>{[aliasname].[propertyname]</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr "Uma propriedade composta"
+
+#. Tag: entry
+#, 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr "Discriminador de uma entidade"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{[aliasname].class}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>DISC as {item.class}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr "Todas as propriedades de uma entidade"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{[aliasname].*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr "Uma chave de coleção"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{[aliasname].key}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr "O id de uma coleção"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{[aliasname].id}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr "O elemento de uma coleção"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{[aliasname].element}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>XID as {coll.element}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "property of the element in the collection"
+msgstr "propriedade de elemento na coleção "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].element.[propertyname]}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>NAME as {coll.element.name}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr "Todas as propriedades de elemento na coleção"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the collection"
+msgstr "Todas as propriedades da coleção "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr "Retorno de entidades não gerenciadas"
+
+#. 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 ""
+"Ã possÃvel aplicar um ResultTransformer para consultas sql nativas, "
+"permitindo que o retorno de entidades não gerenciadas."
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr "um transformador de resultado"
+
+#. 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 ""
+"A consulta acima irá devolver uma lista de <literal>CatDTO</literal> que foi "
+"instanciada e injetada com valores dos comandos NAME e BIRTHDATE em suas "
+"propriedades correspondentes ou campos."
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr "Manuseio de herança"
+
+#. 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 ""
+"As consultas sql nativas, as quais consultam entidades mapeadas como parte "
+"de uma herança, devem incluir todas as propriedades na classe base e todas "
+"as suas subclasses. "
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr "Parâmetros"
+
+#. Tag: para
+#, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr ""
+"Consultas sql Nativas suportam parâmetros posicionais assim como parâmetros "
+"nomeados:"
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr "Consultas SQL Nomeadas"
+
+#. 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 ""
+"Consultas SQL Nomeadas podem ser definidas no documento de mapeamento e "
+"chamadas exatamente da mesma forma que uma consulta HQL nomeada. Neste caso "
+"nós <emphasis>não</emphasis> precisamos chamar o <literal>addEntity()</"
+"literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><return-join></literal> element is use to join "
+"associations and the <literal><load-collection></literal> element is "
+"used to define queries which initialize collections,"
+msgstr ""
+"Os elementos <literal><return-join></literal> e <literal><load-"
+"collection></literal> são usados para unir associações e definir "
+"consultas que inicializam coleções, "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A named SQL query may return a scalar value. You must declare the column "
+"alias and Hibernate type using the <literal><return-scalar></literal> "
+"element:"
+msgstr ""
+"Uma consulta SQL nomeada pode devolver um valor escalar. Você deve declarar "
+"um alias de coluna e um tipo Hibernate usando o elemento <literal><return-"
+"scalar></literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can externalize the resultset mapping information in a <literal><"
+"resultset></literal> element which will allow you to either reuse them "
+"across several named queries or through the <literal>setResultSetMapping()</"
+"literal> API."
+msgstr ""
+"Você pode externar as informações de mapeamento de conjunto de resultado em "
+"um elemento <literal><resultset></literal> tanto para reusá-los em "
+"diversas consultas nomeadas quanto através da API "
+"<literal>setResultSetMapping()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can, alternatively, use the resultset mapping information in your hbm "
+"files directly in java code."
+msgstr ""
+"Você pode também, como forma alternativa, usar a informação de mapeamento de "
+"conjunto de resultado em seus arquivos hbm em código de java. "
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr ""
+"Utilizando a propriedade retorno para especificar explicitamente os nomes de "
+"colunas/alias"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can explicitly tell Hibernate what column aliases to use with "
+"<literal><return-property></literal>, instead of using the <literal>{}"
+"</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr ""
+"Com a <literal><return-property></literal> você pode informar "
+"explicitamente, quais aliases de coluna utilizar, ao invés de usar a sintáxe "
+"<literal>{}</literal> para deixar o Hibernate injetar seus próprios aliases. "
+"Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><return-property></literal> also works with multiple columns. "
+"This solves a limitation with the <literal>{}</literal>-syntax which cannot "
+"allow fine grained control of multi-column properties."
+msgstr ""
+"<literal><return-property></literal> também funciona com colunas "
+"múltiplas. Isto resolve a limitação com a sintáxe <literal>{}</literal> que "
+"não pode permitir controle granulado fino de muitas propriedades de colunas "
+"múltiplas. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In this example <literal><return-property></literal> was used in "
+"combination with the <literal>{}</literal>-syntax for injection. This allows "
+"users to choose how they want to refer column and properties."
+msgstr ""
+"Observe que neste exemplo nós usamos <literal><return-property></"
+"literal> combinado à sÃntáxe <literal>{}</literal> para injeção. Permite que "
+"os usuários escolham como eles querem se referir à coluna e às "
+"propriedades. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If your mapping has a discriminator you must use <literal><return-"
+"discriminator></literal> to specify the discriminator column."
+msgstr ""
+"Se seu mapeamento possuir um discriminador, você deve usar <literal><"
+"return-discriminator></literal> para especificar a coluna do "
+"discriminador."
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr "Usando procedimentos de armazenamento para consultas"
+
+#. 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 ""
+"O Hibernate 3 apresenta o suporte para consultas através de procedimentos e "
+"funções armazenadas. A maior parte da documentação a seguir, é equivalente "
+"para ambos. Os procedimentos e funções armazenados devem devolver um "
+"conjunto de resultados como primeiros parâmetros externos para poder "
+"trabalhar com o Hibernate. Um exemplo disto é a função armazenada em Oracle "
+"9 e versões posteriores como se segue: "
+
+#. Tag: para
+#, no-c-format
+msgid "To use this query in Hibernate you need to map it via a named query."
+msgstr ""
+"Para usar esta consulta no Hibernate você vai precisar mapeá-lo através de "
+"uma consulta nomeada"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures currently only return scalars and entities. <literal><"
+"return-join></literal> and <literal><load-collection></literal> are "
+"not supported."
+msgstr ""
+"Observe que os procedimentos armazenados somente devolvem escalares e "
+"entidades. O <literal><return-join></literal> e <literal><load-"
+"collection></literal> não são suportados."
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr "Regras e limitações para utilizar procedimentos armazenados."
+
+#. 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 ""
+"Para usar procedimentos armazenados com Hibernate, os procedimentos e "
+"funções precisam seguir a mesma regra. Caso não sigam estas regras, não "
+"poderão ser usados com o Hibernate. Se você ainda desejar usar estes "
+"procedimentos, terá que executá-los através da <literal>session.connection()"
+"</literal>. As regras são diferentes para cada banco de dados, uma vez que "
+"os fabricantes possuem procedimentos de semânticas/sintáxe armazenados. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedure queries cannot be paged with <literal>setFirstResult()/"
+"setMaxResults()</literal>."
+msgstr ""
+"Consultas de procedimento armazenado não podem ser paginados com o "
+"<literal>setFirstResult()/setMaxResults()</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The recommended call form is standard SQL92: <literal>{ ? = call functionName"
+"(<parameters>) }</literal> or <literal>{ ? = call procedureName(<"
+"parameters>}</literal>. Native call syntax is not supported."
+msgstr ""
+"O formulário de chamada recomedado é o padrão SQL92: <literal>{ ? = call "
+"functionName(<parameters>) }</literal> or <literal>{ ? = call "
+"procedureName(<parameters>}</literal>. A sintáxe de chamada nativa não "
+"é suportada."
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr "As seguintes regras se aplicam para Oracle:"
+
+#. 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 ""
+"A função deve retornar um conjunto de resultado. O primeiro parâmetro do "
+"procedimento deve ser um <literal>OUT</literal> que retorne um conjunto de "
+"resultado. Isto é feito usando o tipo <literal>SYS_REFCURSOR</literal> no "
+"Oracle 9 ou 10. No Oracle é necessário definir o tipo de <literal>REF "
+"CURSOR</literal>, veja a documentação do Oracle. "
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr "Para servidores Sybase ou MS SQL aplicam-se as seguintes regras:"
+
+#. 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 ""
+"O procedimento deve retornar um conjunto de resultados. Observe que, como "
+"este servidor pode retornar múltiplos conjuntos de resultados e contas "
+"atualizadas, o Hibernate irá inteirar os resultados e pegar o primeiro "
+"resultado, o qual é o valor de retorno do conjunto de resultados. O resto "
+"será descartado."
+
+#. 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 ""
+"Se você habilitar <literal>SET NOCOUNT ON</literal> no seu procedimento, ele "
+"provavelmente será mais eficiente. Mas, isto não é obrigatório"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr "SQL padronizado para criar, atualizar e deletar"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 can use custom SQL for create, update, and delete operations. The "
+"SQL can be overridden at the statement level or inidividual column level. "
+"This section describes statement overrides. For columns, see <xref linkend="
+"\"mapping-column-read-and-write\" />."
+msgstr ""
+"O Hibernate 3 pode usar um SQL personalizado para criar, atualizar e deletar operações. O SQL pode ser substituÃdo com o nÃvel de declaração oi nÃvel de coluna individua. Esta seção descreve as substituições de declaração. Para colunas, consulte <xref linkend="
+"\"mapping-column-read-and-write\" />."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The class and collection persisters in Hibernate already contain a set of "
+"configuration time generated strings (insertsql, deletesql, updatesql etc.). "
+"The mapping tags <literal><sql-insert></literal>, <literal><sql-"
+"delete></literal>, and <literal><sql-update></literal> override "
+"these strings:"
+msgstr ""
+"A persistência de classe e coleção no Hibernate já contém um "
+"conjunto de strings gerados por tempo de configuração (insertsql, deletesql, "
+"updatesql etc.). O mapeamento das tags <literal><sql-insert></"
+"literal>, <literal><sql-delete></literal>, e <literal><sql-"
+"update></literal> sobrescreve essas strings:"
+
+#. 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 ""
+"O SQL é executado diretamente no seu banco de dados, então você pode usar "
+"qualquer linguagem que quiser. Isto com certeza reduzirá a portabilidade do "
+"seu mapeamento se você utilizar um SQL para um banco de dados especÃfico."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Stored procedures are supported if the <literal>callable</literal> attribute "
+"is set:"
+msgstr ""
+"Os procedimentos armazenados são suportados se a função <literal>callable</"
+"literal> estiver ativada:"
+
+#. 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."
+msgstr ""
+"A ordem de posições dos parâmetros são vitais, pois eles devem estar na "
+"mesma seqüência esperada pelo 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 ""
+"Você pode ver a ordem esperada ativando o debug logging no nÃÂvel "
+"<literal>org.hibernate.persister.entity</literal>. Com este nÃÂvel ativado, "
+"o Hibernate irá imprimir o SQL estático que foi usado para criar, atualizar, "
+"deletar, etc., entidades. Para ver a seqüência esperada, lembre-se de não "
+"incluir seu SQL padronizado no arquivo de mapeamento, pois ele irá "
+"sobrescrever o SQL estático gerado pelo Hibernate."
+
+#. 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 ""
+"Os procedimentos armazenados são na maioria dos casos requeridos para "
+"retornar o número de linhas inseridas/atualizadas/deletadas, uma vez que o "
+"Hibernate possui algumas verificações em tempo de espera para o sucesso das "
+"instruções. O Hibernate sempre registra o primeiro parâmetro da instrução "
+"como um parâmetro de saÃda numérica para as operações CUD:"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr "SQL padronizado para carga"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also declare your own SQL (or HQL) queries for entity loading. As "
+"with inserts, updates, and deletes, this can be done at the individual "
+"column level as described in <xref linkend=\"mapping-column-read-and-write"
+"\" /> or at the statement level. Here is an example of a statement level "
+"override:"
+msgstr ""
+"Você pode declarar também a sua própria consulta SQL (or HQL) para carregamento de entidade. Assim como inserções, atualizações e deletações, isto pode ser feito no nÃvel de coluna individual conforme descrito no <xref linkend=\"mapping-column-read-and-write"
+"\" />ou no nÃvel de declaração. Segue abaixo um exemplo de uma substituição no nÃvel de declaração:"
+
+#. 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 ""
+"Este é apenas uma instrução de consulta nomeada, como discutido "
+"anteriormente. Você pode referenciar esta consulta nomeada em um mapeamento "
+"de classe:"
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr "Este também funciona com procedimentos armazenados."
+
+#. Tag: para
+#, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr "Você pode também definir uma consulta para carregar uma coleção: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can also define an entity loader that loads a collection by join "
+"fetching:"
+msgstr ""
+"Você pode até definir um carregador de entidade que carregue uma coleção por "
+"busca de união: "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/quickstart.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/quickstart.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/quickstart.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,12 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=utf-8\n"
+msgid "ROLES_OF_TRANSLATORS"
+msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+msgid "CREDIT_FOR_TRANSLATORS"
+msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/readonly.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/readonly.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/readonly.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1124 @@
+# Language pt-BR translations for PACKAGE package.
+# Automatically generated, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-25 06:26+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: readonly.xml:33
+#, no-c-format
+msgid "Read-only entities"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:36
+#, no-c-format
+msgid ""
+"Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ "
+"from what you may have encountered elsewhere. Incorrect usage may cause "
+"unexpected results."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:43
+#, no-c-format
+msgid "When an entity is read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:48
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check the entity's simple properties or single-"
+"ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:54
+#, no-c-format
+msgid ""
+"Hibernate will not update simple properties or updatable single-ended "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:60
+#, no-c-format
+msgid ""
+"Hibernate will not update the version of the read-only entity if only simple "
+"properties or single-ended updatable associations are changed;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:69
+#, no-c-format
+msgid ""
+"In some ways, Hibernate treats read-only entities the same as entities that "
+"are not read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:75
+#, no-c-format
+msgid ""
+"Hibernate cascades operations to associations as defined in the entity "
+"mapping."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:81
+#, no-c-format
+msgid ""
+"Hibernate updates the version if the entity has a collection with changes "
+"that dirties the entity;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:87
+#, no-c-format
+msgid "A read-only entity can be deleted."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:94
+#, no-c-format
+msgid ""
+"Even if an entity is not read-only, its collection association can be "
+"affected if it contains a read-only entity."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:99
+#, no-c-format
+msgid ""
+"For details about the affect of read-only entities on different property and "
+"association types, see <xref linkend=\"readonly-proptypes\"/>."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:105
+#, no-c-format
+msgid "For details about how to make entities read-only, see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:110
+#, no-c-format
+msgid "Hibernate does some optimizing for read-only entities:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:115
+#, no-c-format
+msgid ""
+"It saves execution time by not dirty-checking simple properties or single-"
+"ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:121
+#, no-c-format
+msgid "It saves memory by deleting database snapshots."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:128
+#, no-c-format
+msgid "Making persistent entities read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:130
+#, no-c-format
+msgid ""
+"Only persistent entities can be made read-only. Transient and detached "
+"entities must be put in persistent state before they can be made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:136
+#, no-c-format
+msgid ""
+"Hibernate provides the following ways to make persistent entities read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:142
+#, no-c-format
+msgid ""
+"you can map an entity class as <emphasis>immutable</emphasis>; when an "
+"entity of an immutable class is made persistent, Hibernate automatically "
+"makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for "
+"details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:150
+#, no-c-format
+msgid ""
+"you can change a default so that entities loaded into the session by "
+"Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-"
+"loaddefault\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:157
+#, no-c-format
+msgid ""
+"you can make an HQL query or criteria read-only so that entities loaded when "
+"the query or criteria executes, scrolls, or iterates, are automatically made "
+"read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:165
+#, no-c-format
+msgid ""
+"you can make a persistent entity that is already in the in the session read-"
+"only; see <xref linkend=\"readonly-api-entity\"/> for details"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:174
+#, no-c-format
+msgid "Entities of immutable classes"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:176
+#, no-c-format
+msgid ""
+"When an entity instance of an immutable class is made persistent, Hibernate "
+"automatically makes it read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:180
+#, no-c-format
+msgid ""
+"An entity of an immutable class can created and deleted the same as an "
+"entity of a mutable class."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:185
+#, no-c-format
+msgid ""
+"Hibernate treats a persistent entity of an immutable class the same way as a "
+"read-only persistent entity of a mutable class. The only exception is that "
+"Hibernate will not allow an entity of an immutable class to be changed so it "
+"is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:196
+#, no-c-format
+msgid "Loading persistent entities as read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:199 readonly.xml:286
+#, no-c-format
+msgid "Entities of immutable classes are automatically loaded as read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:205
+#, no-c-format
+msgid ""
+"To change the default behavior so Hibernate loads entity instances of "
+"mutable classes into the session and automatically makes them read-only, "
+"call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:210
+#, no-c-format
+msgid "Session.setDefaultReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:212
+#, no-c-format
+msgid ""
+"To change the default back so entities loaded by Hibernate are not made read-"
+"only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:216
+#, no-c-format
+msgid "Session.setDefaultReadOnly( false );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:218
+#, no-c-format
+msgid "You can determine the current setting by calling:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:221
+#, no-c-format
+msgid "Session.isDefaultReadOnly();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:223
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, entities loaded by the "
+"following are automatically made read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:229
+#, no-c-format
+msgid "Session.load()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:234
+#, no-c-format
+msgid "Session.get()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:239
+#, no-c-format
+msgid "Session.merge()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:244
+#, no-c-format
+msgid ""
+"executing, scrolling, or iterating HQL queries and criteria; to override "
+"this setting for a particular HQL query or criteria see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:253
+#, no-c-format
+msgid "Changing this default has no effect on:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:258
+#, no-c-format
+msgid "persistent entities already in the session when the default was changed"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:264
+#, no-c-format
+msgid ""
+"persistent entities that are refreshed via Session.refresh(); a refreshed "
+"persistent entity will only be read-only if it was read-only before "
+"refreshing"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:272
+#, no-c-format
+msgid ""
+"persistent entities added by the application via Session.persist(), Session."
+"save(), and Session.update() Session.saveOrUpdate()"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:283
+#, no-c-format
+msgid "Loading read-only entities from an HQL query/criteria"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:292
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns false (the default) when an HQL query "
+"or criteria executes, then entities and proxies of mutable classes loaded by "
+"the query will not be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:299
+#, no-c-format
+msgid ""
+"You can override this behavior so that entities and proxies loaded by an HQL "
+"query or criteria are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:304
+#, no-c-format
+msgid "For an HQL query, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:307
+#, no-c-format
+msgid "Query.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:309
+#, no-c-format
+msgid ""
+"<literal>Query.setReadOnly( true )</literal> must be called before "
+"<literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, "
+"<literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:315
+#, no-c-format
+msgid "For an HQL criteria, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:318
+#, no-c-format
+msgid "Criteria.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:320
+#, no-c-format
+msgid ""
+"<literal>Criteria.setReadOnly( true )</literal> must be called before "
+"<literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</"
+"literal>, or <literal>Criteria.scroll()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:326
+#, no-c-format
+msgid ""
+"Entities and proxies that exist in the session before being returned by an "
+"HQL query or criteria are not affected."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:331
+#, no-c-format
+msgid ""
+"Uninitialized persistent collections returned by the query are not affected. "
+"Later, when the collection is initialized, entities loaded into the session "
+"will be read-only if Session.isDefaultReadOnly() returns true."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:338
+#, no-c-format
+msgid ""
+"Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria."
+"setReadOnly( true )</literal> works well when a single HQL query or criteria "
+"loads all the entities and intializes all the proxies and collections that "
+"the application needs to be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:346
+#, no-c-format
+msgid ""
+"When it is not possible to load and initialize all necessary entities in a "
+"single query or criteria, you can temporarily change the session default to "
+"load entities as read-only before the query is executed. Then you can "
+"explicitly initialize proxies and collections before restoring the session "
+"default."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:355
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+" \n"
+"setDefaultReadOnly( true );\n"
+"Contract contract = \n"
+" ( Contract ) session.createQuery(\n"
+" \"from Contract where customerName = 'Sherman'\" )\n"
+" .uniqueResult();\n"
+"Hibernate.initialize( contract.getPlan() );\n"
+"Hibernate.initialize( contract.getVariations() );\n"
+"Hibernate.initialize( contract.getNotes() );\n"
+"setDefaultReadOnly( false );\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:357
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, then you can use Query."
+"setReadOnly( false ) and Criteria.setReadOnly( false ) to override this "
+"session setting and load entities that are not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:367
+#, no-c-format
+msgid "Making a persistent entity read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:369
+#, no-c-format
+msgid ""
+"Persistent entities of immutable classes are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:375
+#, no-c-format
+msgid "To make a persistent entity or proxy read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:378
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, true)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:380
+#, no-c-format
+msgid ""
+"To change a read-only entity or proxy of a mutable class so it is no longer "
+"read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:384
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, false)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:387
+#, no-c-format
+msgid ""
+"When a read-only entity or proxy is changed so it is no longer read-only, "
+"Hibernate assumes that the current state of the read-only entity is "
+"consistent with its database representation. If this is not true, then any "
+"non-flushed changes made before or while the entity was read-only, will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:396
+#, no-c-format
+msgid ""
+"To throw away non-flushed changes and make the persistent entity consistent "
+"with its database representation, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:400
+#, no-c-format
+msgid "session.refresh( entity );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:402
+#, no-c-format
+msgid ""
+"To flush changes made before or while the entity was read-only and make the "
+"database representation consistent with the current state of the persistent "
+"entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:408
+#, no-c-format
+msgid ""
+"// evict the read-only entity so it is detached\n"
+"session.evict( entity );\n"
+"\n"
+"// make the detached entity (with the non-flushed changes) persistent\n"
+"session.update( entity );\n"
+"\n"
+"// now entity is no longer read-only and its changes can be flushed\n"
+"s.flush();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:413
+#, no-c-format
+msgid "Read-only affect on property type"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:415
+#, no-c-format
+msgid ""
+"The following table summarizes how different property types are affected by "
+"making an entity read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:421
+#, no-c-format
+msgid "Affect of read-only entity on property types"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:427
+#, no-c-format
+msgid "Property/Association Type"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:428
+#, no-c-format
+msgid "Changes flushed to DB?"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:433
+#, no-c-format
+msgid "Simple"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:435
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:439
+#, no-c-format
+msgid "<entry>no*</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:443
+#, no-c-format
+msgid "Unidirectional one-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:444
+#, no-c-format
+msgid "Unidirectional many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:445
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:451 readonly.xml:452
+#, no-c-format
+msgid "<para>no*</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:457
+#, no-c-format
+msgid "Unidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:458
+#, no-c-format
+msgid "Unidirectional many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:459
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:464 readonly.xml:465 readonly.xml:489
+#, no-c-format
+msgid "<para>yes</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:470
+#, no-c-format
+msgid "<para>Bidirectional one-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:471
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:475
+#, no-c-format
+msgid "only if the owning entity is not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:479
+#, no-c-format
+msgid "<para>Bidirectional one-to-many/many-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:480
+#, no-c-format
+msgid "inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:481
+#, no-c-format
+msgid "non-inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:482
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:488
+#, no-c-format
+msgid "only added/removed entities that are not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:494
+#, no-c-format
+msgid "<para>Bidirectional many-to-many</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:495
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:499
+#, no-c-format
+msgid "<entry>yes</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:505
+#, no-c-format
+msgid ""
+"* Behavior is different when the entity having the property/association is "
+"read-only, compared to when it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:511
+#, no-c-format
+msgid "Simple properties"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:513
+#, no-c-format
+msgid ""
+"When a persistent object is read-only, Hibernate does not dirty-check simple "
+"properties."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:518
+#, no-c-format
+msgid ""
+"Hibernate will not synchronize simple property state changes to the "
+"database. If you have automatic versioning, Hibernate will not increment the "
+"version if any simple properties change."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:524
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"// get a contract and make it read-only\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"\n"
+"// contract.getCustomerName() is \"Sherman\"\n"
+"contract.setCustomerName( \"Yogi\" );\n"
+"tx.commit();\n"
+"\n"
+"tx = session.beginTransaction();\n"
+"\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"// contract.getCustomerName() is still \"Sherman\"\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:529
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:532
+#, no-c-format
+msgid "Unidirectional one-to-one and many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:534
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-one and many-to-one associations in "
+"the same way when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:540
+#, no-c-format
+msgid ""
+"We use the term <emphasis>unidirectional single-ended association</emphasis> "
+"when referring to functionality that is common to unidirectional one-to-one "
+"and many-to-one associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:547
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check unidirectional single-ended associations when "
+"the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:552
+#, no-c-format
+msgid ""
+"If you change a read-only entity's reference to a unidirectional single-"
+"ended association to null, or to refer to a different entity, that change "
+"will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:560
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, then its references to unidirectional "
+"single-ended associations must be assigned when that entity is first "
+"created. Because the entity is automatically made read-only, these "
+"references can not be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:570
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to unidirectional single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:576
+#, no-c-format
+msgid ""
+"In the following examples, Contract has a unidirectional many-to-one "
+"association with Plan. Contract cascades save and update operations to the "
+"association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:582
+#, no-c-format
+msgid ""
+"The following shows that changing a read-only entity's many-to-one "
+"association reference to null has no effect on the entity's database "
+"representation."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:588
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and set its plan to null \n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"contract.setPlan( null );\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:590
+#, no-c-format
+msgid ""
+"The following shows that, even though an update to a read-only entity's many-"
+"to-one association has no affect on the entity's database representation, "
+"flush still cascades the save-update operation to the locally changed "
+"association."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:599
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and change to a new plan\n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"Plan newPlan = new Plan( \"new plan\"\n"
+"contract.setPlan( newPlan);\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"// newPlan is non-null because it was persisted when \n"
+"// the previous transaction was committed; \n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:604
+#, no-c-format
+msgid "Unidirectional one-to-many and many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:606
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-many and many-to-many associations "
+"owned by a read-only entity the same as when owned by an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:613
+#, no-c-format
+msgid ""
+"Hibernate dirty-checks unidirectional one-to-many and many-to-many "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:618
+#, no-c-format
+msgid ""
+"The collection can contain entities that are read-only, as well as entities "
+"that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:624
+#, no-c-format
+msgid ""
+"Entities can be added and removed from the collection; changes are flushed "
+"to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:629
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in the collection if they dirty the owning entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:640
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:643
+#, no-c-format
+msgid "<title>Bidirectional one-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:645
+#, no-c-format
+msgid "If a read-only entity owns a bidirectional one-to-one association:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:652
+#, no-c-format
+msgid "Hibernate does not dirty-check the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:657
+#, no-c-format
+msgid ""
+"updates that change the association reference to null or to refer to a "
+"different entity will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:664
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:673
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, and it owns a bidirectional one-to-"
+"one association, then its reference must be assigned when that entity is "
+"first created. Because the entity is automatically made read-only, these "
+"references cannot be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:683
+#, no-c-format
+msgid ""
+"When the owner is not read-only, Hibernate treats an association with a read-"
+"only entity the same as when the association is with an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:693
+#, no-c-format
+msgid "<title>Bidirectional one-to-many/many-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:695
+#, no-c-format
+msgid ""
+"A read-only entity has no impact on a bidirectional one-to-many/many-to-one "
+"association if:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:702
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using an inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:708
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using a non-inverse "
+"collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:714
+#, no-c-format
+msgid ""
+"the one-to-many side uses a non-inverse collection that contains the read-"
+"only entity"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:721
+#, no-c-format
+msgid "When the one-to-many side uses an inverse collection:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:727
+#, no-c-format
+msgid ""
+"a read-only entity can only be added to the collection when it is created;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:733
+#, no-c-format
+msgid ""
+"a read-only entity can only be removed from the collection by an orphan "
+"delete or by explicitly deleting the entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:744
+#, no-c-format
+msgid "<title>Bidirectional many-to-many</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:745
+#, no-c-format
+msgid ""
+"Hibernate treats bidirectional many-to-many associations owned by a read-"
+"only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:752
+#, no-c-format
+msgid "Hibernate dirty-checks bidirectional many-to-many associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:757
+#, no-c-format
+msgid ""
+"The collection on either side of the association can contain entities that "
+"are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:763
+#, no-c-format
+msgid ""
+"Entities are added and removed from both sides of the collection; changes "
+"are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:769
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in both sides of the collection if they dirty the entity owning the "
+"respective collections."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/session_api.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/session_api.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/session_api.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1725 @@
+# translation of session_api.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: session_api\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-03-19 10:25+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr "Trabalhando com objetos"
+
+#. 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 ""
+"O Hibernate é uma solução completa de mapeamento objeto/relacional que não "
+"apenas poupa o desenvolvedor dos detalhes de baixo nÃvel do sistema de "
+"gerenciamento do banco de dados, como também oferece um "
+"<emphasis>gerenciamento de estado</emphasis> para objetos. Isto é, ao "
+"contrário do gerenciamento de <literal>instruções</literal> SQL em camadas "
+"de persistência JDBC/SQL comuns, uma visão natural da persistência orientada "
+"a objetos em aplicações 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 ""
+"Em outras palavras, desenvolvedores de aplicações Hibernate podem sempre "
+"considerar o <emphasis>estado</emphasis> de seus objetos, e não "
+"necessariamente a execução de instruções SQL. O Hibernate é responsável por "
+"esta parte e é relevante aos desenvolvedores de aplicações apenas quando "
+"estão ajustando o desempenho do sistema."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr "Estado dos objetos no Hibernate"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr "O Hibernate define e suporta os seguintes estados de objetos:"
+
+#. 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> - um objeto é transiente se ele foi "
+"instanciando usando apenas o operador <literal>new</literal> e não foi "
+"associado a uma <literal>Session</literal> do Hibernate. Ele não possui uma "
+"representação persistente no banco de dados e não lhe foi atribuÃdo nenhum "
+"identificador. Instâncias transientes serão destruÃdas pelo coletor de lixo "
+"se a aplicação não mantiver sua referência. Use uma <literal>Session</"
+"literal> do Hibernate para tornar o objeto persistente (e deixe o Hibernate "
+"gerenciar as instruções SQL que serão necessárias para executar esta "
+"transição)."
+
+#. 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> - uma instância persistente possui uma "
+"representação no banco de dados e um identificador. Ela pode ter sido salva "
+"ou carregada, portanto ela se encontra no escopo de uma <literal>Session</"
+"literal>. O Hibernate irá detectar qualquer mudança feita a um objeto "
+"persistente e sincronizar o seu estado com o banco de dados quando completar "
+"a unidade de trabalho. Desenvolvedores não executam instruções manuais de "
+"<literal>UPDATE</literal>, ou instruções de <literal>DELETE</literal> quando "
+"o objeto se tornar transiente. "
+
+#. 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> â uma instância desanexada é um objeto que foi "
+"persistido, mas sua <literal>Session</literal> foi fechada. A referência ao "
+"objeto continua válida, é claro, e a instância desanexada pode ser acoplada "
+"a uma nova <literal>Session</literal> no futuro, tornando-o novamente "
+"persistente (e todas as modificações sofridas). Essa caracterÃstica habilita "
+"um modelo de programação para unidades de trabalho de longa execução, que "
+"requeira um tempo de espera do usuário. Podemos chamá-las de "
+"<emphasis>transações da aplicação</emphasis>, ou seja, uma unidade de "
+"trabalho do ponto de vista do usuário."
+
+#. 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 ""
+"Agora iremos discutir os estados e suas transições (e os métodos do "
+"Hibernate que disparam uma transição) em mais detalhes."
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr "Tornando os objetos persistentes"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Newly instantiated instances of a persistent class are considered "
+"<emphasis>transient</emphasis> by Hibernate. We can make a transient "
+"instance <emphasis>persistent</emphasis> by associating it with a session:"
+msgstr ""
+"As instâncias recentemente instanciadas de uma classe persistente são "
+"consideradas <emphasis>transientes </emphasis> pelo Hibernate. Podemos "
+"transformar uma instância transiente em <emphasis>persistente</emphasis> "
+"associando-a a uma sessão: "
+
+#. 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 ""
+"Se <literal>Cat</literal> possui um identificador gerado, o identificador é "
+"gerado e atribuÃdo à <literal>cat</literal> quando <literal>save()</literal> "
+"for chamado. Se <literal>Cat</literal> possuir um identificador "
+"<literal>Associado</literal>, ou uma chave composta, o identificador deverá "
+"ser atribuÃdo à instância de <literal>cat</literal> antes que <literal>save()"
+"</literal> seja chamado. Pode-se usar também <literal>persist()</literal> ao "
+"invés de <literal>save()</literal>, com a semântica definida no novo esboço "
+"do EJB3. "
+
+#. 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> faz uma instância transciente persistente. No "
+"entanto, isto não garante que o valor do identificador será determinado à "
+"instância persistente imediatamente, pois a determinação pode acontecer no "
+"perÃodo de limpeza. O <literal>persist()</literal> também garante que isto "
+"não executará uma declaração <literal>INSERT</literal> caso esta seja "
+"chamada fora dos limites da transação. Isto é útil em transações de longa-"
+"execução com um contexto de Sessão/persistência estendido."
+
+#. 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> garante retornar um identificador. Caso um INSERT "
+"necessita ser executado para obter o identificador (ex.: gerador \"identidade"
+"\" e não \"seqüência\"), este INSERT acontece imediatamente, independente de "
+"você estar dentro ou fora da transação. Isto é problemático numa conversação "
+"de longa execução com um contexto de Sessão/persistência estendido."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Alternatively, you can assign the identifier using an overloaded version of "
+"<literal>save()</literal>."
+msgstr ""
+"Alternativamente, pode-se atribuir o identificador usando uma versão "
+"sobrecarregada de <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 ""
+"Se o objeto persistido tiver associado objetos (ex.: a coleção "
+"<literal>kittens</literal> no exemplo anterior), esses objetos podem se "
+"tornar persistentes em qualquer ordem que se queira, a não ser que se tenha "
+"uma restrição <literal>NOT NULL</literal> em uma coluna de chave "
+"estrangeira. Nunca há risco de violação de restrições de chave estrangeira. "
+"Assim, pode-se violar uma restrição <literal>NOT NULL</literal> se "
+"<literal>save()</literal> for usado nos objetos em uma ordem errada. "
+
+#. 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 ""
+"Geralmente você não precisa se preocupar com esses detalhes, pois muito "
+"provavelmente usará a caracterÃstica de <emphasis>persistência transitiva </"
+"emphasis> do Hibernate para salvar os objetos associados automaticamente. "
+"Assim, enquanto uma restrição <literal>NOT NULL</literal> não ocorrer, o "
+"Hibernate tomará conta de tudo. Persistência transitiva será discutida mais "
+"adiante nesse mesmo capÃtulo. "
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr "Carregando o objeto"
+
+#. 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 ""
+"O método <literal>load()</literal> de uma <literal> Session</literal> "
+"oferece uma maneira de recuperar uma instância persistente se o "
+"identificador for conhecido. O <literal>load()</literal> escolhe uma classe "
+"do objeto e carregará o estado em uma instância mais recente dessa classe, "
+"em estado persistente."
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+msgstr "Alternativamente, pode-se carregar um estado em uma instância dada:"
+
+#. 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 ""
+"Repare que <literal>load()</literal> irá lançar uma exceção irrecuperável se "
+"não houver na tabela no banco de dados um registro que combine. Se a classe "
+"for mapeada com um proxy, <literal>load()</literal> simplesmente retorna um "
+"proxy não inicializado e realmente não chamará o banco de dados até que um "
+"método do proxy seja invocado. Esse comportamento é muito útil para criar "
+"uma associação com um objeto sem que realmente o carregue do bando de dados. "
+"Isto também permite que sejam carregadas múltiplas instâncias como um grupo "
+"se o <literal>batch-size</literal> estiver definido para o mapeamento da "
+"classe. "
+
+#. 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 ""
+"Se você não tiver certeza da existência do registro no banco, você deve usar "
+"o método <literal>get()</literal>, que consulta o banco imediatamente e "
+"retorna um null se não existir o registro. "
+
+#. 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 ""
+"Também pode-se carregar um objeto usando <literal>SELECT ... FOR UPDATE</"
+"literal>, usando um <literal>LockMode</literal>. Veja a documentação da API "
+"para maiores informações. "
+
+#. 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 ""
+"Note que quaisquer instâncias associadas ou que contenham coleções, "
+"<emphasis>não</emphasis> são selecionados <literal>FOR UPDATE</literal>, a "
+"não ser que você decida especificar um <literal>lock</literal> ou "
+"<literal>all</literal> como um estilo cascata para a associação. "
+
+#. 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 ""
+"à possÃvel realizar o recarregamento de um objeto e todas as suas coleções a "
+"qualquer momento, usando o método <literal>refresh()</literal>.à útil quando "
+"os disparos do banco de dados são usados para inicializar algumas "
+"propriedades do objeto."
+
+#. 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 ""
+"O quanto Hibernate carrega do banco de dados e quantos SQL <literal>SELECT</"
+"literal> ele irá usar? Isto depende da <emphasis>estratégia de "
+"busca</emphasis> usada e explicada na <xref linkend="
+"\"performance-fetching\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr "Consultando"
+
+#. 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 ""
+"Se o identificador do objeto que se está buscando não for conhecido, será "
+"necessário realizar uma consulta. O Hibernate suporta uma linguagem de "
+"consulta (HQL) orientada a objetos fáceis de usar, porém poderosos. Para "
+"criação via programação de consultas, o Hibernate suporta caracterÃsticas "
+"sofisticadas de consulta por Critério e Exemplo (QBCe QBE). Pode-se também "
+"expressar a consulta por meio de SQL nativa do banco de dados, com suporte "
+"opcional do Hibernate para conversão do conjunto de resultados em objetos. "
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr "Executando consultas"
+
+#. 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 ""
+"Consultas HQL e SQL nativas são representadas por uma instância de "
+"<literal>org.hibernate.Query</literal>. Esta interface oferece métodos para "
+"associação de parâmetros, tratamento de conjunto de resultados e para a "
+"execução de consultas reais. Você pode obter uma <literal>Query</literal> "
+"usando a <literal>Session</literal> atual:"
+
+#. 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 ""
+"Geralmente uma consulta é executada ao invocar <literal>list()</literal>.O "
+"resultado da consulta será carregado completamente em uma coleção na "
+"memória. Instâncias de entidades recuperadas por uma consulta estão no "
+"estado persistente. O <literal>uniqueResult()</literal> oferece um atalho se "
+"você souber previamente, que a consulta retornará apenas um único objeto. "
+"Repare que consultas que fazem uso da busca antecipada (eager fetching) de "
+"coleções, geralmente retornam duplicatas dos objetos raiz, mas com suas "
+"coleções inicializadas. Pode-se filtrar estas duplicatas através de um "
+"simples <literal>Set</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr "Interagindo com resultados"
+
+#. 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 ""
+"Ocasionalmente, pode-se obter um melhor desempenho com a execução de "
+"consultas, usando o método <literal>iterate()</literal>. Geralmente isso "
+"acontece apenas se as instâncias das entidades reais retornadas pela "
+"consulta já estiverem na sessão ou no cachê de segundo nÃvel. Caso elas "
+"ainda não tenham sido armazenadas, <literal>iterate()</literal> será mais "
+"devagar do que <literal>list()</literal> e podem ser necessários vários "
+"acessos ao banco de dados para uma simples consulta, geralmente <emphasis>1</"
+"emphasis> para a seleção inicial que retorna apenas identificadores, e "
+"<emphasis>n</emphasis> consultas adicionais para inicializar as instâncias "
+"reais. "
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr "Consultas que retornam tuplas"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate queries sometimes return tuples of objects. Each tuple is returned "
+"as an array:"
+msgstr ""
+"Algumas vezes as consultas do Hibernate retornam tuplas de objetos. Cada "
+"tupla é retornada como uma matriz:"
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr "Resultados escalares"
+
+#. 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 ""
+"As consultas devem especificar uma propriedade da classe na cláusula "
+"<literal>select</literal>. Elas também podem chamar funções SQL de "
+"agregações. Propriedades ou agregações são consideradas resultados agregados "
+"e não entidades no estado persistente. "
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr "Parâmetros de vÃnculo"
+
+#. 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 ""
+"Métodos em <literal>Consulta</literal> são oferecidos para valores de "
+"vÃnculo para parâmetros nomeados ou de estilo JDBC <literal>?</literal>. "
+"<emphasis>Ao contrário do JDBC, o Hibernate numera parâmetros a partir de "
+"zero.</emphasis> Parâmetros nomeados são identificadores da forma<literal>:"
+"name</literal> na faixa de consulta. As vantagens de parâmetros nomeados "
+"são: "
+
+#. Tag: para
+#, no-c-format
+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"
+
+#. Tag: para
+#, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr "eles podem ocorrer em tempos múltiplos na mesma consulta "
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr "eles são auto documentáveis"
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr "Paginação"
+
+#. 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 ""
+"Se você precisar especificar vÃnculos do conjunto de resultados, o máximo de "
+"números por linha que quiser recuperar e/ou a primeira linha que quiser "
+"recuperar, você deve usar métodos de interface <literal>Consulta</literal>:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate knows how to translate this limit query into the native SQL of "
+"your DBMS."
+msgstr ""
+"O Hibernate sabe como traduzir esta consulta de limite para a SQL nativa de "
+"seu DBMS"
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "Iteração rolável"
+
+#. 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 ""
+"Se seu driver JDBC driver suportar <literal>ResultSet</literal>s roláveis, a "
+"interface da <literal>Consulta</literal> poderá ser usada para obter um "
+"objeto de <literal>ScrollableResults</literal>, que permite uma navegação "
+"flexÃvel dos resultados de consulta. "
+
+#. 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 ""
+"Note que uma conexão aberta de banco de dados (e cursor) é requerida para "
+"esta função, use <literal>setMaxResult()</literal>/<literal>setFirstResult()"
+"</literal> se precisar da função de paginação offline. "
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr "Externando consultas nomeadas"
+
+#. 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 ""
+"Você pode também definir consultas nomeadas no documento de mapeamento. "
+"Lembre-se de usar uma seção <literal>CDATA</literal> se sua consulta "
+"contiver caracteres que possam ser interpretados como marcação."
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr "O vÃnculo e execução de parâmetro são feitos programaticamente :"
+
+#. 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 ""
+"Note que o código de programa atual é independente da linguagem de consulta "
+"que é utilizada, você também pode definir as consultas SQL nativas no "
+"metadado, ou migrar consultas existentes para o Hibernate, colocando-os em "
+"arquivos de mapeamento. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Also note that a query declaration inside a <literal><hibernate-"
+"mapping></literal> element requires a global unique name for the query, "
+"while a query declaration inside a <literal><class></literal> element "
+"is made unique automatically by prepending the fully qualified name of the "
+"class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr ""
+"Observe também que uma declaração de consulta dentro de um elemento "
+"<literal><hibernate-mapping></literal> requer um nome único global "
+"para a consulta, enquanto uma declaração de consulta dentro de um elemento "
+"de <literal><classe></literal> torna-se único automaticamente, "
+"aguardando o nome completo da classe qualificada, por exemplo: <literal>eg."
+"Cat.ByNameAndMaximumWeight</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr "Filtrando coleções"
+
+#. 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 ""
+"Uma coleção <emphasis>filter</emphasis> é um tipo especial de consulta que "
+"pode ser aplicado a uma coleção persistente ou a uma matriz. A faixa de "
+"consulta pode referir-se ao <literal>this</literal>, significando o elemento "
+"de coleção atual. "
+
+#. 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 ""
+"A coleção retornada é considerada uma bolsa, e é a cópia da coleção dada. A "
+"coleção original não é modificada. Ela é oposta à implicação do nome \"filtro"
+"\", mas é consistente com o comportamento esperado."
+
+#. 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 ""
+"Observe que os filtros não requerem uma cláusula <literal>from</literal> "
+"embora possam ter um, se requerido. Os filtros não são limitados a retornar "
+"aos elementos de coleção. "
+
+#. 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 ""
+"Até mesmo um filtro vazio é útil, ex.: para carregar um subconjunto em uma "
+"coleção enorme:"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr "Consulta por critério"
+
+#. 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 ""
+"O HQL é extremamente potente mas alguns desenvolvedores preferem construir "
+"consultas de forma dinâmica, utilizando um API de objeto, ao invés de "
+"construir faixas de consultas. O Hibernate oferece uma API de consulta de "
+"<literal>Critério</literal> intuitiva para estes casos: "
+
+#. 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 ""
+"Um <literal>Criteria</literal> e API associado <literal>Example</literal> "
+"serão discutidos em mais detalhes em <xref linkend=\"querycriteria"
+"\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr "Consultas em SQL nativa"
+
+#. 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 ""
+"Você pode expressar uma consulta em SQL utilizando <literal>createSQLQuery()"
+"</literal> e deixar o Hibernate tomar conta do mapeamento desde conjuntos de "
+"resultados até objetos. Note que você pode chamar uma <literal>session."
+"connection()</literal> a qualquer momento e usar a <literal>Connection</"
+"literal> JDBC diretamente. Se você escolher utilizar a API Hibernate, você "
+"deve incluir as aliases SQL dentro de chaves: "
+
+#. 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 ""
+"As consultas SQL podem conter parâmetros nomeados e posicionais, assim como "
+"as consultas Hibernate. Maiores informações sobre as consultas nativas SQL "
+"no Hibernate poderão ser encontradas em <xref linkend=\"querysql\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr "Modificando objetos persistentes"
+
+#. 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>Instâncias persistentes transacionais</emphasis> (ou seja, objetos "
+"carregados, salvos, criados ou consultados pela <literal>Session</literal>) "
+"podem ser manipuladas pela aplicação e qualquer mudança para estado "
+"persistente será persistida quando a <literal>Sessão</literal> for "
+"<emphasis>limpa</emphasis>. Isto será discutido mais adiante neste capÃtulo. "
+"Não há necessidade de chamar um método em particular (como <literal>update()"
+"</literal>, que possui um propósito diferente) para fazer modificações "
+"persistentes. Portanto, a forma mais direta de atualizar o estado de um "
+"objeto é <literal>carregá-lo()</literal> e depois manipulá-lo diretamente, "
+"enquanto a <literal>Sessão</literal> estiver aberta:"
+
+#. 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 ""
+"Algumas vezes, este modelo de programação é ineficiente, uma vez que ele "
+"requer ambos SQL <literal>SELECT</literal> (para carregar um objeto) e um "
+"SQL<literal>UPDATE</literal> (para persistir seu estado atualizado) na mesma "
+"sessão. Por isso, o Hibernate oferece uma abordagem alternativa, usando "
+"instâncias desanexadas."
+
+#. 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 ""
+"Note que o Hibernate não oferece seu próprio API para execução direta de "
+"instruções <literal>UPDATE</literal> ou <literal>DELETE</literal>. O "
+"Hibernate é um serviço de <emphasis>gerenciamento de estado</emphasis> que "
+"você nem precisa se preocupar com <emphasis>instruções</emphasis> para "
+"utilizá-lo. O JDBC é um API perfeito para executar instruções SQL, você pode "
+"ter uma <literal>Connection</literal> JDBC a qualquer momento, chamando "
+"<literal>session.connection()</literal>. Além disso, a noção de operações em "
+"massa conflitua com o mapeamento de objeto/relacional para aplicativos de "
+"transações online com processamento. No entanto, versões futuras do "
+"Hibernate poderão oferecer funções especiais de operação em massa. Veja "
+"<xref linkend=\"batch\" /> para alguns possÃveis truques de operação em lote. "
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr "Modificando objetos desacoplados"
+
+#. 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 ""
+"Muitas aplicações precisam recuperar um objeto em uma transação, enviá-lo "
+"para a camada UI para manipulação e somente então salvar as mudanças em uma "
+"nova transação. As aplicações que usam este tipo de abordagem em ambiente de "
+"alta concorrência, geralmente usam dados versionados para assegurar isolação "
+"durante a \"longa\" unidade de trabalho."
+
+#. 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 ""
+"O Hibernate suporta este modelo, oferecendo re-acoplamentos das instâncias "
+"usando os métodos <literal>Session.update()</literal> ou<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 ""
+"Se o <literal>Cat</literal> com identificador <literal>catId</literal> já "
+"tivesse sido carregado pela<literal>segundaSessão</literal> quando a "
+"aplicação tentou re-acoplá-lo, teria surgido uma exceção."
+
+#. 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 ""
+"Use <literal>update()</literal> se você tiver certeza de que a sessão já não "
+"contém uma instância persistente com o mesmo identificador, e <literal>merge"
+"()</literal> se você quiser mesclar suas modificações a qualquer momento sem "
+"considerar o estado da sessão. Em outras palavras, <literal>update()</"
+"literal> é geralmente o primeiro método que você chama em uma nova sessão, "
+"assegurando que o re-acoplamento de suas instâncias seja a primeira operação "
+"executada. "
+
+#. 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 ""
+"A aplicação deve <literal>update()</literal> instâncias desanexadas "
+"individualmente, ao alcance da atual instância desanexada, se e "
+"<emphasis>somente</emphasis> se, esta requerer uma atualização também de seu "
+"estado. Esta ação pode ser automatizada utilizando "
+"<emphasis>persistência transitiva</emphasis>. Consulte <xref linkend="
+"\"objectstate-transitive\"/> para maiores informações. "
+
+#. 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 ""
+"O método <literal>lock()</literal> também permite que um aplicativo re-"
+"associe um objeto com uma nova sessão. No entanto, a instância desanexada "
+"não pode ser modificada."
+
+#. 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 ""
+"Note que <literal>lock()</literal> pode ser usado com diversos "
+"<literal>LockMode</literal>s, veja a documentação API e o capÃtulo sobre "
+"manuseio de transações para maiores informações. Re-acoplamento não é o "
+"único caso de uso para <literal>lock()</literal>. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Other models for long units of work are discussed in <xref linkend="
+"\"transactions-optimistic\" />."
+msgstr ""
+"Outros modelos para unidades longas de trabalho serão discutidas em <xref linkend="
+"\"transactions-optimistic\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr "Detecção automática de estado"
+
+#. 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 ""
+"Os usuários de Hibernate solicitaram um método geral, tanto para salvar uma "
+"instância transiente, gerando um novo identificador, quanto para atualizar/ "
+"re-acoplar as instâncias desanexadas associadas ao seu identificador atual. "
+"O método <literal>saveOrUpdate()</literal> implementa esta funcionalidade."
+
+#. 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 ""
+"O uso e semântica do <literal>saveOrUpdate()</literal> parecem ser confusos "
+"para novos usuários. A princÃpio, enquanto você não tentar usar instâncias "
+"de uma sessão em outra nova sessão, não precisará utilizar <literal>update()"
+"</literal>, <literal>saveOrUpdate()</literal>, ou <literal>merge()</"
+"literal>. Algumas aplicações inteiras nunca precisarão utilizar estes "
+"métodos."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Usually <literal>update()</literal> or <literal>saveOrUpdate()</literal> are "
+"used in the following scenario:"
+msgstr ""
+"Geralmente, <literal>update()</literal> ou <literal>saveOrUpdate()</"
+"literal>são utilizados nos seguintes cenários:"
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr "a aplicação carrega um objeto na primeira sessão"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr "o objeto é passado para a camada UI"
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr "algumas modificações são feitas ao objeto"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr "o objeto é retornado à camada lógica de negócios"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <literal>update()</"
+"literal> in a second session"
+msgstr ""
+"a aplicação persiste estas modificações, chamando <literal>update()</"
+"literal> em uma segunda sessão."
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr "<literal>saveOrUpdate()</literal> faz o seguinte:"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr "se o objeto já estiver persistente nesta sessão, não faça nada"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if another object associated with the session has the same identifier, throw "
+"an exception"
+msgstr ""
+"se outro objeto associado com a sessão possuir o mesmo identificador, jogue "
+"uma exceção"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object has no identifier property, <literal>save()</literal> it"
+msgstr ""
+"se o objeto não tiver uma propriedade de identificador <literal>salve-o()</"
+"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 ""
+"se o identificador do objeto possuir o valor atribuÃdo ao objeto "
+"recentemente instanciado, <literal>salve-o()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"if the object is versioned by a <literal><version></literal> or "
+"<literal><timestamp></literal>, and the version property value is the "
+"same value assigned to a newly instantiated object, <literal>save()</"
+"literal> it"
+msgstr ""
+"se o objeto for versionado por um <literal><version></literal> ou "
+"<literal><timestamp></literal>, e o valor da propriedade da versão for "
+"o mesmo valor atribuÃdo ao objeto recentemente instanciado, <literal>salve()"
+"</literal> o mesmo"
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr "do contrário <literal>atualize()</literal> o objeto"
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr "e a <literal>mesclagem()</literal> é bastante diferente:"
+
+#. 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 ""
+"se existir uma instância persistente com um mesmo identificador associado "
+"atualmente com a sessão, copie o estado do objeto dado para a instância "
+"persistente."
+
+#. 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 ""
+"se não existir uma instância persistente atualmente associada com a sessão, "
+"tente carregá-la a partir do banco de dados, ou crie uma nova instância "
+"persistente"
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr "a instância persistente é retornada"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the session, it remains "
+"detached"
+msgstr ""
+"a instância dada não se torna associada com a sessão, ela permanece "
+"desanexada"
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr "Apagando objetos persistentes"
+
+#. 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 ""
+"A <literal>Session.delete()</literal> removerá um estado de objeto do banco "
+"de dados. à claro que seu aplicativo pode ainda reter uma referência à um "
+"objeto apagado. Ã melhor pensar em <literal>delete()</literal> como fazer "
+"uma instância persistente se tornar transiente. "
+
+#. 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 ""
+"Você poderá deletar objetos na ordem que desejar, sem risco de violação de "
+"restrição da chave estrangeira. à possÃvel violar uma restrição "
+"<literal>NOT NULL</literal> em uma coluna de chave estrangeira, apagando "
+"objetos na ordem inversa, ex.: se apagar o pai, mas esquecer de apagar o "
+"filho. "
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr "Replicando objeto entre dois armazenamentos de dados diferentes."
+
+#. 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 ""
+"Algumas vezes é útil poder tirar um gráfico de instâncias persistentes e "
+"fazê-los persistentes em um armazenamento de dados diferente, sem gerar "
+"novamente valores de identificador. "
+
+#. 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 ""
+"O <literal>ReplicationMode</literal> determina como o <literal>replicate()</"
+"literal> irá lidar com conflitos em linhas existentes no banco de dados: "
+
+#. 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>: ignore o objeto quando houver uma "
+"linha de banco de dados existente com o mesmo identificador."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>ReplicationMode.OVERWRITE</literal>: overwrites any existing "
+"database row with the same identifier"
+msgstr ""
+"<literal>ReplicationMode.OVERWRITE</literal>: subscreva uma linha de banco "
+"de dados existente com um mesmo identificador."
+
+#. 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>: jogue uma exceção se houver "
+"uma linha de banco de dados existente com o mesmo identificador. "
+
+#. 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>: subscreva a linha se seu "
+"número de versão for anterior ao número de versão do objeto, caso contrário, "
+"ignore o objeto."
+
+#. 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 ""
+"O caso de uso para este recurso inclui dados de reconciliação em instâncias "
+"de banco de dados diferentes, atualizando informações da configuração do "
+"sistema durante a atualização do produto, retornando mudanças realizadas "
+"durante transações não ACID entre outras funções."
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr "Limpando a Sessão"
+
+#. 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 ""
+"De vez em quando, a <literal>Session</literal> irá executar as instruções "
+"SQL, necessárias para sincronizar o estado de conexão JDBC com o estado de "
+"objetos mantidos na memória. Este processo de <emphasis>flush</emphasis>, "
+"ocorre por padrão nos seguintes pontos: "
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr "antes de algumas execuções de consultas"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "a partir de<literal>org.hibernate.Transaction.commit()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr "a partir de <literal>Session.flush()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr "As instruções SQL são editadas na seguinte ordem:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"all entity insertions in the same order the corresponding objects were saved "
+"using <literal>Session.save()</literal>"
+msgstr ""
+"todas as inserções de entidade, na mesma ordem que os objetos "
+"correspondentes foram salvos usando <literal>Session.save()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr "todas as atualizações de entidades"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr "todas as deleções de coleções"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr "todas as deleções, atualizações e inserções de elementos de coleção."
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr "todas as inserções de coleção"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"all entity deletions in the same order the corresponding objects were "
+"deleted using <literal>Session.delete()</literal>"
+msgstr ""
+"todas as deleções de entidade, na mesma ordem que os objetos correspondentes "
+"foram deletados usando <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 ""
+"Uma exceção é que o objeto que utiliza a geração de ID <literal>native</"
+"literal> é inserido quando salvo."
+
+#. 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 ""
+"Exceto quando você explicitamente <literal>limpar()</literal>, não há "
+"nenhuma garantia sobre <emphasis>quando</emphasis> a <literal>Sessão</"
+"literal> executará as chamadas de JDBC, somente se sabe a <emphasis>ordem</"
+"emphasis> na qual elas são executadas. No entanto, o Hibernate garante que a "
+"<literal>Query.list(..)</literal> nunca retornará dados antigos, nem "
+"retornará dados errados. "
+
+#. 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 ""
+"à possÃvel mudar o comportamento padrão para que a limpeza ocorra com menos "
+"freqüência. A classe <literal>FlushMode</literal> define três modos "
+"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 "
+"aberta e disconectada por um longo tempo (veja <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 ""
+"Durante uma limpeza, pode ocorrer uma exceção (ex.: se uma operação DML "
+"violar uma restrição). Como o manuseio de exceções envolve algum "
+"entendimento do comportamento transacional do Hibernate, discutiremos sobre "
+"isso em <xref linkend="
+"\"transactions\" />."
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr "Persistência Transitiva"
+
+#. 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 ""
+"à um tanto incômodo salvar, deletar ou reanexar objetos individuais, "
+"especialmente ao lidar com um grafo de objetos associados. Um caso comum é "
+"um relacionamento pai/filho. Considere o seguinte exemplo: "
+
+#. 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 ""
+"Se os filhos em um relacionamento pai/filho fossem do tipo valor (ex.: "
+"coleção de endereços ou strings), seus ciclos de vida dependeriam do pai e "
+"nenhuma ação seria requerida para \"cascateamento\" de mudança de estado. "
+"Quando o pai é salvo, os objetos filho de valor são salvos também, quando o "
+"pai é deletado, os filhos também serão deletados, etc. Isto funciona até "
+"para operações como remoção de filho da coleção. O Hibernate irá detectar "
+"isto e como objetos de valor não podem ter referências compartilhadas, irá "
+"deletar o filho do banco de dados. "
+
+#. 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 ""
+"Agora considere o mesmo cenário com objeto pai e filho sendo entidades, e "
+"não de valores (ex.: categorias e Ãtens, ou cats pai e filho). As entidades "
+"possuem seus próprios ciclos de vida, suportam referências compartilhadas "
+"(portanto, remover uma entidade da coleção não significa que possa ter sido "
+"deletada), e não existe efeito cascata de estado, por padrão, a partir de "
+"uma entidade para outras entidades associadas. O Hibernate não implementa "
+"<emphasis>persistência por alcance</emphasis> por padrão. "
+
+#. 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 ""
+"Para cada operação básica da sessão do Hibernate, incluindo<literal>persistir"
+"(), mesclar(), salvarOuAtualizar(), deletar(), bloquear(), atualizar(), "
+"despejar(), replicar()</literal>, existe um estilo cascata correspondente. "
+"Respectivamente, os estilos cascatas são nomeados <literal>criar, mesclar, "
+"salvar-atualizar, deletar, bloquiar, atualizar, despejar, replicar</"
+"literal>. Se desejar uma operação em cascata junto a associação, você deverá "
+"indicar isto no documento de mapeamento. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr "Estilo cascata pode ser combinado:"
+
+#. 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 ""
+"Você pode até utilizar <literal>cascade=\"all\"</literal> para especificar "
+"que <emphasis>todas</emphasis> as operações devem estar em cascata junto à "
+"associação. O padrão <literal>cascade=\"none\"</literal> especifica que "
+"nenhuma operação deve estar em cascata. "
+
+#. 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 ""
+"Um estilo especial em cascata, <literal>delete-orphan</literal>, aplica "
+"somente associações um-para-um, e indica que a operação <literal>delete()</"
+"literal> deve ser aplicada em qualquer objeto filho que seja removido da "
+"associação."
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr "Recomendações:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It does not usually make sense to enable cascade on a <literal><many-to-"
+"one></literal> or <literal><many-to-many></literal> association. "
+"Cascade is often useful for <literal><one-to-one></literal> and "
+"<literal><one-to-many></literal> associations."
+msgstr ""
+"Não faz sentido habilitar a cascata em uma associação. <literal><many-to-"
+"one></literal> ou <literal><many-to-many></literal> A Cascata é "
+"geralmente útil para associações <literal><one-to-one></literal> e "
+"<literal><one-to-many></literal>."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make it a <emphasis>life cycle object</emphasis> by specifying "
+"<literal>cascade=\"all,delete-orphan\"</literal>."
+msgstr ""
+"Se o tempo de vida do objeto filho estiver vinculado ao tempo de vida do "
+"objeto pai, faça disto um <emphasis>objeto de ciclo de vida</emphasis> "
+"especificando um <literal>cascade=\"all,delete-orphan\"</literal>."
+
+#. 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 ""
+"Caso contrário, você pode não precisar realizar a cascata. Mas se você achar "
+"que irá trabalhar com o pai e filho juntos com freqüência, na mesma "
+"transação, e quiser salvar você mesmo, considere o uso do <literal>cascata="
+"\"persistir,mesclar,salvar-atualizar\"</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 ""
+"Ao mapear uma associação (tanto uma associação de valor único como uma "
+"coleção) com <literal>casca de=\"all\"</literal>, a associação é demarcada "
+"como um relacionamento de estilo <emphasis>parent/child</emphasis> onde "
+"salvar/atualizar/deletar do pai, resulta em salvar/atualizar/deletar do(s) "
+"filho(s)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Furthermore, a mere reference to a child from a persistent parent will "
+"result in save/update of the child. This metaphor is incomplete, however. A "
+"child which becomes unreferenced by its parent is <emphasis>not</emphasis> "
+"automatically deleted, except in the case of a <literal><one-to-many></"
+"literal> association mapped with <literal>cascade=\"delete-orphan\"</"
+"literal>. The precise semantics of cascading operations for a parent/child "
+"relationship are as follows:"
+msgstr ""
+"Além disso, uma mera referência ao filho de um pai persistente irá resultar "
+"em salvar/atualizar/ o filho. Entretanto, esta metáfora está incompleta. Um "
+"filho, que não é referenciado por seu pai <emphasis>não</emphasis> é "
+"deletado automaticamente, exceto no caso de uma associação <literal><one-"
+"to-many></literal> mapeada com <literal>casca de=\"delete-orphan\"</"
+"literal>. A semântica exata, de operações em cascata para o relacionamento "
+"pai/filho, são como as que se seguem: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If a parent is passed to <literal>persist()</literal>, all children are "
+"passed to <literal>persist()</literal>"
+msgstr ""
+"Se um pai é passado para <literal>persist()</literal>, todos os filhos são "
+"passados para <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 ""
+"Se um pai é passado para <literal>merge()</literal>, todos os filhos são "
+"passados para <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 ""
+"Se um pai for passado para <literal>save()</literal>, <literal>update()</"
+"literal> ou <literal>saveOrUpdate()</literal>, todos os filhos passarão para "
+"<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 ""
+"Se um filho transiente ou desanexado se tornar referenciado pelo pai "
+"persistente, ele será passado para <literal>saveOrUpdate()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If a parent is deleted, all children are passed to <literal>delete()</"
+"literal>"
+msgstr ""
+"Se um pai for deletado, todos os filhos serão passados para <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 ""
+"Se um filho for diferenciado pelo pai persistente, <emphasis>nada de "
+"especial acontece</emphasis> - a aplicação deve explicitamente deletar o "
+"filho se necessário, a não ser que <literal>casca de=\"delete-orphan\"</"
+"literal>, nos quais casos o filho \"órfão\" é deletado."
+
+#. 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 ""
+"Finalmente, note que o cascateamento das operações podem ser aplicados a um "
+"grafo de objeto em <emphasis>tempo de chamada</emphasis> ou em "
+"<emphasis>tempo de limpeza</emphasis>. Todas as operações, se habilitadas, "
+"são colocadas em cascata para entidades associadas atingÃveis quando a "
+"operação for executada. No entanto, <literal>save-upate</literal> e "
+"<literal>delete-orphan</literal> são transitivas para todas as entidades "
+"associadas atingÃveis durante a limpeza da <literal>Sessão</literal>. "
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr "Usando metadados"
+
+#. 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 ""
+"O Hibernate requer um modelo muito rico, em nÃvel de metadados, de todas as "
+"entidades e tipos de valores. De tempos em tempos, este modelo é muito útil "
+"à própria aplicação. Por exemplo, a aplicação pode usar os metadados do "
+"Hibernate, que executa um algoritmo \"inteligente\", que compreende quais "
+"objetos podem ser copiados (por exemplo, tipos de valores mutáveis) ou não "
+"(por exemplo, tipos de valores imutáveis e, possivelmente, entidades "
+"associadas). "
+
+#. 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 ""
+"O Hibernate expõe os metadados via interfaces <literal>ClassMetadata</"
+"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>. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/toolset_guide.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/toolset_guide.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/toolset_guide.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,939 @@
+# translation of toolset_guide.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: toolset_guide\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-19 10:27+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr "Guia de Toolset"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Roundtrip engineering with Hibernate is possible using a set of Eclipse "
+"plugins, commandline tools, and Ant tasks."
+msgstr ""
+"Ã possÃvel realizar uma engenharia de roundtrip com o Hibernate, usando um "
+"conjunto de plug-ins de Eclipse, ferramentas de linha de comando, assim como "
+"tarefas Ant."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Hibernate Tools</emphasis> currently include plugins for the "
+"Eclipse IDE as well as Ant tasks for reverse engineering of existing "
+"databases:"
+msgstr ""
+"As <emphasis>Ferramentas do Hibernate</emphasis> atualmente incluem os plug-"
+"ins para o IDE de Eclipse assim como as tarefas para reverter a engenharia "
+"dos bancos de dados existentes:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping "
+"files that supports auto-completion and syntax highlighting. It also "
+"supports semantic auto-completion for class names and property/field names, "
+"making it more versatile than a normal XML editor."
+msgstr ""
+"<emphasis>Editor de Mapeamento:</emphasis> um editor para mapeamento de "
+"arquivos XML do Hibernate, suportando a auto complexão e destaque de "
+"sintáxe. Ele também suporta a auto complexão da semântica para nomes de "
+"classes e nomes de propriedade/campo, fazendo com que ele seja mais versátil "
+"do que um editor XML normal. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Console:</emphasis> the console is a new view in Eclipse. In "
+"addition to a tree overview of your console configurations, you are also "
+"provided with an interactive view of your persistent classes and their "
+"relationships. The console allows you to execute HQL queries against your "
+"database and browse the result directly in Eclipse."
+msgstr ""
+"<emphasis>Console:</emphasis> o console é uma nova visão em Eclipse. Além "
+"disso, para uma visão geral de árvore de suas configurações de console, você "
+"também pode obter uma visão interativa de suas classes persistentes e seus "
+"relacionamentos. O console permite que você execute as consultas HQL junto "
+"ao banco de dados e navegue o resultado diretamente em Eclipse. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<emphasis>Development Wizards:</emphasis> several wizards are provided with "
+"the Hibernate Eclipse tools. You can use a wizard to quickly generate "
+"Hibernate configuration (cfg.xml) files, or to reverse engineer an existing "
+"database schema into POJO source files and Hibernate mapping files. The "
+"reverse engineering wizard supports customizable templates."
+msgstr ""
+"<emphasis>Assistentes de Desenvolvimento:</emphasis> são oferecidos diversos "
+"assistentes com as ferramentas de Eclipse do Hibernate. Você pode usar o "
+"assistente para gerar rapidamente arquivos de configuração do Hibernate (cfg."
+"xml), ou você pode também reverter completamente o engenheiro, um esquema de "
+"banco de dados existente, para arquivos de fonte POJO e arquivos de "
+"mapeamento do Hibernate. O assistente de engenharia reversa suporta modelos "
+"padronizáveis."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Please refer to the <emphasis>Hibernate Tools</emphasis> package "
+"documentation for more information."
+msgstr ""
+"Por favor, consulte o pacote <emphasis>Ferramentas do Hibernate</emphasis> e "
+"suas documentações para maiores informações."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"However, the Hibernate main package comes bundled with an integrated tool : "
+"<emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even "
+"be used from \"inside\" Hibernate."
+msgstr ""
+"No entanto, o pacote principal do Hibernate vem em lote com uma ferramenta "
+"integrada: <emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>. "
+"Ele pode também ser usado dentro do Hibernate."
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr "Geração de esquema automático"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"DDL can be generated from your mapping files by a Hibernate utility. The "
+"generated schema includes referential integrity constraints, primary and "
+"foreign keys, for entity and collection tables. Tables and sequences are "
+"also created for mapped identifier generators."
+msgstr ""
+"O DDL pode ser gerado a partir dos arquivos de mapeamento através dos "
+"utilitários do Hibernate. O esquema gerado inclui as restrições de "
+"integridade referencial, primária e chave estrangeira, para entidade e "
+"tabela de coleção. Tabelas e seqüência são também criadas por geradores de "
+"identificador mapeado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via "
+"the <literal>hibernate.dialect</literal> property when using this tool, as "
+"DDL is highly vendor-specific."
+msgstr ""
+"Você <emphasis>deve</emphasis> especificar um SQL <literal>Dialect</literal> "
+"através da propriedade <literal>hibernate.dialect</literal> ao usar esta "
+"ferramenta, uma vez que o DDL é um fabricante bastante especÃfico."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must customize your mapping files to improve the generated "
+"schema. The next section covers schema customization."
+msgstr ""
+"Primeiro, padronize seus arquivos de mapeamento para melhorar o esquema "
+"gerado. A próxima seção cobrirá a personalização do esquema."
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing the schema"
+msgstr "Padronizando o esquema"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many Hibernate mapping elements define optional attributes named "
+"<literal>length</literal>, <literal>precision</literal> and <literal>scale</"
+"literal>. You can set the length, precision and scale of a column with this "
+"attribute."
+msgstr ""
+"Muitos elementos de mapeamento do Hibernate definem funções opcionais "
+"nomeadas <literal>length</literal>, <literal>precision</literal> e "
+"<literal>scale</literal>. Você deve ajustar o length, precision e scale de "
+"uma coluna com esta função."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Some tags also accept a <literal>not-null</literal> attribute for generating "
+"a <literal>NOT NULL</literal> constraint on table columns, and a "
+"<literal>unique</literal> attribute for generating <literal>UNIQUE</literal> "
+"constraint on table columns."
+msgstr ""
+"Algumas tags aceitam uma função <literal>not-null</literal> para gerar uma "
+"restrição <literal>NOT NULL</literal>nas colunas de tabela e uma função "
+"<literal>unique</literal> para gerar uma restrição <literal>UNIQUE</literal> "
+"em colunas de tabela."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>unique-key</literal> attribute can be used to group columns in a "
+"single, unique key constraint. Currently, the specified value of the "
+"<literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to "
+"name the constraint in the generated DDL. It is only used to group the "
+"columns in the mapping file."
+msgstr ""
+"Uma função <literal>unique-key</literal> pode ser usada para agrupar colunas "
+"em uma restrição de chave única. Atualmente, o valor especÃfico da função "
+"<literal>unique-key</literal> <emphasis>não é</emphasis> usada para nomear a "
+"restrição no DDL gerado, somente para agrupar as colunas no arquivo de "
+"mapeamento. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"An <literal>index</literal> attribute specifies the name of an index that "
+"will be created using the mapped column or columns. Multiple columns can be "
+"grouped into the same index by simply specifying the same index name."
+msgstr ""
+"Uma função <literal>index</literal> especifica o nome de um indexe que será "
+"criado, usando a coluna ou colunas mapeada(s). As colunas múltiplas podem "
+"ser agrupadas no mesmo indexe, simplesmente especificando o mesmo nome de "
+"Ãndice. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>foreign-key</literal> attribute can be used to override the name "
+"of any generated foreign key constraint."
+msgstr ""
+"Uma função <literal>foreign-key</literal> pode ser usada para sobrescrever o "
+"nome de qualquer restrição de chave exterior gerada. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Many mapping elements also accept a child <literal><column></literal> "
+"element. This is particularly useful for mapping multi-column types:"
+msgstr ""
+"Muitos elementos de mapeamento também aceitam um elemento filho <literal><"
+"column></literal>. Isto é particularmente útil para mapeamento de tipos "
+"multi-colunas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>default</literal> attribute allows you to specify a default "
+"value for a column.You should assign the same value to the mapped property "
+"before saving a new instance of the mapped class."
+msgstr ""
+"A função <literal>default</literal> deixa você especificar um valor padrão "
+"para uma coluna. Você deve atribuir o mesmo valor à propriedade mapeada "
+"antes de salvar uma nova instância da classe mapeada."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>sql-type</literal> attribute allows the user to override the "
+"default mapping of a Hibernate type to SQL datatype."
+msgstr ""
+"A função <literal>sql-type</literal> permite que o usuário sobrescreva o "
+"mapeamento padrão de um tipo de Hibernate para um tipo de dados SQL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>check</literal> attribute allows you to specify a check "
+"constraint."
+msgstr ""
+"A função <literal>check</literal> permite que você especifique uma restrição "
+"de verificação."
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr "A seguinte tabela resume estes atributos opcionais."
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "Sumário"
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr "Função"
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr "Valores"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr "Interpretação"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>length</literal>"
+msgstr "<literal>length</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr "número"
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr "comprimento da coluna"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "<literal>precision</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr "precisão da coluna decimal"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "<literal>scale</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr "escaça de coluna decimal"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "<literal>not-null</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "<literal>true|false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr "especifica que a coluna deveria ser não anulável "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "<literal>unique</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr "especifica que a coluna deveria ter uma restrição única"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index</literal>"
+msgstr "<literal>index</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "<literal>index_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr "especifica o nome de um Ãndice (multi-coluna)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>unique-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "<literal>unique_key_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr "especifica o nome de uma restrição única de coluna múltipla"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>foreign-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign_key_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"specifies the name of the foreign key constraint generated for an "
+"association, for a <literal><one-to-one></literal>, <literal><many-"
+"to-one></literal>, <literal><key></literal>, or <literal><many-"
+"to-many></literal> mapping element. Note that <literal>inverse=\"true\"</"
+"literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr ""
+"especifica o nome da restrição de chave estrangeira gerada para uma "
+"associação, por um elemento de mapeamento <literal><one-to-one></"
+"literal>, <literal><many-to-one></literal>, <literal><key></"
+"literal>, ou <literal><many-to-many></literal>. Note que os lados "
+"<literal>inverse=\"true\"</literal> não serão considerados pelo "
+"<literal>SchemaExport</literal>."
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>sql-type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr "<literal>SQL column type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid ""
+"overrides the default column type (attribute of <literal><column></"
+"literal> element only)"
+msgstr ""
+"sobrescreve o tipo de coluna padrão (função do elemento <literal><"
+"column></literal>somente)"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>default</literal>"
+msgstr "<literal>default</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr "Expressão SQL "
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr "especifica um valor padrão para a coluna"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>check</literal>"
+msgstr "<literal>check</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr "cria uma restrição de verificação de SQL tanto na coluna quanto na tabela"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><comment></literal> element allows you to specify "
+"comments for the generated schema."
+msgstr ""
+"O elemento <literal><comment></literal> permite que você especifique "
+"comentários para esquema gerado."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This results in a <literal>comment on table</literal> or <literal>comment on "
+"column</literal> statement in the generated DDL where supported."
+msgstr ""
+"Isto resulta em uma instrução <literal>comment on table</literal> ou "
+"<literal>comment on column</literal> no DDL gerado, onde é suportado."
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr "Executando a ferramenta"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaExport</literal> tool writes a DDL script to standard out "
+"and/or executes the DDL statements."
+msgstr ""
+"A ferramenta <literal>SchemaExport</literal> escreve um script DDL para "
+"padronizar e/ou para executar as instruções DDL."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaExport</literal> command "
+"line options"
+msgstr ""
+"A seguinte tabela exibe as opções de linha de comando do "
+"<literal>SchemaExport</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options "
+"mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr "<literal>SchemaExport</literal> Opções de Linha de Comando"
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr "Opção"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "Descrição"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>--quiet</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not output the script to stdout"
+msgstr "não saia do script para stdout "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "<literal>--drop</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr "somente suspenda as tabelas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "<literal>--create</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr "somente crie tabelas"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "<literal>--text</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export to the database"
+msgstr "não exporte para o banco de dados "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr "saia do script ddl para um arquivo"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "<literal>--naming=eg.MyNamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr "seleciona um <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr "leia a configuração do Hibernate a partir do arquivo XML"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read database properties from a file"
+msgstr "leia propriedades de banco de dados a partir dos arquivos"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "<literal>--format</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr "formatar bem o SQL gerado no script"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>--delimiter=;</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr "ajustar e finalizar o delimitador de linha para o script"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr ""
+"Você pode até mesmo incorporar o <literal>SchemaExport</literal> em sua "
+"aplicação: "
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "Propriedades"
+
+#. Tag: para
+#, no-c-format
+msgid "Database properties can be specified:"
+msgstr "As Propriedades do Banco de Daods podem ser especificadas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"as system properties with <literal>-D</literal><emphasis><property></"
+"emphasis>"
+msgstr ""
+"Como Propriedades de sistema com <literal>-D</literal><emphasis><"
+"property></emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr "em <literal>hibernate.properties</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr "em um arquivo de propriedades nomeadas com <literal>--properties</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr "As propriedades necessárias são:"
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr "SchemaExport Connection Properties"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr "Nome de Propriedade"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "<literal>hibernate.connection.driver_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr "classe de driver jdbc"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.connection.url</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr "jdbc url"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.connection.username</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr "usuário de banco de dados"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.connection.password</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr "senha do usuário"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr "dialeto"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr "Usando o Ant"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr ""
+"Você pode chamar o <literal>SchemaExport</literal> a partir de seu script de "
+"construção do Ant:"
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr "Atualizações de esquema incremental"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaUpdate</literal> tool will update an existing schema with "
+"\"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon "
+"the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr ""
+"A ferramenta <literal>SchemaUpdate</literal> irá atualizar um esquema "
+"existente com mudanças \"incrementais\". Observe que <literal>SchemaUpdate</"
+"literal> depende totalmente da API de metadados JDBC, portanto não irá "
+"funcionar com todos os driver JDBC. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options "
+"mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr "<literal>SchemaUpdate</literal>Opções de Linha de Comando"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export the script to the database"
+msgstr "não exporte o script ao banco de dados "
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr "especifique um arquivo <literal>.cfg.xml</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr "Você pode incorporar o <literal>SchemaUpdate</literal> em sua aplicação: "
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr "Utilizando Ant para atualizações de esquema incremental"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr "Você pode chamar <literal>SchemaUpdate</literal> a partir do script Ant:"
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr "Validação de esquema"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>SchemaValidator</literal> tool will validate that the existing "
+"database schema \"matches\" your mapping documents. The "
+"<literal>SchemaValidator</literal> depends heavily upon the JDBC metadata "
+"API and, as such, will not work with all JDBC drivers. This tool is "
+"extremely useful for testing."
+msgstr ""
+"A ferramenta <literal>SchemaValidator</literal> irá confirmar que o esquema "
+"de banco de dados existente \"combina\" com seus documentos de mapeamento. "
+"Observe que o <literal>SchemaValidator</literal> depende totalmente da API "
+"de metadados JDBC, portanto ele não funcionará com todos os drivers JDBC. "
+"Esta ferramenta é extremamente útil para teste. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+msgstr ""
+"<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> "
+"<literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> "
+"<emphasis>options mapping_files</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following table displays the <literal>SchemaValidator</literal> command "
+"line options:"
+msgstr ""
+"A seguinte tabela exibe as opções de linha de comando do "
+"<literal>SchemaValidator</literal>:"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr "<literal>SchemaValidator</literal> Opções de Linha de Comando"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr "Você pode incorporar o <literal>SchemaValidator</literal> em sua aplicação:"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr "Utilizando Ant para validação de esquema"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
+msgstr "Você pode chamar o <literal>SchemaValidator</literal> a partir do script Ant:"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/transactions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/transactions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/transactions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1947 @@
+# translation of transactions.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: transactions\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-19 14:01+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Transactions and Concurrency"
+msgstr "Transações e Concorrência "
+
+#. 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 ""
+"O fator mais importante sobre o Hibernate e o controle de concorrência é que "
+"é muito fácil de ser compreendido. O Hibernate usa diretamente conexões de "
+"JDBC e recursos de JTA sem adicionar nenhum comportamento de bloqueio a "
+"mais. Recomendamos que você gaste algum tempo com o JDBC, o ANSI e a "
+"especificação de isolamento de transação de seu sistema de gerência da base "
+"de dados. "
+
+#. 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 ""
+"O Hibernate não bloqueia objetos na memória. Sua aplicação pode esperar o "
+"comportamento tal qual definido de acordo com o nÃvel de isolamento de suas "
+"transações de banco de dados. Note que graças ao <literal>Session</literal>, "
+"que também é um cache de escopo de transação, o Hibernate procura "
+"repetidamente por identificadores e consultas de entidade não consultas de "
+"relatórios que retornam valores escalares. "
+
+#. 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 ""
+"Além do versionamento para o controle automático de concorrência otimista, o "
+"Hibernate oferece também uma API (menor) para bloqueio pessimista de linhas "
+"usando a sintáxe <literal>SELECT FOR UPDATE</literal>. O controle de "
+"concorrência otimista e esta API são discutidos mais tarde neste capÃtulo. "
+
+#. 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 ""
+"Nós começamos a discussão do controle de concorrência no Hibernate com a "
+"granularidade do <literal>Configuration</literal>, <literal>SessionFactory</"
+"literal> e <literal>Session</literal>, além de transações de base de dados e "
+"conversações longas. "
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr "Sessão e escopos de transações"
+
+#. 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 ""
+"Um <literal>SessionFactory</literal> é objeto threadsafe com um custo alto "
+"de criação, compartilhado por todas as threads da aplicação. à criado uma "
+"única vez, no inÃcio da execução da aplicação, a partir da instância de uma "
+"<literal>Configuration</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 ""
+"Uma <literal>Session</literal> é um objeto de baixo custo de criação, não é "
+"threadsafe, deve ser usado uma vez, para uma única requisição, uma "
+"conversação, uma única unidade do trabalho e então deve ser descartado. Um "
+"<literal>Session</literal> não obterá um JDBC <literal>Connection</literal>, "
+"ou um <literal>Datasource</literal>, a menos que necessite. Isto não consome "
+"nenhum recurso até ser usado."
+
+#. 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 ""
+"Uma transação precisa ser o mais curta possÃvel, para reduzir a disputa pelo "
+"bloqueio na base de dados. Transações longas impedirão que sua aplicação "
+"escale a carga altamente concorrente. Por isso, não é bom manter uma "
+"transação de base de dados aberta durante o tempo que o usuário pensa, até "
+"que a unidade do trabalho esteja completa."
+
+#. 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 ""
+"Qual é o escopo de uma unidade de trabalho? Pode uma única <literal>Session</"
+"literal> do Hibernate gerenciar diversas transações ou este é um o "
+"relacionamento um-para-um dos escopos? Quando você deve abrir e fechar uma "
+"<literal>Session</literal> e como você demarca os limites da transação? "
+"Estas questões estão endereçadas nas seguintes seções."
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+msgstr "Unidade de trabalho"
+
+#. 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 ""
+"Primeiro, vamos definir uma unidade de trabalho. Uma unidade de trabalho é "
+"um padrão de design descrito por Martin Fowler como <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>. Em outras palavras, é uma série de "
+"operações que desejamos cuidar junto ao banco de dados. Basicamente, é uma "
+"transação, que apesar de completar uma unidade de trabalho, sempre "
+"distribuirá transações de banco de dados fÃsico múltiplos (consulte <xref linkend=\"transactions-basics-apptx\" />. Portanto, estamos conversando "
+"sobre uma noção mais abstrata da transação. O termo \"transação comercial\" "
+"é também usada em acúmulo na unidade de trabalho. "
+
+#. 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 ""
+"Primeiro, não use o antipattern <emphasis>sessão-por-operação</emphasis>: "
+"isto é, não abra e feche uma <literal>Session</literal> para cada simples "
+"chamada ao banco de dados em uma única thread. Naturalmente, o mesmo se "
+"aplica às transações do banco de dados. As chamadas ao banco de dados em uma "
+"aplicação são feitas usando uma seqüência planejada, elas são agrupadas em "
+"unidades de trabalho atômicas. Veja que isso também significa que realizar "
+"um auto-commit depois de cada instrução SQL é inútil em uma aplicação, esta "
+"modalidade é ideal para o trabalho ad hoc do console do SQL. O Hibernate "
+"impede, ou espera que o servidor de aplicação impessa isso, aplique a "
+"modalidade auto-commit imediatamente. As transações de banco de dados nunca "
+"são opcionais, toda a comunicação com um banco de dados tem que ocorrer "
+"dentro de uma transação, não importa se você vai ler ou escrever dados. Como "
+"explicado, o comportamento auto-commit para leitura de dados deve ser "
+"evitado, uma vez que muitas transações pequenas são improváveis de executar "
+"melhor do que uma unidade de trabalho claramente definida. A última opção é "
+"também muito mais sustentável e expandida."
+
+#. 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 ""
+"O modelo mais comum em uma aplicação de cliente/servidor multi-usuário é "
+"<emphasis>sessão-por-requisição</emphasis>. Neste modelo, uma requisição do "
+"cliente é enviada ao servidor, onde a camada de persistência do Hibernate é "
+"executada. Uma <literal>Session</literal> nova do Hibernate é aberta, e "
+"todas as operações da base de dados são executadas nesta unidade do "
+"trabalho. Logo que o trabalho for completado, e a resposta para o cliente "
+"for preparada, a sessão é descarregada e fechada. Você usaria também uma "
+"única transação de base de dados para servir às requisições dos clientes, "
+"iniciando e submetendo-o ao abrir e fechar da <literal>Session</literal>. O "
+"relacionamento entre os dois é um-para-um e este modelo é um ajuste perfeito "
+"para muitas aplicações."
+
+#. 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 ""
+"O desafio encontra-se na implementação. O Hibernate fornece gerenciamento "
+"integrado da \"sessão atual\" para simplificar este modelo. Tudo que você "
+"tem a fazer é iniciar uma transação quando uma requisição precisa ser "
+"processada e terminar a transação antes que a resposta seja enviada ao "
+"cliente. Você pode fazer onde quiser, soluções comuns são "
+"<literal>ServletFilter</literal>, interceptador AOP com um pointcut (ponto "
+"de corte) nos métodos de serviço ou em um recipiente de proxy/interceptação. "
+"Um recipiente de EJB é uma maneira padronizada de implementar aspectos cross-"
+"cutting, tais como a demarcação da transação em beans de sessão EJB, "
+"declarativamente com CMT. Se você se decidir usar demarcação programática de "
+"transação, dê preferência à API <literal>Transaction</literal> do Hibernate "
+"mostrada mais adiante neste capÃtulo, para facilidade no uso e portabilidade "
+"de código. "
+
+#. 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 ""
+"Seu código de aplicação pode acessar a \"sessão atual\" para processar a "
+"requisição fazendo uma chamada simples a <literal>sessionFactory."
+"getCurrentSession()</literal> em qualquer lugar e com a freqüência "
+"necessária. Você sempre conseguirá uma <literal>Session</literal> limitada a "
+"transação atual. Isto tem que ser configurado para recurso local ou para "
+"ambientes JTA. Veja <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 ""
+"Ãs vezes, é conveniente estender o escopo de uma <literal>Session</literal> "
+"e de uma transação do banco de dados até que a \"visão esteja renderizada\". "
+"à especialmente útil em aplicações servlet que utilizam uma fase de "
+"renderização separada depois da requisição ter sido processada. Estender a "
+"transação até que a renderização da visão esteja completa é fácil de fazer "
+"se você implementar seu próprio interceptador. Entretanto, não será fácil se "
+"você confiar em EJBs com transações gerenciadas por recipiente, porque uma "
+"transação será terminada quando um método de EJB retornar, antes que a "
+"renderização de toda visão possa começar. Veja o website e o fórum do "
+"Hibernate para dicas e exemplos em torno deste modelo de <emphasis>Sessão "
+"Aberta na Visualização</emphasis>."
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr "Longas conversações"
+
+#. 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 ""
+"O modelo sessão-por-requisição não é o único conceito útil que você pode "
+"usar ao projetar unidades de trabalho. Muitos processos de negócio requerem "
+"uma totalidade de séries de interações com o usuário, intercaladas com "
+"acessos a uma base de dados. Em aplicações da web e corporativas não é "
+"aceitável que uma transação atrapalhe uma interação do usuário. Considere o "
+"seguinte exemplo:"
+
+#. 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 ""
+"A primeira tela de um diálogo se abre e os dados vistos pelo usuário são "
+"carregados em uma <literal>Session</literal> e transação de banco de dados "
+"particulares. O usuário está livre para modificar os objetos. "
+
+#. 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 ""
+"O usuário clica em \"Salvar\" após 5 minutos e espera suas modificações "
+"serem persistidas. O usuário também espera que ele seja a única pessoa que "
+"edita esta informação e que nenhuma modificação conflitante possa ocorrer."
+
+#. 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 ""
+"Nós chamamos esta unidade de trabalho, do ponto da visão do usuário, uma "
+"<emphasis>conversação</emphasis> de longa duração (ou <emphasis>transação da "
+"aplicação</emphasis>). Há muitas maneiras de você implementar em sua "
+"aplicação. "
+
+#. 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 ""
+"Uma primeira implementação simples pode manter a <literal>Session</literal> "
+"e a transação aberta durante o tempo de interação do usuário, com bloqueios "
+"na base de dados para impedir a modificação concorrente e para garantir o "
+"isolamento e a atomicidade. Esse é naturalmente um anti-pattern, uma vez que "
+"a disputa do bloqueio não permitiria o escalonameneto da aplicação com o "
+"número de usuários concorrentes."
+
+#. 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 ""
+"Claramente, temos que usar diversas transações para implementar a "
+"conversação. Neste caso, manter o isolamento dos processos de negócio, torna-"
+"se responsabilidade parcial da camada da aplicação. Uma única conversação "
+"geralmente usa diversas transações. Ela será atômica se somente uma destas "
+"transações (a última) armazenar os dados atualizados, todas as outras "
+"simplesmente leram os dados (por exemplo em um diálogo do estilo wizard que "
+"mede diversos ciclos de requisição/resposta). Isto é mais fácil de "
+"implementar do parece, especialmente se você usar as caracterÃsticas do "
+"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>Versionamento automático</emphasis>: o Hibernate pode fazer o "
+"controle automático de concorrência otimista para você, ele pode "
+"automaticamente detectar se uma modificação concorrente ocorreu durante o "
+"tempo de interação do usuário. Geralmente nós verificamos somente no fim da "
+"conversação. "
+
+#. 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>Objetos Desanexados</emphasis>: se você se decidir usar o já "
+"discutido pattern <emphasis>sessão-por-solicitação</emphasis>, todas as "
+"instâncias carregadas estarão no estado destacado durante o tempo em que o "
+"usuário estiver pensando. O Hibernate permite que você re-anexe os objetos e "
+"persista as modificações, esse pattern é chamado <emphasis>sessão-por-"
+"solicitação-com-objetos-desanexados</emphasis>. Utiliza-se versionamento "
+"automático para isolar as modificações concorrentes."
+
+#. 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>Sessão Estendida (ou Longa)</emphasis> A <literal>Session</"
+"literal> do Hibernate pode ser desligada da conexão adjacente do JDBC depois "
+"que a transação foi submetida, e ser reconectada quando uma nova requisição "
+"do cliente ocorrer. Este pattern é conhecido como <emphasis>sessão-por-"
+"conversação</emphasis> e faz o reatamento uniforme desnecessário. "
+"Versionamento automático é usado para isolar modificações concorrentes e a "
+"<emphasis>sessão-por-conversação</emphasis> geralmente pode ser nivelada "
+"automaticamente, e sim explicitamente. "
+
+#. 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 ""
+"Tanto a <emphasis>sessão-por-solicitação-com-objetos-desanexados</emphasis> "
+"quanto a <emphasis>sessão-por-conversação</emphasis> possuem vantagens e "
+"desvantagens. Estas desvantagens serão discutidas mais tarde neste capÃtulo "
+"no contexto do controle de concorrência otimista. "
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr "Considerando a identidade do objeto"
+
+#. 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 ""
+"Uma aplicação pode acessar concorrentemente o mesmo estado persistente em "
+"duas <literal>Session</literal>s diferentes. Entretanto, uma instância de "
+"uma classe persistente nunca é compartilhada entre duas instâncias "
+"<literal>Session</literal>. Portanto, há duas noções diferentes da "
+"identidade: "
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr "Identidade da base de dados"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal>"
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr "Identidade da JVM"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr "<literal>foo==bar</literal>"
+
+#. 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 ""
+"Então para os objetos acoplados a uma <literal>Session</literal> "
+"<emphasis>especÃfica</emphasis> (ex.: isto está no escopo de uma "
+"<literal>Session</literal>), as duas noções são equivalentes e a identidade "
+"da JVM para a identidade da base de dados é garantida pelo Hibernate. "
+"Entretanto, embora a aplicação possa acessar concorrentemente o \"mesmo\" "
+"objeto do negócio (identidade persistente) em duas sessões diferentes, as "
+"duas instâncias serão realmente \"diferentes\" (identidade de JVM). Os "
+"conflitos são resolvidos usando (versionamento automático) no flush/commit, "
+"usando uma abordagem otimista."
+
+#. 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 ""
+"Este caminho deixa o Hibernate e o banco de dados se preocuparem com a "
+"concorrência. Ele também fornece uma escalabilidade melhor, garantindo que a "
+"identidade em unidades de trabalho single-threaded não necessite de bloqueio "
+"dispendioso ou de outros meios de sincronização. A aplicação nunca necessita "
+"sincronizar qualquer objeto de negócio tão longo que transpasse uma única "
+"thread por <literal>Session</literal>. Dentro de uma <literal>Session</"
+"literal> a aplicação pode usar com segurança o <literal>==</literal> para "
+"comparar objetos. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"<literal>Session</literal> might produce unexpected results. This might "
+"occur even in some unexpected places. For example, if you put two detached "
+"instances into the same <literal>Set</literal>, both might have the same "
+"database identity (i.e., they represent the same row). JVM identity, "
+"however, is by definition not guaranteed for instances in a detached state. "
+"The developer has to override the <literal>equals()</literal> and "
+"<literal>hashCode()</literal> methods in persistent classes and implement "
+"their own notion of object equality. There is one caveat: never use the "
+"database identifier to implement equality. Use a business key that is a "
+"combination of unique, usually immutable, attributes. The database "
+"identifier will change if a transient object is made persistent. If the "
+"transient instance (usually together with detached instances) is held in a "
+"<literal>Set</literal>, changing the hashcode breaks the contract of the "
+"<literal>Set</literal>. Attributes for business keys do not have to be as "
+"stable as database primary keys; you only have to guarantee stability as "
+"long as the objects are in the same <literal>Set</literal>. See the "
+"Hibernate website for a more thorough discussion of this issue. Please note "
+"that this is not a Hibernate issue, but simply how Java object identity and "
+"equality has to be implemented."
+msgstr ""
+"No entanto, uma aplicação que usa <literal>==</literal> fora de uma "
+"<literal>Session</literal>, pode ver resultados inesperados. Isto pode "
+"ocorrer mesmo em alguns lugares inesperados, por exemplo, se você colocar "
+"duas instâncias desacopladas em um mesmo <literal>Set</literal>. Ambas podem "
+"ter a mesma identidade na base de dados (ex.: elas representam a mesma "
+"linha), mas a identidade da JVM não é, por definição, garantida para "
+"instâncias em estado desacoplado. O desenvolvedor tem que substituir os "
+"métodos <literal>equals()</literal> e <literal>hashCode()</literal> em "
+"classes persistentes e implementar sua própria noção da igualdade do objeto. "
+"Advertência: nunca use o identificador da base de dados para implementar a "
+"igualdade, use atributos de negócio, uma combinação única, geralmente "
+"imutável. O identificador da base de dados mudará se um objeto transiente "
+"passar para o estado persistente. Se a instância transiente (geralmente "
+"junto com instâncias desacopladas) for inserida em um <literal>Set</"
+"literal>, a mudança do hashcode quebrará o contrato do <literal>Set</"
+"literal>. As funções para chaves de negócio não têm que ser tão estável "
+"quanto às chaves primárias da base de dados, você somente tem que garantir a "
+"estabilidade durante o tempo que os objetos estiverem no mesmo <literal>Set</"
+"literal>. Veja o website do Hibernate para uma discussão mais completa sobre "
+"o assunto. Note também que esta não é uma caracterÃstica do Hibernate, mas "
+"simplesmente a maneira como a identidade e a igualdade do objeto de Java têm "
+"que ser implementadas. "
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr "Edições comuns"
+
+#. 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 ""
+"Nunca use o anti-patterns <emphasis>sessão-por-usuário-sessão</emphasis> ou "
+"<emphasis>sessão-por-aplicação</emphasis> (naturalmente, existem exceções "
+"raras para essa regra). Note que algumas das seguintes edições podem também "
+"aparecer com modelos recomendados, certifique-se que tenha compreendido as "
+"implicações antes de fazer uma decisão de projeto: "
+
+#. 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 ""
+"Uma <literal>Session</literal> não é threadsafe. As coisas que são supostas "
+"para trabalhar concorrentemente, como requisições HTTP, beans de sessão, ou "
+"Swing, causarão condições de disputa se uma instância <literal>Session</"
+"literal> for compartilhada. Se você mantiver sua <literal>Session</literal> "
+"do Hibernate em seu <literal>HttpSession</literal> (discutido mais tarde), "
+"você deverá considerar sincronizar o acesso a sua sessão do HTTP. Caso "
+"contrário, um usuário que clica em recarga rápido demais, pode usar o mesmo "
+"<literal>Session</literal> em duas threads executando simultaneamente. "
+
+#. 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 ""
+"Uma exceção lançada pelo Hibernate significa que você tem que dar rollback "
+"na sua transação no banco de dados e fechar a <literal>Session</literal> "
+"imediatamente (discutido mais tarde em maiores detalhes). Se sua "
+"<literal>Session</literal> é limitada pela aplicação, você tem que parar a "
+"aplicação. Fazer o rollback na transação no banco de dados não retorna seus "
+"objetos do negócio ao estado que estavam no inÃcio da transação. Isto "
+"significa que o estado da base de dados e os objetos de negócio perdem a "
+"sincronização. Geralmente, não é um problema porque as exceções não são "
+"recuperáveis e você tem que iniciar após o rollback de qualquer maneira. "
+
+#. 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 ""
+"A <literal>Session</literal> realiza o cache em cada objeto que se encontra o estado "
+"persistente (assistido e checado para o estado dirty do Hibernate). Isto "
+"significa o crescimento contÃnuo até chegar a um OutOfMemoryException, caso "
+"você mantenha isto aberto por um longo perÃodo ou simplesmente carregue "
+"muitos dados. Para resolver este problema, chame <literal>clear()</literal> "
+"e <literal>evict()</literal> para gerenciar o cache da <literal>Session</"
+"literal>, mas você ainda deve considerar a possibilidade de um Procedimento "
+"Armazenado, caso precise de operações de dados em massa. Algumas soluções "
+"poderão ser encontradas em <xref linkend=\"batch\"/>. Se você mantiver uma "
+"<literal>Session</literal> aberta durante todo o tempo da sessão do usuário, "
+"terá maior probabilidade de obter dados danificados. "
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr "Demarcação de transações de bancos de dados"
+
+#. 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 ""
+"Os limites de uma transação de banco de dados, ou sistema, são sempre "
+"necessários. Nenhuma comunicação com o banco de dados pode ocorrer fora de "
+"uma transação de banco de dados (isto parece confundir muitos "
+"desenvolvedores que estão acostumados ao modo auto-commit). Sempre use os "
+"limites desobstruÃdos da transação, até mesmo para operações somente "
+"leitura. Dependendo de seu nÃvel de isolamento e capacidade da base de dados "
+"isto pode não ser requerido, mas não há nenhum aspecto negativo se você "
+"sempre demarcar transações explicitamente. Certamente, uma única transação "
+"será melhor executada do que muitas transações pequenas, até mesmo para "
+"dados de leitura. "
+
+#. 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 ""
+"Uma aplicação do Hibernate pode funcionar em ambientes não gerenciados (isto "
+"é, aplicações standalone, Web simples ou Swing) e ambientes gerenciados "
+"J2EE. Em um ambiente não gerenciado, o Hibernate é geralmente responsável "
+"pelo seu próprio pool de conexões. O desenvolvedor, precisa ajustar "
+"manualmente os limites das transaçãos, ou seja, começar, submeter ou efetar "
+"rollback nas transações ele mesmo. Um ambiente gerenciado fornece transações "
+"gerenciadas por recipiente (CMT), com um conjunto da transações definido "
+"declarativamente em descritores de implementação de beans de sessão EJB, por "
+"exemplo. A demarcação programática é portanto, não mais necessária."
+
+#. 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 ""
+"Entretanto, é freqüentemente desejável manter sua camada de persistência "
+"portável entre ambientes de recurso locais não gerenciados e sistemas que "
+"podem confiar em JTA, mas use BMT ao invés de CMT. Em ambos os casos você "
+"usaria demarcação de transação programática. O Hibernate oferece uma API "
+"chamada Transaction que traduz dentro do sistema de transação nativa de seu "
+"ambiente de implementação. Esta API é realmente opcional, mas nós "
+"encorajamos fortemente seu uso a menos que você esteja em um bean de sessão "
+"CMT. "
+
+#. Tag: para
+#, no-c-format
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr ""
+"Geralmente, finalizar uma <literal>Session</literal> envolve quatro fases "
+"distintas:"
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr "liberar a sessão"
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr "submeter a transação"
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr "fechar a sessão"
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr "tratar as exceções"
+
+#. 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 ""
+"A liberação da sessão já foi bem discutida, agora nós daremos uma olhada na "
+"demarcação da transação e na manipulação de exceção em ambientes controlados "
+"e não controlados. "
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr "Ambiente não gerenciado"
+
+#. 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 ""
+"Se uma camada de persistência do Hibernate roda em um ambiente não "
+"gerenciado, as conexões do banco de dados são geralmente tratadas pelos "
+"pools de conexões simples (ex.: não DataSource) dos quais o Hibernate obtém "
+"as conexões assim que necessitar. A maneira de se manipular uma sessão/"
+"transação é mais ou menos assim:"
+
+#. 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 <link linkend=\"objectstate-flushing"
+"\">FlushMode</link> for the session. A call to <literal>close()</literal> "
+"marks the end of a session. The main implication of <literal>close()</"
+"literal> is that the JDBC connection will be relinquished by the session. "
+"This Java code is portable and runs in both non-managed and JTA environments."
+msgstr ""
+"Você não pode chamar <literal>flush()</literal> da <literal>Session()</"
+"literal> explicitamente. A chamada ao <literal>commit()</literal> dispara "
+"automaticamente a sincronização para a sessão, dependendo do <xref linkend="
+"\"objectstate-flushing\"/>. Uma chamada ao <literal>close()</literal> marca "
+"o fim de uma sessão. A principal implicação do <literal>close()</literal> é "
+"que a conexão JDBC será abandonada pela sessão. Este código Java é portável "
+"e funciona em ambientes não gerenciados e de 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 ""
+"Uma solução muito mais flexÃvel é o gerenciamento de contexto \"sessão atual"
+"\" da construção interna do Hibernate, como descrito anteriormente: "
+
+#. 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 ""
+"Você muito provavelmente nunca verá estes fragmentos de código em uma "
+"aplicação regular; as exceções fatais (do sistema) devem sempre ser pegas no "
+"\"topo\". Ou seja, o código que executa chamadas do Hibernate (na camada de "
+"persistência) e o código que trata <literal>RuntimeException</literal> (e "
+"geralmente pode somente limpar acima e na saÃda) estão em camadas "
+"diferentes. O gerenciamento do contexto atual feito pelo Hibernate pode "
+"significativamente simplificar este projeto, como tudo que você necessita é "
+"do acesso a um <literal>SessionFactory</literal>. A manipulação de exceção é "
+"discutida mais tarde neste capÃtulo. "
+
+#. 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 ""
+"Note que você deve selecionar <literal>org.hibernate.transaction."
+"JDBCTransactionFactory</literal>, que é o padrão, e para o segundo exemplo "
+"<literal>\"thread\"</literal> como seu <literal>hibernate."
+"current_session_context_class</literal>."
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr "Usando JTA"
+
+#. 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 ""
+"Se sua camada de persistência funcionar em um servidor de aplicação (por "
+"exemplo, dentro dos beans de sessão EJB), cada conexão da fonte de dados "
+"obtida pelo Hibernate automaticamente fará parte da transação global de JTA. "
+"Você pode também instalar uma implementação standalone de JTA e usá-la sem "
+"EJB. O Hibernate oferece duas estratégias para a integração de 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 ""
+"Se você usar transações de bean gerenciado (BMT) o Hibernate dirá ao "
+"servidor de aplicação para começar e para terminar uma transação de BMT se "
+"você usar a <literal>Transaction</literal> API. Assim, o código de gerência "
+"de transação é idêntico ao ambiente não gerenciado."
+
+#. 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 ""
+"Se você quiser usar uma <literal>Session</literal> limitada por transação, "
+"isto é, a funcionalidade do <literal>getCurrentSession()</literal> para a "
+"propagação fácil do contexto, você terá que usar diretamente a API JTA "
+"<literal>UserTransaction</literal>: "
+
+#. 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 ""
+"Com CMT, a demarcação da transação é feita em descritores de implementação "
+"de beans de sessão, não programaticamente, conseqüentemente, o código é "
+"reduzido a: "
+
+#. 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 ""
+"Em um CMT/EJB, até mesmo um rollback acontece automaticamente, desde que uma "
+"exceção <literal>RuntimeException</literal> não tratável seja lançada por um "
+"método de um bean de sessão que informa ao recipiente ajustar a transação "
+"global ao rollback. <emphasis>Isto significa que você não precisa mesmo usar "
+"a API <literal>Transaction</literal> do Hibernate com BMT ou CMT e você "
+"obterá a propagação automática da Sessão \"atual\" limitada à transação.</"
+"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 ""
+"Veja que você deverá escolher <literal>org.hibernate.transaction."
+"JTATransactionFactory</literal> se você usar o JTA diretamente (BMT) e "
+"<literal>org.hibernate.transaction.CMTTransactionFactory</literal> em um "
+"bean de sessão CMT, quando você configura a fábrica de transação do "
+"Hibernate. Lembre-se também de configurar o <literal>hibernate.transaction."
+"manager_lookup_class</literal>. Além disso, certifique-se que seu "
+"<literal>hibernate.current_session_context_class</literal> ou não é "
+"configurado (compatibilidade com o legado) ou está definido para <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 ""
+"A operação <literal>getCurrentSession()</literal> tem um aspecto negativo em "
+"um ambiente JTA. Há uma advertência para o uso do método liberado de conexão "
+"<literal>after_statement</literal>, o qual é usado então por padrão. Devido "
+"a uma limitação simples da especificação JTA, não é possÃvel para o "
+"Hibernate automaticamente limpar quaisquer instâncias "
+"<literal>ScrollableResults</literal> ou <literal>Iterator</literal> abertas "
+"retornadas pelo <literal>scroll()</literal> ou <literal>iterate()</literal>. "
+"Você <emphasis>deve</emphasis> liberar o cursor subjacente da base de dados "
+"chamando <literal>ScrollableResults.close()</literal> ou <literal>Hibernate."
+"close(Iterator)</literal> explicitamente de um bloco <literal>finally</"
+"literal>. Claro que a maioria das aplicações podem facilmente evitar o uso "
+"do <literal>scroll()</literal> ou do <literal>iterate()</literal> em todo "
+"código provindo do JTA ou do CMT."
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr "Tratamento de Exceção"
+
+#. 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 ""
+"Se a <literal>Session</literal> levantar uma exceção, incluindo qualquer "
+"<literal>SQLException</literal>, você deverá imediatamente dar um rollback "
+"na transação do banco, chamando <literal>Session.close()</literal> e "
+"descartando a instância da <literal>Session</literal>. Certos métodos da "
+"<literal>Session</literal><literal>não</literal> deixarão a sessão em um "
+"estado inconsistente. Nenhuma exceção lançada pelo Hibernate pode ser "
+"recuperada. Certifique-se que a <literal>Session</literal> será fechada "
+"chamando <literal>close()</literal> no bloco <literal>finally</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 ""
+"A exceção <literal>HibernateException</literal>, a qual envolve a maioria "
+"dos erros que podem ocorrer em uma camada de persistência do Hibernate, é "
+"uma exceção não verificada. Ela não constava em versões mais antigas de "
+"Hibernate. Em nossa opinião, nós não devemos forçar o desenvolvedor a tratar "
+"uma exceção irrecuperável em uma camada mais baixa. Na maioria dos sistemas, "
+"as exceções não verificadas e fatais são tratadas em um dos primeiros frames "
+"da pilha da chamada do método (isto é, em umas camadas mais elevadas) e uma "
+"mensagem de erro é apresentada ao usuário da aplicação (ou alguma outra ação "
+"apropriada é feita). Note que Hibernate pode também lançar outras exceções "
+"não verificadas que não sejam um <literal>HibernateException</literal>. "
+"Estas, também são, irrecuperáveis e uma ação apropriada deve ser tomada. "
+
+#. 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 ""
+"O Hibernate envolve <literal>SQLException</literal>s lançadas ao interagir "
+"com a base de dados em um <literal>JDBCException</literal>. Na realidade, o "
+"Hibernate tentará converter a exceção em uma subclasse mais significativa da "
+"<literal>JDBCException</literal>. A <literal>SQLException</literal> "
+"subjacente está sempre disponÃvel através de <literal>JDBCException.getCause"
+"()</literal>. O Hibernate converte a <literal>SQLException</literal> em uma "
+"subclasse <literal>JDBCException</literal> apropriada usando "
+"<literal>SQLExceptionConverter</literal> associado ao "
+"<literal>SessionFactory</literal>. Por padrão, o "
+"<literal>SQLExceptionConverter</literal> é definido pelo dialeto "
+"configurado. Entretanto, é também possÃvel conectar em uma implementação "
+"customizada. Veja o javadoc para mais detalhes da classe "
+"<literal>SQLExceptionConverterFactory</literal>. Os subtipos padrão de "
+"<literal>JDBCException</literal> são: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>JDBCConnectionException</literal>: indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+"<literal>JDBCConnectionException</literal>: indica um erro com a comunicação "
+"subjacente de JDBC."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>SQLGrammarException</literal>: indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+"<literal>SQLGrammarException</literal>: indica um problema da gramática ou "
+"da sintáxe com o SQL emitido."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>ConstraintViolationException</literal>: indicates some form of "
+"integrity constraint violation."
+msgstr ""
+"<literal>ConstraintViolationException</literal>: indica algum forma de "
+"violação de confinamento de integridade."
+
+#. 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>: indica um erro ao adquirir um "
+"nÃvel de bloqueio necessário para realizar a operação de requisição."
+
+#. 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>: uma exceção genérica que não está "
+"inclusa em nenhuma das outras categorias."
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr "Tempo de espera de Transação"
+
+#. 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 ""
+"O tempo de espera de transação é uma caracterÃstica extremamente importante "
+"fornecida por um ambiente gerenciado como EJB e que nunca é fornecido pelo "
+"código não gerenciado. Os tempos de espera de transação asseguram que "
+"nenhuma transação retenha indefinidamente recursos enquanto não retornar "
+"nenhuma resposta ao usuário. Fora de um ambiente controlado (JTA), o "
+"Hibernate não pode fornecer inteiramente esta funcionalidade. Entretanto, o "
+"Hibernate pode afinal controlar as operações do acesso a dados, assegurando "
+"que o nÃvel de deadlocks e consultas do banco de dados com imensos "
+"resultados definidos sejam limitados pelo tempo de espera. Em um ambiente "
+"gerenciado, o Hibernate pode delegar o tempo de espera da transação ao JTA. "
+"Esta funcionalidade é abstraÃda pelo objeto <literal>Transaction</literal> "
+"do Hibernate. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>setTimeout()</literal> cannot be called in a CMT bean, where "
+"transaction timeouts must be defined declaratively."
+msgstr ""
+"Veja que <literal>setTimeout()</literal> não pode ser chamado em um bean "
+"CMT, onde o tempo de espera das transações deve ser definido declaradamente. "
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr "Controle de concorrência otimista"
+
+#. 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 ""
+"O único caminho que é consistente com a elevada concorrência e "
+"escalabilidade é o controle de concorrência otimista com versionamento. A "
+"checagem de versão usa número de versão, ou carimbo de hora (timestamp), "
+"para detectar conflitos de atualizações (e para impedir atualizações "
+"perdidas). O Hibernate fornece três caminhos possÃveis para escrever "
+"aplicações que usam concorrência otimista. Os casos de uso que nós mostramos "
+"estão no contexto de conversações longas, mas a checagem de versão também "
+"tem o benefÃcio de impedir atualizações perdidas em únicas transações. "
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr "Checagem de versão da aplicação"
+
+#. 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 ""
+"Em uma implementação sem muita ajuda do Hibernate, cada interação com o "
+"banco de dados ocorre em uma nova <literal>Session</literal> e o "
+"desenvolvedor é responsável por recarregar todas as instâncias persistentes "
+"da base de dados antes de manipulá-las. Este caminho força a aplicação a "
+"realizar sua própria checagem de versão para assegurar a conversação do "
+"isolamento da transação. Este caminho é menos eficiente em termos de acesso "
+"ao banco de dados. à o caminho mais similar à entidade EJBs."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal><"
+"version></literal>, and Hibernate will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+"A propriedade <literal>version</literal> é mapeada usando <literal><"
+"version></literal>, e o Hibernate vai incrementá-lá automaticamente "
+"durante a liberação se a entidade estiver alterada."
+
+#. 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 ""
+"Claro, se você estiver operando em um ambiente de baixa concorrência de "
+"dados e não precisar da checagem de versão, você pode usar este caminho e "
+"apenas pular a checagem de versão. Nesse caso, o <emphasis>último commit "
+"realizado</emphasis> é a estratégia padrão para suas conversações longas. "
+"Tenha em mente que isto pode confundir os usuários da aplicação, como também "
+"poderão ter atualizações perdidas sem mensagens de erro ou uma possibilidade "
+"de ajustar mudanças conflitantes."
+
+#. 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 ""
+"Claro que, a checagem manual da versão é somente possÃvel em circunstâncias "
+"triviais e não para a maioria de aplicações. Freqüentemente, os "
+"gráficoscompletos de objetos modificados têm que ser verificados, não "
+"somente únicas instâncias. O Hibernate oferece checagem de versão automática "
+"com uma <literal>Session</literal> estendida ou instâncias desatachadas como "
+"o paradigma do projeto. "
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr "Sessão estendida e versionamento automático"
+
+#. 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 ""
+"Uma única instância de <literal>Session</literal> e suas instâncias "
+"persistentes são usadas para a conversação inteira, isto é conhecido como "
+"<emphasis>sessão-por-conversação</emphasis>. O Hibernate verifica versões da "
+"instância no momento da liberação, lançando uma exceção se a modificação "
+"concorrente for detectada. Até o desenvolvedor pegar e tratar essa exceção. "
+"As opções comuns são a oportunidade para que o usuário intercale as mudanças "
+"ou reinicie a conversação do negócio com dados não antigos."
+
+#. 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 ""
+"A <literal>Session</literal> é desconectada de toda a conexão JDBC adjacente "
+"enquanto espera a interação do usuário. Este caminho é o mais eficiente em "
+"termos de acesso a bancos de dados. A aplicação não precisa se preocupar com "
+"a checagem de versão ou com as instâncias destacadas reatadas, nem precisa "
+"recarregar instâncias a cada transação."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal>foo</literal> object knows which <literal>Session</literal> it "
+"was loaded in. Beginning a new database transaction on an old session "
+"obtains a new connection and resumes the session. Committing a database "
+"transaction disconnects a session from the JDBC connection and returns the "
+"connection to the pool. After reconnection, to force a version check on data "
+"you are not updating, you can call <literal>Session.lock()</literal> with "
+"<literal>LockMode.READ</literal> on any objects that might have been updated "
+"by another transaction. You do not need to lock any data that you "
+"<emphasis>are</emphasis> updating. Usually you would set <literal>FlushMode."
+"MANUAL</literal> on an extended <literal>Session</literal>, so that only the "
+"last database transaction cycle is allowed to actually persist all "
+"modifications made in this conversation. Only this last database transaction "
+"will include the <literal>flush()</literal> operation, and then "
+"<literal>close()</literal> the session to end the conversation."
+msgstr ""
+"O objeto <literal>foo</literal> sabe que a <literal>Session</literal> já foi "
+"carregada. Ao começar uma nova transação ou uma sessão velha, você obterá "
+"uma conexão nova e reiniciará a sessão. Submeter uma transação implica em "
+"desconectar uma sessão da conexão JDBC e retornar à conexão ao pool. Após a "
+"reconexão, para forçar uma checagem de versão em dados que você não esteja "
+"atualizando, você poderá chamar <literal>Session.lock()</literal> com o "
+"<literal>LockMode.READ</literal> em todos os objetos que possam ter sido "
+"atualizados por uma outra transação. Você não precisa bloquear nenhum dado "
+"que você <emphasis>está</emphasis> atualizando. Geralmente, você "
+"configuraria <literal>FlushMode.NEVER</literal> em uma <literal>Session</"
+"literal> estendida, de modo que somente o último ciclo da transação tenha "
+"permissão de persistir todas as modificações feitas nesta conversação. Por "
+"isso, somente esta última transação incluiria a operação <literal>flush()</"
+"literal> e então também iria <literal>close()</literal> a sessão para "
+"terminar a conversação. "
+
+#. 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 ""
+"Este modelo é problemático se a <literal>Session</literal> for "
+"demasiadamente grande para ser armazenada durante o tempo de espera do "
+"usuário (por exemplo uma <literal>HttpSession</literal> deve ser mantida o "
+"menor possÃvel). Como a <literal>Session</literal> é também cache de "
+"primeiro nÃvel (imperativo) e contém todos os objetos carregados, nós "
+"podemos provavelmente usar esta estratégia somente para alguns ciclos de "
+"requisição/resposta. Você deve usar a <literal>Session</literal> somente "
+"para uma única conversação, porque ela logo também estará com dados velhos. "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. 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 ""
+"Note que versões mais atuais de Hibernate requerem a desconexão e reconexão "
+"explÃcitas de uma <literal>Session</literal>. Estes métodos são "
+"desatualizados, pois o inÃcio e término de uma transação têm o mesmo efeito."
+
+#. 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 ""
+"Note também que você deve manter a <literal>Session</literal> desconectada, "
+"fechada para a camada de persistência. Ou seja, use um bean de sessão com "
+"estado EJB para prender a <literal>Session</literal> em um ambiente de três "
+"camadas. Não transfira à camada web, ou até serializá-lo para uma camada "
+"separada, para armazená-lo no <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 ""
+"O modelo da sessão estendida, ou <emphasis>sessão-por-conversação</"
+"emphasis>, é mais difÃcil de implementar com gerenciamento automático de "
+"sessão atual. Você precisa fornecer sua própria implementação do "
+"<literal>CurrentSessionContext</literal> para isto. Veja o Hibernate Wiki "
+"para exemplos."
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr "Objetos destacados e versionamento automático"
+
+#. 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 ""
+"Cada interação com o armazenamento persistente ocorre em uma "
+"<literal>Session</literal> nova. Entretanto, as mesmas instâncias "
+"persistentes são reusadas para cada interação com o banco de dados. A "
+"aplicação manipula o estado das instâncias desatachadas originalmente "
+"carregadas em uma outra <literal>Session</literal> e as reata então usando "
+"<literal>Session.update()</literal>, <literal>Session.saveOrUpdate()</"
+"literal> ou <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 ""
+"Outra vez, o Hibernate verificará versões da instância durante a liberação, "
+"lançando uma exceção se ocorrer conflitos de atualizações. "
+
+#. 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 ""
+"Você pode também chamar o <literal>lock()</literal> em vez de <literal>update"
+"()</literal> e usar <literal>LockMode.READ</literal> (executando uma "
+"checagem de versão, ignorando todos os caches) se você estiver certo de que "
+"o objeto não foi modificado. "
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr "Versionamento automático customizado"
+
+#. 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 ""
+"Você pode desabilitar o incremento da versão automática de Hibernate para "
+"propriedades e coleções particulares, configurando a função de mapeamento "
+"<literal>optimistic-lock</literal> para <literal>false</literal>. O "
+"Hibernate então, não incrementará mais versões se a propriedade estiver "
+"modificada. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Legacy database schemas are often static and cannot be modified. Or, other "
+"applications might access the same database and will not know how to handle "
+"version numbers or even timestamps. In both cases, versioning cannot rely on "
+"a particular column in a table. To force a version check with a comparison "
+"of the state of all fields in a row but without a version or timestamp "
+"property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the "
+"<literal><class></literal> mapping. This conceptually only works if "
+"Hibernate can compare the old and the new state (i.e., if you use a single "
+"long <literal>Session</literal> and not session-per-request-with-detached-"
+"objects)."
+msgstr ""
+"Os esquemas da base de dados legado são freqüentemente estáticos e não podem "
+"ser modificados. Ou então, outras aplicações puderam também acessar a mesma "
+"base de dados e não sabem tratar a versão dos números ou carimbos de hora. "
+"Em ambos os casos, o versionamento não pode confiar em uma coluna particular "
+"em uma tabela. Para forçar uma checagem de versão sem uma versão ou "
+"mapeamento da propriedade do carimbo de hora com uma comparação do estado de "
+"todos os campos em uma linha, configure <literal>optimistic-lock=\"all\"</"
+"literal> no mapeamento <literal><class></literal>. Note que isto "
+"conceitualmente é somente feito em trabalhos se o Hibernate puder comparar o "
+"estado velho e novo (ex.: se você usar uma única <literal>Session</literal> "
+"longa e não uma sessão-por-solicitação-com-objetos-desanexados)."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Concurrent modification can be permitted in instances where the changes that "
+"have been made do not overlap. If you set <literal>optimistic-lock=\"dirty"
+"\"</literal> when mapping the <literal><class></literal>, Hibernate "
+"will only compare dirty fields during flush."
+msgstr ""
+"Ãs vezes a modificação concorrente pode ser permitida, desde que as mudanças "
+"realizadas não se sobreponham. Se você configurar <literal>optimistic-lock="
+"\"dirty\"</literal> ao mapear o <literal><class></literal>, o "
+"Hibernate comparará somente campos modificados durante a liberação. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In both cases, with dedicated version/timestamp columns or with a full/dirty "
+"field comparison, Hibernate uses a single <literal>UPDATE</literal> "
+"statement, with an appropriate <literal>WHERE</literal> clause, per entity "
+"to execute the version check and update the information. If you use "
+"transitive persistence to cascade reattachment to associated entities, "
+"Hibernate may execute unnecessary updates. This is usually not a problem, "
+"but <emphasis>on update</emphasis> triggers in the database might be "
+"executed even when no changes have been made to detached instances. You can "
+"customize this behavior by setting <literal>select-before-update=\"true\"</"
+"literal> in the <literal><class></literal> mapping, forcing Hibernate "
+"to <literal>SELECT</literal> the instance to ensure that changes did occur "
+"before updating the row."
+msgstr ""
+"Em ambos os casos, com as colunas de versão/carimbo de hora dedicados com "
+"comparação de campo cheio/sujo, o Hibernate usa uma única instrução "
+"<literal>UPDATE</literal>, com uma cláusula <literal>WHERE</literal> "
+"apropriada, por entidade para executar a checagem da versão e atualizar a "
+"informação. Se você usar a persistência transitiva para cascatear o "
+"reatamento das entidades associadas, o Hibernate pode executar atualizações "
+"desnecessárias. Isso não é geralmente um problema, mas os triggers "
+"<emphasis>em atualizações</emphasis> num banco de dados pode ser executado "
+"mesmo quando nenhuma mudança foi feita nas instâncias desanexadas. Você pode "
+"customizar este comportamento configurando <literal>selecionar-antes-de "
+"atualizar=\"verdadeiro\"</literal> no mapeamento <literal><class></"
+"literal>, forçando o Hibernate a fazer um <literal>SELECT</literal> nas "
+"instâncias para assegurar-se de que as mudanças realmente aconteceram, antes "
+"de atualizar a linha. "
+
+#. Tag: title
+#, no-c-format
+msgid "Pessimistic locking"
+msgstr "Bloqueio Pessimista "
+
+#. 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 ""
+"Não ha intenção alguma que usuários gastem muitas horas se preocupando com "
+"suas estratégias de bloqueio. Geralmente, é o bastante especificar um nÃvel "
+"de isolamento para as conexões JDBC e então deixar simplesmente o banco de "
+"dados fazer todo o trabalho. Entretanto, os usuários avançados podem às "
+"vezes desejar obter bloqueios pessimistas exclusivos, ou re-obter bloqueios "
+"no inÃcio de uma nova transação. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate will always use the locking mechanism of the database; it never "
+"lock objects in memory."
+msgstr ""
+"O Hibernate usará sempre o mecanismo de bloqueio da base de dados, nunca "
+"bloquiar objetos na memória."
+
+#. 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 ""
+"A classe <literal>LockMode</literal> define os diferentes nÃveis de bloqueio "
+"que o Hibernate pode adquirir. Um bloqueio é obtido pelos seguintes "
+"mecanismos: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> is acquired automatically when Hibernate "
+"updates or inserts a row."
+msgstr ""
+"<literal>LockMode.WRITE</literal> é adquirido automaticamente quando o "
+"Hibernate atualiza ou insere uma linha."
+
+#. 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 ""
+"<literal>LockMode.UPGRADE</literal> pode ser adquirido explicitamente pelo "
+"usuário usando <literal>SELECT ... FOR UPDATE</literal> em um banco de dados "
+"que suporte essa sintáxe. "
+
+#. 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 ""
+"<literal>LockMode.UPGRADE_NOWAIT</literal> pode ser adquirido explicitamente "
+"pelo usuário usando <literal>SELECT ... FOR UPDATE NOWAIT</literal> no "
+"Oracle. "
+
+#. 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 ""
+"<literal>LockMode.READ</literal> é adquirido automaticamente quando o "
+"Hibernate lê dados em um nÃvel de Leitura Repetida ou isolamento "
+"Serializável. Pode ser readquirido explicitamente pelo usuário. "
+
+#. 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> representa a ausência do bloqueio. Todos os "
+"objetos mudam para esse estado de bloqueio no final da <literal>Transaction</"
+"literal>. Objetos associados com a sessão através do método <literal>update()"
+"</literal> ou <literal>saveOrUpdate()</literal> também são inicializados com "
+"esse modo de bloqueio."
+
+#. Tag: para
+#, no-c-format
+msgid "The \"explicit user request\" is expressed in one of the following ways:"
+msgstr "O bloqueio obtido \"explicitamente pelo usuário\" se dá nas seguintes formas:"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A call to <literal>Session.load()</literal>, specifying a <literal>LockMode</"
+"literal>."
+msgstr ""
+"Uma chamada a <literal>Session.load()</literal>, especificando o "
+"<literal>LockMode</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr "Uma chamada à <literal>Session.lock()</literal>."
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr "Uma chamada à <literal>Query.setLockMode()</literal>."
+
+#. 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 ""
+"Se uma <literal>Session.load()</literal> é invocada com <literal>UPGRADE</"
+"literal> ou <literal>UPGRADE_NOWAIT</literal>, e o objeto requisitado ainda "
+"não foi carregado pela sessão, o objeto é carregado usando "
+"<literal>SELECT ... FOR UPDATE</literal>. Se <literal>load()</literal> for "
+"chamado para um objeto que já foi carregado com um bloqueio menos restritivo "
+"que o novo bloqueio solicitado, o Hibernate invoca o método <literal>lock()</"
+"literal> para aquele objeto."
+
+#. 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 ""
+"O <literal>Session.lock()</literal> executa uma verificação no número da "
+"versão se o modo de bloqueio especificado for <literal>READ</literal>, "
+"<literal>UPGRADE</literal> ou <literal>UPGRADE_NOWAIT</literal>. No caso do "
+"<literal>UPGRADE</literal> ou <literal>UPGRADE_NOWAIT</literal>, é usado "
+"<literal>SELECT ... FOR UPDATE</literal>."
+
+#. 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 ""
+"Se o banco de dados não suportar o modo de bloqueio solicitado, o Hibernate "
+"usará um modo alternativo apropriado, ao invés de lançar uma exceção. Isso "
+"garante que a aplicação seja portátil. "
+
+#. Tag: title
+#, no-c-format
+msgid "Connection release modes"
+msgstr "Modos para liberar a conexão"
+
+#. 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 ""
+"O comportamento legado do Hibernate 2.x referente ao gerenciamento da "
+"conexão via JDBC era que a <literal>Session</literal> precisaria obter uma "
+"conexão quando ela precisasse pela primeira vez e depois manteria a conexão "
+"enquanto a sessão não fosse fechada. O Hibernate 3.x introduz a idéia de "
+"modos para liberar a sessão, para informar a sessão a forma como deve "
+"manusear a sua conexão JDBC. Veja que essa discussão só é pertinente para "
+"conexões fornecidas com um <literal>ConnectionProvider</literal> "
+"configurado. As conexões fornecidas pelo usuário estão fora do escopo dessa "
+"discussão. Os diferentes modos de liberação estão definidos pelos valores da "
+"enumeração <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>: é o modo legado descrito acima. A sessão do "
+"Hibernate obtém a conexão quando precisar executar alguma operação JDBC pela "
+"primeira vez e mantém enquanto a conexão não for fechada."
+
+#. 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>: informa que a conexão deve ser "
+"liberada após a conclusão de uma <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> (também conhecida como liberação "
+"agressiva): informa que a conexão deve ser liberada após a execução de cada "
+"instrução. A liberação agressiva não ocorre se a instrução deixa pra trás "
+"algum recurso aberto associado com a sessão obtida. Atualmente, a única "
+"situação em que isto ocorre é com o uso de <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 ""
+"O parâmetro de configuração <literal>hibernate.connection.release_mode</"
+"literal> é usado para especificar qual modo de liberação deve ser usado. "
+"Segue abaixo os valores possÃveis:"
+
+#. 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> (padrão): essa opção delega ao modo de liberação "
+"retornado pelo método <literal>org.hibernate.transaction.TransactionFactory."
+"getDefaultReleaseMode()</literal>. Para JTATransactionFactory, ele retorna "
+"ConnectionReleaseMode.AFTER_STATEMENT; para JDBCTransactionFactory, ele "
+"retorna ConnectionReleaseMode.AFTER_TRANSACTION. Raramente, é uma boa idéia "
+"alterar padrão, pois ao se fazer isso temos falhas que parecem bugs e/ou "
+"suposições inválidas no código do usuário. "
+
+#. 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>: indica o uso da ConnectionReleaseMode.ON_CLOSE. "
+"Essa opção foi deixada para manter a compatibilidade, mas seu uso é "
+"fortemente desencorajado. "
+
+#. 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>: indica o uso da ConnectionReleaseMode."
+"AFTER_TRANSACTION. Essa opção não deve ser usada com ambientes JTA. Também "
+"note que no caso da ConnectionReleaseMode.AFTER_TRANSACTION, se a sessão foi "
+"colocada no modo auto-commit a conexão vai ser liberada de forma similar ao "
+"modo 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>: indica o uso ConnectionReleaseMode."
+"AFTER_STATEMENT. Além disso, o <literal>ConnectionProvider</literal> "
+"configurado é consultado para verificar se suporta essa configuração "
+"(<literal>supportsAggressiveRelease()</literal>). Se não suportar, o modo de "
+"liberação é redefinido como ConnectionRelease-Mode.AFTER_TRANSACTION. Essa "
+"configuração só é segura em ambientes onde podemos tanto readquirir a mesma "
+"conexão JDBC adjacente todas as vezes que chamarmos "
+"<literal>ConnectionProvider.getConnection()</literal> quanto em um ambiente "
+"auto-commit, onde não importa se voltamos para a mesma conexão. "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/tutorial.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/tutorial.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/tutorial.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1871 @@
+# translation of tutorial.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: tutorial\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-19 14:09+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr "Tutorial"
+
+#. 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 ""
+"Intencionado para novos usuários, este capÃtulo fornece uma introdução "
+"detalhada do Hibernate, começando com um aplicativo simples usando um banco "
+"de dados em memória. O tutorial é baseado num tutorial anterior desenvolvido "
+"por Michael Gloegl. Todo o código está contido no diretório "
+"<filename>tutorials/web</filename> da fonte do projeto."
+
+#. 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 ""
+"Este tutorial espera que o usuário tenha conhecimento de ambos Java e SQL. "
+"Caso você tenha um conhecimento limitado do JAVA ou SQL, é recomendado que "
+"você inicie com uma boa introdução àquela tecnologia, antes de tentar "
+"entender o Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The distribution contains another example application under the "
+"<filename>tutorial/eg</filename> project source directory."
+msgstr ""
+"Esta distribuição contém outro aplicativo de amostra sob o diretório de "
+"fonte do projeto <filename>tutorial/eg</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr "Parte 1 â A primeira aplicação Hibernate"
+
+#. 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 ""
+"Vamos supor que precisemos de uma aplicação com um banco de dados pequeno "
+"que possa armazenar e atender os eventos que queremos, além das informações "
+"sobre os hosts destes eventos. "
+
+#. 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 ""
+"Mesmo que usando qualquer banco de dados do qual você se sinta confortável, "
+"nós usaremos <ulink url=\"http://hsqldb.org/\">HSQLDB</ulink> (o em memória, "
+"banco de dados Java) para evitar a descrição de instalação/configuração de "
+"quaisquer servidores do banco de dados."
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr "Configuração"
+
+#. 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 ""
+"O primeiro passo em que precisamos tomar é configurar o ambiente de "
+"desenvolvimento. Nós usaremos o \"layout padrão\" suportado por muitas "
+"ferramentas de construção, tais como <ulink url=\"http://maven.org\">Maven</"
+"ulink>. Maven, em particular, possui um excelente recurso de descrição disto "
+"<ulink url=\"http://maven.apache.org/guides/introduction/introduction-to-the-"
+"standard-directory-layout.html\">layout</ulink>. Assim como este tutorial "
+"deve ser um aplicativo da web, nós criaremos e faremos uso dos diretórios "
+"<filename>src/main/java</filename>, <filename>src/main/resources</filename> "
+"e <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 ""
+"Nós usaremos Maven neste tutorial, tirando vantagem destas capacidades de "
+"dependência transitiva assim como a habilidade de muitos IDEs de configurar "
+"automaticamente um projeto baseado no descritor maven."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is not a requirement to use Maven. If you wish to use something else to "
+"build this tutoial (such as Ant), the layout will remain the same. The only "
+"change is that you will need to manually account for all the needed "
+"dependencies. If you use something like <ulink url=\"http://ant.apache.org/"
+"ivy/\">Ivy</ulink> providing transitive dependency management you would "
+"still use the dependencies mentioned below. Otherwise, you'd need to grab "
+"<emphasis>all</emphasis> dependencies, both explicit and transitive, and add "
+"them to the project's classpath. If working from the Hibernate distribution "
+"bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts "
+"in the <filename>lib/required</filename> directory and all files from either "
+"the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/"
+"javassist</filename> directory; additionally you will need both the servlet-"
+"api jar and one of the slf4j logging backends."
+msgstr ""
+"O uso do Maven não é obrigatório. Caso você deseje usar outra tecnologia "
+"para construir este tutorial (tal como Ant), o layout continuará o mesmo. A "
+"única mudança é que você precisará contar manualmente para todas as "
+"dependências necessárias. Caso você utilize <ulink url=\"http://ant.apache."
+"org/ivy/\">Ivy</ulink> para fornecer um gerenciamento de dependência "
+"transitiva, você continuará a usar as dependências mencionadas abaixo. Do "
+"contrário, você precisará encontrar <emphasis>todas</emphasis> as dependências, ambas explÃcitas "
+"e transitivas, além de adicioná-las às classpath de projetos. Caso "
+"trabalhando da vinculação de distribuição Hibernate, quer dizer "
+"<filename>hibernate3.jar</filename>, todos os artefatos no diretório "
+"<filename>lib/required</filename> e todos os arquivos a partir do diretório "
+"<filename>lib/bytecode/cglib</filename> ou <filename>lib/bytecode/javassist</"
+"filename>. Adicionalmente, você precisará de ambos servlet-api jar e um dos "
+"slf4j logging backends. "
+
+#. Tag: para
+#, no-c-format
+msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr ""
+"Salve este arquivo como <filename>pom.xml</filename> no diretório raiz do "
+"projeto."
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr "A primeira Classe"
+
+#. 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 ""
+"Agora, iremos criar uma classe que representa o evento que queremos "
+"armazenar na base de dados. Isto é uma classe JavaBean simples com algumas "
+"propriedades:"
+
+#. 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 ""
+"Você pode ver que esta classe usa o padrão JavaBean para o nome convencional "
+"dos métodos de propriedade getter e setter, como também a visibilidade "
+"privada dos campos. Este é um padrão de projeto recomendado, mas não "
+"requerido. O Hibernate pode também acessar campos diretamente, o benefÃcio "
+"para os métodos de acesso é a robustez para o refactoring. "
+
+#. 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 ""
+"A propriedade <literal>id</literal> mantém um único valor de identificação "
+"para um evento particular. Todas as classes persistentes da entidade (bem "
+"como aquelas classes dependentes de menos importância) precisam de uma "
+"propriedade de identificação, caso nós queiramos usar o conjunto completo de "
+"caracterÃsticas do Hibernate. De fato, a maioria das aplicações, "
+"especialmente. aplicações web, precisam distinguir os objetos pelo "
+"identificador. Portanto, você deverá considerar esta, uma caracterÃstica ao "
+"invés de uma limitação. Porém, nós normalmente não manipulamos a identidade "
+"de um objeto, conseqüentemente o método setter deverá ser privado. O "
+"Hibernate somente nomeará os identificadores quando um objeto for salvo. O "
+"Hibernate pode acessar métodos públicos, privados, e protegidos, como também "
+"campos públicos, privados, protegidos diretamente. A escolha é sua e você "
+"pode adaptar seu projeto de aplicação."
+
+#. 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 ""
+"O construtor sem argumentos é um requerimento para todas as classes "
+"persistentes; O Hibernate precisa criar para você os objetos usando Java "
+"Reflection. O construtor pode ser privado, porém, a visibilidade do pacote é "
+"requerida para a procuração da geração em tempo de execução e recuperação "
+"eficiente dos dados sem a instrumentação de bytecode."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file to the <filename>src/main/java/org/hibernate/tutorial/domain</"
+"filename> directory."
+msgstr ""
+"Salve este arquivo no diretório <filename>src/main/java/org/hibernate/"
+"tutorial/domain</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr "O mapeamento do arquivo"
+
+#. 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 ""
+"O Hibernate precisa saber como carregar e armazenar objetos da classe de "
+"persistência. à aqui que o mapeamento do arquivo do Hibernate entrará em "
+"jogo. O arquivo mapeado informa ao Hibernate, qual tabela no banco de dados "
+"ele deverá acessar, e quais as colunas na tabela ele deverá usar."
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr "A estrutura básica de um arquivo de mapeamento é parecida com:"
+
+#. 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 ""
+"Note que o Hibernate DTD é muito sofisticado. Você pode usar isso para auto-"
+"conclusão no mapeamento XML dos elementos e funções no seu editor ou IDE. "
+"Você também pode abrir o arquivo DTD no seu editor. Esta é a maneira mais "
+"fácil de ter uma visão geral de todos os elementos e funções e dos padrões, "
+"como também alguns comentários. Note que o Hibernate não irá carregar o "
+"arquivo DTD da web, e sim da classpath da aplicação. O arquivo DTD está "
+"incluÃdo no <filename>hibernate-core.jar</filename> (como também no "
+"<filename>hibernate3.jar</filename>, caso usando a vinculação de "
+"distribuição."
+
+#. 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 ""
+"Nós omitiremos a declaração do DTD nos exemplos futuros para encurtar o "
+"código. Isto, é claro, não é opcional. "
+
+#. 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 ""
+"Entre as duas tags <literal>hibernate-mapping</literal>, inclua um elemento "
+"<literal>class</literal>. Todas as classes persistentes da entidade "
+"(novamente, poderá haver mais tarde, dependências sobre as classes que não "
+"são classes-primárias de entidades) necessitam do tal mapeamento, para uma "
+"tabela na base de dados 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 ""
+"Até agora, informamos o Hibernate sobre como fazer para persistir e carregar "
+"objetos da classe <literal>Event</literal> da tabela <literal>EVENTS</"
+"literal>, cada instância representada por uma coluna na tabela. Agora, "
+"continuaremos com o mapeamento de uma única propriedade identificadora para "
+"as chaves primárias da tabela. Além disso, como não precisamos nos preocupar "
+"em manipular este identificador, iremos configurar uma estratégia de geração "
+"de idâs do Hibernate para uma coluna de chave primária substituta: "
+
+#. 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 ""
+"O elemento <literal>id</literal> é a declaração de uma propriedade do "
+"identificador. O atributo do mapeamento <literal>name=\"id\"</literal> "
+"declara que o nome da propriedade JavaBeans e informa o Hibernate a utilizar "
+"os métodos <literal>getId()</literal> and <literal>setId()</literal> para "
+"acessar a propriedade. A atributo da coluna informa o Hibernate qual coluna "
+"da tabela <literal>EVENTS</literal> mantém o valor de chave primária."
+
+#. 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 ""
+"O elemento <literal>generator</literal> aninhado especifica a estratégia da "
+"geração do identificador (como os valores do identificador são gerados?). "
+"Neste caso, nós escolhemos <literal>native</literal>, do qual oferece um "
+"nÃvel de portabilidade dependendo no dialeto do banco de dados configurado. "
+"O Hibernate suporta o banco de dados gerado, globalmente único, assim como a "
+"aplicação determinada, identificadores. A geração do valor do identificador "
+"é também um dos muitos pontos de extensão do Hibernate e você pode realizar "
+"o plugin na sua própria estratégia."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>native</literal> is no longer consider the best strategy in terms "
+"of portability. for further discussion, see <xref linkend=\"portability-idgen"
+"\" />"
+msgstr ""
+"<literal>native</literal> não é mais considerada a melhor estratégia em "
+"termos de portabilidade. Para maiores informações, consulte <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 ""
+"Finalmente, incluiremos as declarações para as propriedades persistentes da "
+"classe no arquivo mapeado. Por padrão, nenhuma das propriedades da classe é "
+"considerada persistente:"
+
+#. 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 ""
+"Assim como com o elemento <literal>id</literal>, a função <literal>name</"
+"literal> do elemento <literal>property</literal> informa ao Hibernate qual "
+"método getter e setter deverá usar. Assim, neste caso, o Hibernate irá "
+"procurar pelos métodos <literal>getDate()</literal>, <literal>setDate()</"
+"literal>, <literal>getTitle()</literal> e <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 ""
+"Porque fazer o mapeamento da propriedade <literal>date</literal> incluÃdo na "
+"função <literal>column</literal>, e no <literal>title</literal> não fazer? "
+"Sem a função <literal>column</literal> o Hibernate, por padrão, utiliza o "
+"nome da propriedade como o nome da coluna. Isto funciona bem para o "
+"<literal>title</literal>. Entretanto, o <literal>date</literal> é uma "
+"palavra-chave reservada na maioria dos bancos de dados, por isso seria "
+"melhor mapeá-lo com um nome diferente. "
+
+#. 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 ""
+"O mapeamento do <literal>title</literal> também não possui a função "
+"<literal>type</literal>. O tipo que declaramos e utilizamos nos arquivos "
+"mapeados, não são como você esperava, ou seja, funções de dados Java. Eles "
+"também não são como os tipos de base de dados SQL. Esses tipos podem ser "
+"chamados de <emphasis>Tipos de mapeamento Hibernate</emphasis>, que são "
+"conversores que podem traduzir tipos de dados do Java para os tipos de dados "
+"SQL e vice-versa. Novamente, o Hibernate irá tentar determinar a conversão "
+"correta e mapeará o <literal>type</literal> próprio, caso o tipo da função "
+"não estiver presente no mapeamento. Em alguns casos, esta detecção "
+"automática (que usa Reflection sobre as classes Java) poderá não ter o "
+"padrão que você espera ou necessita. Este é o caso com a propriedade "
+"<literal>date</literal>. O Hibernate não sabe se a propriedade, que é do "
+"<literal>java.util.Date</literal>, pode mapear para uma coluna do tipo "
+"<literal>date</literal> do SQL, <literal>timestamp</literal> ou "
+"<literal>time</literal>. Nós preservamos as informações sobre datas e horas "
+"pelo mapeamento da propriedade com um conversor <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 ""
+"O Hibernate realiza esta determinação de tipo de mapeamento usando a "
+"reflexão quando os arquivos de mapeamentos são processados. Isto pode levar "
+"tempo e recursos, portanto se você inicializar o desempenho, será importante "
+"que você considere claramente a definição do tipo para uso."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this mapping file as <filename>src/main/resources/org/hibernate/"
+"tutorial/domain/Event.hbm.xml</filename>."
+msgstr ""
+"Salve este arquivo de mapeamento como <filename>src/main/resources/org/"
+"hibernate/tutorial/domain/Event.hbm.xml</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr "Configuração do Hibernate"
+
+#. 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 ""
+"Nestas alturas, você deve possuir a classe persistente e seu arquivo de "
+"mapeamento prontos. Ã o momento de configurar o Hibernate. Primeiro, vamos "
+"configurar o HSQLDB para rodar no \"modo do servidor\"."
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr "Nós realizamos isto para que aqueles dados permaneçam entre as execuções. "
+
+#. 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 ""
+"Nós utilizaremos o Maven exec plugin para lançar o servidor HSQLDB pela "
+"execução: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -"
+"Dexec.args=\"-database.0 file:target/data/tutorial\"</command>. Você pode "
+"ver ele iniciando e vinculando ao soquete TCP/IP, aqui será onde nossa "
+"aplicação irá se conectar depois. Se você deseja iniciar uma nova base de "
+"dados durante este tutorial, finalize o HSQLDB, delete todos os arquivos no "
+"diretório <filename>target/data</filename>, e inicie o HSQLBD novamente."
+
+#. 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 ""
+"O Hibernate conectará ao banco de dados no lugar de sua aplicação, portanto "
+"ele precisará saber como obter as conexões. Para este tutorial nós usaremos "
+"um pool de conexão autônomo (ao invés de <interfacename>javax.sql."
+"DataSource</interfacename>). O Hibernate vem com o suporte para dois terços "
+"dos pools de conexão JDBC de código aberto: <ulink url=\"https://sourceforge."
+"net/projects/c3p0\">c3p0</ulink> e <ulink url=\"http://proxool.sourceforge."
+"net/\">proxool</ulink>. No entanto, nós usaremos o pool de conexão interna "
+"do Hibernate para este tutorial."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The built-in Hibernate connection pool is in no way intended for production "
+"use. It lacks several features found on any decent connection pool."
+msgstr ""
+"O pool de conexão interna do Hibernate não é recomendado para uso de "
+"produção. Ele possui deficiência em diversos recursos encontrados em qualquer pool de conexão apropriado."
+
+#. 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 ""
+"Para as configurações do Hibernate, nós podemos usar um arquivo simples "
+"<literal>hibernate.properties</literal>, um arquivo mais sofisticado "
+"<literal>hibernate.cfg.xml</literal> ou até mesmo uma instalação "
+"programática completa. A maioria dos usuários prefere utilizar o arquivo de "
+"configuração XML:"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr "Perceba que este arquivo de configuração especifica um DTD diferente"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory "
+"is a global factory responsible for a particular database. If you have "
+"several databases, for easier startup you should use several <literal><"
+"session-factory></literal> configurations in several configuration files."
+msgstr ""
+"Configure a <literal>SessionFactory</literal> do Hibernate. A SessionFactory "
+"é uma fábrica global responsável por uma base de dados particular. Se você "
+"tiver diversas bases de dados, use diversas configurações <literal><"
+"session-factory></literal>, geralmente em diversos arquivos de "
+"configuração, para uma inicialização mais fácil. "
+
+#. 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 ""
+"Os primeiros quatro elementos <literal>property</literal> contêm a "
+"configuração necessária para a conexão JBDC. O elemento <literal>property</"
+"literal> do dialeto especifica a variante do SQL particular que o Hibernate "
+"gera."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In most cases, Hibernate is able to properly determine which dialect to use. "
+"See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr ""
+"Na maioria dos casos, o Hibernate está apto a determinar corretamente qual "
+"dialeto em uso. Consulte <xref linkend=\"portability-dialectresolver\" /> "
+"para maiores informações. "
+
+#. 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 ""
+"O gerenciamento automático de sessão do Hibernate para contextos de "
+"persistência é bastante útil neste contexto. A opção <literal>hbm2ddl.auto</"
+"literal> habilita a geração automática de esquemas da base de dados, "
+"diretamente na base de dados. Isto também pode ser naturalmente desligado "
+"apenas removendo a opção de configuração ou redirecionado para um arquivo "
+"com ajuda do <literal>SchemaExport</literal> na tarefa do Ant. Finalmente, "
+"iremos adicionar os arquivos das classes de persistência mapeadas na "
+"configuração."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this file as <filename>hibernate.cfg.xml</filename> into the "
+"<filename>src/main/resources</filename> directory."
+msgstr ""
+"Salve este arquivo como <filename>hibernate.cfg.xml</filename> no diretório "
+"<filename>src/main/resources</filename>."
+
+#. Tag: title
+#, no-c-format
+msgid "Building with Maven"
+msgstr "Construindo com o Maven"
+
+#. 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 ""
+"Nós iremos construir agora o tutorial com Maven. Você necessitará que o "
+"Maven esteja instalado; ele está disponÃvel a partir do <ulink url=\"http://"
+"maven.apache.org/download.html\">Maven download page</ulink>. O Maven "
+"gravará o arquivo <filename>/pom.xml</filename> que criamos anteriormente, "
+"além de saber como executar algumas tarefas do projeto básico. Primeiro, "
+"vamos rodar o objetivo <literal>compile</literal> para nos certificarmos de "
+"que tudo foi compilado até agora:"
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr "Inicialização e Auxiliares "
+
+#. 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 ""
+"Ã hora de carregar e armazenar alguns objetos <literal>Event</literal>, mas "
+"primeiro nós temos de completar a instalação com algum código de "
+"infraestrutura. Você precisa inicializar o Hibernate pela construção de um "
+"objeto <interfacename>org.hibernate.SessionFactory</interfacename> global e "
+"o armazenamento dele em algum lugar de fácil acesso para o código da "
+"aplicação. O <interfacename>org.hibernate.SessionFactory</interfacename> é "
+"usado para obter instâncias <interfacename>org.hibernate.Session</"
+"interfacename>. O <interfacename>org.hibernate.Session</interfacename> "
+"representa uma unidade de single-threaded de trabalho. O <interfacename>org."
+"hibernate.SessionFactory</interfacename> é um objeto global thread-safe, "
+"instanciado uma vez. "
+
+#. 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 ""
+"Criaremos uma classe de ajuda <literal>HibernateUtil</literal>, que cuida da "
+"inicialização e faz acesso a uma <interfacename>org.hibernate."
+"SessionFactory</interfacename> mais conveniente. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this code as <filename>src/main/java/org/hibernate/tutorial/util/"
+"HibernateUtil.java</filename>"
+msgstr ""
+"Salve este código como <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 ""
+"Esta classe não só produz uma referência <interfacename>org.hibernate."
+"SessionFactory</interfacename> global em seu inicializador estático, mas "
+"também esconde o fato de que utiliza um autônomo estático. Nós poderemos "
+"buscar pela referência <interfacename>org.hibernate.SessionFactory</"
+"interfacename> a partir do JNDI no servidor da aplicação ou qualquer outra "
+"localização para este assunto."
+
+#. 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 ""
+"Se você der um nome à <literal>SessionFactory</literal> em seu arquivo de "
+"configuração, o Hibernate irá, de fato, tentar vinculá-lo ao JNDI sob aquele "
+"nome, depois que estiver construÃdo. Outra opção melhor seria usar a "
+"implementação JMX e deixar o recipiente JMX capaz, instanciar e vincular um "
+"<literal>HibernateService</literal> ao JNDI. Essas opções avançadas são "
+"discutidas no documento de referência do Hibernate. Tais opções avançadas "
+"serão discutidas mais tarde."
+
+#. 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 ""
+"Você precisará agora configurar um sistema de logging. O Hibernate usa "
+"logging comuns e lhe oferece a escolha entre o Log4j e o logging do JDK "
+"1.4 . A maioria dos desenvolvedores prefere o Log4j: copie <literal>log4j."
+"properties</literal> da distribuição do Hibernate no diretório <literal>etc/"
+"</literal>, para seu diretório <literal>src</literal>, depois vá em "
+"<literal>hibernate.cfg.xml</literal>. Dê uma olhada no exemplo de "
+"configuração e mude as configurações se você quiser ter uma saÃda mais "
+"detalhada. Por padrão, apenas as mensagens de inicialização do Hibernate são "
+"mostradas no stdout."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The tutorial infrastructure is complete and you are now ready to do some "
+"real work with Hibernate."
+msgstr ""
+"O tutorial de infra-estrutura está completo e nós já estamos preparados para "
+"algum trabalho de verdade com o Hibernate. "
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr "Carregando e salvando objetos"
+
+#. 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 ""
+"Agora estamos prontos a começar a trabalhar de verdade com o Hibernate. "
+"Vamos começar escrevendo uma classe <literal>EventManager</literal> com um "
+"método <literal>main()</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 ""
+"Em <literal>createAndStoreEvent()</literal>, criamos um novo objeto de "
+"<literal>Event</literal>, e passamos para o Hibernate. O Hibernate sabe como "
+"tomar conta do SQL e executa <literal>INSERT</literal>s no banco de dados. "
+
+#. 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 ""
+"O <interface>org.hibernate.Session</interface> é designado a representar uma "
+"unidade simples de trabalho (um pedaço atômico simples de trabalho a ser "
+"executado). Nesta fase manteremos tudo muito simples e consideraremos uma "
+"granularidade de um-para-um entre um <interface>org.hibernate.Session</"
+"interface> do Hibernate e uma transação de banco de dados. Para proteger "
+"nosso código do sistema subjacente de transação, usamos o Hibernate "
+"<interfacename>org.hibernate.Transaction</interfacename> API. Neste caso em "
+"particular, nós estamos usando as semânticas transacionais baseadas o JDBC, "
+"mas isto pode rodar também com o 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 ""
+"O que a <literal>sessionFactory.getCurrentSession()</literal> faz? Primeiro, "
+"você pode chamar quantas vezes e de onde quiser, assim que você receber sua "
+"<interfacename>org.hibernate.SessionFactory</interfacename>. O método "
+"<literal>getCurrentSession()</literal> sempre retorna à unidade de trabalho "
+"\"atual\". Você se lembra que nós mudamos a opção de configuração desse "
+"mecanismo para \"thread\" em nosso <filename>src/main/resources/hibernate."
+"cfg.xml</filename>? Devido a esta configuração, o contexto de uma unidade de "
+"trabalho atual estará vinculada à thread Java atual que executa nossa "
+"aplicação. "
+
+#. 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 ""
+"O Hibernate oferece três métodos da sessão atual. O método \"thread\" "
+"baseado não possui por interesse o uso de produção; ele é basicamente útil "
+"para prototyping e tutoriais tais como este. A sessão atual será discutida "
+"em mais detalhes mais tarde."
+
+#. 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 ""
+"Um <interface>org.hibernate.Session</interface> começa quando for "
+"necessária, quando é feita a primeira chamada à <literal>getCurrentSession()"
+"</literal>. à então limitada pelo Hibernate para a thread atual. Quando a "
+"transação termina, tanto com commit quanto rollback, o Hibernate também "
+"desvincula a <literal>Session</literal> da thread e fecha isso pra você. Se "
+"você chamar <literal>getCurrentSession()</literal> novamente, você receberá "
+"uma nova <literal>Session</literal> e poderá começar uma nova unidade de "
+"trabalho. "
+
+#. 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 ""
+"Em relação ao escopo da unidade de trabalho, o Hibernate <interface>org."
+"hibernate.Session</interface> deve ser utilizado para executar uma ou mais "
+"operações do banco de dados? O exemplo acima utiliza uma <literal>Session</"
+"literal> para cada operação. Isto é pura coincidência, o exemplo "
+"simplesmente não é complexo o bastante para mostrar qualquer outra "
+"abordagem. O escopo de um Hibernate <interface>org.hibernate.Session</"
+"interface> é flexÃvel, mas você nunca deve configurar seu aplicativo para "
+"utilizar um novo Hibernate <interface>org.hibernate.Session</interface> para "
+"aoperação de banco de dados <emphasis>every</emphasis>. Portanto, mesmo que "
+"você o veja algumas vezes mais nos seguintes exemplos, considere "
+"<emphasis>session-per-operation</emphasis> como um anti-modelo. Um "
+"aplicativo da web real será demonstrado mais adiante neste tutorial."
+
+#. 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 ""
+"Dê uma olhada no <xref linkend=\"transactions\"/> para mais informações a "
+"respeito de manipulação de transação e demarcação. Nós também pulamos "
+"qualquer manipulação de erro e rollback no exemplo anterior. "
+
+#. 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 ""
+"Para rodar isto, nós faremos uso do Maven exec plugin para chamar nossa "
+"classe com a instalação do classpath necessária: <command>mvn exec:java -"
+"Dexec.mainClass=\"org.hibernate.tutorial.EventManager\" -Dexec.args=\"store"
+"\"</command>"
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr "Você precisa executar o <command>mvn compile</command> primeiramente."
+
+#. 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 ""
+"Você deverá ver, após a compilação, a inicialização do Hibernate e, "
+"dependendo da sua configuração, muito log de saÃda. No final, você verá a "
+"seguinte linha: "
+
+#. Tag: para
+#, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr "Este é o <literal>INSERT</literal> executado pelo Hibernate."
+
+#. Tag: para
+#, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr ""
+"Adicionamos uma opção para o método principal com o objetivo de listar os "
+"eventos arquivados: "
+
+#. Tag: para
+#, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+msgstr ""
+"Nos também adicionamos um novo <literal>listEvents() method is also added</"
+"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 ""
+"Neste caso, nós usamos uma consulta Hibernate Query LanguageHQL (HQL), para "
+"carregar todos os objetos <literal>Event</literal> existentes no banco de "
+"dados. O Hibernate irá gerar o SQL apropriado, enviar para o banco de dados "
+"e popular objetos <literal>Event</literal> com os dados. Você pode criar "
+"consultas mais complexas com HQL. Consulte <xref linkend=\"queryhql\"/> para "
+"maiores informações. "
+
+#. 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 ""
+"Agora podemos chamar nossa nova funcionalidade usando, novamente, o Maven "
+"exec plugin: <command>mvn exec:java -Dexec.mainClass=\"org.hibernate."
+"tutorial.EventManager\" -Dexec.args=\"list\"</command>"
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr "Parte 2 - Mapeando associações "
+
+#. 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 ""
+"Nós mapeamos uma classe de entidade de persistência para uma tabela. Agora "
+"vamos continuar e adicionar algumas associações de classe. Primeiro iremos "
+"adicionar pessoas à nossa aplicação e armazenar os eventos em que elas "
+"participam. "
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr "Mapeando a classe Person "
+
+#. Tag: para
+#, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr "O primeira parte da classe <literal>Person</literal> parece-se com isto: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Save this to a file named <filename>src/main/java/org/hibernate/tutorial/"
+"domain/Person.java</filename>"
+msgstr ""
+"Salve isto ao arquivo nomeado <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 ""
+"Após isto, crie um novo arquivo de mapeamento como <filename>src/main/"
+"resources/org/hibernate/tutorial/domain/Person.hbm.xml</filename>"
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr "Finalmente, adicione o novo mapeamento à configuração do Hibernate: "
+
+#. 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 ""
+"Crie agora uma associação entre estas duas entidades. As pessoas (Person) "
+"podem participar de eventos, e eventos possuem participantes. As questões de "
+"design com que teremos de lidar são: direcionalidade, multiplicidade e "
+"comportamento de coleção. "
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr "Uma associação unidirecional baseada em Configuração"
+
+#. 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 ""
+"Iremos adicionar uma coleção de eventos na classe <literal>Person</literal>. "
+"Dessa forma, poderemos navegar pelos eventos de uma pessoa em particular, "
+"sem executar uma consulta explicitamente, apenas chamando "
+"<literal>Person#getEvents</literal>. As associações de valores múltiplos são "
+"representadas no Hibernate por um dos contratos do Java Collection "
+"Framework; aqui nós escolhemos um <interfacename>java.util.Set</"
+"interfacename>, uma vez que a coleção não conterá elementos duplicados e a "
+"ordem não é relevante em nossos exemplos:"
+
+#. 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 ""
+"Antes de mapearmos esta associação, pense no outro lado. Claramente, "
+"poderÃamos apenas fazer isto de forma unidirecional. Ou poderÃamos criar "
+"outra coleção no <literal>Event</literal>, se quisermos navegar de ambas "
+"direções. Isto não é necessário, de uma perspectiva funcional. Você poderá "
+"sempre executar uma consulta explÃcita para recuperar os participantes de um "
+"evento em particular. Esta é uma escolha de design que cabe a você, mas o "
+"que é claro nessa discussão é a multiplicidade da associação: \"muitos\" "
+"válidos em ambos os lados, nós chamamos isto de uma associação "
+"<emphasis>muitos-para-muitos</emphasis>. Daqui pra frente, usaremos o "
+"mapeamento muitos-para-muitos do 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 ""
+"O Hibernate suporta todo tipo de mapeamento de coleção, sendo um "
+"<literal>set</literal> mais comum. Para uma associação muitos-para-muitos ou "
+"relacionamento de entidade <emphasis>n:m</emphasis>, é necessária uma tabela "
+"de associação. Cada linha nessa tabela representa um link entre uma pessoa e "
+"um evento. O nome da tabela é configurado com a função <literal>table</"
+"literal> do elemento <literal>set</literal>. O nome da coluna identificadora "
+"na associação, pelo lado da pessoa, é definido com o elemento <literal>key</"
+"literal>, o nome da coluna pelo lado dos eventos, é definido com a função "
+"<literal>column</literal> do <literal>many-to-many</literal>. Você também "
+"precisa dizer para o Hibernate a classe dos objetos na sua coleção (a classe "
+"do outro lado das coleções de referência)."
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr "O esquema de mapeamento para o banco de dados está a seguir: "
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr "Trabalhando a associação "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now we will bring some people and events together in a new method in "
+"<literal>EventManager</literal>:"
+msgstr ""
+"Vamos reunir algumas pessoas e eventos em um novo método na classe "
+"<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 ""
+"Após carregar um <literal>Person</literal> e um <literal>Event</literal>, "
+"simplesmente modifique a coleção usando os métodos normais de uma coleção. "
+"Como você pode ver, não há chamada explÃcita para <literal>update()</"
+"literal> ou <literal>save()</literal>; o Hibernate detecta automaticamente "
+"que a coleção foi modificada e que necessita ser atualizada. Isso é chamado "
+"de <emphasis>checagem suja automática</emphasis>, e você também pode usá-la "
+"modificando o nome ou a data de qualquer um dos seus objetos. Desde que eles "
+"estejam no estado <emphasis>persistent</emphasis>, ou seja, limitado por uma "
+"<literal>Session</literal> do Hibernate em particular, o Hibernate monitora "
+"qualquer alteração e executa o SQL em modo de gravação temporária. O "
+"processo de sincronização do estado da memória com o banco de dados, "
+"geralmente apenas no final de uma unidade de trabalho, normalmente apenas no "
+"final da unidade de trabalho, é chamado de <emphasis>flushing</emphasis>. No "
+"nosso código, a unidade de trabalho termina com o commit , ou rollback, da "
+"transação do banco de dados. "
+
+#. 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 ""
+"Você pode também querer carregar pessoas e eventos em diferentes unidades de "
+"trabalho. Ou você modifica um objeto fora de um <interfacename>org.hibernate."
+"Session</interfacename>, quando não se encontra no estado persistente (se já "
+"esteve neste estado anteriormente, chamamos esse estado de "
+"<emphasis>detached</emphasis>). Você pode até mesmo modificar uma coleção "
+"quando esta se encontrar no estado detached:"
+
+#. 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 ""
+"A chamada <literal>update</literal> cria um objeto persistente novamente, "
+"pode-se dizer que ele liga o objeto a uma nova unidade de trabalho, assim "
+"qualquer modificação que você faça neste objeto enquanto estiver no estado "
+"desanexado pode ser salvo no banco de dados. Isso inclui qualquer "
+"modificação (adição/exclusão) que você faça em uma coleção da entidade deste "
+"objeto. "
+
+#. 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 ""
+"Bem, isso não é de grande utilidade na nossa situação atual, porém, é um "
+"importante conceito que você pode criar em seu próprio aplicativo. No "
+"momento, complete este exercÃcio adicionando uma ação ao método principal da "
+"classe <literal>EventManager</literal> e chame-o pela linha de comando. Se "
+"você precisar dos identificadores de uma pessoa ou evento - o método "
+"<literal>save()</literal> retornará estes identificadores (você poderá "
+"modificar alguns dos métodos anteriores para retornar aquele identificador): "
+
+#. 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 ""
+"Este foi um exemplo de uma associação entre duas classes igualmente "
+"importantes: duas entidades. Como mencionado anteriormente, há outras "
+"classes e tipos dentro de um modelo tÃpico, geralmente \"menos importante\". "
+"Alguns você já viu, como um <literal>int</literal> ou uma <literal>String</"
+"literal>. Nós chamamos essas classes de <emphasis>tipos de valores</"
+"emphasis>, e suas instâncias <emphasis>dependem</emphasis> de uma entidade "
+"particular. As instâncias desses tipos não possuem sua própria identidade, "
+"nem são compartilhados entre entidades. Duas pessoas não referenciam o mesmo "
+"objeto <literal>firstname</literal> mesmo se elas tiverem o mesmo objeto "
+"firstname. Naturalmente, os tipos de valores não são apenas encontrados "
+"dentro da JDK, mas você pode também criar suas classes como, por exemplo, "
+"<literal>Address</literal> ou <literal>MonetaryAmount</literal>. De fato, no "
+"aplicativo Hibernate todas as classes JDK são consideradas tipos de valores."
+
+#. 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 ""
+"Você também pode criar uma coleção de tipo de valores. Isso é "
+"conceitualmente muito diferente de uma coleção de referências para outras "
+"entidades, mas em Java parece ser quase a mesma coisa. "
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr "Coleção de valores "
+
+#. 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 ""
+"Vamos adicionar uma coleção de endereços de e-mail à entidade "
+"<literal>Person</literal>. Isto será representado como um "
+"<interfacename>java.util.Set</interfacename> das instâncias <classname>java."
+"lang.String</classname>:"
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr "Segue abaixo o mapeamento deste <literal>Set</literal>: "
+
+#. 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 ""
+"A diferença comparada com o mapeamento anterior se encontra na parte "
+"<literal>element</literal>, que informa ao Hibernate que a coleção não "
+"contém referências à outra entidade, mas uma coleção de elementos do tipo "
+"<literal>String</literal>. O nome da tag em minúsculo indica que se trata de "
+"um tipo/conversor de mapeamento do Hibernate. Mais uma vez, a função "
+"<literal>table</literal> do elemento <literal>set</literal> determina o nome "
+"da tabela para a coleção. O elemento <literal>key</literal> define o nome da "
+"coluna de chave estrangeira na tabela de coleção. A função <literal>column</"
+"literal> dentro do elemento <literal>element</literal> define o nome da "
+"coluna onde os valores da <literal>String</literal> serão armazenados. "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the updated schema:"
+msgstr "Segue abaixo o esquema atualizado: "
+
+#. 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 ""
+"Você pode observar que a chave primária da tabela da coleção é na verdade "
+"uma chave composta, usando as duas colunas. Isso também implica que cada "
+"pessoa não pode ter endereços de e-mail duplicados, o que é exatamente a "
+"semântica que precisamos para um set em Java. "
+
+#. 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 ""
+"Você pode agora tentar adicionar elementos à essa coleção, do mesmo modo que "
+"fizemos anteriormente ligando pessoas e eventos. à o mesmo código em 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 ""
+"Desta vez não utilizamos uma consulta <emphasis>fetch</emphasis> (busca) "
+"para inicializar a coleção. Monitore o log SQL e tente otimizá-lo com árdua "
+"busca. "
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr "Associações bidirecionais "
+
+#. 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 ""
+"Agora iremos mapear uma associação bidirecional. Você fará uma associação "
+"entre o trabalho person e event de ambos os lados em Java. O esquema do "
+"banco de dados acima não muda, de forma que você continua possuir a "
+"multiplicidade muitos-para-muitos. "
+
+#. 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 ""
+"Um banco de dados relacional é mais flexÃvel que um linguagem de programação "
+"da rede, de maneira que ele não precisa de uma direção de navegação; os "
+"dados podem ser visualizados e restaurados de qualquer maneira."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, add a collection of participants to the <literal>Event</literal> "
+"class:"
+msgstr ""
+"Primeiramente, adicione uma coleção de participantes à classe "
+"<literal>Event</literal>: "
+
+#. Tag: para
+#, no-c-format
+msgid "Now map this side of the association in <literal>Event.hbm.xml</literal>."
+msgstr "Agora mapeie este lado da associação em <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 ""
+"Como você pode ver, esses são mapeamentos <literal>set</literal> normais em "
+"ambos documentos de mapeamento. Observe que os nomes das colunas em "
+"<literal>key</literal> e <literal>many-to-many</literal> estão trocados em "
+"ambos os documentos de mapeamento. A adição mais importante feita está na "
+"função <literal>inverse=\"true\"</literal> no elemento <literal>set</"
+"literal> da coleção da classe <literal>Event</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 ""
+"Isso significa que o Hibernate deve pegar o outro lado, a classe "
+"<literal>Person</literal>, quando precisar encontrar informação sobre a "
+"relação entre as duas entidades. Isso será muito mais fácil de entender "
+"quando você analisar como a relação bidirecional entre as entidades é "
+"criada. "
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr "Trabalhando com links bidirecionais "
+
+#. 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 ""
+"Primeiro, tenha em mente que o Hibernate não afeta a semântica normal do "
+"Java. Como foi que criamos um link entre uma <literal>Person</literal> e um "
+"<literal>Event</literal> no exemplo unidirecional? Adicionamos uma instância "
+"de <literal>Event</literal>, da coleção de referências de eventos, à uma "
+"instância de <literal>Person</literal>. Então, obviamente, se quisermos que "
+"este link funcione bidirecionalmente, devemos fazer a mesma coisa para o "
+"outro lado, adicionando uma referência de <literal>Person</literal> na "
+"coleção de um <literal>Event</literal>. Essa \"configuração de link de ambos "
+"os lados\" é absolutamente necessária e você nunca deve esquecer de fazê-la. "
+
+#. 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 ""
+"Muitos desenvolvedores programam de maneira defensiva e criam métodos de "
+"gerenciamento de um link que ajustam-se corretamente em ambos os lados (como "
+"por exemplo, em <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 ""
+"Observe que os métodos set e get da coleção estão protegidos. Isso permite "
+"que classes e subclasses do mesmo pacote continuem acessando os métodos, mas "
+"evita que qualquer outra classe, que não esteja no mesmo pacote, acesse a "
+"coleção diretamente. Repita os passos para a coleção do outro lado. "
+
+#. 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 ""
+"E sobre o mapeamento da função <literal>inverse</literal>? Para você, e para "
+"o Java, um link bidirecional é simplesmente uma questão de configurar "
+"corretamente as referências de ambos os lados. O Hibernate, entretanto, não "
+"possui informação necessária para ajustar corretamente as instruções "
+"<literal>INSERT</literal> e <literal>UPDATE</literal> do SQL (para evitar "
+"violações de restrição) e precisa de ajuda para manipular as associações "
+"bidirecionais de forma apropriada. Ao fazer um lado da associação com a "
+"função <literal>inverse</literal>, você instrui o Hibernate para basicamente "
+"ignorá-lo, considerando-o uma <emphasis>cópia</emphasis> do outro lado. Isso "
+"é o necessário para o Hibernate compreender todas as possibilidades quando "
+"transformar um modelo de navegação bidirecional em esquema de banco de dados "
+"do SQL. As regras que você precisa lembrar são diretas: todas as associações "
+"bidirecionais necessitam que um lado possua a função <literal>inverse</"
+"literal>. Em uma associação de um-para-muitos, precisará ser o lado de "
+"\"muitos\", já em uma associação de muitos-para-muitos você poderá "
+"selecionar qualquer lado. "
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr "EventManager um aplicativo da web"
+
+#. 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 ""
+"Um aplicativo de web do Hibernate utiliza uma <literal>Session</literal> e "
+"uma <literal>Transaction</literal> quase do mesmo modo que um aplicativo "
+"autônomo. Entretanto, alguns modelos comuns são úteis. Nós agora criaremos "
+"um <literal>EventManagerServlet</literal>. Esse servlet lista todos os "
+"eventos salvos no banco de dados, e cria um formulário HTML para entrada de "
+"novos eventos. "
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr "Criando um servlet básico "
+
+#. 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 ""
+"Nós deveremos criar o nosso servket de processamento básico primeiramente. "
+"Uma vez que o servlet manuseia somente requisições <literal>GET</literal> do "
+"HTTP, o método que iremos implementar é <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 ""
+"Salve esse servlet como <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 ""
+"O modelo que estamos aplicando neste código é chamado <emphasis>session-per-"
+"request</emphasis>. Quando uma solicitação chega ao servlet, uma nova "
+"<literal>Session</literal> do Hibernate é aberta através da primeira chamada "
+"para <literal>getCurrentSession()</literal> em <literal>SessionFactory</"
+"literal>. Então uma transação do banco de dados é inicializada e todo acesso "
+"a dados deve ocorrer dentro de uma transação, não importando se o dado é de "
+"leitura ou escrita. Não se deve utilizar o modo auto-commit em aplicações. "
+
+#. 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>Nunca</emphasis> utilize uma nova <literal>Session</literal> do "
+"Hibernate para todas as operações de banco de dados. Utilize uma "
+"<literal>Session</literal> do Hibernate que seja de interesse à todas as "
+"solicitações. Utilize <literal>getCurrentSession()</literal>, para que seja "
+"vinculado automaticamente à thread atual de 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 ""
+"Agora, as possÃveis ações de uma solicitação serão processadas e uma "
+"resposta HTML será renderizada. Já chegaremos nesta parte. "
+
+#. 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 ""
+"Finalmente, a unidade de trabalho termina quando o processamento e a "
+"renderização são completados. Se ocorrer algum erro durante o processamento "
+"ou a renderização, uma exceção será lançada e a transação do banco de dados "
+"revertida. Isso completa o modelo <literal>session-per-request</literal>. Em "
+"vez de usar código de demarcação de transação em todo servlet você pode "
+"também criar um filtro servlet. Dê uma olhada no website do Hibernate e do "
+"Wiki para maiores informações sobre esse modelo, chamado <emphasis>Sessão "
+"Aberta na Visualização</emphasis>. Você precisará disto assim que você "
+"considerar renderizar sua visualização no JSP, não apenas num servlet. "
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr "Processando e renderizando"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now you can implement the processing of the request and the rendering of the "
+"page."
+msgstr "Vamos implementar o processamento da solicitação e renderização da página. "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This coding style, with a mix of Java and HTML, would not scale in a more "
+"complex application—keep in mind that we are only illustrating basic "
+"Hibernate concepts in this tutorial. The code prints an HTML header and a "
+"footer. Inside this page, an HTML form for event entry and a list of all "
+"events in the database are printed. The first method is trivial and only "
+"outputs HTML:"
+msgstr ""
+"O estilo deste código misturado com o Java e HTML, não escalariam em um "
+"aplicativo mais complexo, tenha em mente que estamos somente ilustrando os "
+"conceitos básicos do Hibernate neste tutorial. O código imprime um cabeçalho "
+"e nota de rodapé em HTML. Dentro desta página, são impressos um formulário "
+"para entrada de evento em HTML e uma lista de todos os evento no banco de "
+"dados. O primeiro método é trivial e somente produz um 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 ""
+"O método <literal>listEvents()</literal> utiliza a <literal>Session</"
+"literal> do Hibernate, limitado ao thread atual para executar uma consulta: "
+
+#. 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 ""
+"Finalmente, a ação <literal>store</literal>, é despachada ao método "
+"<literal>createAndStoreEvent()</literal>, que também utiliza a "
+"<literal>Session</literal> da thread atual:"
+
+#. 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 ""
+"O servlet está completo agora. Uma solicitação ao servlet será processada "
+"com uma única <literal>Session</literal> e <literal>Transaction</literal>. "
+"Quanto antes estiver no aplicativo autônomo, maior a chance do Hibernate "
+"vincular automaticamente estes objetos à thread atual de execução. Isto lhe "
+"dá a liberdade para inserir seu código e acessar a <literal>SessionFactory</"
+"literal> como desejar. Geralmente, usarÃamos um diagrama mais sofisticado e "
+"moverÃamos o código de acesso de dados para os objetos de acesso dos dados "
+"(o modelo DAO). Veja o Hibernate Wiki para mais exemplos. "
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr "Implementando e testando"
+
+#. 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 ""
+"Para implementar este aplicativo em testes, nós devemos criar um Arquivo da "
+"Web (WAR). Primeiro, nós devemos definir o descritor WAR como <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 ""
+"Para construir e implementar, chame seu diretório de projeto <literal>ant "
+"war</literal> e copie o arquivo <literal>hibernate-tutorial.war</literal> "
+"para seu diretório Tomcat <literal>webapp</literal>. "
+
+#. 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 ""
+"Caso você não possua o Tomcat instalado, baixe isto do <ulink url=\"http://"
+"tomcat.apache.org/\" /> e siga as instruções de instalação. Nosso "
+"aplicativo não solicita alterações à configuração Tomcat padrão. "
+
+#. 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 ""
+"Uma vez implementado e com o Tomcat rodando, acesse o aplicativo em "
+"<literal>http://localhost:8080/hibernate-tutorial/eventmanager</literal>. "
+"Tenha a certeza de observar o log do Tomcat para ver o Hibernate inicializar "
+"quando a primeira solicitação chegar em seu servlet (o inicializador "
+"estático no <literal>HibernateUtil</literal> é chamado) e para obter o "
+"resultado detalhado caso exceções aconteçam. "
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "Sumário"
+
+#. 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 ""
+"Este tutorial cobriu itens básicos de como escrever um aplicativo Hibernate "
+"autônomo simples e um aplicativo da web pequeno. A partir do Hibernate "
+"<ulink url=\"http://hibernate.org\">website</ulink> você poderá encontrar "
+"mais tutoriais disponÃveis."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/xml.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/xml.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/content/xml.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,346 @@
+# translation of xml.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# translation of Collection_Mapping.po to
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2006.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# , 2007.
+# Michael H. Smith <mhideo at redhat.com>, 2007.
+# Glaucia Cintra <gcintra at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: xml\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-03-19 14:09+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+msgstr "Mapeamento 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> O Mapeamento XML é um recurso experimental no Hibernate 3.0 e "
+"está sob constante desenvolvimento. </emphasis> "
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr "Trabalhando com dados em XML"
+
+#. 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 ""
+"O Hibernate permite que se trabalhe com dados persistentes em XML quase da "
+"mesma maneira como você trabalha com POJOs persistentes. Uma árvore XML "
+"analisada, pode ser considerada como apenas uma maneira de representar os "
+"dados relacionais como objetos, ao invés dos POJOs. "
+
+#. 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 ""
+"O Hibernate suporta a API dom4j para manipular árvores XML. Você pode "
+"escrever queries que retornem árvores dom4j do banco de dados e "
+"automaticamente sincronizar com o banco de dados qualquer modificação feita "
+"nessas árvores. Você pode até mesmo pegar um documento XML, analisá-lo "
+"usando o dom4j, e escrever as alterações no banco de dados usando quaisquer "
+"operações básicas do Hibernate: <literal>persist(), saveOrUpdate(),merge(), "
+"delete(), replicate()</literal> (a mesclagem ainda não é suportada)"
+
+#. 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 ""
+"Essa funcionalidade tem várias aplicações incluindo importação/exportação de "
+"dados, externalização de dados de entidade via JMS or SOAP e relatórios "
+"usando 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 ""
+"Um mapeamento simples pode ser usado para simultaneamente mapear "
+"propriedades da classe e nós de um documento XML para um banco de dados ou, "
+"se não houver classe para mapear, pode ser usado simplesmente para mapear o "
+"XML. "
+
+#. 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 "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr "Segue um exemplo de como mapear um POJO e um XML ao mesmo tempo:"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr "Especificando somente um mapeamento XML"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr "Segue um exemplo que não contém uma classe POJO:"
+
+#. 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 ""
+"Esse mapeamento permite que você acesse os dados como uma árvore dom4j ou um "
+"gráfico de pares de nome/valor de propriedade ou <literal>Map</literal>s do "
+"Java. Os nomes de propriedades são somente construções lógicas que podem ser "
+"referenciadas em consultas HQL. "
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr "Mapeando metadados com XML"
+
+#. 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 ""
+"Muitos elementos do mapeamento do Hibernate aceitam a função <literal>node</"
+"literal>. Através dele, você pode especificar o nome de uma função ou "
+"elemento XML que contenha a propriedade ou os dados da entidade. O formato "
+"da função <literal>node</literal> deve ser o seguinte: "
+
+#. 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"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
+msgstr ""
+"<literal>\"@attribute-name\"</literal>: mapeia para a função XML com "
+"determinado nome"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr "<literal>\".\"</literal>: mapeia para o elemento pai"
+
+#. 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>: mapeia para a função "
+"nomeada com o elemento nomeado"
+
+#. 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 ""
+"Para coleções e associações de valores simples, existe uma função adicional "
+"<literal>embed-xml</literal>. Se a função <literal>embed-xml=\"true\"</"
+"literal>, que é o valor padrão, a árvore XML para a entidade associada (ou "
+"coleção de determinado tipo de valor) será embutida diretamente na árvore "
+"XML que contém a associação. Por outro lado, se <literal>embed-xml=\"false"
+"\"</literal>, então apenas o valor do identificador referenciado irá "
+"aparecer no XML para associações simples e as coleções simplesmente não irão "
+"aparecer. "
+
+#. 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 ""
+"Você precisa tomar cuidado para não deixar o <literal>embed-xml=\"true\"</"
+"literal> para muitas associações, pois o XML não suporta bem referências "
+"circulares. "
+
+#. 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 ""
+"Nesse caso, decidimos incorporar a coleção de ids de contas, e não os dados "
+"de contas. Segue a abaixo a consulta HQL:"
+
+#. Tag: para
+#, no-c-format
+msgid "would return datasets such as this:"
+msgstr "Retornaria um conjunto de dados como esse: "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-"
+"many></literal> mapping, the data might look more like this:"
+msgstr ""
+"Se você ajustar <literal>embed-xml=\"true\"</literal> em um mapeamento "
+"<literal><one-to-many></literal>, os dados se pareceriam com o "
+"seguinte:"
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr "Manipulando dados em XML"
+
+#. 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 ""
+"Vamos reler e atualizar documentos em XML em nossa aplicação. Nós fazemos "
+"isso obtendo uma sessão do 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 ""
+"à 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."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Conventions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Conventions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Conventions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,216 @@
+# translation of Conventions.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Conventions\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-19 15:21+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr "Convenções de Documento"
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr "Este manual usa diversas cenvenções para destacar certas palavras e frases dando atenção a pedaços especÃficos de informação."
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr "Nas edições em papel e em PDF, este manual usa faces de tipo retiradas do conjunto <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink>. O conjunto Liberation Fonts é tasmbém usado nas edições caso o conjunto seja instalado no seu sistema. Caso contrário, prefácios alternativos porém equivalentes serão exibidos. Nota: O Red Hat Enterprise Linux 5 e versões mais avançadas incluem o conjunto Liberation Fonts por padrão."
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr "Convenções de Tipografia"
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr "Quatro convenções de tipografia são usadas para chamar a atenção à s frases e palavras especÃficas. Estas convenções, e circunstâncias aplicadas pelas mesmas, são as seguintes:"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr "<literal>Mono-spaced Bold</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr "Usada para destacar a entrada do sistema, incluindo comandos da janela de comandos, nomes de arquivos e caminhos. Além disso, usada para destacar teclas e combinações de teclas. Por exemplo: "
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr "Para visualizar os conteúdos do <filename>my_next_bestselling_novel</filename> de arquivo no seu diretório atual, entre o comando <command>cat my_next_bestselling_novel</command> na janela de comandos e pressione <keycap>Enter</keycap> para executar o comando."
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr "Segue acima um nome de arquivo, uma janela de comando e uma tecla, todos representados em negrito num espaço único, todos distinguÃveis graças ao contexto."
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr "As combinações de teclas podem se diferenciar das teclas por um hÃfen conectando cada parte de uma combinação de tecla. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr "Pressione <keycap>Enter</keycap> para executar o comando."
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr "Pressione <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> para mudar para o primeiro terminal virtual. Pressione <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> para retornar à sua sessão X-Windows."
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr "O primeiro parágrafo destaca uma tecla particular a se pressionar. O segundo destaca duas combinações de tecla (cada conjunto de três teclas com cada conjunto sendo pressionado simultâneamente)."
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr "Se o código de fonte for discutido, os nomes de classe, metodos, funções, nomes de variáveis e valores retornados mencionados com um parágrafo serão representados conforme acima, num <literal>mono-spaced bold</literal>. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr "As classes de arquivo relacionado incluem <classname>filesystem</classname> para sistemas de arquivo, <classname>file</classname> para arquivos e <classname>dir</classname> para diretórios. Cada classe possui o próprio conjunto de associação de permissões."
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr "<application>Proportional Bold</application>"
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr "As frases e palavras marcadas encontradas num sistema, incluindo nomes de aplicativos, texto de caixa de diálogo, botões etiquetados, caixa de checagem e etiquetas de botão de rádio; tÃtulos de menu e tÃtulos de sub-menu. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr "Escolha <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> a partir do menu principal para lançar <application>Mouse Preferences</application>. Na aba <guilabel>Buttons</guilabel>, clique na caixa de checagem <guilabel>Left-handed mouse</guilabel> e clique <guibutton>Close</guibutton> para mudar para o botão de mouse primário da esquerda para a direita (fazendo com que o mouse seja apropriado para uso na mão esquerda)."
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr "Para inserir um caractere especial a um arquivo <application>gedit</application>, escolha <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> a partir da barra do menu principal. Depois, escolha <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> a partir da barra do menu <application>Character Map</application>, digite o nome do caractere no campo <guilabel>Search</guilabel>e clique <guibutton>Next</guibutton>. O carctere que você avistar estará destacado no <guilabel>Character Table</guilabel>. Dê dois cliques no caractere em destaque para posicioná-lo no campo <guilabel>Text to copy</guilabel> e, então, clique no botão <guibutton>Copy</guibutton>. Agora retorne para o seu documento e escolha o <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> a partir da barra do menu <application>gedit</application>."
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr "O texto acima inclue nomes de aplicativos, nomes do menu de sistema amplo e Ãtens, nomes do menu especÃfico do aplicativo, botões e textos encontrados com uma interface GUI, sendo que todos apresentados em negrito proporcional e todos distingüÃveis por contexto."
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> ou <application><replaceable>Proportional Bold Italic</replaceable></application>"
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr "Se é que um negrito de espaço único ou negrito proporcional, a adição de itálico indica texto variável ou de substituição. O Itálico marca o texto em que você não inseriu literalmente ou texto exibido das quais as alterações dependem das circunstâncias. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr "Para conectar uma máquina remota usando ssh, digite <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> na janela de comandos. Caso a máquina remota for <filename>example.com</filename> e se o seu nome do usuário na máquina for john, digite <command>ssh john at example.com</command>."
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr "O comando <command>mount -o remount <replaceable>file-system</replaceable></command> remonta o sistema do arquivo nomeado. Por exemplo, para remontar o sistema de arquivo, o comando é <command>mount -o remount /home</command>."
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr "Para verificar a versão de um pacote instalado, use o comando <command>rpm -q <replaceable>package</replaceable></command>. Isto retornará a um resultado como o seguinte: <command><replaceable>package-version-release</replaceable></command>."
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr "Perceba que estas palavras italicas em negrito acima — nome do usuário, domain.name, sistema-arquivo, versão e liberação. Cada palavra é uma marcação, tanto para o texto que você entrar enquanto emitindo um comando ou para o texto exibido pelo sistema."
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr "Além do uso padrão para apresentação do tÃtulo de um trabalho, o itálico marca o primeiro uso de um novo e importante termo. Por exemplo:"
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr "Publican é um sistema de publicação <firstterm>DocBook</firstterm>."
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr "Convenções Pull-quote"
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr "As listagens de código e saÃda de terminal são configuradas fora da visão do texto ao redor."
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr "O envio de saÃda ao terminal é configurado no <computeroutput>mono-spaced roman</computeroutput> e apresentado conforme:"
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr "As listagens de código de fonte são também configuradas em <computeroutput>mono-spaced roman</computeroutput>, porém adicionam destaque de sintáxe conforme:"
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr "Notas e Avisos "
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr "Finalmente, nós usamos três estilos visuais para chamar atenção à informação que poderia ser de outra forma negligenciada."
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "Nota"
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr "As notas são dicas, atalhos ou abordagens alternativas à tarefa em mãos. Não há problema algum em ignorar uma nota, porém você poderá peder a chance de aprender uma forma mais fácil."
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr "Importante"
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr "As caixas importante detalham coisas que são facilmentye esquecidas: alterações de configuração que apenas aplica a sessão atual ou serviços que precisam ser reiniciados antes que uma atualização seja aplicada. Você não perderá dado algum ignorando uma caixa chamada 'Importante', mas poderá se irritar ou frustar."
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr "Aviso"
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr "Os avisos não devem ser ignorados. Você provavelmente perderá dados, caso um aviso seja ignorado."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,26 @@
+# translation of Feedback.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Feedback\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-03-19 15:22+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr "Nós queremos ouvir sua opinião!"
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr "Você poderá descrevê-la, criando o seu próprio arquivo Feedback.xml local."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/fallback_content/Legal_Notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,21 @@
+# translation of Legal_Notice.po to
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Legal_Notice\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-19 15:45+1000\n"
+"Last-Translator: \n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr ".Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/legal_notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/legal_notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/pt-BR/legal_notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,79 @@
+# translation of legal_notice.po to
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-19 15:44+1000\n"
+"Last-Translator: \n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: legal_notice\n"
+"Language-Team: <en at li.org>\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"MIME-Version: 1.0\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr "Legal Notice"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
+"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
+"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
+"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
+"Triangle Park</city>, <state>NC</state><postcode>27709</"
+"postcode><country>USA</country> </address>"
+msgstr ""
+"<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, "
+"<state>NC</state><postcode>27606-2072</postcode><country>USA</country> "
+"<phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> "
+"<fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research "
+"Triangle Park</city>, <state>NC</state><postcode>27709</"
+"postcode><country>USA</country> </address>"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+msgstr ""
+"Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. "
+"This copyrighted material is made available to anyone wishing to use, "
+"modify, copy, or redistribute it subject to the terms and conditions of the "
+"GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General "
+"Public License</ulink>, as published by the Free Software Foundation."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+msgstr ""
+"Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red "
+"Hat, Inc. in the United States and other countries."
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+msgstr ""
+"All other trademarks referenced herein are the property of their respective "
+"owners."
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr "The GPG fingerprint of the security at redhat.com key is:"
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+
Copied: core/branches/gradle2/hibernate-release/src/main/docbook/publican.cfg (from rev 19677, core/branches/gradle2/documentation/manual/src/main/docbook/publican.cfg)
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/publican.cfg (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/publican.cfg 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,6 @@
+# Config::Simple 4.59
+# Wed Dec 9 09:53:51 2009
+
+debug: 1
+xml_lang: en-US
+brand: jboss-community-hibernate
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Book_Info.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Book_Info.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Book_Info.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,29 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-03-15 08:44+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr "HIBERNATE - Relational Persistence for Idiomatic Java"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Hibernate Reference Documentation"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&version;"
+msgstr "&version;"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/HIBERNATE_-_Relational_Persistence_for_Idiomatic_Java.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,23 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+#~ msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+#~ msgstr "HIBERNATE - 符åJavaä¹ æ¯çå
³ç³»æ°æ®åºæä¹
å"
+
+#~ msgid "Hibernate Reference Documentation"
+#~ msgstr "Hibernateåèææ¡£"
+
+#~ msgid "©rightHolder;"
+#~ msgstr "©rightHolder;"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Hibernate_Reference.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Hibernate_Reference.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/Hibernate_Reference.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,30 @@
+# SOME DESCRIPTIVE TITLE.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:14\n"
+"PO-Revision-Date: 2010-03-15 08:45+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: LANGUAGE <kde-i18n-doc at kde.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HIBERNATE - Relational Persistence for Idiomatic Java"
+msgstr "HIBERNATE - Relational Persistence for Idiomatic Java"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Hibernate Reference Documentation"
+msgstr "Hibernate Reference Documentation"
+
+#. Tag: releaseinfo
+#, no-c-format
+msgid "&versionNumber;"
+msgstr "&versionNumber;"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/author_group.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/author_group.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/author_group.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,150 @@
+# Language zh-CN translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-03-15 08:43+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr "Gavin"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr "Christian"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Max"
+msgstr "Max"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Emmanuel"
+msgstr "Emmanuel"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Steve"
+msgstr "Steve"
+
+#. Tag: firstname
+#, no-c-format
+msgid "James"
+msgstr "James"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cheyenne"
+msgstr "Cheyenne"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Vincent"
+msgstr "Vincent"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Sebastien"
+msgstr "Sebastien"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Michael"
+msgstr "Michael"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Baptiste"
+msgstr "Baptiste"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anthony"
+msgstr "Anthony"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Alvaro"
+msgstr "Alvaro"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Anderson"
+msgstr "Anderson"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Daniel Vieira"
+msgstr "Daniel Vieira"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Francisco"
+msgstr "Francisco"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gamarra"
+msgstr "Gamarra"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Luiz Carlos"
+msgstr "Luiz Carlos"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Marcel"
+msgstr "Marcel"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Paulo"
+msgstr "Paulo"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Pablo L."
+msgstr "Pablo L."
+
+#. Tag: firstname
+#, no-c-format
+msgid "Renato"
+msgstr "Renato"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Rogério"
+msgstr "Rogério"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Wanderson"
+msgstr "Wanderson"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Cao"
+msgstr "Cao"
+
+#. Tag: orgname
+#, no-c-format
+msgid "RedSaga"
+msgstr "RedSaga"
+
+#. Tag: contrib
+#, no-c-format
+msgid "Translation Lead"
+msgstr "Translation Lead"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/architecture.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/architecture.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/architecture.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,276 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:45\n"
+"PO-Revision-Date: 2010-03-15 08:47+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Architecture"
+msgstr "ä½ç³»ç»æï¼Architectureï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Overview"
+msgstr "æ¦åµï¼Overviewï¼"
+
+#. Tag: para
+#, no-c-format
+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 é常çµæ´»ï¼ä¸æ¯æå¤ç§åºç¨æ¹æ¡ï¼ æ以æ们è¿åªæè¿°ä¸ä¸ä¸¤ç§æ端çæ
åµï¼âæå°âåâå
¨é¢è§£å³âçä½ç³»ç»ææ¹æ¡ã"
+
+#. 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 å¦ä½ä½¿ç¨æ°æ®åºåé
置信æ¯æ¥ä¸ºåºç¨ç¨åºæä¾æä¹
åæå¡ï¼ä»¥åæä¹
ç对象ï¼ã"
+
+#. 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 çæå°åéï¼"
+
+#. 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 æ¥å¤çè¿äºç»èã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some definitions of the objects depicted in the diagrams:"
+msgstr "å¾ä¸å个对象çå®ä¹å¦ä¸ï¼ "
+
+#. Tag: term
+#, no-c-format
+msgid "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+msgstr "SessionFactory (<literal>org.hibernate.SessionFactory</literal>)"
+
+#. 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> å¯ä»¥å¨è¿ç¨æé群ç级å«ä¸ï¼ä¸ºé£äºäºå¡ä¹é´å¯ä»¥éç¨çæ°æ®æä¾å¯éçäºçº§ç¼åã"
+
+#. Tag: term
+#, no-c-format
+msgid "Session (<literal>org.hibernate.Session</literal>)"
+msgstr "Session (<literal>org.hibernate.Session</literal>)"
+
+#. 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> çå·¥åãå®ä¼ææä¸ä¸ªé对æä¹
å对象çå¿
éï¼ç¬¬ä¸çº§ï¼ç¼åï¼å¨éå对象å¾æè
æ ¹æ®æä¹
åæ è¯æ¥æ¾å¯¹è±¡æ¶ä¼ç¨å°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Persistent objects and collections"
+msgstr "æä¹
ç对象åå
¶éå"
+
+#. 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> 被å
³éï¼è¿äºå¯¹è±¡å°±ä¼è±ç¦»æä¹
åç¶æï¼è¿æ ·å°±å¯è¢«åºç¨ç¨åºçä»»ä½å±èªç±ä½¿ç¨ï¼ä¾å¦ï¼ç¨ä½è·è¡¨ç¤ºå±æ交éçæ°æ®ä¼ è¾å¯¹è±¡ï¼ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Transient and detached objects and collections"
+msgstr "ç¬æï¼transientï¼åè±ç®¡ï¼detachedï¼ç对象åå
¶éå"
+
+#. 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> å·²ç»è¢«å
³éèè±ç¦»æä¹
åç对象ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Transaction (<literal>org.hibernate.Transaction</literal>)"
+msgstr "äºå¡ Transaction (<literal>org.hibernate.Transaction</literal>)"
+
+#. 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> 对象ï¼äºå¡è¾¹ççå¼å¯ä¸å
³éæ¯å¿
éçã "
+
+#. Tag: term
+#, no-c-format
+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> é离å¼ãä»
ä¾å¼åè
æ©å±/å®ç°ç¨ï¼å¹¶ä¸å¼æ¾ç»åºç¨ç¨åºä½¿ç¨ã"
+
+#. Tag: term
+#, no-c-format
+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> 对象å®ä¾çå·¥åãä»
ä¾å¼åè
æ©å±/å®ç°ç¨ï¼å¹¶ä¸å¼åè½å¤ç»åºç¨ç¨åºä½¿ç¨ã"
+
+#. Tag: term
+#, 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 ææ¡£ã"
+
+#. 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 æ交éã"
+
+#. Tag: title
+#, no-c-format
+msgid "Instance states"
+msgstr "å®ä¾ç¶æ"
+
+#. 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> 对象就æ¯è¿ä¸ªæè°çæä¹
åä¸ä¸æãè¿ä¸ç§ä¸åçç¶æå¦ä¸ï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "transient"
+msgstr "ç¬æï¼transientï¼"
+
+#. 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 "该å®ä¾ä»æªä¸ä»»ä½æä¹
åä¸ä¸æå
³èè¿ãå®æ²¡ææä¹
åæ è¯ï¼ç¸å½äºä¸»é®å¼ï¼ã "
+
+#. Tag: term
+#, no-c-format
+msgid "persistent"
+msgstr "æä¹
åï¼persistentï¼"
+
+#. 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 æ è¯ï¼å
¶å¼ä»£è¡¨å¯¹è±¡å¨å
åä¸çä½ç½®ï¼çä»·ãã"
+
+#. Tag: term
+#, no-c-format
+msgid "detached"
+msgstr "è±ç®¡ï¼detachedï¼"
+
+#. 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 æ è¯çå
³ç³»ã "
+
+#. Tag: title
+#, no-c-format
+msgid "JMX Integration"
+msgstr "JMX æ´å"
+
+#. 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>ã "
+
+#. 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 ä¹æä¾å¦ä¸å¥½å¤ï¼"
+
+#. 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>ã"
+
+#. 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 æ件ä¸ææçæ å°æ件ã"
+
+#. Tag: para
+#, no-c-format
+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\"/>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "JCA Support"
+msgstr "对 JCA çæ¯æ"
+
+#. 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 çæ¯æï¼ä»å¤äºå®éªæ§é¶æ®µã"
+
+#. Tag: title
+#, no-c-format
+msgid "Contextual sessions"
+msgstr "ä¸ä¸æç¸å
³çä¼è¯ï¼Contextual Sessionï¼"
+
+#. 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ï¼çä¸ä¸æç¸å
³çä¼è¯ã"
+
+#. 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> çä¸ä¸æç¸å
³çä¼è¯å¯ä»¥æ»¡è¶³ä½ ä¸åéè¦ã"
+
+#. 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ï¼çå®ä¹è¿è¡ææã"
+
+#. 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 å
ç½®äºæ¤æ¥å£çä¸ç§å®ç°ï¼"
+
+#. 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ã"
+
+#. 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ã"
+
+#. 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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The first two implementations provide a \"one session - one database transaction\" programming model. This is 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\"ã "
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/association_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/association_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/association_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1110 @@
+# translation of association_mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: association_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Association Mappings"
+msgstr "å
³èå
³ç³»æ å°"
+
+#. Tag: title
+#, no-c-format
+msgid "Introduction"
+msgstr "ä»ç»"
+
+#. Tag: para
+#, 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 ""
+"å
³èå
³ç³»æ å°é常æ
åµæ¯æé¾é
ç½®æ£ç¡®çãå¨è¿ä¸ªé¨åä¸ï¼æ们ä»ååå
³ç³»æ å°å¼å§ï¼"
+"ç¶åèèååå
³ç³»æ å°ï¼éæ¥è®²è§£å
¸åçæ¡ä¾ãå¨ææçä¾åä¸ï¼æ们é½ä½¿å°ç¨ "
+"<literal>Person</literal> å <literal>Address</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Associations will be classified by multiplicity and whether or not they map "
+"to an intervening join table."
+msgstr ""
+"æä»¬æ ¹æ®æ å°å
³ç³»æ¯å¦æ¶åè¿æ¥è¡¨ä»¥åå¤æ ·æ§ï¼multiplicityï¼æ¥ååå
³èç±»åã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Nullable foreign keys are not considered to be good practice in traditional "
+"data modelling, so our examples do not use nullable foreign keys. This is "
+"not a requirement of Hibernate, and the mappings will work if you drop the "
+"nullability constraints."
+msgstr ""
+"å¨ä¼ ç»çæ°æ®å»ºæ¨¡ä¸ï¼å
许为 Null å¼çå¤é®è¢«è®¤ä¸ºæ¯ä¸ç§ä¸å¥½çå®è·µï¼å æ¤æ们ææ"
+"çä¾åä¸é½ä½¿ç¨ä¸å
许为 Null çå¤é®ãè¿å¹¶ä¸æ¯ Hibernateç è¦æ±ï¼å³ä½¿ä½ å é¤æä¸"
+"å
许为 Null ç约æï¼Hibernate æ å°ä¸æ ·å¯ä»¥å·¥ä½çå¾å¥½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr "ååå
³èï¼Unidirectional associationsï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "å¤å¯¹ä¸ï¼many-to-oneï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association</emphasis> is the most "
+"common kind of unidirectional association."
+msgstr "<emphasis>åå many-to-one å
³è</emphasis>æ¯æ常è§çååå
³èå
³ç³»ã"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "ä¸å¯¹ä¸ï¼One-to-oneï¼"
+
+#. Tag: para
+#, 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 ""
+"<emphasis>åºäºå¤é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>å<emphasis>ååå¤å¯¹ä¸å
³è</"
+"emphasis>å ä¹æ¯ä¸æ ·çãå¯ä¸çä¸åå°±æ¯ååä¸å¯¹ä¸å
³èä¸çå¤é®å段å
·æå¯ä¸æ§çº¦"
+"æã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a primary key</"
+"emphasis> usually uses a special id generator In this example, however, we "
+"have reversed the direction of the association:"
+msgstr ""
+"<emphasis>åºäºä¸»é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>é常使ç¨ä¸ä¸ªç¹å®ç id çæ"
+"å¨ï¼ç¶èå¨è¿ä¸ªä¾åä¸æ们ææ¢äºå
³èçæ¹åï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many"
+msgstr "ä¸å¯¹å¤ï¼one-to-manyï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-many association on a foreign key</"
+"emphasis> is an unusual case, and is not recommended."
+msgstr ""
+"<emphasis>åºäºå¤é®å
³èçååä¸å¯¹å¤å
³è</emphasis>æ¯ä¸ç§å¾å°è§çæ
åµï¼æ们ä¸æ¨"
+"è使ç¨å®ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You should instead use a join table for this kind of association."
+msgstr "æ们认为对äºè¿ç§å
³èå
³ç³»æ好使ç¨è¿æ¥è¡¨ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Unidirectional associations with join tables"
+msgstr "使ç¨è¿æ¥è¡¨çååå
³èï¼Unidirectional associations with join tablesï¼"
+
+#. Tag: para
+#, 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 ""
+"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹å¤å
³è</emphasis> åºè¯¥ä¼å
被éç¨ã请注æï¼éè¿"
+"æå®<literal>unique=\"true\"</literal>ï¼æ们å¯ä»¥æå¤æ ·æ§ä»å¤å¯¹å¤æ¹å为ä¸å¯¹"
+"å¤ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional many-to-one association on a join table</"
+"emphasis> is common when the association is optional. For example:"
+msgstr ""
+"<emphasis>åºäºè¿æ¥è¡¨çååå¤å¯¹ä¸å
³è</emphasis>å¨å
³èå
³ç³»å¯éçæ
åµä¸åºç¨ä¹å¾"
+"æ®éãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>unidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹ä¸å
³è</emphasis>ä¹æ¯å¯è¡çï¼ä½é常å°è§ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many"
+msgstr "å¤å¯¹å¤ï¼many-to-manyï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Finally, here is an example of a <emphasis>unidirectional many-to-many "
+"association</emphasis>."
+msgstr "æåï¼è¿éæ¯ä¸ä¸ª<emphasis>ååå¤å¯¹å¤å
³è</emphasis>çä¾åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "ååå
³èï¼Bidirectional associationsï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "one-to-many / many-to-one"
+msgstr "ä¸å¯¹å¤ï¼one to many)/å¤å¯¹ä¸ï¼many to oneï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional many-to-one association</emphasis> is the most "
+"common kind of association. The following example illustrates the standard "
+"parent/child relationship."
+msgstr ""
+"<emphasis>ååå¤å¯¹ä¸å
³è</emphasis> æ¯æ常è§çå
³èå
³ç³»ãä¸é¢çä¾å解éäºè¿ç§"
+"æ åçç¶/åå
³èå
³ç³»ã"
+
+#. Tag: para
+#, 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 ""
+"å¦æä½ ä½¿ç¨ <literal>List</literal>ï¼æè
å
¶ä»æåºéåç±»ï¼ï¼ä½ éè¦è®¾ç½®å¤é®å¯¹åº"
+"ç <literal>key</literal> å为 <literal>not null</literal>ãHibernate å°ä»é"
+"å端管çå
³èï¼ç»´æ¤æ¯ä¸ªå
ç´ çç´¢å¼ï¼å¹¶éè¿è®¾ç½® <literal>update=\"false\"</"
+"literal> å <literal>insert=\"false\"</literal> æ¥å¯¹å¦ä¸ç«¯ååæä½ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If the underlying foreign key column is <literal>NOT NULL</literal>, it is "
+"important that you define <literal>not-null=\"true\"</literal> on the "
+"<literal><key></literal> element of the collection mapping. Do not "
+"only declare <literal>not-null=\"true\"</literal> on a possible nested "
+"<literal><column></literal> element, but on the <literal><key></"
+"literal> element."
+msgstr ""
+"åè¥éåæ å°ç <literal><key></literal> å
ç´ å¯¹åºçåºå±å¤é®åæ®µæ¯ "
+"<literal>NOT NULL</literal> çï¼é£ä¹ä¸ºè¿ä¸ key å
ç´ å®ä¹ <literal>not-null="
+"\"true\"</literal> æ¯å¾éè¦çãä¸è¦ä»
ä»
为å¯è½çåµå¥ <literal><column></"
+"literal>å
ç´ å®ä¹ <literal>not-null=\"true\"</literal>ï¼<literal><key></"
+"literal> å
ç´ ä¹æ¯éè¦çã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a foreign key</emphasis> "
+"is common:"
+msgstr "<emphasis>åºäºå¤é®å
³èçååä¸å¯¹ä¸å
³è</emphasis>ä¹å¾å¸¸è§ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a primary key</emphasis> "
+"uses the special id generator:"
+msgstr ""
+"<emphasis>åºäºä¸»é®å
³èçä¸å¯¹ä¸å
³è</emphasis>éè¦ä½¿ç¨ç¹å®ç id çæå¨ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with join tables"
+msgstr "使ç¨è¿æ¥è¡¨çååå
³èï¼Bidirectional associations with join tablesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is an example of a <emphasis>bidirectional one-to-many "
+"association on a join table</emphasis>. The <literal>inverse=\"true\"</"
+"literal> can go on either end of the association, on the collection, or on "
+"the join."
+msgstr ""
+"ä¸é¢æ¯ä¸ä¸ª<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹å¤å
³è</emphasis>çä¾åã注æ "
+"<literal>inverse=\"true\"</literal> å¯ä»¥åºç°å¨å
³èçä»»æä¸ç«¯ï¼å³ collection "
+"端æè
join 端ã"
+
+#. Tag: title
+#, no-c-format
+msgid "one to one"
+msgstr "ä¸å¯¹ä¸ï¼one to oneï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <emphasis>bidirectional one-to-one association on a join table</emphasis> "
+"is possible, but extremely unusual."
+msgstr ""
+"<emphasis>åºäºè¿æ¥è¡¨çååä¸å¯¹ä¸å
³è</emphasis>ä¹æ¯å¯è¡çï¼ä½æ为ç½è§ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Here is an example of a <emphasis>bidirectional many-to-many association</"
+"emphasis>."
+msgstr "ä¸é¢æ¯ä¸ä¸ª<emphasis>ååå¤å¯¹å¤å
³è</emphasis>çä¾åã"
+
+#. Tag: title
+#, no-c-format
+msgid "More complex association mappings"
+msgstr "æ´å¤æçå
³èæ å°"
+
+#. Tag: para
+#, 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 ""
+"æ´å¤æçå
³èè¿æ¥<emphasis>æ为</emphasis>ç½è§ãéè¿å¨æ å°ææ¡£ä¸åµå
¥ SQL ç"
+"æï¼Hibernate ä¹å¯ä»¥å¤çæ´ä¸ºå¤æçæ
åµãæ¯å¦ï¼åè¥å
å«åå²å¸æ·æ°æ®ç表å®ä¹äº "
+"<literal>accountNumber</literal>ã<literal>effectiveEndDate</literal> å "
+"<literal>effectiveStartDate</literal> å段ï¼æç
§ä¸é¢æ å°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can then map an association to the <emphasis>current</emphasis> "
+"instance, the one with null <literal>effectiveEndDate</literal>, by using:"
+msgstr ""
+"é£ä¹æ们å¯ä»¥å¯¹<emphasis>ç®åï¼currentï¼</emphasis>å®ä¾ï¼å
¶ "
+"<literal>effectiveEndDate</literal> 为 nullï¼ä½¿ç¨è¿æ ·çå
³èæ å°ï¼ "
+
+#. Tag: para
+#, 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 ""
+"å¨æ´å¤æçä¾åä¸ï¼åæ³ <literal>Employee</literal> å <literal>Organization</"
+"literal> ä¹é´çå
³èæ¯éè¿ä¸ä¸ª <literal>Employment</literal> ä¸é´è¡¨ç»´æ¤çï¼è"
+"ä¸é´è¡¨ä¸å¡«å
äºå¾å¤åå²éåæ°æ®ãé£âéåç<emphasis>ææ°</emphasis>é主âè¿ä¸ªå
³"
+"èï¼ææ°é主就æ¯å
·æææ°ç <literal>startDate</literal> çé£ä¸ªï¼å¯ä»¥è¿æ ·æ "
+"å°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This functionality allows a degree of creativity and flexibility, but it is "
+"more practical to handle these kinds of cases using HQL or a criteria query."
+msgstr ""
+"使ç¨è¿ä¸åè½æ¶å¯ä»¥å
满åæåçµæ´»æ§ï¼ä½é常æ´å å®ç¨çæ¯ç¨ HQL ææ¡ä»¶æ¥è¯¢æ¥å¤ç"
+"è¿äºæ
åµã"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key, addressId "
+#~ "bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( personId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key, personId "
+#~ "bigint not null )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId not null, addressId bigint not null "
+#~ "primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null primary key, "
+#~ "addressId bigint not null unique )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null, primary key (personId, addressId) )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\"\n"
+#~ " not-null=\"true\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\"/>\n"
+#~ " ...\n"
+#~ " <list name=\"people\">\n"
+#~ " <key column=\"addressId\" not-null=\"true\"/>\n"
+#~ " <list-index column=\"peopleIdx\"/>\n"
+#~ " <one-to-many class=\"Person\"/>\n"
+#~ " </list>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <many-to-one name=\"address\" \n"
+#~ " column=\"addressId\" \n"
+#~ " unique=\"true\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " property-ref=\"address\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"address\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">person</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <one-to-one name=\"person\" \n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" \n"
+#~ " table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " unique=\"true\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " inverse=\"true\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "create table Person ( personId bigint not null primary key )\n"
+#~ "create table PersonAddress ( personId bigint not null, addressId bigint "
+#~ "not null primary key )\n"
+#~ "create table Address ( addressId bigint not null primary key )\n"
+#~ " ]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\">\n"
+#~ " <key column=\"personId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"address\"\n"
+#~ " column=\"addressId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <join table=\"PersonAddress\" \n"
+#~ " optional=\"true\"\n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"addressId\" \n"
+#~ " unique=\"true\"/>\n"
+#~ " <many-to-one name=\"person\"\n"
+#~ " column=\"personId\" \n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ " </join>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\" column=\"personId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"addresses\" table=\"PersonAddress\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <many-to-many column=\"addressId\"\n"
+#~ " class=\"Address\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ " <id name=\"id\" column=\"addressId\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"people\" inverse=\"true\" table=\"PersonAddress\">\n"
+#~ " <key column=\"addressId\"/>\n"
+#~ " <many-to-many column=\"personId\"\n"
+#~ " class=\"Person\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<properties name=\"currentAccountKey\">\n"
+#~ " <property name=\"accountNumber\" type=\"string\" not-null=\"true\"/>\n"
+#~ " <property name=\"currentAccount\" type=\"boolean\">\n"
+#~ " <formula>case when effectiveEndDate is null then 1 else 0 end</"
+#~ "formula>\n"
+#~ " </property>\n"
+#~ "</properties>\n"
+#~ "<property name=\"effectiveEndDate\" type=\"date\"/>\n"
+#~ "<property name=\"effectiveStateDate\" type=\"date\" not-null=\"true\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<many-to-one name=\"currentAccountInfo\" \n"
+#~ " property-ref=\"currentAccountKey\"\n"
+#~ " class=\"AccountInfo\">\n"
+#~ " <column name=\"accountNumber\"/>\n"
+#~ " <formula>'1'</formula>\n"
+#~ "</many-to-one>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<join>\n"
+#~ " <key column=\"employeeId\"/>\n"
+#~ " <subselect>\n"
+#~ " select employeeId, orgId \n"
+#~ " from Employments \n"
+#~ " group by orgId \n"
+#~ " having startDate = max(startDate)\n"
+#~ " </subselect>\n"
+#~ " <many-to-one name=\"mostRecentEmployer\" \n"
+#~ " class=\"Organization\" \n"
+#~ " column=\"orgId\"/>\n"
+#~ "</join>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/basic_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/basic_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/basic_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,3656 @@
+# translation of basic_mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: basic_mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 08:56+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Basic O/R Mapping"
+msgstr "对象/å
³ç³»æ°æ®åºæ å°åºç¡ï¼Basic O/R Mappingï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping declaration"
+msgstr "æ å°å®ä¹ï¼Mapping declarationï¼"
+
+#. 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 为ä¸å¿ï¼è¿æå³çæ å°ææ¡£æ¯æç
§æä¹
åç±»çå®ä¹æ¥å建çï¼èé表çå®ä¹ã "
+
+#. 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ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example mapping:"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ å°çä¾åï¼"
+
+#. 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> å±æ§ï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Doctype"
+msgstr "Doctype"
+
+#. 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 声æã"
+
+#. Tag: title
+#, no-c-format
+msgid "EntityResolver"
+msgstr "EntityResolver"
+
+#. 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 å½å空é´ï¼"
+
+#. 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 æ¥æ¥æ¾è¿äºå®ä½ã "
+
+#. 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 æ¥æ¥æ¾è¿äºå®ä½ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of utilizing user namespacing:"
+msgstr "ä¸é¢æ¯ä¸ä¸ªä½¿ç¨ç¨æ·å½å空é´ï¼user namespaceï¼çä¾åï¼"
+
+#. 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 <link linkend=\"mapping-types-custom\">typedef</link>."
+msgstr "è¿éç <literal>types.xml</literal> æ¯ <literal>your.domain</literal> å
ä¸çä¸ä¸ªèµæºï¼å®å
å«äºä¸ä¸ªèªå®ä¹ç <link linkend=\"mapping-types-custom\">typedef</link>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate-mapping"
+msgstr "Hibernate-mapping"
+
+#. 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> å±æ§é»è®¤è®©æ们å¨æ¥è¯¢è¯è¨ä¸å¯ä»¥ä½¿ç¨éå
¨éå®åçç±»åã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): the name of a database schema."
+msgstr "<literal>schema</literal>ï¼å¯éï¼ï¼æ°æ®åº schema çå称ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): the name of a database catalog."
+msgstr "<literal>catalog</literal>ï¼å¯éï¼ï¼æ°æ®åº catalog çå称ã "
+
+#. 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>ï¼ï¼é»è®¤ç级èé£æ ¼ã "
+
+#. 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> æ¥å£èªå®ä¹ã "
+
+#. 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 ä¼éåä»ä¹æ ·çé»è®¤å è½½é£æ ¼ã "
+
+#. 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>ï¼ï¼æå®æ们æ¯å¦å¯ä»¥å¨æ¥è¯¢è¯è¨ä¸ä½¿ç¨éå
¨éå®çç±»åï¼ä»
éäºæ¬æ å°æ件ä¸çç±»ï¼ã "
+
+#. 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>ï¼å¯éï¼ï¼æå®ä¸ä¸ªå
åç¼ï¼å¦æå¨æ å°ææ¡£ä¸æ²¡ææå®å
¨éå®çç±»åï¼å°±ä½¿ç¨è¿ä¸ªä½ä¸ºå
åã "
+
+#. 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 ä¼æåºä¸ä¸ªå¼å¸¸ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>hibernate-mapping</literal> element allows you to nest several persistent <literal><class></literal> mappings, as shown above. It is, however, good practice (and expected by some tools) to map only a single persistent class, or a single class hierarchy, in one mapping file and name it after the persistent superclass. For example, <literal>Cat.hbm.xml</literal>, <literal>Dog.hbm.xml</literal>, or if using inheritance, <literal>Animal.hbm.xml</literal>."
+msgstr "注æ <literal>hibernate-mapping</literal> å
ç´ å
è®¸ä½ åµå¥å¤ä¸ªå¦ä¸æ示ç <literal><class></literal> æ å°ãä½æ¯æ好çåæ³ï¼ä¹è®¸ä¸äºå·¥å
·éè¦çï¼æ¯ä¸ä¸ªæä¹
åç±»ï¼æä¸ä¸ªç±»ç继æ¿å±æ¬¡ï¼å¯¹åºä¸ä¸ªæ å°æ件ï¼å¹¶ä»¥æä¹
åçè¶
ç±»å称å½åï¼ä¾å¦ï¼<literal>Cat.hbm.xml</literal>ã<literal>Dog.hbm.xml</literal>ï¼æè
å¦æ使ç¨ç»§æ¿ï¼<literal>Animal.hbm.xml</literal>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Class"
+msgstr "ç±»"
+
+#. Tag: para
+#, no-c-format
+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 çå®ä½æ å°ã "
+
+#. 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>ï¼å¯é â é»è®¤æ¯ç±»çéå
¨éå®åï¼ï¼å¯¹åºçæ°æ®åºè¡¨åã "
+
+#. 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>ã "
+
+#. 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>ï¼ï¼è¡¨æ该类çå®ä¾æ¯å¯åçæè
ä¸å¯åçã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>schema</literal> (optional): overrides the schema name specified by the root <literal><hibernate-mapping></literal> element."
+msgstr "<literal>schema</literal>ï¼å¯éï¼ï¼è¦çå¨æ ¹ <literal><hibernate-mapping></literal> å
ç´ ä¸æå®ç schema ååã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>catalog</literal> (optional): overrides the catalog name specified by the root <literal><hibernate-mapping></literal> element."
+msgstr "<literal>catalog</literal>ï¼å¯éï¼ï¼è¦çå¨æ ¹ <literal><hibernate-mapping></literal> å
ç´ ä¸æå®ç catalog ååã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>proxy</literal> (optional): specifies an interface to use for lazy initializing proxies. You can specify the name of the class itself."
+msgstr "<literal>proxy</literal>ï¼å¯éï¼ï¼æå®ä¸ä¸ªæ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使ç¨ãä½ å¯ä»¥å¨è¿é使ç¨è¯¥ç±»èªå·±çååã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>dynamic-update</literal> (optional - defaults to <literal>false</literal>): specifies that <literal>UPDATE</literal> SQL should be generated at runtime and can contain only those columns whose values have changed."
+msgstr "<literal>dynamic-update</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå®ç¨äº <literal>UPDATE</literal> ç SQL å°ä¼å¨è¿è¡æ¶å¨æçæï¼å¹¶ä¸åªæ´æ°é£äºæ¹åè¿çå段ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>dynamic-insert</literal> (optional - defaults to <literal>false</literal>): specifies that <literal>INSERT</literal> SQL should be generated at runtime and contain only the columns whose values are not null."
+msgstr "<literal>dynamic-insert</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå®ç¨äº <literal>INSERT</literal> ç SQL å°ä¼å¨è¿è¡æ¶å¨æçæï¼å¹¶ä¸åªå
å«é£äºé空å¼å段ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>select-before-update</literal> (optional - defaults to <literal>false</literal>): specifies that Hibernate should <emphasis>never</emphasis> perform an SQL <literal>UPDATE</literal> unless it is certain that an object is actually modified. Only when a transient object has been associated with a new session using <literal>update()</literal>, will Hibernate perform an extra SQL <literal>SELECT</literal> to determine if an <literal>UPDATE</literal> is actually required."
+msgstr "<literal>select-before-update</literal>ï¼å¯éï¼é»è®¤ä¸º <literal>false</literal>ï¼ï¼æå® Hibernate é¤éç¡®å®å¯¹è±¡çæ£è¢«ä¿®æ¹äºï¼å¦æ该å¼ä¸º true â è¯æ³¨ï¼ï¼å¦å<emphasis>ä¸ä¼</emphasis>æ§è¡ SQL <literal>UPDATE</literal> æä½ãå¨ç¹å®åºåï¼å®é
ä¸ï¼å®åªå¨ä¸ä¸ªç¬æ¶å¯¹è±¡ï¼transient objectï¼å
³èå°ä¸ä¸ªæ°ç session ä¸æ¶æ§è¡ç update() ä¸çæï¼ï¼è¿è¯´æ Hibernate ä¼å¨ <literal>UPDATE</literal> ä¹åæ§è¡ä¸æ¬¡é¢å¤ç SQL <literal>SELECT</literal> æä½æ¥å³å®æ¯å¦ç¡®å®éè¦æ§è¡ <literal>UPDATE</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>polymorphism</literal> (optional - defaults to <literal>implicit</literal>): determines whether implicit or explicit query polymorphism is used."
+msgstr "<literal>polymorphismï¼å¤æï¼</literal>ï¼å¯éï¼é»è®¤å¼ä¸º <literal>implicit ï¼éå¼ï¼</literal>ï¼ï¼çå®æ¯éå¼è¿æ¯æ¾å¼ç使ç¨å¤ææ¥è¯¢ï¼è¿åªå¨ Hibernate çå
·ä½è¡¨ç»§æ¿çç¥ä¸ç¨å° â è¯æ³¨ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>where</literal> (optional): specifies an arbitrary SQL <literal>WHERE</literal> condition to be used when retrieving objects of this class."
+msgstr "<literal>where</literal>ï¼å¯éï¼æå®ä¸ä¸ªéå ç SQL <literal>WHERE</literal> æ¡ä»¶ï¼å¨æåè¿ä¸ªç±»ç对象æ¶ä¼ä¸ç´å¢å è¿ä¸ªæ¡ä»¶ã "
+
+#. Tag: para
+#, no-c-format
+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\"ï¼æ¹æ¬¡æåæ°éï¼ã "
+
+#. 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>ï¼ï¼å³å®ä¹è§éå®ççç¥ã "
+
+#. 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ï¼ã"
+
+#. 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\"/>ã "
+
+#. 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>ã "
+
+#. 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ï¼çç©çä½ç½®ã "
+
+#. 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ï¼å¹¶ä¸åªè¯»çå®ä½æ å°å°ä¸ä¸ªæ°æ®åºçåæ¥è¯¢ä¸ãå½ä½ æ³ç¨è§å¾ä»£æ¿ä¸å¼ åºæ¬è¡¨çæ¶åï¼è¿æ¯æç¨çï¼ä½æ好ä¸è¦è¿æ ·åãæ´å¤çä»ç»è¯·çä¸é¢å
容ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>abstract</literal> (optional): is used to mark abstract superclasses in <literal><union-subclass></literal> hierarchies."
+msgstr "<literal>abstract</literal>ï¼å¯éï¼ï¼ç¨äºå¨ <literal><union-subclass></literal> çå±æ¬¡ç»æï¼hierarchiesï¼ä¸æ è¯æ½è±¡è¶
ç±»ã"
+
+#. Tag: para
+#, no-c-format
+msgid "It is acceptable for the named persistent class to be an interface. You can declare implementing classes of that interface using the <literal><subclass></literal> element. You can persist any <emphasis>static</emphasis> inner class. Specify the class name using the standard form i.e. <literal>e.g.Foo$Bar</literal>."
+msgstr "è¥ææçæä¹
åç±»å®é
ä¸æ¯ä¸ä¸ªæ¥å£ï¼è¿ä¹æ¯å®å
¨å¯ä»¥æ¥åçãä¹åä½ å¯ä»¥ç¨å
ç´ <literal><subclass></literal> æ¥æå®è¯¥æ¥å£çå®é
å®ç°ç±»ãä½ å¯ä»¥æä¹
åä»»ä½ <emphasis>static</emphasis>ï¼éæçï¼å
é¨ç±»ãä½ åºè¯¥ä½¿ç¨æ åçç±»åæ ¼å¼æ¥æå®ç±»åï¼æ¯å¦ï¼<literal>Foo$Bar</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Immutable classes, <literal>mutable=\"false\"</literal>, cannot be updated or deleted by the application. This allows Hibernate to make some minor performance optimizations."
+msgstr "ä¸å¯åç±»ï¼<literal>mutable=\"false\"</literal> ä¸å¯ä»¥è¢«åºç¨ç¨åºæ´æ°æè
å é¤ãè¿å
许 Hibernate å®ç°ä¸äºå°å°çæ§è½ä¼åã"
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal>proxy</literal> attribute enables lazy initialization of persistent instances of the class. Hibernate will initially return CGLIB proxies that implement the named interface. The persistent object will load when a method of the proxy is invoked. See \"Initializing collections and proxies\" below."
+msgstr "å¯éç <literal>proxy</literal> å±æ§å
许延è¿å 载类çæä¹
åå®ä¾ãHibernate å¼å§ä¼è¿åå®ç°äºè¿ä¸ªå½åæ¥å£ç CGLIB 代çãå½ä»£ççæ个æ¹æ³è¢«å®é
è°ç¨çæ¶åï¼çå®çæä¹
å对象æä¼è¢«è£
è½½ãåè§ä¸é¢çâç¨äºå»¶è¿è£
è½½ç代çâã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Implicit</emphasis> polymorphism means that instances of the class will be returned by a query that names any superclass or implemented interface or class, and that instances of any subclass of the class will be returned by a query that names the class itself. <emphasis>Explicit</emphasis> polymorphism means that class instances will be returned only by queries that explicitly name that class. Queries that name the class will return only instances of subclasses mapped inside this <literal><class></literal> declaration as a <literal><subclass></literal> or <literal><joined-subclass></literal>. For most purposes, the default <literal>polymorphism=\"implicit\"</literal> is appropriate. Explicit polymorphism is useful when two different classes are mapped to the same table This allows a \"lightweight\" class that contains a subset of the table columns."
+msgstr "<emphasis>Implicit</emphasis>ï¼éå¼ï¼çå¤ææ¯æï¼å¦ææ¥è¯¢æ¶ç»åºçæ¯ä»»ä½è¶
ç±»ã该类å®ç°çæ¥å£æè
该类çååï¼é½ä¼è¿åè¿ä¸ªç±»çå®ä¾ï¼å¦ææ¥è¯¢ä¸ç»åºçæ¯åç±»çååï¼åä¼è¿ååç±»çå®ä¾ã<emphasis>Explicit</emphasis>ï¼æ¾å¼ï¼çå¤ææ¯æï¼åªæå¨æ¥è¯¢æ¶ç»åºæç¡®ç该类ååæ¶æä¼è¿åè¿ä¸ªç±»çå®ä¾ï¼ åæ¶åªæå¨è¿ä¸ª <literal><class></literal> çå®ä¹ä¸ä½ä¸º <literal><subclass></literal> æè
<literal><joined-subclass></literal> åºç°çåç±»ï¼æä¼å¯è½è¿åãå¨å¤§å¤æ°æ
åµä¸ï¼é»è®¤ç <literal>polymorphism=\"implicit\"</literal> é½æ¯åéçãæ¾å¼çå¤æå¨æ两个ä¸åçç±»æ å°å°åä¸ä¸ªè¡¨çæ¶åå¾æç¨ãï¼å
许ä¸ä¸ªâè½»é级âçç±»ï¼åªå
å«é¨å表å段ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>persister</literal> attribute lets you customize the persistence strategy used for the class. You can, for example, specify your own subclass of <literal>org.hibernate.persister.EntityPersister</literal>, or you can even provide a completely new implementation of the interface <literal>org.hibernate.persister.ClassPersister</literal> that implements, for example, persistence via stored procedure calls, serialization to flat files or LDAP. See <literal>org.hibernate.test.CustomPersister</literal> for a simple example of \"persistence\" to a <literal>Hashtable</literal>."
+msgstr "<literal>persister</literal> å±æ§å¯ä»¥è®©ä½ å®å¶è¿ä¸ªç±»ä½¿ç¨çæä¹
åçç¥ãä½ å¯ä»¥æå®ä½ èªå·±å®ç° <literal>org.hibernate.persister.EntityPersister</literal> çåç±»ï¼ä½ çè³å¯ä»¥å®å
¨ä»å¤´å¼å§ç¼åä¸ä¸ª <literal>org.hibernate.persister.ClassPersister</literal> æ¥å£çå®ç°ï¼æ¯å¦æ¯ç¨å¨åè¿ç¨è°ç¨ãåºååå°æ件æè
LDAP æ°æ®åºæ¥å®ç°ãåé
<literal>org.hibernate.test.CustomPersister</literal>ï¼è¿æ¯æä¹
åå° <literal>Hashtable</literal> çä¸ä¸ªç®åä¾åã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>dynamic-update</literal> and <literal>dynamic-insert</literal> settings are not inherited by subclasses, so they can also be specified on the <literal><subclass></literal> or <literal><joined-subclass></literal> elements. Although these settings can increase performance in some cases, they can actually decrease performance in others."
+msgstr "请注æ <literal>dynamic-update</literal> å <literal>dynamic-insert</literal> ç设置并ä¸ä¼ç»§æ¿å°åç±»ï¼æä»¥å¨ <literal><subclass></literal> æè
<literal><joined-subclass></literal> å
ç´ ä¸å¯è½éè¦å次设置ãè¿äºè®¾ç½®å¨æäºæ
åµä¸è½å¤æé«æçï¼èå
¶ä»æ
åµä¸ååèå¯è½éä½æ§è½ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Use of <literal>select-before-update</literal> will usually decrease performance. It is useful to prevent a database update trigger being called unnecessarily if you reattach a graph of detached instances to a <literal>Session</literal>."
+msgstr "ä½¿ç¨ <literal>select-before-update</literal> é常ä¼éä½æ§è½ãå¦æä½ éæ°è¿æ¥ä¸ä¸ªè±ç®¡ï¼detachedï¼å¯¹è±¡å®ä¾ å°ä¸ä¸ª <literal>Session</literal> ä¸æ¶ï¼å®å¯ä»¥é²æ¢æ°æ®åºä¸å¿
è¦ç触å updateãè¿å°±å¾æç¨äºã"
+
+#. Tag: para
+#, 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>ï¼ä½ å¯ä»¥éæ©å ç§ä¹è§éå®ççç¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>version</literal>: check the version/timestamp columns"
+msgstr "<literal>versionï¼çæ¬æ£æ¥ï¼</literal>ï¼æ£æ¥ version/timestamp å段"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>all</literal>: check all columns"
+msgstr "<literal>allï¼å
¨é¨ï¼</literal>ï¼æ£æ¥å
¨é¨å段"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>dirty</literal>: check the changed columns, allowing some concurrent updates"
+msgstr "<literal>dirtyï¼èæ£æ¥ï¼</literal>ï¼åªæ£å¯ä¿®æ¹è¿çå段ï¼å
许æäºå¹¶è¡æ´æ°"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>none</literal>: do not use optimistic locking"
+msgstr "<literal>noneï¼ä¸æ£æ¥ï¼</literal>ï¼ä¸ä½¿ç¨ä¹è§éå®"
+
+#. 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> çæ¶åï¼ã"
+
+#. 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 åæ¥è¯¢è¡¨è¾¾å¼ï¼ "
+
+#. 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><subselect></literal> is available both as an attribute and a nested mapping element."
+msgstr "å®ä¹è¿ä¸ªå®ä½ç¨å°ç表为åæ¥ï¼synchronizeï¼ï¼ç¡®ä¿èªå¨å·æ°ï¼auto-flushï¼æ£ç¡®æ§è¡ï¼å¹¶ä¸ä¾èµåå®ä½çæ¥è¯¢ä¸ä¼è¿åè¿ææ°æ®ãå¨å±æ§å
ç´ ååµå¥æ å°å
ç´ ä¸é½å¯ä½¿ç¨ <literal><subselect></literal>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "id"
+msgstr "id"
+
+#. 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><id></literal> element defines the mapping from that property to the primary key column."
+msgstr "被æ å°çç±»<emphasis>å¿
é¡»</emphasis>å®ä¹å¯¹åºæ°æ®åºè¡¨ä¸»é®å段ã大å¤æ°ç±»æä¸ä¸ª JavaBeans é£æ ¼çå±æ§ï¼ 为æ¯ä¸ä¸ªå®ä¾å
å«å¯ä¸çæ è¯ã<literal><id></literal> å
ç´ å®ä¹äºè¯¥å±æ§å°æ°æ®åºè¡¨ä¸»é®å段çæ å°ã"
+
+#. Tag: para
+#, no-c-format
+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."
+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."
+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 ä¸è£
è½½è¿ï¼å¯è½ååè¿ä¿®æ¹--è¯è
注ï¼ä½æªå次æä¹
åçå®ä¾åºåå¼æ¥ã "
+
+#. 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 ç¨æ¥è®¿é®å±æ§å¼ççç¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If the <literal>name</literal> attribute is missing, it is assumed that the class has no identifier property."
+msgstr "å¦æ <literal>name</literal> å±æ§ä¸åå¨ï¼ä¼è®¤ä¸ºè¿ä¸ªç±»æ²¡ææ è¯å±æ§ã"
+
+#. Tag: para
+#, no-c-format
+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><composite-id></literal> declaration that allows access to legacy data with composite keys. Its use is strongly discouraged for anything else."
+msgstr "è¿æä¸ä¸ªå¦å¤ç <literal><composite-id></literal> å®ä¹å¯ä»¥è®¿é®æ§å¼çå¤ä¸»é®æ°æ®ãæ们é常ä¸é¼å±ä½¿ç¨è¿ç§æ¹å¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Generator"
+msgstr "Generator"
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal><generator></literal> child element names a Java class used to generate unique identifiers for instances of the persistent class. If any parameters are required to configure or initialize the generator instance, they are passed using the <literal><param></literal> element."
+msgstr "å¯éç <literal><generator></literal> åå
ç´ æ¯ä¸ä¸ª Java ç±»çååï¼ç¨æ¥ä¸ºè¯¥æä¹
åç±»çå®ä¾çæå¯ä¸çæ è¯ãå¦æè¿ä¸ªçæå¨å®ä¾éè¦æäºé
ç½®å¼æè
åå§ååæ°ï¼ç¨ <literal><param></literal> å
ç´ æ¥ä¼ éã"
+
+#. 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 æä¾äºå¾å¤å
ç½®çå®ç°ãä¸é¢æ¯ä¸äºå
ç½®çæå¨çå¿«æ·ååï¼ "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>increment</literal>"
+msgstr "<literal>increment</literal>"
+
+#. 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>"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>identity</literal>"
+msgstr "<literal>identity</literal>"
+
+#. 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> ç±»åçã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence</literal>"
+msgstr "<literal>sequence</literal>"
+
+#. 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> ç±»åçã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>hilo</literal>"
+msgstr "<literal>hilo</literal>"
+
+#. 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>ï¼ä½ä¸ºé«ä½å¼çæ¥æºãé«/ä½ä½ç®æ³çæçæ è¯ç¬¦åªå¨ä¸ä¸ªç¹å®çæ°æ®åºä¸æ¯å¯ä¸çã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>seqhilo</literal>"
+msgstr "<literal>seqhilo</literal>"
+
+#. 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)çååã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>uuid</literal>"
+msgstr "<literal>uuid</literal>"
+
+#. 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 è¿å¶æ°åçå符串ã "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>guid</literal>"
+msgstr "<literal>guid</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "uses a database-generated GUID string on MS SQL Server and MySQL."
+msgstr "å¨ MS SQL Server å MySQL ä¸ä½¿ç¨æ°æ®åºçæç GUID å符串ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>native</literal>"
+msgstr "<literal>native</literal>"
+
+#. 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> ä¸çä¸ä¸ªã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>assigned</literal>"
+msgstr "<literal>assigned</literal>"
+
+#. 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><generator></literal> element is specified."
+msgstr "让åºç¨ç¨åºå¨è°ç¨ <literal>save()</literal> ä¹å为对象åé
ä¸ä¸ªæ è¯ç¬¦ãè¿æ¯ <literal><generator></literal> å
ç´ æ²¡ææå®æ¶çé»è®¤çæçç¥ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>select</literal>"
+msgstr "<literal>select</literal>"
+
+#. 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."
+msgstr "éè¿æ°æ®åºè§¦åå¨éæ©ä¸äºå¯ä¸ä¸»é®çè¡å¹¶è¿å主é®å¼æ¥åé
ä¸ä¸ªä¸»é®ã "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>foreign</literal>"
+msgstr "<literal>foreign</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "uses the identifier of another associated object. It is usually used in conjunction with a <literal><one-to-one></literal> primary key association."
+msgstr "使ç¨å¦å¤ä¸ä¸ªç¸å
³èç对象çæ è¯ç¬¦ãå®é常å <literal><one-to-one></literal> èåèµ·æ¥ä½¿ç¨ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>sequence-identity</literal>"
+msgstr "<literal>sequence-identity</literal>"
+
+#. 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ï¼è¿äºæå
¥è¯å¥ç注é被å
³éäºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hi/lo algorithm"
+msgstr "é«/ä½ä½ç®æ³ï¼Hi/Lo Algorithmï¼"
+
+#. 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 é£æ ¼çåºåï¼å¨è¢«æ¯æçæ
åµä¸ï¼ã "
+
+#. 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "UUID algorithm"
+msgstr "UUID ç®æ³ï¼UUID Algorithm ï¼"
+
+#. 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 çåæä¸çè½åçæ好å®ç°äºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Identity columns and sequences"
+msgstr "æ è¯å段ååºåï¼Identity columns and Sequencesï¼"
+
+#. 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 æ¥è¯¢ãä¾å¦ï¼"
+
+#. 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> ä¸è¿è¡éæ©ï¼éæ©åªä¸ä¸ªï¼è¿åå³äºåºå±æ°æ®åºçæ¯æè½åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Assigned identifiers"
+msgstr "ç¨åºåé
çæ è¯ç¬¦ï¼Assigned Identifiersï¼"
+
+#. 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><generator></literal> element."
+msgstr "å¦æä½ éè¦åºç¨ç¨åºåé
ä¸ä¸ªæ 示符ï¼èé Hibernate æ¥çæï¼ï¼ä½ å¯ä»¥ä½¿ç¨ <literal>assigned</literal> çæå¨ãè¿ç§ç¹æ®ççæå¨ä¼ä½¿ç¨å·²ç»åé
ç»å¯¹è±¡çæ è¯ç¬¦å±æ§çæ è¯ç¬¦å¼ã è¿ä¸ªçæå¨ä½¿ç¨ä¸ä¸ªèªç¶é®ï¼natural keyï¼æåä¸æä¹çåï¼è¯æ³¨ï¼ä½ä¸ºä¸»é®ï¼èä¸æ¯ä½¿ç¨ä¸ä¸ªä»£çé®ï¼ surrogate keyï¼æ²¡æåä¸æä¹çåï¼è¯æ³¨ï¼ãè¿æ¯æ²¡ææå® <literal><generator></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ï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Primary keys assigned by triggers"
+msgstr "触åå¨å®ç°ç主é®çæå¨ï¼Primary keys assigned by triggersï¼"
+
+#. Tag: para
+#, no-c-format
+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ï¼çå¼ç±è§¦åå¨çæã"
+
+#. Tag: title
+#, no-c-format
+msgid "Enhanced identifier generators"
+msgstr "å¢å¼ºçæ è¯ç¬¦çæå¨"
+
+#. 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 è¿è¡å¼ç¨ã"
+
+#. 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 è¯å¾ç¨åºäºè¡¨ççæå¨æ¥æ¨¡æçãè¿ä¸ªçæå¨æå¦ä¸çé
ç½®åæ°ï¼"
+
+#. 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>ï¼ï¼åºåæ表çåå"
+
+#. 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\"ã"
+
+#. 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\"ã"
+
+#. 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>ï¼ï¼å³ä½¿æ¹è¨å¯è½æ¯æåºåï¼æ¯å¦ä¹åºè¯¥å¼ºå¶æ表ç¨ä½åå°ç»æã"
+
+#. 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>ï¼ï¼åªå表ç»æç¸å
³ï¼å®æ¯ç¨äºä¿åå¼çå段çå称ã"
+
+#. 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\" />ã"
+
+#. 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> çæ¿ä»£åãåºæ¬ä¸è¿ä¸ªçæå¨å®ä¹äºä¸ä¸ªå¯ä»¥å©ç¨å¤ä¸ªä¸åçé®å¼è®°å½åå¨å¤§éä¸åå¢éå¼ç表ãè¿ä¸ªçæå¨æå¦ä¸çé
ç½®åæ°ï¼"
+
+#. 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>ï¼ï¼æç¨ç表çå称ã"
+
+#. 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>ï¼ï¼ç¨äºåå¨è¿äºå¼ç表çå段çååã"
+
+#. 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\" çå段çå称ãè¿æ¯æ è¯ä½¿ç¨åªä¸ªå¢éå¼çå¼ã"
+
+#. 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\"ã"
+
+#. 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 å段çå段大å°ã"
+
+#. 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>ï¼ï¼ä»è¡¨éè·åçåå§å¼ã"
+
+#. 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>ï¼ï¼å¯¹è¡¨éåçè°ç¨åºè¯¥åºåçå¼ã"
+
+#. 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\" />ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Identifier generator optimization"
+msgstr "æ è¯ç¬¦çæå¨çä¼å"
+
+#. 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\"/>ï¼ã "
+
+#. 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ï¼é常è¿æ¯ç¼ºçé
ç½®ï¼ï¼è¿ä¸ä¼æ§è¡ä»»ä½ä¼åï¼å¨æ¯æ¬¡è¯·æ±æ¶é½è®¿é®æ°æ®åºã"
+
+#. 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 å¼âã"
+
+#. 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> 表示æ°æ®åºéçå¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "composite-id"
+msgstr "composite-id"
+
+#. 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><composite-id></literal> element accepts <literal><key-property></literal> property mappings and <literal><key-many-to-one></literal> mappings as child elements."
+msgstr "å¦æ表使ç¨èå主é®ï¼ä½ å¯ä»¥æ å°ç±»çå¤ä¸ªå±æ§ä¸ºæ è¯ç¬¦å±æ§ã<literal><composite-id></literal> å
ç´ æ¥å <literal><key-property></literal> å±æ§æ å°å <literal><key-many-to-one></literal> å±æ§æ å°ä½ä¸ºåå
ç´ ã "
+
+#. Tag: para
+#, 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> æ¥å£ä¹æ¯å¿
é¡»çã"
+
+#. 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>çç»åæ è¯ç¬¦ï¼å¨éè¦çåºç¨ä¸ä¸é¼å±ä½¿ç¨è¿ç§ç¨æ³ã "
+
+#. 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><composite-id></literal> element are duplicated on both the persistent class and a separate identifier class."
+msgstr "第äºç§æ¹æ³æ们称为 <emphasis>mappedï¼æ å°å¼ï¼</emphasis>ç»åæ è¯ç¬¦ï¼mapped composite identifierï¼ï¼<literal><composite-id></literal> å
ç´ ä¸ååºçæ è¯å±æ§ä¸ä½å¨æä¹
åç±»åºç°ï¼è¿å½¢æä¸ä¸ªç¬ç«çæ è¯ç¬¦ç±»ã"
+
+#. Tag: para
+#, no-c-format
+msgid "In this example, both the composite identifier class, <literal>MedicareId</literal>, and the entity class itself have properties named <literal>medicareNumber</literal> and <literal>dependent</literal>. The identifier class must override <literal>equals()</literal> and <literal>hashCode()</literal> and implement <literal>Serializable</literal>. The main disadvantage of this approach is code duplication."
+msgstr "å¨è¿ä¸ªä¾åä¸ï¼ç»åæ è¯ç¬¦ç±» <literal>MedicareId</literal> åå®ä½ç±»é½å«æ <literal>medicareNumber</literal> å <literal>dependent</literal> å±æ§ãæ è¯ç¬¦ç±»å¿
é¡»éè½½ <literal>equals()</literal> å <literal>hashCode()</literal> 并ä¸å®ç° <literal>Serializable</literal> æ¥å£ãè¿ç§æ¹æ³ç缺ç¹æ¯åºç°äºææ¾ç代ç éå¤ã"
+
+#. Tag: para
+#, no-c-format
+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>ï¼ï¼ææ使ç¨ä¸ä¸ªæ å°å¼ç»åæ è¯ç¬¦ï¼å
¶å
å«çå±æ§æ å°åæ¶å¨å®ä½ç±»åç»åæ è¯ç¬¦ç±»ä¸åºç°ã "
+
+#. 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>ï¼å¯é,ä½å¯¹æ å°å¼ç»åæ è¯ç¬¦å¿
é¡»æå®ï¼ï¼ä½ä¸ºç»åæ è¯ç¬¦ç±»ä½¿ç¨çç±»åã"
+
+#. 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ï¼ç±»,è¿æ¯æ´æ¹ä¾¿çæ¹æ³ãä¸é¢çå±æ§ä»
对第ä¸ç§æ¹æ³ææï¼ "
+
+#. 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 ç« ï¼ã"
+
+#. 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 ç¨æ¥è®¿é®å±æ§å¼ççç¥ã "
+
+#. 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>ï¼å¯é â é»è®¤ä¼ç¨åå°æ¥èªå¨å¤å®å±æ§ç±»å ï¼ï¼ç¨æ¥ä½ä¸ºç»åæ è¯ç¬¦çç»ä»¶ç±»çç±»åï¼åé
ä¸ä¸èï¼ã "
+
+#. 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>æ¯æ们对å ä¹ææåºç¨é½æ¨è使ç¨çæ¹å¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Discriminator"
+msgstr "é´å«å¨ï¼discriminatorï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><discriminator></literal> element is required for polymorphic persistence using the table-per-class-hierarchy mapping strategy. It declares a discriminator column of the table. The discriminator column contains marker values that tell the persistence layer what subclass to instantiate for a particular row. A restricted set of types can be used: <literal>string</literal>, <literal>character</literal>, <literal>integer</literal>, <literal>byte</literal>, <literal>short</literal>, <literal>boolean</literal>, <literal>yes_no</literal>, <literal>true_false</literal>."
+msgstr "å¨\"ä¸æ£µå¯¹è±¡ç»§æ¿æ 对åºä¸ä¸ªè¡¨\"ççç¥ä¸ï¼<literal><discriminator></literal> å
ç´ æ¯å¿
éçï¼å®å®ä¹äºè¡¨çé´å«å¨å段ãé´å«å¨å段å
å«æ å¿å¼ï¼ç¨äºåç¥æä¹
åå±åºè¯¥ä¸ºæ个ç¹å®çè¡å建åªä¸ä¸ªåç±»çå®ä¾ãå¦ä¸è¿äºåå°éå¶çç±»åå¯ä»¥ä½¿ç¨ï¼<literal>string</literal>ã<literal>character</literal>ã<literal>integer</literal>ã<literal>byte</literal>ã<literal>short</literal>ã<literal>boolean</literal>ã<literal>yes_no</literal>ã<literal>true_false</literal>ã"
+
+#. Tag: 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 å¨å段çååã"
+
+#. 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 å段类åçåå "
+
+#. 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 æå®å
许çé´å«å¨å¼,å³ä½¿å½åå¾çææå®ä¾é½æ¯æ ¹ç±»çã "
+
+#. 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> æ¶ä¸å
å«è¯¥åï¼ "
+
+#. 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 表达å¼ï¼å¨ç±»åå¤æï¼å¤ææ¯ç¶ç±»è¿æ¯å
·ä½åç±» â è¯æ³¨ï¼æ¶æ§è¡ãå¯ç¨äºåºäºå
容çé´å«å¨ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Actual values of the discriminator column are specified by the <literal>discriminator-value</literal> attribute of the <literal><class></literal> and <literal><subclass></literal> elements."
+msgstr "é´å«å¨å段çå®é
å¼æ¯æ ¹æ® <literal><class></literal> å <literal><subclass></literal> å
ç´ ä¸ç <literal>discriminator-value</literal> å±æ§å¾æ¥çã"
+
+#. 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> å±æ§ä»
ä»
å¨è¿ç§æ
åµä¸æç¨çï¼è¡¨ä¸å
å«æ²¡æ被æ å°å°æä¹
åç±»çéå 辨å«å¨å¼ãè¿ç§æ
åµä¸ä¼ç»å¸¸éå°ã "
+
+#. 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 表达å¼ï¼ç¨æ¥å¤æä¸è¡æ°æ®çç±»åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Version (optional)"
+msgstr "çæ¬ï¼versionï¼ï¼å¯éï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><version></literal> element is optional and indicates that the table contains versioned data. This is particularly useful if you plan to use <emphasis>long transactions</emphasis>. See below for more information:"
+msgstr "<literal><version></literal> å
ç´ æ¯å¯éçï¼è¡¨æ表ä¸å
å«é带çæ¬ä¿¡æ¯çæ°æ®ãè¿å¨ä½ åå¤ä½¿ç¨<emphasis> é¿äºå¡ï¼long transactionsï¼</emphasis>çæ¶åç¹å«æç¨ãä¸é¢æ¯æ´å¤ä¿¡æ¯ï¼"
+
+#. Tag: 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>ï¼å¯é â é»è®¤ä¸ºå±æ§åï¼ï¼æå®ææçæ¬å·çå段åã "
+
+#. Tag: para
+#, no-c-format
+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>ï¼ï¼çæ¬å·çç±»åã "
+
+#. 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 ç¨æ¥è®¿é®å±æ§å¼ççç¥ã "
+
+#. 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> ææåºè¢«ä½¿ç¨çæ è¯å±æ§å¼ãï¼ "
+
+#. 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 <link linkend=\"mapping-generated\">generated properties</link> for more information."
+msgstr "<literal>generated</literal>ï¼å¯é â é»è®¤æ¯ <literal>never</literal>ï¼ï¼è¡¨ææ¤çæ¬å±æ§å¼æ¯å¦å®é
ä¸æ¯ç±æ°æ®åºçæçã请åé
<link linkend=\"mapping-generated\">generated properties</link> é¨åç讨论ã "
+
+#. 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>ã "
+
+#. 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>ã"
+
+#. 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Timestamp (optional)"
+msgstr "timestampï¼å¯é) "
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal><timestamp></literal> element indicates that the table contains timestamped data. This provides an alternative to versioning. Timestamps are a less safe implementation of optimistic locking. However, sometimes the application might use the timestamps in other ways."
+msgstr "å¯éç <literal><timestamp></literal> å
ç´ ææäºè¡¨ä¸å
å«æ¶é´æ³æ°æ®ãè¿ç¨æ¥ä½ä¸ºçæ¬çæ¿ä»£ãæ¶é´æ³æ¬è´¨ä¸æ¯ä¸ç§å¯¹ä¹è§éå®çä¸ç§ä¸æ¯ç¹å«å®å
¨çå®ç°ãå½ç¶ï¼ææ¶ååºç¨ç¨åºå¯è½å¨å
¶ä»æ¹é¢ä½¿ç¨æ¶é´æ³ã "
+
+#. Tag: 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>ï¼å¯é â é»è®¤ä¸ºå±æ§åï¼ï¼åææ¶é´æ³çå段åã "
+
+#. 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> çã "
+
+#. 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> ææ使ç¨æ è¯å±æ§å¼è¿è¡è¿ç§å¤æãï¼ "
+
+#. 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ï¼ã "
+
+#. 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 <link linkend=\"mapping-generated\">generated properties</link> for more information."
+msgstr "<literal>generated</literal>ï¼å¯é - é»è®¤æ¯ <literal>never</literal>ï¼ï¼æåºæ¶é´æ³å¼æ¯å¦å®é
ä¸æ¯ç±æ°æ®åºçæçã请åé
<link linkend=\"mapping-generated\">generated properties</link> ç讨论ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal><Timestamp></literal> is equivalent to <literal><version type=\"timestamp\"></literal>. And <literal><timestamp source=\"db\"></literal> is equivalent to <literal><version type=\"dbtimestamp\"></literal>"
+msgstr "注æï¼<literal><timestamp></literal> å <literal><version type=\"timestamp\"></literal> æ¯çä»·çãå¹¶ä¸ <literal><timestamp source=\"db\"></literal> å <literal><version type=\"dbtimestamp\"></literal> æ¯çä»·çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Property"
+msgstr "Property"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><property></literal> element declares a persistent JavaBean style property of the class."
+msgstr "<literal><property></literal> å
ç´ ä¸ºç±»å®ä¹äºä¸ä¸ªæä¹
åçãJavaBean é£æ ¼çå±æ§ã "
+
+#. Tag: para
+#, no-c-format
+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><column></literal> element(s)."
+msgstr "<literal>column</literal>ï¼å¯é â é»è®¤ä¸ºå±æ§ååï¼ï¼å¯¹åºçæ°æ®åºå段åã ä¹å¯ä»¥éè¿åµå¥ç <literal><column></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ï¼è§¦åå¨ï¼æå
¶ä»ç¨åºçæã "
+
+#. 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> å±æ§çå¼ã计ç®å±æ§æ²¡æåå®å¯¹åºçæ°æ®åºå段ã"
+
+#. 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ï¼ï¼ éè¦è¿è¡æ¶åèç å¢å¼ºï¼ã "
+
+#. 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> å¼ç¨çç®æ ã "
+
+#. 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ï¼ç约æã "
+
+#. 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ï¼çå¼æ¯å¦å¢é¿ã "
+
+#. 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 <link linkend=\"mapping-generated\">generated properties</link> for more information."
+msgstr "<literal>generated</literal>ï¼å¯é â é»è®¤ä¸º <literal>never</literal>ï¼ï¼è¡¨ææ¤å±æ§å¼æ¯å¦å®é
ä¸æ¯ç±æ°æ®åºçæçã请åé
<link linkend=\"mapping-generated\">generated properties</link> ç讨论ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>typename</emphasis> could be:"
+msgstr "<emphasis>typename</emphasis> å¯ä»¥æ¯å¦ä¸å ç§ï¼"
+
+#. 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>ï¼ã "
+
+#. 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>)ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The name of a serializable Java class."
+msgstr "ä¸ä¸ªå¯ä»¥åºååç Java ç±»çååã"
+
+#. 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>)ã "
+
+#. 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>,æè
为äºæå®ä¸ä¸ªèªå®ä¹ç±»åãï¼ "
+
+#. 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 ä¸è®¾ç½®ä½ èªå®ä¹çç¥ç±»çååã "
+
+#. 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> åæ¥è¯¢è¯å¥ã "
+
+#. 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><formula></literal> mapping element if you do not want to use the attribute."
+msgstr "注æï¼ä½ å¯ä»¥ä½¿ç¨å®ä½èªå·±ç表ï¼èä¸ç¨ä¸ºè¿ä¸ªç¹å«çåå®ä¹å«åï¼ä¸é¢ä¾åä¸ç <literal>customerId</literal>ï¼ãåæ¶æ³¨æï¼å¦æä½ ä¸å欢使ç¨å±æ§ï¼ ä½ å¯ä»¥ä½¿ç¨åµå¥ç <literal><formula></literal> æ å°å
ç´ ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-one"
+msgstr "å¤å¯¹ä¸ï¼many-to-oneï¼ "
+
+#. 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> å
ç´ ,å¯ä»¥å®ä¹ä¸ç§å¸¸è§çä¸å¦ä¸ä¸ªæä¹
åç±»çå
³èãè¿ç§å
³ç³»æ¨¡åæ¯å¤å¯¹ä¸å
³èï¼å®é
ä¸æ¯ä¸ä¸ªå¯¹è±¡å¼ç¨ï¼è¯æ³¨ï¼ï¼è¿ä¸ªè¡¨çä¸ä¸ªå¤é®å¼ç¨ç®æ 表ç主é®å段ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the name of the property."
+msgstr "<literal>name</literal>ï¼å±æ§åã"
+
+#. 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><column></literal> element(s)."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼å¤é®å段çå称ãä¹å¯ä»¥éè¿åµå¥ç <literal><column></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>ï¼å¯é â é»è®¤æ¯éè¿åå°å¾å°çå±æ§ç±»åï¼ï¼è¢«å
³èçç±»çååã "
+
+#. 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>ï¼å¯éï¼è¡¨ææä½æ¯å¦ä»ç¶å¯¹è±¡çº§èå°è¢«å
³èç对象ã "
+
+#. 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ï¼ä¸¤è
ä¸éæ©å
¶ä¸ã "
+
+#. 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ï¼è§¦åå¨ï¼ãæå
¶ä»ç¨åºçæã "
+
+#. 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>ï¼ï¼å¯éï¼è¢«å
³èå°æ¤å¤é®çç±»ä¸ç对åºå±æ§çååãå¦æ没ææå®ï¼è¢«å
³èç±»ç主é®å°è¢«ä½¿ç¨ã "
+
+#. 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> çç®æ å±æ§ãè¿ä½¿å
³èåæ¶å
·æä¸å¯¹ä¸çææã "
+
+#. 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 为å¤é®å段çæä¸ä¸ªé空约æã "
+
+#. 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> æå®æ¤å
³èæ»æ¯è¢«é¢å
æåã "
+
+#. 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> ä¼æ缺失çè¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã "
+
+#. Tag: para
+#, no-c-format
+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>å¤é®å¼ã"
+
+#. 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ï¼å é¤ä¸å被å¼ç¨çå¼ï¼ã "
+
+#. Tag: para
+#, no-c-format
+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 çæãï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Then the mapping for <literal>OrderItem</literal> might use:"
+msgstr "é£ä¹å
³äº <literal>OrderItem</literal> çæ å°å¯è½æ¯ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This is not encouraged, however."
+msgstr "å½ç¶ï¼æ们å³ä¸é¼å±è¿ç§ç¨æ³ã "
+
+#. 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><properties></literal> element."
+msgstr "å¦æ被å¼ç¨çå¯ä¸ä¸»é®ç±å
³èå®ä½çå¤ä¸ªå±æ§ç»æï¼ä½ åºè¯¥å¨å称为 <literal><properties></literal> çå
ç´ éé¢æ å°ææå
³èçå±æ§ã"
+
+#. Tag: para
+#, no-c-format
+msgid "If the referenced unique key is the property of a component, you can specify a property path:"
+msgstr "åè¥è¢«å¼ç¨çå¯ä¸ä¸»é®æ¯ç»ä»¶çå±æ§ï¼ä½ å¯ä»¥æå®å±æ§è·¯å¾ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-one"
+msgstr "ä¸å¯¹ä¸ "
+
+#. 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> å
ç´ å®ä¹çã"
+
+#. 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 ä¸è¢«ä½¿ç¨ï¼ã "
+
+#. 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>ï¼ï¼å¯éï¼æå®å
³èç±»çå±æ§åï¼è¿ä¸ªå±æ§å°ä¼åæ¬ç±»ç主é®ç¸å¯¹åºãå¦æ没ææå®ï¼ä¼ä½¿ç¨å¯¹æ¹å
³èç±»ç主é®ã "
+
+#. 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 æ¾å°ä¾åï¼ "
+
+#. 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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "There are two varieties of one-to-one associations:"
+msgstr "æ两ç§ä¸åçä¸å¯¹ä¸å
³èï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "primary key associations"
+msgstr "主é®å
³è"
+
+#. Tag: para
+#, no-c-format
+msgid "unique foreign key associations"
+msgstr "æä¸å¤é®å
³è"
+
+#. 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 "主é®å
³èä¸éè¦é¢å¤ç表å段ï¼å¦æ两è¡æ¯éè¿è¿ç§ä¸å¯¹ä¸å
³ç³»ç¸å
³èçï¼é£ä¹è¿ä¸¤è¡å°±å
±äº«åæ ·ç主å
³é®åå¼ãæ以å¦æä½ å¸æ两个对象éè¿ä¸»é®ä¸å¯¹ä¸å
³èï¼ä½ å¿
须确认å®ä»¬è¢«èµäºåæ ·çæ è¯å¼ã"
+
+#. 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> è¿è¡ä¸»é®ä¸å¯¹ä¸å
³èï¼"
+
+#. 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 æ è¯ç¬¦çæçç¥ï¼ "
+
+#. 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> å®ä¾åæ ·çå
³é®åå¼ã "
+
+#. 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> çä¾åï¼å¦æ使ç¨è¿ç§å
³èæ¹å¼ï¼å¯ä»¥è¡¨è¾¾æï¼ "
+
+#. 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> çæ å°å å
¥ä¸é¢å å¥ï¼è¿ç§å
³èå°±æ¯ååçï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Natural-id"
+msgstr "èªç¶ IDï¼natural-idï¼ "
+
+#. 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><natural-id></literal> element. Hibernate will generate the necessary unique key and nullability constraints and, as a result, your mapping will be more self-documenting."
+msgstr "æ们建议使ç¨ä»£ç¨é®ï¼é®å¼ä¸å
·å¤å®é
æä¹ï¼ä½ä¸ºä¸»é®ï¼æ们ä»ç¶åºè¯¥å°è¯ä¸ºææçå®ä½éç¨èªç¶çé®å¼ä½ä¸ºï¼éå ââè¯è
注ï¼æ 示ãèªç¶é®ï¼natural keyï¼æ¯å个æç»åå±æ§ï¼ä»ä»¬å¿
é¡»å¯ä¸ä¸é空ãå¦æå®è¿æ¯ä¸å¯åçé£å°±æ´çæ³äºãå¨ <literal><natural-id></literal> å
ç´ ä¸ååºèªç¶é®çå±æ§ãHibernate ä¼å¸®ä½ çæå¿
é¡»çå¯ä¸é®å¼åé空约æï¼ä½ çæ å°ä¼æ´å çææ¾ææï¼åææ¯ self-documentingï¼èªæ注解ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the natural key properties of the entity."
+msgstr "æ们强çå»ºè®®ä½ å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³,æ¥æ¯è¾å®ä½çèªç¶é®å±æ§ã "
+
+#. Tag: para
+#, no-c-format
+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>ï¼ï¼é»è®¤æ
åµä¸ï¼èªç¶æ è¯å±æ§è¢«åå®ä¸ºä¸å¯åçï¼å¸¸éï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Component and dynamic-component"
+msgstr "ç»ä»¶ï¼componentï¼åå¨æç»ä»¶ï¼dynamic-componentï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><component></literal> element maps properties of a child object to columns of the table of a parent class. Components can, in turn, declare their own properties, components or collections. See the \"Component\" examples below:"
+msgstr "<literal><component></literal> å
ç´ æå对象çä¸äºå
ç´ ä¸ç¶ç±»å¯¹åºç表çä¸äºå段æ å°èµ·æ¥ãç¶åç»ä»¶å¯ä»¥å®ä¹å®ä»¬èªå·±çå±æ§ãç»ä»¶æè
éåãåè§åé¢çâComponentsâä¸ç« ã "
+
+#. Tag: 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>ï¼å¯é â é»è®¤ä¸ºéè¿åå°å¾å°çå±æ§ç±»åï¼ï¼ç»ä»¶ï¼åï¼ç±»çååã "
+
+#. 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> è¯å¥ä¸ï¼ "
+
+#. 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> è¯å¥ä¸ï¼ "
+
+#. 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>ï¼ï¼è¡¨ææ¤ç»ä»¶åºå¨å®ä¾åé第ä¸æ¬¡è¢«è®¿é®çæ¶å延è¿å è½½ï¼éè¦ç¼è¯æ¶åèç è£
ç½®å¨ï¼ã"
+
+#. 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ï¼ã"
+
+#. 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>ï¼ï¼è¡¨æç»ä»¶æ å°çææå段ä¸é½æå¯ä¸æ§çº¦æã"
+
+#. Tag: para
+#, no-c-format
+msgid "The child <literal><property></literal> tags map properties of the child class to table columns."
+msgstr "å
¶ <literal><property></literal> åæ ç¾ä¸ºåç±»çä¸äºå±æ§ä¸è¡¨å段ä¹é´å»ºç«æ å°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><component></literal> element allows a <literal><parent></literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr "<literal><component></literal> å
ç´ å
许å å
¥ä¸ä¸ª <literal><parent></literal> åå
ç´ ï¼å¨ç»ä»¶ç±»å
é¨å°±å¯ä»¥æä¸ä¸ªæåå
¶å®¹å¨çå®ä½çååå¼ç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><dynamic-component></literal> element allows a <literal>Map</literal> to be mapped as a component, where the property names refer to keys of the map. See <xref linkend=\"components-dynamic\" /> for more information."
+msgstr "<literal><dynamic-component></literal> å
ç´ å
许æä¸ä¸ª <literal>Map</literal> æ å°ä¸ºç»ä»¶ï¼å
¶å±æ§åå¯¹åº map çé®å¼ãåè§ <xref linkend=\"components-dynamic\"/>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "å±æ§ï¼Propertiesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><properties></literal> element allows the definition of a named, logical grouping of the properties of a class. The most important use of the construct is that it allows a combination of properties to be the target of a <literal>property-ref</literal>. It is also a convenient way to define a multi-column unique constraint. For example:"
+msgstr "<literal><properties></literal> å
ç´ å
许å®ä¹ä¸ä¸ªå½åçé»è¾åç»ï¼groupingï¼å
å«ä¸ä¸ªç±»ä¸çå¤ä¸ªå±æ§ãè¿ä¸ªå
ç´ æéè¦çç¨å¤æ¯å
许å¤ä¸ªå±æ§çç»åä½ä¸º <literal>property-ref</literal> çç®æ ï¼targetï¼ãè¿ä¹æ¯å®ä¹å¤å段å¯ä¸çº¦æçä¸ç§æ¹ä¾¿éå¾ãä¾å¦ï¼"
+
+#. Tag: 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> å®é
å±æ§çå称ã "
+
+#. 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ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "For example, if we have the following <literal><properties></literal> mapping:"
+msgstr "ä¾å¦ï¼å¦ææ们æå¦ä¸ç <literal><properties></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> 表çè¿ä¸ªå¯ä¸é®ï¼èä¸æ¯ä¸»é®ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The use of this outside the context of mapping legacy data is not recommended."
+msgstr "æ们并ä¸æ¨èè¿æ ·ä½¿ç¨ï¼é¤éå¨æ å°éçæ°æ®çæ
åµä¸ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Subclass"
+msgstr "åç±»ï¼subclassï¼ "
+
+#. 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><subclass></literal> declaration is used. For example:"
+msgstr "æåï¼å¤ææä¹
åéè¦ä¸ºç¶ç±»çæ¯ä¸ªåç±»é½è¿è¡å®ä¹ã对äºâæ¯ä¸æ£µç±»ç»§æ¿æ 对åºä¸ä¸ªè¡¨âççç¥æ¥è¯´ï¼å°±éè¦ä½¿ç¨ <literal><subclass></literal> å®ä¹ã "
+
+#. Tag: para
+#, no-c-format
+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>ï¼å¯é â é»è®¤ä¸ºç±»åï¼ï¼ä¸ä¸ªç¨äºåºåæ¯ä¸ªç¬ç«çåç±»çå¼ã "
+
+#. Tag: para
+#, no-c-format
+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> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Each subclass declares its own persistent properties and subclasses. <literal><version></literal> and <literal><id></literal> properties are assumed to be inherited from the root class. Each subclass in a hierarchy must define a unique <literal>discriminator-value</literal>. If this is not specified, the fully qualified Java class name is used."
+msgstr "æ¯ä¸ªåç±»é½åºè¯¥å®ä¹å®èªå·±çæä¹
åå±æ§ååç±»ã<literal><version></literal> å <literal><id></literal> å±æ§å¯ä»¥ä»æ ¹ç¶ç±»ç»§æ¿ä¸æ¥ãå¨ä¸æ£µç»§æ¿æ ä¸çæ¯ä¸ªåç±»é½å¿
é¡»å®ä¹ä¸ä¸ªå¯ä¸ç <literal>discriminator-value</literal>ãå¦æ没ææå®ï¼å°±ä¼ä½¿ç¨ Java ç±»çå
¨éå®åã "
+
+#. Tag: para
+#, no-c-format
+msgid "For information about inheritance mappings see <xref linkend=\"inheritance\" />."
+msgstr "æ´å¤å
³äºç»§æ¿æ å°çä¿¡æ¯ï¼åè <xref linkend=\"inheritance\"/>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Joined-subclass"
+msgstr "è¿æ¥çåç±»ï¼joined-subclassï¼ "
+
+#. 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><joined-subclass></literal> element. For example:"
+msgstr "æ¤å¤ï¼æ¯ä¸ªåç±»å¯è½è¢«æ å°å°ä»èªå·±ç表ä¸ï¼æ¯ä¸ªåç±»ä¸ä¸ªè¡¨ççç¥ï¼ã被继æ¿çç¶æéè¿åè¶
ç±»ç表å
³èå¾å°ãæä»¬ä½¿ç¨ <literal><joined-subclass></literal> å
ç´ ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the subclass table."
+msgstr "<literal>table</literal>ï¼åç±»ç表åã"
+
+#. 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>ï¼å¯éï¼ï¼æå®ä¸ä¸ªç±»æè
æ¥å£ï¼å¨å»¶è¿è£
è½½æ¶ä½ä¸ºä»£ç使ç¨ã "
+
+#. 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> ç¦æ¢ä½¿ç¨å»¶è¿è£
è½½ã "
+
+#. 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><key></literal> element. The mapping at the start of the chapter would then be re-written as:"
+msgstr "è¿ç§æ å°çç¥ä¸éè¦æå®è¾¨å«æ å¿ï¼discriminatorï¼å段ãä½æ¯ï¼æ¯ä¸ä¸ªåç±»é½å¿
é¡»ä½¿ç¨ <literal><key></literal> å
ç´ æå®ä¸ä¸ªè¡¨å段æ¥ææ对象çæ è¯ç¬¦ãæ¬ç« å¼å§çæ å°å¯ä»¥è¢«ç¨å¦ä¸æ¹å¼éåï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Union-subclass"
+msgstr "èååç±»ï¼union-subclassï¼ "
+
+#. 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><class></literal> declaration. However, if you wish use polymorphic associations (e.g. an association to the superclass of your hierarchy), you need to use the <literal><union-subclass></literal> mapping. For example:"
+msgstr "第ä¸ç§éæ©æ¯ä»
ä»
æ å°ç±»ç»§æ¿æ ä¸å
·ä½ç±»é¨åå°è¡¨ä¸ï¼æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ççç¥ï¼ãå
¶ä¸ï¼æ¯å¼ 表å®ä¹äºç±»çæææä¹
åç¶æï¼å
æ¬ç»§æ¿çç¶æãå¨ Hibernate ä¸ï¼å¹¶ä¸éè¦å®å
¨æ¾å¼å°æ å°è¿æ ·ç继æ¿æ ãä½ å¯ä»¥ç®åå°ä½¿ç¨åç¬ç <literal><class></literal> å®ä¹æ å°æ¯ä¸ªç±»ãç¶èï¼å¦æä½ æ³ä½¿ç¨å¤æå
³èï¼ä¾å¦ï¼ä¸ä¸ªå¯¹ç±»ç»§æ¿æ ä¸è¶
ç±»çå
³èï¼ï¼ä½ éè¦ä½¿ç¨ <literal><union-subclass></literal> æ å°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "No discriminator column or key column is required for this mapping strategy."
+msgstr "è¿ç§æ å°çç¥ä¸éè¦æå®è¾¨å«æ å¿ï¼discriminatorï¼å段ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Join"
+msgstr "è¿æ¥ï¼joinï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Using the <literal><join></literal> element, it is possible to map properties of one class to several tables that have a one-to-one relationship. For example:"
+msgstr "ä½¿ç¨ <literal><join></literal> å
ç´ ï¼åè¥å¨è¡¨ä¹é´åå¨ä¸å¯¹ä¸å
³è,å¯ä»¥å°ä¸ä¸ªç±»çå±æ§æ å°å°å¤å¼ 表ä¸ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>table</literal>: the name of the joined table."
+msgstr "<literal>table</literal>ï¼è¢«è¿æ¥è¡¨çå称ã "
+
+#. 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><join></literal> defined by a class or its superclasses. It will use an outer join for a <literal><join></literal> defined by a subclass. If set to <literal>select</literal> then Hibernate will use a sequential select for a <literal><join></literal> defined on a subclass. This will be issued only if a row represents an instance of the subclass. Inner joins will still be used to retrieve a <literal><join></literal> defined by the class and its superclasses."
+msgstr "<literal>fetch</literal>ï¼å¯é â é»è®¤æ¯ <literal>join</literal>ï¼ï¼å¦æ设置为é»è®¤å¼ <literal>join</literal>ï¼Hibernate å°ä½¿ç¨ä¸ä¸ªå
è¿æ¥æ¥å¾å°è¿ä¸ªç±»æå
¶è¶
ç±»å®ä¹ç <literal><join></literal>ï¼è使ç¨ä¸ä¸ªå¤è¿æ¥æ¥å¾å°å
¶åç±»å®ä¹ç <literal><join></literal>ãå¦æ设置为 <literal>select</literal>ï¼å Hibernate å°ä¸ºåç±»å®ä¹ç <literal><join></literal> 使ç¨é¡ºåºéæ©ãè¿ä»
å¨ä¸è¡æ°æ®è¡¨ç¤ºä¸ä¸ªåç±»ç对象çæ¶åæä¼åçã对è¿ä¸ªç±»åå
¶è¶
ç±»å®ä¹ç <literal><join></literal>ï¼ä¾ç¶ä¼ä½¿ç¨å
è¿æ¥å¾å°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>inverse</literal> (optional - defaults to <literal>false</literal>): if enabled, Hibernate will not insert or update the properties defined by this join."
+msgstr "<literal>inverse</literal>ï¼å¯é â é»è®¤æ¯ <literal>false</literal>ï¼ï¼å¦ææå¼ï¼Hibernate ä¸ä¼æå
¥æè
æ´æ°æ¤è¿æ¥å®ä¹çå±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>optional</literal> (optional - defaults to <literal>false</literal>): if enabled, Hibernate will insert a row only if the properties defined by this join are non-null. It will always use an outer join to retrieve the properties."
+msgstr "<literal>optional</literal>ï¼å¯é â é»è®¤æ¯ <literal>false</literal>ï¼ï¼å¦ææå¼ï¼Hibernate åªä¼å¨æ¤è¿æ¥å®ä¹çå±æ§é空æ¶æå
¥ä¸è¡æ°æ®ï¼å¹¶ä¸æ»æ¯ä½¿ç¨ä¸ä¸ªå¤è¿æ¥æ¥å¾å°è¿äºå±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "For example, address information for a person can be mapped to a separate table while preserving value type semantics for all properties:"
+msgstr "ä¾å¦ï¼ä¸ä¸ªäººï¼personï¼çå°åï¼addressï¼ä¿¡æ¯å¯ä»¥è¢«æ å°å°åç¬ç表ä¸ï¼å¹¶ä¿çææå±æ§çå¼ç±»åè¯ä¹ï¼ï¼ "
+
+#. Tag: 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 "æ¤ç¹æ§å¸¸å¸¸å¯¹éçæ°æ®æ¨¡åæç¨ï¼æ们æ¨è表个æ°æ¯ç±»ä¸ªæ°å°ï¼ä»¥åç»ç²åº¦çé¢å模åãç¶èï¼å¨åç¬ç继æ¿æ ä¸åæ¢ç»§æ¿æ å°çç¥æ¯æç¨çï¼åé¢ä¼è§£éè¿ç¹ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Key"
+msgstr "Key"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><key></literal> element has featured a few times within this guide. It appears anywhere the parent mapping element defines a join to a new table that references the primary key of the original table. It also defines the foreign key in the joined table:"
+msgstr "æ们ç®åå·²ç»è§å°è¿ <literal><key></literal> å
ç´ å¤æ¬¡äºãè¿ä¸ªå
ç´ å¨ç¶æ å°å
ç´ å®ä¹äºå¯¹æ°è¡¨çè¿æ¥ï¼å¹¶ä¸å¨è¢«è¿æ¥è¡¨ä¸å®ä¹äºä¸ä¸ªå¤é®å¼ç¨å表ç主é®çæ
åµä¸ç»å¸¸ä½¿ç¨ã "
+
+#. Tag: 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>ï¼ï¼è¡¨æå¤é®å
³èæ¯å¦æå¼æ°æ®åºçº§å«ç级èå é¤ã "
+
+#. 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>ï¼å¯éï¼ï¼è¡¨æå¤é®å¼ç¨çå段ä¸æ¯å表ç主é®ï¼æä¾ç»éçæ°æ®ï¼ã "
+
+#. 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>ï¼å¯éï¼ï¼è¡¨æå¤é®çå段ä¸å¯ä¸ºç©ºï¼è¿æå³çæ 论ä½æ¶å¤é®é½æ¯ä¸»é®çä¸é¨åï¼ã "
+
+#. 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>ï¼å¯éï¼ï¼è¡¨æå¤é®å³ä¸åºè¯¥è¢«æ´æ°ï¼è¿æå³çæ 论ä½æ¶å¤é®é½æ¯ä¸»é®çä¸é¨åï¼ã "
+
+#. 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>ï¼å¯éï¼ï¼è¡¨æå¤é®åºæå¯ä¸æ§çº¦æï¼è¿æå³çæ 论ä½æ¶å¤é®é½æ¯ä¸»é®çä¸é¨åï¼ã "
+
+#. 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ï¼éç¨çä¹è§éçç¥ã "
+
+#. 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><key not-null=\"true\"></literal>."
+msgstr "<literal>not-null</literal> å <literal>update</literal> å±æ§å¨æ å°ååä¸å¯¹å¤å
³èçæ¶åæç¨ãå¦æä½ æ å°ä¸ä¸ªååä¸å¯¹å¤å
³èå°é空çï¼non-nullableï¼å¤é®ï¼ä½ <emphasis>å¿
é¡»</emphasis> ç¨ <literal><key not-null=\"true\"></literal> å®ä¹æ¤é®å段ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Column and formula elements"
+msgstr "å段åè§åå
ç´ ï¼column and formula elementsï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Mapping elements which accept a <literal>column</literal> attribute will alternatively accept a <literal><column></literal> subelement. Likewise, <literal><formula></literal> is an alternative to the <literal>formula</literal> attribute. For example:"
+msgstr "ä»»ä½æ¥å <literal>column</literal> å±æ§çæ å°å
ç´ é½å¯ä»¥éæ©æ¥å <literal><column></literal> åå
ç´ ãåæ ·çï¼<literal>formula</literal> åå
ç´ ä¹å¯ä»¥æ¿æ¢ <literal><formula></literal> å±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Most of the attributes on <literal>column</literal> provide a means of tailoring the DDL during automatic schema generation. The <literal>read</literal> and <literal>write</literal> attributes allow you to specify custom SQL that Hibernate will use to access the column's value. For more on this, see the discussion of <link linkend=\"mapping-column-read-and-write\">column read and write expressions</link>."
+msgstr "<literal>column</literal> ä¸ç大å¤æ°å±æ§é½æä¾äºå¨èªå¨æ¨¡å¼çæè¿ç¨ä¸å¯¹ DDL è¿è¡è£åªçæ¹æ³ã<literal>read</literal> å <literal>write</literal> å±æ§å
è®¸ä½ æå® Hibernate ç¨äºè®¿é®å段å¼çèªå®ä¹ç SQLãå
³äºæ´å¤çå
容ï¼è¯·åè <link linkend=\"mapping-column-read-and-write\">column read and write expressions</link>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>column</literal> and <literal>formula</literal> elements 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
+msgid "Import"
+msgstr "å¼ç¨ï¼importï¼ "
+
+#. 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ï¼å¼ç¨ï¼âãä½ çè³å¯ä»¥å¼ç¨æ²¡æ被æç¡®æ å°çç±»åæ¥å£ã "
+
+#. Tag: para
+#, no-c-format
+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>ï¼å¯é â é»è®¤ä¸ºç±»çå
¨éå®åï¼ï¼å¨æ¥è¯¢è¯å¥ä¸å¯ä»¥ä½¿ç¨çååã "
+
+#. Tag: title
+#, no-c-format
+msgid "Any"
+msgstr "Any"
+
+#. Tag: para
+#, no-c-format
+msgid "There is one more type of property mapping. The <literal><any></literal> mapping element defines a polymorphic association to classes from multiple tables. This type of mapping requires more than one column. The first column contains the type of the associated entity. The remaining columns contain the identifier. It is impossible to specify a foreign key constraint for this kind of association. This is not the usual way of mapping polymorphic associations and you should use this only in special cases. For example, for audit logs, user session data, etc."
+msgstr "è¿æ¯å±æ§æ å°çåä¸ç§ç±»åã<literal><any></literal> æ å°å
ç´ å®ä¹äºä¸ç§ä»å¤ä¸ªè¡¨å°ç±»çå¤æå
³èãè¿ç§ç±»åçæ å°å¸¸å¸¸éè¦å¤äºä¸ä¸ªå段ã第ä¸ä¸ªå段ææ被å
³èå®ä½çç±»åï¼å
¶ä»çå段æææ è¯ç¬¦ã对è¿ç§ç±»åçå
³èæ¥è¯´ï¼ä¸å¯è½æå®ä¸ä¸ªå¤é®çº¦æï¼æ以è¿å½ç¶ä¸æ¯æ å°ï¼å¤æï¼å
³èçé常çæ¹å¼ãä½ åªåºè¯¥å¨é常ç¹æ®çæ
åµä¸ä½¿ç¨å®(æ¯å¦ï¼å®¡è®¡ logï¼ç¨æ·ä¼è¯æ°æ®çç)ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>meta-type</literal> attribute allows the application to specify a custom type that maps database column values to persistent classes that have identifier properties of the type specified by <literal>id-type</literal>. You must specify the mapping from values of the meta-type to class names."
+msgstr "<literal>meta-type</literal> å±æ§ä½¿å¾åºç¨ç¨åºè½æå®ä¸ä¸ªå°æ°æ®åºå段çå¼æ å°å°æä¹
åç±»çèªå®ä¹ç±»åãè¿ä¸ªæä¹
åç±»å
å«æç¨ <literal>id-type</literal> æå®çæ è¯ç¬¦å±æ§ãä½ å¿
é¡»æå®ä» meta-type çå¼å°ç±»åçæ å°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the property name."
+msgstr "<literal>name</literal>ï¼å±æ§å"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>id-type</literal>: the identifier type."
+msgstr "<literal>id-type</literal>ï¼æ è¯ç¬¦ç±»å"
+
+#. 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)æ å°çä»»ä½ç±»åã "
+
+#. 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>ï¼ï¼çº§èçç±»åã"
+
+#. 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ï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate types"
+msgstr "Hibernate çç±»å "
+
+#. Tag: title
+#, no-c-format
+msgid "Entities and values"
+msgstr "å®ä½ï¼Entitiesï¼åå¼ï¼valuesï¼"
+
+#. Tag: para
+#, no-c-format
+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 模åä¸å
³äºå¯¹è±¡éè¿å¯è§¦åä¿ææä¹
æ§æä¸äºä¸å â æ¯è¾èµ·æ¥æ´å æ¥è¿åºç¨ç¨åºå¯¹è±¡é常å¨ä¸ä¸ªå¤§ç³»ç»ä¸ç使ç¨æ¹æ³ãå®ä½æ¯æ循ç¯å¼ç¨å交åå¼ç¨ï¼å®ä»¬ä¹å¯ä»¥å ä¸çæ¬ä¿¡æ¯ã "
+
+#. 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>ç±»åå®ä¾çå¼ç¨ãå¼å¯ä»¥æ¯åå§ç±»åï¼éåï¼ä¸æ¯éåä¸ç对象ï¼ï¼ç»ä»¶æè
ç¹å®çä¸å¯å对象ãä¸å®ä½ä¸åï¼å¼ï¼ç¹å«æ¯éååç»ä»¶ï¼æ¯éè¿å¯è§¦åæ§æ¥è¿è¡æä¹
ååå é¤çãå 为å¼å¯¹è±¡ï¼ååå§ç±»åæ°æ®ï¼æ¯éçå
å«ä»ä»¬çå®ä½è被æä¹
ååå é¤çï¼ä»ä»¬ä¸è½è¢«ç¬ç«çå ä¸çæ¬ä¿¡æ¯ãå¼æ²¡æç¬ç«çæ è¯ï¼æ以ä»ä»¬ä¸è½è¢«ä¸¤ä¸ªå®ä½æè
éåå
±äº«ã "
+
+#. 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 æä¾çç±»åï¼ç±»ï¼é½æ¯å¼ç±»åçè¯ä¹ï¼èç¨äºèªå®ä¹ç±»åå¯è½è¢«æ å°ä¸ºå®ä½ç±»åæå¼ç±»åè¯ä¹ãéç¨åªç§ç±»åçè¯ä¹åå³äºå¼å人åãå¨é¢å模åä¸ï¼å¯»æ¾å®ä½ç±»çä¸ä¸ªå¥½çº¿ç´¢æ¯å
±äº«å¼ç¨æåè¿ä¸ªç±»çåä¸å®ä¾ï¼èç»åæèåé常被转å为å¼ç±»åã "
+
+#. Tag: para
+#, no-c-format
+msgid "We will revisit both concepts throughout this reference guide."
+msgstr "æ们ä¼å¨æ¬ææ¡£ä¸éå¤ç¢°å°è¿ä¸¤ä¸ªæ¦å¿µã "
+
+#. 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><class></literal>, <literal><subclass></literal> and so on are used. For value types we use <literal><property></literal>, <literal><component></literal>etc., that usually have a <literal>type</literal> attribute. The value of this attribute is the name of a Hibernate <emphasis>mapping type</emphasis>. Hibernate provides a range of mappings for standard JDK value types out of the box. You can write your own mapping types and implement your own custom conversion strategies."
+msgstr "ææå¨äºå° java ç±»åç³»ç»(åå¼åè
å®ä¹çå®ä½åå¼ç±»å)æ å°å° SQL/æ°æ®åºç±»åç³»ç»ãHibernate æä¾äºè¿æ¥ä¸¤ä¸ªç³»ç»ä¹é´çæ¡¥æ¢ï¼å¯¹äºå®ä½ç±»åï¼æä»¬ä½¿ç¨ <literal><class></literal>ï¼<literal><subclass></literal> ççã对äºå¼ç±»åï¼æä»¬ä½¿ç¨ <literal><property></literal>ï¼<literal><component></literal> åå
¶ä»ï¼é常è·éç <literal>type</literal> å±æ§ãè¿ä¸ªå±æ§çå¼æ¯Hibernate ç<emphasis>æ å°ç±»å</emphasis>çååãHibernate æä¾äºè®¸å¤ç°æçæ å°ï¼æ åç JDK å¼ç±»åï¼ãä½ ä¹å¯ä»¥ç¼åèªå·±çæ å°ç±»å并å®ç°èªå®ä¹çåæ¢çç¥ï¼éåæ们ä¼çå°è¿ç¹ã "
+
+#. Tag: para
+#, no-c-format
+msgid "With the exception of collections, all built-in Hibernate types support null semantics."
+msgstr "ææç Hibernate å
建类åï¼é¤äº collections 以å¤ï¼é½æ¯æ空ï¼nullï¼è¯ä¹ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Basic value types"
+msgstr "åºæ¬å¼ç±»å"
+
+#. Tag: para
+#, no-c-format
+msgid "The built-in <emphasis>basic mapping types</emphasis> can be roughly categorized into the following:"
+msgstr "å
ç½®ç <emphasis>basic mapping types</emphasis> å¯ä»¥å¤§è´å°å类为ï¼"
+
+#. Tag: 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>"
+
+#. 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> çå¦å¤è¯´æ³ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>string</literal>"
+msgstr "<literal>string</literal>"
+
+#. 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>ï¼çæ å°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>date, time, timestamp</literal>"
+msgstr "<literal>date, time, timestamp</literal>"
+
+#. 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>ï¼æçä»·ç±»åï¼çæ å°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>calendar, calendar_date</literal>"
+msgstr "<literal>calendar, calendar_date</literal>"
+
+#. 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>ï¼æçä»·ç±»åï¼çæ å°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>big_decimal, big_integer</literal>"
+msgstr "<literal>big_decimal, big_integer</literal>"
+
+#. 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>ç±»åï¼çæ å°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>locale, timezone, currency</literal>"
+msgstr "<literal>locale, timezone, currency</literal>"
+
+#. 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>ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>class</literal>"
+msgstr "<literal>class</literal>"
+
+#. 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> 被æ å°ä¸ºå®çå
¨éå®åã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>binary</literal>"
+msgstr "<literal>binary</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Maps byte arrays to an appropriate SQL binary type."
+msgstr "æåèæ°ç»ï¼byte arraysï¼æ å°ä¸ºå¯¹åºç SQL äºè¿å¶ç±»åã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>text</literal>"
+msgstr "<literal>text</literal>"
+
+#. 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> ç±»åã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>serializable</literal>"
+msgstr "<literal>serializable</literal>"
+
+#. 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>ã "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>clob, blob</literal>"
+msgstr "<literal>clob, blob</literal>"
+
+#. 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 对象å¯è½å¨ä¸ä¸ªäºå¡ä¹å¤æ¯æ æ³éç¨çãï¼èä¸, 驱å¨ç¨åºå¯¹è¿ç§ç±»åçæ¯æå
满çè¡¥ä¸åååçç¾ãï¼ "
+
+#. 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>"
+
+#. 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>ãè¦æ¹åå±æ§çå¼ï¼å¹¶ä¸ä¿åè¿ä¸æ¹åï¼åºç¨ç¨åºå¿
须对è¿ä¸å±æ§éæ°è®¾ç½®ä¸ä¸ªæ°çï¼ä¸ä¸æ ·çï¼å¯¹è±¡ã "
+
+#. 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> ä¹å¤çä»»ä½åºç¡ç±»åãï¼èåæ è¯ä¹æ¯å
许çï¼åé¢ä¼è¯´å°ãï¼"
+
+#. 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> ç±»åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom value types"
+msgstr "èªå®ä¹å¼ç±»å"
+
+#. 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>ã "
+
+#. 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> è¿ä¸ªä¾åï¼ççå®æ¯æä¹åçã "
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the use of <literal><column></literal> tags to map a property to multiple columns."
+msgstr "注æä½¿ç¨ <literal><column></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> æ¥å£ä¸ºæ´ç¹æ®ç使ç¨æ¹å¼æä¾æ¯æã"
+
+#. 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><type></literal> element in your mapping files."
+msgstr "ä½ çè³å¯ä»¥å¨ä¸ä¸ªæ å°æ件ä¸æä¾åæ°ç»ä¸ä¸ª <literal>UserType</literal>ã 为äºè¿æ ·åï¼ä½ ç <literal>UserType</literal> å¿
é¡»å®ç° <literal>org.hibernate.usertype.ParameterizedType</literal> æ¥å£ã为äºç»èªå®ä¹ç±»åæä¾åæ°ï¼ä½ å¯ä»¥å¨æ å°æ件ä¸ä½¿ç¨ <literal><type></literal> å
ç´ ã "
+
+#. Tag: para
+#, 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> åæ°çå¼ã"
+
+#. 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><typedef></literal> element. Typedefs assign a name to a custom type, and can also contain a list of default parameter values if the type is parameterized."
+msgstr "å¦æä½ é常é¢ç¹å°ä½¿ç¨æä¸ <literal>UserType</literal>ï¼å¯ä»¥ä¸ºä»å®ä¹ä¸ä¸ªç®ç§°ãè¿å¯ä»¥éè¿ä½¿ç¨ <literal><typedef></literal> å
ç´ æ¥å®ç°ãTypedefs 为ä¸èªå®ä¹ç±»åèµäºä¸ä¸ªå称ï¼å¹¶ä¸å¦ææ¤ç±»åæ¯åæ°åçï¼è¿å¯ä»¥å
å«ä¸ç³»åé»è®¤çåæ°å¼ã "
+
+#. Tag: 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 ä¸æä¾çåæ°ã"
+
+#. 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> æ¥æ å°æ¯ä¸éçéæ©ï¼è½ç¶ä»å¯ä»¥å¾å®¹æå°è¢«æ å°æç»ä»¶ãè¿æ ·åçå¨æºä¹ä¸æ¯æ½è±¡ã使ç¨èªå®ä¹ç±»åï¼ä»¥ååè¥ä½ æ¹å表示éé¢çæ¹æ³æ¶ï¼å®å¯ä»¥ä¿è¯æ å°æ件ä¸éè¦ä¿®æ¹ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping a class more than once"
+msgstr "å¤æ¬¡æ å°åä¸ä¸ªç±»"
+
+#. 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ï¼å®ä½ååï¼ã "
+
+#. 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> çã "
+
+#. Tag: title
+#, no-c-format
+msgid "SQL quoted identifiers"
+msgstr "SQL ä¸å¼å·å
å´çæ è¯ç¬¦"
+
+#. 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 ä¸æ¯ååå¼å·)ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Metadata alternatives"
+msgstr "å
¶ä»å
æ°æ®ï¼Metadataï¼"
+
+#. 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ï¼çæ¹æ³ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Using XDoclet markup"
+msgstr "ä½¿ç¨ XDoclet æ è®°"
+
+#. 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> ç±»çä¾åã "
+
+#. Tag: para
+#, no-c-format
+msgid "See the Hibernate website for more examples of XDoclet and Hibernate."
+msgstr "åè Hibernate ç½ç«æ´å¤ç Xdoclet å Hibernate çä¾åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using JDK 5.0 Annotations"
+msgstr "ä½¿ç¨ JDK 5.0 ç注解ï¼Annotationï¼"
+
+#. 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 çå
æ°æ®ã "
+
+#. Tag: para
+#, no-c-format
+msgid "This is an example of a POJO class annotated as an EJB entity bean:"
+msgstr "è¿æ¯ä¸ä¸ªè¢«æ³¨è§£ä¸º EJB entity bean ç POJO ç±»çä¾å"
+
+#. 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 模åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Generated properties"
+msgstr "æ°æ®åºçæå±æ§ï¼Generated Propertiesï¼ "
+
+#. 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 æ¥è·å¾çæçå¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Properties marked as generated must additionally be non-insertable and non-updateable. Only <link linkend=\"mapping-declaration-version\">versions</link>, <link linkend=\"mapping-declaration-timestamp\">timestamps</link>, and <link linkend=\"mapping-declaration-property\">simple properties</link>, can be marked as generated."
+msgstr "被æ æ为 generated çå±æ§è¿å¿
é¡»æ¯ non-insertable å non-updateable çãåªæ <link linkend=\"mapping-declaration-version\">versions</link>ã<link linkend=\"mapping-declaration-timestamp\">timestamps</link> å <link linkend=\"mapping-declaration-property\">simple properties</link> å¯ä»¥è¢«æ æ为 generatedã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>never</literal> (the default): the given property value is not generated within the database."
+msgstr "<literal>never</literal>ï¼é»è®¤ï¼æ ææ¤å±æ§å¼ä¸æ¯ä»æ°æ®åºä¸çæã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>insert</literal>: the given property value is generated on insert, but is not regenerated on subsequent updates. Properties like created-date fall into this category. Even though <link linkend=\"mapping-declaration-version\">version</link> and <link linkend=\"mapping-declaration-timestamp\">timestamp</link> properties can be marked as generated, this option is not available."
+msgstr "<literal>insert</literal> â æ ææ¤å±æ§å¼å¨ insert çæ¶åçæï¼ä½æ¯ä¸ä¼å¨éåç update æ¶éæ°çæãæ¯å¦è¯´å建æ¥æå°±å½å±äºè¿ç±»ã注æè½ç¶ <link linkend=\"mapping-declaration-version\">version</link> å <link linkend=\"mapping-declaration-timestamp\">timestamp</link> å±æ§å¯ä»¥è¢«æ 注为 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 æ¶é½ä¼è¢«çæã "
+
+#. Tag: title
+#, no-c-format
+msgid "Column read and write expressions"
+msgstr "å段ç读å表达å¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate allows you to customize the SQL it uses to read and write the values of columns mapped to <link linkend=\"mapping-declaration-property\">simple properties</link>. For example, if your database provides a set of data encryption functions, you can invoke them for individual columns like this: <programlisting role=\"XML\"><property name=\"creditCardNumber\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" write=\"encrypt(?)\"/> </property></programlisting>"
+msgstr "Hibernate å
è®¸ä½ èªå®ä¹ SQL 以读åæ å°<link linkend=\"mapping-declaration-property\">ç®åå±æ§</link>çå段å¼ãä¾å¦ï¼å¦æä½ çæ°æ®åºæä¾äºä¸å¥æ°æ®å å¯æ¹æ³ï¼ä½ å¯ä»¥å¨å个å段ä¸è°ç¨å®ä»¬ï¼<programlisting role=\"XML\"><property name=\"creditCardNumber\"> <column name=\"credit_card_num\" read=\"decrypt(credit_card_num)\" write=\"encrypt(?)\"/> </property></programlisting>"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate applies the custom expressions automatically whenever the property is referenced in a query. This functionality is similar to a derived-property <literal>formula</literal> with two differences:"
+msgstr "æ¯å½å±æ§å¨æ¥è¯¢é被å¼ç¨æ¶ï¼Hibernate é½èªå¨åºç¨èªå®ä¹ç表达å¼ãè¿ç§åè½å derived-property <literal>formula</literal> ç¸ä¼¼ï¼ä½æ两个ä¸åçå°æ¹ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The property is backed by one or more columns that are exported as part of automatic schema generation."
+msgstr "å±æ§ç±ä¸ä¸ªæå¤ä¸ªå±æ§ç»æï¼å®ä½ä¸ºèªå¨æ¨¡å¼çæçä¸é¨å导åºã"
+
+#. Tag: para
+#, no-c-format
+msgid "The property is read-write, not read-only."
+msgstr "å±æ§æ¯å¯è¯»åçï¼éåªè¯»çã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>write</literal> expression, if specified, must contain exactly one '?' placeholder for the value."
+msgstr "å¦ææå®äº <literal>write</literal> 表达å¼ï¼å®å¿
é¡»åªå
å«ä¸ä¸ªâ?âå ä½ç¬¦ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Auxiliary database objects"
+msgstr "è¾
å©æ°æ®åºå¯¹è±¡ï¼Auxiliary Database Objectsï¼ "
+
+#. 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ï¼ççï¼ãæ¬è´¨ä¸æ两ç§æ¨¡å¼æ¥å®ä¹è¾
å©æ°æ®åºå¯¹è±¡... "
+
+#. Tag: para
+#, no-c-format
+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> æ¥å£ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally, these database objects can be optionally scoped so that they only apply when certain dialects are used."
+msgstr "è¿æï¼è¿äºæ°æ®åºå¯¹è±¡å¯ä»¥ç¹å«æå®ä¸ºä»
å¨ç¹å®çæ¹è¨ä¸æ使ç¨ã "
+
+#~ 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 ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\"\n"
+#~ " table=\"cats\"\n"
+#~ " discriminator-value=\"C\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <discriminator column=\"subclass\"\n"
+#~ " type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"weight\"/>\n"
+#~ "\n"
+#~ " <property name=\"birthdate\"\n"
+#~ " type=\"date\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"color\"\n"
+#~ " type=\"eg.types.ColorUserType\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"sex\"\n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <property name=\"litterId\"\n"
+#~ " column=\"litterId\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"mother\"\n"
+#~ " column=\"mother_id\"\n"
+#~ " update=\"false\"/>\n"
+#~ "\n"
+#~ " <set name=\"kittens\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"litter_id\">\n"
+#~ " <key column=\"mother_id\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"DomesticCat\"\n"
+#~ " discriminator-value=\"D\">\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
+#~ " <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
+#~ "]>\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"your.domain\">\n"
+#~ " <class name=\"MyEntity\">\n"
+#~ " <id name=\"id\" type=\"my-custom-id-type\">\n"
+#~ " ...\n"
+#~ " </id>\n"
+#~ " <class>\n"
+#~ " &types;\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\" [\n"
+#~ " <!ENTITY types SYSTEM \"classpath://your/domain/types.xml\">\n"
+#~ "]>\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"your.domain\">\n"
+#~ " <class name=\"MyEntity\">\n"
+#~ " <id name=\"id\" type=\"my-custom-id-type\">\n"
+#~ " ...\n"
+#~ " </id>\n"
+#~ " <class>\n"
+#~ " &types;\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping\n"
+#~ " schema=\"schemaName\"\n"
+#~ " catalog=\"catalogName\"\n"
+#~ " default-cascade=\"cascade_style\"\n"
+#~ " default-access=\"field|property|ClassName\"\n"
+#~ " default-lazy=\"true|false\"\n"
+#~ " auto-import=\"true|false\"\n"
+#~ " package=\"package.name\"\n"
+#~ " />]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping\n"
+#~ " schema=\"schemaName\"\n"
+#~ " catalog=\"catalogName\"\n"
+#~ " default-cascade=\"cascade_style\"\n"
+#~ " default-access=\"field|property|ClassName\"\n"
+#~ " default-lazy=\"true|false\"\n"
+#~ " auto-import=\"true|false\"\n"
+#~ " package=\"package.name\"\n"
+#~ " />]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tableName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " select-before-update=\"true|false\"\n"
+#~ " polymorphism=\"implicit|explicit\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " persister=\"PersisterClass\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " optimistic-lock=\"none|version|dirty|all\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " check=\"arbitrary sql check condition\"\n"
+#~ " rowid=\"rowid\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tableName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " select-before-update=\"true|false\"\n"
+#~ " polymorphism=\"implicit|explicit\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " persister=\"PersisterClass\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " optimistic-lock=\"none|version|dirty|all\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " check=\"arbitrary sql check condition\"\n"
+#~ " rowid=\"rowid\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Summary\">\n"
+#~ " <subselect>\n"
+#~ " select item.name, max(bid.amount), count(*)\n"
+#~ " from item\n"
+#~ " join bid on bid.item_id = item.id\n"
+#~ " group by item.name\n"
+#~ " </subselect>\n"
+#~ " <synchronize table=\"item\"/>\n"
+#~ " <synchronize table=\"bid\"/>\n"
+#~ " <id name=\"name\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Summary\">\n"
+#~ " <subselect>\n"
+#~ " select item.name, max(bid.amount), count(*)\n"
+#~ " from item\n"
+#~ " join bid on bid.item_id = item.id\n"
+#~ " group by item.name\n"
+#~ " </subselect>\n"
+#~ " <synchronize table=\"item\"/>\n"
+#~ " <synchronize table=\"bid\"/>\n"
+#~ " <id name=\"name\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<id\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " column=\"column_name\"\n"
+#~ " unsaved-value=\"null|any|none|undefined|id_value\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "\n"
+#~ " <generator class=\"generatorClass\"/>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " column=\"column_name\"\n"
+#~ " unsaved-value=\"null|any|none|undefined|id_value\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "\n"
+#~ " <generator class=\"generatorClass\"/>\n"
+#~ "</id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+#~ " <param name=\"table\">uid_table</param>\n"
+#~ " <param name=\"column\">next_hi_value_column</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"org.hibernate.id.TableHiLoGenerator\">\n"
+#~ " <param name=\"table\">uid_table</param>\n"
+#~ " <param name=\"column\">next_hi_value_column</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+
+#~ msgid "increment"
+#~ msgstr "increment"
+
+#~ msgid "identity"
+#~ msgstr "identity"
+
+#~ msgid "sequence"
+#~ msgstr "sequence"
+
+#~ msgid "hilo"
+#~ msgstr "hilo"
+
+#~ msgid "seqhilo"
+#~ msgstr "seqhilo"
+
+#~ msgid "guid"
+#~ msgstr "guid"
+
+#~ msgid "native"
+#~ msgstr "native"
+
+#~ msgid "assigned"
+#~ msgstr "assigned"
+
+#~ msgid "select"
+#~ msgstr "select"
+
+#~ msgid "foreign"
+#~ msgstr "foreign"
+
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"hilo\">\n"
+#~ " <param name=\"table\">hi_value</param>\n"
+#~ " <param name=\"column\">next_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"hilo\">\n"
+#~ " <param name=\"table\">hi_value</param>\n"
+#~ " <param name=\"column\">next_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"seqhilo\">\n"
+#~ " <param name=\"sequence\">hi_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"cat_id\">\n"
+#~ " <generator class=\"seqhilo\">\n"
+#~ " <param name=\"sequence\">hi_value</param>\n"
+#~ " <param name=\"max_lo\">100</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">person_id_sequence</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">person_id_sequence</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
+#~ "\"0\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\" unsaved-value="
+#~ "\"0\">\n"
+#~ " <generator class=\"identity\"/>\n"
+#~ "</id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"select\">\n"
+#~ " <param name=\"key\">socialSecurityNumber</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<id name=\"id\" type=\"long\" column=\"person_id\">\n"
+#~ " <generator class=\"select\">\n"
+#~ " <param name=\"key\">socialSecurityNumber</param>\n"
+#~ " </generator>\n"
+#~ "</id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<composite-id\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " mapped=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|.\"\n"
+#~ "\n"
+#~ " <key-property name=\"propertyName\" type=\"typename\" column="
+#~ "\"column_name\"/>\n"
+#~ " <key-many-to-one name=\"propertyName class=\"ClassName\" column="
+#~ "\"column_name\"/>\n"
+#~ " ......\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<composite-id\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " mapped=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\">\n"
+#~ " node=\"element-name|.\"\n"
+#~ "\n"
+#~ " <key-property name=\"propertyName\" type=\"typename\" column="
+#~ "\"column_name\"/>\n"
+#~ " <key-many-to-one name=\"propertyName class=\"ClassName\" column="
+#~ "\"column_name\"/>\n"
+#~ " ......\n"
+#~ "</composite-id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<composite-id>\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<composite-id class=\"MedicareId\" mapped=\"true\">\n"
+#~ " <key-property name=\"medicareNumber\"/>\n"
+#~ " <key-property name=\"dependent\"/>\n"
+#~ "</composite-id>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<discriminator\n"
+#~ " column=\"discriminator_column\"\n"
+#~ " type=\"discriminator_type\"\n"
+#~ " force=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary sql expression\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<discriminator\n"
+#~ " column=\"discriminator_column\"\n"
+#~ " type=\"discriminator_type\"\n"
+#~ " force=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary sql expression\"\n"
+#~ "/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<discriminator\n"
+#~ " formula=\"case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
+#~ "\"\n"
+#~ " type=\"integer\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<version\n"
+#~ " column=\"version_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|negative|undefined\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<version\n"
+#~ " column=\"version_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " type=\"typename\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|negative|undefined\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<timestamp\n"
+#~ " column=\"timestamp_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|undefined\"\n"
+#~ " source=\"vm|db\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<timestamp\n"
+#~ " column=\"timestamp_column\"\n"
+#~ " name=\"propertyName\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unsaved-value=\"null|undefined\"\n"
+#~ " source=\"vm|db\"\n"
+#~ " generated=\"never|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ "/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<property\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " type=\"typename\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " generated=\"never|insert|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<property\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " type=\"typename\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " generated=\"never|insert|always\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ "/>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<property name=\"totalPrice\"\n"
+#~ " formula=\"( SELECT SUM (li.quantity*p.price) FROM LineItem li, "
+#~ "Product p\n"
+#~ " WHERE li.productId = p.productId\n"
+#~ " AND li.customerId = customerId\n"
+#~ " AND li.orderNumber = orderNumber )\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<many-to-one\n"
+#~ " name=\"propertyName\"\n"
+#~ " column=\"column_name\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " update=\"true|false\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " lazy=\"proxy|no-proxy|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " formula=\"arbitrary SQL expression\"\n"
+#~ " node=\"element-name|@attribute-name|element/@attribute|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " index=\"index_name\"\n"
+#~ " unique_key=\"unique_key_id\"\n"
+#~ " foreign-key=\"foreign_key_name\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" class=\"Product\" column="
+#~ "\"PRODUCT_ID\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" class=\"Product\" column=\"PRODUCT_ID\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"serialNumber\" unique=\"true\" type=\"string\" "
+#~ "column=\"SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"serialNumber\" unique=\"true\" type=\"string\" column="
+#~ "\"SERIAL_NUMBER\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"product\" property-ref=\"serialNumber\" "
+#~ "column=\"PRODUCT_SERIAL_NUMBER\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"product\" property-ref=\"serialNumber\" column="
+#~ "\"PRODUCT_SERIAL_NUMBER\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"owner\" property-ref=\"identity.ssn\" column="
+#~ "\"OWNER_SSN\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "<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"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<one-to-one name=\"person\" class=\"Person\"/>]]>"
+#~ msgstr "<one-to-one name=\"person\" class=\"Person\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" constrained="
+#~ "\"true\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name=\"employee\" class=\"Employee\" constrained=\"true\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"foreign\">\n"
+#~ " <param name=\"property\">employee</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <one-to-one name=\"employee\"\n"
+#~ " class=\"Employee\"\n"
+#~ " constrained=\"true\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID"
+#~ "\" unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" class=\"Person\" column=\"PERSON_ID\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"employee\" class=\"Employee\" property-ref="
+#~ "\"person\"/>]]>"
+#~ msgstr ""
+#~ "<one-to-one name\"employee\" class=\"Employee\" property-ref=\"person"
+#~ "\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>]]>"
+#~ msgstr ""
+#~ "<natural-id mutable=\"true|false\"/>\n"
+#~ " <property ... />\n"
+#~ " <many-to-one ... />\n"
+#~ " ......\n"
+#~ "</natural-id>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<component\n"
+#~ " name=\"propertyName\"\n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>]]>"
+#~ msgstr ""
+#~ "<component \n"
+#~ " name=\"propertyName\" \n"
+#~ " class=\"className\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</component>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<properties\n"
+#~ " name=\"logicalName\"\n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>]]>"
+#~ msgstr ""
+#~ "<properties \n"
+#~ " name=\"logicalName\" \n"
+#~ " insert=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ ">\n"
+#~ " \n"
+#~ " <property ...../>\n"
+#~ " <many-to-one .... />\n"
+#~ " ........\n"
+#~ "</properties>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ "\n"
+#~ " ...\n"
+#~ " <properties name=\"name\"\n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"personNumber\"/>\n"
+#~ " ...\n"
+#~ " <properties name=\"name\" \n"
+#~ " unique=\"true\" update=\"false\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </properties>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"person\"\n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"person\" \n"
+#~ " class=\"Person\" property-ref=\"name\">\n"
+#~ " <column name=\"firstName\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ " <column name=\"lastName\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>]]>"
+#~ msgstr ""
+#~ "<subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " discriminator-value=\"discriminator_value\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " extends=\"SuperclassName\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>]]>"
+#~ msgstr ""
+#~ "<joined-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <key .... >\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</joined-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class name=\"Cat\" table=\"CATS\">\n"
+#~ " <id name=\"id\" column=\"uid\" type=\"long\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthdate\" type=\"date\"/>\n"
+#~ " <property name=\"color\" not-null=\"true\"/>\n"
+#~ " <property name=\"sex\" not-null=\"true\"/>\n"
+#~ " <property name=\"weight\"/>\n"
+#~ " <many-to-one name=\"mate\"/>\n"
+#~ " <set name=\"kittens\">\n"
+#~ " <key column=\"MOTHER\"/>\n"
+#~ " <one-to-many class=\"Cat\"/>\n"
+#~ " </set>\n"
+#~ " <joined-subclass name=\"DomesticCat\" table="
+#~ "\"DOMESTIC_CATS\">\n"
+#~ " <key column=\"CAT\"/>\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </joined-subclass>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"eg.Dog\">\n"
+#~ " <!-- mapping for Dog could go here -->\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>]]>"
+#~ msgstr ""
+#~ "<union-subclass\n"
+#~ " name=\"ClassName\"\n"
+#~ " table=\"tablename\"\n"
+#~ " proxy=\"ProxyInterface\"\n"
+#~ " lazy=\"true|false\"\n"
+#~ " dynamic-update=\"true|false\"\n"
+#~ " dynamic-insert=\"true|false\"\n"
+#~ " schema=\"schema\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " extends=\"SuperclassName\"\n"
+#~ " abstract=\"true|false\"\n"
+#~ " persister=\"ClassName\"\n"
+#~ " subselect=\"SQL expression\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\">\n"
+#~ "\n"
+#~ " <property .... />\n"
+#~ " .....\n"
+#~ "</union-subclass>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ "\n"
+#~ " <key ... />\n"
+#~ "\n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>]]>"
+#~ msgstr ""
+#~ "<join\n"
+#~ " table=\"tablename\"\n"
+#~ " schema=\"owner\"\n"
+#~ " catalog=\"catalog\"\n"
+#~ " fetch=\"join|select\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " optional=\"true|false\">\n"
+#~ " \n"
+#~ " <key ... />\n"
+#~ " \n"
+#~ " <property ... />\n"
+#~ " ...\n"
+#~ "</join>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ...]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\"\n"
+#~ " table=\"PERSON\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">...</id>\n"
+#~ "\n"
+#~ " <join table=\"ADDRESS\">\n"
+#~ " <key column=\"ADDRESS_ID\"/>\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </join>\n"
+#~ " ..."
+
+#, fuzzy
+#~ msgid "<title>Key</title>"
+#~ msgstr "<title>é®ï¼keyï¼</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<key\n"
+#~ " column=\"columnname\"\n"
+#~ " on-delete=\"noaction|cascade\"\n"
+#~ " property-ref=\"propertyName\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " update=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>]]>"
+#~ msgstr ""
+#~ "<column\n"
+#~ " name=\"column_name\"\n"
+#~ " length=\"N\"\n"
+#~ " precision=\"N\"\n"
+#~ " scale=\"N\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " unique-key=\"multicolumn_unique_key_name\"\n"
+#~ " index=\"index_name\"\n"
+#~ " sql-type=\"sql_type_name\"\n"
+#~ " check=\"SQL expression\"\n"
+#~ " default=\"SQL expression\"/>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<formula>SQL expression</formula>]]>"
+#~ msgstr "<formula>SQL expression</formula>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"homeAddress\" class=\"Address\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"person_id\" not-null=\"true\" length=\"10\"/>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<import class=\"java.lang.Object\" rename=\"Universe\"/>]]>"
+#~ msgstr "<import class=\"java.lang.Object\" rename=\"Universe\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<import\n"
+#~ " class=\"ClassName\"\n"
+#~ " rename=\"ShortName\"\n"
+#~ "/>"
+
+#, fuzzy
+#~ msgid "<title>Any</title>"
+#~ msgstr "<title>any</title>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"being\" id-type=\"long\" meta-type=\"string\">\n"
+#~ " <meta-value value=\"TBL_ANIMAL\" class=\"Animal\"/>\n"
+#~ " <meta-value value=\"TBL_HUMAN\" class=\"Human\"/>\n"
+#~ " <meta-value value=\"TBL_ALIEN\" class=\"Alien\"/>\n"
+#~ " <column name=\"table_name\"/>\n"
+#~ " <column name=\"id\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any\n"
+#~ " name=\"propertyName\"\n"
+#~ " id-type=\"idtypename\"\n"
+#~ " meta-type=\"metatypename\"\n"
+#~ " cascade=\"cascade_style\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ ">\n"
+#~ " <meta-value ... />\n"
+#~ " <meta-value ... />\n"
+#~ " .....\n"
+#~ " <column .... />\n"
+#~ " <column .... />\n"
+#~ " .....\n"
+#~ "</any>"
+
+#~ msgid "string"
+#~ msgstr "string"
+
+#, fuzzy
+#~ msgid "class"
+#~ msgstr "åç±»ï¼subclassï¼"
+
+#~ msgid "binary"
+#~ msgstr "binary"
+
+#~ msgid "text"
+#~ msgstr "text"
+
+#~ msgid "serializable"
+#~ msgstr "serializable"
+
+#~ msgid "clob, blob"
+#~ msgstr "clob, blob"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"twoStrings\" type=\"org.hibernate.test."
+#~ "DoubleStringType\">\n"
+#~ " <column name=\"first_string\"/>\n"
+#~ " <column name=\"second_string\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"priority\">\n"
+#~ " <type name=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ " </type>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType"
+#~ "\" name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>]]>"
+#~ msgstr ""
+#~ "<typedef class=\"com.mycompany.usertypes.DefaultValueIntegerType\" "
+#~ "name=\"default_zero\">\n"
+#~ " <param name=\"default\">0</param>\n"
+#~ "</typedef>"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"priority\" type=\"default_zero\"/>]]>"
+#~ msgstr "<property name=\"priority\" type=\"default_zero\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Contract\" table=\"Contracts\"\n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\"\n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\"\n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\"\n"
+#~ " column=\"currentContractId\"\n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Contract\" table=\"Contracts\" \n"
+#~ " entity-name=\"CurrentContract\">\n"
+#~ " ...\n"
+#~ " <set name=\"history\" inverse=\"true\" \n"
+#~ " order-by=\"effectiveEndDate desc\">\n"
+#~ " <key column=\"currentContractId\"/>\n"
+#~ " <one-to-many entity-name=\"HistoricalContract\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Contract\" table=\"ContractHistory\" \n"
+#~ " entity-name=\"HistoricalContract\">\n"
+#~ " ...\n"
+#~ " <many-to-one name=\"currentContract\" \n"
+#~ " column=\"currentContractId\" \n"
+#~ " entity-name=\"CurrentContract\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class=\"assigned\"/"
+#~ "></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"LineItem\" table=\"`Line Item`\">\n"
+#~ " <id name=\"id\" column=\"`Item Id`\"/><generator class="
+#~ "\"assigned\"/></id>\n"
+#~ " <property name=\"itemNumber\" column=\"`Item #`\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * @hibernate.class\n"
+#~ " * table=\"CATS\"\n"
+#~ " */\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ " private Date birthdate;\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ "\n"
+#~ " /*\n"
+#~ " * @hibernate.id\n"
+#~ " * generator-class=\"native\"\n"
+#~ " * column=\"CAT_ID\"\n"
+#~ " */\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.many-to-one\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " */\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"BIRTH_DATE\"\n"
+#~ " */\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"WEIGHT\"\n"
+#~ " */\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"COLOR\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " */\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ " /**\n"
+#~ " * @hibernate.set\n"
+#~ " * inverse=\"true\"\n"
+#~ " * order-by=\"BIRTH_DATE\"\n"
+#~ " * @hibernate.collection-key\n"
+#~ " * column=\"PARENT_ID\"\n"
+#~ " * @hibernate.collection-one-to-many\n"
+#~ " */\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "\n"
+#~ " /**\n"
+#~ " * @hibernate.property\n"
+#~ " * column=\"SEX\"\n"
+#~ " * not-null=\"true\"\n"
+#~ " * update=\"false\"\n"
+#~ " */\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "@Entity(access = AccessType.FIELD)\n"
+#~ "public class Customer implements Serializable {\n"
+#~ "\n"
+#~ " @Id;\n"
+#~ " Long id;\n"
+#~ "\n"
+#~ " String firstName;\n"
+#~ " String lastName;\n"
+#~ " Date birthday;\n"
+#~ "\n"
+#~ " @Transient\n"
+#~ " Integer age;\n"
+#~ "\n"
+#~ " @Embedded\n"
+#~ " private Address homeAddress;\n"
+#~ "\n"
+#~ " @OneToMany(cascade=CascadeType.ALL)\n"
+#~ " @JoinColumn(name=\"CUSTOMER_ID\")\n"
+#~ " Set<Order> orders;\n"
+#~ "\n"
+#~ " // Getter/setter and business methods\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <create>CREATE TRIGGER my_trigger ...</create>\n"
+#~ " <drop>DROP TRIGGER my_trigger</drop>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9iDialect\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle10gDialect\"/>\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " ...\n"
+#~ " <database-object>\n"
+#~ " <definition class=\"MyTriggerDefinition\"/>\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.Oracle9Dialect\"/"
+#~ ">\n"
+#~ " <dialect-scope name=\"org.hibernate.dialect.OracleDialect\"/"
+#~ ">\n"
+#~ " </database-object>\n"
+#~ "</hibernate-mapping>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/batch.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/batch.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/batch.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,416 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 08:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch processing"
+msgstr "æ¹éå¤çï¼Batch processingï¼"
+
+#. 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 æ¡è®°å½æå
¥å°æ°æ®åºçä¸ä¸ªå¾å¤©ççåæ³å¯è½æ¯è¿æ ·çï¼"
+
+#. 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 级å«çç¼ååºè¿è¡äºç¼åçç¼æ
ã "
+
+#. 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 ä¹é´ï¼ï¼"
+
+#. 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 级å«éæçå
³éæå
¥è¯å¥çæ¹éæ§è¡ã "
+
+#. 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:"
+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> æ¥å
³éä¸äºçº§ç¼åç交äºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Batch inserts"
+msgstr "æ¹éæå
¥ï¼Batch insertsï¼"
+
+#. 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> æ¥æ§å¶ç¬¬ä¸çº§ç¼åç大å°ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Batch updates"
+msgstr "æ¹éæ´æ°ï¼Batch updatesï¼"
+
+#. 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> æ¹æ³ä»¥ä¾¿å
åå©ç¨æå¡å¨ç«¯æ¸¸æ æ带æ¥ç好å¤ã "
+
+#. Tag: title
+#, no-c-format
+msgid "The StatelessSession interface"
+msgstr "StatelessSessionï¼æ ç¶æ sessionï¼æ¥å£"
+
+#. 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 ç¸å½æ¥è¿ã "
+
+#. 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ï¼ãå®ä»¬ä¸ä»»ä½æä¹
åä¸ä¸æé½æ²¡æå
³ç³»ã "
+
+#. 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> æä½æå¾å¤§çä¸åã "
+
+#. Tag: title
+#, no-c-format
+msgid "DML-style operations"
+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 (<link linkend=\"queryhql\">HQL</link>)."
+msgstr "å°±åå·²ç»è®¨è®ºçé£æ ·ï¼èªå¨åéæç对象/å
³ç³»æ å°ï¼object/relational mappingï¼å
³æ³¨äºç®¡ç对象çç¶æãè¿å°±æå³ç对象çç¶æåå¨äºå
åï¼å æ¤ç´æ¥æä½ï¼ä½¿ç¨ SQL <literal>Data Manipulation Language</literal>ï¼DML,æ°æ®æä½è¯è¨ï¼è¯å¥ ï¼<literal>INSERT</literal> ,<literal>UPDATE</literal> å <literal>DELETE</literal>ï¼ æ°æ®åºä¸çæ°æ®å°ä¸ä¼å½±åå
åä¸ç对象ç¶æå对象æ°æ®ãä¸è¿ï¼Hibernate æä¾éè¿ Hibernate æ¥è¯¢è¯è¨ï¼<link linkend=\"queryhql\">HQL</link>ï¼æ¥æ§è¡å¤§æ¹é 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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Some points to note:"
+msgstr "è¦æ³¨æçäºé¡¹ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional"
+msgstr "å¨ FROM åå¥ï¼from-clauseï¼ä¸ï¼FROM å
³é®åæ¯å¯éç"
+
+#. 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ï¼ä¸åªè½æä¸ä¸ªå®ä½åï¼å®å¯ä»¥æ¯å«åãå¦æå®ä½åæ¯å«åï¼é£ä¹ä»»ä½è¢«å¼ç¨çå±æ§é½å¿
é¡»å ä¸æ¤å«åçåç¼ï¼å¦æä¸æ¯å«åï¼é£ä¹ä»»ä½æåç¼çå±æ§å¼ç¨é½æ¯éæ³çã "
+
+#. Tag: para
+#, no-c-format
+msgid "No <link linkend=\"queryhql-joins-forms\">joins</link>, either implicit or explicit, can be specified in a bulk HQL query. Sub-queries can be used in the where-clause, where the subqueries themselves may contain joins."
+msgstr "ä¸è½å¨å¤§æ¹é HQL è¯å¥ä¸ä½¿ç¨ <link linkend=\"queryhql-joins-forms\">joins</link> è¿æ¥ï¼æ¾å¼æè
éå¼çé½ä¸è¡ï¼ãä¸è¿å¨ WHERE åå¥ä¸å¯ä»¥ä½¿ç¨åæ¥è¯¢ãå¯ä»¥å¨ where åå¥ä¸ä½¿ç¨åæ¥è¯¢ï¼åæ¥è¯¢æ¬èº«å¯ä»¥å
å« joinã "
+
+#. Tag: para
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr "æ´ä¸ª WHERE åå¥æ¯å¯éçã"
+
+#. 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>ï¼ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "In keeping with the EJB3 specification, HQL <literal>UPDATE</literal> statements, by default, do not effect the <link linkend=\"mapping-declaration-version\">version</link> or the <link linkend=\"mapping-declaration-timestamp\">timestamp</link> property values for the affected entities. However, you can force Hibernate to reset the <literal>version</literal> or <literal>timestamp</literal> property values through the use of a <literal>versioned update</literal>. This is achieved by adding the <literal>VERSIONED</literal> keyword after the <literal>UPDATE</literal> keyword."
+msgstr "HQL <literal>UPDATE</literal> è¯å¥ï¼é»è®¤ä¸ä¼å½±åæ´æ°å®ä½ç <link linkend=\"mapping-declaration-version\">version</link> æ the <link linkend=\"mapping-declaration-timestamp\">timestamp</link> å±æ§å¼ãè¿å 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> è¯å¥èç¨ã "
+
+#. 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> æ¹æ³ï¼"
+
+#. 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 æ å°æ¹å¼çåç±»ç表ã "
+
+#. 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>ãè¦æ³¨æçæ¯ï¼"
+
+#. 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 ... å½¢å¼ã"
+
+#. 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> 天çä¸æ¯æå¤ææ§ã"
+
+#. 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> ç两个å±æ§å¯è½ä¼äº§çç±»åä¸å¹é
é误ï¼è½ç¶æ°æ®åºçº§å¯è½ä¸å åºåæè
å¯ä»¥å¤çè¿ç§è½¬æ¢ã "
+
+#. 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>ï¼å®ä¸è½å¨æ¤ä½¿ç¨ï¼å 为å®æ²¡æå¾å°å
¶å¼çéå¾ã "
+
+#. 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>ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following is an example of an HQL <literal>INSERT</literal> statement execution:"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ§è¡ HQL <literal>INSERT</literal> è¯å¥çä¾åï¼"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ "}\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ "}\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+#~ msgstr "<![CDATA[hibernate.jdbc.batch_size 20]]>"
+
+#~ msgid "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+#~ msgstr "<![CDATA[hibernate.cache.use_second_level_cache false]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+#~ " //flush a batch of inserts and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "for ( int i=0; i<100000; i++ ) {\n"
+#~ " Customer customer = new Customer(.....);\n"
+#~ " session.save(customer);\n"
+#~ " if ( i % 20 == 0 ) { //20, same as the JDBC batch size\n"
+#~ " //flush a batch of inserts and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .setCacheMode(CacheMode.IGNORE)\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "int count=0;\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " if ( ++count % 20 == 0 ) {\n"
+#~ " //flush a batch of updates and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .setCacheMode(CacheMode.IGNORE)\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "int count=0;\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " if ( ++count % 20 == 0 ) {\n"
+#~ " //flush a batch of updates and release memory:\n"
+#~ " session.flush();\n"
+#~ " session.clear();\n"
+#~ " }\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
+#~ "();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " session.update(customer);\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[StatelessSession session = sessionFactory.openStatelessSession"
+#~ "();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ " \n"
+#~ "ScrollableResults customers = session.getNamedQuery(\"GetCustomers\")\n"
+#~ " .scroll(ScrollMode.FORWARD_ONLY);\n"
+#~ "while ( customers.next() ) {\n"
+#~ " Customer customer = (Customer) customers.get(0);\n"
+#~ " customer.updateStuff(...);\n"
+#~ " session.update(customer);\n"
+#~ "}\n"
+#~ " \n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
+#~ "= :oldName\";\n"
+#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
+#~ "= :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlUpdate = \"update Customer c set c.name = :newName where c.name "
+#~ "= :oldName\";\n"
+#~ "// or String hqlUpdate = \"update Customer set name = :newName where name "
+#~ "= :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
+#~ "newName where name = :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "String hqlVersionedUpdate = \"update versioned Customer set name = :"
+#~ "newName where name = :oldName\";\n"
+#~ "int updatedEntities = s.createQuery( hqlUpdate )\n"
+#~ " .setString( \"newName\", newName )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlDelete = \"delete Customer c where c.name = :oldName\";\n"
+#~ "// or String hqlDelete = \"delete Customer where name = :oldName\";\n"
+#~ "int deletedEntities = s.createQuery( hqlDelete )\n"
+#~ " .setString( \"oldName\", oldName )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
+#~ "id, c.name from Customer c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessionFactory.openSession();\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "String hqlInsert = \"insert into DelinquentAccount (id, name) select c."
+#~ "id, c.name from Customer c where ...\";\n"
+#~ "int createdEntities = s.createQuery( hqlInsert )\n"
+#~ " .executeUpdate();\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/best_practices.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/best_practices.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/best_practices.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,211 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 10:01+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Best Practices"
+msgstr "æä½³å®è·µï¼Best Practicesï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "Write fine-grained classes and map them using <literal><component></literal>:"
+msgstr "设计ç»é¢ç²åº¦çæä¹
类并ä¸ä½¿ç¨ <literal><component></literal> æ¥å®ç°æ å°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Use an <literal>Address</literal> class to encapsulate <literal>street</literal>, <literal>suburb</literal>, <literal>state</literal>, <literal>postcode</literal>. This encourages code reuse and simplifies refactoring."
+msgstr "使ç¨ä¸ä¸ª <literal>Address</literal> æä¹
ç±»æ¥å°è£
ã<literal>street</literal>ï¼<literal>suburb</literal>ï¼<literal>state</literal>ï¼<literal>postcode</literal>ã è¿å°æå©äºä»£ç éç¨åç®å代ç éæï¼refactoringï¼çå·¥ä½ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Declare identifier properties on persistent classes:"
+msgstr "对æä¹
类声ææ è¯ç¬¦å±æ§ï¼identifier propertiesï¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate makes identifier properties optional. There are a range of reasons why you should use them. We recommend that identifiers be 'synthetic', that is, generated with no business meaning."
+msgstr "Hibernate ä¸æ è¯ç¬¦å±æ§æ¯å¯éçï¼ä¸è¿æå¾å¤åå æ¥è¯´æä½ åºè¯¥ä½¿ç¨æ è¯ç¬¦å±æ§ãæ们建议æ è¯ç¬¦åºè¯¥æ¯â人é âçï¼èªå¨çæï¼ä¸æ¶åä¸å¡å«ä¹ï¼ã "
+
+#. Tag: term
+#, no-c-format
+msgid "Identify natural keys:"
+msgstr "使ç¨èªç¶é®ï¼natural keysï¼æ è¯ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Identify natural keys for all entities, and map them using <literal><natural-id></literal>. Implement <literal>equals()</literal> and <literal>hashCode()</literal> to compare the properties that make up the natural key."
+msgstr "对ææçå®ä½é½æ è¯åºèªç¶é®ï¼ç¨ <literal><natural-id></literal> è¿è¡æ å°ãå®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ï¼å¨å
¶ä¸ç¨ç»æèªç¶é®çå±æ§è¿è¡æ¯è¾ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Place each class mapping in its own file:"
+msgstr "为æ¯ä¸ªæä¹
ç±»åä¸ä¸ªæ å°æ件ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Do not use a single monolithic mapping document. Map <literal>com.eg.Foo</literal> in the file <literal>com/eg/Foo.hbm.xml</literal>. This makes sense, particularly in a team environment."
+msgstr "ä¸è¦æææçæä¹
ç±»æ å°é½åå°ä¸ä¸ªå¤§æ件ä¸ãæ <literal>com.eg.Foo</literal> æ å°å° <literal>com/eg/Foo.hbm.xml</literal> ä¸ãå¨å¢éå¼åç¯å¢ä¸ï¼è¿ä¸ç¹å°¤å
¶éè¦ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Load mappings as resources:"
+msgstr "ææ å°æ件ä½ä¸ºèµæºå è½½ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Deploy the mappings along with the classes they map."
+msgstr "ææ å°æ件åä»ä»¬çæ å°ç±»æ¾å¨ä¸èµ·è¿è¡é¨ç½²ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Consider externalizing query strings:"
+msgstr "èèææ¥è¯¢å符串æ¾å¨ç¨åºå¤é¢ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This is recommended if your queries call non-ANSI-standard SQL functions. Externalizing the query strings to mapping files will make the application more portable."
+msgstr "å¦æä½ çæ¥è¯¢ä¸è°ç¨äºé ANSI æ åç SQL å½æ°ï¼é£ä¹è¿æ¡å®è·µç»éªå¯¹ä½ éç¨ãææ¥è¯¢å符串æ¾å¨æ å°æ件ä¸å¯ä»¥è®©ç¨åºå
·ææ´å¥½çå¯ç§»æ¤æ§ã "
+
+#. Tag: term
+#, no-c-format
+msgid "Use bind variables."
+msgstr "使ç¨ç»å®åé"
+
+#. Tag: para
+#, no-c-format
+msgid "As in JDBC, always replace non-constant values by \"?\". Do not use string manipulation to bind a non-constant value in a query. You should also consider using named parameters in queries."
+msgstr "å°±åå¨ JDBC ç¼ç¨ä¸ä¸æ ·ï¼åºè¯¥æ»æ¯ç¨å ä½ç¬¦ \"?\" æ¥æ¿æ¢é常éå¼ï¼ä¸è¦å¨æ¥è¯¢ä¸ç¨å符串å¼æ¥æé é常éå¼ãä½ ä¹åºè¯¥èèå¨æ¥è¯¢ä¸ä½¿ç¨å½ååæ°ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Do not manage your own JDBC connections:"
+msgstr "ä¸è¦èªå·±æ¥ç®¡ç JDBC è¿æ¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate allows the application to manage JDBC connections, but his approach should be considered a last-resort. If you cannot use the built-in connection providers, consider providing your own implementation of <literal>org.hibernate.connection.ConnectionProvider</literal>."
+msgstr "Hibernate å
许åºç¨ç¨åºèªå·±æ¥ç®¡ç JDBC è¿æ¥ï¼ä½æ¯åºè¯¥ä½ä¸ºæå没æåæ³çåæ³ãå¦æä½ ä¸è½ä½¿ç¨ Hibernate å
建ç connections providersï¼é£ä¹èèå®ç°èªå·±æ¥å®ç° <literal>org.hibernate.connection.ConnectionProvider</literal>ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Consider using a custom type:"
+msgstr "èè使ç¨ç¨æ·èªå®ä¹ç±»åï¼custom typeï¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Suppose you have a Java type from a library that needs to be persisted but does not provide the accessors needed to map it as a component. You should consider implementing <literal>org.hibernate.UserType</literal>. This approach frees the application code from implementing transformations to/from a Hibernate type."
+msgstr "åè®¾ä½ æä¸ä¸ª Java ç±»åï¼æ¥èªæäºç±»åºï¼éè¦è¢«æä¹
åï¼ä½æ¯è¯¥ç±»æ²¡ææä¾æ å°æä½éè¦çååæ¹æ³ãé£ä¹ä½ åºè¯¥èèå®ç° <literal>org.hibernate.UserType</literal> æ¥å£ãè¿ç§åæ³ä½¿ç¨åºä»£ç åèµ·æ¥æ´å èªå¦ï¼ä¸åéè¦èèç±»ä¸ Hibernate type ä¹é´çç¸äºè½¬æ¢ã "
+
+#. Tag: term
+#, no-c-format
+msgid "Use hand-coded JDBC in bottlenecks:"
+msgstr "å¨æ§è½ç¶é¢çå°æ¹ä½¿ç¨ç¡¬ç¼ç ç JDBCï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "In performance-critical areas of the system, some kinds of operations might benefit from direct JDBC. Do not assume, however, that JDBC is necessarily faster. Please wait until you <emphasis>know</emphasis> something is a bottleneck. If you need to use direct JDBC, you can open a Hibernate <literal>Session</literal>, wrap your JDBC operation as a <literal>org.hibernate.jdbc.Work</literal> object and using that JDBC connection. This way you can still use the same transaction strategy and underlying connection provider."
+msgstr "å¨ç³»ç»ä¸å¯¹æ§è½è¦æ±å¾ä¸¥æ ¼çä¸äºé¨åï¼æäºæä½ä¹è®¸ç´æ¥ä½¿ç¨ JDBC ä¼æ´å¥½ãä½æ¯è¯·å
<emphasis>确认</emphasis>è¿çç¡®æ¯ä¸ä¸ªç¶é¢ï¼å¹¶ä¸ä¸è¦æ³å½ç¶è®¤ä¸º JDBC ä¸å®ä¼æ´å¿«ãå¦æç¡®å®éè¦ç´æ¥ä½¿ç¨ JDBCï¼é£ä¹æ好æå¼ä¸ä¸ª Hibernate <literal>Session</literal> ç¶åå° JDBC æä½å
裹为 <literal>org.hibernate.jdbc.Work</literal> å¹¶ä½¿ç¨ JDBC è¿æ¥ãæç
§è¿ç§åæ³ä½ ä»ç¶å¯ä»¥ä½¿ç¨åæ ·ç transaction çç¥ååºå±ç connection providerã "
+
+#. Tag: term
+#, no-c-format
+msgid "Understand <literal>Session</literal> flushing:"
+msgstr "ç解 <literal>Session</literal> å²å·ï¼flushingï¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Sometimes the Session synchronizes its persistent state with the database. Performance will be affected if this process occurs too often. You can sometimes minimize unnecessary flushing by disabling automatic flushing, or even by changing the order of queries and other operations within a particular transaction."
+msgstr "Session ä¼ä¸æ¶çåæ°æ®åºåæ¥æä¹
åç¶æï¼å¦æè¿ç§æä½è¿è¡çè¿äºé¢ç¹ï¼æ§è½ä¼åå°ä¸å®çå½±åãææ¶åä½ å¯ä»¥éè¿ç¦æ¢èªå¨ flushingï¼å°½éæå°åéå¿
è¦ç flushing æä½ï¼æè
æ´è¿ä¸æ¥ï¼å¨ä¸ä¸ªç¹å®ç transaction ä¸æ¹åæ¥è¯¢åå
¶å®æä½ç顺åºã "
+
+#. Tag: term
+#, no-c-format
+msgid "In a three tiered architecture, consider using detached objects:"
+msgstr "å¨ä¸å±ç»æä¸ï¼èè使ç¨è±ç®¡å¯¹è±¡ï¼detached objectï¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "When using a servlet/session bean architecture, you can pass persistent objects loaded in the session bean to and from the servlet/JSP layer. Use a new session to service each request. Use <literal>Session.merge()</literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects with the database."
+msgstr "å½ä½¿ç¨ä¸ä¸ª servlet / session bean ç±»åçæ¶æçæ¶å, ä½ å¯ä»¥æå·²å è½½çæä¹
å¯¹è±¡å¨ session bean å±å servlet / JSP å±ä¹é´æ¥åä¼ éã使ç¨æ°ç session æ¥ä¸ºæ¯ä¸ªè¯·æ±æå¡ï¼ä½¿ç¨ <literal>Session.merge()</literal> æè
<literal>Session.saveOrUpdate()</literal> æ¥ä¸æ°æ®åºåæ¥ã "
+
+#. Tag: term
+#, no-c-format
+msgid "In a two tiered architecture, consider using long persistence contexts:"
+msgstr "å¨ä¸¤å±ç»æä¸ï¼èè使ç¨é¿æä¹
ä¸ä¸æï¼long persistence contextsï¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Database Transactions have to be as short as possible for best scalability. However, it is often necessary to implement long running <emphasis>application transactions</emphasis>, a single unit-of-work from the point of view of a user. An application transaction might span several client request/response cycles. It is common to use detached objects to implement application transactions. An appropriate alternative in a two tiered architecture, is to maintain a single open persistence contact session for the whole life cycle of the application transaction. Then simply disconnect from the JDBC connection at the end of each request and reconnect at the beginning of the subsequent request. Never share a single session across more than one application transaction or you will be working with stale data."
+msgstr "为äºå¾å°æä½³çå¯ä¼¸ç¼©æ§ï¼æ°æ®åºäºå¡ï¼Database Transactionï¼åºè¯¥å°½å¯è½ççãä½æ¯ï¼ç¨åºå¸¸å¸¸éè¦å®ç°é¿æ¶é´è¿è¡ç<emphasis>âåºç¨ç¨åºäºå¡ï¼Application Transactionï¼â</emphasis>ï¼å
å«ä¸ä¸ªä»ç¨æ·çè§ç¹æ¥ççååæä½ãè¿ä¸ªåºç¨ç¨åºäºå¡å¯è½è·¨è¶å¤æ¬¡ä»ç¨æ·è¯·æ±å°å¾å°åé¦ç循ç¯ãç¨è±ç®¡å¯¹è±¡ï¼ä¸ session è±ç¦»ç对象ï¼æ¥å®ç°åºç¨ç¨åºäºå¡æ¯å¸¸è§çãæè
ï¼å°¤å
¶å¨ä¸¤å±ç»æä¸ï¼æ Hibernate Session ä» JDBC è¿æ¥ä¸è±ç¦»å¼ï¼ä¸æ¬¡éè¦ç¨çæ¶ååè¿æ¥ä¸ãç»ä¸è¦æä¸ä¸ª Session ç¨å¨å¤ä¸ªåºç¨ç¨åºäºå¡ï¼Application Transactionï¼ä¸ï¼å¦åä½ çæ°æ®å¯è½ä¼è¿æ失æã"
+
+#. Tag: term
+#, no-c-format
+msgid "Do not treat exceptions as recoverable:"
+msgstr "ä¸è¦æå¼å¸¸çæå¯æ¢å¤çï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This is more of a necessary practice than a \"best\" practice. When an exception occurs, roll back the <literal>Transaction</literal> and close the <literal>Session</literal>. If you do not do this, Hibernate cannot guarantee that in-memory state accurately represents the persistent state. For example, do not use <literal>Session.load()</literal> to determine if an instance with the given identifier exists on the database; use <literal>Session.get()</literal> or a query instead."
+msgstr "è¿ä¸ç¹çè³æ¯âæä½³å®è·µâè¿è¦éè¦ï¼è¿æ¯âå¿
å¤å¸¸è¯âãå½å¼å¸¸åççæ¶åï¼å¿
é¡»è¦åæ» <literal>Transaction</literal> ï¼å
³é <literal>Session</literal>ãå¦æä½ ä¸è¿æ ·åçè¯ï¼Hibernate æ æ³ä¿è¯å
åç¶æ精确çååºæä¹
ç¶æãå°¤å
¶ä¸è¦ä½¿ç¨ <literal>Session.load()</literal> æ¥å¤æä¸ä¸ªç»å®æ è¯ç¬¦ç对象å®ä¾å¨æ°æ®åºä¸æ¯å¦åå¨ï¼åºè¯¥ä½¿ç¨ <literal>Session.get()</literal> æè
è¿è¡ä¸æ¬¡æ¥è¯¢ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer lazy fetching for associations:"
+msgstr "对äºå
³èä¼å
èè lazy fetchingï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Use eager fetching sparingly. Use proxies and lazy collections for most associations to classes that are not likely to be completely held in the second-level cache. For associations to cached classes, where there is an a extremely high probability of a cache hit, explicitly disable eager fetching using <literal>lazy=\"false\"</literal>. When join fetching is appropriate to a particular use case, use a query with a <literal>left join fetch</literal>."
+msgstr "è°¨æ
ç使ç¨ä¸»å¨æåï¼eager fetchingï¼ã对äºå
³èæ¥è¯´ï¼è¥å
¶ç®æ æ¯æ æ³å¨ç¬¬äºçº§ç¼åä¸å®å
¨ç¼åææå®ä¾çç±»ï¼åºè¯¥ä½¿ç¨ä»£çï¼proxiesï¼ä¸/æå
·æ延è¿å è½½å±æ§çéåï¼lazy collectionsï¼ãè¥ç®æ æ¯å¯ä»¥è¢«ç¼åçï¼å°¤å
¶æ¯ç¼åçå½ä¸çé常é«çæ
åµä¸ï¼åºè¯¥ä½¿ç¨ <literal>lazy=\"false\"</literal>ï¼æç¡®çç¦æ¢æ eager fetchingãå¦æé£äºç¹æ®çç¡®å®éåä½¿ç¨ join fetch çåºåï¼è¯·å¨æ¥è¯¢ä¸ä½¿ç¨ <literal>left join fetch</literal>ã "
+
+#. Tag: term
+#, no-c-format
+msgid "Use the <emphasis>open session in view</emphasis> pattern, or a disciplined <emphasis>assembly phase</emphasis> to avoid problems with unfetched data:"
+msgstr "ä½¿ç¨ <emphasis>open session in view</emphasis> 模å¼ï¼æè
æ§è¡ä¸¥æ ¼ç<emphasis>è£
é
æï¼assembly phaseï¼</emphasis>çç¥æ¥é¿å
å次æåæ°æ®å¸¦æ¥çé®é¢ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate frees the developer from writing tedious <emphasis>Data Transfer Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual purposes: first, they work around the problem that entity beans are not serializable; second, they implicitly define an assembly phase where all data to be used by the view is fetched and marshalled into the DTOs before returning control to the presentation tier. Hibernate eliminates the first purpose. Unless you are prepared to hold the persistence context (the session) open across the view rendering process, you will still need an assembly phase. Think of your business methods as having a strict contract with the presentation tier about what data is available in the detached objects. This is not a limitation of Hibernate. It is a fundamental requirement of safe transactional data access."
+msgstr "Hibernate 让å¼åè
们æè±äºç¹çç <emphasis>Data Transfer Objects</emphasis>ï¼DTOï¼ãå¨ä¼ ç»ç EJB ç»æä¸ï¼DTO æåéä½ç¨ï¼é¦å
ï¼ä»ä»¬è§£å³äº entity bean æ æ³åºååçé®é¢ï¼å
¶æ¬¡ï¼ä»ä»¬éå«å°å®ä¹äºä¸ä¸ªè£
é
æï¼å¨æ¤æé´ï¼ææå¨ view å±éè¦ç¨å°çæ°æ®ï¼é½è¢«æåãéä¸å°äº DTO ä¸ï¼ç¶åæ§å¶æ被è£
å°è¡¨ç¤ºå±ãHibernate ç»ç»äºç¬¬ä¸ä¸ªä½ç¨ãç¶èï¼é¤éä½ å好äºå¨æ´ä¸ªæ¸²æè¿ç¨ä¸é½ç»´æ¤ä¸ä¸ªæå¼çæä¹
åä¸ä¸æï¼sessionï¼çåå¤ï¼ä½ ä»ç¶éè¦ä¸ä¸ªè£
é
æï¼æ³è±¡ä¸ä¸ï¼ä½ çä¸å¡æ¹æ³ä¸ä½ ç表示å±æä¸¥æ ¼çå¥çº¦ï¼æ°æ®æ»æ¯è¢«æ¾ç½®å°è±ç®¡å¯¹è±¡ä¸ï¼ãè¿å¹¶éæ¯ Hibernate çéå¶ï¼è¿æ¯å®ç°å®å
¨çäºå¡åæ°æ®è®¿é®çåºæ¬éæ±ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Consider abstracting your business logic from Hibernate:"
+msgstr "èèæ Hibernate 代ç ä»ä¸å¡é»è¾ä»£ç ä¸æ½è±¡åºæ¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hide Hibernate data-access code behind an interface. Combine the <emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> patterns. You can even have some classes persisted by handcoded JDBC associated to Hibernate via a <literal>UserType</literal>. This advice is, however, intended for \"sufficiently large\" applications. It is not appropriate for an application with five tables."
+msgstr "æ Hibernate çæ°æ®åå代ç éèå°æ¥å£ï¼interfaceï¼çåé¢ï¼ç»åä½¿ç¨ <emphasis>DAO</emphasis> å <emphasis>Thread Local Session</emphasis> 模å¼ãéè¿ Hibernate ç<literal>UserType</literal>ï¼ä½ çè³å¯ä»¥ç¨ç¡¬ç¼ç ç JDBC æ¥æä¹
åé£äºæ¬è¯¥è¢« Hibernate æä¹
åçç±»ãç¶èï¼è¯¥å»ºè®®æ´éç¨äºè§æ¨¡è¶³å¤å¤§åºç¨è½¯ä»¶ä¸ï¼å¯¹äºé£äºåªæ 5 å¼ è¡¨çåºç¨ç¨åºå¹¶ä¸éåã"
+
+#. Tag: term
+#, no-c-format
+msgid "Do not use exotic association mappings:"
+msgstr "ä¸è¦ç¨æªå¼çè¿æ¥æ å°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Practical test cases for real many-to-many associations are rare. Most of the time you need additional information stored in the \"link table\". In this case, it is much better to use two one-to-many associations to an intermediate link class. In fact, most associations are one-to-many and many-to-one. For this reason, you should proceed cautiously when using any other association style."
+msgstr "å¤å¯¹å¤è¿æ¥ç¨å¾å¥½çä¾åå®é
ä¸ç¸å½å°è§ã大å¤æ°æ¶åä½ å¨âè¿æ¥è¡¨âä¸éè¦ä¿åé¢å¤çä¿¡æ¯ãè¿ç§æ
åµä¸ï¼ç¨ä¸¤ä¸ªæåä¸ä»ç±»çä¸å¯¹å¤çè¿æ¥æ¯è¾å¥½ãå®é
ä¸ï¼æ们认为ç»å¤§å¤æ°çè¿æ¥æ¯ä¸å¯¹å¤åå¤å¯¹ä¸çãiå æ¤ï¼ä½ åºè¯¥è°¨æ
使ç¨å
¶å®è¿æ¥é£æ ¼ã"
+
+#. Tag: term
+#, no-c-format
+msgid "Prefer bidirectional associations:"
+msgstr "åç±ååå
³èï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Unidirectional associations are more difficult to query. In a large application, almost all associations must be navigable in both directions in queries."
+msgstr "ååå
³èæ´å é¾äºæ¥è¯¢ãå¨å¤§ååºç¨ä¸ï¼å ä¹ææçå
³èå¿
é¡»å¨æ¥è¯¢ä¸å¯ä»¥åå导èªã"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/bibliography.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/bibliography.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/bibliography.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,50 @@
+# Language zh-CN translations for PACKAGE package.
+# Automatically generated, 2009.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:21\n"
+"PO-Revision-Date: 2010-03-15 08:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "References"
+msgstr "åèèµæ"
+
+#. Tag: title
+#, no-c-format
+msgid "Patterns of Enterprise Application Architecture"
+msgstr "Patterns of Enterprise Application Architecture"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Martin"
+msgstr "Martin"
+
+#. Tag: title
+#, no-c-format
+msgid "Java Persistence with Hibernate"
+msgstr "Java Persistence with Hibernate"
+
+#. Tag: subtitle
+#, no-c-format
+msgid "Second Edition of Hibernate in Action"
+msgstr "Second Edition of Hibernate in Action"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Christian"
+msgstr "Christian"
+
+#. Tag: firstname
+#, no-c-format
+msgid "Gavin"
+msgstr "Gavin"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/collection_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/collection_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/collection_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1631 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:34\n"
+"PO-Revision-Date: 2010-03-15 08:59+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mapping"
+msgstr "éåæ å°ï¼Collection mappingsï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent collections"
+msgstr "æä¹
åéåç±»ï¼Persistent collectionsï¼"
+
+#. 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 è¦æ±æä¹
åéåå¼å段å¿
须声æ为æ¥å£ï¼ä¾å¦ï¼"
+
+#. 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> çå®ç°ï¼ã"
+
+#. 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> å®ç°ã注æä¸é¢çé误ï¼"
+
+#. 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>ã"
+
+#. 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 对空çéåå¼ç¨å空éåä¸å åºå«ã "
+
+#. 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 éåç±»ä¸æ ·æ¥ä½¿ç¨æä¹
åéåç±»ãåªæ¯è¦ç¡®è®¤ä½ ç解äºååå
³èçè¯ä¹ï¼åæå°è¿è¡è®¨è®ºï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection mappings"
+msgstr "éåæ å°ï¼ Collection mappings ï¼"
+
+#. 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 çæå·¥å
·ï¼æ¥ä½ä¼ä¸ä¸ä¸åçæ å°å£°ææ¯å¦ä½è¢«ç¿»è¯ä¸ºæ°æ®åºè¡¨çã "
+
+#. 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><set></literal> element is used for mapping properties of type <literal>Set</literal>."
+msgstr "ç¨äºæ å°éåç±»ç Hibernate æ å°å
ç´ åå³äºæ¥å£çç±»åãæ¯å¦ï¼<literal><set></literal> å
ç´ ç¨æ¥æ å° <literal>Set</literal> ç±»åçå±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Apart from <literal><set></literal>, there is also <literal><list></literal>, <literal><map></literal>, <literal><bag></literal>, <literal><array></literal> and <literal><primitive-array></literal> mapping elements. The <literal><map></literal> element is representative:"
+msgstr "é¤äº <literal><set></literal>ï¼è¿æ<literal><list></literal>ï¼<literal><map></literal>ï¼<literal><bag></literal>ï¼<literal><array></literal> å <literal><primitive-array></literal> æ å°å
ç´ ã<literal><map></literal> å
·æ代表æ§ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>name</literal>: the collection property name"
+msgstr "<literal>name</literal>ï¼éåå±æ§çå称"
+
+#. 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>ï¼å¯éââé»è®¤ä¸ºå±æ§çå称ï¼è¿ä¸ªéå表çå称ï¼ä¸è½å¨ä¸å¯¹å¤çå
³èå
³ç³»ä¸ä½¿ç¨ï¼ã"
+
+#. 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"
+
+#. 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\" æåï¼æ¤æ¶å¤§å¤æ°æä½ä¸ä¼åå§åéåç±»ï¼éç¨äºé常大çéåï¼ã"
+
+#. 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>ï¼æ è®°è¿ä¸ªéåä½ä¸ºååå
³èå
³ç³»ä¸çæ¹åä¸ç«¯ã "
+
+#. 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>ï¼è®©æä½çº§èå°åå®ä½ã"
+
+#. 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>ï¼æè
ç»å®ä¸ä¸ªç¨æ¥æ¯è¾çç±»ã "
+
+#. 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 çè¿ä»£é¡ºåºã"
+
+#. 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 æ¡ä»¶ï¼è¯¥æ¡ä»¶å°å¨éæ°è½½å
¥æè
å é¤è¿ä¸ªéåæ¶ä½¿ç¨ï¼å½éåä¸çæ°æ®ä»
ä»
æ¯ææå¯ç¨æ°æ®çä¸ä¸ªåéæ¶è¿ä¸ªæ¡ä»¶é常æç¨ï¼ã"
+
+#. 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 æåä¹é´éæ©ã"
+
+#. 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\"ï¼ã"
+
+#. 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 åå¾éåå±æ§å¼æ¶ä½¿ç¨ççç¥ã"
+
+#. 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>ï¼ï¼å¯¹éåçç¶æçæ¹åä¼æ¯å¦å¯¼è´å
¶æå±çå®ä½ççæ¬å¢é¿ï¼å¯¹ä¸å¯¹å¤å
³èæ¥è¯´ï¼å
³éè¿ä¸ªå±æ§å¸¸å¸¸æ¯æççï¼ã"
+
+#. 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>ï¼è¡¨æéåä¸çå
ç´ ä¸ä¼æ¹åï¼å¨æäºæ
åµä¸å¯ä»¥è¿è¡ä¸äºå°çæ§è½ä¼åï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Collection foreign keys"
+msgstr "éåå¤é®ï¼Collection foreign keysï¼"
+
+#. 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><key></literal> element."
+msgstr "éåå®ä¾å¨æ°æ®åºä¸ä¾é ææéåçå®ä½çå¤é®å 以辨å«ãæ¤å¤é®ä½ä¸º<emphasis>éåå
³é®å段ï¼collection key columnï¼</emphasis>ï¼æå¤ä¸ªå段ï¼å 以å¼ç¨ãéåå
³é®å段éè¿ <literal><key></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>ã "
+
+#. Tag: para
+#, no-c-format
+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><key></literal> element."
+msgstr "对 <literal><key></literal> å
ç´ çå®æ´å®ä¹ï¼è¯·åé
åé¢çç« èã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection elements"
+msgstr "éåå
ç´ ï¼Collection elementsï¼"
+
+#. 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 ç±»åï¼å
æ¬ææçåºæ¬ç±»åãèªå®ä¹ç±»åãç»ä»¶ï¼å½ç¶è¿æ对å
¶ä»å®ä½çå¼ç¨ãåå¨ä¸ä¸ªéè¦çåºå«ï¼ä½äºéåä¸ç对象å¯è½æ¯æ ¹æ®âå¼âè¯ä¹æ¥æä½ï¼å
¶å£°æå¨æå®å
¨ä¾èµäºéåææè
ï¼ï¼æè
å®å¯è½æ¯æåå¦ä¸ä¸ªå®ä½çå¼ç¨ï¼å
·æå
¶èªå·±ççå½å¨æãå¨åè
çæ
åµä¸ï¼è¢«ä½ä¸ºéåææçç¶æèèçï¼åªæ两个对象ä¹é´çâè¿æ¥âã "
+
+#. 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><element></literal> or <literal><composite-element></literal>, or in the case of entity references, with <literal><one-to-many></literal> or <literal><many-to-many></literal>. The first two map elements with value semantics, the next two are used to map entity associations."
+msgstr "被å
容çç±»å被称为<emphasis>éåå
ç´ ç±»åï¼collection element typeï¼</emphasis>ãéåå
ç´ éè¿ <literal><element></literal> æ <literal><composite-element></literal> æ å°ï¼æå¨å
¶æ¯å®ä½å¼ç¨çæ¶åï¼éè¿ <literal><one-to-many></literal> æ <literal><many-to-many></literal> æ å°ãå两ç§ç¨äºä½¿ç¨å¼è¯ä¹æ å°å
ç´ ï¼å两ç§ç¨äºæ å°å®ä½å
³èã"
+
+#. Tag: title
+#, no-c-format
+msgid "Indexed collections"
+msgstr "ç´¢å¼éåç±»ï¼Indexed collectionsï¼"
+
+#. 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><map-key></literal>. It can be an entity reference mapped with <literal><map-key-many-to-many></literal>, or it can be a composite type mapped with <literal><composite-map-key></literal>. The index of an array or list is always of type <literal>integer</literal> and is mapped using the <literal><list-index></literal> element. The mapped column contains sequential integers that are numbered from zero by default."
+msgstr "ææçéåæ å°ï¼é¤äº set å bag è¯ä¹ç以å¤ï¼é½éè¦æå®ä¸ä¸ªéå表ç<emphasis>ç´¢å¼å段ï¼index columnï¼</emphasis> â ç¨äºå¯¹åºå°æ°ç»ç´¢å¼ï¼æè
<literal>List</literal> çç´¢å¼ï¼æè
<literal>Map</literal> çå
³é®åãéè¿ <literal><map-key></literal>ï¼<literal>Map</literal> çç´¢å¼å¯ä»¥æ¯ä»»ä½åºç¡ç±»åï¼è¥éè¿ <literal><map-key-many-to-many></literal>ï¼å®ä¹å¯ä»¥æ¯ä¸ä¸ªå®ä½å¼ç¨ï¼è¥éè¿ <literal><composite-map-key></literal>ï¼å®è¿å¯ä»¥æ¯ä¸ä¸ªç»åç±»åãæ°ç»æå表çç´¢å¼å¿
é¡»æ¯ <literal>integer</literal> ç±»åï¼å¹¶ä¸ä½¿ç¨ <literal><list-index></literal> å
ç´ å®ä¹æ å°ã被æ å°çå段å
å«æ顺åºæåçæ´æ°ï¼é»è®¤ä» 0 å¼å§ï¼ã "
+
+#. Tag: para
+#, no-c-format
+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>ï¼å¯¹åºå表æéåç第ä¸ä¸ªå
ç´ çç´¢å¼å段çå¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the column holding the collection index values."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼ææéåç´¢å¼å¼çå段çå称ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>formula</literal> (optional): a SQL formula used to evaluate the key of the map."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹è¡¨é®æ±å¼ç SQL å
¬å¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>type</literal> (required): the type of the map keys."
+msgstr "<literal>type</literal>ï¼å¿
éï¼ï¼æ å°é®çç±»åã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>column</literal> (optional): the name of the foreign key column for the collection index values."
+msgstr "<literal>column</literal>ï¼å¯éï¼ï¼ç¨äºéåç´¢å¼å¼çå¤é®å段çå称ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>formula</literal> (optional): a SQ formula used to evaluate the foreign key of the map key."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹æ å°é®çå¤é®æ±å¼ç SQL å
¬å¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the entity class used as the map key."
+msgstr "<literal>class</literal>ï¼å¿
éï¼ï¼ç¨ä½æ å°é®çå®ä½ç±»çå称ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If your table does not have an index column, and you still wish to use <literal>List</literal> as the property type, you can map the property as a Hibernate <emphasis><bag></emphasis>. A bag does not retain its order when it is retrieved from the database, but it can be optionally sorted or ordered."
+msgstr "åè¥ä½ ç表没æä¸ä¸ªç´¢å¼å段ï¼å½ä½ ä»ç¶å¸æä½¿ç¨ <literal>List</literal> ä½ä¸ºå±æ§ç±»åï¼ä½ åºè¯¥ææ¤å±æ§æ å°ä¸º Hibernate <emphasis><bag></emphasis>ãä»æ°æ®åºä¸è·åçæ¶åï¼bag ä¸ç»´æ¤å
¶é¡ºåºï¼ä½ä¹å¯éæ©æ§çè¿è¡æåºã "
+
+#. Tag: title
+#, no-c-format
+msgid "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>ï¼ä»¥åè¿å¯è½æä¸ä¸ªæå¤ä¸ªç´¢å¼å段ã "
+
+#. Tag: para
+#, no-c-format
+msgid "For a collection of values use the <literal><element></literal> tag. For example:"
+msgstr "对äºä¸ä¸ªå¼éåï¼æä»¬ä½¿ç¨ <literal><element></literal> æ ç¾ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+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."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹å
ç´ æ±å¼ç SQL å
¬å¼ã"
+
+#. Tag: para
+#, 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><many-to-many></literal> element."
+msgstr "ç¨ <literal><many-to-many></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."
+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."
+msgstr "<literal>formula</literal>ï¼å¯éï¼ï¼ç¨äºå¯¹å
ç´ å¤é®å¼æ±å¼ç SQL å
¬å¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>class</literal> (required): the name of the associated class."
+msgstr "<literal>class</literal>ï¼å¿
éï¼ï¼è¢«å
³èç±»çå称ã "
+
+#. 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><many-to-many></literal> nested element."
+msgstr "<literal>fetch</literal>ï¼å¯é - 缺ç为 <literal>join</literal>ï¼ï¼ 为è¿ä¸ªå
³èå¯ç¨å¤è¿æ¥æåºåæ§éæ©æåãè¿æ¯ä¸ä¸ªç¹ä¾ã对äºå¨å个 <literal>SELECT</literal> éè¿è¡å®å
¨ç eager fetching 以å使 <literal><many-to-many></literal> nç¨å¤å¯¹å¤å
³èï¼ä½ å¯ä»¥å¯ç¨ <literal>join</literal> fetchingï¼è¿ä¸ä»
æ¯å¯¹äºéåæ¬èº«ï¼ä¹å¯¹ <literal><many-to-many></literal> åµå¥å
ç´ çå±æ§ã"
+
+#. Tag: para
+#, 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 çæãè¿ä½¿å¾å
³èä¸å¯¹å¤çå¤æ ·æ§æ´ä¸ºææã"
+
+#. 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> ä¼æ缺失çè¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã "
+
+#. 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> çæ¿ä»£ã "
+
+#. 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>ï¼å¯éï¼ï¼è¿æ¥è³è¿ä¸ªå¤é®çå
³èç±»çå±æ§å称ãå¦ææªæå®ï¼å
³èç±»ç主é®å°è¢«ä½¿ç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Here are some examples."
+msgstr "ä¸é¢æ¯ä¸äºä¾åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A set of strings:"
+msgstr "ä¸ç³»åå符串ï¼"
+
+#. 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> åæ°æå®äºè¿ä»£ç顺åºï¼ï¼ "
+
+#. 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>ï¼ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "A map from string indices to dates:"
+msgstr "ä¸ä¸ª mapï¼éè¿å符串çç´¢å¼æ¥æææ¥æï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A list of components (this is discussed in the next chapter):"
+msgstr "ä¸ä¸ªç»ä»¶çå表ï¼ï¼å°å¨ä¸ä¸ç« 讨论ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "One-to-many associations"
+msgstr "ä¸å¯¹å¤å
³èï¼One-to-many Associationsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A <emphasis>one-to-many association</emphasis> links the tables of two classes via a foreign key with no intervening collection table. This mapping loses certain semantics of normal Java collections:"
+msgstr "<emphasis>ä¸å¯¹å¤å
³è</emphasis><emphasis>éè¿å¤é®</emphasis>è¿æ¥ä¸¤ä¸ªç±»å¯¹åºç表ï¼è没æä¸é´éå表ã è¿ä¸ªå
³ç³»æ¨¡å失å»äºä¸äº Java éåçè¯ä¹ï¼"
+
+#. Tag: para
+#, no-c-format
+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."
+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><one-to-many></literal> tag indicates that this is a one-to-many association."
+msgstr "ä¸ä¸ªä» <literal>Product</literal> å° <literal>Part</literal> çå
³èéè¦å
³é®åå段ï¼å¯è½è¿æä¸ä¸ªç´¢å¼å段æå <literal>Part</literal> æ对åºç表ã<literal><one-to-many></literal> æ è®°ææäºä¸ä¸ªä¸å¯¹å¤çå
³èã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>not-found</literal> (optional - defaults to <literal>exception</literal>): specifies how cached identifiers that reference missing rows will be handled. <literal>ignore</literal> will treat a missing row as a null association."
+msgstr "<literal>not-found</literal>ï¼å¯é - é»è®¤ä¸º<literal>exception</literal>ï¼ï¼ææè¥ç¼åçæ 示å¼å
³èçè¡ç¼ºå¤±ï¼è¯¥å¦ä½å¤çï¼<literal>ignore</literal> ä¼æ缺失çè¡ä½ä¸ºä¸ä¸ªç©ºå
³èå¤çã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element does not need to declare any columns. Nor is it necessary to specify the <literal>table</literal> name anywhere."
+msgstr "注æï¼<literal><one-to-many></literal> å
ç´ ä¸éè¦å®ä¹ä»»ä½å段ãä¹ä¸éè¦æå®è¡¨åã "
+
+#. Tag: para
+#, no-c-format
+msgid "If the foreign key column of a <literal><one-to-many></literal> association is declared <literal>NOT NULL</literal>, you must declare the <literal><key></literal> mapping <literal>not-null=\"true\"</literal> or <emphasis>use a bidirectional association</emphasis> with the collection mapping marked <literal>inverse=\"true\"</literal>. See the discussion of bidirectional associations later in this chapter for more information."
+msgstr "<emphasis>éè¦æ示</emphasis>ï¼å¦æ<literal>ä¸å¯¹å¤</literal>å
³èä¸çå¤é®å段å®ä¹æ <literal>NOT NULL</literal>ï¼ä½ å¿
é¡»æ <literal><key></literal> æ å°å£°æ为 <literal>not-null=\"true\"</literal>ï¼æè
使ç¨<emphasis>ååå
³è</emphasis>ï¼å¹¶ä¸æ æ <literal>inverse=\"true\"</literal>ãåé
æ¬ç« åé¢å
³äºååå
³èç讨论ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The following example shows a map of <literal>Part</literal> entities by name, where <literal>partName</literal> is a persistent property of <literal>Part</literal>. Notice the use of a formula-based index:"
+msgstr "ä¸é¢çä¾åå±ç¤ºä¸ä¸ª <literal>Part</literal> å®ä½ç mapï¼æ name ä½ä¸ºå
³é®åãï¼ <literal>partName</literal> æ¯ <literal>Part</literal> çæä¹
åå±æ§ï¼ã注æå
¶ä¸çåºäºå
¬å¼çç´¢å¼çç¨æ³ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Advanced collection mappings"
+msgstr "é«çº§éåæ å°ï¼Advanced collection mappingsï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Sorted collections"
+msgstr "æåºéåï¼Sorted collectionsï¼"
+
+#. 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> çéåãä½ å¿
é¡»å¨æ å°æ件ä¸æå®ä¸ä¸ªæ¯è¾å¨ï¼"
+
+#. 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> çç±»çå称ã"
+
+#. 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>ã"
+
+#. 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 æ¥è¯¢ä¸å®ææåºï¼èä¸æ¯å¨å
åä¸ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. 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 çã"
+
+#. 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> æ ¹æ®ä»»æçæ¡ä»¶æ¥æåºï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr "ååå
³èï¼Bidirectional associationsï¼"
+
+#. 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 ä¸ï¼æ¯æ两ç§ç±»åçååå
³èï¼ "
+
+#. Tag: term
+#, no-c-format
+msgid "one-to-many"
+msgstr "ä¸å¯¹å¤ï¼one-to-manyï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at one end and single-valued at the other"
+msgstr "Set æè
bag å¼å¨ä¸ç«¯ï¼åç¬å¼ï¼ééåï¼å¨å¦å¤ä¸ç«¯ "
+
+#. Tag: term
+#, no-c-format
+msgid "many-to-many"
+msgstr "å¤å¯¹å¤ï¼many-to-manyï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "set or bag valued at both ends"
+msgstr "两端é½æ¯ set æ bag å¼"
+
+#. 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>ï¼ä½¿ç¨åªä¸ç«¯è¦æ ¹æ®ä½ çéæ©ï¼ä½å®ä¸è½æ¯ä¸ä¸ªç´¢å¼éåï¼ã "
+
+#. 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ï¼ "
+
+#. 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 ä¸å建å¤å¯¹å¤å
³ç³»çï¼è¿å¯ä»¥è®©ä½ æ´å®¹æçè§£ï¼ "
+
+#. Tag: para
+#, no-c-format
+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>ã "
+
+#. 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> ä¸ä¼å½±å级èæä½ï¼äºè
æ¯æ£äº¤çæ¦å¿µã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional associations with indexed collections"
+msgstr "ååå
³èï¼æ¶åæåºéåç±»"
+
+#. Tag: para
+#, no-c-format
+msgid "A bidirectional association where one end is represented as a <literal><list></literal> or <literal><map></literal>, requires special consideration. If there is a property of the child class that maps to the index column you can use <literal>inverse=\"true\"</literal> on the collection mapping:"
+msgstr "对äºæä¸ç«¯æ¯ <literal><list></literal> æè
<literal><map></literal> çååå
³èï¼éè¦å 以ç¹å«èèãåè¥åç±»ä¸çä¸ä¸ªå±æ§æ å°å°ç´¢å¼å段ï¼æ²¡é®é¢ï¼æ们ä»ç¶å¯ä»¥å¨éåç±»æ å°ä¸ä½¿ç¨ <literal>inverse=\"true\"</literal>ï¼ "
+
+#. Tag: 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>ãæ们éè¦è¿æ ·ç¨ï¼ "
+
+#. 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."
+msgstr "注æå¨è¿ä¸ªæ å°ä¸ï¼å
³èä¸éåç±»\"å¼\"ä¸ç«¯è´è´£æ¥æ´æ°å¤é®ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Ternary associations"
+msgstr "ä¸éå
³èï¼Ternary associationsï¼"
+
+#. 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>ï¼æä¸ä¸ªå
³èä½ä¸ºå
¶ç´¢å¼ï¼ "
+
+#. 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 "第äºç§æ¹æ³æ¯ç®åçæå
³èéæ°å»ºæ¨¡ä¸ºä¸ä¸ªå®ä½ç±»ãè¿ä½¿æ们æç»å¸¸ä½¿ç¨çæ¹æ³ã "
+
+#. Tag: para
+#, no-c-format
+msgid "A final alternative is to use composite elements, which will be discussed later."
+msgstr "æåä¸ç§éæ©æ¯ä½¿ç¨å¤åå
ç´ ï¼æ们ä¼å¨åé¢è®¨è®ºã"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>Using an <idbag></literal>"
+msgstr "<literal>ä½¿ç¨ an <idbag></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 æä¾äºä¸ä¸ªï¼ä¸ç¹ç¹è¯éªæ§è´¨çï¼åè½ï¼è®©ä½ æå¤å¯¹å¤å
³èåå¼éååºå¾å°ä¸ä¸ªä½¿ç¨ä»£ç¨æ è¯ç¬¦ç表å»ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><idbag></literal> element lets you map a <literal>List</literal> (or <literal>Collection</literal>) with bag semantics. For example:"
+msgstr "<literal><idbag></literal> å±æ§è®©ä½ ä½¿ç¨ bag è¯ä¹æ¥æ å°ä¸ä¸ª <literal>List</literal> ï¼æ <literal>Collection</literal>ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "An <literal><idbag></literal> has a synthetic id generator, just like an entity class. A different surrogate key is assigned to each collection row. Hibernate does not, however, provide any mechanism for discovering the surrogate key value of a particular row."
+msgstr "ä½ å¯ä»¥ç解ï¼<literal><idbag></literal> 人工ç id çæå¨ï¼å°±å¥½åæ¯å®ä½ç±»ä¸æ ·ï¼éåçæ¯ä¸è¡é½æä¸ä¸ªä¸åç人é å
³é®åãä½æ¯ï¼Hibernate 没ææä¾ä»»ä½æºå¶æ¥è®©ä½ åå¾æ个ç¹å®è¡ç人é å
³é®åã "
+
+#. Tag: para
+#, no-c-format
+msgid "The update performance of an <literal><idbag></literal> supersedes a regular <literal><bag></literal>. Hibernate can locate individual rows efficiently and update or delete them individually, similar to a list, map or set."
+msgstr "注æ <literal><idbag></literal> çæ´æ°æ§è½è¦æ¯æ®éç <literal><bag></literal> é«å¾å¤ï¼Hibernate å¯ä»¥ææçå®ä½å°ä¸åçè¡ï¼åå«è¿è¡æ´æ°æå é¤å·¥ä½ï¼å°±å¦åå¤çä¸ä¸ª listï¼map æè
set ä¸æ ·ã "
+
+#. Tag: para
+#, no-c-format
+msgid "In the current implementation, the <literal>native</literal> identifier generation strategy is not supported for <literal><idbag></literal> collection identifiers."
+msgstr "å¨ç®åçå®ç°ä¸ï¼è¿ä¸æ¯æä½¿ç¨ <literal>identity</literal> æ è¯ç¬¦çæå¨çç¥æ¥çæ <literal><idbag></literal> éåçæ è¯ç¬¦ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collection examples"
+msgstr "éåä¾åï¼Collection exampleï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This section covers collection examples."
+msgstr "éåä¾åï¼Collection exampleï¼ã"
+
+#. Tag: para
+#, no-c-format
+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 çå
³èå
³ç³»ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "This maps to the following table definitions:"
+msgstr "å¨ä»¥ä¸ç表å®ä¹ä¸ååºäºè¿ä¸ªæ å°å
³ç³»ï¼"
+
+#. 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 çå
³èäºï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Notice the <literal>NOT NULL</literal> constraint:"
+msgstr "请注æ <literal>NOT NULL</literal> ç约æ:"
+
+#. 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><key></literal> mapping:"
+msgstr "å¦å¤ï¼å¦æä½ ç»å¯¹åæè¿ä¸ªå
³èåºè¯¥æ¯ååçï¼ä½ å¯ä»¥å¯¹ <literal><key></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 å
³èï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Table definitions:"
+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\" />ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Even more complex association mappings are covered in the next chapter."
+msgstr "çè³å¯è½åºç°æ´å å¤æçå
³èæ å°ï¼æ们ä¼å¨ä¸ä¸ç« ä¸ååºææå¯è½æ§ã "
+
+#~ 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 ""
+#~ "<![CDATA[public class Product {\n"
+#~ " private String serialNumber;\n"
+#~ " private Set parts = new HashSet();\n"
+#~ " \n"
+#~ " public Set getParts() { return parts; }\n"
+#~ " void setParts(Set parts) { this.parts = parts; }\n"
+#~ " public String getSerialNumber() { return serialNumber; }\n"
+#~ " void setSerialNumber(String sn) { serialNumber = sn; }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "Cat kitten = new DomesticCat();\n"
+#~ "....\n"
+#~ "Set kittens = new HashSet();\n"
+#~ "kittens.add(kitten);\n"
+#~ "cat.setKittens(kittens);\n"
+#~ "session.persist(cat);\n"
+#~ "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
+#~ "(HashSet) cat.getKittens(); // Error!]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "Cat kitten = new DomesticCat();\n"
+#~ "....\n"
+#~ "Set kittens = new HashSet();\n"
+#~ "kittens.add(kitten);\n"
+#~ "cat.setKittens(kittens);\n"
+#~ "session.persist(cat);\n"
+#~ "kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
+#~ "(HashSet) cat.getKittens(); // Error!]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Product\">\n"
+#~ " <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
+#~ " <set name=\"parts\">\n"
+#~ " <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Product\">\n"
+#~ " <id name=\"serialNumber\" column=\"productSerialNumber\"/>\n"
+#~ " <set name=\"parts\">\n"
+#~ " <key column=\"productSerialNumber\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<map\n"
+#~ " name=\"propertyName\"\n"
+#~ " table=\"table_name\"\n"
+#~ " schema=\"schema_name\"\n"
+#~ " lazy=\"true|extra|false\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan"
+#~ "\"\n"
+#~ " sort=\"unsorted|natural|comparatorClass\"\n"
+#~ " order-by=\"column_name asc|desc\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " fetch=\"join|select|subselect\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <key .... />\n"
+#~ " <map-key .... />\n"
+#~ " <element .... />\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map\n"
+#~ " name=\"propertyName\"\n"
+#~ " table=\"table_name\"\n"
+#~ " schema=\"schema_name\"\n"
+#~ " lazy=\"true|extra|false\"\n"
+#~ " inverse=\"true|false\"\n"
+#~ " cascade=\"all|none|save-update|delete|all-delete-orphan|delete-orphan"
+#~ "\"\n"
+#~ " sort=\"unsorted|natural|comparatorClass\"\n"
+#~ " order-by=\"column_name asc|desc\"\n"
+#~ " where=\"arbitrary sql where condition\"\n"
+#~ " fetch=\"join|select|subselect\"\n"
+#~ " batch-size=\"N\"\n"
+#~ " access=\"field|property|ClassName\"\n"
+#~ " optimistic-lock=\"true|false\"\n"
+#~ " mutable=\"true|false\"\n"
+#~ " node=\"element-name|.\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ ">\n"
+#~ "\n"
+#~ " <key .... />\n"
+#~ " <map-key .... />\n"
+#~ " <element .... />\n"
+#~ "</map>]]>"
+
+#~ msgid "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+#~ msgstr "<![CDATA[<key column=\"productSerialNumber\" not-null=\"true\"/>]]>"
+
+#~ msgid ""
+#~ "<![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"
+#~ "[<list-index \n"
+#~ " column=\"column_name\"\n"
+#~ " base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"index1\"> <para> <literal>column_name</literal> (required): "
+#~ "the name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"index1\"> <para> <literal>base</literal> "
+#~ "(optional - defaults to <literal>0</literal>): the value of the index "
+#~ "column that corresponds to the first element of the list or array. </"
+#~ "para> </callout> </calloutlist> </programlistingco> <programlistingco> "
+#~ "<areaspec> <area id=\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" "
+#~ "coords=\"3 45\"/> <area id=\"mapkey3\" coords=\"4 45\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<map-key \n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"type_name\"\n"
+#~ " node=\"@attribute-name\"\n"
+#~ " length=\"N\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"mapkey1\"> <para> <literal>column</literal> (optional): the "
+#~ "name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"mapkey2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQL formula used to evaluate the key of the map. </para> </"
+#~ "callout> <callout arearefs=\"mapkey3\"> <para> <literal>type</literal> "
+#~ "(required): the type of the map keys. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <programlistingco> <areaspec> <area id="
+#~ "\"indexmanytomany1\" coords=\"2 45\"/> <area id=\"indexmanytomany2\" "
+#~ "coords=\"3 45\"/> <area id=\"indexmanytomany3\" coords=\"3 45\"/> </"
+#~ "areaspec> <programlisting><![CDATA[<map-key-many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the foreign "
+#~ "key column for the collection index values. </para> </callout> <callout "
+#~ "arearefs=\"indexmanytomany2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQ formula used to evaluate the foreign key of the map key. "
+#~ "</para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> "
+#~ "<literal>class</literal> (required): the entity class used as the map "
+#~ "key. </para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"index1\" coords=\"2 45\"/> <area "
+#~ "id=\"index2\" coords=\"3 45\"/> </areaspec> <programlisting><![CDATA"
+#~ "[<list-index \n"
+#~ " column=\"column_name\"\n"
+#~ " base=\"0|1|...\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"index1\"> <para> <literal>column_name</literal> (required): "
+#~ "the name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"index1\"> <para> <literal>base</literal> "
+#~ "(optional - defaults to <literal>0</literal>): the value of the index "
+#~ "column that corresponds to the first element of the list or array. </"
+#~ "para> </callout> </calloutlist> </programlistingco> <programlistingco> "
+#~ "<areaspec> <area id=\"mapkey1\" coords=\"2 45\"/> <area id=\"mapkey2\" "
+#~ "coords=\"3 45\"/> <area id=\"mapkey3\" coords=\"4 45\"/> </areaspec> "
+#~ "<programlisting><![CDATA[<map-key \n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"type_name\"\n"
+#~ " node=\"@attribute-name\"\n"
+#~ " length=\"N\"/>]]></programlisting> <calloutlist> <callout "
+#~ "arearefs=\"mapkey1\"> <para> <literal>column</literal> (optional): the "
+#~ "name of the column holding the collection index values. </para> </"
+#~ "callout> <callout arearefs=\"mapkey2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQL formula used to evaluate the key of the map. </para> </"
+#~ "callout> <callout arearefs=\"mapkey3\"> <para> <literal>type</literal> "
+#~ "(required): the type of the map keys. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <programlistingco> <areaspec> <area id="
+#~ "\"indexmanytomany1\" coords=\"2 45\"/> <area id=\"indexmanytomany2\" "
+#~ "coords=\"3 45\"/> <area id=\"indexmanytomany3\" coords=\"3 45\"/> </"
+#~ "areaspec> <programlisting><![CDATA[<map-key-many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"indexmanytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the foreign "
+#~ "key column for the collection index values. </para> </callout> <callout "
+#~ "arearefs=\"indexmanytomany2\"> <para> <literal>formula</literal> "
+#~ "(optional): a SQ formula used to evaluate the foreign key of the map key. "
+#~ "</para> </callout> <callout arearefs=\"indexmanytomany3\"> <para> "
+#~ "<literal>class</literal> (required): the entity class used as the map "
+#~ "key. </para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> "
+#~ "<area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords="
+#~ "\"4 50\"/> </areaspec> <programlisting><![CDATA[<element\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"typename\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> "
+#~ "<para> <literal>column</literal> (optional): the name of the column "
+#~ "holding the collection element values. </para> </callout> <callout "
+#~ "arearefs=\"element2b\"> <para> <literal>formula</literal> (optional): an "
+#~ "SQL formula used to evaluate the element. </para> </callout> <callout "
+#~ "arearefs=\"element3b\"> <para> <literal>type</literal> (required): the "
+#~ "type of the collection element. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <para> A <emphasis>many-to-many association</emphasis> "
+#~ "is specified using the <literal><many-to-many></literal> element. </"
+#~ "para> <programlistingco> <areaspec> <area id=\"manytomany1\" coords=\"2 60"
+#~ "\"/> <area id=\"manytomany2\" coords=\"3 60\"/> <area id=\"manytomany3\" "
+#~ "coords=\"4 60\"/> <area id=\"manytomany4\" coords=\"5 60\"/> <area id="
+#~ "\"manytomany5\" coords=\"6 60\"/> <area id=\"manytomany6\" coords=\"7 60"
+#~ "\"/> <area id=\"manytomany7\" coords=\"8 60\"/> <area id=\"manytomany8\" "
+#~ "coords=\"9 60\"/> </areaspec> <programlisting><![CDATA[<many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " fetch=\"select|join\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the element "
+#~ "foreign key column. </para> </callout> <callout arearefs=\"manytomany2\"> "
+#~ "<para> <literal>formula</literal> (optional): an SQL formula used to "
+#~ "evaluate the element foreign key value. </para> </callout> <callout "
+#~ "arearefs=\"manytomany3\"> <para> <literal>class</literal> (required): the "
+#~ "name of the associated class. </para> </callout> <callout arearefs="
+#~ "\"manytomany4\"> <para> <literal>fetch</literal> (optional - defaults to "
+#~ "<literal>join</literal>): enables outer-join or sequential select "
+#~ "fetching for this association. This is a special case; for full eager "
+#~ "fetching in a single <literal>SELECT</literal> of an entity and its many-"
+#~ "to-many relationships to other entities, you would enable <literal>join</"
+#~ "literal> fetching,not only of the collection itself, but also with this "
+#~ "attribute on the <literal><many-to-many></literal> nested element. "
+#~ "</para> </callout> <callout arearefs=\"manytomany5\"> <para> "
+#~ "<literal>unique</literal> (optional): enables the DDL generation of a "
+#~ "unique constraint for the foreign-key column. This makes the association "
+#~ "multiplicity effectively one-to-many. </para> </callout> <callout "
+#~ "arearefs=\"manytomany6\"> <para> <literal>not-found</literal> (optional - "
+#~ "defaults to <literal>exception</literal>): specifies how foreign keys "
+#~ "that reference missing rows will be handled: <literal>ignore</literal> "
+#~ "will treat a missing row as a null association. </para> </callout> "
+#~ "<callout arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> "
+#~ "(optional): the entity name of the associated class, as an alternative to "
+#~ "<literal>class</literal>. </para> </callout> <callout arearefs="
+#~ "\"manytomany8\"> <para> <literal>property-ref</literal> (optional): the "
+#~ "name of a property of the associated class that is joined to this foreign "
+#~ "key. If not specified, the primary key of the associated class is used. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+#~ msgstr ""
+#~ "<programlistingco> <areaspec> <area id=\"element1b\" coords=\"2 50\"/> "
+#~ "<area id=\"element2b\" coords=\"3 50\"/> <area id=\"element3b\" coords="
+#~ "\"4 50\"/> </areaspec> <programlisting><![CDATA[<element\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " type=\"typename\"\n"
+#~ " length=\"L\"\n"
+#~ " precision=\"P\"\n"
+#~ " scale=\"S\"\n"
+#~ " not-null=\"true|false\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " node=\"element-name\"\n"
+#~ "/>]]></programlisting> <calloutlist> <callout arearefs=\"element1b\"> "
+#~ "<para> <literal>column</literal> (optional): the name of the column "
+#~ "holding the collection element values. </para> </callout> <callout "
+#~ "arearefs=\"element2b\"> <para> <literal>formula</literal> (optional): an "
+#~ "SQL formula used to evaluate the element. </para> </callout> <callout "
+#~ "arearefs=\"element3b\"> <para> <literal>type</literal> (required): the "
+#~ "type of the collection element. </para> </callout> </calloutlist> </"
+#~ "programlistingco> <para> A <emphasis>many-to-many association</emphasis> "
+#~ "is specified using the <literal><many-to-many></literal> element. </"
+#~ "para> <programlistingco> <areaspec> <area id=\"manytomany1\" coords=\"2 60"
+#~ "\"/> <area id=\"manytomany2\" coords=\"3 60\"/> <area id=\"manytomany3\" "
+#~ "coords=\"4 60\"/> <area id=\"manytomany4\" coords=\"5 60\"/> <area id="
+#~ "\"manytomany5\" coords=\"6 60\"/> <area id=\"manytomany6\" coords=\"7 60"
+#~ "\"/> <area id=\"manytomany7\" coords=\"8 60\"/> <area id=\"manytomany8\" "
+#~ "coords=\"9 60\"/> </areaspec> <programlisting><![CDATA[<many-to-many\n"
+#~ " column=\"column_name\"\n"
+#~ " formula=\"any SQL expression\"\n"
+#~ " class=\"ClassName\"\n"
+#~ " fetch=\"select|join\"\n"
+#~ " unique=\"true|false\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " property-ref=\"propertyNameFromAssociatedClass\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]></programlisting> <calloutlist> <callout arearefs=\"manytomany1"
+#~ "\"> <para> <literal>column</literal> (optional): the name of the element "
+#~ "foreign key column. </para> </callout> <callout arearefs=\"manytomany2\"> "
+#~ "<para> <literal>formula</literal> (optional): an SQL formula used to "
+#~ "evaluate the element foreign key value. </para> </callout> <callout "
+#~ "arearefs=\"manytomany3\"> <para> <literal>class</literal> (required): the "
+#~ "name of the associated class. </para> </callout> <callout arearefs="
+#~ "\"manytomany4\"> <para> <literal>fetch</literal> (optional - defaults to "
+#~ "<literal>join</literal>): enables outer-join or sequential select "
+#~ "fetching for this association. This is a special case; for full eager "
+#~ "fetching in a single <literal>SELECT</literal> of an entity and its many-"
+#~ "to-many relationships to other entities, you would enable <literal>join</"
+#~ "literal> fetching,not only of the collection itself, but also with this "
+#~ "attribute on the <literal><many-to-many></literal> nested element. "
+#~ "</para> </callout> <callout arearefs=\"manytomany5\"> <para> "
+#~ "<literal>unique</literal> (optional): enables the DDL generation of a "
+#~ "unique constraint for the foreign-key column. This makes the association "
+#~ "multiplicity effectively one-to-many. </para> </callout> <callout "
+#~ "arearefs=\"manytomany6\"> <para> <literal>not-found</literal> (optional - "
+#~ "defaults to <literal>exception</literal>): specifies how foreign keys "
+#~ "that reference missing rows will be handled: <literal>ignore</literal> "
+#~ "will treat a missing row as a null association. </para> </callout> "
+#~ "<callout arearefs=\"manytomany7\"> <para> <literal>entity-name</literal> "
+#~ "(optional): the entity name of the associated class, as an alternative to "
+#~ "<literal>class</literal>. </para> </callout> <callout arearefs="
+#~ "\"manytomany8\"> <para> <literal>property-ref</literal> (optional): the "
+#~ "name of a property of the associated class that is joined to this foreign "
+#~ "key. If not specified, the primary key of the associated class is used. </"
+#~ "para> </callout> </calloutlist> </programlistingco>"
+
+#~ msgid ""
+#~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"names\" table=\"person_names\">\n"
+#~ " <key column=\"person_id\"/>\n"
+#~ " <element column=\"person_name\" type=\"string\"/>\n"
+#~ "</set>]]>"
+
+#~ 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 ""
+#~ "<![CDATA[<bag name=\"sizes\" \n"
+#~ " table=\"item_sizes\" \n"
+#~ " order-by=\"size asc\">\n"
+#~ " <key column=\"item_id\"/>\n"
+#~ " <element column=\"size\" type=\"integer\"/>\n"
+#~ "</bag>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<array name=\"addresses\" \n"
+#~ " table=\"PersonAddress\" \n"
+#~ " cascade=\"persist\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <many-to-many column=\"addressId\" class=\"Address\"/>\n"
+#~ "</array>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<array name=\"addresses\" \n"
+#~ " table=\"PersonAddress\" \n"
+#~ " cascade=\"persist\">\n"
+#~ " <key column=\"personId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <many-to-many column=\"addressId\" class=\"Address\"/>\n"
+#~ "</array>]]>"
+
+#~ msgid ""
+#~ "<![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 ""
+#~ "<![CDATA[<map name=\"holidays\" \n"
+#~ " table=\"holidays\" \n"
+#~ " schema=\"dbo\" \n"
+#~ " order-by=\"hol_name asc\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date\" type=\"date\"/>\n"
+#~ "</map>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<list name=\"carComponents\" \n"
+#~ " table=\"CarComponents\">\n"
+#~ " <key column=\"carId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <composite-element class=\"CarComponent\">\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"type\"/>\n"
+#~ " <property name=\"serialNumber\" column=\"serialNum\"/>\n"
+#~ " </composite-element>\n"
+#~ "</list>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<list name=\"carComponents\" \n"
+#~ " table=\"CarComponents\">\n"
+#~ " <key column=\"carId\"/>\n"
+#~ " <list-index column=\"sortOrder\"/>\n"
+#~ " <composite-element class=\"CarComponent\">\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"type\"/>\n"
+#~ " <property name=\"serialNumber\" column=\"serialNum\"/>\n"
+#~ " </composite-element>\n"
+#~ "</list>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<one-to-many \n"
+#~ " class=\"ClassName\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]>"
+#~ msgstr ""
+#~ "<![CDATA[<one-to-many \n"
+#~ " class=\"ClassName\"\n"
+#~ " not-found=\"ignore|exception\"\n"
+#~ " entity-name=\"EntityName\"\n"
+#~ " node=\"element-name\"\n"
+#~ " embed-xml=\"true|false\"\n"
+#~ " />]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<map name=\"parts\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"productId\" not-null=\"true\"/>\n"
+#~ " <map-key formula=\"partName\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map name=\"parts\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"productId\" not-null=\"true\"/>\n"
+#~ " <map-key formula=\"partName\"/>\n"
+#~ " <one-to-many class=\"Part\"/>\n"
+#~ "</map>]]>"
+
+#~ msgid ""
+#~ "<![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 ""
+#~ "<![CDATA[<set name=\"aliases\" \n"
+#~ " table=\"person_aliases\" \n"
+#~ " sort=\"natural\">\n"
+#~ " <key column=\"person\"/>\n"
+#~ " <element column=\"name\" type=\"string\"/>\n"
+#~ "</set>\n"
+#~ "\n"
+#~ "<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
+#~ " <key column=\"year_id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date\" type=\"date\"/>\n"
+#~ "</map>]]>"
+
+#~ msgid ""
+#~ "<![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 ""
+#~ "<![CDATA[<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower"
+#~ "(name) asc\">\n"
+#~ " <key column=\"person\"/>\n"
+#~ " <element column=\"name\" type=\"string\"/>\n"
+#~ "</set>\n"
+#~ "\n"
+#~ "<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
+#~ " <key column=\"year_id\"/>\n"
+#~ " <map-key column=\"hol_name\" type=\"string\"/>\n"
+#~ " <element column=\"hol_date type=\"date\"/>\n"
+#~ "</map>]]>"
+
+#~ msgid ""
+#~ "<![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"
+#~ " ...\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 ""
+#~ "<![CDATA[<class name=\"Category\">\n"
+#~ " <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
+#~ " ...\n"
+#~ " <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
+#~ " <key column=\"CATEGORY_ID\"/>\n"
+#~ " <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
+#~ " </bag>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Item\">\n"
+#~ " <id name=\"id\" column=\"ITEM_ID\"/>\n"
+#~ " ...\n"
+#~ "\n"
+#~ " <!-- inverse end -->\n"
+#~ " <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true\">\n"
+#~ " <key column=\"ITEM_ID\"/>\n"
+#~ " <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
+#~ " </bag>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "category.getItems().add(item); // The category now \"knows\" "
+#~ "about the relationship\n"
+#~ "item.getCategories().add(category); // The item now \"knows\" about "
+#~ "the relationship\n"
+#~ "\n"
+#~ "session.persist(item); // The relationship won't be "
+#~ "saved!\n"
+#~ "session.persist(category); // The relationship will be "
+#~ "saved]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "category.getItems().add(item); // The category now \"knows\" "
+#~ "about the relationship\n"
+#~ "item.getCategories().add(category); // The item now \"knows\" about "
+#~ "the relationship\n"
+#~ "\n"
+#~ "session.persist(item); // The relationship won't be "
+#~ "saved!\n"
+#~ "session.persist(category); // The relationship will be "
+#~ "saved]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\">\n"
+#~ " <key column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Parent\">\n"
+#~ " <id name=\"id\" column=\"parent_id\"/>\n"
+#~ " ....\n"
+#~ " <map name=\"children\">\n"
+#~ " <key column=\"parent_id\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"name\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </map>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Child\">\n"
+#~ " <id name=\"id\" column=\"child_id\"/>\n"
+#~ " ....\n"
+#~ " <many-to-one name=\"parent\" \n"
+#~ " class=\"Parent\" \n"
+#~ " column=\"parent_id\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<map name=\"contracts\">\n"
+#~ " <key column=\"employer_id\" not-null=\"true\"/>\n"
+#~ " <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
+#~ " <one-to-many class=\"Contract\"/>\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map name=\"contracts\">\n"
+#~ " <key column=\"employer_id\" not-null=\"true\"/>\n"
+#~ " <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
+#~ " <one-to-many class=\"Contract\"/>\n"
+#~ "</map>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<map name=\"connections\">\n"
+#~ " <key column=\"incoming_node_id\"/>\n"
+#~ " <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
+#~ " <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
+#~ "</map>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<map name=\"connections\">\n"
+#~ " <key column=\"incoming_node_id\"/>\n"
+#~ " <map-key-many-to-many column=\"outgoing_node_id\" class=\"Node\"/>\n"
+#~ " <many-to-many column=\"connection_id\" class=\"Connection\"/>\n"
+#~ "</map>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
+#~ " <collection-id column=\"ID\" type=\"long\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </collection-id>\n"
+#~ " <key column=\"PERSON1\"/>\n"
+#~ " <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
+#~ "</idbag>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<idbag name=\"lovers\" table=\"LOVERS\">\n"
+#~ " <collection-id column=\"ID\" type=\"long\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </collection-id>\n"
+#~ " <key column=\"PERSON1\"/>\n"
+#~ " <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/>\n"
+#~ "</idbag>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "\n"
+#~ "public class Parent {\n"
+#~ " private long id;\n"
+#~ " private Set children;\n"
+#~ "\n"
+#~ " public long getId() { return id; }\n"
+#~ " private void setId(long id) { this.id=id; }\n"
+#~ "\n"
+#~ " private Set getChildren() { return children; }\n"
+#~ " private void setChildren(Set children) { this.children=children; }\n"
+#~ "\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "\n"
+#~ "public class Parent {\n"
+#~ " private long id;\n"
+#~ " private Set children;\n"
+#~ "\n"
+#~ " public long getId() { return id; }\n"
+#~ " private void setId(long id) { this.id=id; }\n"
+#~ "\n"
+#~ " private Set getChildren() { return children; }\n"
+#~ " private void setChildren(Set children) { this.children=children; }\n"
+#~ "\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255), "
+#~ "parent_id bigint )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255), "
+#~ "parent_id bigint )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id"
+#~ "\" not-null=\"true\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id"
+#~ "\" not-null=\"true\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null\n"
+#~ " primary key,\n"
+#~ " name varchar(255),\n"
+#~ " parent_id bigint not null )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null\n"
+#~ " primary key,\n"
+#~ " name varchar(255),\n"
+#~ " parent_id bigint not null )\n"
+#~ "alter table child add constraint childfk0 (parent_id) references parent]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" table=\"childset\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <many-to-many class=\"Child\" column=\"child_id\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Parent\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <set name=\"children\" table=\"childset\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <many-to-many class=\"Child\" column=\"child_id\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Child\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255) )\n"
+#~ "create table childset ( parent_id bigint not null,\n"
+#~ " child_id bigint not null,\n"
+#~ " primary key ( parent_id, child_id ) )\n"
+#~ "alter table childset add constraint childsetfk0 (parent_id) references "
+#~ "parent\n"
+#~ "alter table childset add constraint childsetfk1 (child_id) references "
+#~ "child]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table parent ( id bigint not null primary key )\n"
+#~ "create table child ( id bigint not null primary key, name varchar(255) )\n"
+#~ "create table childset ( parent_id bigint not null,\n"
+#~ " child_id bigint not null,\n"
+#~ " primary key ( parent_id, child_id ) )\n"
+#~ "alter table childset add constraint childsetfk0 (parent_id) references "
+#~ "parent\n"
+#~ "alter table childset add constraint childsetfk1 (child_id) references "
+#~ "child]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/component_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/component_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/component_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,584 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 09:01+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Component Mapping"
+msgstr "ç»ä»¶ï¼Componentï¼æ å°"
+
+#. 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 ä¸å å¤ä¸åçå°æ¹ä¸ºäºä¸åçç®ç被éå¤ä½¿ç¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dependent objects"
+msgstr "ä¾èµå¯¹è±¡ï¼Dependent objectsï¼"
+
+#. 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ï¼è¿ä¸ªæ¦å¿µå¯ä»¥åä¸é¢è¿æ ·æ¥å»ºæ¨¡ï¼ "
+
+#. 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 æ¹æ³ï¼ä½æ¯ä½ ä¸éè¦å®ç°ä»»ä½çæ¥å£æç³ææ è¯ç¬¦å段ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Our Hibernate mapping would look like this:"
+msgstr "以ä¸æ¯è¿ä¸ªä¾åç Hibernate æ å°æä»¶ï¼ "
+
+#. 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> çå段ã"
+
+#. 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 å°åå®æ´ä¸ªç»ä»¶ä¸ºç©ºãå¨å¤§å¤æ°æ
åµä¸ï¼è¿æ ·åå®åºè¯¥æ¯æ²¡æé®é¢çã"
+
+#. 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ï¼å¯¹è±¡æ¨¡åã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><component></literal> element allows a <literal><parent></literal> subelement that maps a property of the component class as a reference back to the containing entity."
+msgstr "<literal><component></literal> å
ç´ å
许å å
¥ä¸ä¸ª <literal><parent></literal> åå
ç´ ï¼å¨ç»ä»¶ç±»å
é¨å°±å¯ä»¥æä¸ä¸ªæåå
¶å®¹å¨çå®ä½çååå¼ç¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Collections of dependent objects"
+msgstr "å¨éåä¸åºç°çä¾èµå¯¹è±¡ï¼Collections of dependent objectsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Collections of components are supported (e.g. an array of type <literal>Name</literal>). Declare your component collection by replacing the <literal><element></literal> tag with a <literal><composite-element></literal> tag:"
+msgstr "Hibernate æ¯æç»ä»¶çéåï¼ä¾å¦ï¼ä¸ä¸ªå
ç´ æ¯å§å <literal>Name</literal> è¿ç§ç±»åçæ°ç»ï¼ãä½ å¯ä»¥ä½¿ç¨ <literal><composite-element></literal> æ ç¾æ¿ä»£ <literal><element></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> æ¯é常éè¦çã "
+
+#. Tag: para
+#, no-c-format
+msgid "Composite elements can contain components but not collections. If your composite element contains components, use the <literal><nested-composite-element></literal> tag. This case is a collection of components which themselves have components. You may want to consider if a one-to-many association is more appropriate. Remodel the composite element as an entity, but be aware that even though the Java model is the same, the relational model and persistence semantics are still slightly different."
+msgstr "ç»åå
ç´ å¯ä»¥å
å«ç»ä»¶ï¼ä½æ¯ä¸è½å
å«éåãå¦æä½ çç»åå
ç´ èªèº«å
å«ç»ä»¶ï¼ä½ å¿
é¡»ä½¿ç¨ <literal><nested-composite-element></literal> æ ç¾ãè¿æ¯ä¸ä¸ªç¸å½ç¹æ®çæ¡ä¾ â å¨ä¸ä¸ªç»ä»¶çéåéï¼é£äºç»ä»¶æ¬èº«åå¯ä»¥å
å«å
¶ä»çç»ä»¶ãè¿ä¸ªæ¶åä½ å°±åºè¯¥èèä¸ä¸ä½¿ç¨ one-to-many å
³èæ¯å¦ä¼æ´æ°å½ãå°è¯å¯¹è¿ä¸ªç»åå
ç´ éæ°å»ºæ¨¡ä¸ºä¸ä¸ªå®ä½ â ä½æ¯éè¦æ³¨æçæ¯ï¼è½ç¶ Java 模ååéæ°å»ºæ¨¡åæ¯ä¸æ ·çï¼å
³ç³»æ¨¡ååæä¹
æ§è¯ä¹ä¼æç»å¾®çååã "
+
+#. Tag: para
+#, no-c-format
+msgid "A composite element mapping does not support null-able properties if you are using a <literal><set></literal>. There is no separate primary key column in the composite element table. Hibernate uses each column's value to identify a record when deleting objects, which is not possible with null values. You have to either use only not-null properties in a composite-element or choose a <literal><list></literal>, <literal><map></literal>, <literal><bag></literal> or <literal><idbag></literal>."
+msgstr "请注æå¦æä½ ä½¿ç¨ <literal><set></literal> æ ç¾ï¼ä¸ä¸ªç»åå
ç´ çæ å°ä¸æ¯æå¯è½ä¸ºç©ºçå±æ§. å½å é¤å¯¹è±¡æ¶ï¼Hibernate å¿
须使ç¨æ¯ä¸ä¸ªå段çå¼æ¥ç¡®å®ä¸æ¡è®°å½ï¼å¨ç»åå
ç´ è¡¨ä¸ï¼æ²¡æåç¬çå
³é®å段ï¼ï¼å¦ææ为 null çå段ï¼è¿æ ·åå°±ä¸å¯è½äºãä½ å¿
é¡»ä½åºä¸ä¸ªéæ©ï¼è¦ä¹å¨ç»åå
ç´ ä¸ä½¿ç¨ä¸è½ä¸ºç©ºçå±æ§ï¼è¦ä¹éæ©ä½¿ç¨ <literal><list></literal>ï¼<literal><map></literal>ï¼<literal><bag></literal> æè
<literal><idbag></literal> èä¸æ¯ <literal><set></literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "A special case of a composite element is a composite element with a nested <literal><many-to-one></literal> element. This mapping allows you to map extra columns of a many-to-many association table to the composite element class. The following is a many-to-many association from <literal>Order</literal> to <literal>Item</literal>, where <literal>purchaseDate</literal>, <literal>price</literal> and <literal>quantity</literal> are properties of the association:"
+msgstr "ç»åå
ç´ æ个ç¹å«çç¨æ³æ¯å®å¯ä»¥å
å«ä¸ä¸ª<literal><many-to-one></literal>å
ç´ ã类似è¿æ ·çæ å°å
è®¸ä½ å°ä¸ä¸ª many-to-many å
³è表çé¢å¤å段æ å°ä¸ºç»åå
ç´ ç±»ãæ¥ä¸æ¥ççä¾åæ¯ä» <literal>Order</literal> å° <literal>Item</literal> çä¸ä¸ªå¤å¯¹å¤çå
³èå
³ç³»ï¼å
³èå±æ§æ¯ <literal>purchaseDate</literal>ï¼<literal>price</literal> å <literal>quantity</literal> ã "
+
+#. Tag: para
+#, no-c-format
+msgid "There cannot be a reference to the purchase on the other side for bidirectional association navigation. Components are value types and do not allow shared references. A single <literal>Purchase</literal> can be in the set of an <literal>Order</literal>, but it cannot be referenced by the <literal>Item</literal> at the same time."
+msgstr "å½ç¶ï¼å½ä½ å®ä¹ Item æ¶ï¼ä½ æ æ³å¼ç¨è¿äº purchaseï¼å æ¤ä½ æ æ³å®ç°ååå
³èæ¥è¯¢ãè®°ä½ç»ä»¶æ¯å¼ç±»åï¼å¹¶ä¸ä¸å
许å
±äº«å¼ç¨ãæä¸ä¸ªç¹å®ç <literal>Purchase</literal> å¯ä»¥æ¾å¨ <literal>Order</literal> çéåä¸ï¼ä½å®ä¸è½åæ¶è¢« <literal>Item</literal> æå¼ç¨ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Even ternary (or quaternary, etc) associations are possible:"
+msgstr "å
¶å®ç»åå
ç´ çè¿ä¸ªç¨æ³å¯ä»¥æ©å±å°ä¸éæå¤éå
³è:"
+
+#. Tag: para
+#, no-c-format
+msgid "Composite elements can appear in queries using the same syntax as associations to other entities."
+msgstr "å¨æ¥è¯¢ä¸ï¼è¡¨è¾¾ç»åå
ç´ çè¯æ³åå
³èå°å
¶ä»å®ä½çè¯æ³æ¯ä¸æ ·çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Components as Map indices"
+msgstr "ç»ä»¶ä½ä¸º Map çç´¢å¼ï¼Components as Map indices ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><composite-map-key></literal> element allows you to map a component class as the key of a <literal>Map</literal>. Ensure that you override <literal>hashCode()</literal> and <literal>equals()</literal> correctly on the component class."
+msgstr "<literal><composite-map-key></literal> å
ç´ å
è®¸ä½ æ å°ä¸ä¸ªç»ä»¶ç±»ä½ä¸ºä¸ä¸ª <literal>Map</literal> ç keyï¼åææ¯ä½ å¿
é¡»æ£ç¡®çå¨è¿ä¸ªç±»ä¸éåäº <literal>hashCode()</literal> å <literal>equals()</literal> æ¹æ³ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Components as composite identifiers"
+msgstr "ç»ä»¶ä½ä¸ºèåæ è¯ç¬¦ï¼Components as composite identifiersï¼"
+
+#. 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 "ä½ å¯ä»¥ä½¿ç¨ä¸ä¸ªç»ä»¶ä½ä¸ºä¸ä¸ªå®ä½ç±»çæ è¯ç¬¦ãä½ çç»ä»¶ç±»å¿
须满足以ä¸è¦æ±ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "It must implement <literal>java.io.Serializable</literal>."
+msgstr "å®å¿
é¡»å®ç° <literal>java.io.Serializable</literal> æ¥å£"
+
+#. 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> æ¹æ³ï¼å§ç»åç»åå
³é®åå¨æ°æ®åºä¸çæ¦å¿µä¿æä¸è´ "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. 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 强å¶å¿
é¡»çãä½æ好è¿æ ·åã "
+
+#. 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> 产çç»åå
³é®åãä¸ä¸ªåºç¨ç¨åºå¿
é¡»åé
å®èªå·±çæ è¯ç¬¦ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Use the <literal><composite-id></literal> tag, with nested <literal><key-property></literal> elements, in place of the usual <literal><id></literal> declaration. For example, the <literal>OrderLine</literal> class has a primary key that depends upon the (composite) primary key of <literal>Order</literal>."
+msgstr "ä½¿ç¨ <literal><composite-id></literal> æ ç¾ï¼å¹¶ä¸å
åµ <literal><key-property></literal> å
ç´ ï¼ä»£æ¿é常ç <literal><id></literal> æ ç¾ãæ¯å¦ï¼<literal>OrderLine</literal> ç±»å
·æä¸ä¸ªä¸»é®ï¼è¿ä¸ªä¸»é®ä¾èµäº <literal>Order</literal> çï¼èåï¼ä¸»é®ã "
+
+#. Tag: 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> çå
³èå¯è½è¢«è¿æ ·æ å°ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>column</literal> element is an alternative to the <literal>column</literal> attribute everywhere. Using the <literal>column</literal> element just gives more declaration options, which are mostly useful when utilizing <literal>hbm2ddl</literal>"
+msgstr "注æå¨å个å°æ¹ <literal>column</literal> æ ç¾é½æ¯ <literal>column</literal> å±æ§çæ¿ä»£åæ³ãä½¿ç¨ <literal>column</literal> å
ç´ åªæ¯ç»åºä¸ä¸ªæ´è¯¦ç»çé项ï¼å¨ä½¿ç¨ <literal>hbm2ddl</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>å
³èä¹ä½¿ç¨èåå¤é®ï¼"
+
+#. 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> çéååæ¯è¿æ ·ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><one-to-many></literal> element declares no columns."
+msgstr "ä¸é常ä¸æ ·ï¼<literal><one-to-many></literal> å
ç´ ä¸å£°æä»»ä½åã"
+
+#. Tag: para
+#, no-c-format
+msgid "If <literal>OrderLine</literal> itself owns a collection, it also has a composite foreign key."
+msgstr "åè¥ <literal>OrderLine</literal> æ¬èº«æ¥æä¸ä¸ªéåï¼å®ä¹å
·æç»åå¤é®ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic components"
+msgstr "å¨æç»ä»¶ï¼Dynamic componentsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also map a property of type <literal>Map</literal>:"
+msgstr "ä½ çè³å¯ä»¥æ å° <literal>Map</literal> ç±»åçå±æ§ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The semantics of a <literal><dynamic-component></literal> mapping are identical to <literal><component></literal>. The advantage of this kind of mapping is the ability to determine the actual properties of the bean at deployment time just by editing the mapping document. Runtime manipulation of the mapping document is also possible, using a DOM parser. You can also access, and change, Hibernate's configuration-time metamodel via the <literal>Configuration</literal> object."
+msgstr "ä» <literal><dynamic-component></literal> æ å°çè¯ä¹ä¸æ¥è®²ï¼å®å <literal><component></literal> æ¯ç¸åçãè¿ç§æ å°ç±»åçä¼ç¹å¨äºéè¿ä¿®æ¹æ å°æ件ï¼å°±å¯ä»¥å
·æå¨é¨ç½²æ¶æ£æµçå®å±æ§çè½åãå©ç¨ä¸ä¸ª DOM 解æå¨ï¼ä¹å¯ä»¥å¨ç¨åºè¿è¡æ¶æä½æ å°æ件ãæ´å¥½çæ¯ï¼ä½ å¯ä»¥éè¿ <literal>Configuration</literal> 对象æ¥è®¿é®ï¼æè
ä¿®æ¹ï¼Hibernate çè¿è¡æ¶å
模åã "
+
+#~ msgid ""
+#~ "<![CDATA[public class Person {\n"
+#~ " private java.util.Date birthday;\n"
+#~ " private Name name;\n"
+#~ " private String key;\n"
+#~ " public String getKey() {\n"
+#~ " return key;\n"
+#~ " }\n"
+#~ " private void setKey(String key) {\n"
+#~ " this.key=key;\n"
+#~ " }\n"
+#~ " public java.util.Date getBirthday() {\n"
+#~ " return birthday;\n"
+#~ " }\n"
+#~ " public void setBirthday(java.util.Date birthday) {\n"
+#~ " this.birthday = birthday;\n"
+#~ " }\n"
+#~ " public Name getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " public void setName(Name name) {\n"
+#~ " this.name = name;\n"
+#~ " }\n"
+#~ " ......\n"
+#~ " ......\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class Person {\n"
+#~ " private java.util.Date birthday;\n"
+#~ " private Name name;\n"
+#~ " private String key;\n"
+#~ " public String getKey() {\n"
+#~ " return key;\n"
+#~ " }\n"
+#~ " private void setKey(String key) {\n"
+#~ " this.key=key;\n"
+#~ " }\n"
+#~ " public java.util.Date getBirthday() {\n"
+#~ " return birthday;\n"
+#~ " }\n"
+#~ " public void setBirthday(java.util.Date birthday) {\n"
+#~ " this.birthday = birthday;\n"
+#~ " }\n"
+#~ " public Name getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " public void setName(Name name) {\n"
+#~ " this.name = name;\n"
+#~ " }\n"
+#~ " ......\n"
+#~ " ......\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class Name {\n"
+#~ " char initial;\n"
+#~ " String first;\n"
+#~ " String last;\n"
+#~ " public String getFirst() {\n"
+#~ " return first;\n"
+#~ " }\n"
+#~ " void setFirst(String first) {\n"
+#~ " this.first = first;\n"
+#~ " }\n"
+#~ " public String getLast() {\n"
+#~ " return last;\n"
+#~ " }\n"
+#~ " void setLast(String last) {\n"
+#~ " this.last = last;\n"
+#~ " }\n"
+#~ " public char getInitial() {\n"
+#~ " return initial;\n"
+#~ " }\n"
+#~ " void setInitial(char initial) {\n"
+#~ " this.initial = initial;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class Name {\n"
+#~ " char initial;\n"
+#~ " String first;\n"
+#~ " String last;\n"
+#~ " public String getFirst() {\n"
+#~ " return first;\n"
+#~ " }\n"
+#~ " void setFirst(String first) {\n"
+#~ " this.first = first;\n"
+#~ " }\n"
+#~ " public String getLast() {\n"
+#~ " return last;\n"
+#~ " }\n"
+#~ " void setLast(String last) {\n"
+#~ " this.last = last;\n"
+#~ " }\n"
+#~ " public char getInitial() {\n"
+#~ " return initial;\n"
+#~ " }\n"
+#~ " void setInitial(char initial) {\n"
+#~ " this.initial = initial;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
+#~ "optional -->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\"> <!-- class attribute "
+#~ "optional -->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
+#~ " <parent name=\"namedPerson\"/> <!-- reference back to the Person "
+#~ "-->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Person\" table=\"person\">\n"
+#~ " <id name=\"Key\" column=\"pid\" type=\"string\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"birthday\" type=\"date\"/>\n"
+#~ " <component name=\"Name\" class=\"eg.Name\" unique=\"true\">\n"
+#~ " <parent name=\"namedPerson\"/> <!-- reference back to the Person "
+#~ "-->\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </component>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <composite-element class=\"eg.Name\"> <!-- class attribute required --"
+#~ ">\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </composite-element>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"someNames\" table=\"some_names\" lazy=\"true\">\n"
+#~ " <key column=\"id\"/>\n"
+#~ " <composite-element class=\"eg.Name\"> <!-- class attribute required --"
+#~ ">\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"first\"/>\n"
+#~ " <property name=\"last\"/>\n"
+#~ " </composite-element>\n"
+#~ "</set>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.Purchase\">\n"
+#~ " <property name=\"purchaseDate\"/>\n"
+#~ " <property name=\"price\"/>\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/> <!-- "
+#~ "class attribute is optional -->\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/>\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"eg.Order\" .... >\n"
+#~ " ....\n"
+#~ " <set name=\"purchasedItems\" table=\"purchase_items\" lazy=\"true"
+#~ "\">\n"
+#~ " <key column=\"order_id\">\n"
+#~ " <composite-element class=\"eg.OrderLine\">\n"
+#~ " <many-to-one name=\"purchaseDetails class=\"eg.Purchase\"/"
+#~ ">\n"
+#~ " <many-to-one name=\"item\" class=\"eg.Item\"/>\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" class=\"OrderLineId\">\n"
+#~ " <key-property name=\"lineId\"/>\n"
+#~ " <key-property name=\"orderId\"/>\n"
+#~ " <key-property name=\"customerId\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"name\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\" class=\"Order\"\n"
+#~ " insert=\"false\" update=\"false\">\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-one>\n"
+#~ " ....\n"
+#~ " \n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"orderLine\" class=\"OrderLine\">\n"
+#~ "<!-- the \"class\" attribute is optional, as usual -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ "</many-to-one>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"undeliveredOrderLines\">\n"
+#~ " <key column name=\"warehouseId\"/>\n"
+#~ " <many-to-many class=\"OrderLine\">\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </many-to-many>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"orderLines\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"OrderLine\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"OrderLine\">\n"
+#~ " ....\n"
+#~ " ....\n"
+#~ " <list name=\"deliveryAttempts\">\n"
+#~ " <key> <!-- a collection inherits the composite key "
+#~ "type -->\n"
+#~ " <column name=\"lineId\"/>\n"
+#~ " <column name=\"orderId\"/>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " </key>\n"
+#~ " <list-index column=\"attemptId\" base=\"1\"/>\n"
+#~ " <composite-element class=\"DeliveryAttempt\">\n"
+#~ " ...\n"
+#~ " </composite-element>\n"
+#~ " </set>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>]]>"
+#~ msgstr ""
+#~ "<dynamic-component name=\"userAttributes\">\n"
+#~ " <property name=\"foo\" column=\"FOO\" type=\"string\"/>\n"
+#~ " <property name=\"bar\" column=\"BAR\" type=\"integer\"/>\n"
+#~ " <many-to-one name=\"baz\" class=\"Baz\" column=\"BAZ_ID\"/>\n"
+#~ "</dynamic-component>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/configuration.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/configuration.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/configuration.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1979 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 09:03+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Configuration"
+msgstr "é
ç½®"
+
+#. 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ï¼ä¸å¹¶è¿è¡å®å¶ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Programmatic configuration"
+msgstr "å¯ç¼ç¨çé
ç½®æ¹å¼"
+
+#. 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 æ å°å®ä¹æ件ç¼è¯èæ¥ã"
+
+#. 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>ãä¾å¦ï¼"
+
+#. 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 å¸®ä½ å¯»æ¾æ å°å®ä¹æä»¶ï¼ "
+
+#. 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ï¼ã"
+
+#. 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>> ä¹å
è®¸ä½ æå®é
ç½®å±æ§ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+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>ã"
+
+#. 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ï¼ã"
+
+#. 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>ï¼å±æ§ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Include <literal><property></literal> elements in <literal>hibernate.cfg.xml</literal> (this is discussed later)."
+msgstr "å¨ <literal>hibernate.cfg.xml</literal> ä¸å å
¥å
ç´ <literal><property></literal>ï¼ç¨å讨论ï¼ã "
+
+#. Tag: para
+#, no-c-format
+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> å建å®æå®å°±è¢«ä¸¢å¼äºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Obtaining a SessionFactory"
+msgstr "è·å¾ SessionFactory"
+
+#. 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 <interfacename>org.hibernate.Session</interfacename> 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 <interfacename>org.hibernate.SessionFactory</interfacename>. This is useful if you are using more than one database."
+msgstr "Hibernate å
è®¸ä½ çåºç¨ç¨åºå建å¤ä¸ª <interfacename>org.hibernate.SessionFactory</interfacename> å®ä¾ãè¿å¯¹ 使ç¨å¤ä¸ªæ°æ®åºçåºç¨æ¥è¯´å¾æç¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "JDBC connections"
+msgstr "JDBC è¿æ¥"
+
+#. 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>ï¼"
+
+#. 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 è¿æ¥ã "
+
+#. 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 è¿æ¥é
ç½®ä¸æéè¦ç设置ã"
+
+#. 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 è¿æ¥ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC Properties"
+msgstr "Hibernate JDBC å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property name"
+msgstr "å±æ§å"
+
+#. Tag: entry
+#, no-c-format
+msgid "Purpose"
+msgstr "ç¨é"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.driver_class</property>"
+msgstr "<property>hibernate.connection.driver_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC driver class</emphasis>"
+msgstr "<emphasis>JDBC 驱å¨ç±»</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.url</property>"
+msgstr "<property>hibernate.connection.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>JDBC URL</emphasis>"
+msgstr "<emphasis>JDBC URL</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.username</property>"
+msgstr "<property>hibernate.connection.username</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis>"
+msgstr "<emphasis>æ°æ®åºç¨æ·</emphasis>ï¼å¯éï¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.password</property>"
+msgstr "<property>hibernate.connection.password</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis>"
+msgstr "<emphasis>æ°æ®åºå¯ç </emphasis>ï¼å¯éï¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.pool_size</property>"
+msgstr "<property>hibernate.connection.pool_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>maximum number of pooled connections</emphasis>"
+msgstr "<emphasis>è¿æ¥æ± 容éä¸éæ°ç®</emphasis>"
+
+#. 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ã "
+
+#. 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 ç½ç«è·åæ´å¤çä¿¡æ¯ã "
+
+#. Tag: para
+#, no-c-format
+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> å¤è·å¾è¿æ¥ï¼ä½ è³å°éè¦è®¾ç½®ä¸åå±æ§ä¸çä¸ä¸ªï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Datasource Properties"
+msgstr "Hibernate æ°æ®æºå±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.datasource</property>"
+msgstr "<property>hibernate.connection.datasource</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>datasource JNDI name</emphasis>"
+msgstr "<emphasis>æ°æ®åºç¨æ·</emphasis>ï¼å¯éï¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.url</property>"
+msgstr "<property>hibernate.jndi.url</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>URL of the JNDI provider</emphasis> (optional)"
+msgstr "<emphasis>JNDI æä¾è
ç URL</emphasis>ï¼å¯éï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.class</property>"
+msgstr "<property>hibernate.jndi.class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>class of the JNDI <literal>InitialContextFactory</literal></emphasis> (optional)"
+msgstr "<emphasis>JNDI <literal>InitialContextFactory</literal> ç±»</emphasis>ï¼å¯éï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user</emphasis> (optional)"
+msgstr "<emphasis>æ°æ®åºç¨æ·</emphasis>ï¼å¯éï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>database user password</emphasis> (optional)"
+msgstr "<emphasis>æ°æ®åºå¯ç </emphasis>ï¼å¯éï¼"
+
+#. 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> æ ·ä¾æä»¶ï¼ "
+
+#. 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ï¼ä¸å»ã"
+
+#. 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> è¿æ¥å±æ§ã "
+
+#. 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>ï¼ä½ å¯ä»¥éæ©ä¸ä¸ªèªå®ä¹çå®ç°ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Optional configuration properties"
+msgstr "å¯éçé
ç½®å±æ§"
+
+#. 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 å¨è¿è¡æçè¡ä¸ºãå®ä»¬é½æ¯å¯éçï¼å¹¶æ¥æéå½çé»è®¤å¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Some of these properties are \"system-level\" only.</emphasis> System-level properties can be set only via <literal>java -Dproperty=value</literal> or <filename>hibernate.properties</filename>. They <emphasis>cannot</emphasis> be set by the other techniques described above."
+msgstr "<emphasis>å
¶ä¸ä¸äºå±æ§æ¯\"ç³»ç»çº§ï¼system-levelï¼ç\"</emphasis>ãç³»ç»çº§å±æ§åªè½éè¿<literal>java -Dproperty=value</literal> æ <literal>hibernate.properties</literal> æ¥è®¾ç½®ï¼è<emphasis>ä¸è½</emphasis>ç¨ä¸é¢æè¿°çå
¶ä»æ¹æ³æ¥è®¾ç½®ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Configuration Properties"
+msgstr "Hibernate é
ç½®å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.dialect</property>"
+msgstr "<property>hibernate.dialect</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a Hibernate <classname>org.hibernate.dialect.Dialect</classname> which allows Hibernate to generate SQL optimized for a particular relational database."
+msgstr "å
许 Hibernate é对ç¹å®çå
³ç³»æ°æ®åºçæä¼åç SQL ç <classname>org.hibernate.dialect.Dialect</classname> çç±»åã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>full.classname.of.Dialect</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>full.classname.of.Dialect</literal> "
+
+#. Tag: para
+#, 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> å®ç°ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.show_sql</property>"
+msgstr "<property>hibernate.show_sql</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Write all SQL statements to console. This is an alternative to setting the log category <literal>org.hibernate.SQL</literal> to <literal>debug</literal>."
+msgstr "è¾åºææ SQL è¯å¥å°æ§å¶å°ãæä¸ä¸ªå¦å¤çéæ©æ¯æ <literal>org.hibernate.SQL</literal> è¿ä¸ª log category设为 <literal>debug</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true</literal> | <literal>false</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>true</literal> | <literal>false</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.format_sql</property>"
+msgstr "<property>hibernate.format_sql</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pretty print the SQL in the log and console."
+msgstr "å¨ log å console ä¸æå°åºæ´æ¼äº®ç SQLã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_schema</property>"
+msgstr "<property>hibernate.default_schema</property>"
+
+#. Tag: entry
+#, no-c-format
+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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_catalog</property>"
+msgstr "<property>hibernate.default_catalog</property>"
+
+#. Tag: entry
+#, no-c-format
+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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.session_factory_name</property>"
+msgstr "<property>hibernate.session_factory_name</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The <interfacename>org.hibernate.SessionFactory</interfacename> will be automatically bound to this name in JNDI after it has been created."
+msgstr "<interfacename>org.hibernate.SessionFactory</interfacename> å建åï¼å°èªå¨ä½¿ç¨è¿ä¸ªååç»å®å° JNDI ä¸ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jndi/composite/name</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>jndi/composite/name</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.max_fetch_depth</property>"
+msgstr "<property>hibernate.max_fetch_depth</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a maximum \"depth\" for the outer join fetch tree for single-ended associations (one-to-one, many-to-one). A <literal>0</literal> disables default outer join fetching."
+msgstr "为ååå
³èï¼ä¸å¯¹ä¸ï¼å¤å¯¹ä¸ï¼çå¤è¿æ¥æåï¼outer join fetchï¼æ 设置æ大深度ãå¼ä¸º <literal>0</literal> æå³çå°å
³éé»è®¤çå¤è¿æ¥æåã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> recommended values between <literal>0</literal> and <literal>3</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis> å»ºè®®å¨ <literal>0</literal> å° <literal>3</literal> ä¹é´åå¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_batch_fetch_size</property>"
+msgstr "<property>hibernate.default_batch_fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default size for Hibernate batch fetching of associations."
+msgstr "为 Hibernate å
³èçæ¹éæå设置é»è®¤æ°éã "
+
+#. 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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.default_entity_mode</property>"
+msgstr "<property>hibernate.default_entity_mode</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets a default mode for entity representation for all sessions opened from this <literal>SessionFactory</literal>"
+msgstr "为ç±è¿ä¸ª <literal>SessionFactory</literal> æå¼çææ Session æå®é»è®¤çå®ä½è¡¨ç°æ¨¡å¼ã "
+
+#. Tag: para
+#, 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>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.order_updates</property>"
+msgstr "<property>hibernate.order_updates</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Forces Hibernate to order SQL updates by the primary key value of the items being updated. This will result in fewer transaction deadlocks in highly concurrent systems."
+msgstr "å¼ºå¶ Hibernate æç
§è¢«æ´æ°æ°æ®ç主é®ï¼ä¸º SQL æ´æ°æåºãè¿ä¹åå°åå°å¨é«å¹¶åç³»ç»ä¸äºå¡çæ»éã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.generate_statistics</property>"
+msgstr "<property>hibernate.generate_statistics</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, Hibernate will collect statistics useful for performance tuning."
+msgstr "å¦æå¼å¯ï¼Hibernate å°æ¶éæå©äºæ§è½è°èçç»è®¡æ°æ®ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_identifier_rollback</property>"
+msgstr "<property>hibernate.use_identifier_rollback</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, generated identifier properties will be reset to default values when objects are deleted."
+msgstr "å¦æå¼å¯ï¼å¨å¯¹è±¡è¢«å é¤æ¶çæçæ è¯å±æ§å°è¢«é设为é»è®¤å¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.use_sql_comments</property>"
+msgstr "<property>hibernate.use_sql_comments</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If turned on, Hibernate will generate comments inside the SQL, for easier debugging, defaults to <literal>false</literal>."
+msgstr "å¦æå¼å¯ï¼Hibernate å°å¨ SQL ä¸çææå©äºè°è¯ç注éä¿¡æ¯ï¼é»è®¤å¼ä¸º <literal>false</literal>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate JDBC and Connection Properties"
+msgstr "Hibernate JDBC åè¿æ¥ï¼connectionï¼å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.fetch_size</property>"
+msgstr "<property>hibernate.jdbc.fetch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value determines the JDBC fetch size (calls <literal>Statement.setFetchSize()</literal>)."
+msgstr "éé¶å¼ï¼æå® JDBC æåæ°éç大å°ï¼è°ç¨ <literal>Statement.setFetchSize()</literal>ï¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_size</property>"
+msgstr "<property>hibernate.jdbc.batch_size</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A non-zero value enables use of JDBC2 batch updates by Hibernate."
+msgstr "éé¶å¼ï¼å
许 Hibernate ä½¿ç¨ JDBC2 çæ¹éæ´æ°ã"
+
+#. 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> ä¹é´çå¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.batch_versioned_data</property>"
+msgstr "<property>hibernate.jdbc.batch_versioned_data</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Set this property to <literal>true</literal> if your JDBC driver returns correct row counts from <literal>executeBatch()</literal>. Iit is usually safe to turn this option on. Hibernate will then use batched DML for automatically versioned data. Defaults to <literal>false</literal>."
+msgstr "å¦æä½ æ³è®©ä½ ç JDBC 驱å¨ä» <literal>true</literal> è¿åæ£ç¡®çè¡è®¡æ° ï¼é£ä¹å°æ¤å±æ§è®¾ä¸º <literal>executeBatch()</literal>ï¼å¼å¯è¿ä¸ªé项é常æ¯å®å
¨çï¼ãåæ¶ï¼Hibernate å°ä¸ºèªå¨çæ¬åçæ°æ®ä½¿ç¨æ¹é DMLãé»è®¤å¼ä¸º <literal>false</literal>ã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.factory_class</property>"
+msgstr "<property>hibernate.jdbc.factory_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Select a custom <interfacename>org.hibernate.jdbc.Batcher</interfacename>. Most applications will not need this configuration property."
+msgstr "éæ©ä¸ä¸ªèªå®ä¹ç <literal>Batcher</literal>ãå¤æ°åºç¨ç¨åºä¸éè¦è¿ä¸ªé
ç½®å±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.BatcherFactory</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.Batcher</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+msgstr "<property>hibernate.jdbc.use_scrollable_resultset</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables use of JDBC2 scrollable resultsets by Hibernate. This property is only necessary when using user-supplied JDBC connections. Hibernate uses connection metadata otherwise."
+msgstr "å
许 Hibernate ä½¿ç¨ JDBC2 çå¯æ»å¨ç»æéãåªæå¨ä½¿ç¨ç¨æ·æä¾ç JDBC è¿æ¥æ¶ï¼è¿ä¸ªé项ææ¯å¿
è¦çï¼å¦å Hibernate ä¼ä½¿ç¨è¿æ¥çå
æ°æ®ã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_streams_for_binary</property>"
+msgstr "<property>hibernate.jdbc.use_streams_for_binary</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Use streams when writing/reading <literal>binary</literal> or <literal>serializable</literal> types to/from JDBC. <emphasis>*system-level property*</emphasis>"
+msgstr "å¨ JDBC 读å <literal>binary</literal> æ <literal>serializable</literal> çç±»åæ¶ä½¿ç¨æµï¼streamï¼ï¼ç³»ç»çº§å±æ§ï¼ã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jdbc.use_get_generated_keys</property>"
+msgstr "<property>hibernate.jdbc.use_get_generated_keys</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables use of JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> to retrieve natively generated keys after insert. Requires JDBC3+ driver and JRE1.4+, set to false if your driver has problems with the Hibernate identifier generators. By default, it tries to determine the driver capabilities using connection metadata."
+msgstr "å¨æ°æ®æå
¥æ°æ®åºä¹åï¼å
è®¸ä½¿ç¨ JDBC3 <literal>PreparedStatement.getGeneratedKeys()</literal> æ¥è·åæ°æ®åºçæç keyï¼é®ï¼ãéè¦ JDBC3+ 驱å¨å JRE1.4+ï¼å¦æä½ çæ°æ®åºé©±å¨å¨ä½¿ç¨ Hibernate çæ è¯çæå¨æ¶éå°é®é¢ï¼è¯·å°æ¤å¼è®¾ä¸º falseãé»è®¤æ
åµä¸å°ä½¿ç¨è¿æ¥çå
æ°æ®æ¥å¤å®é©±å¨çè½åã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>true|false</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>true | false</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.provider_class</property>"
+msgstr "<property>hibernate.connection.provider_class</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <interfacename>org.hibernate.connection.ConnectionProvider</interfacename> which provides JDBC connections to Hibernate."
+msgstr "èªå®ä¹ <literal>ConnectionProvider</literal> çç±»åï¼æ¤ç±»ç¨æ¥å Hibernate æä¾ JDBC è¿æ¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.ConnectionProvider</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.ConnectionProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.isolation</property>"
+msgstr "<property>hibernate.connection.isolation</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sets the JDBC transaction isolation level. Check <interfacename>java.sql.Connection</interfacename> for meaningful values, but note that most databases do not support all isolation levels and some define additional, non-standard isolations."
+msgstr "设置 JDBC äºå¡é离级å«ãæ¥ç <literal>java.sql.Connection</literal> æ¥äºè§£å个å¼çå
·ä½æä¹ï¼ä½è¯·æ³¨æå¤æ°æ°æ®åºé½ä¸æ¯æææçé离级å«ã "
+
+#. Tag: para
+#, 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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.autocommit</property>"
+msgstr "<property>hibernate.connection.autocommit</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables autocommit for JDBC pooled connections (it is not recommended)."
+msgstr "å
许被ç¼åç JDBC è¿æ¥å¼å¯èªå¨æ交ï¼autocommitï¼ï¼ä¸æ¨èï¼ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.release_mode</property>"
+msgstr "<property>hibernate.connection.release_mode</property>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Specifies when Hibernate should release JDBC connections. By default, a JDBC connection is held until the session is explicitly closed or disconnected. For an application server JTA datasource, use <literal>after_statement</literal> to aggressively release connections after every JDBC call. For a non-JTA connection, it often makes sense to release the connection at the end of each transaction, by using <literal>after_transaction</literal>. <literal>auto</literal> will choose <literal>after_statement</literal> for the JTA and CMT transaction strategies and <literal>after_transaction</literal> for the JDBC transaction strategy."
+msgstr "æå® Hibernate å¨ä½æ¶éæ¾ JDBC è¿æ¥ãé»è®¤æ
åµä¸,ç´å° Session 被æ¾å¼å
³éæ被æå¼è¿æ¥æ¶,æä¼éæ¾ JDBC è¿æ¥ã对äºåºç¨ç¨åºæå¡å¨ç JTA æ°æ®æºï¼ä½ åºå½ä½¿ç¨ <literal>after_statement</literal>ï¼è¿æ ·å¨æ¯æ¬¡ JDBC è°ç¨åï¼é½ä¼ä¸»å¨çéæ¾è¿æ¥ã对äºé JTA çè¿æ¥ï¼ä½¿ç¨ <literal>after_transaction</literal> å¨æ¯ä¸ªäºå¡ç»ææ¶éæ¾è¿æ¥æ¯åççã<literal>auto</literal> å°ä¸º JTA å CMT äºå¡çç¥éæ© <literal>after_statement</literal>ï¼ä¸ºJDBCäºå¡çç¥éæ© <literal>after_transaction</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>auto</literal> (default) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>auto</literal> (é»è®¤) | <literal>on_close</literal> | <literal>after_transaction</literal> | <literal>after_statement</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "This setting only affects <literal>Session</literal>s returned from <literal>SessionFactory.openSession</literal>. For <literal>Session</literal>s obtained through <literal>SessionFactory.getCurrentSession</literal>, the <literal>CurrentSessionContext</literal> implementation configured for use controls the connection release mode for those <literal>Session</literal>s. See <xref linkend=\"architecture-current-session\" />"
+msgstr "注æï¼è¿äºè®¾ç½®ä»
对éè¿ <literal>SessionFactory.openSession</literal> å¾å°ç <literal>Session</literal> èµ·ä½ç¨ã对äºéè¿ <literal>SessionFactory.getCurrentSession</literal> å¾å°ç <literal>Session</literal>ï¼æé
ç½®ç <literal>CurrentSessionContext</literal> å®ç°æ§å¶è¿äº <literal>Session</literal> çè¿æ¥éæ¾æ¨¡å¼ã请åé
<xref linkend=\"architecture-current-session\" />ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.connection.</property><emphasis><propertyName></emphasis>"
+msgstr "<property>hibernate.connection.</property><emphasis><propertyName></emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pass the JDBC property <emphasis><propertyName></emphasis> to <literal>DriverManager.getConnection()</literal>."
+msgstr "æ JDBC å±æ§ <emphasis><propertyName></emphasis> ä¼ éç» <literal>DriverManager.getConnection()</literal>ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+msgstr "<property>hibernate.jndi.</property><emphasis><propertyName></emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pass the property <emphasis><propertyName></emphasis> to the JNDI <literal>InitialContextFactory</literal>."
+msgstr "æ <emphasis><propertyName></emphasis> å±æ§ä¼ éç» JNDI <literal>InitialContextFactory</literal>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Cache Properties"
+msgstr "Hibernate ç¼åå±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.provider_class</literal>"
+msgstr "<literal>hibernate.cache.provider_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>CacheProvider</literal>."
+msgstr "èªå®ä¹ç <literal>CacheProvider</literal> çç±»åã"
+
+#. 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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_minimal_puts</literal>"
+msgstr "<literal>hibernate.cache.use_minimal_puts</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Optimizes second-level cache operation to minimize writes, at the cost of more frequent reads. This setting is most useful for clustered caches and, in Hibernate3, is enabled by default for clustered cache implementations."
+msgstr "以é¢ç¹ç读æä½ä¸ºä»£ä»·ï¼ä¼åäºçº§ç¼åæ¥æå°ååæä½ãå¨ Hibernate3 ä¸ï¼è¿ä¸ªè®¾ç½®å¯¹çé群ç¼åé常æç¨ï¼å¯¹é群ç¼åçå®ç°èè¨ï¼é»è®¤æ¯å¼å¯çã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_query_cache</literal>"
+msgstr "<literal>hibernate.cache.use_query_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables the query cache. Individual queries still have to be set cachable."
+msgstr "å
许æ¥è¯¢ç¼åï¼ä¸ªå«æ¥è¯¢ä»ç¶éè¦è¢«è®¾ç½®ä¸ºå¯ç¼åçã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_second_level_cache</literal>"
+msgstr "<literal>hibernate.cache.use_second_level_cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Can be used to completely disable the second level cache, which is enabled by default for classes which specify a <literal><cache></literal> mapping."
+msgstr "è½ç¨æ¥å®å
¨ç¦æ¢ä½¿ç¨äºçº§ç¼åã对é£äºå¨ç±»çæ å°å®ä¹ä¸æå® <literal><cache></literal> çç±»ï¼ä¼é»è®¤å¼å¯äºçº§ç¼åã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.query_cache_factory</literal>"
+msgstr "<literal>hibernate.cache.query_cache_factory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a custom <literal>QueryCache</literal> interface, defaults to the built-in <literal>StandardQueryCache</literal>."
+msgstr "èªå®ä¹å®ç° <literal>QueryCache</literal> æ¥å£çç±»åï¼é»è®¤ä¸ºå
建ç <literal>StandardQueryCache</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.QueryCache</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.QueryCache</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.region_prefix</literal>"
+msgstr "<literal>hibernate.cache.region_prefix</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A prefix to use for second-level cache region names."
+msgstr "äºçº§ç¼ååºååçåç¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>prefix</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>prefix</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cache.use_structured_entries</literal>"
+msgstr "<literal>hibernate.cache.use_structured_entries</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Forces Hibernate to store data in the second-level cache in a more human-friendly format."
+msgstr "å¼ºå¶ Hibernate 以æ´äººæ§åçæ ¼å¼å°æ°æ®åå
¥äºçº§ç¼åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Transaction Properties"
+msgstr "Hibernate äºå¡å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.factory_class</literal>"
+msgstr "<literal>hibernate.transaction.factory_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a <literal>TransactionFactory</literal> to use with Hibernate <literal>Transaction</literal> API (defaults to <literal>JDBCTransactionFactory</literal>)."
+msgstr "ä¸ä¸ª <literal>TransactionFactory</literal> çç±»åï¼ç¨äº Hibernate <literal>Transaction</literal> APIï¼é»è®¤ä¸º <literal>JDBCTransactionFactory</literal>ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionFactory</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.TransactionFactory</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>jta.UserTransaction</literal>"
+msgstr "<literal>jta.UserTransaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A JNDI name used by <literal>JTATransactionFactory</literal> to obtain the JTA <literal>UserTransaction</literal> from the application server."
+msgstr "ä¸ä¸ª JNDI ååï¼è¢« <literal>JTATransactionFactory</literal> ç¨æ¥ä»åºç¨æå¡å¨è·å JTA <literal>UserTransaction</literal>ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.manager_lookup_class</literal>"
+msgstr "<literal>hibernate.transaction.manager_lookup_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The classname of a <literal>TransactionManagerLookup</literal>. It is required when JVM-level caching is enabled or when using hilo generator in a JTA environment."
+msgstr "ä¸ä¸ª <literal>TransactionManagerLookup</literal> çç±»å â å½ä½¿ç¨ JVM 级ç¼åï¼æå¨ JTA ç¯å¢ä¸ä½¿ç¨ hilo çæå¨çæ¶åéè¦è¯¥ç±»ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>classname.of.TransactionManagerLookup</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>classname.of.TransactionManagerLookup</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.flush_before_completion</literal>"
+msgstr "<literal>hibernate.transaction.flush_before_completion</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, the session will be automatically flushed during the before completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\" />."
+msgstr "å¦æå¼å¯ï¼session å¨äºå¡å®æåå°è¢«èªå¨æ¸
æ´ï¼flushï¼ãç°å¨æ´å¥½çæ¹æ³æ¯ä½¿ç¨èªå¨ session ä¸ä¸æ管çã请åè§ <xref linkend=\"architecture-current-session\"/>ã "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.transaction.auto_close_session</literal>"
+msgstr "<literal>hibernate.transaction.auto_close_session</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "If enabled, the session will be automatically closed during the after completion phase of the transaction. Built-in and automatic session context management is preferred, see <xref linkend=\"architecture-current-session\" />."
+msgstr "å¦æå¼å¯ï¼session å¨äºå¡å®æåå°è¢«èªå¨å
³éã ç°å¨æ´å¥½çæ¹æ³æ¯ä½¿ç¨èªå¨ session ä¸ä¸æ管çã请åè§ <xref linkend=\"architecture-current-session\"/>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous Properties"
+msgstr "å
¶ä»å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.current_session_context_class</literal>"
+msgstr "<literal>hibernate.current_session_context_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Supply a custom strategy for the scoping of the \"current\" <literal>Session</literal>. See <xref linkend=\"architecture-current-session\" /> for more information about the built-in strategies."
+msgstr "为\"å½å\" <literal>Session</literal> æå®ä¸ä¸ªï¼èªå®ä¹çï¼çç¥ãå
³äºå
ç½®çç¥ç详æ
ï¼è¯·åè§ <xref linkend=\"architecture-current-session\"/>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>jta</literal> | <literal>thread</literal> | <literal>managed</literal> | <literal>custom.Class</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.factory_class</literal>"
+msgstr "<literal>hibernate.query.factory_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Chooses the HQL parser implementation."
+msgstr "éæ© HQL 解æå¨çå®ç°ã"
+
+#. 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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.query.substitutions</literal>"
+msgstr "<literal>hibernate.query.substitutions</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Is used to map from tokens in Hibernate queries to SQL tokens (tokens might be function or literal names, for example)."
+msgstr "å° Hibernate æ¥è¯¢ä¸ç符å·æ å°å° SQL æ¥è¯¢ä¸ç符å·ï¼ç¬¦å·å¯è½æ¯å½æ°åæ常éååï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>hqlLiteral=SQL_LITERAL, hqlFunction=SQLFUNC</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.hbm2ddl.auto</literal>"
+msgstr "<literal>hibernate.hbm2ddl.auto</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Automatically validates or exports schema DDL to the database when the <literal>SessionFactory</literal> is created. With <literal>create-drop</literal>, the database schema will be dropped when the <literal>SessionFactory</literal> is closed explicitly."
+msgstr "å¨ <literal>SessionFactory</literal> å建æ¶ï¼èªå¨æ£æ¥æ°æ®åºç»æï¼æè
å°æ°æ®åº schema ç DDL 导åºå°æ°æ®åºãä½¿ç¨ <literal>create-drop</literal> æ¶ï¼å¨æ¾å¼å
³é <literal>SessionFactory</literal> æ¶ï¼å°å é¤ææ°æ®åº schemaã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis role=\"strong\">e.g.</emphasis> <literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal>"
+msgstr "<emphasis role=\"strong\">ä¾å¦ï¼</emphasis><literal>validate</literal> | <literal>update</literal> | <literal>create</literal> | <literal>create-drop</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+msgstr "<literal>hibernate.cglib.use_reflection_optimizer</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Enables the use of CGLIB instead of runtime reflection (System-level property). Reflection can sometimes be useful when troubleshooting. Hibernate always requires CGLIB even if you turn off the optimizer. You cannot set this property in <literal>hibernate.cfg.xml</literal>."
+msgstr "å¼å¯ CGLIB æ¥æ¿ä»£è¿è¡æ¶åå°æºå¶ï¼ç³»ç»çº§å±æ§ï¼ãåå°æºå¶ææ¶å¨é¤éæ¶æ¯è¾æç¨ã注æå³ä½¿å
³éè¿ä¸ªä¼åï¼Hibernate è¿æ¯éè¦ CGLIBãä½ ä¸è½å¨ <literal>hibernate.cfg.xml</literal> ä¸è®¾ç½®æ¤å±æ§ã "
+
+#. Tag: title
+#, no-c-format
+msgid "SQL Dialects"
+msgstr "SQL æ¹è¨"
+
+#. 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 å°ä¸ºä¸é¢ååºçä¸äºå±æ§ä½¿ç¨åççé»è®¤å¼ï¼è¿æ ·ä½ å°±ä¸ç¨æå·¥æå®å®ä»¬ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate SQL Dialects (<literal>hibernate.dialect</literal>)"
+msgstr "Hibernate SQL æ¹è¨ï¼<literal>hibernate.dialect</literal>ï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "RDBMS"
+msgstr "RDBMS"
+
+#. Tag: entry
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialect"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2"
+msgstr "DB2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 AS/400"
+msgstr "DB2 AS/400"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2400Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "DB2 OS390"
+msgstr "DB2 OS390"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+msgstr "<literal>org.hibernate.dialect.DB2390Dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PostgreSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL"
+msgstr "MySQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with InnoDB"
+msgstr "MySQL with InnoDB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLInnoDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "MySQL with MyISAM"
+msgstr "MySQL with MyISAM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MySQLMyISAMDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle (any version)"
+msgstr "Oracleï¼any versionï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.OracleDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.OracleDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 9i"
+msgstr "Oracle 9i"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle9iDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Oracle 10g"
+msgstr "Oracle 10g"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.Oracle10gDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase"
+msgstr "Sybase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Sybase Anywhere"
+msgstr "Sybase Anywhere"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SybaseAnywhereDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Microsoft SQL Server"
+msgstr "Microsoft SQL Server"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SQLServerDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SAP DB"
+msgstr "SAP DB"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.SAPDBDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Informix"
+msgstr "Informix"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InformixDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InformixDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "HypersonicSQL"
+msgstr "HypersonicSQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.HSQLDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Ingres"
+msgstr "Ingres"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.IngresDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.IngresDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Progress"
+msgstr "Progress"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.ProgressDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Mckoi SQL"
+msgstr "Mckoi SQL"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.MckoiDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interbase"
+msgstr "Interbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.InterbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Pointbase"
+msgstr "Pointbase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.PointbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "FrontBase"
+msgstr "FrontBase"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FrontbaseDialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Firebird"
+msgstr "Firebird"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+msgstr "<literal>org.hibernate.dialect.FirebirdDialect</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Outer Join Fetching"
+msgstr "å¤è¿æ¥æåï¼Outer Join Fetchingï¼"
+
+#. 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 å
³èè·åè¿æ¥å¯¹è±¡çæ´ä¸ªå¯¹è±¡å¾ã"
+
+#. 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> æ¥æ å°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "åè§ <xref linkend=\"performance-fetching\"/> è·å¾æ´å¤ä¿¡æ¯ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Binary Streams"
+msgstr "äºè¿å¶æµï¼Binary Streamsï¼"
+
+#. 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> "
+
+#. Tag: title
+#, no-c-format
+msgid "Second-level and query cache"
+msgstr "äºçº§ç¼åä¸æ¥è¯¢ç¼å"
+
+#. 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\"/> è·åæ´å¤ç详æ
ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Query Language Substitution"
+msgstr "æ¥è¯¢è¯è¨ä¸çæ¿æ¢"
+
+#. 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 ä¸å®ä¹æ°çæ¥è¯¢ç¬¦å·ãä¾å¦ï¼ "
+
+#. 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 ä¸è¢«ç¿»è¯ææ´æ°å¸¸éã"
+
+#. Tag: para
+#, no-c-format
+msgid "This would allow you to rename the SQL <literal>LOWER</literal> function."
+msgstr "å°å
è®¸ä½ éå½å SQL ä¸ç <literal>LOWER</literal> å½æ°ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate statistics"
+msgstr "Hibernate çç»è®¡ï¼statisticsï¼æºå¶"
+
+#. 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ï¼ä»¥è·å¾æ´å¤ä¿¡æ¯ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Logging"
+msgstr "æ¥å¿"
+
+#. 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> ç®å½é带æä¸ä¸ªå±æ§æ件çä¾åã"
+
+#. 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 çæ¥å¿å¯è½å°è¯¦ç»ãè¿æ¯å¿
è¦çæ¥éå©å¨ãæ令人æå
´è¶£çæ¥å¿åç±»æå¦ä¸è¿äºï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Log Categories"
+msgstr "Hibernate æ¥å¿ç±»å«"
+
+#. Tag: entry
+#, no-c-format
+msgid "Category"
+msgstr "ç±»å«"
+
+#. Tag: entry
+#, no-c-format
+msgid "Function"
+msgstr "åè½"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.SQL</literal>"
+msgstr "<literal>org.hibernate.SQL</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DML statements as they are executed"
+msgstr "å¨ææ SQL DML è¯å¥è¢«æ§è¡æ¶ä¸ºå®ä»¬è®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.type</literal>"
+msgstr "<literal>org.hibernate.type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC parameters"
+msgstr "为ææ JDBC åæ°è®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.tool.hbm2ddl</literal>"
+msgstr "<literal>org.hibernate.tool.hbm2ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all SQL DDL statements as they are executed"
+msgstr "å¨ææ SQL DDL è¯å¥æ§è¡æ¶ä¸ºå®ä»¬è®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.pretty</literal>"
+msgstr "<literal>org.hibernate.pretty</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log the state of all entities (max 20 entities) associated with the session at flush time"
+msgstr "å¨ session æ¸
æ´ï¼flushï¼æ¶ï¼ä¸ºææä¸å
¶å
³èçå®ä½ï¼æå¤ 20 个ï¼çç¶æè®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache</literal>"
+msgstr "<literal>org.hibernate.cache</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all second-level cache activity"
+msgstr "为ææäºçº§ç¼åçæ´»å¨è®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction</literal>"
+msgstr "<literal>org.hibernate.transaction</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log transaction related activity"
+msgstr "为äºå¡ç¸å
³çæ´»å¨è®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.jdbc</literal>"
+msgstr "<literal>org.hibernate.jdbc</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JDBC resource acquisition"
+msgstr "为ææ JDBC èµæºçè·åè®°å½æ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.hql.ast.AST</literal>"
+msgstr "<literal>org.hibernate.hql.ast.AST</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log HQL and SQL ASTs during query parsing"
+msgstr "å¨è§£ææ¥è¯¢çæ¶å,è®°å½ HQL å SQL ç AST åææ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.secure</literal>"
+msgstr "<literal>org.hibernate.secure</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log all JAAS authorization requests"
+msgstr "为 JAAS 认è¯è¯·æ±åæ¥å¿"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate</literal>"
+msgstr "<literal>org.hibernate</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Log everything. This is a lot of information but it is useful for troubleshooting"
+msgstr "ä¸ºä»»ä½ Hibernate ç¸å
³ä¿¡æ¯è®°å½æ¥å¿ï¼ä¿¡æ¯éè¾å¤§ï¼ä½å¯¹æ¥éé常æ帮å©ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "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
+msgid "Implementing a <literal>NamingStrategy</literal>"
+msgstr "å®ç° <literal>NamingStrategy</literal>"
+
+#. 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 å
ç´ æå®ä¸ä¸ªâå½åæ åâã"
+
+#. 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 使ç¨ç缺ççç¥æ¯ç¸å½ç²¾ç®çã"
+
+#. 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> æå®ä¸ä¸ªä¸åçå½åçç¥ï¼ "
+
+#. 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> æ¯ä¸ä¸ªå
建çå½åçç¥ï¼å¯¹ä¸äºåºç¨ç¨åºèè¨ï¼å¯è½æ¯é常æç¨çèµ·ç¹ã"
+
+#. Tag: title
+#, no-c-format
+msgid "XML configuration file"
+msgstr "XML é
ç½®æ件"
+
+#. 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> çæ¿ä»£ãè¥ä¸¤ä¸ªæ件åæ¶åå¨ï¼å®å°è¦çåè
çå±æ§ã"
+
+#. 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> çæ ¹ç®å½ä¸ãä¸é¢æ¯ä¸ä¸ªä¾åï¼ "
+
+#. 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 è¯æ³çä¼å¿ä¹å¤ï¼ä¸¤è
æ¯çä»·çã "
+
+#. Tag: para
+#, no-c-format
+msgid "With the XML configuration, starting Hibernate is then as simple as:"
+msgstr "ä½¿ç¨ XML é
ç½®ï¼ä½¿å¾å¯å¨ Hibernate åçå¼å¸¸ç®åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can select a different XML configuration file using:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨å¦ä¸ä»£ç æ¥æ·»å ä¸ä¸ªä¸åç XML é
ç½®æ件ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "J2EE Application Server integration"
+msgstr "J2EE åºç¨ç¨åºæå¡å¨çéæ"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate has the following integration points for J2EE infrastructure:"
+msgstr "é对 J2EE ä½ç³»ï¼Hibernate æå¦ä¸å 个éæçæ¹é¢ï¼"
+
+#. 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ã "
+
+#. 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ã"
+
+#. 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ï¼ã "
+
+#. 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 å¯å¨åï¼æ°æ®æºå¿
é¡»æ¯å¯ç¨çï¼ççï¼ã "
+
+#. 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction strategy configuration"
+msgstr "äºå¡çç¥é
ç½®"
+
+#. 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>ã "
+
+#. 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> å®ä¾çå·¥åç±»ã"
+
+#. Tag: para
+#, no-c-format
+msgid "There are three standard, or built-in, choices:"
+msgstr "æä¸ä¸ªæ åï¼å
建ï¼çéæ©ï¼ "
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JDBCTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to database (JDBC) transactions (default)"
+msgstr "å§æç»æ°æ®åºï¼JDBCï¼äºå¡ï¼é»è®¤ï¼"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.JTATransactionFactory</literal>"
+
+#. 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 管ççäºå¡ã"
+
+#. Tag: term
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+msgstr "<literal>org.hibernate.transaction.CMTTransactionFactory</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "delegates to container-managed JTA transactions"
+msgstr "å§æç»å®¹å¨ç®¡çç JTA äºå¡"
+
+#. Tag: para
+#, no-c-format
+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> çå¼ç¨ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "JTA TransactionManagers"
+msgstr "JTA TransactionManagers"
+
+#. Tag: entry
+#, no-c-format
+msgid "Transaction Factory"
+msgstr "Transaction å·¥åç±»"
+
+#. Tag: entry
+#, no-c-format
+msgid "Application Server"
+msgstr "åºç¨ç¨åºæå¡å¨"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JBossTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss"
+msgstr "JBoss"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.WeblogicTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Weblogic"
+msgstr "Weblogic"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.WebSphereTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere"
+msgstr "WebSphere"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.WebSphereExtendedJTATransactionLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "WebSphere 6"
+msgstr "WebSphere 6"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.OrionTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Orion"
+msgstr "Orion"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.ResinTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Resin"
+msgstr "Resin"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JOTMTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOTM"
+msgstr "JOTM"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JOnASTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JOnAS"
+msgstr "JOnAS"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.JRun4TransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "JRun4"
+msgstr "JRun4"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+msgstr "<literal>org.hibernate.transaction.BESTransactionManagerLookup</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Borland ES"
+msgstr "Borland ES"
+
+#. Tag: title
+#, no-c-format
+msgid "JNDI-bound <literal>SessionFactory</literal>"
+msgstr "JNDI ç»å®ç <literal>SessionFactory</literal>"
+
+#. 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> 没æå
³ç³»ï¼å®ä»¬åªæ¯æ°å·§ç¨äºç¸åç注å表ã"
+
+#. 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ï¼ã"
+
+#. 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>ã"
+
+#. 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 é¨ç½²ï¼è§åé¢è®¨è®ºï¼ã"
+
+#. 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>ã "
+
+#. 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—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
+msgid "Current Session context management with JTA"
+msgstr "å¨ JTA ç¯å¢ä¸ä½¿ç¨ Current Session contextï¼å½å session ä¸ä¸æï¼ç®¡ç"
+
+#. 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 使ç¨å£°æå¼äºå¡å£°æã "
+
+#. Tag: title
+#, no-c-format
+msgid "JMX deployment"
+msgstr "JMX é¨ç½²"
+
+#. 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>ã "
+
+#. 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> æ ·ä¾ï¼ "
+
+#. 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 ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addResource(\"Item.hbm.xml\")\n"
+#~ " .addResource(\"Bid.hbm.xml\");]]>"
+#~ msgstr ""
+#~ "<![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"
+#~ " .addClass(org.hibernate.auction.Bid.class);]]>"
+#~ msgstr ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class)\n"
+#~ " .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect."
+#~ "MySQLInnoDBDialect\")\n"
+#~ " .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/"
+#~ "jdbc/test\")\n"
+#~ " .setProperty(\"hibernate.order_updates\", \"true\");]]>"
+#~ msgstr ""
+#~ "<![CDATA[Configuration cfg = new Configuration()\n"
+#~ " .addClass(org.hibernate.auction.Item.class)\n"
+#~ " .addClass(org.hibernate.auction.Bid.class)\n"
+#~ " .setProperty(\"hibernate.dialect\", \"org.hibernate.dialect."
+#~ "MySQLInnoDBDialect\")\n"
+#~ " .setProperty(\"hibernate.connection.datasource\", \"java:comp/env/"
+#~ "jdbc/test\")\n"
+#~ " .setProperty(\"hibernate.order_updates\", \"true\");]]>"
+
+#~ msgid "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+#~ msgstr "<![CDATA[SessionFactory sessions = cfg.buildSessionFactory();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
+#~ ">"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sessions.openSession(); // open a new Session]]"
+#~ ">"
+
+#~ msgid "JDBC URL"
+#~ msgstr "JDBC URL"
+
+#~ msgid "database user"
+#~ msgstr "database user"
+
+#~ msgid "database user password"
+#~ msgstr "æ°æ®åºç¨æ·å¯ç "
+
+#~ msgid ""
+#~ "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
+#~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+#~ "hibernate.connection.username = myuser\n"
+#~ "hibernate.connection.password = secret\n"
+#~ "hibernate.c3p0.min_size=5\n"
+#~ "hibernate.c3p0.max_size=20\n"
+#~ "hibernate.c3p0.timeout=1800\n"
+#~ "hibernate.c3p0.max_statements=50\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+#~ msgstr ""
+#~ "<![CDATA[hibernate.connection.driver_class = org.postgresql.Driver\n"
+#~ "hibernate.connection.url = jdbc:postgresql://localhost/mydatabase\n"
+#~ "hibernate.connection.username = myuser\n"
+#~ "hibernate.connection.password = secret\n"
+#~ "hibernate.c3p0.min_size=5\n"
+#~ "hibernate.c3p0.max_size=20\n"
+#~ "hibernate.c3p0.timeout=1800\n"
+#~ "hibernate.c3p0.max_statements=50\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+
+#~ msgid "datasource JNDI name"
+#~ msgstr "æ°æ®æº JNDI åå"
+
+#~ msgid ""
+#~ "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+#~ "hibernate.transaction.factory_class = \\\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ "hibernate.transaction.manager_lookup_class = \\\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+#~ msgstr ""
+#~ "<![CDATA[hibernate.connection.datasource = java:/comp/env/jdbc/test\n"
+#~ "hibernate.transaction.factory_class = \\\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ "hibernate.transaction.manager_lookup_class = \\\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup\n"
+#~ "hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect]]>"
+
+#~ msgid "<entry>DB2</entry>"
+#~ msgstr "<entry>DB2</entry>"
+
+#~ msgid "hibernate.query.substitutions true=1, false=0"
+#~ msgstr "hibernate.query.substitutions true=1ï¼false=0"
+
+#~ msgid "hibernate.query.substitutions toLowercase=LOWER"
+#~ msgstr "hibernate.query.substitutions toLowercase=LOWER"
+
+#~ msgid "org.hibernate"
+#~ msgstr "org.hibernate"
+
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .setNamingStrategy(ImprovedNamingStrategy.INSTANCE)\n"
+#~ " .addFile(\"Item.hbm.xml\")\n"
+#~ " .addFile(\"Bid.hbm.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <!-- a SessionFactory instance listed as /jndi/name -->\n"
+#~ " <session-factory\n"
+#~ " name=\"java:hibernate/SessionFactory\">\n"
+#~ "\n"
+#~ " <!-- properties -->\n"
+#~ " <property name=\"connection.datasource\">java:/comp/env/jdbc/"
+#~ "MyDB</property>\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</"
+#~ "property>\n"
+#~ " <property name=\"show_sql\">false</property>\n"
+#~ " <property name=\"transaction.factory_class\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ " </property>\n"
+#~ " <property name=\"jta.UserTransaction\">java:comp/UserTransaction</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- mapping files -->\n"
+#~ " <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
+#~ " <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
+#~ "\n"
+#~ " <!-- cache settings -->\n"
+#~ " <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-"
+#~ "write\"/>\n"
+#~ " <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only"
+#~ "\"/>\n"
+#~ " <collection-cache collection=\"org.hibernate.auction.Item.bids\" "
+#~ "usage=\"read-write\"/>\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <!-- a SessionFactory instance listed as /jndi/name -->\n"
+#~ " <session-factory\n"
+#~ " name=\"java:hibernate/SessionFactory\">\n"
+#~ "\n"
+#~ " <!-- properties -->\n"
+#~ " <property name=\"connection.datasource\">java:/comp/env/jdbc/"
+#~ "MyDB</property>\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.MySQLDialect</"
+#~ "property>\n"
+#~ " <property name=\"show_sql\">false</property>\n"
+#~ " <property name=\"transaction.factory_class\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory\n"
+#~ " </property>\n"
+#~ " <property name=\"jta.UserTransaction\">java:comp/UserTransaction</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- mapping files -->\n"
+#~ " <mapping resource=\"org/hibernate/auction/Item.hbm.xml\"/>\n"
+#~ " <mapping resource=\"org/hibernate/auction/Bid.hbm.xml\"/>\n"
+#~ "\n"
+#~ " <!-- cache settings -->\n"
+#~ " <class-cache class=\"org.hibernate.auction.Item\" usage=\"read-"
+#~ "write\"/>\n"
+#~ " <class-cache class=\"org.hibernate.auction.Bid\" usage=\"read-only"
+#~ "\"/>\n"
+#~ " <collection-cache collection=\"org.hibernate.auction.Item.bids\" "
+#~ "usage=\"read-write\"/>\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
+#~ "buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "<![CDATA[SessionFactory sf = new Configuration().configure()."
+#~ "buildSessionFactory();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+#~ msgstr ""
+#~ "<![CDATA[SessionFactory sf = new Configuration()\n"
+#~ " .configure(\"catdb.cfg.xml\")\n"
+#~ " .buildSessionFactory();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<server>\n"
+#~ "\n"
+#~ "<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
+#~ " name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
+#~ "\n"
+#~ " <!-- Required services -->\n"
+#~ " <depends>jboss.jca:service=RARDeployer</depends>\n"
+#~ " <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
+#~ "\n"
+#~ " <!-- Bind the Hibernate service to JNDI -->\n"
+#~ " <attribute name=\"JndiName\">java:/hibernate/SessionFactory</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Datasource settings -->\n"
+#~ " <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
+#~ " <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Transaction integration -->\n"
+#~ " <attribute name=\"TransactionStrategy\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory</attribute>\n"
+#~ " <attribute name=\"TransactionManagerLookupStrategy\">\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup</"
+#~ "attribute>\n"
+#~ " <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
+#~ " <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Fetching options -->\n"
+#~ " <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
+#~ "\n"
+#~ " <!-- Second-level caching -->\n"
+#~ " <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
+#~ " <attribute name=\"CacheProviderClass\">org.hibernate.cache."
+#~ "EhCacheProvider</attribute>\n"
+#~ " <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Logging -->\n"
+#~ " <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Mapping files -->\n"
+#~ " <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/"
+#~ "Category.hbm.xml</attribute>\n"
+#~ "\n"
+#~ "</mbean>\n"
+#~ "\n"
+#~ "</server>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<server>\n"
+#~ "\n"
+#~ "<mbean code=\"org.hibernate.jmx.HibernateService\"\n"
+#~ " name=\"jboss.jca:service=HibernateFactory,name=HibernateFactory\">\n"
+#~ "\n"
+#~ " <!-- Required services -->\n"
+#~ " <depends>jboss.jca:service=RARDeployer</depends>\n"
+#~ " <depends>jboss.jca:service=LocalTxCM,name=HsqlDS</depends>\n"
+#~ "\n"
+#~ " <!-- Bind the Hibernate service to JNDI -->\n"
+#~ " <attribute name=\"JndiName\">java:/hibernate/SessionFactory</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Datasource settings -->\n"
+#~ " <attribute name=\"Datasource\">java:HsqlDS</attribute>\n"
+#~ " <attribute name=\"Dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "attribute>\n"
+#~ "\n"
+#~ " <!-- Transaction integration -->\n"
+#~ " <attribute name=\"TransactionStrategy\">\n"
+#~ " org.hibernate.transaction.JTATransactionFactory</attribute>\n"
+#~ " <attribute name=\"TransactionManagerLookupStrategy\">\n"
+#~ " org.hibernate.transaction.JBossTransactionManagerLookup</"
+#~ "attribute>\n"
+#~ " <attribute name=\"FlushBeforeCompletionEnabled\">true</attribute>\n"
+#~ " <attribute name=\"AutoCloseSessionEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Fetching options -->\n"
+#~ " <attribute name=\"MaximumFetchDepth\">5</attribute>\n"
+#~ "\n"
+#~ " <!-- Second-level caching -->\n"
+#~ " <attribute name=\"SecondLevelCacheEnabled\">true</attribute>\n"
+#~ " <attribute name=\"CacheProviderClass\">org.hibernate.cache."
+#~ "EhCacheProvider</attribute>\n"
+#~ " <attribute name=\"QueryCacheEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Logging -->\n"
+#~ " <attribute name=\"ShowSqlEnabled\">true</attribute>\n"
+#~ "\n"
+#~ " <!-- Mapping files -->\n"
+#~ " <attribute name=\"MapResources\">auction/Item.hbm.xml,auction/"
+#~ "Category.hbm.xml</attribute>\n"
+#~ "\n"
+#~ "</mbean>\n"
+#~ "\n"
+#~ "</server>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/events.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/events.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/events.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,541 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors and events"
+msgstr "æ¦æªå¨ä¸äºä»¶ï¼Interceptors and eventsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"It is useful for the application to react to certain events that occur "
+"inside Hibernate. This allows for the implementation of generic "
+"functionality and the extension of Hibernate functionality."
+msgstr ""
+"åºç¨ç¨åºè½å¤ååº Hibernate å
é¨äº§ççç¹å®äºä»¶æ¯é常æç¨çãè¿æ ·å°±å
许å®ç°æäº"
+"éç¨çåè½ä»¥åå
许对 Hibernate åè½è¿è¡æ©å±ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Interceptors"
+msgstr "æ¦æªå¨ï¼Interceptorsï¼"
+
+#. Tag: para
+#, 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 ""
+"<literal>Interceptor</literal> æ¥å£æä¾äºä»ä¼è¯ï¼sessionï¼åè°ï¼callbackï¼åº"
+"ç¨ç¨åºï¼applicationï¼çæºå¶ï¼ è¿ç§åè°æºå¶å¯ä»¥å
许åºç¨ç¨åºå¨æä¹
å对象被ä¿"
+"åãæ´æ°ãå é¤ææ¯å è½½ä¹åï¼æ£æ¥å¹¶ï¼æï¼ä¿®æ¹å
¶ å±æ§ãä¸ä¸ªå¯è½çç¨éï¼å°±æ¯ç¨æ¥"
+"è·è¸ªå®¡æ ¸ï¼auditingï¼ä¿¡æ¯ãä¾å¦ï¼ä¸é¢çè¿ä¸ª<literal>æ¦æªå¨</literal>ï¼ä¼å¨ä¸ä¸ª"
+"å®ç°äº <literal>Auditable</literal> æ¥å£ç对象被å建æ¶èªå¨å°è®¾ç½® "
+"<literal>createTimestamp</literal> å±æ§ï¼å¹¶å¨å®ç°äº <literal>Auditable</"
+"literal> æ¥å£ç对象被æ´æ°æ¶ï¼åæ¥æ´æ° <literal>lastUpdateTimestamp</literal> "
+"å±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You can either implement <literal>Interceptor</literal> directly or extend "
+"<literal>EmptyInterceptor</literal>."
+msgstr ""
+"ä½ å¯ä»¥ç´æ¥å®ç° <literal>Interceptor</literal> æ¥å£ï¼ä¹å¯ä»¥ï¼æ好ï¼ç»§æ¿èª "
+"<literal>EmptyInterceptor</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are two kinds of inteceptors: <literal>Session</literal>-scoped and "
+"<literal>SessionFactory</literal>-scoped."
+msgstr ""
+"æ¦æªå¨å¯ä»¥æ两ç§ï¼<literal>Session</literal> èå´å
çå "
+"<literal>SessionFactory</literal> èå´å
çã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A <literal>Session</literal>-scoped interceptor is specified when a session "
+"is opened using one of the overloaded SessionFactory.openSession() methods "
+"accepting an <literal>Interceptor</literal>."
+msgstr ""
+"å½ä½¿ç¨æ个éè½½ç SessionFactory.openSession() ä½¿ç¨ <literal>Interceptor</"
+"literal> ä½ä¸ºåæ°è°ç¨æå¼ä¸ä¸ª session çæ¶åï¼å°±æå®äº <literal>Session</"
+"literal> èå´å
çæ¦æªå¨ã"
+
+#. Tag: para
+#, 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 ""
+"<literal>SessionFactory</literal> èå´å
çæ¦æªå¨è¦éè¿ "
+"<literal>Configuration</literal> ä¸æ³¨åï¼èè¿å¿
é¡»å¨å建 "
+"<literal>SessionFactory</literal> ä¹åãå¨è¿ç§æ
åµä¸ï¼ç»åºçæ¦æªå¨ä¼è¢«è¿ä¸ª "
+"<literal>SessionFactory</literal> ææå¼çææ session 使ç¨äºï¼é¤é session "
+"æå¼æ¶æç¡®ææäºä½¿ç¨çæ¦æªå¨ã<literal>SessionFactory</literal> èå´å
çæ¦æª"
+"å¨ï¼å¿
é¡»æ¯çº¿ç¨å®å
¨çãç¡®ä¿ä½ 没æä¿å session ä¸æçç¶æï¼å 为å¤ä¸ª session å¯"
+"è½å¹¶å使ç¨è¿ä¸ªæ¦æªå¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Event system"
+msgstr "äºä»¶ç³»ç»ï¼Event systemï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you have to react to particular events in your persistence layer, you can "
+"also use the Hibernate3 <emphasis>event</emphasis> architecture. The event "
+"system can be used in addition, or as a replacement, for interceptors."
+msgstr ""
+"å¦æéè¦ååºæä¹
å±çæäºç¹æ®äºä»¶ï¼ä½ ä¹å¯ä»¥ä½¿ç¨ Hibernate3 çäºä»¶æ¡æ¶ã该äºä»¶"
+"ç³»ç»å¯ä»¥ç¨æ¥æ¿ä»£æ¦æªå¨ï¼ä¹å¯ä»¥ä½ä¸ºæ¦æªå¨çè¡¥å
æ¥ä½¿ç¨ã "
+
+#. Tag: para
+#, 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 ""
+"åºæ¬ä¸ï¼<literal>Session</literal> æ¥å£çæ¯ä¸ªæ¹æ³é½æç¸å¯¹åºçäºä»¶ãæ¯å¦ "
+"<literal>LoadEvent</literal>ï¼<literal>FlushEvent</literal>ï¼ççï¼æ¥é
XML "
+"é
ç½®æ件ç DTDï¼ä»¥å <literal>org.hibernate.event</literal> å
æ¥è·å¾ææå·²å®"
+"ä¹çäºä»¶çå表ï¼ãå½æä¸ªæ¹ æ³è¢«è°ç¨æ¶ï¼Hibernate <literal>Session</literal>ä¼"
+"çæä¸ä¸ªç¸å¯¹åºçäºä»¶å¹¶æ¿æ´»æ æé
置好çäºä»¶çå¬å¨ãç³»ç»é¢è®¾ççå¬å¨å®ç°çå¤ç"
+"è¿ç¨å°±æ¯è¢«çå¬çæ¹æ³è¦åçï¼è¢«çå¬çæ¹æ³æåçå
¶å®ä»
ä»
æ¯æ¿æ´»çå¬å¨ï¼âå®é
âç"
+"å·¥ä½æ¯ç±çå¬å¨å®æçï¼ãä¸è¿ï¼ä½ å¯ä»¥èªç±å°éæ©å®ç° ä¸ä¸ªèªå·±å®å¶ççå¬å¨ï¼æ¯"
+"å¦ï¼å®ç°å¹¶æ³¨åç¨æ¥å¤çå¤ç <literal>LoadEvent</literal> ç "
+"<literal>LoadEventListener</literal> æ¥å£ï¼ï¼ æ¥è´è´£å¤çææçè°ç¨ "
+"<literal>Session</literal> ç <literal>load()</literal> æ¹æ³ç请æ±ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The listeners should be considered singletons. This means they are shared "
+"between requests, and should not save any state as instance variables."
+msgstr ""
+"çå¬å¨åºè¯¥è¢«çä½æ¯åä¾ï¼singletonï¼å¯¹è±¡ï¼ä¹å°±æ¯è¯´ï¼ææåç±»åçäºä»¶çå¤çå
񄧮"
+"åä¸ä¸ªçå¬å¨å®ä¾ï¼å æ¤çå¬å¨ä¸åºè¯¥ä¿åä»»ä½ç¶æï¼ä¹å°±æ¯ä¸åºè¯¥ä½¿ç¨æååéï¼ã"
+
+#. Tag: para
+#, 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 ""
+"ç¨æ·å®å¶ççå¬å¨åºè¯¥å®ç°ä¸æè¦å¤ççäºä»¶ç¸å¯¹åºçæ¥å£ï¼æè
ä»ä¸ä¸ªåéçåºç±»ç»§"
+"æ¿ï¼çè³æ¯ä» Hibernate èªå¸¦çé»è®¤äºä»¶çå¬å¨ç±»ç»§æ¿ï¼ä¸ºäºæ¹ä¾¿ä½ è¿æ ·åï¼è¿äºç±»é½"
+"被声ææ non-final çäºï¼ãç¨æ·å®å¶ççå¬å¨å¯ä»¥éè¿ç¼ç¨ä½¿ç¨ "
+"<literal>Configuration</literal> 对象 æ¥æ³¨åï¼ä¹å¯ä»¥å¨Hibernateç XML æ ¼å¼ç"
+"é
ç½®æ件ä¸è¿è¡å£°æï¼ä¸æ¯æå¨ Properties æ ¼å¼çé
ç½®æ件声æçå¬å¨ï¼ãä¸é¢æ¯ä¸"
+"个ç¨æ·å®å¶çå è½½äºä»¶ï¼load eventï¼ççå¬å¨ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"You also need a configuration entry telling Hibernate to use the listener in "
+"addition to the default listener:"
+msgstr ""
+"ä½ è¿éè¦ä¿®æ¹ä¸å¤é
ç½®ï¼æ¥åè¯ Hibernateï¼é¤äºé»è®¤ççå¬å¨ï¼è¿è¦éå éå®ççå¬"
+"å¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Instead, you can register it programmatically:"
+msgstr "æè
ï¼ä½ å¯ä»¥éè¿ç¼ç¨çæ¹å¼æ¥æ³¨åå®ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Listeners registered declaratively cannot share instances. If the same class "
+"name is used in multiple <literal><listener/></literal> elements, each "
+"reference will result in a separate instance of that class. If you need to "
+"share listener instances between listener types you must use the "
+"programmatic registration approach."
+msgstr ""
+"éè¿å¨XMLé
ç½®æ件声æè注åççå¬å¨ä¸è½å
±äº«å®ä¾ãå¦æå¨å¤ä¸ª <literal><"
+"listener/></literal> èç¹ä¸ä½¿ç¨ äºç¸åçç±»çååï¼åæ¯ä¸ä¸ªå¼ç¨é½å°ä¼äº§çä¸"
+"个ç¬ç«çå®ä¾ãå¦æä½ éè¦å¨å¤ä¸ªçå¬å¨ç±»åä¹é´å
±äº« çå¬å¨çå®ä¾ï¼åä½ å¿
须使ç¨ç¼"
+"ç¨çæ¹å¼æ¥è¿è¡æ³¨åã "
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Hibernate declarative security"
+msgstr "Hibernate ç声æå¼å®å
¨æºå¶"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Usually, declarative security in Hibernate applications is managed in a "
+"session facade layer. Hibernate3 allows certain actions to be permissioned "
+"via JACC, and authorized via JAAS. This is an optional functionality that is "
+"built on top of the event architecture."
+msgstr ""
+"é常ï¼Hibernate åºç¨ç¨åºç声æå¼å®å
¨æºå¶ç±ä¼è¯å¤è§å±ï¼session facadeï¼æ管"
+"çãç°å¨ï¼Hibernate3å
许æäºç¹å®çè¡ä¸ºç± JACC è¿è¡è®¸å¯ç®¡çï¼ç± JAAS è¿è¡ææ"
+"管çãæ¬åè½æ¯ä¸ä¸ªå»ºç«å¨äºä»¶æ¡æ¶ä¹ä¸çå¯éçåè½ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"First, you must configure the appropriate event listeners, to enable the use "
+"of JAAS authorization."
+msgstr ""
+"é¦å
ï¼ä½ å¿
é¡»è¦é
ç½®éå½çäºä»¶çå¬å¨ï¼event listenerï¼ï¼æ¥æ¿æ´»ä½¿ç¨ JAAS 管çæ"
+"æçåè½ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Note that <literal><listener type=\"...\" class=\"...\"/></literal> is "
+"shorthand for <literal><event type=\"...\"><listener class=\"...\"/"
+"></event></literal> when there is exactly one listener for a "
+"particular event type."
+msgstr ""
+"注æï¼<literal><listener type=\"...\" class=\"...\"/></literal> åªæ¯ "
+"<literal><event type=\"...\"><listener class=\"...\"/></"
+"event></literal> çç®åï¼å¯¹æ¯ä¸ä¸ªäºä»¶ç±»åé½å¿
é¡»ä¸¥æ ¼çæä¸ä¸ªçå¬å¨ä¸ä¹å¯¹"
+"åºã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Next, while still in <literal>hibernate.cfg.xml</literal>, bind the "
+"permissions to roles:"
+msgstr ""
+"æ¥ä¸æ¥ï¼ä»ç¶å¨ <literal>hibernate.cfg.xml</literal> æ件ä¸ï¼ç»å®è§è²çæéï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The role names are the roles understood by your JACC provider."
+msgstr "è¿äºè§è²çååå°±æ¯ä½ ç JACC provider æå®ä¹çè§è²çååã"
+
+#~ msgid ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package org.hibernate.test;\n"
+#~ "\n"
+#~ "import java.io.Serializable;\n"
+#~ "import java.util.Date;\n"
+#~ "import java.util.Iterator;\n"
+#~ "\n"
+#~ "import org.hibernate.EmptyInterceptor;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.type.Type;\n"
+#~ "\n"
+#~ "public class AuditInterceptor extends EmptyInterceptor {\n"
+#~ "\n"
+#~ " private int updates;\n"
+#~ " private int creates;\n"
+#~ " private int loads;\n"
+#~ "\n"
+#~ " public void onDelete(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " // do nothing\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onFlushDirty(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] currentState,\n"
+#~ " Object[] previousState,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " updates++;\n"
+#~ " for ( int i=0; i < propertyNames.length; i++ ) {\n"
+#~ " if ( \"lastUpdateTimestamp\".equals( propertyNames[i] ) ) "
+#~ "{\n"
+#~ " currentState[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onLoad(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " loads++;\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean onSave(Object entity,\n"
+#~ " Serializable id,\n"
+#~ " Object[] state,\n"
+#~ " String[] propertyNames,\n"
+#~ " Type[] types) {\n"
+#~ "\n"
+#~ " if ( entity instanceof Auditable ) {\n"
+#~ " creates++;\n"
+#~ " for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( \"createTimestamp\".equals( propertyNames[i] ) ) {\n"
+#~ " state[i] = new Date();\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return false;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void afterTransactionCompletion(Transaction tx) {\n"
+#~ " if ( tx.wasCommitted() ) {\n"
+#~ " System.out.println(\"Creations: \" + creates + \", Updates: "
+#~ "\" + updates, \"Loads: \" + loads);\n"
+#~ " }\n"
+#~ " updates=0;\n"
+#~ " creates=0;\n"
+#~ " loads=0;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = sf.openSession( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+#~ msgstr ""
+#~ "<![CDATA[new Configuration().setInterceptor( new AuditInterceptor() );]]>"
+
+#~ msgid ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class MyLoadListener implements LoadEventListener {\n"
+#~ " // this is the single method defined by the LoadEventListener "
+#~ "interface\n"
+#~ " public void onLoad(LoadEvent event, LoadEventListener.LoadType "
+#~ "loadType)\n"
+#~ " throws HibernateException {\n"
+#~ " if ( !MySecurity.isAuthorized( event.getEntityClassName(), event."
+#~ "getEntityId() ) ) {\n"
+#~ " throw MySecurityException(\"Unauthorized access\");\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-configuration>\n"
+#~ " <session-factory>\n"
+#~ " ...\n"
+#~ " <event type=\"load\">\n"
+#~ " <listener class=\"com.eg.MyLoadListener\"/>\n"
+#~ " <listener class=\"org.hibernate.event.def."
+#~ "DefaultLoadEventListener\"/>\n"
+#~ " </event>\n"
+#~ " </session-factory>\n"
+#~ "</hibernate-configuration>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+#~ msgstr ""
+#~ "<![CDATA[Configuration cfg = new Configuration();\n"
+#~ "LoadEventListener[] stack = { new MyLoadListener(), new "
+#~ "DefaultLoadEventListener() };\n"
+#~ "cfg.EventListeners().setLoadEventListeners(stack);]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<listener type=\"pre-delete\" class=\"org.hibernate.secure."
+#~ "JACCPreDeleteEventListener\"/>\n"
+#~ "<listener type=\"pre-update\" class=\"org.hibernate.secure."
+#~ "JACCPreUpdateEventListener\"/>\n"
+#~ "<listener type=\"pre-insert\" class=\"org.hibernate.secure."
+#~ "JACCPreInsertEventListener\"/>\n"
+#~ "<listener type=\"pre-load\" class=\"org.hibernate.secure."
+#~ "JACCPreLoadEventListener\"/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<grant role=\"admin\" entity-name=\"User\" actions=\"insert,"
+#~ "update,read\"/>\n"
+#~ "<grant role=\"su\" entity-name=\"User\" actions=\"*\"/>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_mappings.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_mappings.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_mappings.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1254 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Various Mappings"
+msgstr "示ä¾ï¼å¤ææ å°å®ä¾"
+
+#. Tag: para
+#, no-c-format
+msgid "This chapters explores some more complex association mappings."
+msgstr "æ¬ç« å±ç¤ºäºä¸äºè¾ä¸ºå¤æçå
³ç³»æ å°ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Employer/Employee"
+msgstr "Employerï¼é主ï¼/Employeeï¼éåï¼"
+
+#. Tag: para
+#, 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 ""
+"ä¸é¢å
³äº <literal>Employer</literal> å <literal>Employee</literal> çå
³ç³»æ¨¡"
+"å使ç¨äºä¸ä¸ªçå®çå®ä½ç±»ï¼<literal>Employment</literal>ï¼æ¥è¡¨è¿°ï¼è¿æ¯å 为对äº"
+"ç¸åçéååé主å¯è½ä¼æå¤ä¸ªéä½£æ¶é´æ®µã对äºéé¢åéåå§åï¼ç¨ Components 建"
+"模ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is a possible mapping document:"
+msgstr "æ å°æ件å¯è½æ¯è¿æ ·ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the table schema generated by <literal>SchemaExport</literal>."
+msgstr "ç¨ <literal>SchemaExport</literal> çæ表ç»æã "
+
+#. Tag: title
+#, no-c-format
+msgid "Author/Work"
+msgstr "Authorï¼ä½å®¶ï¼/Workï¼ä½åï¼"
+
+#. Tag: para
+#, 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 ""
+"èèä¸é¢ç <literal>Work</literal>ï¼<literal>Author</literal> å "
+"<literal>Person</literal> 模åçå
³ç³»ãæ们ç¨å¤å¯¹å¤å
³ç³»æ¥æè¿° <literal>Work</"
+"literal> å <literal>Author</literal>ï¼ç¨ä¸å¯¹ä¸å
³ç³»æ¥æè¿° <literal>Author</"
+"literal> å <literal>Person</literal>ï¼å¦ä¸ç§å¯è½æ§æ¯ <literal>Author</"
+"literal> ç»§æ¿ <literal>Person</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following mapping document correctly represents these relationships:"
+msgstr "ä¸é¢çæ å°æ件æ£ç¡®çæè¿°äºè¿äºå
³ç³»ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"There are four tables in this mapping: <literal>works</literal>, "
+"<literal>authors</literal> and <literal>persons</literal> hold work, author "
+"and person data respectively. <literal>author_work</literal> is an "
+"association table linking authors to works. Here is the table schema, as "
+"generated by <literal>SchemaExport</literal>:"
+msgstr ""
+"æ å°ä¸æ 4 个表ã<literal>works</literal>ï¼<literal>authors</literal> å "
+"<literal>persons</literal> åå«ä¿åç workï¼author å person çæ°æ®ã"
+"<literal>author_work</literal> æ¯ authors å works çå
³è表ã表ç»ææ¯ç± "
+"<literal>SchemaExport</literal> çæçï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Customer/Order/Product"
+msgstr "Customerï¼å®¢æ·ï¼/Orderï¼è®¢åï¼/Productï¼äº§åï¼"
+
+#. Tag: para
+#, 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 ""
+"ç°å¨æ¥èè <literal>Customer</literal>ï¼<literal>Order</literal>ï¼ "
+"<literal>LineItem</literal> å <literal>Product</literal> å
³ç³»ç模åã"
+"<literal>Customer</literal> å <literal>Order</literal> ä¹é´ æ¯ä¸å¯¹å¤çå
³ç³»ï¼"
+"ä½æ¯æ们æä¹æ¥æè¿° <literal>Order</literal> / <literal>LineItem</literal> / "
+"<literal>Product</literal>å¢ï¼ æå¯ä»¥æ <literal>LineItem</literal> ä½ä¸ºæè¿° "
+"<literal>Order</literal> å <literal>Product</literal> å¤å¯¹å¤å
³ç³»çå
³èç±»ï¼"
+"å¨ Hibernateï¼è¿å«åç»åå
ç´ ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping document will look like this:"
+msgstr "æ å°æ件å¦ä¸ï¼ "
+
+#. Tag: para
+#, 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 ""
+"<literal>customers</literal>ï¼<literal>orders</literal>ï¼"
+"<literal>line_items</literal> å <literal>products</literal> åå«ä¿åç "
+"customerï¼orderï¼order line item å product çæ°æ®ã <literal>line_items</"
+"literal> ä¹ä½ä¸ºè¿æ¥ orders å products çå
³è表ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Miscellaneous example mappings"
+msgstr "æä¾"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"These examples are available from the Hibernate test suite. You will find "
+"many other useful example mappings there by searching in the <literal>test</"
+"literal> folder of the Hibernate distribution."
+msgstr ""
+"è¿äºä¾åå
¨é¨æ¥èªäº Hibernate ç test suiteï¼åæ¶ä½ ä¹å¯ä»¥æ¾å°å
¶ä»æç¨çä¾åã"
+"å¯ä»¥åè Hibernate ç <literal>test</literal> ç®å½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "\"Typed\" one-to-one association"
+msgstr "\"Typed\" ä¸å¯¹ä¸å
³è"
+
+#. Tag: title
+#, no-c-format
+msgid "Composite key example"
+msgstr "ç»åé®ç¤ºä¾"
+
+#. Tag: title
+#, no-c-format
+msgid "Many-to-many with shared composite key attribute"
+msgstr ""
+"å
±æç»åé®å±æ§çå¤å¯¹å¤ï¼Many-to-many with shared composite key attributeï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Content based discrimination"
+msgstr "åºäºå
容çè¯å«"
+
+#. Tag: title
+#, no-c-format
+msgid "Associations on alternate keys"
+msgstr "å¤ç¨é®çèå"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " \n"
+#~ " <class name=\"Employer\" table=\"employers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employer_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employment\" table=\"employment_periods\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employment_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"startDate\" column=\"start_date\"/>\n"
+#~ " <property name=\"endDate\" column=\"end_date\"/>\n"
+#~ "\n"
+#~ " <component name=\"hourlyRate\" class=\"MonetaryAmount\">\n"
+#~ " <property name=\"amount\">\n"
+#~ " <column name=\"hourly_rate\" sql-type=\"NUMERIC(12, 2)\"/"
+#~ ">\n"
+#~ " </property>\n"
+#~ " <property name=\"currency\" length=\"12\"/>\n"
+#~ " </component>\n"
+#~ "\n"
+#~ " <many-to-one name=\"employer\" column=\"employer_id\" not-null="
+#~ "\"true\"/>\n"
+#~ " <many-to-one name=\"employee\" column=\"employee_id\" not-null="
+#~ "\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Employee\" table=\"employees\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"sequence\">\n"
+#~ " <param name=\"sequence\">employee_id_seq</param>\n"
+#~ " </generator>\n"
+#~ " </id>\n"
+#~ " <property name=\"taxfileNumber\"/>\n"
+#~ " <component name=\"name\" class=\"Name\">\n"
+#~ " <property name=\"firstName\"/>\n"
+#~ " <property name=\"initial\"/>\n"
+#~ " <property name=\"lastName\"/>\n"
+#~ " </component>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table employers (\n"
+#~ " id BIGINT not null, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employment_periods (\n"
+#~ " id BIGINT not null,\n"
+#~ " hourly_rate NUMERIC(12, 2),\n"
+#~ " currency VARCHAR(12), \n"
+#~ " employee_id BIGINT not null, \n"
+#~ " employer_id BIGINT not null, \n"
+#~ " end_date TIMESTAMP, \n"
+#~ " start_date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table employees (\n"
+#~ " id BIGINT not null, \n"
+#~ " firstName VARCHAR(255), \n"
+#~ " initial CHAR(1), \n"
+#~ " lastName VARCHAR(255), \n"
+#~ " taxfileNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK0 foreign key (employer_id) "
+#~ "references employers\n"
+#~ "alter table employment_periods \n"
+#~ " add constraint employment_periodsFK1 foreign key (employee_id) "
+#~ "references employees\n"
+#~ "create sequence employee_id_seq\n"
+#~ "create sequence employment_id_seq\n"
+#~ "create sequence employer_id_seq]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Work\" table=\"works\" discriminator-value=\"W\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"type\" type=\"character\"/>\n"
+#~ "\n"
+#~ " <property name=\"title\"/>\n"
+#~ " <set name=\"authors\" table=\"author_work\">\n"
+#~ " <key column name=\"work_id\"/>\n"
+#~ " <many-to-many class=\"Author\" column name=\"author_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " <subclass name=\"Book\" discriminator-value=\"B\">\n"
+#~ " <property name=\"text\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " <subclass name=\"Song\" discriminator-value=\"S\">\n"
+#~ " <property name=\"tempo\"/>\n"
+#~ " <property name=\"genre\"/>\n"
+#~ " </subclass>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Author\" table=\"authors\">\n"
+#~ "\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <!-- The Author must have the same identifier as the Person --"
+#~ ">\n"
+#~ " <generator class=\"assigned\"/> \n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"alias\"/>\n"
+#~ " <one-to-one name=\"person\" constrained=\"true\"/>\n"
+#~ "\n"
+#~ " <set name=\"works\" table=\"author_work\" inverse=\"true\">\n"
+#~ " <key column=\"author_id\"/>\n"
+#~ " <many-to-many class=\"Work\" column=\"work_id\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"persons\">\n"
+#~ " <id name=\"id\" column=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+#~ msgstr ""
+#~ "<![CDATA[create table works (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " tempo FLOAT, \n"
+#~ " genre VARCHAR(255), \n"
+#~ " text INTEGER, \n"
+#~ " title VARCHAR(255), \n"
+#~ " type CHAR(1) not null, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table author_work (\n"
+#~ " author_id BIGINT not null, \n"
+#~ " work_id BIGINT not null, \n"
+#~ " primary key (work_id, author_id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table authors (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " alias VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table persons (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table authors \n"
+#~ " add constraint authorsFK0 foreign key (id) references persons\n"
+#~ "alter table author_work \n"
+#~ " add constraint author_workFK0 foreign key (author_id) references "
+#~ "authors\n"
+#~ "alter table author_work\n"
+#~ " add constraint author_workFK1 foreign key (work_id) references works]]"
+#~ ">"
+
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"Customer\" table=\"customers\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <set name=\"orders\" inverse=\"true\">\n"
+#~ " <key column=\"customer_id\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </set>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Order\" table=\"orders\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\"/>\n"
+#~ " <many-to-one name=\"customer\" column=\"customer_id\"/>\n"
+#~ " <list name=\"lineItems\" table=\"line_items\">\n"
+#~ " <key column=\"order_id\"/>\n"
+#~ " <list-index column=\"line_number\"/>\n"
+#~ " <composite-element class=\"LineItem\">\n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " <many-to-one name=\"product\" column=\"product_id\"/>\n"
+#~ " </composite-element>\n"
+#~ " </list>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ " <class name=\"Product\" table=\"products\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"serialNumber\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+#~ msgstr ""
+#~ "<![CDATA[create table customers (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " name VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table orders (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " customer_id BIGINT, \n"
+#~ " date TIMESTAMP, \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table line_items (\n"
+#~ " line_number INTEGER not null, \n"
+#~ " order_id BIGINT not null, \n"
+#~ " product_id BIGINT, \n"
+#~ " quantity INTEGER, \n"
+#~ " primary key (order_id, line_number)\n"
+#~ ")\n"
+#~ "\n"
+#~ "create table products (\n"
+#~ " id BIGINT not null generated by default as identity, \n"
+#~ " serialNumber VARCHAR(255), \n"
+#~ " primary key (id)\n"
+#~ ")\n"
+#~ "\n"
+#~ "alter table orders \n"
+#~ " add constraint ordersFK0 foreign key (customer_id) references "
+#~ "customers\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK0 foreign key (product_id) references "
+#~ "products\n"
+#~ "alter table line_items\n"
+#~ " add constraint line_itemsFK1 foreign key (order_id) references "
+#~ "orders]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"name\"/>\n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'HOME'</formula>\n"
+#~ " </one-to-one>\n"
+#~ " <one-to-one name=\"mailingAddress\" \n"
+#~ " cascade=\"all\">\n"
+#~ " <formula>name</formula>\n"
+#~ " <formula>'MAILING'</formula>\n"
+#~ " </one-to-one>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\" batch-size=\"2\" \n"
+#~ " check=\"addressType in ('MAILING', 'HOME', 'BUSINESS')\">\n"
+#~ " <composite-id>\n"
+#~ " <key-many-to-one name=\"person\" \n"
+#~ " column=\"personName\"/>\n"
+#~ " <key-property name=\"type\" \n"
+#~ " column=\"addressType\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"street\" type=\"text\"/>\n"
+#~ " <property name=\"state\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"customerId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"100\"/>\n"
+#~ " <property name=\"address\" not-null=\"true\" length=\"200\"/>\n"
+#~ "\n"
+#~ " <list name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key column=\"customerId\"/>\n"
+#~ " <index column=\"orderNumber\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </list>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Order\" table=\"CustomerOrder\" lazy=\"true\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ " <synchronize table=\"Product\"/>\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"Order$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"orderDate\" \n"
+#~ " type=\"calendar_date\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <property name=\"total\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity*p.price) \n"
+#~ " from LineItem li, Product p \n"
+#~ " where li.productId = p.productId \n"
+#~ " and li.customerId = customerId \n"
+#~ " and li.orderNumber = orderNumber )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\"\n"
+#~ " column=\"customerId\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " \n"
+#~ " <bag name=\"lineItems\"\n"
+#~ " fetch=\"join\" \n"
+#~ " inverse=\"true\"\n"
+#~ " cascade=\"save-update\">\n"
+#~ " <key>\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </key>\n"
+#~ " <one-to-many class=\"LineItem\"/>\n"
+#~ " </bag>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"LineItem\">\n"
+#~ " \n"
+#~ " <composite-id name=\"id\" \n"
+#~ " class=\"LineItem$Id\">\n"
+#~ " <key-property name=\"customerId\" length=\"10\"/>\n"
+#~ " <key-property name=\"orderNumber\"/>\n"
+#~ " <key-property name=\"productId\" length=\"10\"/>\n"
+#~ " </composite-id>\n"
+#~ " \n"
+#~ " <property name=\"quantity\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"order\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\">\n"
+#~ " <column name=\"customerId\"/>\n"
+#~ " <column name=\"orderNumber\"/>\n"
+#~ " </many-to-one>\n"
+#~ " \n"
+#~ " <many-to-one name=\"product\"\n"
+#~ " insert=\"false\"\n"
+#~ " update=\"false\" \n"
+#~ " not-null=\"true\"\n"
+#~ " column=\"productId\"/>\n"
+#~ " \n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Product\">\n"
+#~ " <synchronize table=\"LineItem\"/>\n"
+#~ "\n"
+#~ " <id name=\"productId\"\n"
+#~ " length=\"10\">\n"
+#~ " <generator class=\"assigned\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"description\" \n"
+#~ " not-null=\"true\" \n"
+#~ " length=\"200\"/>\n"
+#~ " <property name=\"price\" length=\"3\"/>\n"
+#~ " <property name=\"numberAvailable\"/>\n"
+#~ " \n"
+#~ " <property name=\"numberOrdered\">\n"
+#~ " <formula>\n"
+#~ " ( select sum(li.quantity) \n"
+#~ " from LineItem li \n"
+#~ " where li.productId = productId )\n"
+#~ " </formula>\n"
+#~ " </property>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"User\" table=\"`User`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <set name=\"groups\" table=\"UserGroup\">\n"
+#~ " <key>\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"Group\">\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ " \n"
+#~ "<class name=\"Group\" table=\"`Group`\">\n"
+#~ " <composite-id>\n"
+#~ " <key-property name=\"name\"/>\n"
+#~ " <key-property name=\"org\"/>\n"
+#~ " </composite-id>\n"
+#~ " <property name=\"description\"/>\n"
+#~ " <set name=\"users\" table=\"UserGroup\" inverse=\"true\">\n"
+#~ " <key>\n"
+#~ " <column name=\"groupName\"/>\n"
+#~ " <column name=\"org\"/>\n"
+#~ " </key>\n"
+#~ " <many-to-many class=\"User\">\n"
+#~ " <column name=\"userName\"/>\n"
+#~ " <formula>org</formula>\n"
+#~ " </many-to-many>\n"
+#~ " </set>\n"
+#~ "</class>\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\"\n"
+#~ " discriminator-value=\"P\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"person_id\" \n"
+#~ " unsaved-value=\"0\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " \n"
+#~ " <discriminator \n"
+#~ " type=\"character\">\n"
+#~ " <formula>\n"
+#~ " case \n"
+#~ " when title is not null then 'E' \n"
+#~ " when salesperson is not null then 'C' \n"
+#~ " else 'P' \n"
+#~ " end\n"
+#~ " </formula>\n"
+#~ " </discriminator>\n"
+#~ "\n"
+#~ " <property name=\"name\" \n"
+#~ " not-null=\"true\"\n"
+#~ " length=\"80\"/>\n"
+#~ " \n"
+#~ " <property name=\"sex\" \n"
+#~ " not-null=\"true\"\n"
+#~ " update=\"false\"/>\n"
+#~ " \n"
+#~ " <component name=\"address\">\n"
+#~ " <property name=\"address\"/>\n"
+#~ " <property name=\"zip\"/>\n"
+#~ " <property name=\"country\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " <subclass name=\"Employee\" \n"
+#~ " discriminator-value=\"E\">\n"
+#~ " <property name=\"title\"\n"
+#~ " length=\"20\"/>\n"
+#~ " <property name=\"salary\"/>\n"
+#~ " <many-to-one name=\"manager\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ " <subclass name=\"Customer\" \n"
+#~ " discriminator-value=\"C\">\n"
+#~ " <property name=\"comments\"/>\n"
+#~ " <many-to-one name=\"salesperson\"/>\n"
+#~ " </subclass>\n"
+#~ " \n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " \n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <property name=\"name\" length=\"100\"/>\n"
+#~ " \n"
+#~ " <one-to-one name=\"address\" \n"
+#~ " property-ref=\"person\"\n"
+#~ " cascade=\"all\"\n"
+#~ " fetch=\"join\"/>\n"
+#~ " \n"
+#~ " <set name=\"accounts\" \n"
+#~ " inverse=\"true\">\n"
+#~ " <key column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " <one-to-many class=\"Account\"/>\n"
+#~ " </set>\n"
+#~ " \n"
+#~ " <property name=\"userId\" length=\"8\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Address\">\n"
+#~ "\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"hilo\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"address\" length=\"300\"/>\n"
+#~ " <property name=\"zip\" length=\"5\"/>\n"
+#~ " <property name=\"country\" length=\"25\"/>\n"
+#~ " <many-to-one name=\"person\" unique=\"true\" not-null=\"true\"/>\n"
+#~ "\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Account\">\n"
+#~ " <id name=\"accountId\" length=\"32\">\n"
+#~ " <generator class=\"uuid\"/>\n"
+#~ " </id>\n"
+#~ " \n"
+#~ " <many-to-one name=\"user\"\n"
+#~ " column=\"userId\"\n"
+#~ " property-ref=\"userId\"/>\n"
+#~ " \n"
+#~ " <property name=\"type\" not-null=\"true\"/>\n"
+#~ " \n"
+#~ "</class>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_parentchild.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_parentchild.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_parentchild.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,369 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-03-16 10:04+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Parent/Child"
+msgstr "示ä¾ï¼ç¶åå
³ç³»ï¼Parent/Childï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "One of the first things that new users want to do with Hibernate is to model a parent/child type relationship. There are two different approaches to this. The most convenient approach, especially for new users, is to model both <literal>Parent</literal> and <literal>Child</literal> as entity classes with a <literal><one-to-many></literal> association from <literal>Parent</literal> to <literal>Child</literal>. The alternative approach is to declare the <literal>Child</literal> as a <literal><composite-element></literal>. The default semantics of a one-to-many association in Hibernate are much less close to the usual semantics of a parent/child relationship than those of a composite element mapping. We will explain how to use a <emphasis>bidirectional one-to-many association with cascades</emphasis> to model a parent/child relationship efficiently and elegantly."
+msgstr "ååæ¥è§¦ Hibernate ç人大å¤æ¯ä»ç¶åå
³ç³»ï¼parent / child type relationshipï¼ç建模å
¥æçãç¶åå
³ç³»ç建模æ两ç§æ¹æ³ãç±äºç§ç§åå ï¼ææ¹ä¾¿çæ¹æ³æ¯æ <literal>Parent</literal> å <literal>Child</literal> é½å»ºæ¨¡æå®ä½ç±»ï¼å¹¶å建ä¸ä¸ªä» <literal>Parent</literal> æå <literal>Child</literal> ç <one-to-many> å
³èï¼å¯¹æ°ææ¥è¯´å°¤å
¶å¦æ¤ãè¿æä¸ç§æ¹æ³ï¼å°±æ¯å° <literal>Child</literal> 声æ为ä¸ä¸ª <literal><composite-element></literal>ï¼ç»åå
ç´ ï¼ã äºå®ä¸å¨ Hibernate ä¸ one to many å
³èçé»è®¤è¯ä¹è¿æ²¡æ composite element è´´è¿ parent / child å
³ç³»çé常è¯ä¹ãä¸é¢æ们ä¼éè¿°å¦ä½ä½¿ç¨<emphasis>带æ级èçååä¸å¯¹å¤å
³èï¼idirectional one to many association with cascadesï¼</emphasis>å»å»ºç«ææãä¼ç¾ç parent / child å
³ç³»ã"
+
+#. Tag: title
+#, no-c-format
+msgid "A note about collections"
+msgstr "å
³äº collections éè¦æ³¨æçä¸ç¹"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate collections are considered to be a logical part of their owning entity and not of the contained entities. Be aware that this is a critical distinction that has the following consequences:"
+msgstr "Hibernate collections 被å½ä½å
¶æå±å®ä½èä¸æ¯å
¶å
å«å®ä½çä¸ä¸ªé»è¾é¨åãè¿é常éè¦ï¼å®ä¸»è¦ä½ç°ä¸ºä»¥ä¸å ç¹ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "When you remove/add an object from/to a collection, the version number of the collection owner is incremented."
+msgstr "å½å é¤æå¢å collection ä¸å¯¹è±¡çæ¶åï¼collection æå±è
ççæ¬å¼ä¼éå¢ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If an object that was removed from a collection is an instance of a value type (e.g. a composite element), that object will cease to be persistent and its state will be completely removed from the database. Likewise, adding a value type instance to the collection will cause its state to be immediately persistent."
+msgstr "å¦æä¸ä¸ªä» collection ä¸ç§»é¤ç对象æ¯ä¸ä¸ªå¼ç±»åï¼value typeï¼çå®ä¾ï¼æ¯å¦ composite elementï¼é£ä¹è¿ä¸ªå¯¹è±¡çæä¹
åç¶æå°ä¼ç»æ¢ï¼å
¶å¨æ°æ®åºä¸å¯¹åºçè®°å½ä¼è¢«å é¤ãåæ ·çï¼å collection å¢å ä¸ä¸ª value type çå®ä¾å°ä¼ä½¿ä¹ç«å³è¢«æä¹
åã "
+
+#. Tag: para
+#, no-c-format
+msgid "Conversely, if an entity is removed from a collection (a one-to-many or many-to-many association), it will not be deleted by default. This behavior is completely consistent; a change to the internal state of another entity should not cause the associated entity to vanish. Likewise, adding an entity to a collection does not cause that entity to become persistent, by default."
+msgstr "å¦ä¸æ¹é¢ï¼å¦æä»ä¸å¯¹å¤æå¤å¯¹å¤å
³èç collection ä¸ç§»é¤ä¸ä¸ªå®ä½ï¼å¨ç¼ºçæ
åµä¸è¿ä¸ªå¯¹è±¡å¹¶ä¸ä¼è¢«å é¤ãè¿ä¸ªè¡ä¸ºæ¯å®å
¨åä¹é»è¾çï¼ï¼æ¹åä¸ä¸ªå®ä½çå
é¨ç¶æä¸åºè¯¥ä½¿ä¸å®å
³èçå®ä½æ¶å¤±æãåæ ·çï¼å collection å¢å ä¸ä¸ªå®ä½ä¸ä¼ä½¿ä¹è¢«æä¹
åã "
+
+#. Tag: para
+#, no-c-format
+msgid "Adding an entity to a collection, by default, merely creates a link between the two entities. Removing the entity will remove the link. This is appropriate for all sorts of cases. However, it is not appropriate in the case of a parent/child relationship. In this case, the life of the child is bound to the life cycle of the parent."
+msgstr "å®é
ä¸ï¼å Collection å¢å ä¸ä¸ªå®ä½ç缺çå¨ä½åªæ¯å¨ä¸¤ä¸ªå®ä½ä¹é´å建ä¸ä¸ªè¿æ¥èå·²ï¼åæ ·ç§»é¤çæ¶åä¹åªæ¯å é¤è¿æ¥ãè¿ç§å¤ç对äºææçæ
åµé½æ¯åéçã对äºç¶åå
³ç³»åæ¯å®å
¨ä¸éåçï¼å¨è¿ç§å
³ç³»ä¸ï¼å对象ççåç»å®äºç¶å¯¹è±¡ççåå¨æã "
+
+#. Tag: title
+#, no-c-format
+msgid "Bidirectional one-to-many"
+msgstr "ååçä¸å¯¹å¤å
³ç³»ï¼Bidirectional one-to-manyï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Suppose we start with a simple <literal><one-to-many></literal> association from <literal>Parent</literal> to <literal>Child</literal>."
+msgstr "å设æ们è¦å®ç°ä¸ä¸ªç®åçä» Parent å° Child ç <one-to-many> å
³èã"
+
+#. Tag: para
+#, no-c-format
+msgid "If we were to execute the following code:"
+msgstr "å¦ææ们è¿è¡ä¸é¢ç代ç ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate would issue two SQL statements:"
+msgstr "Hibernate ä¼äº§çä¸¤æ¡ SQL è¯å¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "an <literal>INSERT</literal> to create the record for <literal>c</literal>"
+msgstr "ä¸æ¡ <literal>INSERT</literal> è¯å¥ï¼ä¸º <literal>c</literal> å建ä¸æ¡è®°å½"
+
+#. Tag: para
+#, no-c-format
+msgid "an <literal>UPDATE</literal> to create the link from <literal>p</literal> to <literal>c</literal>"
+msgstr "ä¸æ¡ <literal>UPDATE</literal> è¯å¥ï¼åå»ºä» <literal>p</literal> å° <literal>c</literal> çè¿æ¥"
+
+#. Tag: para
+#, no-c-format
+msgid "This is not only inefficient, but also violates any <literal>NOT NULL</literal> constraint on the <literal>parent_id</literal> column. You can fix the nullability constraint violation by specifying <literal>not-null=\"true\"</literal> in the collection mapping:"
+msgstr "è¿æ ·åä¸ä»
æçä½ï¼èä¸è¿åäº <literal>parent_id</literal> å <literal>parent_id</literal> é空çéå¶ãæ们å¯ä»¥éè¿å¨éåç±»æ å°ä¸æå® <literal>not-null=\"true\"</literal> æ¥è§£å³è¿åé空约æçé®é¢ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "However, this is not the recommended solution."
+msgstr "ç¶èï¼è¿å¹¶éæ¯æ¨èç解å³æ¹æ³ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The underlying cause of this behavior is that the link (the foreign key <literal>parent_id</literal>) from <literal>p</literal> to <literal>c</literal> is not considered part of the state of the <literal>Child</literal> object and is therefore not created in the <literal>INSERT</literal>. The solution is to make the link part of the <literal>Child</literal> mapping."
+msgstr "è¿ç§ç°è±¡çæ ¹æ¬åå æ¯ä» <literal>p</literal> å° <literal>c</literal> çè¿æ¥ï¼å¤é® parent_idï¼æ²¡æ被å½ä½ <literal>Child</literal> 对象ç¶æçä¸é¨åï¼å è没æå¨ <literal>INSERT</literal> è¯å¥ä¸è¢«å建ãå æ¤è§£å³çåæ³å°±æ¯æè¿ä¸ªè¿æ¥æ·»å å° <literal>Child</literal> çæ å°ä¸ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You also need to add the <literal>parent</literal> property to the <literal>Child</literal> class."
+msgstr "ä½ è¿éè¦ä¸ºç±» <literal>Child</literal> æ·»å <literal>parent</literal> å±æ§ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Now that the <literal>Child</literal> entity is managing the state of the link, we tell the collection not to update the link. We use the <literal>inverse</literal> attribute to do this:"
+msgstr "ç°å¨å®ä½ <literal>Child</literal> å¨ç®¡çè¿æ¥çç¶æï¼ä¸ºäºä½¿ collection ä¸æ´æ°è¿æ¥ï¼æä»¬ä½¿ç¨ <literal>inverse</literal> å±æ§ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The following code would be used to add a new <literal>Child</literal>:"
+msgstr "ä¸é¢ç代ç æ¯ç¨æ¥æ·»å ä¸ä¸ªæ°ç <literal>Child</literal>ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Only one SQL <literal>INSERT</literal> would now be issued."
+msgstr "ç°å¨ï¼åªä¼æä¸æ¡ <literal>INSERT</literal> è¯å¥è¢«æ§è¡ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You could also create an <literal>addChild()</literal> method of <literal>Parent</literal>."
+msgstr "为äºè®©äºæ
åå¾äºäºææ¡ï¼å¯ä»¥ä¸º <literal>Parent</literal> å ä¸ä¸ª <literal>addChild()</literal> æ¹æ³ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The code to add a <literal>Child</literal> looks like this:"
+msgstr "ç°å¨ï¼æ·»å <literal>Child</literal> ç代ç å°±æ¯è¿æ ·ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Cascading life cycle"
+msgstr "级èçå½å¨æï¼Cascading lifecycleï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "You can address the frustrations of the explicit call to <literal>save()</literal> by using cascades."
+msgstr "éè¦æ¾å¼è°ç¨ <literal>save()</literal> ä»ç¶å¾éº»ç¦ï¼æ们å¯ä»¥ç¨çº§èæ¥è§£å³è¿ä¸ªé®é¢ã "
+
+#. Tag: para
+#, no-c-format
+msgid "This simplifies the code above to:"
+msgstr "è¿æ ·ä¸é¢ç代ç å¯ä»¥ç®åä¸ºï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Similarly, we do not need to iterate over the children when saving or deleting a <literal>Parent</literal>. The following removes <literal>p</literal> and all its children from the database."
+msgstr "åæ ·çï¼ä¿åæå é¤ <literal>Parent</literal> 对象çæ¶å并ä¸éè¦éåå
¶å对象ãä¸é¢ç代ç ä¼å é¤å¯¹è±¡ <literal>p</literal> åå
¶ææå对象对åºçæ°æ®åºè®°å½ã "
+
+#. Tag: para
+#, no-c-format
+msgid "However, the following code:"
+msgstr "ç¶èï¼è¿æ®µä»£ç ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "will not remove <literal>c</literal> from the database. In this case, it will only remove the link to <literal>p</literal> and cause a <literal>NOT NULL</literal> constraint violation. You need to explicitly <literal>delete()</literal> the <literal>Child</literal>."
+msgstr "ä¸ä¼ä»æ°æ®åºå é¤<literal>c</literal>ï¼å®åªä¼å é¤ä¸ <literal>p</literal> ä¹é´çè¿æ¥ï¼å¹¶ä¸ä¼å¯¼è´è¿å <literal>NOT NULL</literal> 约æï¼å¨è¿ä¸ªä¾åä¸ï¼ãä½ éè¦æ¾å¼è°ç¨ <literal>delete()</literal> æ¥å é¤ <literal>Child</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "In our case, a <literal>Child</literal> cannot exist without its parent. So if we remove a <literal>Child</literal> from the collection, we do want it to be deleted. To do this, we must use <literal>cascade=\"all-delete-orphan\"</literal>."
+msgstr "å¨æ们çä¾åä¸ï¼å¦æ没æç¶å¯¹è±¡ï¼å对象就ä¸åºè¯¥åå¨ï¼å¦æå°åå¯¹è±¡ä» collection ä¸ç§»é¤ï¼å®é
ä¸æ们æ¯æ³å é¤å®ãè¦å®ç°è¿ç§è¦æ±ï¼å°±å¿
é¡»ä½¿ç¨ <literal>cascade=\"all-delete-orphan\"</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Even though the collection mapping specifies <literal>inverse=\"true\"</literal>, cascades are still processed by iterating the collection elements. If you need an object be saved, deleted or updated by cascade, you must add it to the collection. It is not enough to simply call <literal>setParent()</literal>."
+msgstr "注æï¼å³ä½¿å¨ collection ä¸æ¹çæ å°ä¸æå® <literal>inverse=\"true\"</literal>ï¼çº§èä»ç¶æ¯éè¿éå collection ä¸çå
ç´ æ¥å¤ççãå¦æä½ æ³è¦éè¿çº§èè¿è¡å对象çæå
¥ãå é¤ãæ´æ°æä½ï¼å°±å¿
é¡»æå®å å° collection ä¸ï¼åªè°ç¨ <literal>setParent()</literal> æ¯ä¸å¤çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Cascades and <literal>unsaved-value</literal>"
+msgstr "级èä¸æªä¿åå¼ï¼<literal>unsaved-value</literal>ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Suppose we loaded up a <literal>Parent</literal> in one <literal>Session</literal>, made some changes in a UI action and wanted to persist these changes in a new session by calling <literal>update()</literal>. The <literal>Parent</literal> will contain a collection of children and, since the cascading update is enabled, Hibernate needs to know which children are newly instantiated and which represent existing rows in the database. We will also assume that both <literal>Parent</literal> and <literal>Child</literal> have generated identifier properties of type <literal>Long</literal>. Hibernate will use the identifier and version/timestamp property value to determine which of the children are new. (See <xref linkend=\"objectstate-saveorupdate\" />.) <emphasis>In Hibernate3, it is no longer necessary to specify an <literal>unsaved-value</literal> explicitly.</emphasis>"
+msgstr "å设æä»¬ä» <literal>Session</literal> ä¸è£
å
¥äºä¸ä¸ª <literal>Parent</literal> 对象ï¼ç¨æ·çé¢å¯¹å
¶è¿è¡äºä¿®æ¹ï¼ç¶åå¸æå¨ä¸ä¸ªæ°ç Session éé¢è°ç¨ <literal>update()</literal> æ¥ä¿åè¿äºä¿®æ¹ã对象 <literal>Parent</literal> å
å«äºå对象çéåï¼ç±äºæå¼äºçº§èæ´æ°ï¼Hibernate éè¦ç¥éåªäº Child 对象æ¯æ°å®ä¾åçï¼åªäºä»£è¡¨æ°æ®åºä¸å·²ç»åå¨çè®°å½ãæ们å设 <literal>Parent</literal> å <literal>Child</literal> 对象çæ è¯å±æ§é½æ¯èªå¨çæçï¼ç±»å为 <literal>Long</literal>ãHibernate ä¼ä½¿ç¨æ è¯å±æ§çå¼ï¼å version æ timestamp å±æ§ï¼æ¥å¤æåªäºå对象æ¯æ°çãï¼åè§ <xref linkend=\"objectstate-saveorupdate\"/>ï¼<emphasis>å¨ Hibernate3 ä¸,æ¾å¼æå® <literal>unsaved-value</literal> ä¸åæ¯å¿
é¡»çäºã</emphasis> "
+
+#. Tag: para
+#, no-c-format
+msgid "The following code will update <literal>parent</literal> and <literal>child</literal> and insert <literal>newChild</literal>:"
+msgstr "ä¸é¢ç代ç ä¼æ´æ° <literal>parent</literal> å <literal>child</literal> 对象ï¼å¹¶ä¸æå
¥ <literal>newChild</literal> 对象ã "
+
+#. Tag: para
+#, no-c-format
+msgid "This may be suitable for the case of a generated identifier, but what about assigned identifiers and composite identifiers? This is more difficult, since Hibernate cannot use the identifier property to distinguish between a newly instantiated object, with an identifier assigned by the user, and an object loaded in a previous session. In this case, Hibernate will either use the timestamp or version property, or will actually query the second-level cache or, worst case, the database, to see if the row exists."
+msgstr "è¿å¯¹äºèªå¨çææ è¯çæ
åµæ¯é常好çï¼ä½æ¯èªåé
çæ è¯åå¤åæ è¯æä¹åå¢ï¼è¿æ¯æç¹éº»ç¦ï¼å 为 Hibernate 没æåæ³åºåæ°å®ä¾åç对象ï¼æ è¯è¢«ç¨æ·æå®äºï¼ååä¸ä¸ª Session è£
å
¥ç对象ãå¨è¿ç§æ
åµä¸ï¼Hibernate ä¼ä½¿ç¨ timestamp æ version å±æ§ï¼æè
æ¥è¯¢ç¬¬äºçº§ç¼åï¼æè
æåçæ
åµï¼æ¥è¯¢æ°æ®åºï¼æ¥ç¡®è®¤æ¯å¦æ¤è¡åå¨ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Conclusion"
+msgstr "ç»è®º"
+
+#. Tag: para
+#, no-c-format
+msgid "The sections we have just covered can be a bit confusing. However, in practice, it all works out nicely. Most Hibernate applications use the parent/child pattern in many places."
+msgstr "è¿éæä¸å°ä¸è¥¿éè¦èä¼è´¯éï¼å¯è½ä¼è®©æ°ææå°è¿·æãä½æ¯å¨å®è·µä¸å®ä»¬é½å·¥ä½å°é常好ã大é¨å Hibernate åºç¨ç¨åºé½ä¼ç»å¸¸ç¨å°ç¶å对象模å¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "We mentioned an alternative in the first paragraph. None of the above issues exist in the case of <literal><composite-element></literal> mappings, which have exactly the semantics of a parent/child relationship. Unfortunately, there are two big limitations with composite element classes: composite elements cannot own collections and they should not be the child of any entity other than the unique parent."
+msgstr "å¨ç¬¬ä¸æ®µä¸æ们æ¾ç»æå°å¦ä¸ä¸ªæ¹æ¡ãä¸é¢çè¿äºé®é¢é½ä¸ä¼åºç°å¨ <literal><composite-element></literal> æ å°ä¸ï¼å®åç¡®å°è¡¨è¾¾äºç¶åå
³ç³»çè¯ä¹ãå¾ä¸å¹¸å¤åå
ç´ è¿æ两个é大éå¶ï¼å¤åå
ç´ ä¸è½æ¥æ collectionsï¼å¹¶ä¸ï¼é¤äºç¨äºæä¸çç¶å¯¹è±¡å¤ï¼å®ä»¬ä¸è½åä½ä¸ºå
¶å®ä»»ä½å®ä½çå对象ã "
+
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = .....;\n"
+#~ "Child c = new Child();\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\">\n"
+#~ " <key column=\"parent_id\" not-null=\"true\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<many-to-one name=\"parent\" column=\"parent_id\" not-null=\"true"
+#~ "\"/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public void addChild(Child c) {\n"
+#~ " c.setParent(this);\n"
+#~ " children.add(c);\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.save(c);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = new Child();\n"
+#~ "p.addChild(c);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "session.delete(p);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "session.delete(p);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "c.setParent(null);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "c.setParent(null);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "session.delete(c);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) session.load(Parent.class, pid);\n"
+#~ "Child c = (Child) p.getChildren().iterator().next();\n"
+#~ "p.getChildren().remove(c);\n"
+#~ "session.delete(c);\n"
+#~ "session.flush();]]>"
+#~ msgid ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-"
+#~ "orphan\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"children\" inverse=\"true\" cascade=\"all-delete-"
+#~ "orphan\">\n"
+#~ " <key column=\"parent_id\"/>\n"
+#~ " <one-to-many class=\"Child\"/>\n"
+#~ "</set>]]>"
+#~ msgid ""
+#~ "<![CDATA[//parent and child were both loaded in a previous session\n"
+#~ "parent.addChild(child);\n"
+#~ "Child newChild = new Child();\n"
+#~ "parent.addChild(newChild);\n"
+#~ "session.update(parent);\n"
+#~ "session.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//parent and child were both loaded in a previous session\n"
+#~ "parent.addChild(child);\n"
+#~ "Child newChild = new Child();\n"
+#~ "parent.addChild(newChild);\n"
+#~ "session.update(parent);\n"
+#~ "session.flush();]]>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_weblog.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_weblog.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/example_weblog.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,856 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2009-11-27 13:54+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Example: Weblog Application"
+msgstr "示ä¾ï¼Weblog åºç¨ç¨åº "
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "æä¹
åç±»ï¼Persistent Classesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The persistent classes here represent a weblog and an item posted in a "
+"weblog. They are to be modelled as a standard parent/child relationship, but "
+"we will use an ordered bag, instead of a set:"
+msgstr ""
+"ä¸é¢çæä¹
å类表示ä¸ä¸ª weblog åå¨å
¶ä¸å¼ è´´çä¸ä¸ªè´´åãä»ä»¬æ¯æ åçç¶/åå
³ç³»æ¨¡"
+"åï¼ä½æ¯æ们ä¼ç¨ä¸ä¸ªæåºå
ï¼ordered bagï¼èééåï¼setï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Mappings"
+msgstr "Hibernate æ å°"
+
+#. Tag: para
+#, no-c-format
+msgid "The XML mappings are now straightforward. For example:"
+msgstr "ä¸åç XML æ å°åºè¯¥æ¯å¾ç´ç½çãä¾å¦ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate Code"
+msgstr "Hibernate 代ç "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following class demonstrates some of the kinds of things we can do with "
+"these classes using Hibernate:"
+msgstr "ä¸é¢çç±»æ¼ç¤ºäºæ们å¯ä»¥ä½¿ç¨ Hibernate 对è¿äºç±»è¿è¡çä¸äºæä½ï¼"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "public class Blog {\n"
+#~ " private Long _id;\n"
+#~ " private String _name;\n"
+#~ " private List _items;\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public List getItems() {\n"
+#~ " return _items;\n"
+#~ " }\n"
+#~ " public String getName() {\n"
+#~ " return _name;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setItems(List list) {\n"
+#~ " _items = list;\n"
+#~ " }\n"
+#~ " public void setName(String string) {\n"
+#~ " _name = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.text.DateFormat;\n"
+#~ "import java.util.Calendar;\n"
+#~ "\n"
+#~ "public class BlogItem {\n"
+#~ " private Long _id;\n"
+#~ " private Calendar _datetime;\n"
+#~ " private String _text;\n"
+#~ " private String _title;\n"
+#~ " private Blog _blog;\n"
+#~ "\n"
+#~ " public Blog getBlog() {\n"
+#~ " return _blog;\n"
+#~ " }\n"
+#~ " public Calendar getDatetime() {\n"
+#~ " return _datetime;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return _id;\n"
+#~ " }\n"
+#~ " public String getText() {\n"
+#~ " return _text;\n"
+#~ " }\n"
+#~ " public String getTitle() {\n"
+#~ " return _title;\n"
+#~ " }\n"
+#~ " public void setBlog(Blog blog) {\n"
+#~ " _blog = blog;\n"
+#~ " }\n"
+#~ " public void setDatetime(Calendar calendar) {\n"
+#~ " _datetime = calendar;\n"
+#~ " }\n"
+#~ " public void setId(Long long1) {\n"
+#~ " _id = long1;\n"
+#~ " }\n"
+#~ " public void setText(String string) {\n"
+#~ " _text = string;\n"
+#~ " }\n"
+#~ " public void setTitle(String string) {\n"
+#~ " _title = string;\n"
+#~ " }\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"Blog\"\n"
+#~ " table=\"BLOGS\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " not-null=\"true\"\n"
+#~ " unique=\"true\"/>\n"
+#~ "\n"
+#~ " <bag\n"
+#~ " name=\"items\"\n"
+#~ " inverse=\"true\"\n"
+#~ " order-by=\"DATE_TIME\"\n"
+#~ " cascade=\"all\">\n"
+#~ "\n"
+#~ " <key column=\"BLOG_ID\"/>\n"
+#~ " <one-to-many class=\"BlogItem\"/>\n"
+#~ "\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"eg\">\n"
+#~ "\n"
+#~ " <class\n"
+#~ " name=\"BlogItem\"\n"
+#~ " table=\"BLOG_ITEMS\"\n"
+#~ " dynamic-update=\"true\">\n"
+#~ "\n"
+#~ " <id\n"
+#~ " name=\"id\"\n"
+#~ " column=\"BLOG_ITEM_ID\">\n"
+#~ "\n"
+#~ " <generator class=\"native\"/>\n"
+#~ "\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"title\"\n"
+#~ " column=\"TITLE\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"text\"\n"
+#~ " column=\"TEXT\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <property\n"
+#~ " name=\"datetime\"\n"
+#~ " column=\"DATE_TIME\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " <many-to-one\n"
+#~ " name=\"blog\"\n"
+#~ " column=\"BLOG_ID\"\n"
+#~ " not-null=\"true\"/>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "import java.util.ArrayList;\n"
+#~ "import java.util.Calendar;\n"
+#~ "import java.util.Iterator;\n"
+#~ "import java.util.List;\n"
+#~ "\n"
+#~ "import org.hibernate.HibernateException;\n"
+#~ "import org.hibernate.Query;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "import org.hibernate.SessionFactory;\n"
+#~ "import org.hibernate.Transaction;\n"
+#~ "import org.hibernate.cfg.Configuration;\n"
+#~ "import org.hibernate.tool.hbm2ddl.SchemaExport;\n"
+#~ "\n"
+#~ "public class BlogMain {\n"
+#~ " \n"
+#~ " private SessionFactory _sessions;\n"
+#~ " \n"
+#~ " public void configure() throws HibernateException {\n"
+#~ " _sessions = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class)\n"
+#~ " .buildSessionFactory();\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void exportTables() throws HibernateException {\n"
+#~ " Configuration cfg = new Configuration()\n"
+#~ " .addClass(Blog.class)\n"
+#~ " .addClass(BlogItem.class);\n"
+#~ " new SchemaExport(cfg).create(true, true);\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog createBlog(String name) throws HibernateException {\n"
+#~ " \n"
+#~ " Blog blog = new Blog();\n"
+#~ " blog.setName(name);\n"
+#~ " blog.setItems( new ArrayList() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.persist(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Blog blog, String title, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setBlog(blog);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " blog.getItems().add(item);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(blog);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public BlogItem createBlogItem(Long blogid, String title, String "
+#~ "text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " BlogItem item = new BlogItem();\n"
+#~ " item.setTitle(title);\n"
+#~ " item.setText(text);\n"
+#~ " item.setDatetime( Calendar.getInstance() );\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Blog blog = (Blog) session.load(Blog.class, blogid);\n"
+#~ " item.setBlog(blog);\n"
+#~ " blog.getItems().add(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return item;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(BlogItem item, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " item.setText(text);\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " session.update(item);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public void updateBlogItem(Long itemid, String text)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " BlogItem item = (BlogItem) session.load(BlogItem.class, "
+#~ "itemid);\n"
+#~ " item.setText(text);\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listAllBlogNamesAndItemCounts(int max)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"select blog.id, blog.name, count(blogItem) \" +\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join blog.items as blogItem \" +\n"
+#~ " \"group by blog.name, blog.id \" +\n"
+#~ " \"order by max(blogItem.datetime)\"\n"
+#~ " );\n"
+#~ " q.setMaxResults(max);\n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public Blog getBlogAndAllItems(Long blogid)\n"
+#~ " throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " Blog blog = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"left outer join fetch blog.items \" +\n"
+#~ " \"where blog.id = :blogid\"\n"
+#~ " );\n"
+#~ " q.setParameter(\"blogid\", blogid);\n"
+#~ " blog = (Blog) q.uniqueResult();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return blog;\n"
+#~ " }\n"
+#~ " \n"
+#~ " public List listBlogsAndRecentItems() throws HibernateException {\n"
+#~ " \n"
+#~ " Session session = _sessions.openSession();\n"
+#~ " Transaction tx = null;\n"
+#~ " List result = null;\n"
+#~ " try {\n"
+#~ " tx = session.beginTransaction();\n"
+#~ " Query q = session.createQuery(\n"
+#~ " \"from Blog as blog \" +\n"
+#~ " \"inner join blog.items as blogItem \" +\n"
+#~ " \"where blogItem.datetime > :minDate\"\n"
+#~ " );\n"
+#~ "\n"
+#~ " Calendar cal = Calendar.getInstance();\n"
+#~ " cal.roll(Calendar.MONTH, false);\n"
+#~ " q.setCalendar(\"minDate\", cal);\n"
+#~ " \n"
+#~ " result = q.list();\n"
+#~ " tx.commit();\n"
+#~ " }\n"
+#~ " catch (HibernateException he) {\n"
+#~ " if (tx!=null) tx.rollback();\n"
+#~ " throw he;\n"
+#~ " }\n"
+#~ " finally {\n"
+#~ " session.close();\n"
+#~ " }\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "}]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/filters.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/filters.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/filters.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,312 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering data"
+msgstr "è¿æ»¤æ°æ®"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 provides an innovative new approach to handling data with "
+"\"visibility\" rules. A <emphasis>Hibernate filter</emphasis> is a global, "
+"named, parameterized filter that can be enabled or disabled for a particular "
+"Hibernate session."
+msgstr ""
+"Hibernate3 æä¾äºä¸ç§åæ°çæ¹å¼æ¥å¤çå
·æâæ¾æ§ï¼visibilityï¼âè§åçæ°æ®ï¼é£å°±"
+"æ¯ä½¿ç¨<emphasis>Hibernate è¿æ»¤å¨</emphasis>ã<emphasis>Hibernate è¿æ»¤å¨</"
+"emphasis>æ¯å
¨å±ææçãå
·æååãå¯ä»¥å¸¦åæ°çè¿æ»¤å¨ï¼å¯¹äºæ个ç¹å®ç "
+"Hibernate session æ¨å¯ä»¥éæ©æ¯å¦å¯ç¨ï¼æç¦ç¨ï¼æ个è¿æ»¤å¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate filters"
+msgstr "Hibernate è¿æ»¤å¨ï¼filtersï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Hibernate3 has the ability to pre-define filter criteria and attach those "
+"filters at both a class level and a collection level. A filter criteria "
+"allows you to define a restriction clause similar to the existing \"where\" "
+"attribute available on the class and various collection elements. These "
+"filter conditions, however, can be parameterized. The application can then "
+"decide at runtime whether certain filters should be enabled and what their "
+"parameter values should be. Filters can be used like database views, but "
+"they are parameterized inside the application."
+msgstr ""
+"Hibernate3 æ°å¢äºå¯¹æ个类æè
éå使ç¨é¢å
å®ä¹çè¿æ»¤å¨æ¡ä»¶ï¼filter criteriaï¼"
+"çåè½ãè¿æ»¤å¨æ¡ä»¶ç¸å½äºå®ä¹ä¸ä¸ª é常类似äºç±»ååç§éåä¸çâwhereâå±æ§ç约æ"
+"åå¥ï¼ä½æ¯è¿æ»¤å¨æ¡ä»¶å¯ä»¥å¸¦åæ°ã åºç¨ç¨åºå¯ä»¥å¨è¿è¡æ¶å³å®æ¯å¦å¯ç¨ç»å®çè¿æ»¤"
+"å¨ï¼ä»¥å使ç¨ä»ä¹æ ·çåæ°å¼ãè¿æ»¤å¨çç¨æ³å¾åæ°æ®åºè§å¾ï¼åªä¸è¿æ¯å¨åºç¨ç¨åºä¸"
+"ç¡®å®ä½¿ç¨ä»ä¹æ ·çåæ°çã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"In order to use filters, they must first be defined and then attached to the "
+"appropriate mapping elements. To define a filter, use the <literal><"
+"filter-def/></literal> element within a <literal><hibernate-mapping/"
+"></literal> element:"
+msgstr ""
+"è¦ä½¿ç¨è¿æ»¤å¨ï¼å¿
é¡»é¦å
å¨ç¸åºçæ å°èç¹ä¸å®ä¹ãèå®ä¹ä¸ä¸ªè¿æ»¤å¨ï¼è¦ç¨å°ä½äº "
+"<literal><hibernate-mapping/></literal> èç¹ä¹å
ç <literal><filter-"
+"def/></literal> èç¹ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This filter can then be attached to a class:"
+msgstr "å®ä¹å¥½ä¹åï¼å°±å¯ä»¥å¨æ个类ä¸ä½¿ç¨è¿ä¸ªè¿æ»¤å¨ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to a collection:"
+msgstr "æè
ä¹å¯ä»¥å¨æ个éå使ç¨å®ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Or, to both or multiples of each at the same time."
+msgstr "æè
å¨åæ¶å¯ä»¥ä½¿ç¨å¤ä¸ªè¿æ»¤å¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The methods on <literal>Session</literal> are: <literal>enableFilter(String "
+"filterName)</literal>, <literal>getEnabledFilter(String filterName)</"
+"literal>, and <literal>disableFilter(String filterName)</literal>. By "
+"default, filters are <emphasis>not</emphasis> enabled for a given session. "
+"Filters must be enabled through use of the <literal>Session.enableFilter()</"
+"literal> method, which returns an instance of the <literal>Filter</literal> "
+"interface. If you used the simple filter defined above, it would look like "
+"this:"
+msgstr ""
+"<literal>Session</literal> 对象ä¸ä¼ç¨å°çæ¹æ³æï¼<literal>enableFilter"
+"(String filterName)</literal>ï¼<literal>getEnabledFilter(String filterName)</"
+"literal>ï¼å <literal>disableFilter(String filterName)</literal>ãSession ä¸"
+"é»è®¤æ¯<emphasis>ä¸</emphasis>å¯ç¨è¿æ»¤å¨çï¼å¿
é¡»éè¿ <literal>Session."
+"enabledFilter()</literal> æ¹æ³æ¾å¼çå¯ç¨ã该æ¹æ³è¿å被å¯ç¨ç "
+"<literal>Filter</literal> çå®ä¾ã以ä¸æå®ä¹çè¿æ»¤å¨ä¸ºä¾ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Methods on the org.hibernate.Filter interface do allow the method-chaining "
+"common to much of Hibernate."
+msgstr ""
+"注æï¼org.hibernate.Filter çæ¹æ³å
许é¾å¼æ¹æ³è°ç¨ãï¼ç±»ä¼¼ä¸é¢ä¾åä¸å¯ç¨ "
+"Filter ä¹åè®¾å® Filter åæ°è¿ä¸ªâæ¹æ³é¾âï¼ Hibernate çå
¶ä»é¨åä¹å¤§å¤æè¿ä¸ªç¹"
+"æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The following is a full example, using temporal data with an effective "
+"record date pattern:"
+msgstr "ä¸é¢æ¯ä¸ä¸ªæ¯è¾å®æ´çä¾åï¼ä½¿ç¨äºè®°å½çææ¥æ模å¼è¿æ»¤ææ¶æçæ°æ®ï¼ "
+
+#. Tag: para
+#, 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: para
+#, no-c-format
+msgid ""
+"Even though a salary constraint was mentioned explicitly on the results in "
+"the above HQL, because of the enabled filter, the query will return only "
+"currently active employees who have a salary greater than one million "
+"dollars."
+msgstr ""
+"å¨ä¸é¢ç HQL ä¸ï¼è½ç¶æ们ä»
ä»
æ¾å¼ç使ç¨äºä¸ä¸ªèªæ°´æ¡ä»¶ï¼ä½å 为å¯ç¨äºè¿æ»¤å¨ï¼æ¥"
+"询å°ä»
è¿åé£äºç®åéç¨å
³ç³»å¤äºçææçï¼å¹¶ä¸èªæ°´é«äºä¸ç¾ä¸ç¾å
çéåçæ°æ®ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to use filters with outer joining, either through HQL or load "
+"fetching, be careful of the direction of the condition expression. It is "
+"safest to set this up for left outer joining. Place the parameter first "
+"followed by the column name(s) after the operator."
+msgstr ""
+"注æï¼å¦æä½ æç®å¨ä½¿ç¨å¤è¿æ¥ï¼æè
éè¿ HQL æ load fetchingï¼çåæ¶ä½¿ç¨è¿æ»¤"
+"å¨ï¼è¦æ³¨ææ¡ä»¶è¡¨è¾¾å¼çæ¹åï¼å·¦è¿æ¯å³ï¼ãæå®å
¨çæ¹å¼æ¯ä½¿ç¨å·¦å¤è¿æ¥ï¼left "
+"outer joiningï¼ã并ä¸é常æ¥è¯´ï¼å
ååæ°ï¼ç¶åæ¯æä½ç¬¦ï¼æååæ°æ®åºå段åã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"After being defined, a filter might be attached to multiple entities and/or "
+"collections each with its own condition. This can be problematic when the "
+"conditions are the same each time. Using <literal><filter-def/></"
+"literal> allows you to definine a default condition, either as an attribute "
+"or CDATA:"
+msgstr ""
+"å¨ Filter å®ä¹ä¹å,å®å¯è½è¢«éå å°å¤ä¸ªå®ä½å/æéåç±»,æ¯ä¸ªé½æèªå·±çæ¡ä»¶ãåè¥"
+"è¿äºæ¡ä»¶é½æ¯ä¸æ ·çï¼æ¯æ¬¡é½è¦å®ä¹å°±æ¾å¾å¾ç¹çãå æ¤ï¼<literal><filter-def/"
+"></literal> 被ç¨æ¥å®ä¹ä¸ä¸ªé»è®¤æ¡ä»¶ï¼å®å¯è½ä½ä¸ºå±æ§æè
CDATA åºç°ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"This default condition will be used whenever the filter is attached to "
+"something without specifying a condition. This means you can give a specific "
+"condition as part of the attachment of the filter that overrides the default "
+"condition in that particular case."
+msgstr ""
+"å½è¿ä¸ª filter 被éå å°ä»»ä½ç®çå°ï¼èå没ææææ¡ä»¶æ¶ï¼è¿ä¸ªç¼ºçæ¡ä»¶å°±ä¼è¢«ä½¿"
+"ç¨ã注æï¼æ¢å¥è¯è¯´ï¼ä½ å¯ä»¥éè¿ç» filter éå ç¹å«çæ¡ä»¶æ¥éè½½é»è®¤æ¡ä»¶ã"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\">\n"
+#~ " <filter-param name=\"myFilterParam\" type=\"string\"/>\n"
+#~ "</filter-def>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"myClass\" ...>\n"
+#~ " ...\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set ...>\n"
+#~ " <filter name=\"myFilter\" condition=\":myFilterParam = "
+#~ "MY_FILTERED_COLUMN\"/>\n"
+#~ "</set>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+#~ msgstr ""
+#~ "<![CDATA[session.enableFilter(\"myFilter\").setParameter(\"myFilterParam"
+#~ "\", \"some-value\");]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"effectiveDate\">\n"
+#~ " <filter-param name=\"asOfDate\" type=\"date\"/>\n"
+#~ "</filter-def>\n"
+#~ "\n"
+#~ "<class name=\"Employee\" ...>\n"
+#~ "...\n"
+#~ " <many-to-one name=\"department\" column=\"dept_id\" class=\"Department"
+#~ "\"/>\n"
+#~ " <property name=\"effectiveStartDate\" type=\"date\" column="
+#~ "\"eff_start_dt\"/>\n"
+#~ " <property name=\"effectiveEndDate\" type=\"date\" column=\"eff_end_dt"
+#~ "\"/>\n"
+#~ "...\n"
+#~ " <!--\n"
+#~ " Note that this assumes non-terminal records have an eff_end_dt "
+#~ "set to\n"
+#~ " a max db date for simplicity-sake\n"
+#~ " -->\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt\"/"
+#~ ">\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"Department\" ...>\n"
+#~ "...\n"
+#~ " <set name=\"employees\" lazy=\"true\">\n"
+#~ " <key column=\"dept_id\"/>\n"
+#~ " <one-to-many class=\"Employee\"/>\n"
+#~ " <filter name=\"effectiveDate\"\n"
+#~ " condition=\":asOfDate BETWEEN eff_start_dt and eff_end_dt"
+#~ "\"/>\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = ...;\n"
+#~ "session.enableFilter(\"effectiveDate\").setParameter(\"asOfDate\", new "
+#~ "Date());\n"
+#~ "List results = session.createQuery(\"from Employee as e where e.salary > :"
+#~ "targetSalary\")\n"
+#~ " .setLong(\"targetSalary\", new Long(1000000))\n"
+#~ " .list();\n"
+#~ "]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<filter-def name=\"myFilter\" condition=\"abc > xyz\">...</"
+#~ "filter-def>\n"
+#~ "<filter-def name=\"myOtherFilter\">abc=xyz</filter-def>]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/inheritance_mapping.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/inheritance_mapping.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/inheritance_mapping.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,777 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 09:06+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Inheritance mapping"
+msgstr "继æ¿æ å°ï¼Inheritance Mappingï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "The three strategies"
+msgstr "ä¸ç§çç¥ "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports the three basic inheritance mapping strategies:"
+msgstr "Hibernate æ¯æä¸ç§åºæ¬ç继æ¿æ å°çç¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "table per class hierarchy"
+msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表ï¼table per class hierarchyï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "table per subclass"
+msgstr "æ¯ä¸ªåç±»ä¸å¼ 表ï¼Table per subclassï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "table per concrete class"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼table per concrete classï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "In addition, Hibernate supports a fourth, slightly different kind of polymorphism:"
+msgstr "æ¤å¤ï¼Hibernate è¿æ¯æ第åç§ç¨æä¸åçå¤ææ å°çç¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "implicit polymorphism"
+msgstr "éå¼å¤æï¼implicit polymorphismï¼"
+
+#. Tag: para
+#, 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><subclass></literal>, <literal><joined-subclass></literal> and <literal><union-subclass></literal> mappings under the same root <literal><class></literal> element. It is possible to mix together the table per hierarchy and table per subclass strategies under the the same <literal><class></literal> element, by combining the <literal><subclass></literal> and <literal><join></literal> elements (see below for an example)."
+msgstr "对äºåä¸ä¸ªç»§æ¿å±æ¬¡å
çä¸ååæ¯ï¼å¯ä»¥éç¨ä¸åçæ å°çç¥ï¼ç¶åç¨éå¼å¤ ææ¥å®æè·¨è¶æ´ä¸ªå±æ¬¡çå¤æãä½æ¯å¨åä¸ä¸ª <literal><class></literal> æ ¹å
ç´ ä¸ï¼Hibernate ä¸æ¯ææ··åäºå
ç´ <literal><subclass></literal>ã<literal><joined-subclass></literal> å <literal><union-subclass></literal> çæ å°ãå¨åä¸ä¸ª <literal><class></literal> å
ç´ ä¸ï¼å¯ä»¥æ··å使ç¨âæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âï¼table per hierarchyï¼åâæ¯ä¸ªåç±»ä¸å¼ 表âï¼table per subclassï¼ è¿ä¸¤ç§æ å°çç¥ï¼è¿æ¯éè¿ç»åå
ç´ <literal><subclass></literal> å <literal><join></literal> æ¥å®ç°çï¼è§åï¼ã "
+
+#. Tag: para
+#, 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 "å¨å¤ä¸ªæ å°æ件ä¸ï¼å¯ä»¥ç´æ¥å¨ <literal>hibernate-mapping</literal> æ ¹ä¸å®ä¹ <literal>subclass</literal>ï¼<literal>union-subclass</literal> å <literal>joined-subclass</literal>ãä¹å°±æ¯è¯´ï¼ä½ å¯ä»¥ä»
å å
¥ä¸ä¸ªæ°çæ å°æ件æ¥æ©å±ç±»å±æ¬¡ãä½ å¿
é¡»å¨ subclass çæ å°ä¸ææ <literal>extends</literal> å±æ§ï¼ç»åºä¸ä¸ªä¹åå®ä¹çè¶
ç±»çååã注æï¼å¨ä»¥åï¼è¿ä¸åè½å¯¹æ å°æ件ç顺åºæä¸¥æ ¼çè¦æ±ï¼ä» Hibernate 3 å¼å§ï¼ä½¿ç¨ extends å
³é®åçæ¶ä¾¯ï¼å¯¹æ å°æ件ç顺åºä¸åæè¦æ±ï¼ä½å¨æ¯ä¸ªæ å°æ件éï¼è¶
ç±»å¿
é¡»å¨åç±»ä¹åå®ä¹ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Table per class hierarchy"
+msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表ï¼Table per class hierarchyï¼"
+
+#. Tag: para
+#, 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 "å设æ们ææ¥å£<literal>Payment</literal>åå®çå 个å®ç°ç±»ï¼ <literal>CreditCardPayment</literal>, <literal>CashPayment</literal> å<literal>ChequePayment</literal>ãåâæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âï¼Table per class hierarchyï¼çæ å°ä»£ç å¦ä¸æç¤ºï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Exactly one table is required. There is a limitation of this mapping strategy: columns declared by the subclasses, such as <literal>CCTYPE</literal>, cannot have <literal>NOT NULL</literal> constraints."
+msgstr "éç¨è¿ç§çç¥åªéè¦ä¸å¼ 表å³å¯ãå®æä¸ä¸ªå¾å¤§çéå¶ï¼è¦æ±é£äºç±åç±»å®ä¹çåæ®µï¼ å¦ <literal>CCTYPE</literal>ï¼ä¸è½æ<literal>é空ï¼NOT NULLï¼</literal>约æã "
+
+#. Tag: title
+#, no-c-format
+msgid "Table per subclass"
+msgstr "æ¯ä¸ªåç±»ä¸å¼ 表ï¼Table per subclassï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A table per subclass mapping looks like this:"
+msgstr " 对äºä¸ä¾ä¸çå 个类èè¨ï¼éç¨âæ¯ä¸ªåç±»ä¸å¼ 表âçæ å°çç¥ï¼ä»£ç å¦ä¸æ示ï¼"
+
+#. Tag: para
+#, 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
+#, no-c-format
+msgid "Table per subclass: using a discriminator"
+msgstr "æ¯ä¸ªåç±»ä¸å¼ 表ï¼Table per subclassï¼ï¼ä½¿ç¨è¾¨å«æ å¿ï¼Discriminatorï¼ "
+
+#. Tag: para
+#, 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><subclass></literal> and <literal><join></literal>, as follows:"
+msgstr "注æï¼å¯¹âæ¯ä¸ªåç±»ä¸å¼ 表âçæ å°çç¥ï¼Hibernate çå®ç°ä¸éè¦è¾¨å«å段ï¼èå
¶ä»ç对象ï¼å
³ç³»æ å°å·¥å
·ä½¿ç¨äºä¸ç§ä¸åäºHibernateçå®ç°æ¹æ³ï¼è¯¥æ¹æ³è¦æ±å¨è¶
类表ä¸æä¸ä¸ªç±»å辨å«å段ï¼type discriminator columnï¼ãHibernate éç¨çæ¹æ³æ´é¾å®ç°ï¼ä½ä»å
³ç³»ï¼æ°æ®åºï¼çè§åº¦æ¥çï¼æç说å®æ´æ£ç¡®ãè¥ä½ æ¿æ使ç¨å¸¦æ辨å«å段çâæ¯ä¸ªåç±»ä¸å¼ 表âççç¥ï¼ä½ å¯ä»¥ç»åä½¿ç¨ <literal><subclass></literal> ä¸<literal><join></literal>ï¼å¦ä¸æç¤ºï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal>fetch=\"select\"</literal> declaration tells Hibernate not to fetch the <literal>ChequePayment</literal> subclass data using an outer join when querying the superclass."
+msgstr "å¯éç声æ <literal>fetch=\"select\"</literal>ï¼æ¯ç¨æ¥åè¯ Hibernateï¼å¨æ¥è¯¢è¶
ç±»æ¶ï¼ä¸è¦ä½¿ç¨å¤é¨è¿æ¥ï¼outer joinï¼æ¥æååç±» <literal>ChequePayment</literal> çæ°æ®ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing table per class hierarchy with table per subclass"
+msgstr "æ··å使ç¨âæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âåâæ¯ä¸ªåç±»ä¸å¼ 表â"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even mix the table per hierarchy and table per subclass strategies using the following approach:"
+msgstr "ä½ çè³å¯ä»¥éåå¦ä¸æ¹æ³æ··å使ç¨âæ¯ä¸ªç±»åå±ç»æä¸å¼ 表âåâæ¯ä¸ªåç±»ä¸å¼ 表âè¿ä¸¤ç§çç¥ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "For any of these mapping strategies, a polymorphic association to the root <literal>Payment</literal> class is mapped using <literal><many-to-one></literal>."
+msgstr "对ä¸è¿°ä»»ä½ä¸ç§æ å°çç¥èè¨ï¼æåæ ¹ç±» <literal>Payment</literal> çå
³èæ¯ä½¿ç¨ <literal><many-to-one></literal> è¿è¡æ å°çã"
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼Table per concrete classï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "There are two ways we can map the table per concrete class strategy. First, you can use <literal><union-subclass></literal>."
+msgstr "对äºâæ¯ä¸ªå
·ä½ç±»ä¸å¼ 表âçæ å°çç¥ï¼å¯ä»¥éç¨ä¸¤ç§æ¹æ³ã第ä¸ç§æ¹æ³æ¯ä½¿ç¨ <literal><union-subclass></literal>ã "
+
+#. Tag: para
+#, 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
+#, 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 "è¿ç§æ¹å¼çå±éå¨äºï¼å¦æä¸ä¸ªå±æ§å¨è¶
ç±»ä¸åäºæ å°ï¼å
¶å段åå¿
é¡»ä¸ææå类表ä¸å®ä¹çç¸åãï¼æ们å¯è½ä¼å¨ Hibernate çåç»åå¸çæ¬ä¸æ¾å®½æ¤éå¶ãï¼ä¸å
许å¨èååç±»ï¼union subclassï¼ç继æ¿å±æ¬¡ä¸ä½¿ç¨æ è¯çæå¨çç¥ï¼identity generator strategyï¼ï¼å®é
ä¸ï¼ä¸»é®çç§åï¼primary key seedï¼ä¸å¾ä¸ä¸ºåä¸ç»§æ¿å±æ¬¡ä¸çå
¨é¨è¢«èååç±»æå
±ç¨ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If your superclass is abstract, map it with <literal>abstract=\"true\"</literal>. If it is not abstract, an additional table (it defaults to <literal>PAYMENT</literal> in the example above), is needed to hold instances of the superclass."
+msgstr "åè¥è¶
ç±»æ¯æ½è±¡ç±»ï¼è¯·ä½¿ç¨ <literal>abstract=\"true\"</literal>ãå½ç¶ï¼åè¥å®ä¸æ¯æ½è±¡çï¼éè¦ä¸ä¸ªé¢å¤ç表ï¼ä¸é¢çä¾åä¸ï¼é»è®¤æ¯ <literal>PAYMENT</literal>ï¼ï¼æ¥ä¿åè¶
ç±»çå®ä¾ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Table per concrete class using implicit polymorphism"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼ä½¿ç¨éå¼å¤æ "
+
+#. Tag: para
+#, no-c-format
+msgid "An alternative approach is to make use of implicit polymorphism:"
+msgstr "å¦ä¸ç§å¯ä¾éæ©çæ¹æ³æ¯éç¨éå¼å¤æï¼"
+
+#. Tag: para
+#, 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>[ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ]</literal> in the <literal>DOCTYPE</literal> declaration and <literal>&allproperties;</literal> in the mapping)."
+msgstr "请注æï¼è¿é没ææ¾æ§å°æå <literal>Payment</literal> æ¥å£ã<literal>Payment</literal> çå±æ§æ å°å°æ¯ä¸ªåç±»ãå¦æä½ æ³é¿å
éå¤ï¼è¯·èèä½¿ç¨ XML å®ä½ï¼å¦ï¼<literal>DOCTYPE</literal> 声æéç <literal>[ <!ENTITY allproperties SYSTEM \"allproperties.xml\"> ]</literal> åæ å°éç <literal>&allproperties;</literal>ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The disadvantage of this approach is that Hibernate does not generate SQL <literal>UNION</literal>s when performing polymorphic queries."
+msgstr "è¿ç§æ¹æ³ç缺é·å¨äºï¼å¨ Hibernate æ§è¡å¤ææ¥è¯¢æ¶ï¼polymorphic queriesï¼æ æ³çæ带 <literal>UNION</literal> ç SQL è¯å¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "For this mapping strategy, a polymorphic association to <literal>Payment</literal> is usually mapped using <literal><any></literal>."
+msgstr "对äºè¿ç§æ å°çç¥èè¨ï¼éå¸¸ç¨ <literal><any></literal> æ¥å®ç°å° <literal>Payment</literal> çå¤æå
³èæ å°ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Mixing implicit polymorphism with other inheritance mappings"
+msgstr "éå¼å¤æåå
¶ä»ç»§æ¿æ å°æ··å使ç¨"
+
+#. Tag: para
+#, no-c-format
+msgid "Since the subclasses are each mapped in their own <literal><class></literal> element, and since <literal>Payment</literal> is just an 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 "对è¿ä¸æ å°è¿æä¸ç¹éè¦æ³¨æãå 为æ¯ä¸ªåç±»é½å¨åèªç¬ç«çå
ç´ <literal><class></literal> ä¸æ å°ï¼å¹¶ä¸ <literal>Payment</literal> åªæ¯ä¸ä¸ªæ¥å£ï¼ï¼æ¯ä¸ªåç±»å¯ä»¥å¾å®¹æçæ为å¦ä¸ä¸ªç»§æ¿ä½ç³»ä¸çä¸é¨åï¼ï¼ä½ ä»ç¶å¯ä»¥å¯¹æ¥å£ <literal>Payment</literal> 使ç¨å¤ææ¥è¯¢ãï¼ "
+
+#. Tag: para
+#, 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 "æ们è¿æ¯æ²¡ææç¡®çæå° <literal>Payment</literal>ãå¦ææ们é对æ¥å£ <literal>Payment</literal> æ§è¡æ¥è¯¢ â å¦ <literal>from Payment</literal> â Hibernate èªå¨è¿å <literal>CreditCardPayment</literal>ï¼åå®çåç±»ï¼å 为 å®ä»¬ä¹å®ç°äºæ¥å£ <literal>Payment</literal>ï¼ã<literal>CashPayment</literal> å <literal>Chequepayment</literal> çå®ä¾ï¼ä½ä¸è¿å <literal>NonelectronicTransaction</literal> çå®ä¾ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Limitations"
+msgstr "éå¶"
+
+#. Tag: para
+#, no-c-format
+msgid "There are limitations to the \"implicit polymorphism\" approach to the table per concrete-class mapping strategy. There are somewhat less restrictive limitations to <literal><union-subclass></literal> mappings."
+msgstr "对âæ¯ä¸ªå
·ä½ç±»æ å°ä¸å¼ 表âï¼table per concrete-classï¼çæ å°çç¥èè¨ï¼éå¼å¤æçæ¹å¼æä¸å®çéå¶ãè <literal><union-subclass></literal> æ å°çéå¶å没æé£ä¹ä¸¥æ ¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The following table shows the limitations of table per concrete-class mappings, and of implicit polymorphism, in Hibernate."
+msgstr "ä¸é¢è¡¨æ ¼ä¸ååºäºå¨ Hibernte ä¸âæ¯ä¸ªå
·ä½ç±»ä¸å¼ 表âççç¥åéå¼å¤æçéå¶ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Features of inheritance mappings"
+msgstr "继æ¿æ å°ç¹æ§ï¼Features of inheritance mappingsï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Inheritance strategy"
+msgstr "继æ¿çç¥ï¼Inheritance strategyï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-one"
+msgstr "å¤æå¤å¯¹å¤ "
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-one"
+msgstr "å¤æä¸å¯¹ä¸"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic one-to-many"
+msgstr "å¤æä¸å¯¹å¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic many-to-many"
+msgstr "å¤æå¤å¯¹å¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic <literal>load()/get()</literal>"
+msgstr "Polymorphic <literal>load()/get()</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "å¤ææ¥è¯¢"
+
+#. Tag: entry
+#, no-c-format
+msgid "Polymorphic joins"
+msgstr "å¤æè¿æ¥ï¼joinï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Outer join fetching"
+msgstr "æ¯æå¤è¿æ¥ï¼Outer joinï¼è¯»åã "
+
+#. Tag: entry
+#, no-c-format
+msgid "table per class-hierarchy"
+msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表ï¼table per class hierarchyï¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-one></literal>"
+msgstr "<literal><many-to-one></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-one></literal>"
+msgstr "<literal><one-to-one></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-many></literal>"
+msgstr "<literal><one-to-many></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-many></literal>"
+msgstr "<literal><many-to-many></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>s.get(Payment.class, id)</literal>"
+msgstr "<literal>s.get(Payment.class, id)</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Payment p</literal>"
+msgstr "<literal>from Payment p</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>from Order o join o.payment p</literal>"
+msgstr "<literal>from Order o join o.payment p</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>supported</emphasis>"
+msgstr "<emphasis>ææ¯æç</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete-class (union-subclass)"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼union-subclassï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><one-to-many></literal> (for <literal>inverse=\"true\"</literal> only)"
+msgstr "<literal><one-to-many></literal> (ä»
éç¨äº <literal>inverse=\"true\"</literal>)"
+
+#. Tag: entry
+#, no-c-format
+msgid "table per concrete class (implicit polymorphism)"
+msgstr "æ¯ä¸ªå
·ä½ç±»ä¸å¼ 表ï¼éå¼å¤æï¼ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><any></literal>"
+msgstr "<literal><any></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<emphasis>not supported</emphasis>"
+msgstr "<emphasis>ä¸æ¯æç</emphasis>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal><many-to-any></literal>"
+msgstr "<literal><many-to-any></literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</literal>"
+msgstr "<literal>s.createCriteria(Payment.class).add( Restrictions.idEq(id) ).uniqueResult()</literal>"
+
+#~ msgid "table per class-heirarchy"
+#~ msgstr "æ¯ä¸ªç±»åå±ç»æä¸å¼ 表 "
+
+#~ msgid "Polymorphic many-to-one: <code><many-to-one></code>"
+#~ msgstr "å¤ææ§å¤å¯¹ä¸ï¼<code><many-to-one></code>"
+
+#~ msgid "Polymorphic one-to-one: <code><one-to-one></code>"
+#~ msgstr "å¤ææ§ä¸å¯¹ä¸ï¼<code><one-to-one></code>"
+
+#~ msgid "Polymorphic one-to-many: <code><one-to-many></code>"
+#~ msgstr "å¤ææ§ä¸å¯¹å¤ï¼<code><one-to-many></code>"
+
+#~ msgid "Polymorphic many-to-many: <code><many-to-many></code>"
+#~ msgstr "å¤ææ§å¤å¯¹å¤ï¼<code><many-to-many></code>"
+
+#~ msgid ""
+#~ "Polymorphic <literal>load()</literal> or <literal>get()</literal>: "
+#~ "<code>s.get(Payment.class, id)</code>"
+#~ msgstr ""
+#~ "å¤ææ§ <literal>load()</literal> æ <literal>get()</literal>ï¼<code>s.get"
+#~ "(Payment.class, id)</code>"
+
+#~ msgid "Polymorphic queries: <code>from Payment p</code>"
+#~ msgstr "å¤ææ§æ¥è¯¢ï¼<code>from Payment p</code>"
+
+#~ msgid "Polymorphic many-to-one: <code><any></code>"
+#~ msgstr "å¤æå¤å¯¹ä¸ï¼<code><any></code>"
+
+#~ msgid ""
+#~ "Polymorphic one-to-one, polymorphic one-to-many, polymorphic joins, and "
+#~ "outer join fetching are not supported."
+#~ msgstr ""
+#~ "å¤ææ§ä¸å¯¹ä¸ãå¤ææ§ä¸å¯¹å¤ï¼ä¸æ¯æå¤ææ§ join å outer join fetchingã"
+
+#~ msgid "<para>table per subclass</para>"
+#~ msgstr "<para>æ¯ä¸ªåç±»ä¸å¼ 表</para>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ " <hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-value="
+#~ "\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ " <subclass name=\"DomesticCat\" extends=\"Cat\" discriminator-"
+#~ "value=\"D\">\n"
+#~ " <property name=\"name\" type=\"string\"/>\n"
+#~ " </subclass>\n"
+#~ " </hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " <join table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " <join table=\"CHEQUE_PAYMENT\" fetch=\"select\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\" table=\"PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"PAYMENT_TYPE\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"CreditCardPayment\" discriminator-value=\"CREDIT"
+#~ "\">\n"
+#~ " <join table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </join>\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"CashPayment\" discriminator-value=\"CASH\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ " <subclass name=\"ChequePayment\" discriminator-value=\"CHEQUE"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class="
+#~ "\"Payment\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"payment\" column=\"PAYMENT_ID\" class=\"Payment\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Payment\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"PAYMENT_ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <union-subclass name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT"
+#~ "\">\n"
+#~ " <property name=\"creditCardType\" column=\"CCTYPE\"/>\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ " <union-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " ...\n"
+#~ " </union-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CASH_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CHEQUE_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>]]>"
+#~ msgstr ""
+#~ "<any name=\"payment\" meta-type=\"string\" id-type=\"long\">\n"
+#~ " <meta-value value=\"CREDIT\" class=\"CreditCardPayment\"/>\n"
+#~ " <meta-value value=\"CASH\" class=\"CashPayment\"/>\n"
+#~ " <meta-value value=\"CHEQUE\" class=\"ChequePayment\"/>\n"
+#~ " <column name=\"PAYMENT_CLASS\"/>\n"
+#~ " <column name=\"PAYMENT_ID\"/>\n"
+#~ "</any>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/>\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"CreditCardPayment\" table=\"CREDIT_PAYMENT\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"CREDIT_PAYMENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <discriminator column=\"CREDIT_CARD\" type=\"string\"/>\n"
+#~ " <property name=\"amount\" column=\"CREDIT_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " <subclass name=\"MasterCardPayment\" discriminator-value=\"MDC\"/"
+#~ ">\n"
+#~ " <subclass name=\"VisaPayment\" discriminator-value=\"VISA\"/>\n"
+#~ "</class>\n"
+#~ "\n"
+#~ "<class name=\"NonelectronicTransaction\" table=\"NONELECTRONIC_TXN"
+#~ "\">\n"
+#~ " <id name=\"id\" type=\"long\" column=\"TXN_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " ...\n"
+#~ " <joined-subclass name=\"CashPayment\" table=\"CASH_PAYMENT\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CASH_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ " <joined-subclass name=\"ChequePayment\" table=\"CHEQUE_PAYMENT"
+#~ "\">\n"
+#~ " <key column=\"PAYMENT_ID\"/>\n"
+#~ " <property name=\"amount\" column=\"CHEQUE_AMOUNT\"/>\n"
+#~ " ...\n"
+#~ " </joined-subclass>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid "<term>table per subclass</term>"
+#~ msgstr "<entry>æ¯ä¸ªåç±»ä¸å¼ 表</entry>"
+
+#~ msgid "from Payment p"
+#~ msgstr "from Payment p"
+
+#~ msgid "supported"
+#~ msgstr "æ¯æ"
+
+#~ msgid "<any>"
+#~ msgstr "<any>"
+
+#~ msgid "not supported"
+#~ msgstr "ä¸æ¯æ"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/performance.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/performance.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/performance.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,2507 @@
+# translation of performance.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: performance\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-15 15:27+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Improving performance"
+msgstr "æåæ§è½"
+
+#. Tag: title
+#, no-c-format
+msgid "Fetching strategies"
+msgstr "æåçç¥ï¼Fetching strategiesï¼"
+
+#. 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>ä¸é载声æã"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 defines the following fetching strategies:"
+msgstr "Hibernate3 å®ä¹äºå¦ä¸å ç§æåçç¥ï¼"
+
+#. 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>ï¼å¤è¿æ¥ï¼æ¥"
+"è·å¾å¯¹è±¡çå
³èå®ä¾æè
å
³èéåã "
+
+#. 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 è¯å¥ã"
+
+#. 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 "
+"è¯å¥ã"
+
+#. 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> è¯å¥è·åä¸"
+"æ¹å¯¹è±¡å®ä¾æéåã"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate also distinguishes between:"
+msgstr "Hibernate ä¼åºåä¸ååç§æ
åµï¼"
+
+#. 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>ï¼å½å®¿ä¸»è¢«å è½½æ¶ï¼å
³èãéå"
+"æå±æ§è¢«ç«å³æåã"
+
+#. 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>ï¼ç´å°åºç¨ç¨åºå¯¹é"
+"åè¿è¡äºä¸æ¬¡æä½æ¶ï¼éåæ被æåï¼å¯¹éåèè¨è¿æ¯é»è®¤è¡ä¸ºï¼ã"
+
+#. 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 ä¸ä¼è¯å¾å»ææ´ä¸ªéåé½æåå°å
åéæ¥ï¼éç¨äºé常大çéåï¼ã"
+
+#. 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 æä½æ¶ææåã"
+
+#. 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ãè¿ç§æ¹æ³éè¦å¨ç¼è¯æé´è¿è¡åèç å¢å¼ºæä½ï¼å æ¤å¾å°éè¦ç¨"
+"å°ã"
+
+#. 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>ï¼å¯¹å±æ§æè¿ååå¼"
+"çå
³èèè¨ï¼å½å
¶å®ä¾åé被访é®çæ¶åè¿è¡æåãéè¦ç¼è¯æåèç 强åï¼å æ¤è¿ä¸"
+"æ¹æ³å¾å°æ¯å¿
è¦çã"
+
+#. 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>æ¥å®ä¹ä¸äº"
+"å¥çº¦ï¼å¯¹æç¹å®ç±»çæ个è±ç®¡çå®ä¾ï¼ç¥éæåªäºæ°æ®æ¯å¯ä»¥ä½¿ç¨çã"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with lazy associations"
+msgstr "æä½å»¶è¿å è½½çå
³è"
+
+#. 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 æåï¼å¯¹è¿ååå¼çå
³è使ç¨å»¶è¿"
+"代çæåã对å ä¹æ¯ææçåºç¨èè¨ï¼å
¶ç»å¤§å¤æ°çå
³èï¼è¿ç§çç¥é½æ¯ææçã"
+
+#. 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 ä¼å¯¹å»¶è¿å è½½éåæ¹éæåä¼åæªæ½ï¼è¿ç§ä¼åä¹å¯è½ä¼å¨æ´ç»åç级å«æ"
+"å¼ï¼ã"
+
+#. 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 ä¸ä¸æ"
+"ä¹å¤è°ç¨å»¶è¿éåä¼å¯¼è´ä¸æ¬¡æå¤ãæ¯å¦ï¼ "
+
+#. 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 读åæ°æ®ç代ç 移å°äºå¡æ交ä¹åã"
+
+#. 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 æç»å ä¹éè¦å¨æ¯ä¸ªäºå¡"
+"ä¸è½½å
¥æ´ä¸ªæ°æ®åºå°å
åä¸ã"
+
+#. 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 ä¸ï¼å
·ä½éæ©åªç§æåçç¥çæºå¶æ¯åéæ© åå¼å
³èæ"
+"éåå
³èç¸ä¸è´çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Tuning fetch strategies"
+msgstr "è°æ´æåçç¥ï¼Tuning fetch strategiesï¼"
+
+#. 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 æ¥è¯¢çæ
åµä¸æ¯æå
¶èå¼±çï¼å æ¤æ们å¯è½ä¼è¦æ±å¨æ å°æ"
+"æ¡£ä¸å®ä¹ä½¿ç¨è¿æ¥æåï¼"
+
+#. Tag: para
+#, no-c-format
+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> æ¹æ³åå¾æ°æ®ã"
+
+#. Tag: para
+#, no-c-format
+msgid "retrieval that happens implicitly when an association is navigated"
+msgstr "åªæå¨å
³èä¹é´è¿è¡å¯¼èªæ¶ï¼æä¼éå¼çåå¾æ°æ®ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Criteria</literal> queries"
+msgstr "æ¡ä»¶æ¥è¯¢"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries if <literal>subselect</literal> fetching is used"
+msgstr "使ç¨äº <literal>subselect</literal> æåç HQL æ¥è¯¢"
+
+#. 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 æ¥è¯¢åç´§è·çä¸ç³»åçæ¥è¯¢ã "
+
+#. 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>è¯å¥ã "
+
+#. 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> è¯å¥ä¸çæ°æ®æåçç¥ãä¾å¦ï¼ "
+
+#. 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 ä¸ççä»·ç©ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"A completely different approach to problems with N+1 selects is to use the "
+"second-level cache."
+msgstr "æªç¶ä¸åçä¸ç§é¿å
N+1 次æ¥è¯¢çæ¹æ³æ¯ï¼ä½¿ç¨äºçº§ç¼åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Single-ended association proxies"
+msgstr "å端å
³è代çï¼Single-ended association proxiesï¼"
+
+#. 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 åºï¼ï¼ 为æä¹
对象å®ç°äºå»¶è¿è½½å
¥"
+"代çã "
+
+#. 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> å
³èç延è¿æåã "
+
+#. 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>"
+
+#. Tag: para
+#, no-c-format
+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> å®ä¾ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Secondly, it is possible to break proxy <literal>==</literal>:"
+msgstr "å
¶æ¬¡ï¼ä»£ççâ<literal>==</literal>âå¯è½ä¸åæç«ã "
+
+#. 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 ""
+"è½ç¶å¦æ¤ï¼ä½å®é
æ
åµå¹¶æ²¡æçä¸å»é£ä¹ç³ç³ãè½ç¶æ们ç°å¨æ两个ä¸åçå¼ç¨ï¼åå«"
+"æåè¿ä¸¤ä¸ªä¸åç代ç对象ï¼ä½å®é
ä¸ï¼å
¶åºå±åºè¯¥æ¯åä¸ä¸ªå®ä¾å¯¹è±¡ï¼"
+
+#. 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 代çã"
+
+#. 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 ""
+"æåï¼å¦æä½ çæä¹
å对象å¨å®ä¾åæ¶éè¦æäºèµæºï¼ä¾å¦ï¼å¨å®ä¾åæ¹æ³ãé»è®¤æé "
+"æ¹æ³ä¸ï¼ï¼é£ä¹ä»£ç对象ä¹åæ ·éè¦ä½¿ç¨è¿äºèµæºãå®é
ä¸ï¼ä»£çç±»æ¯æä¹
åç±»çå"
+"ç±»ã"
+
+#. 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> æ¥å£ãä¾å¦ï¼"
+
+#. 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> å®ä¾ç代çã"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>list()</literal> does not usually return proxies."
+msgstr "<literal>list()</literal> é常ä¸è¿å代çã"
+
+#. 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>ã"
+
+#. Tag: para
+#, no-c-format
+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> æ¹æ³ã"
+
+#. 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> æ¹æ³ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier getter method"
+msgstr "æ å¿ç¬¦ç getter æ¹æ³ã"
+
+#. 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> æ¹æ³çæä¹
åç±»ã"
+
+#. 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>ï¼æ们å¯ä»¥é¿å
ç±»å转æ¢å¸¦æ¥çé®é¢ãç¶èï¼è¿æ ·æ们就éè¦ç¼è¯æåè"
+"ç å¢å¼ºï¼å¹¶ä¸ææçæä½é½ä¼å¯¼è´ç«å»è¿è¡ä»£çåå§åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Initializing collections and proxies"
+msgstr "å®ä¾åéåå代çï¼Initializing collections and proxiesï¼"
+
+#. 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> å¼å¸¸ãä¹å°±æ¯è¯´ï¼å¨å离"
+"ç¶æä¸ï¼è®¿é®ä¸ä¸ªå®ä½ææ¥æçéåï¼æè
访é®å
¶æå代ççå±æ§æ¶ï¼ä¼å¼åæ¤å¼å¸¸ã "
+
+#. 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> ä¹ç±»çæ¹æ³æ¥ç¡®ä¿è¿ä¸ç¹ã ä½æ¯è¿æ ·çç¨åºä¼é æ读"
+"è
ççæï¼ä¹ä¸ç¬¦åé常ç代ç è§èã "
+
+#. 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 çé"
+"åå
·æåæ ·çåè½ã "
+
+#. 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 ç¶æç»å¸¸ä¼æ¯ä¸ä¸ªé®é¢ãæ两ç§æ¹æ³å¯ä»¥è§£å³æ¤é®é¢ï¼ "
+
+#. 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\" 模å¼ï¼ä½ å¯ä»¥æ¾å°ç¤ºä¾ã "
+
+#. 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>ï¼é£ä¹è¿é¡¹ä»»å¡å°ä¼åå¾ç®åçå¤ã "
+
+#. 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>èªå¨å®æè¿äºä»»å¡ï¼å 为è¿å°å¼å
¥ä¸ä¸ªç¹æ®çäºå¡è¯ä¹ã "
+
+#. 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 ""
+"ææ¶åï¼ä½ 并ä¸éè¦å®å
¨å®ä¾åæ´ä¸ªå¤§çéåï¼ä»
éè¦äºè§£å®çé¨åä¿¡æ¯ï¼ä¾å¦å
¶å¤§"
+"å°ï¼ãæè
éåçé¨åå
容ã "
+
+#. Tag: para
+#, no-c-format
+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> æ¹æ³ä¹å¯ä»¥è¢«ç¨æ¥ææçæåéåçé¨å"
+"å
容ï¼èæ éå®ä¾åæ´ä¸ªéåï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Using batch fetching"
+msgstr "使ç¨æ¹éæåï¼Using batch fetchingï¼"
+
+#. 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 å°ä¸è½½å
¥å
¶ä»æªå®ä¾åç代çãæ¹éæåæ¯å»¶è¿æ¥è¯¢æåçä¼å"
+"æ¹æ¡ï¼ä½ å¯ä»¥å¨ä¸¤ç§æ¹éæåæ¹æ¡ä¹é´è¿è¡éæ©ï¼å¨ç±»çº§å«åéå级å«ã "
+
+#. 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>ï¼æ¹åå
¶è¡ä¸ºï¼ "
+
+#. Tag: para
+#, no-c-format
+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 å°å¯ä»¥é¢å
æåæ´ä¸ªéåã请"
+"çä¾åï¼ "
+
+#. 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> ä¸æªå®ä¾åéåç个"
+"æ°ã "
+
+#. 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>å¯è½æ¯æ´å¥½ç解å³æ¹æ³ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Using subselect fetching"
+msgstr "使ç¨åæ¥è¯¢æåï¼Using subselect fetchingï¼"
+
+#. 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 éæ°è¿è¡å"
+"æ¥çæ¥è¯¢ï¼ä¸æ¬¡æ§è¯»å
¥ææçå®ä¾ãè¿åæ¹éæåçå®ç°æ¹æ³æ¯ä¸æ ·çï¼ä¸ä¼æç ´ç¢ç"
+"å è½½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Fetch profiles"
+msgstr "Fetch profileï¼æåçç¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Another way to affect the fetching strategy for loading associated objects "
+"is through something called a fetch profile, which is a named configuration "
+"associated with the <interfacename>org.hibernate.SessionFactory</"
+"interfacename> but enabled, by name, on the <interfacename>org.hibernate."
+"Session</interfacename>. Once enabled on a <interfacename>org.hibernate."
+"Session</interfacename>, the fetch profile wull be in affect for that "
+"<interfacename>org.hibernate.Session</interfacename> until it is explicitly "
+"disabled."
+msgstr ""
+"å½±åæåå è½½ç¸å
³å¯¹è±¡ççç¥çå¦å¤ä¸ä¸ªæ¹æ³æ¯éè¿æåé
ç½®ï¼fetch profileï¼ï¼å®æ¯"
+"å <interfacename>org.hibernate.SessionFactory</interfacename> ç¸å
³çé
ç½®ä½"
+"对 <interfacename>org.hibernate.Session</interfacename> å¯ç¨ãä¸æ¦å¨ "
+"<interfacename>org.hibernate.Session</interfacename> ä¸å¯ç¨ï¼æåé
ç½®å°å¯¹è¿"
+"个 <interfacename>org.hibernate.Session</interfacename> çæç´è³å®è¢«æ¾æ§å°ç¦"
+"ç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"So what does that mean? Well lets explain that by way of an example. Say we "
+"have the following mappings:"
+msgstr "è¿æ¯ä»ä¹ææå¢ï¼è®©æ们éè¿ä¸ä¸ªä¾åè¿è¡è§£éãå设æ们æä¸åæ å°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now normally when you get a reference to a particular customer, that "
+"customer's set of orders will be lazy meaning we will not yet have loaded "
+"those orders from the database. Normally this is a good thing. Now lets say "
+"that you have a certain use case where it is more efficient to load the "
+"customer and their orders together. One way certainly is to use \"dynamic "
+"fetching\" strategies via an HQL or criteria queries. But another option is "
+"to use a fetch profile to achieve that. Just add the following to your "
+"mapping:"
+msgstr ""
+"ç°å¨ï¼å½ä½ è·å¾æ个ç¹å®å®¢æ·çå¼ç¨æ¶ï¼è¿ä¸ªå®¢æ·ç订åå°å¤äº lazy ç¶æï¼è¡¨ç¤ºæ们"
+"æä¸ä¼ä»æ°æ®åºéå è½½è¿äºè®¢åãè¿æ ·é常没æé®é¢ãå设å¨æç§æ
åµä¸ï¼å 载客æ·å"
+"å
¶è®¢åä¼æ´é«æãå
¶ä¸ä¸ä¸ªåæ³å½ç¶æ¯ä½¿ç¨éè¿ HQL æ Criteria æ¥è¯¢âå¨ææåâçç"
+"ç¥ãå¦å¤ä¸ä¸ªæ¹æ³å°±æ¯ä½¿ç¨æåé
ç½®ï¼Fetch Profileï¼ãä½ å¯ä»¥å¨æ å°éå å
¥ä¸é¢çå
"
+"容ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "or even:"
+msgstr "çè³ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Now the following code will actually load both the customer <emphasis>and "
+"their orders</emphasis>:"
+msgstr "ä¸é¢ç代ç å°å®é
ä¸å 载客æ·<emphasis>以å</emphasis>订åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Currently only join style fetch profiles are supported, but they plan is to "
+"support additional styles. See <ulink url=\"http://opensource.atlassian.com/"
+"projects/hibernate/browse/HHH-3414\">HHH-3414</ulink> for details."
+msgstr ""
+"ç®ååªæ join é£æ ¼çæåçç¥è¢«æ¯æï¼ä½å
¶ä»é£æ ¼ä¹å°è¢«æ¯æãæ´å¤ç»è请åè "
+"<ulink url=\"http://opensource.atlassian.com/projects/hibernate/browse/HHH-"
+"3414\">HHH-3414</ulink>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using lazy property fetching"
+msgstr "使ç¨å»¶è¿å±æ§æåï¼Using lazy property fetchingï¼"
+
+#. 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>ã 请注æï¼è¯¥ææ¯æ´å¤çå±äºå¸åºç¹æ§ãå¨å®é
åºç¨"
+"ä¸ï¼ä¼åè¡è¯»åæ¯ä¼åå读åæ´éè¦ãä½æ¯ï¼ä»
è½½å
¥ç±»çé¨åå±æ§å¨æäºç¹å®æ
åµä¸ä¼"
+"æç¨ï¼ä¾å¦å¨åæ表ä¸æ¥æå ç¾åæ°æ®ãæ°æ®æ¨¡åæ æ³æ¹å¨çæ
åµä¸ã "
+
+#. 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>ï¼å®ä¹è¯¥å±æ§ä¸ºå»¶è¿è½½"
+"å
¥ã"
+
+#. 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 å°ä¼å¿½ç¥è¿"
+"äºå±æ§ç延è¿è®¾ç½®ï¼ä»ç¶å°å
¶ç´æ¥è½½å
¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "For bytecode instrumentation, use the following Ant task:"
+msgstr "ä½ å¯ä»¥å¨ Ant ç Task ä¸ï¼è¿è¡å¦ä¸å®ä¹ï¼å¯¹æä¹
类代ç å å
¥âäºè¿å¶æ令ãâ"
+
+#. 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ï¼ç¹æ§ï¼å¯ä»¥é¿"
+"å
读åéå¿
è¦çåï¼ è¿ä¸ç¹è³å°å¯¹åªè¯»äºå¡æ¯é常æç¨çãå®æ éå¨ä»£ç æ建æ¶âäºè¿"
+"å¶æ令âå¤çï¼å æ¤æ¯ä¸ä¸ªæ´å å¼å¾éæ©ç解å³æ¹æ³ã "
+
+#. 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>ï¼å¼ºè¡æåææå
容ã "
+
+#. Tag: title
+#, no-c-format
+msgid "The Second Level Cache"
+msgstr "äºçº§ç¼åï¼The Second Level Cacheï¼"
+
+#. 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>ï¼çç¼åãä½ çè³å¯ä»¥ä¸ºä¹æå
¥ä¸ä¸ªé群"
+"çç¼åã注æï¼ç¼åæ°¸è¿ä¸ç¥éå
¶ä»åºç¨ç¨åºå¯¹æä¹
åä»åºï¼æ°æ®åºï¼å¯è½è¿è¡çä¿®æ¹ "
+"ï¼å³ä½¿å¯ä»¥å°ç¼åæ°æ®è®¾å®ä¸ºå®æ失æï¼ã "
+
+#. 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 èµ·å°±ä¸åè¿"
+"æ ·äºã "
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Providers"
+msgstr "ç¼åçç¥æä¾åï¼Cache Providersï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cache"
+msgstr "Cache"
+
+#. Tag: entry
+#, no-c-format
+msgid "Provider class"
+msgstr "Provider class"
+
+#. Tag: entry
+#, no-c-format
+msgid "Type"
+msgstr "Type"
+
+#. Tag: entry
+#, no-c-format
+msgid "Cluster Safe"
+msgstr "Cluster Safe"
+
+#. Tag: entry
+#, no-c-format
+msgid "Query Cache Supported"
+msgstr "Query Cache Supported"
+
+#. Tag: entry
+#, no-c-format
+msgid "Hashtable (not intended for production use)"
+msgstr "Hashtable ï¼not intended for production useï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.HashtableCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.HashtableCacheProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "memory"
+msgstr "memory"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes"
+msgstr "yes"
+
+#. Tag: entry
+#, no-c-format
+msgid "EHCache"
+msgstr "EHCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.EhCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.EhCacheProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "memory, disk"
+msgstr "memoryï¼disk"
+
+#. Tag: entry
+#, no-c-format
+msgid "OSCache"
+msgstr "OSCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.OSCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.OSCacheProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "SwarmCache"
+msgstr "SwarmCache"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.SwarmCacheProvider</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast)"
+msgstr "clustered (ip multicast)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clustered invalidation)"
+msgstr "yes (clustered invalidation)"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 1.x"
+msgstr "JBoss Cache 1.x"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.TreeCacheProvider</literal>"
+msgstr "<literal>org.hibernate.cache.TreeCacheProvider</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "clustered (ip multicast), transactional"
+msgstr "clustered (ip multicast), transactional"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication)"
+msgstr "yes (replication)"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (clock sync req.)"
+msgstr "yes (clock sync req.)"
+
+#. Tag: entry
+#, no-c-format
+msgid "JBoss Cache 2"
+msgstr "JBoss Cache 2"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+msgstr "<literal>org.hibernate.cache.jbc.JBossCacheRegionFactory</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "yes (replication or invalidation)"
+msgstr "yes (replication or invalidation)"
+
+#. Tag: title
+#, no-c-format
+msgid "Cache mappings"
+msgstr "ç¼åæ å°ï¼Cache mappingsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The <literal><cache></literal> element of a class or collection "
+"mapping has the following form:"
+msgstr ""
+"ç±»æè
éåæ å°çâ<literal><cache></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>ã"
+
+#. 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ï¼ "
+
+#. 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> çå®ä½çå±æ§å¯è½æ æ³è¢«ç¼å "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Alternatively, you can specify <literal><class-cache></literal> and "
+"<literal><collection-cache></literal> elements in <literal>hibernate."
+"cfg.xml</literal>."
+msgstr ""
+"å¦å¤ï¼é¦é?ï¼ï¼ä½ å¯ä»¥å¨<literal>hibernate.cfg.xml</literal> ä¸æå® "
+"<literal><class-cache></literal> å <literal><collection-cache></"
+"literal> å
ç´ ã"
+
+#. Tag: para
+#, 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read only"
+msgstr "çç¥ï¼åªè¯»ç¼åï¼Strategyï¼read onlyï¼"
+
+#. 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> ç¼åãè¿æ¯æç®åï¼ä¹æ¯å®ç¨æ§æ好çæ¹æ³ãçè³å¨é群"
+"ä¸ï¼å®ä¹è½å®ç¾å°è¿ä½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: read/write"
+msgstr "çç¥ï¼è¯»å/ç¼åï¼Strategyï¼read/writeï¼"
+
+#. 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 å
ç½®çç¼åçç¥å¹¶ä¸æ¯æéå®åè½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: nonstrict read/write"
+msgstr "çç¥ï¼éä¸¥æ ¼è¯»/åç¼åï¼Strategyï¼nonstrict read/writeï¼"
+
+#. 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> è°ç¨åï¼æ´ä¸ªäºå¡å·²ç»ç»æã "
+
+#. Tag: title
+#, no-c-format
+msgid "Strategy: transactional"
+msgstr "çç¥ï¼äºå¡ç¼åï¼transactionalï¼"
+
+#. 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> å±æ§ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Cache-provider/concurrency-strategy compatibility"
+msgstr "åç§ç¼åæä¾å/ç¼å并åçç¥çå
¼å®¹æ§"
+
+#. Tag: para
+#, no-c-format
+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 ""
+"没æä¸ç§ç¼åæä¾åè½å¤æ¯æä¸åçææç¼å并åçç¥ãä¸è¡¨ä¸ååºäºåç§æä¾å¨ãå"
+"å
¶åèªéç¨ç并åçç¥ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Cache Concurrency Strategy Support"
+msgstr ""
+"åç§ç¼åæä¾å对ç¼å并åçç¥çæ¯ææ
åµï¼Cache Concurrency Strategy Supportï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-only"
+msgstr "read-only"
+
+#. Tag: entry
+#, no-c-format
+msgid "nonstrict-read-write"
+msgstr "nonstrict-read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "read-write"
+msgstr "read-write"
+
+#. Tag: entry
+#, no-c-format
+msgid "transactional"
+msgstr "transactional"
+
+#. Tag: title
+#, no-c-format
+msgid "Managing the caches"
+msgstr "管çç¼åï¼Managing the cachesï¼"
+
+#. 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> çå
é¨ç¼åä¸ã "
+
+#. 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> æ¹æ³ï¼ä»ä¸çº§ç¼åä¸å»æè¿äºå¯¹è±¡åå
¶éåã "
+
+#. 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 çç¼åä¸ã"
+
+#. 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>ã "
+
+#. 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> ä¸å®ä¹äºè®¸å¤æ¹æ³ï¼æ¸
é¤"
+"ç¼åä¸å®ä¾ãæ´ä¸ªç±»ãéåå®ä¾æè
æ´ä¸ªéåã"
+
+#. 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 å¦ä½ä¸äºçº§ç¼åè¿è¡äº¤"
+"äºã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.NORMAL</literal>: will read items from and write items to "
+"the second-level cache"
+msgstr "<literal>CacheMode.NORMAL</literal>ï¼ä»äºçº§ç¼åä¸è¯»ãåæ°æ®ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.GET</literal>: will read items from the second-level "
+"cache. Do not write to the second-level cache except when updating data"
+msgstr ""
+"<literal>CacheMode.GET</literal>ï¼ä»äºçº§ç¼åä¸è¯»åæ°æ®ï¼ä»
å¨æ°æ®æ´æ°æ¶å¯¹äºçº§"
+"ç¼ååæ°æ®ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.PUT</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache"
+msgstr ""
+"<literal>CacheMode.PUT</literal>ï¼ä»
åäºçº§ç¼ååæ°æ®ï¼ä½ä¸ä»äºçº§ç¼åä¸è¯»æ°"
+"æ®ã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal>CacheMode.REFRESH</literal>: will write items to the second-level "
+"cache. Do not read from the second-level cache. Bypass the effect of "
+"<literal>hibernate.cache.use_minimal_puts</literal> forcing a refresh of the "
+"second-level cache for all items read from the database"
+msgstr ""
+"<literal>CacheMode.REFRESH</literal>ï¼ä»
åäºçº§ç¼ååæ°æ®ï¼ä½ä¸ä»äºçº§ç¼åä¸è¯»"
+"æ°æ®ãéè¿ <literal>hibernate.cache.use_minimal_puts</literal> ç设置ï¼å¼ºå¶äº"
+"级ç¼åä»æ°æ®åºä¸è¯»åæ°æ®ï¼å·æ°ç¼åå
容ã"
+
+#. Tag: para
+#, 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ã"
+
+#. 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 æ´äººå·¥å¯è¯»çæ¹å¼ç»´æ¤"
+"ç¼åå
容ã "
+
+#. Tag: title
+#, no-c-format
+msgid "The Query Cache"
+msgstr "æ¥è¯¢ç¼åï¼The Query Cacheï¼"
+
+#. 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."
+msgstr ""
+"æ¥è¯¢çç»æéä¹å¯ä»¥è¢«ç¼åãåªæå½ç»å¸¸ä½¿ç¨åæ ·çåæ°è¿è¡æ¥è¯¢æ¶ï¼è¿æä¼æäºç¨"
+"å¤ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Enabling query caching"
+msgstr "å¯ç¨æ¥è¯¢ç¼å"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Caching of query results introduces some overhead in terms of your "
+"applications normal transactional processing. For example, if you cache "
+"results of a query against Person Hibernate will need to keep track of when "
+"those results should be invalidated because changes have been committed "
+"against Person. That, coupled with the fact that most applications simply "
+"gain no benefit from caching query results, leads Hibernate to disable "
+"caching of query results by default. To use query caching, you will first "
+"need to enable the query cache:"
+msgstr ""
+"æç
§åºç¨ç¨åºçäºå¡æ§å¤çè¿ç¨ï¼æ¥è¯¢ç»æçç¼åå°äº§çä¸äºè´è·ãä¾å¦ï¼å¦æç¼åé"
+"对 Person çæ¥è¯¢ç»æï¼å¨ Person åçäºä¿®æ¹æ¶ï¼Hibernate å°éè¦è·è¸ªè¿äºç»æä»"
+"ä¹æ¶å失æãå 为大å¤æ°åºç¨ç¨åºä¸ä¼ä»ç¼åæ¥è¯¢ç»æä¸åçï¼æ以 Hibernate å¨ç¼ºç"
+"æ
åµä¸å°ç¦ç¨ç¼åãè¦ä½¿ç¨æ¥è¯¢ç¼åï¼ä½ é¦å
éè¦å¯ç¨æ¥è¯¢ç¼åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This setting creates two new cache regions:"
+msgstr "è¿ä¸ªè®¾ç½®å建äºä¸¤ä¸ªæ°çç¼å regionï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>, holding the "
+"cached query results"
+msgstr ""
+"<classname>org.hibernate.cache.StandardQueryCache</classname>ï¼ä¿åç¼åçæ¥è¯¢"
+"ç»æ"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>, holding "
+"timestamps of the most recent updates to queryable tables. These are used to "
+"validate the results as they are served from the query cache."
+msgstr ""
+"<classname>org.hibernate.cache.UpdateTimestampsCache</classname>ï¼ä¿å对å¯æ¥"
+"询表çæè¿æ´æ°çæ¶é´æ³ãå®ä»¬ç¨äºæ£éªæ¥è¯¢ç»æã"
+
+#. Tag: para
+#, fuzzy, no-c-format
+msgid ""
+"If you configure your underlying cache implementation to use expiry or "
+"timeouts is is very important that the cache timeout of the underlying cache "
+"region for the UpdateTimestampsCache be set to a higher value than the "
+"timeouts of any of the query caches. In fact, we recommend that the the "
+"UpdateTimestampsCache region not be configured for expiry at all. Note, in "
+"particular, that an LRU cache expiry policy is never appropriate."
+msgstr ""
+"å¦æä½ é
ç½®åºå±ç¼åå®ç°æ¥ä½¿ç¨è¿æï¼expiryï¼æè¶
æ¶ï¼timeoutï¼ï¼æç¨äº "
+"UpdateTimestampsCache çåºå±ç¼å region çç¼åè¶
æ¶æ¶é´è®¾ç½®ä¸ºæ¯ä»»ä½æ¥è¯¢ç¼åç"
+"è¶
æ¶æ¶é´æ´é¿çå¼æ¯é常éè¦çãäºå®ä¸ï¼æ们æ¨èæ ¹æ¬ä¸æ UpdateTimestampsCache "
+"region ç¨äº expiryã请注æï¼ç¹å«æ¯ LRU ç¼å expiry çç¥æ»æ¯ä¸åéçã"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"As mentioned above, most queries do not benefit from caching or their "
+"results. So by default, individual queries are not cached even after "
+"enabling query caching. To enable results caching for a particular query, "
+"call <literal>org.hibernate.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>org.hibernate.Query."
+"setCacheableï¼trueï¼</literal>æ¹æ³ãè¿ä¸ªè°ç¨ä¼è®©æ¥è¯¢å¨æ§è¡è¿ç¨ä¸æ¶å
ä»ç¼åä¸"
+"æ¥æ¾ç»æï¼å¹¶å°èªå·±çç»æéæ¾å°ç¼åä¸å»ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"The query cache does not cache the state of the actual entities in the "
+"cache; it caches only identifier values and results of value type. For this "
+"reaso, the query cache should always be used in conjunction with the second-"
+"level cache for those entities expected to be cached as part of a query "
+"result cache (just as with collection caching)."
+msgstr ""
+"æ¥è¯¢ç¼åä¸ä¼ç¼åç¼åä¸å®é
å®ä½çç¶æï¼å®åªç¼åæ è¯ç¬¦å¼åå¼ç±»åçç»æãåºäºè¿"
+"个åå ï¼å¯¹äºé£äºä½ä¸ºæ¥è¯¢ç»æç¼åçä¸é¨åï¼åéåç¼åä¸æ ·ï¼è¿è¡ç¼åçå®ä½ï¼æ¥"
+"询ç¼ååºè¯¥åäºçº§ç¼åä¸èµ·ä½¿ç¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Query cache regions"
+msgstr "æ¥è¯¢ç¼ååº"
+
+#. 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> æ¹æ³ï¼ä¸ºæ¯ä¸ªæ¥è¯¢æå®å
¶å½åçç¼ååºåã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"If you want to force the query cache to refresh one of its regions "
+"(disregard any cached results it finds there) you can use <literal>org."
+"hibernate.Query.setCacheMode(CacheMode.REFRESH)</literal>. In conjunction "
+"with the region you have defined for the given query, Hibernate will "
+"selectively force the results cached in that particular region to be "
+"refreshed. This is particularly useful in cases where underlying data may "
+"have been updated via a separate process and is a far more efficient "
+"alternative to bulk eviction of the region via <literal>org.hibernate."
+"SessionFactory.evictQueries()</literal>."
+msgstr ""
+"å¦ææ¥è¯¢éè¦å¼ºè¡å·æ°å
¶æ¥è¯¢ç¼ååºåï¼é£ä¹ä½ åºè¯¥è°ç¨ <literal>org.hibernate."
+"Query.setCacheModeï¼CacheMode.REFRESHï¼</literal>æ¹æ³ã è¿å¯¹å¨å
¶ä»è¿ç¨ä¸ä¿®æ¹"
+"åºå±æ°æ®ï¼ä¾å¦ï¼ä¸éè¿Hibernateä¿®æ¹æ°æ®ï¼ï¼æ对é£äºéè¦éæ©æ§æ´æ°ç¹å®æ¥è¯¢ç»æ"
+"éçæ
åµç¹å«æç¨ãè¿æ¯å¯¹ <literal>org.hibernate.SessionFactory.evictQueries()"
+"</literal> çæ´ä¸ºææçæ¿ä»£æ¹æ¡ï¼åæ ·å¯ä»¥æ¸
é¤æ¥è¯¢ç¼ååºåã"
+
+#. Tag: title
+#, no-c-format
+msgid "Understanding Collection performance"
+msgstr "ç解éåæ§è½ï¼Understanding Collection performanceï¼"
+
+#. 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 ""
+"å¨åé¢çç« èéæ们已ç»è®¨è®ºäºéååç¸å
³åºç¨ç¨åºãå¨æ¬èæä¹å°æ¢ç´¢è¿è¡æ¶éåç"
+"æ´å¤é®é¢ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Taxonomy"
+msgstr "åç±»ï¼Taxonomyï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines three basic kinds of collections:"
+msgstr "Hibernate å®ä¹äºä¸ç§åºæ¬ç±»åçéåï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "collections of values"
+msgstr "å¼æ°æ®éå"
+
+#. Tag: para
+#, no-c-format
+msgid "one-to-many associations"
+msgstr "ä¸å¯¹å¤å
³èï¼One-to-many Associationsï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "many-to-many associations"
+msgstr "å¤å¯¹å¤å
³è "
+
+#. 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 æ´æ°"
+"æå é¤éåè¡æ°æ®ç主é®çç»æâãå æ¤å¾å°äºå¦ä¸çåç±»ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "indexed collections"
+msgstr "æåºéåç±»"
+
+#. Tag: para
+#, no-c-format
+msgid "sets"
+msgstr "éåï¼setsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "bags"
+msgstr "å
ï¼bagsï¼"
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"All indexed collections (maps, lists, and arrays) have a primary key "
+"consisting of the <literal><key></literal> and <literal><index></"
+"literal> columns. In this case, collection updates are extremely efficient. "
+"The primary key can be efficiently indexed and a particular row can be "
+"efficiently located when Hibernate tries to update or delete it."
+msgstr ""
+"ææçæåºéåç±»ï¼mapsï¼listsï¼arraysï¼é½æ¥æä¸ä¸ªç± <literal><key></"
+"literal> å <literal><index></literal> ç»æç主é®ãè¿ç§æ
åµä¸éåç±»çæ´"
+"æ°æ¯é常é«æç â 主é®å·²ç»è¢«ææçç´¢å¼ï¼å æ¤å½ Hibernate è¯å¾æ´æ°æå é¤ä¸è¡"
+"æ¶ï¼å¯ä»¥è¿
éæ¾å°è¯¥è¡æ°æ®ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Sets have a primary key consisting of <literal><key></literal> and "
+"element columns. This can be less efficient for some types of collection "
+"element, particularly composite elements or large text or binary fields, as "
+"the database may not be able to index a complex primary key as efficiently. "
+"However, for one-to-many or many-to-many associations, particularly in the "
+"case of synthetic identifiers, it is likely to be just as efficient. If you "
+"want <literal>SchemaExport</literal> to actually create the primary key of a "
+"<literal><set></literal>, you must declare all columns as <literal>not-"
+"null=\"true\"</literal>."
+msgstr ""
+"éåï¼setsï¼ç主é®ç± <literal><key></literal> åå
¶ä»å
ç´ å段ææã对äº"
+"æäºå
ç´ ç±»åæ¥è¯´ï¼è¿å¾ä½æï¼ç¹å«æ¯ç»åå
ç´ æè
大ææ¬ã大äºè¿å¶å段ï¼æ°æ®åºå¯"
+"è½æ æ³ææç对å¤æç主é®è¿è¡ç´¢å¼ãå¦ä¸æ¹é¢ï¼å¯¹äºä¸å¯¹å¤ãå¤å¯¹å¤å
³èï¼ç¹å«æ¯å"
+"æçæ è¯ç¬¦æ¥è¯´ï¼éåä¹å¯ä»¥è¾¾å°åæ ·çé«ææ§è½ãï¼ é注ï¼å¦æä½ å¸æ "
+"<literal>SchemaExport</literal> ä¸ºä½ ç <literal><set></literal> å建主"
+"é®ï¼ä½ å¿
é¡»æææçå段é½å£°æ为 <literal>not-null=\"true\"</literal>ãï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"<literal><idbag></literal> mappings define a surrogate key, so they "
+"are efficient to update. In fact, they are the best case."
+msgstr ""
+"<literal><idbag></literal> æ å°å®ä¹äºä»£çé®ï¼å æ¤å®æ»æ¯å¯ä»¥å¾é«æç被æ´"
+"æ°ãäºå®ä¸ï¼<literal><idbag></literal> æ¥æçæ好çæ§è½è¡¨ç°ã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"Bags are the worst case since they permit duplicate element values and, as "
+"they have no index column, no primary key can be defined. Hibernate has no "
+"way of distinguishing between duplicate rows. Hibernate resolves this "
+"problem by completely removing in a single <literal>DELETE</literal> and "
+"recreating the collection whenever it changes. This can be inefficient."
+msgstr ""
+"Bag æ¯æå·®çãå 为 bag å
许éå¤çå
ç´ å¼ï¼ä¹æ²¡æç´¢å¼å段ï¼å æ¤ä¸å¯è½å®ä¹ä¸»"
+"é®ã Hibernate æ æ³å¤æåºéå¤çè¡ãå½è¿ç§éå被æ´æ¹æ¶ï¼Hibernate å°ä¼å
å®æ´å°"
+"ç§»é¤ ï¼éè¿ä¸ä¸ªï¼in a single <literal>DELETE</literal>ï¼ï¼æ´ä¸ªéåï¼ç¶ååé"
+"æ°å建æ´ä¸ªéåãå æ¤ Bag æ¯é常ä½æçã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"For a one-to-many association, the \"primary key\" may not be the physical "
+"primary key of the database table. Even in this case, the above "
+"classification is still useful. It reflects how Hibernate \"locates\" "
+"individual rows of the collection."
+msgstr ""
+"请注æï¼å¯¹äºä¸å¯¹å¤å
³èæ¥è¯´ï¼â主é®âå¾å¯è½å¹¶ä¸æ¯æ°æ®åºè¡¨çç©ç主é®ãä½å°±ç®å¨æ¤"
+"æ
åµä¸ï¼ä¸é¢çåç±»ä»ç¶æ¯æç¨çãï¼å®ä»ç¶åæ äº Hibernate å¨éåçåæ°æ®è¡ä¸æ¯"
+"å¦ä½è¿è¡âå®ä½âçãï¼ "
+
+#. Tag: title
+#, no-c-format
+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 é½å¯ä»¥å¨å¢å ãå é¤ãä¿®æ¹å
ç´ "
+"ä¸æ¥ææ好çæ§è½ã "
+
+#. 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> æ"
+"ä½æ¶âæ¹åâæææãå次强è°ï¼è¿æ®µè®¨è®ºå¯¹âä¸å¯¹å¤å
³èâ并ä¸éç¨ã "
+
+#. 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âçè¯ä¹å¨å
³ç³»æ¨¡åä¸æ¯æèªç¶çã "
+
+#. 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> çä¸å¯¹å¤çå
³èã对äºè¿äºå
³èï¼æ´æ°æ"
+"ä½å°ä¼å¨å¤å¯¹ä¸çè¿ä¸ç«¯è¿è¡å¤çãå æ¤å¯¹äºæ¤ç±»æ
åµï¼æ éèèå
¶éåçæ´æ°æ§è½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Bags and lists are the most efficient inverse collections"
+msgstr "Bag å list æ¯ååéåç±»ä¸æçæé«ç"
+
+#. 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 ä¸åï¼ãå æ¤å¯¹äºä¸é¢çç¸å代ç æ¥è¯´ï¼é度ä¼å¿«å¾å¤ã "
+
+#. Tag: title
+#, no-c-format
+msgid "One shot delete"
+msgstr "ä¸æ¬¡æ§å é¤ï¼One shot deleteï¼"
+
+#. 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 å°±æ"
+"å®äºã "
+
+#. 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ï¼ãè¿å½ç¶æ¯ä»¤äººæ»¡æçã "
+
+#. 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 个ãåæ两ç§å¤çæ¹"
+"å¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "delete eighteen rows one by one and then insert three rows"
+msgstr "éä¸çå é¤è¿ 18 个æ°æ®ï¼åæ°å¢ä¸ä¸ªï¼"
+
+#. 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"
+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 ä¸è¿ä¹"
+"èªæä¹æ¯å¥½äºï¼å¦åå¯è½ä¼å¼åæå¤çâæ°æ®åºè§¦åå¨âä¹ç±»çé®é¢ãï¼"
+
+#. 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 ""
+"幸è¿çæ¯ï¼ä½ å¯ä»¥å¼ºå¶ä½¿ç¨ç¬¬äºç§çç¥ãä½ éè¦åæ¶åæ¥çæ´ä¸ªéåç±»ï¼è§£é¤å
¶å¼"
+"ç¨ï¼ï¼ç¶ååè¿åä¸ä¸ªæ°çå®ä¾åçéåç±»ï¼åªå
å«éè¦çå
ç´ ãæäºæ¶åè¿æ¯é常æ"
+"ç¨çã "
+
+#. Tag: para
+#, no-c-format
+msgid ""
+"One-shot-delete does not apply to collections mapped <literal>inverse=\"true"
+"\"</literal>."
+msgstr ""
+"æ¾ç¶ï¼ä¸æ¬¡æ§å é¤å¹¶ä¸éç¨äºè¢«æ å°ä¸º <literal>inverse=\"true\"</literal> çé"
+"åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring performance"
+msgstr "çæµæ§è½ï¼Monitoring performanceï¼"
+
+#. 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> æåå
¶ç»è®¡æ°æ®ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Monitoring a SessionFactory"
+msgstr "çæµ SessionFactory"
+
+#. 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>æ°æ®ã"
+
+#. 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ãä¸é¢ç代ç å³æ¯å
¶æ¼ç¤ºä»£ç ï¼ "
+
+#. Tag: para
+#, no-c-format
+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>ï¼"
+
+#. 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>"
+
+#. 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 级å«ï¼å
¶æ»ç»ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Metrics"
+msgstr "æ°æ®è®°å½ï¼Metricsï¼"
+
+#. 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 è¿è¡è®¿"
+"é®ï¼ä¸»è¦å为ä¸ç±»ï¼"
+
+#. 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 çè¿æ¥æ°çï¼"
+
+#. Tag: para
+#, no-c-format
+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."
+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 ç§ã "
+
+#. 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 æ档以æåæ´å¤ä¿¡æ¯ãä¸é¢ç代ç åæ¯ä¸ªç®åçä¾åï¼ "
+
+#. 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 ""
+#~ "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 ""
+#~ "<![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 ""
+#~ "<![CDATA[s = sessions.openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ " \n"
+#~ "User u = (User) s.createQuery(\"from User u where u.name=:userName\")\n"
+#~ " .setString(\"userName\", userName).uniqueResult();\n"
+#~ "Map permissions = u.getPermissions();\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();\n"
+#~ "\n"
+#~ "Integer accessLevel = (Integer) permissions.get(\"accounts\"); // "
+#~ "Error!]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set]]>"
+#~ msgstr ""
+#~ "<![CDATA[<set name=\"permissions\" \n"
+#~ " fetch=\"join\">\n"
+#~ " <key column=\"userId\"/>\n"
+#~ " <one-to-many class=\"Permission\"/>\n"
+#~ "</set]]>"
+
+#~ msgid ""
+#~ "<![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"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "<![CDATA[User user = (User) session.createCriteria(User.class)\n"
+#~ " .setFetchMode(\"permissions\", FetchMode.JOIN)\n"
+#~ " .add( Restrictions.idEq(userId) )\n"
+#~ " .uniqueResult();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Cat\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // instantiate a "
+#~ "proxy (does not hit the db)\n"
+#~ "if ( cat.isDomesticCat() ) { // hit the db to initialize "
+#~ "the proxy\n"
+#~ " DomesticCat dc = (DomesticCat) cat; // Error!\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // instantiate a "
+#~ "proxy (does not hit the db)\n"
+#~ "if ( cat.isDomesticCat() ) { // hit the db to initialize "
+#~ "the proxy\n"
+#~ " DomesticCat dc = (DomesticCat) cat; // Error!\n"
+#~ " ....\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // "
+#~ "instantiate a Cat proxy\n"
+#~ "DomesticCat dc = \n"
+#~ " (DomesticCat) session.load(DomesticCat.class, id); // acquire "
+#~ "new DomesticCat proxy!\n"
+#~ "System.out.println(cat==dc); // false]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(Cat.class, id); // "
+#~ "instantiate a Cat proxy\n"
+#~ "DomesticCat dc = \n"
+#~ " (DomesticCat) session.load(DomesticCat.class, id); // acquire "
+#~ "new DomesticCat proxy!\n"
+#~ "System.out.println(cat==dc); // false]]>"
+
+#~ msgid ""
+#~ "<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0]]>"
+#~ msgstr ""
+#~ "<![CDATA[cat.setWeight(11.0); // hit the db to initialize the proxy\n"
+#~ "System.out.println( dc.getWeight() ); // 11.0]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"CatImpl\" proxy=\"Cat\">\n"
+#~ " ......\n"
+#~ " <subclass name=\"DomesticCatImpl\" proxy=\"DomesticCat\">\n"
+#~ " .....\n"
+#~ " </subclass>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+#~ "Iterator iter = session.createQuery(\"from CatImpl as cat where cat."
+#~ "name='fritz'\").iterate();\n"
+#~ "Cat fritz = (Cat) iter.next();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) session.load(CatImpl.class, catid);\n"
+#~ "Iterator iter = session.createQuery(\"from CatImpl as cat where cat."
+#~ "name='fritz'\").iterate();\n"
+#~ "Cat fritz = (Cat) iter.next();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" )."
+#~ "list().get(0) ).intValue()]]>"
+#~ msgstr ""
+#~ "<![CDATA[( (Integer) s.createFilter( collection, \"select count(*)\" )."
+#~ "list().get(0) ).intValue()]]>"
+
+#~ msgid ""
+#~ "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+#~ "setMaxResults(10).list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[s.createFilter( lazyCollection, \"\").setFirstResult(0)."
+#~ "setMaxResults(10).list();]]>"
+
+#~ msgid "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+#~ msgstr "<![CDATA[<class name=\"Person\" batch-size=\"10\">...</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <set name=\"cats\" batch-size=\"3\">\n"
+#~ " ...\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Document\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
+#~ " <property name=\"summary\" not-null=\"true\" length=\"200\" lazy="
+#~ "\"true\"/>\n"
+#~ " <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true"
+#~ "\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Document\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\" length=\"50\"/>\n"
+#~ " <property name=\"summary\" not-null=\"true\" length=\"200\" lazy="
+#~ "\"true\"/>\n"
+#~ " <property name=\"text\" not-null=\"true\" length=\"2000\" lazy=\"true"
+#~ "\"/>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
+#~ " <taskdef name=\"instrument\" classname=\"org.hibernate.tool."
+#~ "instrument.InstrumentTask\">\n"
+#~ " <classpath path=\"${jar.path}\"/>\n"
+#~ " <classpath path=\"${classes.dir}\"/>\n"
+#~ " <classpath refid=\"lib.class.path\"/>\n"
+#~ " </taskdef>\n"
+#~ "\n"
+#~ " <instrument verbose=\"true\">\n"
+#~ " <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
+#~ " <include name=\"*.class\"/>\n"
+#~ " </fileset>\n"
+#~ " </instrument>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<target name=\"instrument\" depends=\"compile\">\n"
+#~ " <taskdef name=\"instrument\" classname=\"org.hibernate.tool."
+#~ "instrument.InstrumentTask\">\n"
+#~ " <classpath path=\"${jar.path}\"/>\n"
+#~ " <classpath path=\"${classes.dir}\"/>\n"
+#~ " <classpath refid=\"lib.class.path\"/>\n"
+#~ " </taskdef>\n"
+#~ "\n"
+#~ " <instrument verbose=\"true\">\n"
+#~ " <fileset dir=\"${testclasses.dir}/org/hibernate/auction/model\">\n"
+#~ " <include name=\"*.class\"/>\n"
+#~ " </fileset>\n"
+#~ " </instrument>\n"
+#~ "</target>]]>"
+
+#~ msgid "<entry>yes</entry>"
+#~ msgstr "<entry>yes</entry>"
+
+#~ msgid ""
+#~ "<![CDATA[<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<cache \n"
+#~ " usage=\"transactional|read-write|nonstrict-read-write|read-only\"\n"
+#~ " region=\"RegionName\"\n"
+#~ " include=\"all|non-lazy\"\n"
+#~ "/>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Immutable\" mutable=\"false\">\n"
+#~ " <cache usage=\"read-only\"/>\n"
+#~ " ....\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[<class name=\"eg.Cat\" .... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"kittens\" ... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"eg.Cat\" .... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " <set name=\"kittens\" ... >\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " ....\n"
+#~ " </set>\n"
+#~ "</class>]]>"
+
+#~ msgid ""
+#~ "<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\")."
+#~ "scroll(); //a huge result set\n"
+#~ "while ( cats.next() ) {\n"
+#~ " Cat cat = (Cat) cats.get(0);\n"
+#~ " doSomethingWithACat(cat);\n"
+#~ " sess.evict(cat);\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[ScrollableResult cats = sess.createQuery(\"from Cat as cat\")."
+#~ "scroll(); //a huge result set\n"
+#~ "while ( cats.next() ) {\n"
+#~ " Cat cat = (Cat) cats.get(0);\n"
+#~ " doSomethingWithACat(cat);\n"
+#~ " sess.evict(cat);\n"
+#~ "}]]>"
+
+#~ msgid ""
+#~ "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular "
+#~ "Cat\n"
+#~ "sessionFactory.evict(Cat.class); //evict all Cats\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a "
+#~ "particular collection of kittens\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
+#~ "collections]]>"
+#~ msgstr ""
+#~ "<![CDATA[sessionFactory.evict(Cat.class, catId); //evict a particular "
+#~ "Cat\n"
+#~ "sessionFactory.evict(Cat.class); //evict all Cats\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\", catId); //evict a "
+#~ "particular collection of kittens\n"
+#~ "sessionFactory.evictCollection(\"Cat.kittens\"); //evict all kitten "
+#~ "collections]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Map cacheEntries = sessionFactory.getStatistics()\n"
+#~ " .getSecondLevelCacheStatistics(regionName)\n"
+#~ " .getEntries();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true]]>"
+#~ msgstr ""
+#~ "<![CDATA[hibernate.generate_statistics true\n"
+#~ "hibernate.cache.use_structured_entries true]]>"
+
+#~ msgid "<![CDATA[hibernate.cache.use_query_cache true]]>"
+#~ msgstr "<![CDATA[hibernate.cache.use_query_cache true]]>"
+
+#~ msgid ""
+#~ "<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog."
+#~ "blogger = :blogger\")\n"
+#~ " .setEntity(\"blogger\", blogger)\n"
+#~ " .setMaxResults(15)\n"
+#~ " .setCacheable(true)\n"
+#~ " .setCacheRegion(\"frontpages\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[List blogs = sess.createQuery(\"from Blog blog where blog."
+#~ "blogger = :blogger\")\n"
+#~ " .setEntity(\"blogger\", blogger)\n"
+#~ " .setMaxResults(15)\n"
+#~ " .setCacheable(true)\n"
+#~ " .setCacheRegion(\"frontpages\")\n"
+#~ " .list();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c); //no need to fetch the collection!\n"
+#~ "sess.flush();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Parent p = (Parent) sess.load(Parent.class, id);\n"
+#~ "Child c = new Child();\n"
+#~ "c.setParent(p);\n"
+#~ "p.getChildren().add(c); //no need to fetch the collection!\n"
+#~ "sess.flush();]]>"
+
+#~ msgid ""
+#~ "<![CDATA[// MBean service registration for a specific SessionFactory\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "stats.setSessionFactory(sessionFactory); // Bind the stats to a "
+#~ "SessionFactory\n"
+#~ "server.registerMBean(stats, on); // Register the Mbean on the server]]>"
+#~ msgstr ""
+#~ "<![CDATA[// MBean service registration for a specific SessionFactory\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"myFinancialApp\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "stats.setSessionFactory(sessionFactory); // Bind the stats to a "
+#~ "SessionFactory\n"
+#~ "server.registerMBean(stats, on); // Register the Mbean on the server]]>"
+
+#~ msgid ""
+#~ "<![CDATA[// MBean service registration for all SessionFactory's\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"all\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "server.registerMBean(stats, on); // Register the MBean on the server]]>"
+#~ msgstr ""
+#~ "<![CDATA[// MBean service registration for all SessionFactory's\n"
+#~ "Hashtable tb = new Hashtable();\n"
+#~ "tb.put(\"type\", \"statistics\");\n"
+#~ "tb.put(\"sessionFactory\", \"all\");\n"
+#~ "ObjectName on = new ObjectName(\"hibernate\", tb); // MBean object name\n"
+#~ "\n"
+#~ "StatisticsService stats = new StatisticsService(); // MBean "
+#~ "implementation\n"
+#~ "server.registerMBean(stats, on); // Register the MBean on the server]]>"
+
+#~ msgid ""
+#~ "<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics"
+#~ "();\n"
+#~ "\n"
+#~ "double queryCacheHitCount = stats.getQueryCacheHitCount();\n"
+#~ "double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
+#~ "double queryCacheHitRatio =\n"
+#~ " queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
+#~ "\n"
+#~ "log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
+#~ "\n"
+#~ "EntityStatistics entityStats =\n"
+#~ " stats.getEntityStatistics( Cat.class.getName() );\n"
+#~ "long changes =\n"
+#~ " entityStats.getInsertCount()\n"
+#~ " + entityStats.getUpdateCount()\n"
+#~ " + entityStats.getDeleteCount();\n"
+#~ "log.info(Cat.class.getName() + \" changed \" + changes + \"times\" );]]>"
+#~ msgstr ""
+#~ "<![CDATA[Statistics stats = HibernateUtil.sessionFactory.getStatistics"
+#~ "();\n"
+#~ "\n"
+#~ "double queryCacheHitCount = stats.getQueryCacheHitCount();\n"
+#~ "double queryCacheMissCount = stats.getQueryCacheMissCount();\n"
+#~ "double queryCacheHitRatio =\n"
+#~ " queryCacheHitCount / (queryCacheHitCount + queryCacheMissCount);\n"
+#~ "\n"
+#~ "log.info(\"Query Hit ratio:\" + queryCacheHitRatio);\n"
+#~ "\n"
+#~ "EntityStatistics entityStats =\n"
+#~ " stats.getEntityStatistics( Cat.class.getName() );\n"
+#~ "long changes =\n"
+#~ " entityStats.getInsertCount()\n"
+#~ " + entityStats.getUpdateCount()\n"
+#~ " + entityStats.getDeleteCount();\n"
+#~ "log.info(Cat.class.getName() + \" changed \" + changes + \"times\" );]]>"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/persistent_classes.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/persistent_classes.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/persistent_classes.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,992 @@
+# translation of persistent_classes.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: persistent_classes\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 10:00+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Persistent Classes"
+msgstr "æä¹
åç±»ï¼Persistent Classesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Persistent classes are classes in an application that implement the entities of the business problem (e.g. Customer and Order in an E-commerce application). Not all instances of a persistent class are considered to be in the persistent state. For example, an instance can instead be transient or detached."
+msgstr "å¨åºç¨ç¨åºä¸ï¼ç¨æ¥å®ç°ä¸å¡é®é¢å®ä½çï¼å¦ï¼å¨çµååå¡åºç¨ç¨åºä¸ç Customer å Orderï¼ç±»å°±æ¯æä¹
åç±»ãä¸è½è®¤ä¸ºææçæä¹
åç±»çå®ä¾é½æ¯æä¹
çç¶æ - ä¸ä¸ªå®ä¾çç¶æä¹å¯è½æ¯ç¬æ¶çæè±ç®¡çã"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate works best if these classes follow some simple rules, also known as the Plain Old Java Object (POJO) programming model. However, none of these rules are hard requirements. Indeed, Hibernate3 assumes very little about the nature of your persistent objects. You can express a domain model in other ways (using trees of <literal>Map</literal> instances, for example)."
+msgstr "å¦æè¿äºæä¹
åç±»éµå¾ªä¸äºç®åçè§åï¼Hibernate è½å¤å·¥ä½å¾æ´å¥½ï¼è¿äºè§åä¹è¢«ç§°ä½ç®åä¼ ç» Java 对象ï¼POJO:Plain Old Java Objectï¼ç¼ç¨æ¨¡åãä½æ¯è¿äºè§å并ä¸æ¯å¿
éçã å®é
ä¸ï¼Hibernate3 对äºä½ çæä¹
åç±»å ä¹ä¸åä»»ä½è®¾æ³ãä½ å¯ä»¥ç¨å
¶ä»çæ¹æ³æ¥è¡¨è¾¾é¢å模åï¼æ¯å¦ï¼ä½¿ç¨ <literal>Map</literal> å®ä¾çæ åç»æã"
+
+#. Tag: title
+#, no-c-format
+msgid "A simple POJO example"
+msgstr "ä¸ä¸ªç®åç POJO ä¾å"
+
+#. Tag: para
+#, no-c-format
+msgid "Most Java applications require a persistent class representing felines. For example:"
+msgstr "大å¤æ° Java ç¨åºéè¦ç¨ä¸ä¸ªæä¹
åç±»æ¥è¡¨ç¤ºç«ç§å¨ç©ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The four main rules of persistent classes are explored in more detail in the following sections."
+msgstr "å¨åç»çç« èéæ们å°ä»ç»æä¹
æ§ç±»ç 4 个主è¦è§åçæ´å¤ç»èã"
+
+#. Tag: title
+#, no-c-format
+msgid "Implement a no-argument constructor"
+msgstr "å®ç°ä¸ä¸ªé»è®¤çï¼å³æ åæ°çï¼æé æ¹æ³ï¼constructorï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Cat</literal> has a no-argument constructor. All persistent classes must have a default constructor (which can be non-public) so that Hibernate can instantiate them using <literal>Constructor.newInstance()</literal>. It is recommended that you have a default constructor with at least <emphasis>package</emphasis> visibility for runtime proxy generation in Hibernate."
+msgstr "<literal>Cat</literal> æä¸ä¸ªæ åæ°çæé æ¹æ³ãææçæä¹
åç±»é½å¿
é¡»æä¸ä¸ªé»è®¤çæé æ¹æ³ï¼å¯ä»¥ä¸æ¯ public çï¼ï¼è¿æ ·çè¯ Hibernate å°±å¯ä»¥ä½¿ç¨ <literal>Constructor.newInstance(ï¼</literal>æ¥å®ä¾åå®ä»¬ã æ们强ç建议ï¼å¨ Hibernate ä¸ï¼ä¸ºäºè¿è¡æ代çççæï¼æé æ¹æ³è³å°æ¯<emphasis>å
ï¼packageï¼</emphasis>å
å¯è§çã"
+
+#. Tag: title
+#, no-c-format
+msgid "Provide an identifier property (optional)"
+msgstr "æä¾ä¸ä¸ªæ è¯å±æ§ï¼identifier propertyï¼ï¼å¯éï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Cat</literal> has a property called <literal>id</literal>. This property maps to the primary key column of a database table. The property might have been called anything, and its type might have been any primitive type, any primitive \"wrapper\" type, <literal>java.lang.String</literal> or <literal>java.util.Date</literal>. If your legacy database table has composite keys, you can use a user-defined class with properties of these types (see the section on composite identifiers later in the chapter.)"
+msgstr "<literal>Cat</literal> æä¸ä¸ªå±æ§å«å <literal>id</literal>ãè¿ä¸ªå±æ§æ å°æ°æ®åºè¡¨ç主 é®å段ãè¿ä¸ªå±æ§å¯ä»¥å«ä»»ä½ååï¼å
¶ç±»åå¯ä»¥æ¯ä»»ä½çåå§ç±»åãåå§ç±»åçå
è£
ç±»åã <literal>java.lang.String</literal> æè
æ¯ <literal>java.util.Date</literal>ãï¼å¦æä½ çéçæ°æ®åºè¡¨æèå主é®ï¼ä½ çè³å¯ä»¥ç¨ä¸ä¸ªç¨æ·èªå®ä¹çç±»ï¼è¯¥ç±»æ¥æè¿äºç±»åçå±æ§ãåè§åé¢çå
³äºèåæ è¯ç¬¦çç« èãï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The identifier property is strictly optional. You can leave them off and let Hibernate keep track of object identifiers internally. We do not recommend this, however."
+msgstr "æ è¯ç¬¦å±æ§æ¯å¯éçãå¯ä»¥ä¸ç¨ç®¡å®ï¼è®© Hibernate å
é¨æ¥è¿½è¸ªå¯¹è±¡çè¯å«ã ä½æ¯æ们并ä¸æ¨èè¿æ ·åã"
+
+#. Tag: para
+#, no-c-format
+msgid "In fact, some functionality is available only to classes that declare an identifier property:"
+msgstr "å®é
ä¸ï¼ä¸äºåè½åªå¯¹é£äºå£°æäºæ è¯ç¬¦å±æ§ç类起ä½ç¨ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Transitive reattachment for detached objects (cascade update or cascade merge) - see <xref linkend=\"objectstate-transitive\" />"
+msgstr "æ管对象çä¼ ææ§åè¿æ¥ï¼çº§èæ´æ°æ级èå并ï¼- åé
<xref linkend=\"objectstate-transitive\"/>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.saveOrUpdate()</literal>"
+msgstr "<literal>Session.saveOrUpdate()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Session.merge()</literal>"
+msgstr "<literal>Session.merge()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "We recommend that you declare consistently-named identifier properties on persistent classes and that you use a nullable (i.e., non-primitive) type."
+msgstr "æä»¬å»ºè®®ä½ å¯¹æä¹
å类声æå½åä¸è´çæ è¯å±æ§ãæ们è¿å»ºè®®ä½ 使ç¨ä¸ä¸ªå¯ä»¥ä¸ºç©ºï¼ä¹å°±æ¯è¯´ï¼ä¸æ¯åå§ç±»åï¼çç±»åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Prefer non-final classes (optional)"
+msgstr "使ç¨éfinalçç±»ï¼å¯éï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A central feature of Hibernate, <emphasis>proxies</emphasis>, depends upon the persistent class being either non-final, or the implementation of an interface that declares all public methods."
+msgstr "<emphasis>代çï¼proxiesï¼</emphasis>æ¯ Hibernate çä¸ä¸ªéè¦çåè½ï¼å®ä¾èµçæ¡ä»¶æ¯ï¼æä¹
åç±»æè
æ¯é final çï¼æè
æ¯å®ç°äºä¸ä¸ªæææ¹æ³é½å£°æ为 public çæ¥å£ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can persist <literal>final</literal> classes that do not implement an interface with Hibernate. You will not, however, be able to use proxies for lazy association fetching which will ultimately limit your options for performance tuning."
+msgstr "ä½ å¯ä»¥ç¨ Hibernate æä¹
åä¸ä¸ªæ²¡æå®ç°ä»»ä½æ¥å£ç <literal>final</literal> ç±»ï¼ä½æ¯ä½ ä¸è½ä½¿ç¨ä»£çæ¥å»¶è¿å
³èå è½½ï¼è¿ä¼éå¶ä½ è¿è¡æ§è½ä¼åçéæ©ã "
+
+#. Tag: para
+#, no-c-format
+msgid "You should also avoid declaring <literal>public final</literal> methods on the non-final classes. If you want to use a class with a <literal>public final</literal> method, you must explicitly disable proxying by setting <literal>lazy=\"false\"</literal>."
+msgstr "ä½ ä¹åºè¯¥é¿å
å¨é final ç±»ä¸å£°æ <literal>public final</literal> çæ¹æ³ãå¦æä½ æ³ä½¿ç¨ä¸ä¸ªæ <literal>public final</literal> æ¹æ³çç±»ï¼ä½ å¿
é¡»éè¿è®¾ç½® <literal>lazy=\"false\"</literal> æ¥æç¡®å°ç¦ç¨ä»£çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Declare accessors and mutators for persistent fields (optional)"
+msgstr "为æä¹
åå段声æ访é®å¨ï¼accessorsï¼åæ¯å¦å¯åçæ å¿ï¼mutatorsï¼ï¼å¯éï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Cat</literal> declares accessor methods for all its persistent fields. Many other ORM tools directly persist instance variables. It is better to provide an indirection between the relational schema and internal data structures of the class. By default, Hibernate persists JavaBeans style properties and recognizes method names of the form <literal>getFoo</literal>, <literal>isFoo</literal> and <literal>setFoo</literal>. If required, you can switch to direct field access for particular properties."
+msgstr "<literal>Cat</literal> 为å®çæææä¹
åå段声æäºè®¿é®æ¹æ³ãå¾å¤å
¶ä» ORM å·¥å
·ç´æ¥å¯¹å®ä¾åéè¿è¡æä¹
åãæ们ç¸ä¿¡ï¼å¨å
³ç³»æ°æ®åº schema åç±»çå
é¨æ°æ®ç»æä¹é´å¼å
¥é´æ¥å±ï¼åæ为\"éç´æ¥\"ï¼indirectionï¼ä¼å¥½ä¸äºãé»è®¤æ
åµä¸ Hibernate æä¹
å JavaBeans é£æ ¼çå±æ§ï¼è®¤å¯ <literal>getFoo</literal>ï¼<literal>isFoo</literal> å <literal>setFoo</literal> è¿ç§å½¢å¼çæ¹æ³åãå¦æéè¦ï¼ä½ å¯ä»¥å¯¹æäºç¹å®å±æ§å®è¡ç´æ¥å段访é®ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Properties need <emphasis>not</emphasis> be declared public - Hibernate can persist a property with a default, <literal>protected</literal> or <literal>private</literal> get / set pair."
+msgstr "å±æ§<emphasis>ä¸éè¦</emphasis>è¦å£°æ为 public çãHibernate å¯ä»¥æä¹
åä¸ä¸ªæ <literal>default</literal>ã<literal>protected</literal> æ <literal>private</literal> ç get/set æ¹æ³å¯¹çå±æ§è¿è¡æä¹
åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing inheritance"
+msgstr "å®ç°ç»§æ¿ï¼Inheritanceï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A subclass must also observe the first and second rules. It inherits its identifier property from the superclass, <literal>Cat</literal>. For example:"
+msgstr "åç±»ä¹å¿
é¡»éµå®ç¬¬ä¸æ¡å第äºæ¡è§åãå®ä»è¶
ç±» <literal>Cat</literal> 继æ¿äºæ è¯å±æ§ãä¾å¦ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Implementing <literal>equals()</literal> and <literal>hashCode()</literal>"
+msgstr "å®ç° <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You have to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods if you:"
+msgstr "å¦æä½ æå¦ä¸éæ±ï¼ä½ å¿
é¡»éè½½ <literal>equals()</literal> å <literal>hashCode()</literal> æ¹æ³ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "intend to put instances of persistent classes in a <literal>Set</literal> (the recommended way to represent many-valued associations); <emphasis>and</emphasis>"
+msgstr "æ³ææä¹
ç±»çå®ä¾æ¾å
¥ <literal>Set</literal> ä¸ï¼å½è¡¨ç¤ºå¤å¼å
³èæ¶ï¼æ¨èè¿ä¹åï¼ï¼<emphasis>èä¸</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "intend to use reattachment of detached instances"
+msgstr "æ³éç¨è±ç®¡å®ä¾"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate guarantees equivalence of persistent identity (database row) and Java identity only inside a particular session scope. When you mix instances retrieved in different sessions, you must implement <literal>equals()</literal> and <literal>hashCode()</literal> if you wish to have meaningful semantics for <literal>Set</literal>s."
+msgstr "Hibernate ä¿è¯ï¼ä»
å¨ç¹å®ä¼è¯èå´å
ï¼æä¹
åæ è¯ï¼æ°æ®åºçè¡ï¼å Java æ è¯æ¯çä»·çãå æ¤ï¼ä¸æ¦æ们混åäºä»ä¸åä¼è¯ä¸è·åçå®ä¾ï¼å¦æå¸æ <literal>Set</literal> ææç¡®çè¯ä¹ï¼å°±å¿
é¡»å®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The most obvious way is to implement <literal>equals()</literal>/<literal>hashCode()</literal> by comparing the identifier value of both objects. If the value is the same, both must be the same database row, because they are equal. If both are added to a <literal>Set</literal>, you will only have one element in the <literal>Set</literal>). Unfortunately, you cannot use that approach with generated identifiers. Hibernate will only assign identifier values to objects that are persistent; a newly created instance will not have any identifier value. Furthermore, if an instance is unsaved and currently in a <literal>Set</literal>, saving it will assign an identifier value to the object. If <literal>equals()</literal> and <literal>hashCode()</literal> are based on the identifier value, the hash code would change, breaking the contract of the <literal>Set</literal>. See the Hibernate website for a full discussion of this problem. This is not a Hibernate issue, but normal Ja!
va semantics of object identity and equality."
+msgstr "å®ç° <literal>equals()</literal>/<literal>hashCode()</literal> ææ¾èæè§çæ¹æ³æ¯æ¯è¾ä¸¤ä¸ªå¯¹è±¡ æ è¯ç¬¦çå¼ãå¦æå¼ç¸åï¼å两个对象对åºäºæ°æ®åºçåä¸è¡ï¼å æ¤å®ä»¬æ¯ç¸ççï¼å¦æé½è¢«æ·»å å° <literal>Set</literal>ï¼åå¨ <literal>Set</literal> ä¸åªæä¸ä¸ªå
ç´ ï¼ãä¸å¹¸çæ¯ï¼å¯¹çæçæ è¯ä¸è½ 使ç¨è¿ç§æ¹æ³ãHibernate ä»
对é£äºæä¹
å对象èµæ è¯å¼ï¼ä¸ä¸ªæ°å建çå®ä¾å°ä¸ä¼æä»»ä½æ è¯å¼ãæ¤å¤ï¼ å¦æä¸ä¸ªå®ä¾æ²¡æ被ä¿åï¼unsavedï¼ï¼å¹¶ä¸å®å½åæ£å¨ä¸ä¸ª <literal>Set</literal> ä¸ï¼ä¿åå®å°ä¼ç»è¿ä¸ªå¯¹è±¡èµä¸ä¸ªæ è¯å¼ãå¦æ <literal>equals()</literal> å <literal>hashCode()</literal> æ¯åºäºæ è¯å¼ å®ç°çï¼åå
¶åå¸ç å°ä¼æ¹åï¼è¿è¿åäº <literal>Set</literal> çå¥çº¦ãå»ºè®®å» Hibernate çç«ç¹é
读å
³äºè¿ä¸ªé®é¢çå
¨é¨è®¨è®ºã注æï¼è¿ä¸æ¯ Hibernate çé®é¢ï¼èæ¯ä¸è¬ç Java 对象æ !
è¯å Java 对象çä»·çè¯ä¹é®é¢ã "
+
+#. Tag: para
+#, no-c-format
+msgid "It is recommended that you implement <literal>equals()</literal> and <literal>hashCode()</literal> using <emphasis>Business key equality</emphasis>. Business key equality means that the <literal>equals()</literal> method compares only the properties that form the business key. It is a key that would identify our instance in the real world (a <emphasis>natural</emphasis> candidate key):"
+msgstr "æ们建议使ç¨<emphasis>ä¸å¡é®å¼ç¸çï¼Business key equalityï¼</emphasis>æ¥å®ç° <literal>equals()</literal> å <literal>hashCode()</literal>ãä¸å¡é®å¼ç¸ççæææ¯ï¼<literal>equals()</literal> æ¹æ³ä»
ä»
æ¯è¾å½¢æä¸å¡é®çå±æ§ï¼å®è½å¨ç°å®ä¸çéæ è¯æ们çå®ä¾ï¼æ¯ä¸ä¸ª<emphasis>èªç¶ç</emphasis>åéç ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "A business key does not have to be as solid as a database primary key candidate (see <xref linkend=\"transactions-basics-identity\" />). Immutable or unique properties are usually good candidates for a business key."
+msgstr "注æï¼ä¸å¡é®ä¸å¿
åæ°æ®åºç主é®é£æ ·åºå®ä¸åï¼åè§ <xref linkend=\"transactions-basics-identity\"/>ï¼ã对ä¸å¡é®èè¨ï¼ä¸å¯åæå¯ä¸çå±æ§æ¯ä¸éçéæ©ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic models"
+msgstr "å¨æ模åï¼Dynamic modelsï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>The following features are currently considered experimental and may change in the near future.</emphasis>"
+msgstr "<emphasis>注æï¼ä»¥ä¸ç¹æ§å¨å½åå¤äºè¯éªé¶æ®µï¼å°æ¥å¯è½ä¼æååã</emphasis> "
+
+#. Tag: para
+#, no-c-format
+msgid "Persistent entities do not necessarily have to be represented as POJO classes or as JavaBean objects at runtime. Hibernate also supports dynamic models (using <literal>Map</literal>s of <literal>Map</literal>s at runtime) and the representation of entities as DOM4J trees. With this approach, you do not write persistent classes, only mapping files."
+msgstr "è¿è¡æçæä¹
åå®ä½æ²¡æå¿
è¦ä¸å®è¡¨ç¤ºä¸ºå POJO ç±»æ JavaBean 对象é£æ ·çå½¢å¼ãHibernate ä¹æ¯æå¨æ模å ï¼å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç <literal>Map</literal>ï¼å象 DOM4J çæ 模åé£æ ·çå®ä½è¡¨ç¤ºã使ç¨è¿ç§æ¹æ³ï¼ä½ ä¸ç¨åæä¹
åç±»ï¼åªåæ å°æ件就è¡äºã "
+
+#. Tag: para
+#, no-c-format
+msgid "By default, Hibernate works in normal POJO mode. You can set a default entity representation mode for a particular <literal>SessionFactory</literal> using the <literal>default_entity_mode</literal> configuration option (see <xref linkend=\"configuration-optional-properties\" />)."
+msgstr "Hibernate é»è®¤å·¥ä½å¨æ®é POJO 模å¼ãä½ å¯ä»¥ä½¿ç¨é
ç½®é项 <literal>default_entity_mode</literal>ï¼ å¯¹ç¹å®ç <literal>SessionFactory</literal>ï¼è®¾ç½®ä¸ä¸ªé»è®¤çå®ä½è¡¨ç¤ºæ¨¡å¼ãï¼åè§ <xref linkend=\"configuration-optional-properties\"/>ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following examples demonstrate the representation using <literal>Map</literal>s. First, in the mapping file an <literal>entity-name</literal> has to be declared instead of, or in addition to, a class name:"
+msgstr "ä¸é¢æ¯ç¨ <literal>Map</literal> æ¥è¡¨ç¤ºçä¾åãé¦å
ï¼å¨æ å°æ件ä¸ï¼è¦å£°æ <literal>entity-name</literal> æ¥ä»£æ¿ä¸ä¸ªç±»åï¼æä½ä¸ºä¸ç§éå±ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Even though associations are declared using target class names, the target type of associations can also be a dynamic entity instead of a POJO."
+msgstr "注æï¼è½ç¶æ¯ç¨ç®æ ç±»åæ¥å£°æå
³èçï¼ä½æ¯å
³èçç®æ ç±»åé¤äºæ¯ POJO ä¹å¤ï¼ä¹å¯ä»¥æ¯ä¸ä¸ªå¨æçå®ä½ã "
+
+#. Tag: para
+#, no-c-format
+msgid "After setting the default entity mode to <literal>dynamic-map</literal> for the <literal>SessionFactory</literal>, you can, at runtime, work with <literal>Map</literal>s of <literal>Map</literal>s:"
+msgstr "å¨ä½¿ç¨ <literal>dynamic-map</literal> 为 <literal>SessionFactory</literal> 设置äºé»è®¤çå®ä½æ¨¡å¼ä¹åï¼å¯ä»¥å¨è¿è¡æä½¿ç¨ <literal>Map</literal> ç <literal>Map</literal>ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "One of the main advantages of dynamic mapping is quick turnaround time for prototyping, without the need for entity class implementation. However, you lose compile-time type checking and will likely deal with many exceptions at runtime. As a result of the Hibernate mapping, the database schema can easily be normalized and sound, allowing to add a proper domain model implementation on top later on."
+msgstr "å¨ææ å°ç好å¤æ¯ï¼ååæéè¦çæ¶é´å°äºï¼å 为ååä¸éè¦å®ç°å®ä½ç±»ãç¶èï¼ä½ æ æ³è¿è¡ç¼è¯æçç±»åæ£æ¥ï¼å¹¶å¯è½ç±æ¤ä¼å¤çå¾å¤çè¿è¡æå¼å¸¸ã幸äºæäº Hibernate æ å°ï¼å®ä½¿å¾æ°æ®åºç schema è½å®¹æçè§æ ¼åååçåï¼å¹¶å
许ç¨åå¨æ¤ä¹ä¸æ·»å åéçé¢å模åå®ç°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Entity representation modes can also be set on a per <literal>Session</literal> basis:"
+msgstr "å®ä½è¡¨ç¤ºæ¨¡å¼ä¹è½å¨æ¯ä¸ª <literal>Session</literal> çåºç¡ä¸è®¾ç½®ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Please note that the call to <literal>getSession()</literal> using an <literal>EntityMode</literal> is on the <literal>Session</literal> API, not the <literal>SessionFactory</literal>. That way, the new <literal>Session</literal> shares the underlying JDBC connection, transaction, and other context information. This means you do not have to call <literal>flush()</literal> and <literal>close()</literal> on the secondary <literal>Session</literal>, and also leave the transaction and connection handling to the primary unit of work."
+msgstr "请注æï¼ç¨ <literal>EntityMode</literal> è°ç¨ <literal>getSession()</literal> æ¯å¨ <literal>Session</literal> ç API ä¸ï¼èä¸æ¯ <literal>SessionFactory</literal>ã è¿æ ·ï¼æ°ç <literal>Session</literal> å
±äº«åºå±ç JDBC è¿æ¥ï¼äºå¡ï¼åå
¶ä»çä¸ä¸æä¿¡æ¯ãè¿æå³çï¼ä½ ä¸éè¦å¨ç¬¬äºä¸ª <literal>Session</literal> ä¸è°ç¨ <literal>flush()</literal> å <literal>close()</literal>ï¼åæ ·çï¼æäºå¡åè¿æ¥çå¤ç交ç»åæ¥çå·¥ä½åå
ã "
+
+#. Tag: para
+#, no-c-format
+msgid "More information about the XML representation capabilities can be found in <xref linkend=\"xml\" />."
+msgstr "å
³äº XML 表示è½åçæ´å¤ä¿¡æ¯å¯ä»¥å¨ <xref linkend=\"xml\"/> ä¸æ¾å°ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Tuplizers"
+msgstr "å
ç»çææ å°ï¼Tuplizersï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are responsible for managing a particular representation of a piece of data given that representation's <literal>org.hibernate.EntityMode</literal>. If a given piece of data is thought of as a data structure, then a tuplizer is the thing that knows how to create such a data structure and how to extract values from and inject values into such a data structure. For example, for the POJO entity mode, the corresponding tuplizer knows how create the POJO through its constructor. It also knows how to access the POJO properties using the defined property accessors."
+msgstr "<literal>org.hibernate.tuple.Tuplizer</literal>ï¼ä»¥åå
¶åæ¥å£ï¼è´è´£æ ¹æ®ç»å®ç<literal>org.hibernate.EntityMode</literal>ï¼æ¥å¤ç°çææ°æ®ãå¦æç»å®ççææ°æ®è¢«è®¤ä¸ºå
¶æ¯ä¸ç§æ°æ®ç»æï¼\"tuplizer\" å°±æ¯ä¸ä¸ªç¥éå¦ä½å建è¿æ ·çæ°æ®ç»æï¼ä»¥åå¦ä½ç»è¿ä¸ªæ°æ®ç»æèµå¼çä¸è¥¿ãæ¯å¦è¯´ï¼å¯¹äº POJO è¿ç§ Entity Modeï¼å¯¹åºç tuplizer ç¥ééè¿å
¶æé æ¹æ³æ¥å建ä¸ä¸ª POJOï¼åéè¿å
¶å±æ§è®¿é®å¨æ¥è®¿é® POJO å±æ§ãæ两大类é«å± Tuplizerï¼åå«æ¯<literal>org.hibernate.tuple.entity.EntityTuplizer</literal> å <literal>org.hibernate.tuple.entity.ComponentTuplizer</literal> æ¥å£ã<literal>EntityTuplizer</literal> è´è´£ç®¡çä¸é¢æå°çå®ä½çå¥çº¦ï¼è <literal>ComponentTuplizer</literal> åæ¯é对ç»ä»¶çã "
+
+#. Tag: para
+#, no-c-format
+msgid "There are two high-level types of Tuplizers, represented by the <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for managing the above mentioned contracts in regards to entities, while <literal>ComponentTuplizer</literal>s do the same for components."
+msgstr "æ两ç§é«å±ç±»åç Tuplizerï¼åå«ç± <literal>org.hibernate.tuple.entity.EntityTuplizer</literal> å <literal>org.hibernate.tuple.component.ComponentTuplizer</literal> æ¥å£ä»£è¡¨ã<literal>EntityTuplizer</literal> è´è´£ç®¡çåå®ä½ç¸å
³çä¸è¿°å约ï¼è<literal>ComponentTuplizer</literal> åè´è´£ç»ä»¶ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Users can also plug in their own tuplizers. Perhaps you require that a <literal>java.util.Map</literal> implementation other than <literal>java.util.HashMap</literal> be used while in the dynamic-map entity-mode. Or perhaps you need to define a different proxy generation strategy than the one used by default. Both would be achieved by defining a custom tuplizer implementation. Tuplizer definitions are attached to the entity or component mapping they are meant to manage. Going back to the example of our customer entity:"
+msgstr "ç¨æ·ä¹å¯ä»¥æå
¥å
¶èªå®ä¹ç tuplizerãæ许æ¨éè¦ä¸ç§ä¸åäº dynamic-map entity-mode ä¸ä½¿ç¨ç <literal>java.util.HashMap</literal> ç <literal>java.util.Map</literal> å®ç°ï¼æ许æ¨éè¦ä¸é»è®¤çç¥ä¸åç代ççæçç¥ï¼proxy generation strategyï¼ãéè¿èªå®ä¹ tuplizer å®ç°ï¼è¿ä¸¤ä¸ªç®æ æ¨é½å¯ä»¥è¾¾å°ãTuplizer å®ä¹è¢«éå å°å®ä»¬ææ管çç entity æè
component æ å°ä¸ãåå°æ们ç customer entity ä¾åï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "EntityNameResolvers"
+msgstr "EntityNameResolvers"
+
+#. Tag: para
+#, no-c-format
+msgid "The <interfacename>org.hibernate.EntityNameResolver</interfacename> interface is a contract for resolving the entity name of a given entity instance. The interface defines a single method <methodname>resolveEntityName</methodname> which is passed the entity instance and is expected to return the appropriate entity name (null is allowed and would indicate that the resolver does not know how to resolve the entity name of the given entity instance). Generally speaking, an <interfacename>org.hibernate.EntityNameResolver</interfacename> is going to be most useful in the case of dynamic models. One example might be using proxied interfaces as your domain model. The hibernate test suite has an example of this exact style of usage under the <package>org.hibernate.test.dynamicentity.tuplizer2</package>. Here is some of the code from that package for illustration."
+msgstr "<interfacename>org.hibernate.EntityNameResolver</interfacename> æ¥å£æ¯ä¸ä¸ªè§£æç»å®å®ä½å®ä¾çå®ä½å称çå约ãè¿ä¸ªæ¥å£å®ä¹äºä¸ä¸ªåä¸çæ¹æ³ <methodname>resolveEntityName</methodname>ï¼å®ä¼ éå®ä½å®ä¾å¹¶é¢æè¿ååéçå®ä½å称ï¼null ææ解æå¨ä¸ç¥éå¦ä½è§£æç»å®å®ä½å®ä¾çå®ä½å称ï¼ãä¸è¬è¯´æ¥ï¼<interfacename>org.hibernate.EntityNameResolver</interfacename> å¨å¨æ模åéæ为æç¨ãå
¶ä¸çä¾åæ¯æ代çæ¥å£ç¨ä½ä½ çå模åãHibernate Test Suite å¨ <package>org.hibernate.test.dynamicentity.tuplizer2</package> ä¸æå
·æå®å
¨ç¸åé£æ ¼çä¾åãä¸é¢æ¯è¯¥å
éçä¸äºä»£ç ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "In order to register an <interfacename>org.hibernate.EntityNameResolver</interfacename> users must either:"
+msgstr "为äºæ³¨å <interfacename>org.hibernate.EntityNameResolver</interfacename>ï¼ç¨æ·å¿
é¡»ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Implement a custom <link linkend=\"persistent-classes-tuplizers\">Tuplizer</link>, implementing the <methodname>getEntityNameResolvers</methodname> method."
+msgstr "å®ç°èªå®ä¹ç <link linkend=\"persistent-classes-tuplizers\">Tuplizer</link> 并å®ç° <methodname>getEntityNameResolvers</methodname> æ¹æ³ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Register it with the <classname>org.hibernate.impl.SessionFactoryImpl</classname> (which is the implementation class for <interfacename>org.hibernate.SessionFactory</interfacename>) using the <methodname>registerEntityNameResolver</methodname> method."
+msgstr "ç¨ <methodname>registerEntityNameResolver</methodname> æ¹æ³æ³¨åå° <classname>org.hibernate.impl.SessionFactoryImpl</classname>ï¼å®æ¯ <interfacename>org.hibernate.SessionFactory</interfacename> çå®ç°ç±»ï¼ã"
+
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ "\n"
+#~ " private Date birthdate;\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ " private int litterId;\n"
+#~ "\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens = new HashSet();\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setLitterId(int id) {\n"
+#~ " this.litterId = id;\n"
+#~ " }\n"
+#~ " public int getLitterId() {\n"
+#~ " return litterId;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " \n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kitten.setMother(this);\n"
+#~ " kitten.setLitterId( kittens.size() ); \n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "import java.util.Set;\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Cat {\n"
+#~ " private Long id; // identifier\n"
+#~ "\n"
+#~ " private Date birthdate;\n"
+#~ " private Color color;\n"
+#~ " private char sex;\n"
+#~ " private float weight;\n"
+#~ " private int litterId;\n"
+#~ "\n"
+#~ " private Cat mother;\n"
+#~ " private Set kittens = new HashSet();\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id=id;\n"
+#~ " }\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setBirthdate(Date date) {\n"
+#~ " birthdate = date;\n"
+#~ " }\n"
+#~ " public Date getBirthdate() {\n"
+#~ " return birthdate;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setWeight(float weight) {\n"
+#~ " this.weight = weight;\n"
+#~ " }\n"
+#~ " public float getWeight() {\n"
+#~ " return weight;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Color getColor() {\n"
+#~ " return color;\n"
+#~ " }\n"
+#~ " void setColor(Color color) {\n"
+#~ " this.color = color;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setSex(char sex) {\n"
+#~ " this.sex=sex;\n"
+#~ " }\n"
+#~ " public char getSex() {\n"
+#~ " return sex;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setLitterId(int id) {\n"
+#~ " this.litterId = id;\n"
+#~ " }\n"
+#~ " public int getLitterId() {\n"
+#~ " return litterId;\n"
+#~ " }\n"
+#~ "\n"
+#~ " void setMother(Cat mother) {\n"
+#~ " this.mother = mother;\n"
+#~ " }\n"
+#~ " public Cat getMother() {\n"
+#~ " return mother;\n"
+#~ " }\n"
+#~ " void setKittens(Set kittens) {\n"
+#~ " this.kittens = kittens;\n"
+#~ " }\n"
+#~ " public Set getKittens() {\n"
+#~ " return kittens;\n"
+#~ " }\n"
+#~ " \n"
+#~ " // addKitten not needed by Hibernate\n"
+#~ " public void addKitten(Cat kitten) {\n"
+#~ " kitten.setMother(this);\n"
+#~ " kitten.setLitterId( kittens.size() ); \n"
+#~ " kittens.add(kitten);\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "public class DomesticCat extends Cat {\n"
+#~ " private String name;\n"
+#~ "\n"
+#~ " public String getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " protected void setName(String name) {\n"
+#~ " this.name=name;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[package eg;\n"
+#~ "\n"
+#~ "public class DomesticCat extends Cat {\n"
+#~ " private String name;\n"
+#~ "\n"
+#~ " public String getName() {\n"
+#~ " return name;\n"
+#~ " }\n"
+#~ " protected void setName(String name) {\n"
+#~ " this.name=name;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[public class Cat {\n"
+#~ "\n"
+#~ " ...\n"
+#~ " public boolean equals(Object other) {\n"
+#~ " if (this == other) return true;\n"
+#~ " if ( !(other instanceof Cat) ) return false;\n"
+#~ "\n"
+#~ " final Cat cat = (Cat) other;\n"
+#~ "\n"
+#~ " if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
+#~ " if ( !cat.getMother().equals( getMother() ) ) return false;\n"
+#~ "\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " int result;\n"
+#~ " result = getMother().hashCode();\n"
+#~ " result = 29 * result + getLitterId();\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[public class Cat {\n"
+#~ "\n"
+#~ " ...\n"
+#~ " public boolean equals(Object other) {\n"
+#~ " if (this == other) return true;\n"
+#~ " if ( !(other instanceof Cat) ) return false;\n"
+#~ "\n"
+#~ " final Cat cat = (Cat) other;\n"
+#~ "\n"
+#~ " if ( !cat.getLitterId().equals( getLitterId() ) ) return false;\n"
+#~ " if ( !cat.getMother().equals( getMother() ) ) return false;\n"
+#~ "\n"
+#~ " return true;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " int result;\n"
+#~ " result = getMother().hashCode();\n"
+#~ " result = 29 * result + getLitterId();\n"
+#~ " return result;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"id\"\n"
+#~ " type=\"long\"\n"
+#~ " column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <property name=\"address\"\n"
+#~ " column=\"ADDRESS\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"organization\"\n"
+#~ " column=\"ORGANIZATION_ID\"\n"
+#~ " class=\"Organization\"/>\n"
+#~ "\n"
+#~ " <bag name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " lazy=\"false\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"CUSTOMER_ID\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ " \n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ "\n"
+#~ " <id name=\"id\"\n"
+#~ " type=\"long\"\n"
+#~ " column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <property name=\"name\"\n"
+#~ " column=\"NAME\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <property name=\"address\"\n"
+#~ " column=\"ADDRESS\"\n"
+#~ " type=\"string\"/>\n"
+#~ "\n"
+#~ " <many-to-one name=\"organization\"\n"
+#~ " column=\"ORGANIZATION_ID\"\n"
+#~ " class=\"Organization\"/>\n"
+#~ "\n"
+#~ " <bag name=\"orders\"\n"
+#~ " inverse=\"true\"\n"
+#~ " lazy=\"false\"\n"
+#~ " cascade=\"all\">\n"
+#~ " <key column=\"CUSTOMER_ID\"/>\n"
+#~ " <one-to-many class=\"Order\"/>\n"
+#~ " </bag>\n"
+#~ "\n"
+#~ " </class>\n"
+#~ " \n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[Session s = openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ "Session s = openSession();\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "\n"
+#~ "// Create an organization\n"
+#~ "Map foobar = new HashMap();\n"
+#~ "foobar.put(\"name\", \"Foobar Inc.\");\n"
+#~ "\n"
+#~ "// Link both\n"
+#~ "david.put(\"organization\", foobar);\n"
+#~ "\n"
+#~ "// Save both\n"
+#~ "s.save(\"Customer\", david);\n"
+#~ "s.save(\"Organization\", foobar);\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session s = openSession();\n"
+#~ "Transaction tx = s.beginTransaction();\n"
+#~ "Session s = openSession();\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "\n"
+#~ "// Create an organization\n"
+#~ "Map foobar = new HashMap();\n"
+#~ "foobar.put(\"name\", \"Foobar Inc.\");\n"
+#~ "\n"
+#~ "// Link both\n"
+#~ "david.put(\"organization\", foobar);\n"
+#~ "\n"
+#~ "// Save both\n"
+#~ "s.save(\"Customer\", david);\n"
+#~ "s.save(\"Organization\", foobar);\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "s.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode."
+#~ "MAP);\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "dynamicSession.save(\"Customer\", david);\n"
+#~ "...\n"
+#~ "dynamicSession.flush();\n"
+#~ "dynamicSession.close()\n"
+#~ "...\n"
+#~ "// Continue on pojoSession\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode."
+#~ "MAP);\n"
+#~ "\n"
+#~ "// Create a customer\n"
+#~ "Map david = new HashMap();\n"
+#~ "david.put(\"name\", \"David\");\n"
+#~ "dynamicSession.save(\"Customer\", david);\n"
+#~ "...\n"
+#~ "dynamicSession.flush();\n"
+#~ "dynamicSession.close()\n"
+#~ "...\n"
+#~ "// Continue on pojoSession\n"
+#~ "]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ " <!--\n"
+#~ " Override the dynamic-map entity-mode\n"
+#~ " tuplizer for the customer entity\n"
+#~ " -->\n"
+#~ " <tuplizer entity-mode=\"dynamic-map\"\n"
+#~ " class=\"CustomMapTuplizerImpl\"/>\n"
+#~ "\n"
+#~ " <id name=\"id\" type=\"long\" column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <!-- other properties -->\n"
+#~ " ...\n"
+#~ " </class>\n"
+#~ "</hibernate-mapping>\n"
+#~ "\n"
+#~ "\n"
+#~ "public class CustomMapTuplizerImpl\n"
+#~ " extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
+#~ " // override the buildInstantiator() method to plug in our custom "
+#~ "map...\n"
+#~ " protected final Instantiator buildInstantiator(\n"
+#~ " org.hibernate.mapping.PersistentClass mappingInfo) {\n"
+#~ " return new CustomMapInstantiator( mappingInfo );\n"
+#~ " }\n"
+#~ "\n"
+#~ " private static final class CustomMapInstantiator\n"
+#~ " extends org.hibernate.tuple.DynamicMapInstantitor {\n"
+#~ " // override the generateMap() method to return our custom map...\n"
+#~ " protected final Map generateMap() {\n"
+#~ " return new CustomMap();\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping>\n"
+#~ " <class entity-name=\"Customer\">\n"
+#~ " <!--\n"
+#~ " Override the dynamic-map entity-mode\n"
+#~ " tuplizer for the customer entity\n"
+#~ " -->\n"
+#~ " <tuplizer entity-mode=\"dynamic-map\"\n"
+#~ " class=\"CustomMapTuplizerImpl\"/>\n"
+#~ "\n"
+#~ " <id name=\"id\" type=\"long\" column=\"ID\">\n"
+#~ " <generator class=\"sequence\"/>\n"
+#~ " </id>\n"
+#~ "\n"
+#~ " <!-- other properties -->\n"
+#~ " ...\n"
+#~ " </class>\n"
+#~ "</hibernate-mapping>\n"
+#~ "\n"
+#~ "\n"
+#~ "public class CustomMapTuplizerImpl\n"
+#~ " extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"
+#~ " // override the buildInstantiator() method to plug in our custom "
+#~ "map...\n"
+#~ " protected final Instantiator buildInstantiator(\n"
+#~ " org.hibernate.mapping.PersistentClass mappingInfo) {\n"
+#~ " return new CustomMapInstantiator( mappingInfo );\n"
+#~ " }\n"
+#~ "\n"
+#~ " private static final class CustomMapInstantiator\n"
+#~ " extends org.hibernate.tuple.DynamicMapInstantitor {\n"
+#~ " // override the generateMap() method to return our custom map...\n"
+#~ " protected final Map generateMap() {\n"
+#~ " return new CustomMap();\n"
+#~ " }\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "/**\n"
+#~ " * A very trivial JDK Proxy InvocationHandler implementation where we "
+#~ "proxy an interface as\n"
+#~ " * the domain model and simply store persistent state in an internal "
+#~ "Map. This is an extremely\n"
+#~ " * trivial example meant only for illustration.\n"
+#~ " */\n"
+#~ "public final class DataProxyHandler implements InvocationHandler {\n"
+#~ " private String entityName;\n"
+#~ " private HashMap data = new HashMap();\n"
+#~ "\n"
+#~ " public DataProxyHandler(String entityName, Serializable id) {\n"
+#~ " this.entityName = entityName;\n"
+#~ " data.put( \"Id\", id );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Object invoke(Object proxy, Method method, Object[] args) "
+#~ "throws Throwable {\n"
+#~ " String methodName = method.getName();\n"
+#~ " if ( methodName.startsWith( \"set\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " data.put( propertyName, args[0] );\n"
+#~ " }\n"
+#~ " else if ( methodName.startsWith( \"get\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " return data.get( propertyName );\n"
+#~ " }\n"
+#~ " else if ( \"toString\".equals( methodName ) ) {\n"
+#~ " return entityName + \"#\" + data.get( \"Id\" );\n"
+#~ " }\n"
+#~ " else if ( \"hashCode\".equals( methodName ) ) {\n"
+#~ " return new Integer( this.hashCode() );\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getEntityName() {\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public HashMap getData() {\n"
+#~ " return data;\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " *\n"
+#~ " */\n"
+#~ "public class ProxyHelper {\n"
+#~ " public static String extractEntityName(Object object) {\n"
+#~ " // Our custom java.lang.reflect.Proxy instances actually bundle\n"
+#~ " // their appropriate entity name, so we simply extract it from "
+#~ "there\n"
+#~ " // if this represents one of our proxies; otherwise, we return "
+#~ "null\n"
+#~ " if ( Proxy.isProxyClass( object.getClass() ) ) {\n"
+#~ " InvocationHandler handler = Proxy.getInvocationHandler"
+#~ "( object );\n"
+#~ " if ( DataProxyHandler.class.isAssignableFrom( handler.getClass"
+#~ "() ) ) {\n"
+#~ " DataProxyHandler myHandler = ( DataProxyHandler ) "
+#~ "handler;\n"
+#~ " return myHandler.getEntityName();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " // various other utility methods ....\n"
+#~ "\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * The EntityNameResolver implementation.\n"
+#~ " * IMPL NOTE : An EntityNameResolver really defines a strategy for how "
+#~ "entity names should be\n"
+#~ " * resolved. Since this particular impl can handle resolution for all of "
+#~ "our entities we want to\n"
+#~ " * take advantage of the fact that SessionFactoryImpl keeps these in a "
+#~ "Set so that we only ever\n"
+#~ " * have one instance registered. Why? Well, when it comes time to "
+#~ "resolve an entity name,\n"
+#~ " * Hibernate must iterate over all the registered resolvers. So keeping "
+#~ "that number down\n"
+#~ " * helps that process be as speedy as possible. Hence the equals and "
+#~ "hashCode impls\n"
+#~ " */\n"
+#~ "public class MyEntityNameResolver implements EntityNameResolver {\n"
+#~ " public static final MyEntityNameResolver INSTANCE = new "
+#~ "MyEntityNameResolver();\n"
+#~ "\n"
+#~ " public String resolveEntityName(Object entity) {\n"
+#~ " return ProxyHelper.extractEntityName( entity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean equals(Object obj) {\n"
+#~ " return getClass().equals( obj.getClass() );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " return getClass().hashCode();\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "public class MyEntityTuplizer extends PojoEntityTuplizer {\n"
+#~ " public MyEntityTuplizer(EntityMetamodel entityMetamodel, "
+#~ "PersistentClass mappedEntity) {\n"
+#~ " super( entityMetamodel, mappedEntity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public EntityNameResolver[] getEntityNameResolvers() {\n"
+#~ " return new EntityNameResolver[] { MyEntityNameResolver."
+#~ "INSTANCE };\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String determineConcreteSubclassEntityName(Object "
+#~ "entityInstance, SessionFactoryImplementor factory) {\n"
+#~ " String entityName = ProxyHelper.extractEntityName"
+#~ "( entityInstance );\n"
+#~ " if ( entityName == null ) {\n"
+#~ " entityName = super.determineConcreteSubclassEntityName"
+#~ "( entityInstance, factory );\n"
+#~ " }\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " ...\n"
+#~ "}"
+#~ msgstr ""
+#~ "/**\n"
+#~ " * A very trivial JDK Proxy InvocationHandler implementation where we "
+#~ "proxy an interface as\n"
+#~ " * the domain model and simply store persistent state in an internal "
+#~ "Map. This is an extremely\n"
+#~ " * trivial example meant only for illustration.\n"
+#~ " */\n"
+#~ "public final class DataProxyHandler implements InvocationHandler {\n"
+#~ " private String entityName;\n"
+#~ " private HashMap data = new HashMap();\n"
+#~ "\n"
+#~ " public DataProxyHandler(String entityName, Serializable id) {\n"
+#~ " this.entityName = entityName;\n"
+#~ " data.put( \"Id\", id );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Object invoke(Object proxy, Method method, Object[] args) "
+#~ "throws Throwable {\n"
+#~ " String methodName = method.getName();\n"
+#~ " if ( methodName.startsWith( \"set\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " data.put( propertyName, args[0] );\n"
+#~ " }\n"
+#~ " else if ( methodName.startsWith( \"get\" ) ) {\n"
+#~ " String propertyName = methodName.substring( 3 );\n"
+#~ " return data.get( propertyName );\n"
+#~ " }\n"
+#~ " else if ( \"toString\".equals( methodName ) ) {\n"
+#~ " return entityName + \"#\" + data.get( \"Id\" );\n"
+#~ " }\n"
+#~ " else if ( \"hashCode\".equals( methodName ) ) {\n"
+#~ " return new Integer( this.hashCode() );\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getEntityName() {\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public HashMap getData() {\n"
+#~ " return data;\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " *\n"
+#~ " */\n"
+#~ "public class ProxyHelper {\n"
+#~ " public static String extractEntityName(Object object) {\n"
+#~ " // Our custom java.lang.reflect.Proxy instances actually bundle\n"
+#~ " // their appropriate entity name, so we simply extract it from "
+#~ "there\n"
+#~ " // if this represents one of our proxies; otherwise, we return "
+#~ "null\n"
+#~ " if ( Proxy.isProxyClass( object.getClass() ) ) {\n"
+#~ " InvocationHandler handler = Proxy.getInvocationHandler"
+#~ "( object );\n"
+#~ " if ( DataProxyHandler.class.isAssignableFrom( handler.getClass"
+#~ "() ) ) {\n"
+#~ " DataProxyHandler myHandler = ( DataProxyHandler ) "
+#~ "handler;\n"
+#~ " return myHandler.getEntityName();\n"
+#~ " }\n"
+#~ " }\n"
+#~ " return null;\n"
+#~ " }\n"
+#~ "\n"
+#~ " // various other utility methods ....\n"
+#~ "\n"
+#~ "}\n"
+#~ "\n"
+#~ "/**\n"
+#~ " * The EntityNameResolver implementation.\n"
+#~ " * IMPL NOTE : An EntityNameResolver really defines a strategy for how "
+#~ "entity names should be\n"
+#~ " * resolved. Since this particular impl can handle resolution for all of "
+#~ "our entities we want to\n"
+#~ " * take advantage of the fact that SessionFactoryImpl keeps these in a "
+#~ "Set so that we only ever\n"
+#~ " * have one instance registered. Why? Well, when it comes time to "
+#~ "resolve an entity name,\n"
+#~ " * Hibernate must iterate over all the registered resolvers. So keeping "
+#~ "that number down\n"
+#~ " * helps that process be as speedy as possible. Hence the equals and "
+#~ "hashCode impls\n"
+#~ " */\n"
+#~ "public class MyEntityNameResolver implements EntityNameResolver {\n"
+#~ " public static final MyEntityNameResolver INSTANCE = new "
+#~ "MyEntityNameResolver();\n"
+#~ "\n"
+#~ " public String resolveEntityName(Object entity) {\n"
+#~ " return ProxyHelper.extractEntityName( entity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public boolean equals(Object obj) {\n"
+#~ " return getClass().equals( obj.getClass() );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public int hashCode() {\n"
+#~ " return getClass().hashCode();\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "public class MyEntityTuplizer extends PojoEntityTuplizer {\n"
+#~ " public MyEntityTuplizer(EntityMetamodel entityMetamodel, "
+#~ "PersistentClass mappedEntity) {\n"
+#~ " super( entityMetamodel, mappedEntity );\n"
+#~ " }\n"
+#~ "\n"
+#~ " public EntityNameResolver[] getEntityNameResolvers() {\n"
+#~ " return new EntityNameResolver[] { MyEntityNameResolver."
+#~ "INSTANCE };\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String determineConcreteSubclassEntityName(Object "
+#~ "entityInstance, SessionFactoryImplementor factory) {\n"
+#~ " String entityName = ProxyHelper.extractEntityName"
+#~ "( entityInstance );\n"
+#~ " if ( entityName == null ) {\n"
+#~ " entityName = super.determineConcreteSubclassEntityName"
+#~ "( entityInstance, factory );\n"
+#~ " }\n"
+#~ " return entityName;\n"
+#~ " }\n"
+#~ "\n"
+#~ " ...\n"
+#~ "}"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/portability.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/portability.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/portability.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,334 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-16 10:10+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#: portability.xml:31
+#, no-c-format
+msgid "Database Portability Considerations"
+msgstr "æ°æ®åºç§»æ¤æ§èé"
+
+#. Tag: title
+#: portability.xml:34
+#, no-c-format
+msgid "Portability Basics"
+msgstr "移æ¤æ§åºç¡"
+
+#. Tag: para
+#: portability.xml:36
+#, 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 å¯å¸®å©ä½ è¿è¡å¤ç§æ°æ®åºèæ éä¿®æ¹ä½ ç代ç ï¼çæ³æ
åµä¸çè³ä¸ç¨ä¿®æ¹"
+"æ å°å
æ°æ®ã"
+
+#. Tag: title
+#: portability.xml:47
+#, no-c-format
+msgid "Dialect"
+msgstr "Dialect"
+
+#. Tag: para
+#: portability.xml:49
+#, 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 æç»äºç¨äºè®¸å¤æ常ç¨çæ°æ®åºçæ¹è¨ãå¦æä½ åç°èªå·±ä½¿ç¨çæ°æ®åºä¸å¨"
+"å
¶ä¸ï¼ç¼åèªå®ä¹çæ¹è¨ä¹ä¸æ¯å¾å°é¾çäºæ
ã"
+
+#. Tag: title
+#: portability.xml:60
+#, no-c-format
+msgid "Dialect resolution"
+msgstr "æ¹è¨ç使ç¨"
+
+#. Tag: para
+#: portability.xml:62
+#, 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 æ¹è¨æè
å®ä¹èªå·±è®¾ç½®è¿"
+"个å¼çæ¹æ³ã"
+
+#. Tag: para
+#: portability.xml:69
+#, 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 å·²ç¥çæ°æ®åºä¸æ æ³è¿è¡é
ç½®åè¦çã"
+
+#. Tag: para
+#: portability.xml:77
+#, fuzzy, no-c-format
+msgid ""
+"Starting with version 3.3, Hibernate has a fare more powerful way to "
+"automatically determine which dialect to should be used by relying on a "
+"series of delegates which implement the <interfacename>org.hibernate.dialect."
+"resolver.DialectResolver</interfacename> which defines only a single method:"
+"<programlisting role=\"JAVA\"><![CDATA[public Dialect resolveDialect"
+"(DatabaseMetaData metaData) throws JDBCConnectionException]]></"
+"programlisting>. The basic contract here is that if the resolver "
+"'understands' the given database metadata then it returns the corresponding "
+"Dialect; if not it returns null and the process continues to the next "
+"resolver. The signature also identifies <exceptionname>org.hibernate."
+"exception.JDBCConnectionException</exceptionname> as possibly being thrown. "
+"A JDBCConnectionException here is interpreted to imply a \"non transient"
+"\" (aka non-recoverable) connection problem and is used to indicate an "
+"immediate stop to resolution attempts. All other exceptions result in a "
+"warning and continuing on to the next resolver."
+msgstr ""
+"ä»çæ¬ 3.3 å¼å§ï¼Hibernate æäºæ´ä¸ºå¼ºå¤§çèªå¨å³å®åºè¯¥ä½¿ç¨åªä¸ªæ¹è¨çæ¹æ³ï¼è¿æ ¹"
+"æ®ä¸ç³»åå®ç° <interfacename>org.hibernate.dialect.resolver.DialectResolver</"
+"interfacename> æ¥å£ç代çï¼å®ä»¬åªå®ä¹ä¸ä¸ªæ¹æ³ï¼<programlisting role=\"JAVA"
+"\">public Dialect resolveDialect(DatabaseMetaData metaData) throws "
+"JDBCConnectionException</programlisting>ãè¿éçåºæ¬å约æ¯å¦æ解æè
"
+"ï¼resolverï¼âç解âç»ç¹æ°æ®åºçå
æ°æ®å¹¶è¿å对åºçæ¹è¨ï¼å¦åè¿å null 并使ç¨ä¸"
+"ä¸ä¸ªè§£æè
ãè¿ä¸ªç¾åä¹æå®å¯è½æåºçå¼å¸¸ <exceptionname>org.hibernate."
+"exception.JDBCConnectionException</exceptionname>ãè¿éç "
+"JDBCConnectionException 被认为æ¯âéç¬æ¶çâï¼ä¹å°±æ¯ä¸å¯æ¢å¤çï¼è¿æ¥é®é¢ä¸æ示"
+"ç«å³ç»æ¢è§£æãææå
¶ä»çå¼å¸¸é½å¯¼è´è¦åååºå¹¶ä½¿ç¨ä¸ä¸ä¸ªè§£æè
ã\""
+
+#. Tag: para
+#: portability.xml:90
+#, 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>ï¼ã"
+
+#. Tag: title
+#: portability.xml:103
+#, no-c-format
+msgid "Identifier generation"
+msgstr "æ è¯ç¬¦ççæ"
+
+#. Tag: para
+#: portability.xml:105
+#, fuzzy, no-c-format
+msgid ""
+"When considering portability between databases, another important decision "
+"is selecting the identifier generation stratagy you want to use. Originally "
+"Hibernate provided the <emphasis>native</emphasis> generator for this "
+"purpose, which was intended to select between a <emphasis>sequence</"
+"emphasis>, <emphasis>identity</emphasis>, or <emphasis>table</emphasis> "
+"strategy depending on the capability of the underlying database. However, an "
+"insidious implication of this approach comes about when targtetting some "
+"databases which support <emphasis>identity</emphasis> generation and some "
+"which do not. <emphasis>identity</emphasis> generation relies on the SQL "
+"definition of an IDENTITY (or auto-increment) column to manage the "
+"identifier value; it is what is known as a post-insert generation strategy "
+"becauase the insert must actually happen before we can know the identifier "
+"value. Because Hibernate relies on this identifier value to uniquely "
+"reference entities within a persistence context it must then issue the "
+"insert immediately when the users requests the entitiy be associated with "
+"the session (like via save() e.g.) regardless of current transactional "
+"semantics. <note> <para> Hibernate was changed slightly once the implication "
+"of this was better understood so that the insert is delayed in cases where "
+"that is feasible. </para> </note> The underlying issue is that the actual "
+"semanctics of the application itself changes in these cases."
+msgstr ""
+"å½èèæ°æ®åºç移æ¤æ§æ¶ï¼å¦å¤ä¸ä¸ªéè¦çèéæ¯éæ©æ è¯ç¬¦çæçç¥ãHibernate å"
+"å
æä¾ç <emphasis>native</emphasis> çæå¨çç®çæ¯æ ¹æ®åºå±æ°æ®åºçè½åå¨ "
+"<emphasis>sequence</emphasis>ã<emphasis>identity</emphasis> æ "
+"<emphasis>table</emphasis> çç¥é´è¿è¡éæ©ãç¶èï¼è¿ä¸ªæ¹æ³ä¸ä¸ªæ½å¨çé®é¢æ¯æäº"
+"æ°æ®åºæ¯æ<emphasis>æ è¯ç¬¦ï¼identityï¼</emphasis>çæèæäºåä¸æ¯æã"
+"<emphasis>æ è¯ç¬¦ï¼identityï¼</emphasis> çæä¾èµäºç®¡çæ è¯ç¬¦å¼ç IDENTITY"
+"ï¼æ auto-incrementï¼å段ç SQL å®ä¹ãå®ä¹æ为 post-insert çæçç¥ï¼å 为 "
+"insert å¿
é¡»å¨ç¥éæ è¯ç¬¦å¼åæè½å®é
åçãå 为 Hibernate ä¾èµäºè¿ä¸ªæ è¯ç¬¦å¼æ¥"
+"å¯ä¸å°å¼ç¨æä¹
æ§ä¸ä¸æéçå®ä½ï¼å½ç¨æ·è¯·æ±åä¼è¯ç¸å
³èçå®ä½æ¶ï¼å¦éè¿ save"
+"()ï¼ï¼å®å¿
é¡»ç«å³æ§è¡ insert è¯å¥èä¸ç®¡å½åçäºå¡æ§è¯ä¹ã"
+
+#. Tag: para
+#: portability.xml:130
+#, no-c-format
+msgid ""
+"Starting with version 3.2.3, Hibernate comes with a set of <ulink url="
+"\"http://in.relation.to/2082.lace\">enhanced</ulink> identifier generators "
+"targetting portability in a much different way. <note> <para> There are "
+"specifically 2 bundled <emphasis>enhanced</emphasis>generators: "
+"<itemizedlist> <listitem> <para> <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> </para> </listitem> <listitem> <para> "
+"<classname>org.hibernate.id.enhanced.TableGenerator</classname> </para> </"
+"listitem> </itemizedlist> </para> </note> The idea behind these generators "
+"is to port the actual semantics of the identifer value generation to the "
+"different databases. For example, the <classname>org.hibernate.id.enhanced."
+"SequenceStyleGenerator</classname> mimics the behavior of a sequence on "
+"databases which do not support sequences by using a table."
+msgstr ""
+
+#. Tag: title
+#: portability.xml:159
+#, no-c-format
+msgid "Database functions"
+msgstr "æ°æ®åºå½æ°"
+
+#. Tag: para
+#: portability.xml:162
+#, no-c-format
+msgid ""
+"This is an area in Hibernate in need of improvement. In terms of portability "
+"concerns, this function handling currently works pretty well from HQL; "
+"however, it is quite lacking in all other aspects."
+msgstr ""
+"è¿æ¯ Hibernate éè¦æé«çä¸ä¸ªé¢åãä»å¯ç§»æ¤æ§æ¥è¯´ï¼è¿ä¸ªåè½å¯ä»¥å¾å¥½å°å¤ç "
+"HQL çå
容ï¼ä½å¨å
¶ä»æ¹é¢å°±æææ¬ ç¼ºã"
+
+#. Tag: para
+#: portability.xml:169
+#, no-c-format
+msgid ""
+"SQL functions can be referenced in many ways by users. However, not all "
+"databases support the same set of functions. Hibernate, provides a means of "
+"mapping a <emphasis>logical</emphasis> function name to a delegate which "
+"knows how to render that particular function, perhaps even using a totally "
+"different physical function call."
+msgstr ""
+"ç¨æ·å¯ä»¥ä»¥å¤ç§æ¹å¼å¼ç¨ SQL å½æ°ãç¶èï¼ä¸æ¯ææçæ°æ®åºé½æ¯æç¸åçå½æ°éã"
+"Hibernate æä¾äºä¸ç§æ å°<emphasis>é»è¾</emphasis>å½æ°åå°ä»£ççæ¹æ³ï¼è¿ä¸ªä»£ç"
+"ç¥éå¦ä½è§£æç¹å®çå½æ°ï¼çè³å¯è½ä½¿ç¨å®å
¨ä¸åçç©çå½æ°è°ç¨ã "
+
+#. Tag: para
+#: portability.xml:175
+#, 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> ç±»è¿è¡å¤ççï¼å®çç®çæ¯å
许ç¨æ·æä¾èªå®ä¹ç"
+"å½æ°å®ä¹èæ éæä¾èªå®ä¹çæ¹è¨ãè¿ç§ç¹æ®çè¡ä¸ºç®åè¿æªå
¨é¨å¼åå®æ¯ã"
+
+#. Tag: para
+#: portability.xml:182
+#, 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 è¯å«ã"
+
+#. Tag: title
+#: portability.xml:192
+#, no-c-format
+msgid "Type mappings"
+msgstr "ç±»åæ å°"
+
+#. Tag: para
+#: portability.xml:194
+#, no-c-format
+msgid "This section scheduled for completion at a later date..."
+msgstr "æ¬èå
容ä»æªå®æ..."
+
+#~ msgid ""
+#~ "Hibernate was changed slightly once the implication of this was better "
+#~ "understood so that the insert is delayed in cases where that is feasible."
+#~ msgstr "Hibernate å·²ç»è¿è¡äºè½»å¾®æ¹è¿ï¼æ以å¨å¯è¡æ¶è¿ç§æå
¥ä¼è¢«å»¶è¿ã"
+
+#~ msgid ""
+#~ "The underlying issue is that the actual semanctics of the application "
+#~ "itself changes in these cases."
+#~ msgstr "åºå±çé®é¢æ¯è¿äºä¾åéåºç¨ç¨åºèªèº«çå®é
模å¼çæ¹åã"
+
+#~ 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 ""
+#~ "There are specifically 2 bundled <emphasis>enhanced</emphasis>generators:"
+#~ msgstr "ç¹å«æ¯ä¸¤ä¸ªæç»ç <emphasis>enhanced</emphasis> çæå¨ï¼"
+
+#~ msgid ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+#~ msgstr ""
+#~ "<classname>org.hibernate.id.enhanced.SequenceStyleGenerator</classname>"
+
+#~ msgid "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+#~ msgstr "<classname>org.hibernate.id.enhanced.TableGenerator</classname>"
+
+#~ 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 ""
+#~ "This is a new area in Hibernate and as such it is not as mature as the "
+#~ "overall Hibernate experience."
+#~ msgstr "è¿æ¯ Hibernate çä¸ä¸ªæ°çé¢åï¼ææ¶è¿ä¸å¦ Hibernate æ»ä½é£ä¹æçã"
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/preface.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/preface.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/preface.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,96 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 10:12+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Preface"
+msgstr "åè¨"
+
+#. Tag: para
+#, no-c-format
+msgid "Working with object-oriented software and a relational database can be cumbersome and time consuming in today's enterprise environments. Hibernate is an Object/Relational Mapping tool for Java environments. The term Object/Relational Mapping (ORM) refers to the technique of mapping a data representation from an object model to a relational data model with a SQL-based schema."
+msgstr "å¨ä»æ¥çä¼ä¸ç¯å¢ä¸ï¼æé¢å对象ç软件åå
³ç³»åæ°æ®åºä¸èµ·ä½¿ç¨å¯è½æ¯ç¸å½éº»ç¦å浪费æ¶é´çãHibernate æ¯ä¸ä¸ªé¢å Java ç¯å¢ç对象/å
³ç³»åæ°æ®åºæ å°å·¥å
·ã对象/å
³ç³»åæ°æ®åºæ å°ï¼object/relational mappingï¼ORMï¼è¿ä¸ªæ¯è¯è¡¨ç¤ºä¸ç§ææ¯ï¼ç¨æ¥æ对象模å表示ç对象æ å°å°åºäº SQL çå
³ç³»æ¨¡åæ°æ®ç»æä¸å»ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate not only takes care of the mapping from Java classes to database tables (and from Java data types to SQL data types), but also provides data query and retrieval facilities. It can also significantly reduce development time otherwise spent with manual data handling in SQL and JDBC."
+msgstr "Hibernate ä¸ä»
管ç Java ç±»å°æ°æ®åºè¡¨çæ å°ï¼å
æ¬ Java æ°æ®ç±»åå° SQL æ°æ®ç±»åçæ å°ï¼ï¼è¿æä¾æ°æ®æ¥è¯¢åè·åæ°æ®çæ¹æ³ï¼å¯ä»¥å¤§å¹
度åå°å¼åæ¶å¯¹äººå·¥ä½¿ç¨ SQL å JDBC å¤çæ°æ®çæ¶é´ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate's goal is to relieve the developer from 95 percent of common data persistence related programming tasks. Hibernate may not be the best solution for data-centric applications that only use stored-procedures to implement the business logic in the database, it is most useful with object-oriented domain models and business logic in the Java-based middle-tier. However, Hibernate can certainly help you to remove or encapsulate vendor-specific SQL code and will help with the common task of result set translation from a tabular representation to a graph of objects."
+msgstr "Hibernate çç®æ æ¯å¯¹äºå¼åè
é常çæ°æ®æä¹
åç¸å
³çç¼ç¨ä»»å¡ï¼è§£æ¾å
¶ä¸ç 95%ã对äºä»¥æ°æ®ä¸ºä¸å¿çç¨åºæ¥è¯´ï¼å®ä»¬å¾å¾åªå¨æ°æ®åºä¸ä½¿ç¨åå¨è¿ç¨æ¥å®ç°åä¸é»è¾ï¼Hibernate å¯è½ä¸æ¯æ好ç解å³æ¹æ¡ï¼å¯¹äºé£äºå¨åºäº Java çä¸é´å±åºç¨ä¸ï¼å®ä»¬å®ç°é¢å对象çä¸å¡æ¨¡åååä¸é»è¾çåºç¨ï¼Hibernate æ¯ææç¨çãä¸ç®¡ææ ·ï¼Hibernate ä¸å®å¯ä»¥å¸®å©ä½ æ¶é¤æè
å
è£
é£äºé对ç¹å®ååç SQL 代ç ï¼èä¸å¸®å©ä½ ç»æéä»è¡¨æ ¼å¼ç表示形å¼è½¬æ¢å°ä¸ç³»åç对象ä¸å»ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If you are new to Hibernate and Object/Relational Mapping or even Java, please follow these steps:"
+msgstr "å¦æä½ å¯¹ Hibernate å对象/å
³ç³»åæ°æ®åºæ å°è¿æ¯ä¸ªæ°æï¼çè³å¯¹ Java ä¹ä¸çæï¼è¯·æç
§ä¸é¢çæ¥éª¤æ¥å¦ä¹ ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Read <xref linkend=\"tutorial\" /> for a tutorial with step-by-step instructions. The source code for the tutorial is included in the distribution in the <literal>doc/reference/tutorial/</literal> directory."
+msgstr "é
读 <xref linkend=\"tutorial\"/>ï¼è¿æ¯ä¸ç¯å
å«è¯¦ç»çéæ¥ç¥éçæåãæ¬æåçæºä»£ç å
å«å¨åè¡å
éï¼ä½ å¯ä»¥å¨ <literal>doc/reference/tutorial/</literal> ç®å½ä¸æ¾å°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Read <xref linkend=\"architecture\" /> to understand the environments where Hibernate can be used."
+msgstr "é
读 <xref linkend=\"architecture\"/> æ¥ç解 Hibernate å¯ä»¥ä½¿ç¨çç¯å¢ã"
+
+#. Tag: para
+#, no-c-format
+msgid "View the <literal>eg/</literal> directory in the Hibernate distribution. It contains a simple standalone application. Copy your JDBC driver to the <literal>lib/</literal> directory and edit <literal>etc/hibernate.properties</literal>, specifying correct values for your database. From a command prompt in the distribution directory, type <literal>ant eg</literal> (using Ant), or under Windows, type <literal>build eg</literal>."
+msgstr "æ¥ç Hibernate åè¡å
ä¸ç <literal>eg/</literal> ç®å½ï¼éé¢æ个ä¸ç®åçç¬ç«è¿è¡çç¨åºãæä½ ç JDBC 驱å¨å¤å¶å° <literal>lib/</literal> ç®å½å¹¶ä¿®æ¹ä¸ä¸ <literal>etc/hibernate.properties</literal>ï¼æå®æ°æ®åºçä¿¡æ¯ãç¶åè¿å
¥å½ä»¤è¡ï¼åæ¢å°åè¡å
çç®å½ï¼è¾å
¥ <literal>ant eg</literal>ï¼ä½¿ç¨ Antï¼ï¼æè
å¨ Windows ç³»ç»ä¸ä½¿ç¨ <literal>build eg</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Use this reference documentation as your primary source of information. Consider reading <biblioref linkend=\"biblio-JPwH\"></biblioref> if you need more help with application design, or if you prefer a step-by-step tutorial. Also visit <ulink url=\"http://caveatemptor.hibernate.org\" /> and download the example application from <biblioref linkend=\"biblio-JPwH\"></biblioref>."
+msgstr "æè¿ä»½ææ¡£ä½ä¸ºä½ å¦ä¹ ç主è¦ä¿¡æ¯æ¥æºãå¦æä½ éè¦åºç¨ç¨åºè®¾è®¡æ¹é¢ç帮å©æè
ä½ å¸ææä¸ä¸ªæé¨å°±ççæåï¼ä½ å¯ä»¥èèé
读 <biblioref linkend=\"biblio-JPwH\"></biblioref> ãä½ ä¹å¯ä»¥è®¿é® <ulink url=\"http://caveatemptor.hibernate.org\" /> å¹¶ä» <biblioref linkend=\"biblio-JPwH\"></biblioref> ä¸è½½ç¤ºä¾ç¨åºã"
+
+#. Tag: para
+#, no-c-format
+msgid "FAQs are answered on the Hibernate website."
+msgstr "å¨ Hibernate ç½ç«ä¸å¯ä»¥æ¾å°é®é¢å解çï¼FAQï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Links to third party demos, examples, and tutorials are maintained on the Hibernate website."
+msgstr "å¨ Hibernate ç½ç«ä¸è¿æ第ä¸æ¹çæ¼ç¤ºã示ä¾åæç¨çé¾æ¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The Community Area on the Hibernate website is a good resource for design patterns and various integration solutions (Tomcat, JBoss AS, Struts, EJB, etc.)."
+msgstr "Hibernate ç½ç«ç社åºæ¯è®¨è®ºå
³äºè®¾è®¡æ¨¡å¼ä»¥åå¾å¤æ´åæ¹æ¡ï¼TomcatãJBoss ASãStrutsãEJB çï¼ç好å°æ¹ã"
+
+#. Tag: para
+#, no-c-format
+msgid "If you have questions, use the user forum linked on the Hibernate website. We also provide a JIRA issue tracking system for bug reports and feature requests. If you are interested in the development of Hibernate, join the developer mailing list. If you are interested in translating this documentation into your language, contact us on the developer mailing list."
+msgstr "å¦æä½ æä»»ä½é®é¢ï¼è¯·ä½¿ç¨ Hibernate ç½ç«ä¸é¾æ¥çç¨æ·è®ºåãæ们ä¹æä¾ä¸ä¸ª JIRA é®é¢è¿½è¸ªç³»ç»ï¼æ¥æé bug æ¥ååæ°çåè½è¯·æ±ãå¦æ对å¼å Hibernate æå
´è¶£ï¼è¯·å å
¥å¼åè
çé®ä»¶å表ãå¦æä½ å¯¹ç¿»è¯æ¬ææ¡£æå
´è¶£ï¼è¯·éè¿å¼åè
çé®ä»¶å表æ¥èç³»æ们ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Commercial development support, production support, and training for Hibernate is available through JBoss Inc. (see http://www.hibernate.org/SupportTraining/). Hibernate is a Professional Open Source project and a critical component of the JBoss Enterprise Middleware System (JEMS) suite of products."
+msgstr "åä¸å¼åã产åæ¯æå Hibernate å¹è®å¯ä»¥éè¿ JBoss Inc. è·å¾ï¼è¯·æ¥é
ï¼ http://www.hibernate.org/SupportTraining/ï¼ãHibernate æ¯ä¸ä¸ªä¸ä¸çå¼æºé¡¹ç®ï¼ä¹æ¯ JBoss ä¼ä¸çº§ä¸é´ä»¶ç³»ç»ï¼JBoss Enterprise Middleware Systemï¼JEMSï¼éçä¸ä¸ªæ ¸å¿ç»ä»¶ã "
+
+#~ msgid "Feedback"
+#~ msgstr "åé¦"
+#~ 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> æ¥æ¥åé误ææ¹è¿æ¬ææ¡£ã"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_criteria.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_criteria.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_criteria.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,753 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 09:53+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria Queries"
+msgstr "æ¡ä»¶æ¥è¯¢ï¼Criteria Queriesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate features an intuitive, extensible criteria query API."
+msgstr "å
·æä¸ä¸ªç´è§çãå¯æ©å±çæ¡ä»¶æ¥è¯¢ API æ¯ Hibernate çç¹è²ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Creating a <literal>Criteria</literal> instance"
+msgstr "å建ä¸ä¸ª <literal>Criteria</literal> å®ä¾"
+
+#. 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> å®ä¾çå·¥åã"
+
+#. Tag: title
+#, no-c-format
+msgid "Narrowing the result set"
+msgstr "éå¶ç»æéå
容"
+
+#. 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> ç±»åçå·¥åæ¹æ³ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Restrictions can be grouped logically."
+msgstr "约æå¯ä»¥æé»è¾åç»ã "
+
+#. 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ã "
+
+#. Tag: para
+#, no-c-format
+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>ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Ordering the results"
+msgstr "ç»æéæåº"
+
+#. 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> æ¥ä¸ºæ¥è¯¢ç»ææåºã "
+
+#. Tag: title
+#, no-c-format
+msgid "Associations"
+msgstr "å
³è"
+
+#. Tag: para
+#, no-c-format
+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> éåä¸çå
ç´ ã "
+
+#. Tag: para
+#, no-c-format
+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> å®ä¾ãï¼"
+
+#. 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>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Additionally you may manipulate the result set using a left outer join:"
+msgstr "æ¤å¤ï¼ä½ å¯ä»¥ç¨ä¸ä¸ª left outer join æ¥æ纵ç»æéï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This will return all of the <literal>Cat</literal>s with a mate whose name starts with \"good\" ordered by their mate's age, and all cats who do not have a mate. This is useful when there is a need to order or limit in the database prior to returning complex/large result sets, and removes many instances where multiple queries would have to be performed and the results unioned by java in memory."
+msgstr "è¿å°è¿åé
å¶çåå以 \"good\" èµ·å§çææ <literal>Cat</literal>ï¼å¹¶æ ¹æ®å
¶é
å¶çå¹´é¾è¿è¡æåºãå½éè¦å¨è¿åå¤æ/大åç»æéåè¿è¡æåºæéå¶ãå¨å¤ä¸ªæ¥è¯¢å¿
é¡»æ§è¡ä¸ç»æéè¿ Java å¨å
åéç»åä»èå é¤è®¸å¤å®ä¾æ¶ï¼è¿å¾æç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Without this feature, first all of the cats without a mate would need to be loaded in one query."
+msgstr "å¦æ没æè¿ä¸ªåè½ï¼é£ä¹æ²¡æé
å¶çç«å°±éè¦å¨ä¸æ¬¡æ¥è¯¢éè¿è¡å è½½ã"
+
+#. Tag: para
+#, no-c-format
+msgid "A second query would need to retreive the cats with mates who's name started with \"good\" sorted by the mates age."
+msgstr "第äºä¸ªæ¥è¯¢å°éè¦è·åé
å¶å以 \"good\" èµ·å§å¹¶æç
§é
å¶å¹´é¾æåºçç«ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Thirdly, in memory; the lists would need to be joined manually."
+msgstr "第ä¸ç¹ï¼å表éè¦å¨å
åä¸è¿è¡æå·¥èåã"
+
+#. Tag: title
+#, no-c-format
+msgid "Dynamic association fetching"
+msgstr "å¨æå
³èæå"
+
+#. Tag: para
+#, no-c-format
+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\" /> å¯ä»¥è·å¾æ´å¤ä¿¡æ¯ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Example queries"
+msgstr "æ¥è¯¢ç¤ºä¾"
+
+#. 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> ç±»å
è®¸ä½ éè¿ä¸ä¸ªç»å®å®ä¾æ建ä¸ä¸ªæ¡ä»¶æ¥è¯¢ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Version properties, identifiers and associations are ignored. By default, null valued properties are excluded."
+msgstr "çæ¬å±æ§ãæ è¯ç¬¦åå
³è被忽ç¥ãé»è®¤æ
åµä¸å¼ä¸º null çå±æ§å°è¢«æé¤ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can adjust how the <literal>Example</literal> is applied."
+msgstr "ä½ å¯ä»¥èªè¡è°æ´ <literal>Example</literal> 使ä¹æ´å®ç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even use examples to place criteria upon associated objects."
+msgstr "ä½ çè³å¯ä»¥ä½¿ç¨ examples å¨å
³è对象ä¸æ¾ç½®æ¡ä»¶ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Projections, aggregation and grouping"
+msgstr "æå½±ï¼Projectionsï¼ãèåï¼aggregationï¼ååç»ï¼groupingï¼"
+
+#. 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> åºç¨æå½±å°ä¸ä¸ªæ¥è¯¢ã "
+
+#. 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> åå¥ä¸ã"
+
+#. 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 "ä½ å¯ä»¥éæ©æä¸ä¸ªå«åææ´¾ç»ä¸ä¸ªæå½±ï¼è¿æ ·å¯ä»¥ä½¿æå½±å¼è¢«çº¦æææåºæå¼ç¨ãä¸é¢æ¯ä¸¤ç§ä¸åçå®ç°æ¹å¼ï¼ "
+
+#. 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> å®ä¾ä¸ãç®èè¨ä¹ï¼å½ä½ æ·»å ä¸ä¸ªæå½±å°ä¸ä¸ªæå½±å表ä¸æ¶ä½ å¯ä»¥ä¸ºå®æå®ä¸ä¸ªå«åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also use <literal>Property.forName()</literal> to express projections:"
+msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨ <literal>Property.forName()</literal> æ¥è¡¨ç¤ºæå½±ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Detached queries and subqueries"
+msgstr "离线ï¼detachedï¼æ¥è¯¢ååæ¥è¯¢"
+
+#. 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> æ¥æ§è¡å®ã "
+
+#. 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> è·å¾ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Correlated subqueries are also possible:"
+msgstr "çè³ç¸äºå
³èçåæ¥è¯¢ä¹æ¯æå¯è½çï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Queries by natural identifier"
+msgstr "æ ¹æ®èªç¶æ è¯æ¥è¯¢ï¼Queries by natural identifierï¼"
+
+#. 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 对è¿ç§ç¨ä¾æä¾äºç¹å«è§çº¦ã "
+
+#. Tag: para
+#, no-c-format
+msgid "First, map the natural key of your entity using <literal><natural-id></literal> and enable use of the second-level cache."
+msgstr "é¦å
ï¼ä½ åºè¯¥å¯¹ä½ ç entity ä½¿ç¨ <literal><natural-id></literal> æ¥æ å°èªç¶é®ï¼ç¶åæå¼ç¬¬äºçº§ç¼åã "
+
+#. 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 并ä¸éç¨ã "
+
+#. 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> æ¥ä½¿ç¨æ´å é«æçç¼åç®æ³ã "
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgstr ""
+#~ "Criteria crit = sess.createCriteria(Cat.class);\n"
+#~ "crit.setMaxResults(50);\n"
+#~ "List cats = crit.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.between(\"weight\", minWeight, maxWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .add( Restrictions.or(\n"
+#~ " Restrictions.eq( \"age\", new Integer(0) ),\n"
+#~ " Restrictions.isNull(\"age\")\n"
+#~ " ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.in( \"name\", new String[] { \"Fritz\", \"Izi\", "
+#~ "\"Pk\" } ) )\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( Restrictions.isNull(\"age\") )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(0) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(1) ) )\n"
+#~ " .add( Restrictions.eq(\"age\", new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", Hibernate.STRING) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.sqlRestriction(\"lower({alias}.name) like lower(?)"
+#~ "\", \"Fritz%\", \n"
+#~ " Hibernate.STRING) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Property age = Property.forName(\"age\");\n"
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.disjunction()\n"
+#~ " .add( age.isNull() )\n"
+#~ " .add( age.eq( new Integer(0) ) )\n"
+#~ " .add( age.eq( new Integer(1) ) )\n"
+#~ " .add( age.eq( new Integer(2) ) )\n"
+#~ " ) )\n"
+#~ " .add( Property.forName(\"name\").in( new String[] { \"Fritz\", \"Izi"
+#~ "\", \"Pk\" } ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\")\n"
+#~ " .addOrder( Order.asc(\"name\") )\n"
+#~ " .addOrder( Order.desc(\"age\") )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"name\").like(\"F%\") )\n"
+#~ " .addOrder( Property.forName(\"name\").asc() )\n"
+#~ " .addOrder( Property.forName(\"age\").desc() )\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .createCriteria(\"kittens\")\n"
+#~ " .add( Restrictions.like(\"name\", \"F%\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createAlias(\"kittens\", \"kt\")\n"
+#~ " .createAlias(\"mate\", \"mt\")\n"
+#~ " .add( Restrictions.eqProperty(\"kt.name\", \"mt.name\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .createCriteria(\"kittens\", \"kt\")\n"
+#~ " .add( Restrictions.eq(\"name\", \"F%\") )\n"
+#~ " .setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP)\n"
+#~ " .list();\n"
+#~ "Iterator iter = cats.iterator();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Map map = (Map) iter.next();\n"
+#~ " Cat cat = (Cat) map.get(Criteria.ROOT_ALIAS);\n"
+#~ " Cat kitten = (Cat) map.get(\"kt\");\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createCriteria(Cat.class)\n"
+#~ " .add( Restrictions.like(\"name\", \"Fritz%\") )\n"
+#~ " .setFetchMode(\"mate\", FetchMode.EAGER)\n"
+#~ " .setFetchMode(\"kittens\", FetchMode.EAGER)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Cat cat = new Cat();\n"
+#~ "cat.setSex('F');\n"
+#~ "cat.setColor(Color.BLACK);\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "Example example = Example.create(cat)\n"
+#~ " .excludeZeroes() //exclude zero valued properties\n"
+#~ " .excludeProperty(\"color\") //exclude the property named \"color\"\n"
+#~ " .ignoreCase() //perform case insensitive string "
+#~ "comparisons\n"
+#~ " .enableLike(); //use like for string comparisons\n"
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add(example)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .add( Example.create(cat) )\n"
+#~ " .createCriteria(\"mate\")\n"
+#~ " .add( Example.create( cat.getMate() ) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.rowCount() )\n"
+#~ " .add( Restrictions.eq(\"color\", Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount() )\n"
+#~ " .add( Projections.avg(\"weight\") )\n"
+#~ " .add( Projections.max(\"weight\") )\n"
+#~ " .add( Projections.groupProperty(\"color\") )\n"
+#~ " )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.alias( Projections.groupProperty(\"color"
+#~ "\"), \"colr\" ) )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.groupProperty(\"color\").as(\"colr\") )\n"
+#~ " .addOrder( Order.asc(\"colr\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount(), \"catCountByColor\" )\n"
+#~ " .add( Projections.avg(\"weight\"), \"avgWeight\" )\n"
+#~ " .add( Projections.max(\"weight\"), \"maxWeight\" )\n"
+#~ " .add( Projections.groupProperty(\"color\"), \"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Domestic.class, \"cat\")\n"
+#~ " .createAlias(\"kittens\", \"kit\")\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.property(\"cat.name\"), \"catName\" )\n"
+#~ " .add( Projections.property(\"kit.name\"), \"kitName\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.asc(\"catName\") )\n"
+#~ " .addOrder( Order.asc(\"kitName\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"name\") )\n"
+#~ " .add( Property.forName(\"color\").eq(Color.BLACK) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List results = session.createCriteria(Cat.class)\n"
+#~ " .setProjection( Projections.projectionList()\n"
+#~ " .add( Projections.rowCount().as(\"catCountByColor\") )\n"
+#~ " .add( Property.forName(\"weight\").avg().as(\"avgWeight\") )\n"
+#~ " .add( Property.forName(\"weight\").max().as(\"maxWeight\") )\n"
+#~ " .add( Property.forName(\"color\").group().as(\"color\" )\n"
+#~ " )\n"
+#~ " .addOrder( Order.desc(\"catCountByColor\") )\n"
+#~ " .addOrder( Order.desc(\"avgWeight\") )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria query = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .add( Property.forName(\"sex\").eq('F') );\n"
+#~ " \n"
+#~ "Session session = ....;\n"
+#~ "Transaction txn = session.beginTransaction();\n"
+#~ "List results = query.getExecutableCriteria(session).setMaxResults(100)."
+#~ "list();\n"
+#~ "txn.commit();\n"
+#~ "session.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat."
+#~ "class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeight) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeight) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)\n"
+#~ " .setProjection( Property.forName(\"weight\") );\n"
+#~ "session.createCriteria(Cat.class)\n"
+#~ " .add( Subqueries.geAll(\"weight\", weights) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat."
+#~ "class, \"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight\").gt(avgWeightForSex) )\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, "
+#~ "\"cat2\")\n"
+#~ " .setProjection( Property.forName(\"weight\").avg() )\n"
+#~ " .add( Property.forName(\"cat2.sex\").eqProperty(\"cat.sex\") );\n"
+#~ "session.createCriteria(Cat.class, \"cat\")\n"
+#~ " .add( Property.forName(\"weight).gt(avgWeightForSex) )\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"User\">\n"
+#~ " <cache usage=\"read-write\"/>\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <natural-id>\n"
+#~ " <property name=\"name\"/>\n"
+#~ " <property name=\"org\"/>\n"
+#~ " </natural-id>\n"
+#~ " <property name=\"password\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();]]>"
+#~ msgstr ""
+#~ "session.createCriteria(User.class)\n"
+#~ " .add( Restrictions.naturalId()\n"
+#~ " .set(\"name\", \"gavin\")\n"
+#~ " .set(\"org\", \"hb\") \n"
+#~ " ).setCacheable(true)\n"
+#~ " .uniqueResult();"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_hql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_hql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_hql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1733 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:15\n"
+"PO-Revision-Date: 2010-03-16 10:03+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL: The Hibernate Query Language"
+msgstr "HQL: Hibernate æ¥è¯¢è¯è¨"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate uses a powerful query language (HQL) that is similar in appearance to SQL. Compared with SQL, however, HQL is fully object-oriented and understands notions like inheritance, polymorphism and association."
+msgstr "Hibernate é
å¤äºä¸ç§é常强大çæ¥è¯¢è¯è¨ï¼è¿ç§è¯è¨çä¸å»å¾å SQLãä½æ¯ä¸è¦è¢«è¯æ³ç»æä¸çç¸ä¼¼æè¿·æï¼HQL æ¯é常ææè¯ç被设计为å®å
¨é¢å对象çæ¥è¯¢ï¼å®å¯ä»¥ç解å¦ç»§æ¿ãå¤æåå
³èä¹ç±»çæ¦å¿µã "
+
+#. Tag: title
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr "大å°åæææ§é®é¢"
+
+#. Tag: para
+#, no-c-format
+msgid "With the exception of names of Java classes and properties, queries are case-insensitive. So <literal>SeLeCT</literal> is the same as <literal>sELEct</literal> is the same as <literal>SELECT</literal>, but <literal>org.hibernate.eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal>, and <literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
+msgstr "é¤äº Java ç±»ä¸å±æ§çå称å¤ï¼æ¥è¯¢è¯å¥å¯¹å¤§å°å并ä¸ææã æ以 <literal>SeLeCT</literal> ä¸ <literal>sELEct</literal> 以å <literal>SELECT</literal> æ¯ç¸åçï¼ä½æ¯ <literal>org.hibernate.eg.FOO</literal> 并ä¸çä»·äº <literal>org.hibernate.eg.Foo</literal> å¹¶ä¸ <literal>foo.barSet</literal> ä¹ä¸çä»·äº <literal>foo.BARSET</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses lowercase HQL keywords. Some users find queries with uppercase keywords more readable, but this convention is unsuitable for queries embedded in Java code."
+msgstr "æ¬æåä¸ç HQL å
³é®åå°ä½¿ç¨å°ååæ¯ãå¾å¤ç¨æ·åç°ä½¿ç¨å®å
¨å¤§åçå
³é®åä¼ä½¿æ¥è¯¢è¯å¥çå¯è¯»æ§æ´å¼ºï¼ä½æ们åç°ï¼å½ææ¥è¯¢è¯å¥åµå
¥å° Java è¯å¥ä¸çæ¶å使ç¨å¤§åå
³é®åæ¯è¾é¾çã"
+
+#. Tag: title
+#, no-c-format
+msgid "The from clause"
+msgstr "from åå¥"
+
+#. Tag: para
+#, no-c-format
+msgid "The simplest possible Hibernate query is of the form:"
+msgstr "Hibernate ä¸æç®åçæ¥è¯¢è¯å¥çå½¢å¼å¦ä¸ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This returns all instances of the class <literal>eg.Cat</literal>. You do not usually need to qualify the class name, since <literal>auto-import</literal> is the default. For example:"
+msgstr "该åå¥ç®åçè¿å <literal>eg.Cat</literal> ç±»çææå®ä¾ãé常æ们ä¸éè¦ä½¿ç¨ç±»çå
¨éå®åï¼å 为 <literal>auto-import</literal>ï¼èªå¨å¼å
¥ï¼æ¯ç¼ºççæ
åµãæ以æ们å ä¹åªä½¿ç¨å¦ä¸çç®ååæ³ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "In order to refer to the <literal>Cat</literal> in other parts of the query, you will need to assign an <emphasis>alias</emphasis>. For example:"
+msgstr "为äºå¨è¿ä¸ªæ¥è¯¢çå
¶ä»é¨åéå¼ç¨ <literal>Cat</literal>ï¼ä½ å°éè¦åé
ä¸ä¸ª<emphasis>å«å</emphasis>ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This query assigns the alias <literal>cat</literal> to <literal>Cat</literal> instances, so you can use that alias later in the query. The <literal>as</literal> keyword is optional. You could also write:"
+msgstr "è¿ä¸ªè¯å¥æå«å <literal>cat</literal> æå®ç»ç±»<literal>Cat</literal> çå®ä¾ï¼è¿æ ·æ们就å¯ä»¥å¨éåçæ¥è¯¢ä¸ä½¿ç¨æ¤å«åäºãå
³é®å <literal>as</literal> æ¯å¯éçï¼æ们ä¹å¯ä»¥è¿æ ·åï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Multiple classes can appear, resulting in a cartesian product or \"cross\" join."
+msgstr "åå¥ä¸å¯ä»¥åæ¶åºç°å¤ä¸ªç±»ï¼å
¶æ¥è¯¢ç»ææ¯äº§çä¸ä¸ªç¬å¡å¿ç§¯æ产ç跨表çè¿æ¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "It is good practice to name query aliases using an initial lowercase as this is consistent with Java naming standards for local variables (e.g. <literal>domesticCat</literal>)."
+msgstr "æ¥è¯¢è¯å¥ä¸å«åçå¼å¤´é¨åå°å被认为æ¯å®è·µä¸çå¥½ä¹ æ¯ï¼è¿æ ·åä¸ Java åéçå½åæ åä¿æäºä¸è´ï¼æ¯å¦ï¼<literal>domesticCat</literal>ï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Associations and joins"
+msgstr "å
³èï¼Associationï¼ä¸è¿æ¥ï¼Joinï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also assign aliases to associated entities or to elements of a collection of values using a <literal>join</literal>. For example:"
+msgstr "æ们ä¹å¯ä»¥ä¸ºç¸å
³èçå®ä½çè³æ¯å¯¹ä¸ä¸ªéåä¸çå
¨é¨å
ç´ æå®ä¸ä¸ªå«åï¼è¿æ¶è¦ä½¿ç¨å
³é®å <literal>join</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL:"
+msgstr "åæ¯æçè¿æ¥ç±»åæ¯ä» ANSI SQL ä¸åé´æ¥çï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>inner join</literal>"
+msgstr "<literal>inner join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>left outer join</literal>"
+msgstr "<literal>left outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>right outer join</literal>"
+msgstr "<literal>right outer join</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>full join</literal> (not usually useful)"
+msgstr "<literal>full join</literal>ï¼å
¨è¿æ¥ï¼å¹¶ä¸å¸¸ç¨ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>inner join</literal>, <literal>left outer join</literal> and <literal>right outer join</literal> constructs may be abbreviated."
+msgstr "è¯å¥ <literal>inner join</literal>ï¼<literal>left outer join</literal> 以å <literal>right outer join</literal> å¯ä»¥ç®åã"
+
+#. Tag: para
+#, no-c-format
+msgid "You may supply extra join conditions using the HQL <literal>with</literal> keyword."
+msgstr "éè¿ HQL ç <literal>with</literal> å
³é®åï¼ä½ å¯ä»¥æä¾é¢å¤ç join æ¡ä»¶ã"
+
+#. Tag: para
+#, no-c-format
+msgid "A \"fetch\" join allows associations or collections of values to be initialized along with their parent objects using a single select. This is particularly useful in the case of a collection. It effectively overrides the outer join and lazy declarations of the mapping file for associations and collections. See <xref linkend=\"performance-fetching\" /> for more information."
+msgstr "è¿æï¼ä¸ä¸ª \"fetch\" è¿æ¥å
许ä»
ä»
使ç¨ä¸ä¸ªéæ©è¯å¥å°±å°ç¸å
³èç对象æä¸ç»å¼çéåéçä»ä»¬çç¶å¯¹è±¡çåå§åè被åå§åï¼è¿ç§æ¹æ³å¨ä½¿ç¨å°éåçæ
åµä¸å°¤å
¶æç¨ï¼å¯¹äºå
³èåéåæ¥è¯´ï¼å®ææç代æ¿äºæ å°æ件ä¸çå¤èæ¥ä¸å»¶è¿å£°æï¼lazy declarationsï¼ãæ¥ç <xref linkend=\"performance-fetching\" /> 以è·å¾çå¤çä¿¡æ¯ã "
+
+#. Tag: para
+#, no-c-format
+msgid "A fetch join does not usually need to assign an alias, because the associated objects should not be used in the <literal>where</literal> clause (or any other clause). The associated objects are also not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason you might need an alias is if you are recursively join fetching a further collection:"
+msgstr "ä¸ä¸ª fetch è¿æ¥é常ä¸éè¦è¢«æå®å«åï¼å 为ç¸å
³èç对象ä¸åºå½è¢«ç¨å¨ <literal>where</literal> åå¥ï¼æå
¶å®ä»»ä½åå¥ï¼ä¸ãåæ¶ï¼ç¸å
³èç对象并ä¸å¨æ¥è¯¢çç»æä¸ç´æ¥è¿åï¼ä½å¯ä»¥éè¿ä»ä»¬çç¶å¯¹è±¡æ¥è®¿é®å°ä»ä»¬ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>fetch</literal> construct cannot be used in queries called using <literal>iterate()</literal> (though <literal>scroll()</literal> can be used). <literal>Fetch</literal> should be used together with <literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>, as these operations are based on the result rows which usually contain duplicates for eager collection fetching, hence, the number of rows is not what you would expect. <literal>Fetch</literal> should also not be used together with impromptu <literal>with</literal> condition. It is possible to create a cartesian product by join fetching more than one collection in a query, so take care in this case. Join fetching multiple collection roles can produce unexpected results for bag mappings, so user discretion is advised when formulating queries in this case. Finally, note that <literal>full join fetch</literal> and <literal>right join fetch</literal> are not meaningful."
+msgstr "åè¥ä½¿ç¨ <literal>iterate()</literal> æ¥è°ç¨æ¥è¯¢ï¼è¯·æ³¨æ <literal>fetch</literal> æé æ¯ä¸è½ä½¿ç¨çï¼<literal>scroll()</literal> å¯ä»¥ä½¿ç¨ï¼ã<literal>fetch</literal> ä¹ä¸åºè¯¥ä¸ <literal>setMaxResults()</literal> æ <literal>setFirstResult()</literal> å
±ç¨ï¼è¿æ¯å 为è¿äºæä½æ¯åºäºç»æéçï¼èå¨é¢å
æåéåç±»æ¶å¯è½å
å«éå¤çæ°æ®ï¼ä¹å°±æ¯è¯´æ æ³é¢å
ç¥é精确çè¡æ°ã<literal>fetch</literal> è¿ä¸è½ä¸ç¬ç«ç <literal>with</literal> æ¡ä»¶ä¸èµ·ä½¿ç¨ãéè¿å¨ä¸æ¬¡æ¥è¯¢ä¸ fetch å¤ä¸ªéåï¼å¯ä»¥å¶é åºç¬å¡å°ç§¯ï¼å æ¤è¯·å¤å 注æã对 bag æ å°æ¥è¯´ï¼åæ¶ join fetch å¤ä¸ªéåè§è²å¯è½å¨æäºæ
åµä¸ç»åºå¹¶éé¢æçç»æï¼ä¹è¯·å°å¿ãæå注æï¼ä½¿ç¨ <literal>full join fetch</literal> ä¸ <literal>right join fetch</literal> æ¯æ²¡ææä¹çã "
+
+#. Tag: para
+#, no-c-format
+msgid "If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties in the first query immediately using <literal>fetch all properties</literal>."
+msgstr "å¦æä½ ä½¿ç¨å±æ§çº§å«ç延è¿è·åï¼lazy fetchingï¼ï¼è¿æ¯éè¿éæ°ç¼ååèç å®ç°çï¼ï¼å¯ä»¥ä½¿ç¨ <literal>fetch all properties</literal> æ¥å¼ºå¶ Hibernate ç«å³åå¾é£äºåæ¬éè¦å»¶è¿å è½½çå±æ§ï¼å¨ç¬¬ä¸ä¸ªæ¥è¯¢ä¸ï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Forms of join syntax"
+msgstr "join è¯æ³çå½¢å¼"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL supports two forms of association joining: <literal>implicit</literal> and <literal>explicit</literal>."
+msgstr "HQL æ¯æ两ç§å
³è join çå½¢å¼ï¼<literal>implicitï¼éå¼ï¼</literal> ä¸ <literal>explicitï¼æ¾å¼ï¼</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The queries shown in the previous section all use the <literal>explicit</literal> form, that is, where the join keyword is explicitly used in the from clause. This is the recommended form."
+msgstr "ä¸ä¸èä¸ç»åºçæ¥è¯¢é½æ¯ä½¿ç¨ <literal>explicitï¼æ¾å¼ï¼</literal>å½¢å¼çï¼å
¶ä¸ form åå¥ä¸æç¡®ç»åºäº join å
³é®åãè¿æ¯å»ºè®®ä½¿ç¨çæ¹å¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>implicit</literal> form does not use the join keyword. Instead, the associations are \"dereferenced\" using dot-notation. <literal>implicit</literal> joins can appear in any of the HQL clauses. <literal>implicit</literal> join result in inner joins in the resulting SQL statement."
+msgstr "<literal>implicitï¼éå¼ï¼</literal>å½¢å¼ä¸ä½¿ç¨ join å
³é®åãå
³è使ç¨\"ç¹å·\"æ¥è¿è¡âå¼ç¨âã<literal>implicit</literal> join å¯ä»¥å¨ä»»ä½ HQL åå¥ä¸åºç°ã<literal>implicit</literal> join å¨æç»ç SQL è¯å¥ä¸ä»¥ inner join çæ¹å¼åºç°ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Referring to identifier property"
+msgstr "å¼ç¨ identifier å±æ§ "
+
+#. Tag: para
+#, no-c-format
+msgid "There are 2 ways to refer to an entity's identifier property:"
+msgstr "é常æ两ç§æ¹æ³æ¥å¼ç¨å®ä½ç identifier å±æ§ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The special property (lowercase) <literal>id</literal> may be used to reference the identifier property of an entity <emphasis>provided that the entity does not define a non-identifier property named id</emphasis>."
+msgstr "ç¹æ®å±æ§ï¼lowercaseï¼<literal>id</literal> å¯ä»¥ç¨æ¥å¼ç¨å®ä½ç identifier å±æ§ <emphasis>å设è¿ä¸ªå®ä½æ²¡æå®ä¹ç¨ non-identifier å±æ§å½åç id</emphasis>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If the entity defines a named identifier property, you can use that property name."
+msgstr "å¦æè¿ä¸ªå®ä½å®ä¹äº identifier å±æ§ï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åã "
+
+#. Tag: para
+#, no-c-format
+msgid "References to composite identifier properties follow the same naming rules. If the entity has a non-identifier property named id, the composite identifier property can only be referenced by its defined named. Otherwise, the special <literal>id</literal> property can be used to reference the identifier property."
+msgstr "对ç»å identifier å±æ§çå¼ç¨éµå¾ªç¸åçå½åè§åãå¦æå®ä½æä¸ä¸ª non-identifier å±æ§å½åç idï¼è¿ä¸ªç»å identifier å±æ§åªè½ç¨èªå·±å®ä¹çååæ¥å¼ç¨ï¼å¦åï¼ç¹æ® <literal>id</literal> å±æ§å¯ä»¥ç¨æ¥å¼ç¨ identifier å±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Please note that, starting in version 3.2.2, this has changed significantly. In previous versions, <literal>id</literal> <emphasis>always</emphasis> referred to the identifier property regardless of its actual name. A ramification of that decision was that non-identifier properties named <literal>id</literal> could never be referenced in Hibernate queries."
+msgstr "注æï¼ä» 3.2.2 çæ¬å¼å§ï¼è¿å·²ç»æ¹åäºå¾å¤ãå¨åé¢ççæ¬éï¼ä¸ç®¡å®é
çååï¼<literal>id</literal> <emphasis>æ»æ¯</emphasis>æå identifier å±æ§ï¼èç¨ non-identifier å±æ§å½åç <literal>id</literal> å°±ä»æ¥ä¸å¨ Hibernate æ¥è¯¢éå¼ç¨ã "
+
+#. Tag: title
+#, no-c-format
+msgid "The select clause"
+msgstr "select åå¥"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>select</literal> clause picks which objects and properties to return in the query result set. Consider the following:"
+msgstr "<literal>select</literal> åå¥éæ©å°åªäºå¯¹è±¡ä¸å±æ§è¿åå°æ¥è¯¢ç»æéä¸ãèèå¦ä¸æ
åµï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The query will select <literal>mate</literal>s of other <literal>Cat</literal>s. You can express this query more compactly as:"
+msgstr "该è¯å¥å°éæ©å
¶å® <literal>Cat</literal> ç <literal>mate</literal>ï¼å
¶ä»ç«çé
å¶ï¼ãå®é
ä¸ï¼ä½ å¯ä»¥æ´ç®æ´çç¨ä»¥ä¸çæ¥è¯¢è¯å¥è¡¨è¾¾ç¸åçå«ä¹ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Queries can return properties of any value type including properties of component type:"
+msgstr "æ¥è¯¢è¯å¥å¯ä»¥è¿åå¼ä¸ºä»»ä½ç±»åçå±æ§ï¼å
æ¬è¿åç±»å为æç§ç»ä»¶ï¼Componentï¼çå±æ§ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Queries can return multiple objects and/or properties as an array of type <literal>Object[]</literal>:"
+msgstr "æ¥è¯¢è¯å¥å¯ä»¥è¿åå¤ä¸ªå¯¹è±¡åï¼æï¼å±æ§ï¼åæ¾å¨ <literal>Object[]</literal> éåä¸ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Or as a <literal>List</literal>:"
+msgstr "æåæ¾å¨ä¸ä¸ª <literal>List</literal> 对象ä¸ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Or - assuming that the class <literal>Family</literal> has an appropriate constructor - as an actual typesafe Java object:"
+msgstr "å设类 <literal>Family</literal> æä¸ä¸ªåéçæé å½æ° - ä½ä¸ºå®é
çç±»åå®å
¨ç Java 对象ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can assign aliases to selected expressions using <literal>as</literal>:"
+msgstr "ä½ å¯ä»¥ä½¿ç¨å
³é®å <literal>as</literal> ç»â被éæ©äºç表达å¼âææ´¾å«åï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "This is most useful when used together with <literal>select new map</literal>:"
+msgstr "è¿ç§åæ³å¨ä¸åå¥ <literal>select new map</literal> ä¸èµ·ä½¿ç¨æ¶ææç¨ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr "该æ¥è¯¢è¿åäºä¸ä¸ª <literal>Map</literal> ç对象ï¼å
容æ¯å«åä¸è¢«éæ©çå¼ç»æçå-å¼æ å°ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Aggregate functions"
+msgstr "èéå½æ°"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL queries can even return the results of aggregate functions on properties:"
+msgstr "HQL æ¥è¯¢çè³å¯ä»¥è¿åä½ç¨äºå±æ§ä¹ä¸çèéå½æ°ç计ç®ç»æï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The supported aggregate functions are:"
+msgstr "åæ¯æçèéå½æ°å¦ä¸ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>avg(...), sum(...), min(...), max(...)</literal>"
+msgstr "<literal>avg(...), sum(...), min(...), max(...)</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(*)</literal>"
+msgstr "<literal>count(*)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>count(...), count(distinct ...), count(all...)</literal>"
+msgstr "<literal>count(...), count(distinct ...), count(all...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "You can use arithmetic operators, concatenation, and recognized SQL functions in the select clause:"
+msgstr "ä½ å¯ä»¥å¨éæ©åå¥ä¸ä½¿ç¨æ°å¦æä½ç¬¦ãè¿æ¥ä»¥åç»è¿éªè¯ç SQL å½æ°ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>distinct</literal> and <literal>all</literal> keywords can be used and have the same semantics as in SQL."
+msgstr "å
³é®å <literal>distinct</literal> ä¸ <literal>all</literal> ä¹å¯ä»¥ä½¿ç¨ï¼å®ä»¬å
·æä¸ SQL ç¸åçè¯ä¹ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr "å¤ææ¥è¯¢"
+
+#. Tag: para
+#, no-c-format
+msgid "A query like:"
+msgstr "ä¸ä¸ªå¦ä¸çæ¥è¯¢è¯å¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "returns instances not only of <literal>Cat</literal>, but also of subclasses like <literal>DomesticCat</literal>. Hibernate queries can name <emphasis>any</emphasis> Java class or interface in the <literal>from</literal> clause. The query will return instances of all persistent classes that extend that class or implement the interface. The following query would return all persistent objects:"
+msgstr "ä¸ä»
è¿å <literal>Cat</literal> ç±»çå®ä¾ï¼ä¹åæ¶è¿ååç±» <literal>DomesticCat</literal> çå®ä¾ãHibernate å¯ä»¥å¨ <literal>from</literal> åå¥ä¸æå®<emphasis>ä»»ä½</emphasis> Java ç±»ææ¥å£ãæ¥è¯¢ä¼è¿å继æ¿äºè¯¥ç±»çæææä¹
ååç±»çå®ä¾æè¿å声æäºè¯¥æ¥å£çæææä¹
åç±»çå®ä¾ãä¸é¢çæ¥è¯¢è¯å¥è¿åææç被æä¹
åçå¯¹è±¡ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The interface <literal>Named</literal> might be implemented by various persistent classes:"
+msgstr "æ¥å£ <literal>Named</literal> å¯è½è¢«åç§åæ ·çæä¹
å类声æï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "These last two queries will require more than one SQL <literal>SELECT</literal>. This means that the <literal>order by</literal> clause does not correctly order the whole result set. It also means you cannot call these queries using <literal>Query.scroll()</literal>."
+msgstr "注æï¼æåç两个æ¥è¯¢å°éè¦è¶
è¿ä¸ä¸ªç SQL <literal>SELECT</literal>ãè¿è¡¨æ <literal>order by</literal> åå¥æ²¡æ对æ´ä¸ªç»æéè¿è¡æ£ç¡®çæåºãï¼è¿ä¹è¯´æä½ ä¸è½å¯¹è¿æ ·çæ¥è¯¢ä½¿ç¨ <literal>Query.scroll()</literal> æ¹æ³ãï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "The where clause"
+msgstr "where åå¥"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>where</literal> clause allows you to refine the list of instances returned. If no alias exists, you can refer to properties by name:"
+msgstr "<literal>where</literal> åå¥å
è®¸ä½ å°è¿åçå®ä¾å表çèå´ç¼©å°ãå¦æ没ææå®å«åï¼ä½ å¯ä»¥ä½¿ç¨å±æ§åæ¥ç´æ¥å¼ç¨å±æ§ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "If there is an alias, use a qualified property name:"
+msgstr "å¦æææ´¾äºå«åï¼éè¦ä½¿ç¨å®æ´çå±æ§åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr "è¿åå为ï¼å±æ§ name çäºï¼'Fritz' ç <literal>Cat</literal> ç±»çå®ä¾ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The following query:"
+msgstr "ä¸é¢çæ¥è¯¢ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "returns all instances of <literal>Foo</literal> with an instance of <literal>bar</literal> with a <literal>date</literal> property equal to the <literal>startDate</literal> property of the <literal>Foo</literal>. Compound path expressions make the <literal>where</literal> clause extremely powerful. Consider the following:"
+msgstr "å°è¿åææ满足ä¸é¢æ¡ä»¶ç <literal>Foo</literal> ç±»çå®ä¾ï¼ åå¨å¦ä¸ç <literal>bar</literal> çä¸ä¸ªå®ä¾ï¼å
¶ <literal>date</literal> å±æ§çäº <literal>Foo</literal> ç <literal>startDate</literal> å±æ§ãå¤åè·¯å¾è¡¨è¾¾å¼ä½¿å¾ <literal>where</literal> åå¥é常ç强大ï¼èèå¦ä¸æ
åµï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "This query translates to an SQL query with a table (inner) join. For example:"
+msgstr "该æ¥è¯¢å°è¢«ç¿»è¯æ为ä¸ä¸ªå«æ表è¿æ¥ï¼å
è¿æ¥ï¼ç SQL æ¥è¯¢ãå¦æä½ æç®ååè¿æ ·çæ¥è¯¢è¯å¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "would result in a query that would require four table joins in SQL."
+msgstr "å¨ SQL ä¸ï¼ä½ 为达æ¤ç®çå°éè¦è¿è¡ä¸ä¸ªå表è¿æ¥çæ¥è¯¢ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>=</literal> operator can be used to compare not only properties, but also instances:"
+msgstr "<literal>=</literal> è¿ç®ç¬¦ä¸ä»
å¯ä»¥è¢«ç¨æ¥æ¯è¾å±æ§çå¼ï¼ä¹å¯ä»¥ç¨æ¥æ¯è¾å®ä¾ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The special property (lowercase) <literal>id</literal> can be used to reference the unique identifier of an object. See <xref linkend=\"queryhql-identifier-property\" /> for more information."
+msgstr "ç¹æ®å±æ§ï¼å°åï¼<literal>id</literal> å¯ä»¥ç¨æ¥è¡¨ç¤ºä¸ä¸ªå¯¹è±¡çå¯ä¸çæ è¯ç¬¦ã详æ
请åè <xref linkend=\"queryhql-identifier-property\" />ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The second query is efficient and does not require a table join."
+msgstr "第äºä¸ªæ¥è¯¢æ¯ææçãæ¤æ¶ä¸éè¦è¿è¡è¡¨è¿æ¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of composite identifiers can also be used. Consider the following example where <literal>Person</literal> has composite identifiers consisting of <literal>country</literal> and <literal>medicareNumber</literal>:"
+msgstr "åæ ·ä¹å¯ä»¥ä½¿ç¨å¤åæ è¯ç¬¦ãæ¯å¦ <literal>Person</literal> ç±»æä¸ä¸ªå¤åæ è¯ç¬¦ï¼å®ç± <literal>country</literal> å±æ§ä¸ <literal>medicareNumber</literal> å±æ§ç»æï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Once again, the second query does not require a table join."
+msgstr "第äºä¸ªæ¥è¯¢ä¹ä¸éè¦è¿è¡è¡¨è¿æ¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "See <xref linkend=\"queryhql-identifier-property\" /> for more information regarding referencing identifier properties)"
+msgstr "å
³äºå¼ç¨æ è¯ç¬¦å±æ§çæ´å¤ä¿¡æ¯ï¼è¯·åè <xref linkend=\"queryhql-identifier-property\" />ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The special property <literal>class</literal> accesses the discriminator value of an instance in the case of polymorphic persistence. A Java class name embedded in the where clause will be translated to its discriminator value."
+msgstr "åæ ·çï¼ç¹æ®å±æ§ <literal>class</literal> å¨è¿è¡å¤ææä¹
åçæ
åµä¸è¢«ç¨æ¥ååä¸ä¸ªå®ä¾çé´å«å¼ï¼discriminator valueï¼ãä¸ä¸ªåµå
¥å° where åå¥ä¸ç Java ç±»çååå°è¢«è½¬æ¢ä¸ºè¯¥ç±»çé´å«å¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "You can also use components or composite user types, or properties of said component types. See <xref linkend=\"queryhql-components\" /> for more information."
+msgstr "ä½ ä¹å¯ä»¥ä½¿ç¨ç»ä»¶æè
å¤åç¨æ·ç±»åï¼ä»¥åç»ä»¶ç±»åçå±æ§ã详æ
请åè <xref linkend=\"queryhql-components\" />ã "
+
+#. Tag: para
+#, no-c-format
+msgid "An \"any\" type has the special properties <literal>id</literal> and <literal>class</literal> that allows you to express a join in the following way (where <literal>AuditLog.item</literal> is a property mapped with <literal><any></literal>):"
+msgstr "ä¸ä¸ªâä»»æâç±»åæ两个ç¹æ®çå±æ§ <literal>id</literal> å <literal>class</literal>ï¼æ¥å
许æ们æç
§ä¸é¢çæ¹å¼è¡¨è¾¾ä¸ä¸ªè¿æ¥ï¼<literal>AuditLog.item</literal> æ¯ä¸ä¸ªå±æ§ï¼è¯¥å±æ§è¢«æ å°ä¸º <literal><any></literal>ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>log.item.class</literal> and <literal>payment.class</literal> would refer to the values of completely different database columns in the above query."
+msgstr "注æï¼å¨ä¸é¢çæ¥è¯¢ä¸å¥ä¸ï¼<literal>log.item.class</literal> å <literal>payment.class</literal> å°æ¶åå°å®å
¨ä¸åçæ°æ®åºä¸çåã"
+
+#. Tag: title
+#, no-c-format
+msgid "Expressions"
+msgstr "表达å¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Expressions used in the <literal>where</literal> clause include the following:"
+msgstr "å¨ <literal>where</literal> åå¥ä¸å
许使ç¨ç表达å¼å
æ¬ å¤§å¤æ°ä½ å¯ä»¥å¨ SQL 使ç¨ç表达å¼ç§ç±»ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "mathematical operators: <literal>+, -, *, /</literal>"
+msgstr "æ°å¦è¿ç®ç¬¦ <literal>+ï¼-ï¼*ï¼/</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "binary comparison operators: <literal>=, >=, <=, <>, !=, like</literal>"
+msgstr "äºè¿å¶æ¯è¾è¿ç®ç¬¦ <literal>=, >=, <=, <>, !=, like</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr "é»è¾è¿ç®ç¬¦ <literal>andï¼orï¼not</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Parentheses <literal>( )</literal> that indicates grouping"
+msgstr "æ¬å· <literal>( )</literal>ï¼è¡¨ç¤ºåç» "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
+msgstr "<literal>in</literal>, <literal>not in</literal>, <literal>between</literal>, <literal>is null</literal>, <literal>is not null</literal>, <literal>is empty</literal>, <literal>is not empty</literal>, <literal>member of</literal> and <literal>not member of</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+msgstr "\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, and \"searched\" case, <literal>case when ... then ... else ... end</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "string concatenation <literal>...||...</literal> or <literal>concat(...,...)</literal>"
+msgstr "å符串è¿æ¥ç¬¦ <literal>...||...</literal> or <literal>concat(...,...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>current_date()</literal>, <literal>current_time()</literal>, and <literal>current_timestamp()</literal>"
+msgstr "<literal>current_date()</literal>, <literal>current_time()</literal>, and <literal>current_timestamp()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, and <literal>year(...)</literal>"
+msgstr "<literal>second(...)</literal>ã<literal>minute(...)</literal>ã<literal>hour(...)</literal>ã<literal>day(...)</literal>ã<literal>month(...)</literal> å <literal>year(...)</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+msgstr "EJB-QL 3.0 å®ä¹çä»»ä½åè½ææä½ç¬¦ï¼<literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length(), mod()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr "<literal>coalesce()</literal> å <literal>nullif()</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>str()</literal> for converting numeric or temporal values to a readable string"
+msgstr "<literal>str()</literal> ææ°åæè
æ¶é´å¼è½¬æ¢ä¸ºå¯è¯»çå符串"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>cast(... as ...)</literal>, where the second argument is the name of a Hibernate type, and <literal>extract(... from ...)</literal> if ANSI <literal>cast()</literal> and <literal>extract()</literal> is supported by the underlying database"
+msgstr "<literal>cast(... as ...)</literal>ï¼å
¶ç¬¬äºä¸ªåæ°æ¯æ Hibernate ç±»åçååï¼ä»¥å <literal>extract(... from ...)</literal>ï¼åªè¦ ANSI <literal>cast()</literal> å <literal>extract()</literal> 被åºå±æ°æ®åºæ¯æ"
+
+#. Tag: para
+#, no-c-format
+msgid "the HQL <literal>index()</literal> function, that applies to aliases of a joined indexed collection"
+msgstr "HQL <literal>index()</literal> å½æ°ï¼ä½ç¨äº join çæåºéåçå«åã"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL functions that take collection-valued path expressions: <literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>, along with the special <literal>elements()</literal> and <literal>indices</literal> functions that can be quantified using <literal>some, all, exists, any, in</literal>."
+msgstr "HQL å½æ°ï¼æéåä½ä¸ºåæ°ï¼<literal>size(), minelement(), maxelement(), minindex(), maxindex()</literal>ï¼è¿æç¹å«ç <literal>elements()</literal> å <literal>indices</literal> å½æ°ï¼å¯ä»¥ä¸æ°éè¯å 以éå®ï¼<literal>some, all, exists, any, in</literal>ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Any database-supported SQL scalar function like <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, and <literal>sin()</literal>"
+msgstr "ä»»ä½æ°æ®åºæ¯æç SQL æ éå½æ°ï¼æ¯å¦ <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "JDBC-style positional parameters <literal>?</literal>"
+msgstr "JDBC é£æ ¼çåæ°ä¼ å
¥ <literal>?</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "named parameters <literal>:name</literal>, <literal>:start_date</literal>, and <literal>:x1</literal>"
+msgstr "å½ååæ° <literal>:name</literal>ï¼<literal>:start_date</literal>ï¼<literal>:x1</literal> "
+
+#. Tag: para
+#, no-c-format
+msgid "SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+msgstr "SQL ç´æ¥å¸¸é <literal>'foo'</literal>, <literal>69</literal>, <literal>6.66E+2</literal>, <literal>'1970-01-01 10:00:01.0'</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Java <literal>public static final</literal> constants <literal>eg.Color.TABBY</literal>"
+msgstr "Java <literal>public static final</literal> ç±»åç常é <literal>eg.Color.TABBY</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>in</literal> and <literal>between</literal> can be used as follows:"
+msgstr "å
³é®å <literal>in</literal> ä¸ <literal>between</literal> å¯æå¦ä¸æ¹æ³ä½¿ç¨ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The negated forms can be written as follows:"
+msgstr "èä¸å¦å®çæ ¼å¼ä¹å¯ä»¥å¦ä¸ä¹¦åï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Similarly, <literal>is null</literal> and <literal>is not null</literal> can be used to test for null values."
+msgstr "åæ ·ï¼åå¥ <literal>is null</literal> ä¸ <literal>is not null</literal> å¯ä»¥è¢«ç¨æ¥æµè¯ç©ºå¼ï¼nullï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Booleans can be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:"
+msgstr "å¨ Hibernate é
ç½®æ件ä¸å£°æ HQLâæ¥è¯¢æ¿ä»£ï¼query substitutionsï¼âä¹åï¼å¸å°è¡¨è¾¾å¼ï¼Booleansï¼å¯ä»¥å¨å
¶ä»è¡¨è¾¾å¼ä¸è½»æ¾ç使ç¨ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "This will replace the keywords <literal>true</literal> and <literal>false</literal> with the literals <literal>1</literal> and <literal>0</literal> in the translated SQL from this HQL:"
+msgstr "ç³»ç»å°è¯¥ HQL 转æ¢ä¸º SQL è¯å¥æ¶ï¼è¯¥è®¾ç½®è¡¨æå°ç¨å符 <literal>1</literal> å <literal>0</literal> æ¥å代å
³é®å <literal>true</literal> å <literal>false</literal>ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can test the size of a collection with the special property <literal>size</literal> or the special <literal>size()</literal> function."
+msgstr "ä½ å¯ä»¥ç¨ç¹æ®å±æ§ <literal>size</literal>ï¼ææ¯ç¹æ®å½æ° <literal>size()</literal> æµè¯ä¸ä¸ªéåç大å°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "For indexed collections, you can refer to the minimum and maximum indices using <literal>minindex</literal> and <literal>maxindex</literal> functions. Similarly, you can refer to the minimum and maximum elements of a collection of basic type using the <literal>minelement</literal> and <literal>maxelement</literal> functions. For example:"
+msgstr "对äºç´¢å¼äºï¼æåºï¼çéåï¼ä½ å¯ä»¥ä½¿ç¨ <literal>minindex</literal> ä¸ <literal>maxindex</literal> å½æ°æ¥å¼ç¨å°æå°ä¸æ大çç´¢å¼åºæ°ãåçï¼ä½ å¯ä»¥ä½¿ç¨ <literal>minelement</literal> ä¸ <literal>maxelement</literal> å½æ°æ¥å¼ç¨å°ä¸ä¸ªåºæ¬æ°æ®ç±»åçéåä¸æå°ä¸æ大çå
ç´ ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL functions <literal>any, some, all, exists, in</literal> are supported when passed the element or index set of a collection (<literal>elements</literal> and <literal>indices</literal> functions) or the result of a subquery (see below):"
+msgstr "å¨ä¼ éä¸ä¸ªéåçç´¢å¼éæè
æ¯å
ç´ éï¼<literal>elements</literal> ä¸ <literal>indices</literal> å½æ°ï¼æè
ä¼ éä¸ä¸ªåæ¥è¯¢çç»æçæ¶åï¼å¯ä»¥ä½¿ç¨ SQL å½æ° <literal>any, someï¼all, exists, in</literal>ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Note that these constructs - <literal>size</literal>, <literal>elements</literal>, <literal>indices</literal>, <literal>minindex</literal>, <literal>maxindex</literal>, <literal>minelement</literal>, <literal>maxelement</literal> - can only be used in the where clause in Hibernate3."
+msgstr "注æï¼å¨ Hibernate3 ä¸ï¼è¿äºç»æåé â <literal>size</literal>ï¼<literal>elements</literal>ï¼<literal>indices</literal>ï¼<literal>minindex</literal>ï¼<literal>maxindex</literal>ï¼<literal>minelement</literal>ï¼<literal>maxelement</literal> â åªè½å¨ where åå¥ä¸ä½¿ç¨ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Elements of indexed collections (arrays, lists, and maps) can be referred to by index in a where clause only:"
+msgstr "ä¸ä¸ªè¢«ç´¢å¼è¿çï¼æåºçï¼éåçå
ç´ ï¼arraysï¼listsï¼mapsï¼å¯ä»¥å¨å
¶ä»ç´¢å¼ä¸è¢«å¼ç¨ï¼åªè½å¨ where åå¥ä¸ï¼ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The expression inside <literal>[]</literal> can even be an arithmetic expression:"
+msgstr "å¨ <literal>[]</literal> ä¸ç表达å¼çè³å¯ä»¥æ¯ä¸ä¸ªç®æ°è¡¨è¾¾å¼ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL also provides the built-in <literal>index()</literal> function for elements of a one-to-many association or collection of values."
+msgstr "对äºä¸ä¸ªä¸å¯¹å¤çå
³èï¼one-to-many associationï¼ææ¯å¼çéåä¸çå
ç´ ï¼HQL ä¹æä¾å
建ç <literal>index()</literal> å½æ°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Scalar SQL functions supported by the underlying database can be used:"
+msgstr "å¦æåºå±æ°æ®åºæ¯ææ éç SQL å½æ°ï¼å®ä»¬ä¹å¯ä»¥è¢«ä½¿ç¨ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Consider how much longer and less readable the following query would be in SQL:"
+msgstr "å¦æä½ è¿ä¸è½å¯¹ææçè¿äºæ·±ä¿¡ä¸çï¼æ³æ³ä¸é¢çæ¥è¯¢ãå¦æä½¿ç¨ SQLï¼è¯å¥é¿åº¦ä¼å¢é¿å¤å°ï¼å¯è¯»æ§ä¼ä¸éå¤å°ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr "<emphasis>æ示ï¼</emphasis> ä¼åå¦ä¸çè¯å¥"
+
+#. Tag: title
+#, no-c-format
+msgid "The order by clause"
+msgstr "order by åå¥"
+
+#. Tag: para
+#, no-c-format
+msgid "The list returned by a query can be ordered by any property of a returned class or components:"
+msgstr "æ¥è¯¢è¿åçå表ï¼listï¼å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶ï¼componentsï¼ä¸çä»»ä½å±æ§ï¼propertyï¼è¿è¡æåºï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order respectively."
+msgstr "å¯éç <literal>asc</literal> æ <literal>desc</literal> å
³é®åææäºæç
§ååºæéåºè¿è¡æåºã"
+
+#. Tag: title
+#, no-c-format
+msgid "The group by clause"
+msgstr "group by åå¥"
+
+#. Tag: para
+#, no-c-format
+msgid "A query that returns aggregate values can be grouped by any property of a returned class or components:"
+msgstr "ä¸ä¸ªè¿åèéå¼ï¼aggregate valuesï¼çæ¥è¯¢å¯ä»¥æç
§ä¸ä¸ªè¿åçç±»æç»ä»¶ï¼componentsï¼ä¸çä»»ä½å±æ§ï¼propertyï¼è¿è¡åç»ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr "<literal>having</literal> åå¥å¨è¿éä¹å
许使ç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "SQL functions and aggregate functions are allowed in the <literal>having</literal> and <literal>order by</literal> clauses if they are supported by the underlying database (i.e., not in MySQL)."
+msgstr "å¦æåºå±çæ°æ®åºæ¯æçè¯ï¼ä¾å¦ä¸è½å¨ MySQL ä¸ä½¿ç¨ï¼ï¼SQL çä¸è¬å½æ°ä¸èéå½æ°ä¹å¯ä»¥åºç°å¨ <literal>having</literal> ä¸ <literal>order by</literal> åå¥ä¸ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Neither the <literal>group by</literal> clause nor the <literal>order by</literal> clause can contain arithmetic expressions. Hibernate also does not currently expand a grouped entity, so you cannot write <literal>group by cat</literal> if all properties of <literal>cat</literal> are non-aggregated. You have to list all non-aggregated properties explicitly."
+msgstr "注æ <literal>group by</literal> åå¥ä¸ <literal>order by</literal> åå¥ä¸é½ä¸è½å
å«ç®æ¯è¡¨è¾¾å¼ï¼arithmetic expressionsï¼ãä¹è¦æ³¨æ Hibernate ç®åä¸ä¼æ©å± group çå®ä½ï¼å æ¤ä½ ä¸è½å <literal>group by cat</literal>ï¼é¤é <literal>cat</literal> çææå±æ§é½ä¸æ¯èéçï¼non-aggregatedï¼ãä½ å¿
é¡»æç¡®çååºææçéèéå±æ§ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Subqueries"
+msgstr "åæ¥è¯¢"
+
+#. Tag: para
+#, no-c-format
+msgid "For databases that support subselects, Hibernate supports subqueries within queries. A subquery must be surrounded by parentheses (often by an SQL aggregate function call). Even correlated subqueries (subqueries that refer to an alias in the outer query) are allowed."
+msgstr "对äºæ¯æåæ¥è¯¢çæ°æ®åºï¼Hibernate æ¯æå¨æ¥è¯¢ä¸ä½¿ç¨åæ¥è¯¢ãä¸ä¸ªåæ¥è¯¢å¿
须被åæ¬å·å
å´èµ·æ¥ï¼ç»å¸¸æ¯ SQL èéå½æ°çåæ¬å·ï¼ãçè³ç¸äºå
³èçåæ¥è¯¢ï¼å¼ç¨å°å¤é¨æ¥è¯¢ä¸çå«åçåæ¥è¯¢ï¼ä¹æ¯å
许çã"
+
+#. Tag: para
+#, no-c-format
+msgid "Note that HQL subqueries can occur only in the select or where clauses."
+msgstr "注æï¼HQL èªæ¥è¯¢åªå¯ä»¥å¨ select æè
where åå¥ä¸åºç°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Note that subqueries can also utilize <literal>row value constructor</literal> syntax. See <xref linkend=\"queryhql-tuple\" /> for more information."
+msgstr "注æåæ¥è¯¢ä¹å¯ä»¥å©ç¨ <literal>row value constructor</literal> è¯æ³ã请åè <xref linkend=\"queryhql-tuple\" /> æ¥è·å¾è¯¦æ
ã"
+
+#. Tag: title
+#, no-c-format
+msgid "HQL examples"
+msgstr "HQL ç¤ºä¾ "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's main strengths. The following example queries are similar to queries that have been used on recent projects. Please note that most queries you will write will be much simpler than the following examples."
+msgstr "Hibernate æ¥è¯¢å¯ä»¥é常ç强大ä¸å¤æãå®é
ä¸ï¼Hibernate çä¸ä¸ªä¸»è¦åç¹å°±æ¯æ¥è¯¢è¯å¥çå¨åãè¿éæä¸äºä¾åï¼å®ä»¬ä¸æå¨æè¿çä¸ä¸ªé¡¹ç®ä¸ä½¿ç¨çæ¥è¯¢é常ç¸ä¼¼ã注æä½ è½ç¨å°ç大å¤æ°æ¥è¯¢æ¯è¿äºè¦ç®åçå¤ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following query returns the order id, number of items, the given minimum total value and the total value of the order for all unpaid orders for a particular customer. The results are ordered by total value. In determining the prices, it uses the current catalog. The resulting SQL query, against the <literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has four inner joins and an (uncorrelated) subselect."
+msgstr "ä¸é¢çæ¥è¯¢å¯¹äºæ个ç¹å®ç客æ·çæææªæ¯ä»çè´¦åï¼å¨ç»å®ç»æå°æ»ä»·å¼çæ
åµä¸ï¼è¿å订åç idï¼æ¡ç®çæ°éåæ»ä»·å¼ï¼è¿åå¼æç
§æ»ä»·å¼çç»æè¿è¡æåºã为äºå³å®ä»·æ ¼ï¼æ¥è¯¢ä½¿ç¨äºå½åç®å½ãä½ä¸ºè½¬æ¢ç»æç SQL æ¥è¯¢ï¼ä½¿ç¨äº<literal>ORDER</literal>ï¼<literal>ORDER_LINE</literal>ï¼<literal>PRODUCT</literal>ï¼<literal>CATALOG</literal> å <literal>PRICE</literal> åºè¡¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:"
+msgstr "è¿ç®ç´æ¯ä¸ä¸ªæªç©ï¼å®é
ä¸ï¼å¨ç°å®çæ´»ä¸ï¼æ并ä¸çè¡·äºåæ¥è¯¢ï¼æ以æçæ¥è¯¢è¯å¥çèµ·æ¥æ´åè¿ä¸ªï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The next query counts the number of payments in each status, excluding all payments in the <literal>AWAITING_APPROVAL</literal> status where the most recent status change was made by the current user. It translates to an SQL query with two inner joins and a correlated subselect against the <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and <literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr "ä¸é¢ä¸ä¸ªæ¥è¯¢è®¡ç®æ¯ä¸ç§ç¶æä¸çæ¯ä»çæ°ç®ï¼é¤å»ææå¤äº <literal>AWAITING_APPROVAL</literal> ç¶æçæ¯ä»ï¼å 为å¨è¯¥ç¶æä¸ å½åçç¨æ·ä½åºäºç¶æçææ°æ¹åã该æ¥è¯¢è¢«è½¬æ¢æå«æ两个å
è¿æ¥ä»¥åä¸ä¸ªç¸å
³èçåéæ©ç SQL æ¥è¯¢ï¼è¯¥æ¥è¯¢ä½¿ç¨äºè¡¨ <literal>PAYMENT</literal>ï¼<literal>PAYMENT_STATUS</literal> 以å <literal>PAYMENT_STATUS_CHANGE</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "If the <literal>statusChanges</literal> collection was mapped as a list, instead of a set, the query would have been much simpler to write."
+msgstr "å¦æææ <literal>statusChanges</literal> å®ä¾éæ å°ä¸ºä¸ä¸ªå表ï¼listï¼èä¸æ¯ä¸ä¸ªéåï¼setï¼ï¼ä¹¦åæ¥è¯¢è¯å¥å°æ´å ç®åã "
+
+#. Tag: para
+#, no-c-format
+msgid "The next query uses the MS SQL Server <literal>isNull()</literal> function to return all the accounts and unpaid payments for the organization to which the current user belongs. It translates to an SQL query with three inner joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, <literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, <literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and <literal>ORG_USER</literal> tables."
+msgstr "ä¸é¢ä¸ä¸ªæ¥è¯¢ä½¿ç¨äº MS SQL Server ç <literal>isNull()</literal> å½æ°ç¨ä»¥è¿åå½åç¨æ·æå±ç»ç»çç»ç»å¸å·åç»ç»æªæ¯ä»çè´¦ãå®è¢«è½¬æ¢æä¸ä¸ªå¯¹è¡¨ <literal>ACCOUNT</literal>ï¼<literal>PAYMENT</literal>ï¼<literal>PAYMENT_STATUS</literal>ï¼<literal>ACCOUNT_TYPE</literal>ï¼<literal>ORGANIZATION</literal> 以å <literal>ORG_USER</literal> è¿è¡çä¸ä¸ªå
è¿æ¥ï¼ä¸ä¸ªå¤è¿æ¥åä¸ä¸ªåéæ©ç SQL æ¥è¯¢ã"
+
+#. Tag: para
+#, no-c-format
+msgid "For some databases, we would need to do away with the (correlated) subselect."
+msgstr "对äºä¸äºæ°æ®åºï¼æ们éè¦å¼ç¨ï¼ç¸å
³çï¼åéæ©ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Bulk update and delete"
+msgstr "æ¹éç UPDATE å DELETE"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL now supports <literal>update</literal>, <literal>delete</literal> and <literal>insert ... select ...</literal> statements. See <xref linkend=\"batch-direct\" /> for more information."
+msgstr "HQL ç°å¨æ¯æ <literal>update</literal>ï¼<literal>delete</literal> å <literal>insert ... select ...</literal>è¯å¥ãæ¥é
<xref linkend=\"batch-direct\" /> 以è·å¾æ´å¤ä¿¡æ¯ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Tips & Tricks"
+msgstr "å°æå·§ & å°çªé¨"
+
+#. Tag: para
+#, no-c-format
+msgid "You can count the number of query results without returning them:"
+msgstr "ä½ å¯ä»¥ç»è®¡æ¥è¯¢ç»æçæ°ç®èä¸å¿
å®é
çè¿åä»ä»¬ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr "è¥æ³æ ¹æ®ä¸ä¸ªéåç大å°æ¥è¿è¡æåºï¼å¯ä»¥ä½¿ç¨å¦ä¸çè¯å¥ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "If your database supports subselects, you can place a condition upon selection size in the where clause of your query:"
+msgstr "å¦æä½ çæ°æ®åºæ¯æåéæ©ï¼ä½ å¯ä»¥å¨ä½ çæ¥è¯¢ç where åå¥ä¸ä¸ºéæ©ç大å°ï¼selection sizeï¼æå®ä¸ä¸ªæ¡ä»¶ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "If your database does not support subselects, use the following query:"
+msgstr "å¦æä½ çæ°æ®åºä¸æ¯æåéæ©è¯å¥ï¼ä½¿ç¨ä¸é¢çæ¥è¯¢ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "As this solution cannot return a <literal>User</literal> with zero messages because of the inner join, the following form is also useful:"
+msgstr "å 为å
è¿æ¥ï¼inner joinï¼çåå ï¼è¿ä¸ªè§£å³æ¹æ¡ä¸è½è¿åå«æé¶ä¸ªä¿¡æ¯ç <literal>User</literal> ç±»çå®ä¾ï¼æ以è¿ç§æ
åµä¸ä½¿ç¨ä¸é¢çæ ¼å¼å°æ¯æ帮å©çï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Properties of a JavaBean can be bound to named query parameters:"
+msgstr "JavaBean çå±æ§å¯ä»¥è¢«ç»å®å°ä¸ä¸ªå½åæ¥è¯¢ï¼named queryï¼çåæ°ä¸ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Collections are pageable by using the <literal>Query</literal> interface with a filter:"
+msgstr "éè¿å°æ¥å£ <literal>Query</literal> ä¸ä¸ä¸ªè¿æ»¤å¨ï¼filterï¼ä¸èµ·ä½¿ç¨ï¼éåï¼Collectionsï¼æ¯å¯ä»¥å页çï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Collection elements can be ordered or grouped using a query filter:"
+msgstr "éè¿ä½¿ç¨æ¥è¯¢è¿æ»¤å¨ï¼query filterï¼å¯ä»¥å°éåï¼Collectionï¼çå
ç´ åç»ææåºï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "You can find the size of a collection without initializing it:"
+msgstr "ä¸ç¨éè¿åå§åï¼ä½ å°±å¯ä»¥ç¥éä¸ä¸ªéåï¼Collectionï¼ç大å°ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Components"
+msgstr "ç»ä»¶"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can be used similarly to the simple value types that are used in HQL queries. They can appear in the <literal>select</literal> clause as follows:"
+msgstr "å¨ HQL æ¥è¯¢éï¼ç»ä»¶å¯ä»¥åç®åå¼ç±»åä¸æ ·ä½¿ç¨ãå®ä»¬å¯ä»¥åºç°å¨ <literal>select</literal> åå¥éï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "where the Person's name property is a component. Components can also be used in the <literal>where</literal> clause:"
+msgstr "å¨è¿éï¼Person ç name å±æ§æ¯ä¸ä¸ªç»ä»¶ãç»ä»¶ä¹å¯ä»¥ç¨å¨ <literal>where</literal> åå¥éï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Components can also be used in the <literal>order by</literal> clause:"
+msgstr "ç»ä»¶ä¹å¯ä»¥ç¨å¨ <literal>order by</literal> åå¥éï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Another common use of components is in <link linkend=\"queryhql-tuple\">row value constructors</link>."
+msgstr "ç»ä»¶çå¦å¤ä¸ä¸ªå¸¸è§ç¨æ³æ¯å¨ <xref linkend=\"queryhql-tuple\" /> è¡å¼ï¼row valueï¼æé å½æ°éã "
+
+#. Tag: title
+#, no-c-format
+msgid "Row value constructor syntax"
+msgstr "Row value æé å½æ°è¯æ³"
+
+#. Tag: para
+#, no-c-format
+msgid "HQL supports the use of ANSI SQL <literal>row value constructor</literal> syntax, sometimes referred to AS <literal>tuple</literal> syntax, even though the underlying database may not support that notion. Here, we are generally referring to multi-valued comparisons, typically associated with components. Consider an entity Person which defines a name component:"
+msgstr "HQL æ¯æ ANSI SQL <literal>row value constructor</literal> è¯æ³ï¼ææ¶ä¹å«ä½ <literal>tuple</literal> è¯æ³ï¼ï¼å³ä½¿åºå±æ°æ®åºå¯è½ä¸æ¯æè¿ä¸ªæ¦å¿µãå¨è¿éæ们é常æçæ¯å¤å¼ï¼multi-valuedï¼çæ¯è¾ï¼å
¸åå°æ¯åç»ä»¶ç¸å
³èãæ¥ççä¸ä¸ªå®ä¹äº name ç»ä»¶çå®ä½ Personï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "That is valid syntax although it is a little verbose. You can make this more concise by using <literal>row value constructor</literal> syntax:"
+msgstr "é£æ¯ææçè¯æ³ï¼è½ç¶æç¹åé¿ãæ们å¯ä»¥ä½¿å®æ´å ç®æ´ä¸ç¹ï¼å¹¶ä½¿ç¨ <literal>row value constructor</literal> è¯æ³ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "It can also be useful to specify this in the <literal>select</literal> clause:"
+msgstr "å¨ <literal>select</literal> åå¥éæå®è¿ä¸ªä¹æ¯å¾æç¨çï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Using <literal>row value constructor</literal> syntax can also be beneficial when using subqueries that need to compare against multiple values:"
+msgstr "å½ä½¿ç¨éè¦æ¯è¾å¤ä¸ªå¼çåæ¥è¯¢æ¶ï¼éç¨ <literal>row value constructor</literal> è¯æ³ä¹å¾æç¨å¤ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "One thing to consider when deciding if you want to use this syntax, is that the query will be dependent upon the ordering of the component sub-properties in the metadata."
+msgstr "å³å®æ¯å¦ä½¿ç¨è¿ä¸ªè¯æ³çä¸ä»¶å ç´ å°±æ¯ï¼è¿ä¸ªæ¥è¯¢å°ä¾èµäºå
æ°æ®éçç»ä»¶åå±æ§ï¼sub-propertiesï¼ç顺åºã "
+
+#, fuzzy
+#~ msgid "<![CDATA[from eg.Cat]]>"
+#~ 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"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat]]>"
+#~ msgstr "from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula, Parameter]]>"
+#~ msgstr "from Formula, Parameter"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula as form, Parameter as param]]>"
+#~ msgstr "from Formula as form, Parameter as param"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate\n"
+#~ " left outer join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat left join cat.mate.kittens as kittens]]>"
+#~ msgstr "from Cat as cat left join cat.mate.kittens as kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Formula form full join form.parameter param]]>"
+#~ msgstr "from Formula form full join form.parameter param"
+#~ msgid "inner join"
+#~ msgstr "<literal>inner join</literal>ï¼å
è¿æ¥ï¼"
+#~ msgid "left outer join"
+#~ msgstr "<literal>left outer join</literal>ï¼å·¦å¤è¿æ¥ï¼"
+
+#, fuzzy
+#~ msgid "right outer join"
+#~ msgstr "<literal>left outer join</literal>ï¼å·¦å¤è¿æ¥ï¼"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " join cat.mate as mate\n"
+#~ " left join cat.kittens as kitten]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " join cat.mate as mate\n"
+#~ " left join cat.kittens as kitten"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " left join cat.kittens as kitten\n"
+#~ " with kitten.bodyWeight > 10.0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ " inner join fetch cat.mate\n"
+#~ " left join fetch cat.kittens child\n"
+#~ " left join fetch child.kittens"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Document fetch all properties order by name]]>"
+#~ msgstr "from Document fetch all properties order by name"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Document doc fetch all properties where lower(doc.name) "
+#~ "like '%cats%']]>"
+#~ msgstr ""
+#~ "from Document doc fetch all properties where lower(doc.name) like '%"
+#~ "cats%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.mate.name like '%s%']]>"
+#~ msgstr "from Cat as cat where cat.mate.name like '%s%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate]]>"
+#~ msgstr ""
+#~ "select mate\n"
+#~ "from Cat as cat\n"
+#~ " inner join cat.mate as mate"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cat.mate from Cat cat]]>"
+#~ msgstr "select cat.mate from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%']]>"
+#~ msgstr ""
+#~ "select cat.name from DomesticCat cat\n"
+#~ "where cat.name like 'fri%'"
+
+#, fuzzy
+#~ msgid "<![CDATA[select cust.name.firstName from Customer as cust]]>"
+#~ msgstr "select cust.name.firstName from Customer as cust"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select mother, offspr, mate.name\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new list(mother, offspr, mate.name)\n"
+#~ "from DomesticCat as mother\n"
+#~ " inner join mother.mate as mate\n"
+#~ " left outer join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr]]>"
+#~ msgstr ""
+#~ "select new Family(mother, mate, offspr)\n"
+#~ "from DomesticCat as mother\n"
+#~ " join mother.mate as mate\n"
+#~ " left join mother.kittens as offspr"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select new map( max(bodyWeight) as max, min(bodyWeight) as min, "
+#~ "count(*) as n )\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) "
+#~ "as n )\n"
+#~ "from Cat cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select avg(cat.weight), sum(cat.weight), max(cat.weight), count"
+#~ "(cat)\n"
+#~ "from Cat cat]]>"
+#~ msgstr ""
+#~ "select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
+#~ "from Cat cat"
+#~ msgid "count(*)"
+#~ msgstr "count(*)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight]]>"
+#~ msgstr ""
+#~ "select cat.weight + sum(kitten.weight)\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.weight"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select firstName||' '||initial||' '||upper(lastName) from "
+#~ "Person]]>"
+#~ msgstr "select firstName||' '||initial||' '||upper(lastName) from Person"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat]]>"
+#~ msgstr ""
+#~ "select distinct cat.name from Cat cat\n"
+#~ "\n"
+#~ "select count(distinct cat.name), count(cat) from Cat cat"
+
+#, fuzzy
+#~ msgid "<![CDATA[from java.lang.Object o]]>"
+#~ msgstr "from java.lang.Object o"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Named n, Named m where n.name = m.name]]>"
+#~ msgstr "from Named n, Named m where n.name = m.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat where name='Fritz']]>"
+#~ msgstr "from Cat where name='Fritz'"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat as cat where cat.name='Fritz']]>"
+#~ msgstr "from Cat as cat where cat.name='Fritz'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date]]>"
+#~ msgstr ""
+#~ "select foo\n"
+#~ "from Foo foo, Bar bar\n"
+#~ "where foo.startDate = bar.date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.mate.name is not null]]>"
+#~ msgstr "from Cat cat where cat.mate.name is not null"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null]]>"
+#~ msgstr ""
+#~ "from Foo foo\n"
+#~ "where foo.bar.baz.customer.address.city is not null"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat, Cat rival where cat.mate = rival.mate]]>"
+#~ msgstr "from Cat cat, Cat rival where cat.mate = rival.mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate]]>"
+#~ msgstr ""
+#~ "select cat, mate\n"
+#~ "from Cat cat, Cat mate\n"
+#~ "where cat.mate = mate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69]]>"
+#~ msgstr ""
+#~ "from Cat as cat where cat.id = 123\n"
+#~ "\n"
+#~ "from Cat as cat where cat.mate.id = 69"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Person person\n"
+#~ "where person.id.country = 'AU'\n"
+#~ " and person.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456]]>"
+#~ msgstr ""
+#~ "from bank.Account account\n"
+#~ "where account.owner.id.country = 'AU'\n"
+#~ " and account.owner.id.medicareNumber = 123456"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.class = DomesticCat]]>"
+#~ msgstr "from Cat cat where cat.class = DomesticCat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id]]>"
+#~ msgstr ""
+#~ "from AuditLog log, Payment payment\n"
+#~ "where log.item.class = 'Payment' and log.item.id = payment.id"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where cat.name between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not between 'A' and 'B']]>"
+#~ msgstr "from DomesticCat cat where cat.name not between 'A' and 'B'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', "
+#~ "'Baz' )]]>"
+#~ msgstr "from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"hibernate.query.substitutions\">true 1, false "
+#~ "0</property>"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.alive = true]]>"
+#~ msgstr "from Cat cat where cat.alive = true"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where cat.kittens.size > 0]]>"
+#~ msgstr "from Cat cat where cat.kittens.size > 0"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where size(cat.kittens) > 0]]>"
+#~ msgstr "from Cat cat where size(cat.kittens) > 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Calendar cal where maxelement(cal.holidays) > current_date]]"
+#~ ">"
+#~ msgstr "from Calendar cal where maxelement(cal.holidays) > current_date"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where maxindex(order.items) > 100]]>"
+#~ msgstr "from Order order where maxindex(order.items) > 100"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where minelement(order.items) > 10000]]>"
+#~ msgstr "from Order order where minelement(order.items) > 10000"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)]]>"
+#~ msgstr ""
+#~ "select mother from Cat as mother, Cat as kit\n"
+#~ "where kit in elements(foo.kittens)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)]]>"
+#~ msgstr ""
+#~ "select p from NameList list, Person p\n"
+#~ "where p.name = some elements(list.names)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Cat cat where exists elements(cat.kittens)]]>"
+#~ msgstr "from Cat cat where exists elements(cat.kittens)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Player p where 3 > all elements(p.scores)]]>"
+#~ msgstr "from Player p where 3 > all elements(p.scores)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Show show where 'fizard' in indices(show.acts)]]>"
+#~ msgstr "from Show show where 'fizard' in indices(show.acts)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Order order where order.items[0].id = 1234]]>"
+#~ msgstr "from Order order where order.items[0].id = 1234"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar]]>"
+#~ msgstr ""
+#~ "select person from Person person, Calendar calendar\n"
+#~ "where calendar.holidays['national day'] = person.birthDay\n"
+#~ " and person.nationality.calendar = calendar"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ order.deliveredItemIndices[0] ] = item and order.id = "
+#~ "11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ maxindex(order.items) ] = item and order.id = 11"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item]]>"
+#~ msgstr ""
+#~ "select item from Item item, Order order\n"
+#~ "where order.items[ size(order.items) - 1 ] = item"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5]]>"
+#~ msgstr ""
+#~ "select item, index(item) from Order order\n"
+#~ " join order.items item\n"
+#~ "where index(item) < 5"
+
+#, fuzzy
+#~ msgid "<![CDATA[from DomesticCat cat where upper(cat.name) like 'FRI%']]>"
+#~ msgstr "from DomesticCat cat where upper(cat.name) like 'FRI%'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)]]>"
+#~ msgstr ""
+#~ "select cust\n"
+#~ "from Product prod,\n"
+#~ " Store store\n"
+#~ " inner join store.customers cust\n"
+#~ "where prod.name = 'widget'\n"
+#~ " and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+#~ " and prod = all elements(cust.currentOrder.lineItems)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[SELECT cust.name, cust.address, cust.phone, cust.id, cust."
+#~ "current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )]]>"
+#~ msgstr ""
+#~ "SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
+#~ "FROM customers cust,\n"
+#~ " stores store,\n"
+#~ " locations loc,\n"
+#~ " store_customers sc,\n"
+#~ " product prod\n"
+#~ "WHERE prod.name = 'widget'\n"
+#~ " AND store.loc_id = loc.id\n"
+#~ " AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+#~ " AND sc.store_id = store.id\n"
+#~ " AND sc.cust_id = cust.id\n"
+#~ " AND prod.id = ALL(\n"
+#~ " SELECT item.prod_id\n"
+#~ " FROM line_items item, orders o\n"
+#~ " WHERE item.order_id = o.id\n"
+#~ " AND cust.current_order = o.id\n"
+#~ " )"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate]]>"
+#~ msgstr ""
+#~ "from DomesticCat cat\n"
+#~ "order by cat.name asc, cat.weight desc, cat.birthdate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id]]>"
+#~ msgstr ""
+#~ "select foo.id, avg(name), max(name)\n"
+#~ "from Foo foo join foo.names name\n"
+#~ "group by foo.id"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)]]>"
+#~ msgstr ""
+#~ "select cat.color, sum(cat.weight), count(cat)\n"
+#~ "from Cat cat\n"
+#~ "group by cat.color\n"
+#~ "having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc]]>"
+#~ msgstr ""
+#~ "select cat\n"
+#~ "from Cat cat\n"
+#~ " join cat.kittens kitten\n"
+#~ "group by cat.id, cat.name, cat.other, cat.properties\n"
+#~ "having avg(kitten.weight) > 100\n"
+#~ "order by count(kitten) asc, sum(kitten.weight) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as fatcat\n"
+#~ "where fatcat.weight > (\n"
+#~ " select avg(cat.weight) from DomesticCat cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name = some (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not exists (\n"
+#~ " from Cat as mate where mate.mate = cat\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from DomesticCat as cat\n"
+#~ "where cat.name not in (\n"
+#~ " select name.nickName from Name as name\n"
+#~ ")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat]]>"
+#~ msgstr ""
+#~ "select cat.id, (select max(kit.weight) from cat.kitten kit)\n"
+#~ "from Cat as cat"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog.effectiveDate < sysdate\n"
+#~ " and catalog.effectiveDate >= all (\n"
+#~ " select cat.effectiveDate\n"
+#~ " from Catalog as cat\n"
+#~ " where cat.effectiveDate < sysdate\n"
+#~ " )\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc]]>"
+#~ msgstr ""
+#~ "select order.id, sum(price.amount), count(item)\n"
+#~ "from Order as order\n"
+#~ " join order.lineItems as item\n"
+#~ " join item.product as product,\n"
+#~ " Catalog as catalog\n"
+#~ " join catalog.prices as price\n"
+#~ "where order.paid = false\n"
+#~ " and order.customer = :customer\n"
+#~ " and price.product = product\n"
+#~ " and catalog = :currentCatalog\n"
+#~ "group by order\n"
+#~ "having sum(price.amount) > :minAmount\n"
+#~ "order by sum(price.amount) desc"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ " join payment.statusChanges as statusChange\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or (\n"
+#~ " statusChange.timeStamp = (\n"
+#~ " select max(change.timeStamp)\n"
+#~ " from PaymentStatusChange change\n"
+#~ " where change.payment = payment\n"
+#~ " )\n"
+#~ " and statusChange.user <> :currentUser\n"
+#~ " )\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <> :"
+#~ "currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder]]>"
+#~ msgstr ""
+#~ "select count(payment), status.name\n"
+#~ "from Payment as payment\n"
+#~ " join payment.currentStatus as status\n"
+#~ "where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+#~ " or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <"
+#~ "> :currentUser\n"
+#~ "group by status.name, status.sortOrder\n"
+#~ "order by status.sortOrder"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser in elements(account.holder.users)\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate]]>"
+#~ msgstr ""
+#~ "select account, payment\n"
+#~ "from Account as account\n"
+#~ " join account.holder.users as user\n"
+#~ " left outer join account.payments as payment\n"
+#~ "where :currentUser = user\n"
+#~ " and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+#~ "PaymentStatus.UNPAID)\n"
+#~ "order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue()]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue()"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "order by count(msg)"
+
+#, fuzzy
+#~ msgid "<![CDATA[from User usr where size(usr.messages) >= 1]]>"
+#~ msgstr "from User usr where size(usr.messages) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User usr.name\n"
+#~ " join usr.messages msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) >= 1"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0]]>"
+#~ msgstr ""
+#~ "select usr.id, usr.name\n"
+#~ "from User as usr\n"
+#~ " left join usr.messages as msg\n"
+#~ "group by usr.id, usr.name\n"
+#~ "having count(msg) = 0"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createQuery(\"from foo Foo as foo where foo.name=:"
+#~ "name and foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createQuery(\"from foo Foo as foo where foo.name=:name and "
+#~ "foo.size=:size\");\n"
+#~ "q.setProperties(fooBean); // fooBean has getName() and getSize()\n"
+#~ "List foos = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query q = s.createFilter( collection, \"\" ); // the trivial "
+#~ "filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();]]>"
+#~ msgstr ""
+#~ "Query q = s.createFilter( collection, \"\" ); // the trivial filter\n"
+#~ "q.setMaxResults(PAGE_SIZE);\n"
+#~ "q.setFirstResult(PAGE_SIZE * pageNumber);\n"
+#~ "List page = q.list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Collection orderedCollection = s.filter( collection, \"order by "
+#~ "this.amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );]]>"
+#~ msgstr ""
+#~ "Collection orderedCollection = s.filter( collection, \"order by this."
+#~ "amount\" );\n"
+#~ "Collection counts = s.filter( collection, \"select this.type, count(this) "
+#~ "group by this.type\" );"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[( (Integer) session.createQuery(\"select count(*) from ....\")."
+#~ "iterate().next() ).intValue();]]>"
+#~ msgstr ""
+#~ "( (Integer) session.iterate(\"select count(*) from ....\").next() )."
+#~ "intValue();"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name from Person p]]>"
+#~ msgstr "select p.name from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[select p.name.first from Person p]]>"
+#~ msgstr "select p.name.first from from Person p"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name = :name]]>"
+#~ msgstr "from from Person p where p.name = :name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p where p.name.first = :firstName]]>"
+#~ msgstr "from from Person p where p.name.first = :firstName"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name]]>"
+#~ msgstr "from from Person p order by p.name"
+
+#, fuzzy
+#~ msgid "<![CDATA[from Person p order by p.name.first]]>"
+#~ msgstr "from from Person p order by p.name.first"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name.first='John' and p.name."
+#~ "last='Jingleheimer-Schmidt']]>"
+#~ msgstr ""
+#~ "from Person p where p.name.first='John' and p.name.last='Jingleheimer-"
+#~ "Schmidt'"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Person p where p.name=('John', 'Jingleheimer-Schmidt')]]>"
+#~ msgstr "from Person p where p.name=('John', 'Jingleheimer-Schmidt')"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")]]>"
+#~ msgstr ""
+#~ "from Cat as cat\n"
+#~ "where not ( cat.name, cat.color ) in (\n"
+#~ " select cat.name, cat.color from DomesticCat cat\n"
+#~ ")"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_sql.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_sql.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/query_sql.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1255 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:47\n"
+"PO-Revision-Date: 2010-03-16 10:16+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Native SQL"
+msgstr "Native SQL æ¥è¯¢"
+
+#. 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 åºç¨çéè·¯ä¸çéç¢ã "
+
+#. 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 æä½ï¼å
æ¬åå¨è¿ç¨ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Using a <literal>SQLQuery</literal>"
+msgstr "ä½¿ç¨ <literal>SQLQuery</literal>"
+
+#. 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 è¿è¡æ¥è¯¢ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar queries"
+msgstr "æ éæ¥è¯¢ï¼Scalar queriesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The most basic SQL query is to get a list of scalars (values)."
+msgstr "æåºæ¬ç SQL æ¥è¯¢å°±æ¯è·å¾ä¸ä¸ªæ éï¼æ°å¼ï¼çå表ã"
+
+#. 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 æ¥å¤å®è¿åçæ éå¼çå®é
顺åºåç±»åã "
+
+#. 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>ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "This query specified:"
+msgstr "è¿ä¸ªæ¥è¯¢æå®ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string"
+msgstr "SQL æ¥è¯¢å符串"
+
+#. Tag: para
+#, no-c-format
+msgid "the columns and types to return"
+msgstr "è¦è¿åçå段åç±»å"
+
+#. 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> æ¥æ¥è¯¢çï¼å¯è½è·å¾è¶
è¿ååºçè¿ä¸ä¸ªå段ï¼ä¹ä»
ä»
ä¼è¿åè¿ä¸ä¸ªå段ã "
+
+#. Tag: para
+#, no-c-format
+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 çç±»åæ¯æç¡®æåºçã "
+
+#. 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> è°ç¨èªè¡å®ä¹ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Entity queries"
+msgstr "å®ä½æ¥è¯¢ï¼Entity queriesï¼"
+
+#. 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> 让åçæ¥è¯¢è¿åå®ä½å¯¹è±¡ã"
+
+#. Tag: para
+#, no-c-format
+msgid "the entity returned by the query"
+msgstr "è¦è¿åçå®ä½"
+
+#. 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 å®ä½ã"
+
+#. 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> çä¾åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This will allow cat.getDog() to function properly."
+msgstr "è¿æ · cat.getDog() å°±è½æ£å¸¸è¿ä½ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Handling associations and collections"
+msgstr "å¤çå
³èåéåç±»ï¼Handling associations and collectionsï¼"
+
+#. 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> æ¹æ³è¿è¡çï¼è¿ä¸ªæ¹æ³å¯ä»¥è®©ä½ å°å
³èæéåè¿æ¥è¿æ¥ã"
+
+#. 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> çä¸å¯¹å¤å
³èã "
+
+#. 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 æ¥è¯¢æè½åå°çæ大å¯è½äºãä¸é¢çé®é¢å³å°åºç°ï¼è¿åå¤ä¸ªåæ ·ç±»åçå®ä½æä¹åï¼æè
é»è®¤çå«åï¼å段ä¸å¤åæä¹åï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Returning multiple entities"
+msgstr "è¿åå¤ä¸ªå®ä½ï¼Returning multiple entitiesï¼"
+
+#. 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 æ¥è¯¢è¿æ¥äºå¤ä¸ªè¡¨ï¼åä¸ä¸ªå段åå¯è½å¨å¤ä¸ªè¡¨ä¸åºç°å¤æ¬¡ï¼è¿å°±ä¼é æé®é¢ã "
+
+#. Tag: para
+#, no-c-format
+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\"ï¼ä¸å¹é
ï¼è¿å°±ä¼é æ失败ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The following form is not vulnerable to column name duplication:"
+msgstr "ä¸é¢çå½¢å¼å¯ä»¥è§£å³å段åéå¤ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "the SQL query string, with placeholders for Hibernate to inject column aliases"
+msgstr "SQL æ¥è¯¢è¯å¥ï¼å
¶ä¸å
å«å ä½éæ¥è®© Hibernate 注å°å段å«å"
+
+#. Tag: para
+#, no-c-format
+msgid "the entities returned by the query"
+msgstr "æ¥è¯¢è¿åçå®ä½"
+
+#. 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 åå¥ä¸ä½¿ç¨å±æ§å«åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Alias and property references"
+msgstr "å«ååå±æ§å¼ç¨ï¼Alias and property referencesï¼"
+
+#. 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 注å
¥åéçå«åã "
+
+#. 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 "ä¸è¡¨ååºäºä½¿ç¨å«å注å°åæ°çä¸åå¯è½æ§ã注æï¼ä¸é¢ç»æä¸çå«ååªæ¯ç¤ºä¾ï¼å®ç¨æ¶æ¯ä¸ªå«åéè¦å¯ä¸å¹¶ä¸ä¸åçååã "
+
+#. Tag: title
+#, no-c-format
+msgid "Alias injection names"
+msgstr "å«å注å°ï¼alias injection namesï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "æè¿°"
+
+#. Tag: entry
+#, no-c-format
+msgid "Syntax"
+msgstr "è¯æ³"
+
+#. Tag: entry
+#, no-c-format
+msgid "Example"
+msgstr "示ä¾"
+
+#. Tag: entry
+#, no-c-format
+msgid "A simple property"
+msgstr "ç®åå±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].[propertyname]</literal>"
+msgstr "<literal>{[aliasname].[propertyname]</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>A_NAME as {item.name}</literal>"
+msgstr "<literal>A_NAME as {item.name}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A composite property"
+msgstr "å¤åå±æ§"
+
+#. Tag: entry
+#, 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> "
+
+#. Tag: entry
+#, no-c-format
+msgid "Discriminator of an entity"
+msgstr "å®ä½è¾¨å«å¨ï¼Discriminator of an entityï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].class}</literal>"
+msgstr "<literal>{[aliasname].class}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>DISC as {item.class}</literal>"
+msgstr "<literal>DISC as {item.class}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of an entity"
+msgstr "å®ä½çææå±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].*}</literal>"
+msgstr "<literal>{[aliasname].*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{item.*}</literal>"
+msgstr "<literal>{item.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "A collection key"
+msgstr "éåé®ï¼collection keyï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].key}</literal>"
+msgstr "<literal>{[aliasname].key}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>ORGID as {coll.key}</literal>"
+msgstr "<literal>ORGID as {coll.key}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The id of an collection"
+msgstr "éå id"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].id}</literal>"
+msgstr "<literal>{[aliasname].id}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>EMPID as {coll.id}</literal>"
+msgstr "<literal>EMPID as {coll.id}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "The element of an collection"
+msgstr "éåå
ç´ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element}</literal>"
+msgstr "<literal>{[aliasname].element}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>XID as {coll.element}</literal>"
+msgstr "<literal>XID as {coll.element}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "property of the element in the collection"
+msgstr "éåå
ç´ çå±æ§ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.[propertyname]}</literal>"
+msgstr "<literal>{[aliasname].element.[propertyname]}</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>NAME as {coll.element.name}</literal>"
+msgstr "<literal>NAME as {coll.element.name}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the element in the collection"
+msgstr "éåå
ç´ çææå±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{[aliasname].element.*}</literal>"
+msgstr "<literal>{[aliasname].element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.element.*}</literal>"
+msgstr "<literal>{coll.element.*}</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "All properties of the collection"
+msgstr "éåçææå±æ§ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>{coll.*}</literal>"
+msgstr "<literal>{coll.*}</literal>"
+
+#. Tag: title
+#, no-c-format
+msgid "Returning non-managed entities"
+msgstr "è¿åéå管å®ä½ï¼Returning non-managed entitiesï¼"
+
+#. 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 管ççå®ä½ã "
+
+#. Tag: para
+#, no-c-format
+msgid "a result transformer"
+msgstr "ç»æ转æ¢å¨ï¼result transformerï¼"
+
+#. 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 çå¼æ³¨å°å
¥å¯¹åºçå±æ§æè
å段ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Handling inheritance"
+msgstr "å¤ç继æ¿ï¼Handling inheritanceï¼"
+
+#. 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 æ¥è¯¢åè¥å
¶æ¥è¯¢ç»æå®ä½æ¯ç»§æ¿æ ä¸çä¸é¨åï¼å®å¿
é¡»å
å«åºç±»åææåç±»çææå±æ§ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Parameters"
+msgstr "åæ°ï¼Parametersï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Native SQL queries support positional as well as named parameters:"
+msgstr "åçæ¥è¯¢æ¯æä½ç½®åæ°åå½ååæ°ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Named SQL queries"
+msgstr "å½å SQL æ¥è¯¢"
+
+#. 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> æ¹æ³ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><return-join></literal> element is use to join associations and the <literal><load-collection></literal> element is used to define queries which initialize collections,"
+msgstr "<literal><return-join></literal> å <literal><load-collection></literal> å
ç´ æ¯ç¨æ¥è¿æ¥å
³è以åå°æ¥è¯¢å®ä¹ä¸ºé¢å
åå§åå个éåçã "
+
+#. Tag: para
+#, no-c-format
+msgid "A named SQL query may return a scalar value. You must declare the column alias and Hibernate type using the <literal><return-scalar></literal> element:"
+msgstr "ä¸ä¸ªå½åæ¥è¯¢å¯è½ä¼è¿åä¸ä¸ªæ éå¼ãä½ å¿
é¡»ä½¿ç¨ <literal><return-scalar></literal> å
ç´ æ¥æå®å段çå«åå Hibernate ç±»åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can externalize the resultset mapping information in a <literal><resultset></literal> element which will allow you to either reuse them across several named queries or through the <literal>setResultSetMapping()</literal> API."
+msgstr "ä½ å¯ä»¥æç»æéæ å°çä¿¡æ¯æ¾å¨å¤é¨ç <literal><resultset></literal> å
ç´ ä¸ï¼è¿æ ·å°±å¯ä»¥å¨å¤ä¸ªå½åæ¥è¯¢é´ï¼æè
éè¿ <literal>setResultSetMapping()</literal> API æ¥è®¿é®ã "
+
+#. Tag: para
+#, no-c-format
+msgid "You can, alternatively, use the resultset mapping information in your hbm files directly in java code."
+msgstr "å¦å¤ï¼ä½ å¯ä»¥å¨ java 代ç ä¸ç´æ¥ä½¿ç¨ hbm æ件ä¸çç»æéå®ä¹ä¿¡æ¯ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Using return-property to explicitly specify column/alias names"
+msgstr "ä½¿ç¨ return-property æ¥æç¡®å°æå®å段ï¼å«å"
+
+#. Tag: para
+#, no-c-format
+msgid "You can explicitly tell Hibernate what column aliases to use with <literal><return-property></literal>, instead of using the <literal>{}</literal>-syntax to let Hibernate inject its own aliases.For example:"
+msgstr "ä½¿ç¨ <literal><return-property></literal> ä½ å¯ä»¥æç¡®çåè¯ Hibernate 使ç¨åªäºå段å«åï¼è¿å代äºä½¿ç¨ <literal>{}</literal>-è¯æ³ æ¥è®© Hibernate 注å
¥å®èªå·±çå«åãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal><return-property></literal> also works with multiple columns. This solves a limitation with the <literal>{}</literal>-syntax which cannot allow fine grained control of multi-column properties."
+msgstr "<literal><return-property></literal> ä¹å¯ç¨äºå¤ä¸ªå段ï¼å®è§£å³äºä½¿ç¨ <literal>{}</literal>-è¯æ³ä¸è½ç»ç²åº¦æ§å¶å¤ä¸ªå段çéå¶ã "
+
+#. Tag: para
+#, no-c-format
+msgid "In this example <literal><return-property></literal> was used in combination with the <literal>{}</literal>-syntax for injection. This allows users to choose how they want to refer column and properties."
+msgstr "注æå¨è¿ä¸ªä¾åä¸ï¼æ们使ç¨äº <literal><return-property></literal> ç»å <literal>{}</literal> ç注å
¥è¯æ³ãå
许ç¨æ·æ¥éæ©å¦ä½å¼ç¨å段以åå±æ§ã "
+
+#. Tag: para
+#, no-c-format
+msgid "If your mapping has a discriminator you must use <literal><return-discriminator></literal> to specify the discriminator column."
+msgstr "å¦æä½ æ å°ä¸ä¸ªè¯å«å¨ï¼discriminatorï¼ï¼ä½ å¿
é¡»ä½¿ç¨ <literal><return-discriminator></literal> æ¥æå®è¯å«å¨å段ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using stored procedures for querying"
+msgstr "使ç¨åå¨è¿ç¨æ¥æ¥è¯¢"
+
+#. 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 åæ´é«çæ¬çåå¨è¿ç¨ä¾åã "
+
+#. Tag: para
+#, no-c-format
+msgid "To use this query in Hibernate you need to map it via a named query."
+msgstr "å¨ Hibernate éè¦è¦ä½¿ç¨è¿ä¸ªæ¥è¯¢ï¼ä½ éè¦éè¿å½åæ¥è¯¢æ¥æ å°å®ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Stored procedures currently only return scalars and entities. <literal><return-join></literal> and <literal><load-collection></literal> are not supported."
+msgstr "注æåå¨è¿ç¨å½åä»
ä»
è¿åæ éåå®ä½ç°å¨ãä¸æ¯æ <literal><return-join></literal> å <literal><load-collection></literal>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Rules/limitations for using stored procedures"
+msgstr "使ç¨åå¨è¿ç¨çè§ååéå¶"
+
+#. 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> æ¥æ§è¡ä»ä»¬ãè¿äºè§åé对äºä¸åçæ°æ®åºãå 为æ°æ®åºæä¾åæåç§ä¸åçåå¨è¿ç¨è¯æ³åè¯ä¹ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Stored procedure queries cannot be paged with <literal>setFirstResult()/setMaxResults()</literal>."
+msgstr "对åå¨è¿ç¨è¿è¡çæ¥è¯¢æ æ³ä½¿ç¨ <literal>setFirstResult()/setMaxResults()</literal> è¿è¡å页ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The recommended call form is standard SQL92: <literal>{ ? = call functionName(<parameters>) }</literal> or <literal>{ ? = call procedureName(<parameters>}</literal>. Native call syntax is not supported."
+msgstr "建议éç¨çè°ç¨æ¹å¼æ¯æ å SQL92: <literal>{ ? = call functionName(<parameters>) }</literal> æè
<literal>{ ? = call procedureName(<parameters>) }</literal>ãåçè°ç¨è¯æ³ä¸è¢«æ¯æã "
+
+#. Tag: para
+#, no-c-format
+msgid "For Oracle the following rules apply:"
+msgstr "å¯¹äº Oracle æå¦ä¸è§åï¼"
+
+#. 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 çæåã "
+
+#. Tag: para
+#, no-c-format
+msgid "For Sybase or MS SQL server the following rules apply:"
+msgstr "å¯¹äº Sybase æè
MS SQL server æå¦ä¸è§åï¼"
+
+#. 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 å°ååºç¬¬ä¸æ¡ç»æéä½ä¸ºå®çè¿åå¼ï¼å
¶ä»å°è¢«ä¸¢å¼ã "
+
+#. 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>ï¼è¿å¯è½ä¼æçæ´é«ï¼ä½è¿ä¸æ¯å¿
éçã"
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for create, update and delete"
+msgstr "å®å¶ SQL ç¨æ¥ createï¼update å delete"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate3 can use custom SQL for create, update, and delete operations. The SQL can be overridden at the statement level or inidividual column level. This section describes statement overrides. For columns, see <xref linkend=\"mapping-column-read-and-write\" />."
+msgstr "Hibernate3 å¯ä»¥èªå®ä¹ createãupdate å delete æä½ãSQL å¯ä»¥å¨è¯å¥æå个å段级å«è¿è¡è¦çãæ¬èæè¿°äºè¯å¥è¦çã对äºå段è¦çï¼è¯·åè <xref linkend=\"mapping-column-read-and-write\" />ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The class and collection persisters in Hibernate already contain a set of configuration time generated strings (insertsql, deletesql, updatesql etc.). The mapping tags <literal><sql-insert></literal>, <literal><sql-delete></literal>, and <literal><sql-update></literal> override these strings:"
+msgstr "Hibernate3 è½å¤ä½¿ç¨å®å¶ç SQL è¯å¥æ¥æ§è¡ createï¼update å delete æä½ãå¨ Hibernate ä¸ï¼æä¹
åçç±»åéåå·²ç»å
å«äºä¸å¥é
ç½®æ产ççè¯å¥ï¼insertsqlï¼deletesqlï¼updatesql ççï¼ï¼è¿äºæ å°æ è®° <literal><sql-insert></literal>ï¼<literal><sql-delete></literal> å <literal><sql-update></literal> éè½½äºè¿äºè¯å¥ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL is directly executed in your database, so you can use any dialect you like. This will reduce the portability of your mapping if you use database specific SQL."
+msgstr "è¿äº SQL ç´æ¥å¨ä½ çæ°æ®åºéæ§è¡ï¼æä»¥ä½ å¯ä»¥èªç±ç使ç¨ä½ å欢çä»»æè¯æ³ãä½å¦æä½ ä½¿ç¨æ°æ®åºç¹å®çè¯æ³ï¼è¿å½ç¶ä¼éä½ä½ æ å°çå¯ç§»æ¤æ§ã "
+
+#. Tag: para
+#, no-c-format
+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."
+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ãï¼ "
+
+#. 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 æä½çè¯å¥ç第ä¸ä¸ªåæ°æ³¨å为ä¸ä¸ªæ°å¼åè¾åºåæ°ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Custom SQL for loading"
+msgstr "å®å¶è£
è½½ SQL"
+
+#. Tag: para
+#, no-c-format
+msgid "You can also declare your own SQL (or HQL) queries for entity loading. As with inserts, updates, and deletes, this can be done at the individual column level as described in <xref linkend=\"mapping-column-read-and-write\" /> or at the statement level. Here is an example of a statement level override:"
+msgstr "ä½ ä¹å¯ä»¥ä¸ºå®ä½å 载声æèªå·±ç SQLï¼æ HQLï¼ãå¦ <xref linkend=\"mapping-column-read-and-write\" /> ææè¿°çï¼insertsãupdates å deletes å¯ä»¥å¨å段级å«æè¯å¥çº§å«æ¥å®æãä¸é¢æ¯ä¸ä¸ªè¯å¥è¦ççä¾åï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "This is just a named query declaration, as discussed earlier. You can reference this named query in a class mapping:"
+msgstr "è¿åªæ¯ä¸ä¸ªåé¢è®¨è®ºè¿çå½åæ¥è¯¢å£°æï¼ä½ å¯ä»¥å¨ç±»æ å°éå¼ç¨è¿ä¸ªå½åæ¥è¯¢ã "
+
+#. Tag: para
+#, no-c-format
+msgid "This even works with stored procedures."
+msgstr "è¿ä¹å¯ä»¥ç¨äºåå¨è¿ç¨"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even define a query for collection loading:"
+msgstr "ä½ çè³å¯ä»¥å®ä¸ä¸ªç¨äºéåè£
è½½çæ¥è¯¢ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "You can also define an entity loader that loads a collection by join fetching:"
+msgstr "ä½ çè³è¿å¯ä»¥å®ä¹ä¸ä¸ªå®ä½è£
è½½å¨ï¼å®éè¿è¿æ¥æåè£
è½½ä¸ä¸ªéåï¼ "
+
+#~ msgid ""
+#~ "You can also declare your own SQL (or HQL) queries for entity loading:"
+#~ msgstr "ä½ å¯è½éè¦å£°æä½ èªå·±ç SQLï¼æ HQLï¼æ¥è£
è½½å®ä½ï¼"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").list();\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\", Hibernate.STRING)\n"
+#~ " .addScalar(\"BIRTHDATE\", Hibernate.DATE)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\")\n"
+#~ " .addScalar(\"ID\", Hibernate.LONG)\n"
+#~ " .addScalar(\"NAME\")\n"
+#~ " .addScalar(\"BIRTHDATE\")"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat."
+#~ "class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT * FROM CATS\").addEntity(Cat.class);\n"
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE FROM CATS\").addEntity"
+#~ "(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM "
+#~ "CATS\").addEntity(Cat.class);\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS\")."
+#~ "addEntity(Cat.class);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, "
+#~ "D_ID, D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, D_NAME "
+#~ "FROM CATS c, DOGS d \n"
+#~ " WHERE c.DOG_ID = d.D_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dog\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, "
+#~ "CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, CAT_ID "
+#~ "FROM CATS c, DOGS d\n"
+#~ " WHERE c.ID = d.CAT_ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addJoin(\"cat.dogs\");"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE "
+#~ "c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT c.*, m.* FROM CATS c, CATS m WHERE c."
+#~ "MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, "
+#~ "CATS m WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT {cat.*}, {mother.*} FROM CATS c, CATS m "
+#~ "WHERE c.MOTHER_ID = c.ID\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class)"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "String sql = \"SELECT ID as {c.id}, NAME as {c.name}, \" + \n"
+#~ " \"BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother."
+#~ "*} \" +\n"
+#~ " \"FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID\";\n"
+#~ "\n"
+#~ "List loggedCats = sess.createSQLQuery(sql)\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ " .addEntity(\"mother\", Cat.class).list()"
+
+#, 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.*}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]>"
+#~ msgstr ""
+#~ "sess.createSQLQuery(\"SELECT NAME, BIRTHDATE FROM CATS\")\n"
+#~ " .setResultTransformer(Transformers.aliasToBean(CatDTO.class))"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE "
+#~ "NAME like ?\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list(); ]]>"
+#~ msgstr ""
+#~ "Query query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like ?"
+#~ "\").addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(0, \"Pus%\").list();\n"
+#~ " \n"
+#~ "query = sess.createSQLQuery(\"SELECT * FROM CATS WHERE NAME like :name\")."
+#~ "addEntity(Cat.class);\n"
+#~ "List pusList = query.setString(\"name\", \"Pus%\").list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"persons\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex}\n"
+#~ " FROM PERSON person\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List people = sess.getNamedQuery(\"persons\")\n"
+#~ " .setString(\"namePattern\", namePattern)\n"
+#~ " .setMaxResults(50)\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"personsWith\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return-scalar column=\"name\" type=\"string\"/>\n"
+#~ " <return-scalar column=\"age\" type=\"long\"/>\n"
+#~ " SELECT p.NAME AS name,\n"
+#~ " p.AGE AS age,\n"
+#~ " FROM PERSON p WHERE p.NAME LIKE 'Hiber%'\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/>\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " address.STREET AS {address.street},\n"
+#~ " address.CITY AS {address.city},\n"
+#~ " address.STATE AS {address.state},\n"
+#~ " address.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS address\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<resultset name=\"personAddress\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\"/>\n"
+#~ " <return-join alias=\"address\" property=\"person.mailingAddress\"/"
+#~ ">\n"
+#~ "</resultset>\n"
+#~ "\n"
+#~ "<sql-query name=\"personsWith\" resultset-ref=\"personAddress\">\n"
+#~ " SELECT person.NAME AS {person.name},\n"
+#~ " person.AGE AS {person.age},\n"
+#~ " person.SEX AS {person.sex},\n"
+#~ " adddress.STREET AS {address.street},\n"
+#~ " adddress.CITY AS {address.city},\n"
+#~ " adddress.STATE AS {address.state},\n"
+#~ " adddress.ZIP AS {address.zip}\n"
+#~ " FROM PERSON person\n"
+#~ " JOIN ADDRESS adddress\n"
+#~ " ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'\n"
+#~ " WHERE person.NAME LIKE :namePattern\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "List cats = sess.createSQLQuery(\n"
+#~ " \"select {cat.*}, {kitten.*} from cats cat, cats kitten where "
+#~ "kitten.mother = cat.id\"\n"
+#~ " )\n"
+#~ " .setResultSetMapping(\"catAndKitten\")\n"
+#~ " .list();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"mySqlQuery\">\n"
+#~ " <return alias=\"person\" class=\"eg.Person\">\n"
+#~ " <return-property name=\"name\" column=\"myName\"/>\n"
+#~ " <return-property name=\"age\" column=\"myAge\"/>\n"
+#~ " <return-property name=\"sex\" column=\"mySex\"/>\n"
+#~ " </return>\n"
+#~ " SELECT person.NAME AS myName,\n"
+#~ " person.AGE AS myAge,\n"
+#~ " person.SEX AS mySex,\n"
+#~ " FROM PERSON person WHERE person.NAME LIKE :name\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"organizationCurrentEmployments\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " <return-property name=\"endDate\" column=\"myEndDate\"/>\n"
+#~ " </return>\n"
+#~ " SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},\n"
+#~ " STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},\n"
+#~ " REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT\n"
+#~ " WHERE EMPLOYER = :id AND ENDDATE IS NULL\n"
+#~ " ORDER BY STARTDATE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION selectAllEmployments\n"
+#~ " RETURN SYS_REFCURSOR\n"
+#~ "AS\n"
+#~ " st_cursor SYS_REFCURSOR;\n"
+#~ "BEGIN\n"
+#~ " OPEN st_cursor FOR\n"
+#~ " SELECT EMPLOYEE, EMPLOYER,\n"
+#~ " STARTDATE, ENDDATE,\n"
+#~ " REGIONCODE, EID, VALUE, CURRENCY\n"
+#~ " FROM EMPLOYMENT;\n"
+#~ " RETURN st_cursor;\n"
+#~ " END;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/>\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"selectAllEmployees_SP\" callable=\"true\">\n"
+#~ " <return alias=\"emp\" class=\"Employment\">\n"
+#~ " <return-property name=\"employee\" column=\"EMPLOYEE\"/>\n"
+#~ " <return-property name=\"employer\" column=\"EMPLOYER\"/>\n"
+#~ " <return-property name=\"startDate\" column=\"STARTDATE\"/>\n"
+#~ " <return-property name=\"endDate\" column=\"ENDDATE\"/>\n"
+#~ " <return-property name=\"regionCode\" column=\"REGIONCODE\"/"
+#~ ">\n"
+#~ " <return-property name=\"id\" column=\"EID\"/>\n"
+#~ " <return-property name=\"salary\">\n"
+#~ " <return-column name=\"VALUE\"/>\n"
+#~ " <return-column name=\"CURRENCY\"/>\n"
+#~ " </return-property>\n"
+#~ " </return>\n"
+#~ " { ? = call selectAllEmployments() }\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-"
+#~ "insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )"
+#~ "</sql-insert>\n"
+#~ " <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-"
+#~ "update>\n"
+#~ " <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</sql-"
+#~ "insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</sql-"
+#~ "delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}</sql-"
+#~ "update>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <sql-insert callable=\"true\">{call createPerson (?, ?)}</"
+#~ "sql-insert>\n"
+#~ " <sql-delete callable=\"true\">{? = call deletePerson (?)}</"
+#~ "sql-delete>\n"
+#~ " <sql-update callable=\"true\">{? = call updatePerson (?, ?)}"
+#~ "</sql-update>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;]]>"
+#~ msgstr ""
+#~ "CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN "
+#~ "VARCHAR2)\n"
+#~ " RETURN NUMBER IS\n"
+#~ "BEGIN\n"
+#~ "\n"
+#~ " update PERSON\n"
+#~ " set\n"
+#~ " NAME = uname,\n"
+#~ " where\n"
+#~ " ID = uid;\n"
+#~ "\n"
+#~ " return SQL%ROWCOUNT;\n"
+#~ "\n"
+#~ "END updatePerson;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/>\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\" lock-mode=\"upgrade\"/"
+#~ ">\n"
+#~ " SELECT NAME AS {pers.name}, ID AS {pers.id}\n"
+#~ " FROM PERSON\n"
+#~ " WHERE ID=?\n"
+#~ " FOR UPDATE\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Person\">\n"
+#~ " <id name=\"id\">\n"
+#~ " <generator class=\"increment\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"name\" not-null=\"true\"/>\n"
+#~ " <loader query-ref=\"person\"/>\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>]]>"
+#~ msgstr ""
+#~ "<set name=\"employments\" inverse=\"true\">\n"
+#~ " <key/>\n"
+#~ " <one-to-many class=\"Employment\"/>\n"
+#~ " <loader query-ref=\"employments\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"employments\">\n"
+#~ " <load-collection alias=\"emp\" role=\"Person.employments\"/>\n"
+#~ " SELECT {emp.*}\n"
+#~ " FROM EMPLOYMENT emp\n"
+#~ " WHERE EMPLOYER = :id\n"
+#~ " ORDER BY STARTDATE ASC, EMPLOYEE ASC\n"
+#~ "</sql-query>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>]]>"
+#~ msgstr ""
+#~ "<sql-query name=\"person\">\n"
+#~ " <return alias=\"pers\" class=\"Person\"/>\n"
+#~ " <return-join alias=\"emp\" property=\"pers.employments\"/>\n"
+#~ " SELECT NAME AS {pers.*}, {emp.*}\n"
+#~ " FROM PERSON pers\n"
+#~ " LEFT OUTER JOIN EMPLOYMENT emp\n"
+#~ " ON pers.ID = emp.PERSON_ID\n"
+#~ " WHERE ID=?\n"
+#~ "</sql-query>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/quickstart.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/quickstart.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/quickstart.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,12 @@
+#, fuzzy
+msgid ""
+msgstr ""
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Content-Type: text/plain; charset=utf-8\n"
+msgid "ROLES_OF_TRANSLATORS"
+msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+msgid "CREDIT_FOR_TRANSLATORS"
+msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/readonly.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/readonly.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/readonly.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1124 @@
+# Language zh-CN translations for PACKAGE package.
+# Automatically generated, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-25 06:26+0000\n"
+"PO-Revision-Date: 2010-03-25 06:26+0000\n"
+"Last-Translator: Automatically generated\n"
+"Language-Team: none\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#: readonly.xml:33
+#, no-c-format
+msgid "Read-only entities"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:36
+#, no-c-format
+msgid ""
+"Hibernate's treatment of <emphasis>read-only</emphasis> entities may differ "
+"from what you may have encountered elsewhere. Incorrect usage may cause "
+"unexpected results."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:43
+#, no-c-format
+msgid "When an entity is read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:48
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check the entity's simple properties or single-"
+"ended associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:54
+#, no-c-format
+msgid ""
+"Hibernate will not update simple properties or updatable single-ended "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:60
+#, no-c-format
+msgid ""
+"Hibernate will not update the version of the read-only entity if only simple "
+"properties or single-ended updatable associations are changed;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:69
+#, no-c-format
+msgid ""
+"In some ways, Hibernate treats read-only entities the same as entities that "
+"are not read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:75
+#, no-c-format
+msgid ""
+"Hibernate cascades operations to associations as defined in the entity "
+"mapping."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:81
+#, no-c-format
+msgid ""
+"Hibernate updates the version if the entity has a collection with changes "
+"that dirties the entity;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:87
+#, no-c-format
+msgid "A read-only entity can be deleted."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:94
+#, no-c-format
+msgid ""
+"Even if an entity is not read-only, its collection association can be "
+"affected if it contains a read-only entity."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:99
+#, no-c-format
+msgid ""
+"For details about the affect of read-only entities on different property and "
+"association types, see <xref linkend=\"readonly-proptypes\"/>."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:105
+#, no-c-format
+msgid "For details about how to make entities read-only, see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:110
+#, no-c-format
+msgid "Hibernate does some optimizing for read-only entities:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:115
+#, no-c-format
+msgid ""
+"It saves execution time by not dirty-checking simple properties or single-"
+"ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:121
+#, no-c-format
+msgid "It saves memory by deleting database snapshots."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:128
+#, no-c-format
+msgid "Making persistent entities read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:130
+#, no-c-format
+msgid ""
+"Only persistent entities can be made read-only. Transient and detached "
+"entities must be put in persistent state before they can be made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:136
+#, no-c-format
+msgid ""
+"Hibernate provides the following ways to make persistent entities read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:142
+#, no-c-format
+msgid ""
+"you can map an entity class as <emphasis>immutable</emphasis>; when an "
+"entity of an immutable class is made persistent, Hibernate automatically "
+"makes it read-only. see <xref linkend=\"readonly-api-immutable\"/> for "
+"details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:150
+#, no-c-format
+msgid ""
+"you can change a default so that entities loaded into the session by "
+"Hibernate are automatically made read-only; see <xref linkend=\"readonly-api-"
+"loaddefault\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:157
+#, no-c-format
+msgid ""
+"you can make an HQL query or criteria read-only so that entities loaded when "
+"the query or criteria executes, scrolls, or iterates, are automatically made "
+"read-only; see <xref linkend=\"readonly-api-querycriteria\"/> for details"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:165
+#, no-c-format
+msgid ""
+"you can make a persistent entity that is already in the in the session read-"
+"only; see <xref linkend=\"readonly-api-entity\"/> for details"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:174
+#, no-c-format
+msgid "Entities of immutable classes"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:176
+#, no-c-format
+msgid ""
+"When an entity instance of an immutable class is made persistent, Hibernate "
+"automatically makes it read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:180
+#, no-c-format
+msgid ""
+"An entity of an immutable class can created and deleted the same as an "
+"entity of a mutable class."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:185
+#, no-c-format
+msgid ""
+"Hibernate treats a persistent entity of an immutable class the same way as a "
+"read-only persistent entity of a mutable class. The only exception is that "
+"Hibernate will not allow an entity of an immutable class to be changed so it "
+"is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:196
+#, no-c-format
+msgid "Loading persistent entities as read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:199 readonly.xml:286
+#, no-c-format
+msgid "Entities of immutable classes are automatically loaded as read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:205
+#, no-c-format
+msgid ""
+"To change the default behavior so Hibernate loads entity instances of "
+"mutable classes into the session and automatically makes them read-only, "
+"call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:210
+#, no-c-format
+msgid "Session.setDefaultReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:212
+#, no-c-format
+msgid ""
+"To change the default back so entities loaded by Hibernate are not made read-"
+"only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:216
+#, no-c-format
+msgid "Session.setDefaultReadOnly( false );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:218
+#, no-c-format
+msgid "You can determine the current setting by calling:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:221
+#, no-c-format
+msgid "Session.isDefaultReadOnly();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:223
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, entities loaded by the "
+"following are automatically made read-only:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:229
+#, no-c-format
+msgid "Session.load()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:234
+#, no-c-format
+msgid "Session.get()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:239
+#, no-c-format
+msgid "Session.merge()"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:244
+#, no-c-format
+msgid ""
+"executing, scrolling, or iterating HQL queries and criteria; to override "
+"this setting for a particular HQL query or criteria see"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:253
+#, no-c-format
+msgid "Changing this default has no effect on:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:258
+#, no-c-format
+msgid "persistent entities already in the session when the default was changed"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:264
+#, no-c-format
+msgid ""
+"persistent entities that are refreshed via Session.refresh(); a refreshed "
+"persistent entity will only be read-only if it was read-only before "
+"refreshing"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:272
+#, no-c-format
+msgid ""
+"persistent entities added by the application via Session.persist(), Session."
+"save(), and Session.update() Session.saveOrUpdate()"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:283
+#, no-c-format
+msgid "Loading read-only entities from an HQL query/criteria"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:292
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns false (the default) when an HQL query "
+"or criteria executes, then entities and proxies of mutable classes loaded by "
+"the query will not be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:299
+#, no-c-format
+msgid ""
+"You can override this behavior so that entities and proxies loaded by an HQL "
+"query or criteria are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:304
+#, no-c-format
+msgid "For an HQL query, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:307
+#, no-c-format
+msgid "Query.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:309
+#, no-c-format
+msgid ""
+"<literal>Query.setReadOnly( true )</literal> must be called before "
+"<literal>Query.list()</literal>, <literal>Query.uniqueResult()</literal>, "
+"<literal>Query.scroll()</literal>, or <literal>Query.iterate()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:315
+#, no-c-format
+msgid "For an HQL criteria, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:318
+#, no-c-format
+msgid "Criteria.setReadOnly( true );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:320
+#, no-c-format
+msgid ""
+"<literal>Criteria.setReadOnly( true )</literal> must be called before "
+"<literal>Criteria.list()</literal>, <literal>Criteria.uniqueResult()</"
+"literal>, or <literal>Criteria.scroll()</literal>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:326
+#, no-c-format
+msgid ""
+"Entities and proxies that exist in the session before being returned by an "
+"HQL query or criteria are not affected."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:331
+#, no-c-format
+msgid ""
+"Uninitialized persistent collections returned by the query are not affected. "
+"Later, when the collection is initialized, entities loaded into the session "
+"will be read-only if Session.isDefaultReadOnly() returns true."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:338
+#, no-c-format
+msgid ""
+"Using <literal>Query.setReadOnly( true )</literal> or <literal>Criteria."
+"setReadOnly( true )</literal> works well when a single HQL query or criteria "
+"loads all the entities and intializes all the proxies and collections that "
+"the application needs to be read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:346
+#, no-c-format
+msgid ""
+"When it is not possible to load and initialize all necessary entities in a "
+"single query or criteria, you can temporarily change the session default to "
+"load entities as read-only before the query is executed. Then you can "
+"explicitly initialize proxies and collections before restoring the session "
+"default."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:355
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+" \n"
+"setDefaultReadOnly( true );\n"
+"Contract contract = \n"
+" ( Contract ) session.createQuery(\n"
+" \"from Contract where customerName = 'Sherman'\" )\n"
+" .uniqueResult();\n"
+"Hibernate.initialize( contract.getPlan() );\n"
+"Hibernate.initialize( contract.getVariations() );\n"
+"Hibernate.initialize( contract.getNotes() );\n"
+"setDefaultReadOnly( false );\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:357
+#, no-c-format
+msgid ""
+"If Session.isDefaultReadOnly() returns true, then you can use Query."
+"setReadOnly( false ) and Criteria.setReadOnly( false ) to override this "
+"session setting and load entities that are not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:367
+#, no-c-format
+msgid "Making a persistent entity read-only"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:369
+#, no-c-format
+msgid ""
+"Persistent entities of immutable classes are automatically made read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:375
+#, no-c-format
+msgid "To make a persistent entity or proxy read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:378
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, true)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:380
+#, no-c-format
+msgid ""
+"To change a read-only entity or proxy of a mutable class so it is no longer "
+"read-only, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:384
+#, no-c-format
+msgid "Session.setReadOnly(entityOrProxy, false)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:387
+#, no-c-format
+msgid ""
+"When a read-only entity or proxy is changed so it is no longer read-only, "
+"Hibernate assumes that the current state of the read-only entity is "
+"consistent with its database representation. If this is not true, then any "
+"non-flushed changes made before or while the entity was read-only, will be "
+"ignored."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:396
+#, no-c-format
+msgid ""
+"To throw away non-flushed changes and make the persistent entity consistent "
+"with its database representation, call:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:400
+#, no-c-format
+msgid "session.refresh( entity );"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:402
+#, no-c-format
+msgid ""
+"To flush changes made before or while the entity was read-only and make the "
+"database representation consistent with the current state of the persistent "
+"entity:"
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:408
+#, no-c-format
+msgid ""
+"// evict the read-only entity so it is detached\n"
+"session.evict( entity );\n"
+"\n"
+"// make the detached entity (with the non-flushed changes) persistent\n"
+"session.update( entity );\n"
+"\n"
+"// now entity is no longer read-only and its changes can be flushed\n"
+"s.flush();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:413
+#, no-c-format
+msgid "Read-only affect on property type"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:415
+#, no-c-format
+msgid ""
+"The following table summarizes how different property types are affected by "
+"making an entity read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:421
+#, no-c-format
+msgid "Affect of read-only entity on property types"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:427
+#, no-c-format
+msgid "Property/Association Type"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:428
+#, no-c-format
+msgid "Changes flushed to DB?"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:433
+#, no-c-format
+msgid "Simple"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:435
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-simple\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:439
+#, no-c-format
+msgid "<entry>no*</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:443
+#, no-c-format
+msgid "Unidirectional one-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:444
+#, no-c-format
+msgid "Unidirectional many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:445
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-singleended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:451 readonly.xml:452
+#, no-c-format
+msgid "<para>no*</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:457
+#, no-c-format
+msgid "Unidirectional one-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:458
+#, no-c-format
+msgid "Unidirectional many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:459
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manyended-unidir\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:464 readonly.xml:465 readonly.xml:489
+#, no-c-format
+msgid "<para>yes</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:470
+#, no-c-format
+msgid "<para>Bidirectional one-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:471
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetoone-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:475
+#, no-c-format
+msgid "only if the owning entity is not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:479
+#, no-c-format
+msgid "<para>Bidirectional one-to-many/many-to-one</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:480
+#, no-c-format
+msgid "inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:481
+#, no-c-format
+msgid "non-inverse collection"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:482
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-onetomany-manytoone\"/>)"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:488
+#, no-c-format
+msgid "only added/removed entities that are not read-only*"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:494
+#, no-c-format
+msgid "<para>Bidirectional many-to-many</para>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:495
+#, no-c-format
+msgid "(<xref linkend=\"readonly-proptypes-manytomany-bidir\"/>)"
+msgstr ""
+
+#. Tag: entry
+#: readonly.xml:499
+#, no-c-format
+msgid "<entry>yes</entry>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:505
+#, no-c-format
+msgid ""
+"* Behavior is different when the entity having the property/association is "
+"read-only, compared to when it is not read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:511
+#, no-c-format
+msgid "Simple properties"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:513
+#, no-c-format
+msgid ""
+"When a persistent object is read-only, Hibernate does not dirty-check simple "
+"properties."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:518
+#, no-c-format
+msgid ""
+"Hibernate will not synchronize simple property state changes to the "
+"database. If you have automatic versioning, Hibernate will not increment the "
+"version if any simple properties change."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:524
+#, no-c-format
+msgid ""
+"Session session = factory.openSession();\n"
+"Transaction tx = session.beginTransaction();\n"
+"\n"
+"// get a contract and make it read-only\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"\n"
+"// contract.getCustomerName() is \"Sherman\"\n"
+"contract.setCustomerName( \"Yogi\" );\n"
+"tx.commit();\n"
+"\n"
+"tx = session.beginTransaction();\n"
+"\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"// contract.getCustomerName() is still \"Sherman\"\n"
+"...\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:529
+#, no-c-format
+msgid "Unidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:532
+#, no-c-format
+msgid "Unidirectional one-to-one and many-to-one"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:534
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-one and many-to-one associations in "
+"the same way when the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:540
+#, no-c-format
+msgid ""
+"We use the term <emphasis>unidirectional single-ended association</emphasis> "
+"when referring to functionality that is common to unidirectional one-to-one "
+"and many-to-one associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:547
+#, no-c-format
+msgid ""
+"Hibernate does not dirty-check unidirectional single-ended associations when "
+"the owning entity is read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:552
+#, no-c-format
+msgid ""
+"If you change a read-only entity's reference to a unidirectional single-"
+"ended association to null, or to refer to a different entity, that change "
+"will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:560
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, then its references to unidirectional "
+"single-ended associations must be assigned when that entity is first "
+"created. Because the entity is automatically made read-only, these "
+"references can not be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:570
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to unidirectional single-ended associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:576
+#, no-c-format
+msgid ""
+"In the following examples, Contract has a unidirectional many-to-one "
+"association with Plan. Contract cascades save and update operations to the "
+"association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:582
+#, no-c-format
+msgid ""
+"The following shows that changing a read-only entity's many-to-one "
+"association reference to null has no effect on the entity's database "
+"representation."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:588
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and set its plan to null \n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"contract.setPlan( null );\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:590
+#, no-c-format
+msgid ""
+"The following shows that, even though an update to a read-only entity's many-"
+"to-one association has no affect on the entity's database representation, "
+"flush still cascades the save-update operation to the locally changed "
+"association."
+msgstr ""
+
+#. Tag: programlisting
+#: readonly.xml:599
+#, no-c-format
+msgid ""
+"// get a contract with an existing plan;\n"
+"// make the contract read-only and change to a new plan\n"
+"tx = session.beginTransaction();\n"
+"Contract contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"session.setReadOnly( contract, true );\n"
+"Plan newPlan = new Plan( \"new plan\"\n"
+"contract.setPlan( newPlan);\n"
+"tx.commit();\n"
+"\n"
+"// get the same contract\n"
+"tx = session.beginTransaction();\n"
+"contract = ( Contract ) session.get( Contract.class, contractId );\n"
+"newPlan = ( Contract ) session.get( Plan.class, newPlan.getId() ); \n"
+"\n"
+"// contract.getPlan() still refers to the original plan;\n"
+"// newPlan is non-null because it was persisted when \n"
+"// the previous transaction was committed; \n"
+"\n"
+"tx.commit();\n"
+"session.close();"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:604
+#, no-c-format
+msgid "Unidirectional one-to-many and many-to-many"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:606
+#, no-c-format
+msgid ""
+"Hibernate treats unidirectional one-to-many and many-to-many associations "
+"owned by a read-only entity the same as when owned by an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:613
+#, no-c-format
+msgid ""
+"Hibernate dirty-checks unidirectional one-to-many and many-to-many "
+"associations;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:618
+#, no-c-format
+msgid ""
+"The collection can contain entities that are read-only, as well as entities "
+"that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:624
+#, no-c-format
+msgid ""
+"Entities can be added and removed from the collection; changes are flushed "
+"to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:629
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in the collection if they dirty the owning entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:640
+#, no-c-format
+msgid "Bidirectional associations"
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:643
+#, no-c-format
+msgid "<title>Bidirectional one-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:645
+#, no-c-format
+msgid "If a read-only entity owns a bidirectional one-to-one association:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:652
+#, no-c-format
+msgid "Hibernate does not dirty-check the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:657
+#, no-c-format
+msgid ""
+"updates that change the association reference to null or to refer to a "
+"different entity will not be flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:664
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will not increment the version "
+"due to local changes to the association."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:673
+#, no-c-format
+msgid ""
+"If an entity is of an immutable class, and it owns a bidirectional one-to-"
+"one association, then its reference must be assigned when that entity is "
+"first created. Because the entity is automatically made read-only, these "
+"references cannot be updated."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:683
+#, no-c-format
+msgid ""
+"When the owner is not read-only, Hibernate treats an association with a read-"
+"only entity the same as when the association is with an entity that is not "
+"read-only."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:693
+#, no-c-format
+msgid "<title>Bidirectional one-to-many/many-to-one</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:695
+#, no-c-format
+msgid ""
+"A read-only entity has no impact on a bidirectional one-to-many/many-to-one "
+"association if:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:702
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using an inverse collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:708
+#, no-c-format
+msgid ""
+"the read-only entity is on the one-to-many side using a non-inverse "
+"collection;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:714
+#, no-c-format
+msgid ""
+"the one-to-many side uses a non-inverse collection that contains the read-"
+"only entity"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:721
+#, no-c-format
+msgid "When the one-to-many side uses an inverse collection:"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:727
+#, no-c-format
+msgid ""
+"a read-only entity can only be added to the collection when it is created;"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:733
+#, no-c-format
+msgid ""
+"a read-only entity can only be removed from the collection by an orphan "
+"delete or by explicitly deleting the entity."
+msgstr ""
+
+#. Tag: title
+#: readonly.xml:744
+#, no-c-format
+msgid "<title>Bidirectional many-to-many</title>"
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:745
+#, no-c-format
+msgid ""
+"Hibernate treats bidirectional many-to-many associations owned by a read-"
+"only entity the same as when owned by an entity that is not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:752
+#, no-c-format
+msgid "Hibernate dirty-checks bidirectional many-to-many associations."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:757
+#, no-c-format
+msgid ""
+"The collection on either side of the association can contain entities that "
+"are read-only, as well as entities that are not read-only."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:763
+#, no-c-format
+msgid ""
+"Entities are added and removed from both sides of the collection; changes "
+"are flushed to the database."
+msgstr ""
+
+#. Tag: para
+#: readonly.xml:769
+#, no-c-format
+msgid ""
+"If automatic versioning is used, Hibernate will update the version due to "
+"changes in both sides of the collection if they dirty the entity owning the "
+"respective collections."
+msgstr ""
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/session_api.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/session_api.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/session_api.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1343 @@
+# translation of session_api.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: session_api\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-03-16 09:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Working with objects"
+msgstr "ä¸å¯¹è±¡å
±äº"
+
+#. 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 åºç¨ä¸çæ°æ®ã "
+
+#. 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 æ管妥å½ï¼åªæå¼åè
å¨è¿è¡ç³»ç»æ§è½è°ä¼çæ¶åæéè¦è¿è¡äºè§£ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate object states"
+msgstr "Hibernate 对象ç¶æï¼object statesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate defines and supports the following object states:"
+msgstr "Hibernate å®ä¹å¹¶æ¯æä¸å对象ç¶æï¼stateï¼ï¼"
+
+#. 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è¯å¥ï¼ "
+
+#. 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> è¯å¥ã "
+
+#. 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ï¼ã "
+
+#. 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 æ¹æ³ï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Making objects persistent"
+msgstr "使对象æä¹
å"
+
+#. Tag: para
+#, no-c-format
+msgid "Newly instantiated instances of a persistent class are considered <emphasis>transient</emphasis> by Hibernate. We can make a transient instance <emphasis>persistent</emphasis> by associating it with a session:"
+msgstr "Hibernate 认为æä¹
åç±»ï¼persistent classï¼æ°å®ä¾åç对象æ¯<emphasis>ç¬æ¶ï¼Transientï¼</emphasis>çãæ们å¯éè¿å°ç¬æ¶ï¼Transientï¼å¯¹è±¡ä¸ session å
³èèæå®å为<emphasis>æä¹
çï¼Persistentï¼</emphasis>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "If <literal>Cat</literal> has a generated identifier, the identifier is generated and assigned to the <literal>cat</literal> when <literal>save()</literal> is called. If <literal>Cat</literal> has an <literal>assigned</literal> identifier, or a composite key, the identifier should be assigned to the <literal>cat</literal> instance before calling <literal>save()</literal>. You can also use <literal>persist()</literal> instead of <literal>save()</literal>, with the semantics defined in the EJB3 early draft."
+msgstr "å¦æ <literal>Cat</literal> çæä¹
åæ è¯ï¼identifierï¼æ¯ <literal>generated</literal> ç±»åçï¼ é£ä¹è¯¥æ è¯ï¼identifierï¼ä¼èªå¨å¨ <literal>save()</literal> 被è°ç¨æ¶äº§ç并åé
ç» <literal>cat</literal>ãå¦æ <literal>Cat</literal> çæä¹
åæ è¯ï¼identifierï¼æ¯<literal>assigned</literal>ç±»åçï¼ææ¯ä¸ä¸ªå¤å主é®ï¼composite keyï¼ï¼é£ä¹è¯¥æ è¯ï¼identifierï¼åºå½å¨è°ç¨ <literal>save()</literal> ä¹åæå¨èµäºç» <literal>cat</literal>ãä½ ä¹å¯ä»¥æç
§ EJB3 early draft ä¸å®ä¹çè¯ä¹ï¼ä½¿ç¨ <literal>persist()</literal> æ¿ä»£<literal>save()</literal>ã "
+
+#. 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> è¯å¥ãè¿å¯¹äºé¿æè¿è¡ç带ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¯å¾æç¨çã"
+
+#. 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 å°ç«å³æ§è¡ï¼ä¸ç®¡ä½ æ¯å¦å¨äºå¡å
é¨è¿æ¯å¤é¨ãè¿å¯¹äºé¿æè¿è¡ç带ææ©å±ä¼è¯/æä¹
åä¸ä¸æçä¼è¯æ¥è¯´ä¼åºç°é®é¢ã"
+
+#. Tag: para
+#, no-c-format
+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> 约æã "
+
+#. 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ï¼å°å¨æ¬ç« ç¨å讨论ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Loading an object"
+msgstr "è£
载对象"
+
+#. 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ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Alternatively, you can load state into a given instance:"
+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>ï¼é£ä¹ä½¿ç¨è¿ç§æä½æ¹å¼å
许å¤ä¸ªå¯¹è±¡è¢«ä¸æ¹è£
è½½ï¼å 为è¿åçæ¯ä»£çï¼æ éä»æ°æ®åºä¸æåææ对象çæ°æ®ï¼ã "
+
+#. 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ã "
+
+#. 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 æ档以è·åæ´å¤ä¿¡æ¯ã "
+
+#. 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ï¼ã "
+
+#. 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> æ¹æ³å¼ºè¿«è£
载对象åå®çéåãå¦æä½ ä½¿ç¨æ°æ®åºè§¦åå¨åè½æ¥å¤ç对象çæäºå±æ§ï¼è¿ä¸ªæ¹æ³å°±å¾æç¨äºã"
+
+#. 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\" /> ä¸è§£éã "
+
+#. Tag: title
+#, no-c-format
+msgid "Querying"
+msgstr "æ¥è¯¢"
+
+#. 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ï¼è½¬å为对象çæ¯æã "
+
+#. Tag: title
+#, no-c-format
+msgid "Executing queries"
+msgstr "æ§è¡æ¥è¯¢"
+
+#. 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> 对象ï¼"
+
+#. 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>æ¥è¿æ»¤è¿äºéå¤å¯¹è±¡ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Iterating results"
+msgstr "è¿ä»£å¼è·åç»æï¼Iterating resultsï¼"
+
+#. 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 è¯å¥å®ä¾åå®é
ç对象ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Queries that return tuples"
+msgstr "è¿åå
ç»ï¼tuplesï¼çæ¥è¯¢"
+
+#. 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ï¼ä»¥æ°ç»çå½¢å¼è¿å: "
+
+#. Tag: title
+#, no-c-format
+msgid "Scalar results"
+msgstr "æ éï¼Scalarï¼ç»æ"
+
+#. 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ï¼çå®ä½ï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Bind parameters"
+msgstr "ç»å®åæ°"
+
+#. 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ï¼çä¼ç¹æ¯ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "named parameters are insensitive to the order they occur in the query string"
+msgstr "å½ååæ°ï¼named parametersï¼ä¸å
¶å¨æ¥è¯¢ä¸²ä¸åºç°ç顺åºæ å
³"
+
+#. Tag: para
+#, no-c-format
+msgid "they can occur multiple times in the same query"
+msgstr "å®ä»¬å¯å¨åä¸æ¥è¯¢ä¸²ä¸å¤æ¬¡åºç° "
+
+#. Tag: para
+#, no-c-format
+msgid "they are self-documenting"
+msgstr "å®ä»¬æ¬èº«æ¯èªæ说æç"
+
+#. Tag: title
+#, no-c-format
+msgid "Pagination"
+msgstr "å页"
+
+#. 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> æ¥å£æä¾çæ¹æ³ï¼ "
+
+#. 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ï¼ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Scrollable iteration"
+msgstr "å¯æ»å¨éåï¼Scrollable iterationï¼"
+
+#. 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>ï¼å
è®¸ä½ å¨æ¥è¯¢ç»æä¸çµæ´»æ¸¸èµ°ã "
+
+#. 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>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr "å¤ç½®å½åæ¥è¯¢ï¼Externalizing named queriesï¼"
+
+#. 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>å
裹起æ¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Parameter binding and executing is done programatically:"
+msgstr "åæ°ç»å®åæ§è¡ä»¥ç¼ç¨æ¹å¼ï¼programaticallyï¼å®æï¼"
+
+#. 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 ç»ä¸ç®¡çï¼è¾¾å°è¿ç§»çç®çã "
+
+#. Tag: para
+#, no-c-format
+msgid "Also note that a query declaration inside a <literal><hibernate-mapping></literal> element requires a global unique name for the query, while a query declaration inside a <literal><class></literal> element is made unique automatically by prepending the fully qualified name of the class. For example <literal>eg.Cat.ByNameAndMaximumWeight</literal>."
+msgstr "ä¹è¯·æ³¨æå¨ <literal><hibernate-mapping></literal> å
ç´ ä¸å£°æçæ¥è¯¢å¿
é¡»æä¸ä¸ªå
¨å±å¯ä¸çåå,èå¨ <literal><class></literal> å
ç´ ä¸å£°æçæ¥è¯¢èªå¨å
·æå
¨å±å,æ¯éè¿ç±»çå
¨åå 以éå®çãæ¯å¦ <literal>eg.Cat.ByNameAndMaximumWeight</literal>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Filtering collections"
+msgstr "è¿æ»¤éå"
+
+#. 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> æ¥å¼ç¨éåä¸çå½åå
ç´ ã "
+
+#. 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ï¼âçéå«çå«ä¹ä¸ç¬¦ï¼ä¸è¿ä¸æ们æå¾
çè¡ä¸ºä¸è´ï¼ã "
+
+#. 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ï¼ä¸éå®äºåªè½è¿åéåå
ç´ æ¬èº«ã "
+
+#. 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ï¼ä¹æ¯ææä¹çãä¾å¦ï¼ç¨äºå è½½ä¸ä¸ªå¤§éåçåéï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Criteria queries"
+msgstr "æ¡ä»¶æ¥è¯¢ï¼Criteria queriesï¼"
+
+#. 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ã "
+
+#. 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\"/> ä¸è¯¦ç»è®¨è®ºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Queries in native SQL"
+msgstr "使ç¨åç SQL çæ¥è¯¢"
+
+#. 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 å«åç¨å¤§æ¬å·å
å´èµ·æ¥ï¼ "
+
+#. 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ï¼çä¿¡æ¯ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr "ä¿®æ¹æä¹
对象"
+
+#. 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> å®ï¼ç¶åç´æ¥ä¿®æ¹å³å¯ï¼ "
+
+#. 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ï¼å®ä¾ã "
+
+#. 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ï¼æä½æå·§ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr "ä¿®æ¹è±ç®¡ï¼Detachedï¼å¯¹è±¡"
+
+#. 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 "å¾å¤ç¨åºéè¦å¨æ个äºå¡ä¸è·å对象ï¼ç¶åå°å¯¹è±¡åéå°çé¢å±å»æä½ï¼æåå¨ä¸ä¸ªæ°çäºå¡ä¿åæåçä¿®æ¹ãå¨é«å¹¶å访é®çç¯å¢ä¸ä½¿ç¨è¿ç§æ¹å¼ï¼é常使ç¨é带çæ¬ä¿¡æ¯çæ°æ®æ¥ä¿è¯è¿äºâé¿âå·¥ä½åå
ä¹é´çé离ã"
+
+#. 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> éæ°å
³èè±ç®¡å®ä¾çåæ³æ¥æ¯æè¿ç§æ¨¡åã"
+
+#. 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ï¼çæ¶åä¼æåºä¸ä¸ªå¼å¸¸ã"
+
+#. 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ï¼å¯¹è±¡çæä½é¦å
被æ§è¡ã "
+
+#. 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\"/>ã"
+
+#. 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ï¼ç对象å¿
é¡»æ¯æ²¡æä¿®æ¹è¿çã"
+
+#. 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> çå¯ä¸ç¨éã "
+
+#. 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\"/> ä¸è®¨è®ºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic state detection"
+msgstr "èªå¨ç¶ææ£æµ"
+
+#. 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> æ¹æ³å®ç°äºè¿ä¸ªåè½ã"
+
+#. 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>ãæäºç¨åºä»æ¥ä¸ç¨è¿äºæ¹æ³ã"
+
+#. 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>ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "the application loads an object in the first session"
+msgstr "ç¨åºå¨ç¬¬ä¸ä¸ª session ä¸å 载对象"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed up to the UI tier"
+msgstr "è¯¥å¯¹è±¡è¢«ä¼ éå°è¡¨ç°å±"
+
+#. Tag: para
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr "对象åçäºä¸äºæ¹å¨"
+
+#. Tag: para
+#, no-c-format
+msgid "the object is passed back down to the business logic tier"
+msgstr "该对象被è¿åå°ä¸å¡é»è¾å±"
+
+#. Tag: para
+#, no-c-format
+msgid "the application persists these modifications by calling <literal>update()</literal> in a second session"
+msgstr "ç¨åºè°ç¨ç¬¬äºä¸ª session ç <literal>update()</literal> æ¹æ³æä¹
è¿äºæ¹å¨"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>saveOrUpdate()</literal> does the following:"
+msgstr "<literal>saveOrUpdate()</literal> åä¸é¢çäºï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is already persistent in this session, do nothing"
+msgstr "å¦æ对象已ç»å¨æ¬ session ä¸æä¹
åäºï¼ä¸åä»»ä½äº"
+
+#. Tag: para
+#, no-c-format
+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>"
+
+#. 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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "if the object is versioned by a <literal><version></literal> or <literal><timestamp></literal>, and the version property value is the same value assigned to a newly instantiated object, <literal>save()</literal> it"
+msgstr "å¦æ对象æ¯é带çæ¬ä¿¡æ¯çï¼éè¿ <literal><version></literal> æ <literal><timestamp></literal>ï¼å¹¶ä¸çæ¬å±æ§çå¼è¡¨æå
¶æ¯ä¸ä¸ªæ°å®ä¾åç对象ï¼<literal>save()</literal> å®ã "
+
+#. Tag: para
+#, no-c-format
+msgid "otherwise <literal>update()</literal> the object"
+msgstr "å¦å <literal>update()</literal> è¿ä¸ªå¯¹è±¡"
+
+#. Tag: para
+#, no-c-format
+msgid "and <literal>merge()</literal> is very different:"
+msgstr "<literal>merge()</literal> å¯é常ä¸åï¼"
+
+#. 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ï¼çå®ä¾ï¼ç¨ç¨æ·ç»åºç对象çç¶æè¦çæ§æçæä¹
å®ä¾"
+
+#. 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 没æç¸åºçæä¹
å®ä¾ï¼åå°è¯ä»æ°æ®åºä¸å è½½ï¼æå建æ°çæä¹
åå®ä¾"
+
+#. Tag: para
+#, no-c-format
+msgid "the persistent instance is returned"
+msgstr "æåè¿å该æä¹
å®ä¾"
+
+#. Tag: para
+#, no-c-format
+msgid "the given instance does not become associated with the session, it remains detached"
+msgstr "ç¨æ·ç»åºçè¿ä¸ªå¯¹è±¡æ²¡æ被å
³èå° session ä¸ï¼å®ä¾æ§æ¯è±ç®¡ç"
+
+#. Tag: title
+#, no-c-format
+msgid "Deleting persistent objects"
+msgstr "å é¤æä¹
对象"
+
+#. 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ï¼å®ä¾ã "
+
+#. 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> 约æå²çªãä¾å¦ä½ å é¤äºç¶å¯¹è±¡ï¼ä½æ¯å¿è®°å é¤å
¶å对象ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Replicating object between two different datastores"
+msgstr "å¨ä¸¤ä¸ªä¸åæ°æ®åºé´å¤å¶å¯¹è±¡"
+
+#. 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ï¼ï¼å°æä¹
å®ä¾ä»¥åå
¶å
³èçå®ä¾æä¹
å°ä¸åçæ°æ®åºä¸çæä½ã "
+
+#. 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> å¦ä½å¤çã "
+
+#. 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>ï¼å½æ个ç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦æ¶å¿½ç¥å®"
+
+#. Tag: para
+#, no-c-format
+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>ï¼å½æ个ç°ææ°æ®åºè®°å½å
·æç¸åæ è¯ç¬¦æ¶æåºå¼å¸¸"
+
+#. 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>ï¼å¦æå½åççæ¬è¾æ°ï¼åè¦çï¼å¦å忽ç¥"
+
+#. 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 ç缩åï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Flushing the Session"
+msgstr "Session å·åºï¼flushï¼"
+
+#. 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>ï¼é»è®¤ä¼å¨ä¸é¢çæ¶é´ç¹æ§è¡ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "before some query executions"
+msgstr "å¨æäºæ¥è¯¢æ§è¡ä¹å"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>org.hibernate.Transaction.commit()</literal>"
+msgstr "å¨è°ç¨ <literal>org.hibernate.Transaction.commit()</literal> çæ¶å"
+
+#. Tag: para
+#, no-c-format
+msgid "from <literal>Session.flush()</literal>"
+msgstr "å¨è°ç¨ <literal>Session.flush()</literal> çæ¶å"
+
+#. Tag: para
+#, no-c-format
+msgid "The SQL statements are issued in the following order:"
+msgstr "æ¶åç SQL è¯å¥ä¼æç
§ä¸é¢ç顺åºååºæ§è¡ï¼ "
+
+#. 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> çæ¶é´é¡ºåº "
+
+#. Tag: para
+#, no-c-format
+msgid "all entity updates"
+msgstr "ææ对å®ä½è¿è¡æ´æ°çè¯å¥"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection deletions"
+msgstr "ææè¿è¡éåå é¤çè¯å¥"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr "ææ对éåå
ç´ è¿è¡å é¤ï¼æ´æ°æè
æå
¥çè¯å¥"
+
+#. Tag: para
+#, no-c-format
+msgid "all collection insertions"
+msgstr "ææè¿è¡éåæå
¥çè¯å¥"
+
+#. 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> çæ¶é´é¡ºåº "
+
+#. 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 å°±ä¼è¢«æå
¥ã"
+
+#. 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> ç»å¯¹ä¸ä¼è¿åå·²ç»å¤±æçæ°æ®ï¼ä¹ä¸ä¼è¿åé误æ°æ®ã "
+
+#. 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\"/>ï¼ã"
+
+#. 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\"/> ä¸è®¨è®ºã "
+
+#. Tag: title
+#, no-c-format
+msgid "Transitive persistence"
+msgstr "ä¼ ææ§æä¹
åï¼transitive persistenceï¼"
+
+#. 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 "对æ¯ä¸ä¸ªå¯¹è±¡é½è¦æ§è¡ä¿åï¼å é¤æéå
³èæä½è®©äººæè§æç¹éº»ç¦ï¼å°¤å
¶æ¯å¨å¤ç许å¤å½¼æ¤å
³èç对象çæ¶åãä¸ä¸ªå¸¸è§çä¾åæ¯ç¶åå
³ç³»ãèèä¸é¢çä¾åï¼"
+
+#. 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 ä¼å¨æ°æ®åºä¸å é¤è¿ä¸ªå对象ã "
+
+#. 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>ççç¥ã "
+
+#. 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>ãå¦æä½ å¸æä¸ä¸ªæä½è¢«é¡ºçå
³èå
³ç³»çº§èä¼ æï¼ä½ å¿
é¡»å¨æ å°æ件ä¸æåºè¿ä¸ç¹ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Cascade styles my be combined:"
+msgstr "级èé£æ ¼ï¼cascade styleï¼æ¯å¯ç»åçï¼"
+
+#. 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ï¼ã "
+
+#. 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> æä½åºè¯¥è¢«åºç¨äºææä»å
³èä¸å é¤ç对象ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Recommendations:"
+msgstr "建议ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "It does not usually make sense to enable cascade on a <literal><many-to-one></literal> or <literal><many-to-many></literal> association. Cascade is often useful for <literal><one-to-one></literal> and <literal><one-to-many></literal> associations."
+msgstr "éå¸¸å¨ <literal><many-to-one></literal> æ <literal><many-to-many></literal> å
³ç³»ä¸åºç¨çº§èï¼cascadeï¼æ²¡ä»ä¹æä¹ã级èï¼cascadeï¼éå¸¸å¨ <literal><one-to-one></literal> å <literal><one-to-many></literal> å
³ç³»ä¸æ¯è¾æç¨ã "
+
+#. 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>ã "
+
+#. 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>ã"
+
+#. 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 æä½ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Furthermore, a mere reference to a child from a persistent parent will result in save/update of the child. This metaphor is incomplete, however. A child which becomes unreferenced by its parent is <emphasis>not</emphasis> automatically deleted, except in the case of a <literal><one-to-many></literal> association mapped with <literal>cascade=\"delete-orphan\"</literal>. The precise semantics of cascading operations for a parent/child relationship are as follows:"
+msgstr "æ¤å¤ï¼ä¸ä¸ªæä¹
çç¶å¯¹è±¡å¯¹å对象çæµ
å¼ç¨ï¼mere referenceï¼ä¼å¯¼è´å对象被åæ¥ save/updateãä¸è¿ï¼è¿ä¸ªéå»ï¼metaphorï¼ç说æ³å¹¶ä¸å®æ´ãé¤éå
³èæ¯ <literal><one-to-many></literal> å
³è并ä¸è¢«æ 记为 <literal>cascade=\"delete-orphan\"</literal>ï¼å¦åç¶å¯¹è±¡å¤±å»å¯¹æ个å对象çå¼ç¨<emphasis>ä¸ä¼</emphasis>导è´è¯¥å对象被èªå¨å é¤ãç¶åå
³ç³»ç级èï¼cascadingï¼æä½åç¡®è¯ä¹å¦ä¸ï¼ "
+
+#. 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>"
+
+#. 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>"
+
+#. 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>"
+
+#. 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>"
+
+#. Tag: para
+#, no-c-format
+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() å é¤å对象ã"
+
+#. 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 çæ¶åæä½ç¨å°ææå¯è§¦åç被å
³è对象ä¸çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Using metadata"
+msgstr "使ç¨å
æ°æ®"
+
+#. 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 çå
æ°æ®æ¥äºè§£åªäºå¯¹è±¡åºè¯¥è¢«æ·è´ï¼æ¯å¦ï¼å¯åçå¼ç±»åæ°æ®ï¼ï¼é£äºä¸åºè¯¥ï¼ä¸å¯åçå¼ç±»åæ°æ®ï¼ä¹è®¸è¿ææäºè¢«å
³èçå®ä½ï¼ã "
+
+#. 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 ""
+#~ "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
+#~ "fritz.setColor(Color.GINGER);\n"
+#~ "fritz.setSex('M');\n"
+#~ "fritz.setName(\"Fritz\");\n"
+#~ "Long generatedId = (Long) sess.save(fritz);]]>"
+#~ msgstr ""
+#~ "<![CDATA[DomesticCat fritz = new DomesticCat();\n"
+#~ "fritz.setColor(Color.GINGER);\n"
+#~ "fritz.setSex('M');\n"
+#~ "fritz.setName(\"Fritz\");\n"
+#~ "Long generatedId = (Long) sess.save(fritz);]]>"
+#~ msgid ""
+#~ "<![CDATA[DomesticCat pk = new DomesticCat();\n"
+#~ "pk.setColor(Color.TABBY);\n"
+#~ "pk.setSex('F');\n"
+#~ "pk.setName(\"PK\");\n"
+#~ "pk.setKittens( new HashSet() );\n"
+#~ "pk.addKitten(fritz);\n"
+#~ "sess.save( pk, new Long(1234) );]]>"
+#~ msgstr ""
+#~ "<![CDATA[DomesticCat pk = new DomesticCat();\n"
+#~ "pk.setColor(Color.TABBY);\n"
+#~ "pk.setSex('F');\n"
+#~ "pk.setName(\"PK\");\n"
+#~ "pk.setKittens( new HashSet() );\n"
+#~ "pk.addKitten(fritz);\n"
+#~ "sess.save( pk, new Long(1234) );]]>"
+#~ msgid "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
+#~ msgstr "<![CDATA[Cat fritz = (Cat) sess.load(Cat.class, generatedId);]]>"
+#~ msgid ""
+#~ "<![CDATA[// you need to wrap primitive identifiers\n"
+#~ "long id = 1234;\n"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );]]>"
+#~ msgstr ""
+#~ "<![CDATA[// you need to wrap primitive identifiers\n"
+#~ "long id = 1234;\n"
+#~ "DomesticCat pk = (DomesticCat) sess.load( DomesticCat.class, new Long"
+#~ "(id) );]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "// load pk's state into cat\n"
+#~ "sess.load( cat, new Long(pkId) );\n"
+#~ "Set kittens = cat.getKittens();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = new DomesticCat();\n"
+#~ "// load pk's state into cat\n"
+#~ "sess.load( cat, new Long(pkId) );\n"
+#~ "Set kittens = cat.getKittens();]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
+#~ "if (cat==null) {\n"
+#~ " cat = new Cat();\n"
+#~ " sess.save(cat, id);\n"
+#~ "}\n"
+#~ "return cat;]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id);\n"
+#~ "if (cat==null) {\n"
+#~ " cat = new Cat();\n"
+#~ " sess.save(cat, id);\n"
+#~ "}\n"
+#~ "return cat;]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat cat = (Cat) sess.get(Cat.class, id, LockMode.UPGRADE);]]>"
+#~ msgid ""
+#~ "<![CDATA[sess.save(cat);\n"
+#~ "sess.flush(); //force the SQL INSERT\n"
+#~ "sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
+#~ msgstr ""
+#~ "<![CDATA[sess.save(cat);\n"
+#~ "sess.flush(); //force the SQL INSERT\n"
+#~ "sess.refresh(cat); //re-read the state (after the trigger executes)]]>"
+#~ msgid ""
+#~ "<![CDATA[List cats = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.birthdate < ?\")\n"
+#~ " .setDate(0, date)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List mothers = session.createQuery(\n"
+#~ " \"select mother from Cat as cat join cat.mother as mother where cat."
+#~ "name = ?\")\n"
+#~ " .setString(0, name)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List kittens = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.mother = ?\")\n"
+#~ " .setEntity(0, pk)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "Cat mother = (Cat) session.createQuery(\n"
+#~ " \"select cat.mother from Cat as cat where cat = ?\")\n"
+#~ " .setEntity(0, izi)\n"
+#~ " .uniqueResult();]]\n"
+#~ "\n"
+#~ "Query mothersWithKittens = (Cat) session.createQuery(\n"
+#~ " \"select mother from Cat as mother left join fetch mother.kittens"
+#~ "\");\n"
+#~ "Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
+#~ msgstr ""
+#~ "<![CDATA[List cats = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.birthdate < ?\")\n"
+#~ " .setDate(0, date)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List mothers = session.createQuery(\n"
+#~ " \"select mother from Cat as cat join cat.mother as mother where cat."
+#~ "name = ?\")\n"
+#~ " .setString(0, name)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "List kittens = session.createQuery(\n"
+#~ " \"from Cat as cat where cat.mother = ?\")\n"
+#~ " .setEntity(0, pk)\n"
+#~ " .list();\n"
+#~ "\n"
+#~ "Cat mother = (Cat) session.createQuery(\n"
+#~ " \"select cat.mother from Cat as cat where cat = ?\")\n"
+#~ " .setEntity(0, izi)\n"
+#~ " .uniqueResult();]]\n"
+#~ "\n"
+#~ "Query mothersWithKittens = (Cat) session.createQuery(\n"
+#~ " \"select mother from Cat as mother left join fetch mother.kittens"
+#~ "\");\n"
+#~ "Set uniqueMothers = new HashSet(mothersWithKittens.list());]]>"
+#~ msgid ""
+#~ "<![CDATA[// fetch ids\n"
+#~ "Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\")."
+#~ "iterate();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Qux qux = (Qux) iter.next(); // fetch the object\n"
+#~ " // something we couldnt express in the query\n"
+#~ " if ( qux.calculateComplicatedAlgorithm() ) {\n"
+#~ " // delete the current instance\n"
+#~ " iter.remove();\n"
+#~ " // dont need to process the rest\n"
+#~ " break;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// fetch ids\n"
+#~ "Iterator iter = sess.createQuery(\"from eg.Qux q order by q.likeliness\")."
+#~ "iterate();\n"
+#~ "while ( iter.hasNext() ) {\n"
+#~ " Qux qux = (Qux) iter.next(); // fetch the object\n"
+#~ " // something we couldnt express in the query\n"
+#~ " if ( qux.calculateComplicatedAlgorithm() ) {\n"
+#~ " // delete the current instance\n"
+#~ " iter.remove();\n"
+#~ " // dont need to process the rest\n"
+#~ " break;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
+#~ " \"select kitten, mother from Cat kitten join kitten.mother "
+#~ "mother\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( kittensAndMothers.hasNext() ) {\n"
+#~ " Object[] tuple = (Object[]) kittensAndMothers.next();\n"
+#~ " Cat kitten = (Cat) tuple[0];\n"
+#~ " Cat mother = (Cat) tuple[1];\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Iterator kittensAndMothers = sess.createQuery(\n"
+#~ " \"select kitten, mother from Cat kitten join kitten.mother "
+#~ "mother\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( kittensAndMothers.hasNext() ) {\n"
+#~ " Object[] tuple = (Object[]) kittensAndMothers.next();\n"
+#~ " Cat kitten = (Cat) tuple[0];\n"
+#~ " Cat mother = (Cat) tuple[1];\n"
+#~ " ....\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[Iterator results = sess.createQuery(\n"
+#~ " \"select cat.color, min(cat.birthdate), count(cat) from Cat cat "
+#~ "\" +\n"
+#~ " \"group by cat.color\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( results.hasNext() ) {\n"
+#~ " Object[] row = (Object[]) results.next();\n"
+#~ " Color type = (Color) row[0];\n"
+#~ " Date oldest = (Date) row[1];\n"
+#~ " Integer count = (Integer) row[2];\n"
+#~ " .....\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Iterator results = sess.createQuery(\n"
+#~ " \"select cat.color, min(cat.birthdate), count(cat) from Cat cat "
+#~ "\" +\n"
+#~ " \"group by cat.color\")\n"
+#~ " .list()\n"
+#~ " .iterator();\n"
+#~ "\n"
+#~ "while ( results.hasNext() ) {\n"
+#~ " Object[] row = (Object[]) results.next();\n"
+#~ " Color type = (Color) row[0];\n"
+#~ " Date oldest = (Date) row[1];\n"
+#~ " Integer count = (Integer) row[2];\n"
+#~ " .....\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[//named parameter (preferred)\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
+#~ "\");\n"
+#~ "q.setString(\"name\", \"Fritz\");\n"
+#~ "Iterator cats = q.iterate();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//named parameter (preferred)\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = :name"
+#~ "\");\n"
+#~ "q.setString(\"name\", \"Fritz\");\n"
+#~ "Iterator cats = q.iterate();]]>"
+#~ msgid ""
+#~ "<![CDATA[//positional parameter\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
+#~ "q.setString(0, \"Izi\");\n"
+#~ "Iterator cats = q.iterate();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//positional parameter\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name = ?\");\n"
+#~ "q.setString(0, \"Izi\");\n"
+#~ "Iterator cats = q.iterate();]]>"
+#~ msgid ""
+#~ "<![CDATA[//named parameter list\n"
+#~ "List names = new ArrayList();\n"
+#~ "names.add(\"Izi\");\n"
+#~ "names.add(\"Fritz\");\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:"
+#~ "namesList)\");\n"
+#~ "q.setParameterList(\"namesList\", names);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//named parameter list\n"
+#~ "List names = new ArrayList();\n"
+#~ "names.add(\"Izi\");\n"
+#~ "names.add(\"Fritz\");\n"
+#~ "Query q = sess.createQuery(\"from DomesticCat cat where cat.name in (:"
+#~ "namesList)\");\n"
+#~ "q.setParameterList(\"namesList\", names);\n"
+#~ "List cats = q.list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "q.setFirstResult(20);\n"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Query q = sess.createQuery(\"from DomesticCat cat\");\n"
+#~ "q.setFirstResult(20);\n"
+#~ "q.setMaxResults(10);\n"
+#~ "List cats = q.list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from "
+#~ "DomesticCat cat \" +\n"
+#~ " \"order by cat.name\");\n"
+#~ "ScrollableResults cats = q.scroll();\n"
+#~ "if ( cats.first() ) {\n"
+#~ "\n"
+#~ " // find the first name on each page of an alphabetical list of cats "
+#~ "by name\n"
+#~ " firstNamesOfPages = new ArrayList();\n"
+#~ " do {\n"
+#~ " String name = cats.getString(0);\n"
+#~ " firstNamesOfPages.add(name);\n"
+#~ " }\n"
+#~ " while ( cats.scroll(PAGE_SIZE) );\n"
+#~ "\n"
+#~ " // Now get the first page of cats\n"
+#~ " pageOfCats = new ArrayList();\n"
+#~ " cats.beforeFirst();\n"
+#~ " int i=0;\n"
+#~ " while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get"
+#~ "(1) );\n"
+#~ "\n"
+#~ "}\n"
+#~ "cats.close()]]>"
+#~ msgstr ""
+#~ "<![CDATA[Query q = sess.createQuery(\"select cat.name, cat from "
+#~ "DomesticCat cat \" +\n"
+#~ " \"order by cat.name\");\n"
+#~ "ScrollableResults cats = q.scroll();\n"
+#~ "if ( cats.first() ) {\n"
+#~ "\n"
+#~ " // find the first name on each page of an alphabetical list of cats "
+#~ "by name\n"
+#~ " firstNamesOfPages = new ArrayList();\n"
+#~ " do {\n"
+#~ " String name = cats.getString(0);\n"
+#~ " firstNamesOfPages.add(name);\n"
+#~ " }\n"
+#~ " while ( cats.scroll(PAGE_SIZE) );\n"
+#~ "\n"
+#~ " // Now get the first page of cats\n"
+#~ " pageOfCats = new ArrayList();\n"
+#~ " cats.beforeFirst();\n"
+#~ " int i=0;\n"
+#~ " while( ( PAGE_SIZE > i++ ) && cats.next() ) pageOfCats.add( cats.get"
+#~ "(1) );\n"
+#~ "\n"
+#~ "}\n"
+#~ "cats.close()]]>"
+#~ msgid ""
+#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<query name=\"ByNameAndMaximumWeight\"><![CDATA[\n"
+#~ " from eg.DomesticCat as cat\n"
+#~ " where cat.name = ?\n"
+#~ " and cat.weight > ?\n"
+#~ "] ]></query>]]>"
+#~ msgid ""
+#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Query q = sess.getNamedQuery(\"ByNameAndMaximumWeight\");\n"
+#~ "q.setString(0, name);\n"
+#~ "q.setInt(1, minWeight);\n"
+#~ "List cats = q.list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Collection blackKittens = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"where this.color = ?\")\n"
+#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+#~ " .list()\n"
+#~ ");]]>"
+#~ msgstr ""
+#~ "<![CDATA[Collection blackKittens = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"where this.color = ?\")\n"
+#~ " .setParameter( Color.BLACK, Hibernate.custom(ColorUserType.class) )\n"
+#~ " .list()\n"
+#~ ");]]>"
+#~ msgid ""
+#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Collection blackKittenMates = session.createFilter(\n"
+#~ " pk.getKittens(), \n"
+#~ " \"select this.mate where this.color = eg.Color.BLACK.intValue\")\n"
+#~ " .list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Collection tenKittens = session.createFilter(\n"
+#~ " mother.getKittens(), \"\")\n"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Collection tenKittens = session.createFilter(\n"
+#~ " mother.getKittens(), \"\")\n"
+#~ " .setFirstResult(0).setMaxResults(10)\n"
+#~ " .list();]]>"
+#~ msgid ""
+#~ "<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
+#~ "crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
+#~ "crit.setMaxResults(10);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Criteria crit = session.createCriteria(Cat.class);\n"
+#~ "crit.add( Restrictions.eq( \"color\", eg.Color.BLACK ) );\n"
+#~ "crit.setMaxResults(10);\n"
+#~ "List cats = crit.list();]]>"
+#~ msgid ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT "
+#~ "{cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list();]]>"
+#~ msgstr ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\"SELECT {cat.*} FROM CAT "
+#~ "{cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list();]]>"
+#~ msgid ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\n"
+#~ " \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
+#~ " \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... "
+#~ "\" +\n"
+#~ " \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list()]]>"
+#~ msgstr ""
+#~ "<![CDATA[List cats = session.createSQLQuery(\n"
+#~ " \"SELECT {cat}.ID AS {cat.id}, {cat}.SEX AS {cat.sex}, \" +\n"
+#~ " \"{cat}.MATE AS {cat.mate}, {cat}.SUBCLASS AS {cat.class}, ... "
+#~ "\" +\n"
+#~ " \"FROM CAT {cat} WHERE ROWNUM<10\")\n"
+#~ " .addEntity(\"cat\", Cat.class)\n"
+#~ ".list()]]>"
+#~ msgid ""
+#~ "<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long"
+#~ "(69) );\n"
+#~ "cat.setName(\"PK\");\n"
+#~ "sess.flush(); // changes to cat are automatically detected and "
+#~ "persisted]]>"
+#~ msgstr ""
+#~ "<![CDATA[DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long"
+#~ "(69) );\n"
+#~ "cat.setName(\"PK\");\n"
+#~ "sess.flush(); // changes to cat are automatically detected and "
+#~ "persisted]]>"
+#~ msgid ""
+#~ "<![CDATA[// in the first session\n"
+#~ "Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
+#~ "Cat potentialMate = new Cat();\n"
+#~ "firstSession.save(potentialMate);\n"
+#~ "\n"
+#~ "// in a higher layer of the application\n"
+#~ "cat.setMate(potentialMate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.update(cat); // update cat\n"
+#~ "secondSession.update(mate); // update mate]]>"
+#~ msgstr ""
+#~ "<![CDATA[// in the first session\n"
+#~ "Cat cat = (Cat) firstSession.load(Cat.class, catId);\n"
+#~ "Cat potentialMate = new Cat();\n"
+#~ "firstSession.save(potentialMate);\n"
+#~ "\n"
+#~ "// in a higher layer of the application\n"
+#~ "cat.setMate(potentialMate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.update(cat); // update cat\n"
+#~ "secondSession.update(mate); // update mate]]>"
+#~ msgid ""
+#~ "<![CDATA[//just reassociate:\n"
+#~ "sess.lock(fritz, LockMode.NONE);\n"
+#~ "//do a version check, then reassociate:\n"
+#~ "sess.lock(izi, LockMode.READ);\n"
+#~ "//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
+#~ "sess.lock(pk, LockMode.UPGRADE);]]>"
+#~ msgstr ""
+#~ "<![CDATA[//just reassociate:\n"
+#~ "sess.lock(fritz, LockMode.NONE);\n"
+#~ "//do a version check, then reassociate:\n"
+#~ "sess.lock(izi, LockMode.READ);\n"
+#~ "//do a version check, using SELECT ... FOR UPDATE, then reassociate:\n"
+#~ "sess.lock(pk, LockMode.UPGRADE);]]>"
+#~ msgid ""
+#~ "<![CDATA[// in the first session\n"
+#~ "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
+#~ "\n"
+#~ "// in a higher tier of the application\n"
+#~ "Cat mate = new Cat();\n"
+#~ "cat.setMate(mate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.saveOrUpdate(cat); // update existing state (cat has a "
+#~ "non-null id)\n"
+#~ "secondSession.saveOrUpdate(mate); // save the new instance (mate has a "
+#~ "null id)]]>"
+#~ msgstr ""
+#~ "<![CDATA[// in the first session\n"
+#~ "Cat cat = (Cat) firstSession.load(Cat.class, catID);\n"
+#~ "\n"
+#~ "// in a higher tier of the application\n"
+#~ "Cat mate = new Cat();\n"
+#~ "cat.setMate(mate);\n"
+#~ "\n"
+#~ "// later, in a new session\n"
+#~ "secondSession.saveOrUpdate(cat); // update existing state (cat has a "
+#~ "non-null id)\n"
+#~ "secondSession.saveOrUpdate(mate); // save the new instance (mate has a "
+#~ "null id)]]>"
+#~ msgid "<![CDATA[sess.delete(cat);]]>"
+#~ msgstr "<![CDATA[sess.delete(cat);]]>"
+#~ msgid ""
+#~ "<![CDATA[//retrieve a cat from one database\n"
+#~ "Session session1 = factory1.openSession();\n"
+#~ "Transaction tx1 = session1.beginTransaction();\n"
+#~ "Cat cat = session1.get(Cat.class, catId);\n"
+#~ "tx1.commit();\n"
+#~ "session1.close();\n"
+#~ "\n"
+#~ "//reconcile with a second database\n"
+#~ "Session session2 = factory2.openSession();\n"
+#~ "Transaction tx2 = session2.beginTransaction();\n"
+#~ "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
+#~ "tx2.commit();\n"
+#~ "session2.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[//retrieve a cat from one database\n"
+#~ "Session session1 = factory1.openSession();\n"
+#~ "Transaction tx1 = session1.beginTransaction();\n"
+#~ "Cat cat = session1.get(Cat.class, catId);\n"
+#~ "tx1.commit();\n"
+#~ "session1.close();\n"
+#~ "\n"
+#~ "//reconcile with a second database\n"
+#~ "Session session2 = factory2.openSession();\n"
+#~ "Transaction tx2 = session2.beginTransaction();\n"
+#~ "session2.replicate(cat, ReplicationMode.LATEST_VERSION);\n"
+#~ "tx2.commit();\n"
+#~ "session2.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[sess = sf.openSession();\n"
+#~ "Transaction tx = sess.beginTransaction();\n"
+#~ "sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale "
+#~ "state\n"
+#~ "\n"
+#~ "Cat izi = (Cat) sess.load(Cat.class, id);\n"
+#~ "izi.setName(iznizi);\n"
+#~ "\n"
+#~ "// might return stale data\n"
+#~ "sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
+#~ "\n"
+#~ "// change to izi is not flushed!\n"
+#~ "...\n"
+#~ "tx.commit(); // flush occurs\n"
+#~ "sess.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[sess = sf.openSession();\n"
+#~ "Transaction tx = sess.beginTransaction();\n"
+#~ "sess.setFlushMode(FlushMode.COMMIT); // allow queries to return stale "
+#~ "state\n"
+#~ "\n"
+#~ "Cat izi = (Cat) sess.load(Cat.class, id);\n"
+#~ "izi.setName(iznizi);\n"
+#~ "\n"
+#~ "// might return stale data\n"
+#~ "sess.find(\"from Cat as cat left outer join cat.kittens kitten\");\n"
+#~ "\n"
+#~ "// change to izi is not flushed!\n"
+#~ "...\n"
+#~ "tx.commit(); // flush occurs\n"
+#~ "sess.close();]]>"
+#~ msgid "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
+#~ msgstr "<![CDATA[<one-to-one name=\"person\" cascade=\"persist\"/>]]>"
+#~ msgid ""
+#~ "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<one-to-one name=\"person\" cascade=\"persist,delete,lock\"/>]]>"
+#~ msgid ""
+#~ "<![CDATA[Cat fritz = ......;\n"
+#~ "ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
+#~ "\n"
+#~ "Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
+#~ "String[] propertyNames = catMeta.getPropertyNames();\n"
+#~ "Type[] propertyTypes = catMeta.getPropertyTypes();\n"
+#~ "\n"
+#~ "// get a Map of all properties which are not collections or associations\n"
+#~ "Map namedValues = new HashMap();\n"
+#~ "for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( !propertyTypes[i].isEntityType() && !propertyTypes[i]."
+#~ "isCollectionType() ) {\n"
+#~ " namedValues.put( propertyNames[i], propertyValues[i] );\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[Cat fritz = ......;\n"
+#~ "ClassMetadata catMeta = sessionfactory.getClassMetadata(Cat.class);\n"
+#~ "\n"
+#~ "Object[] propertyValues = catMeta.getPropertyValues(fritz);\n"
+#~ "String[] propertyNames = catMeta.getPropertyNames();\n"
+#~ "Type[] propertyTypes = catMeta.getPropertyTypes();\n"
+#~ "\n"
+#~ "// get a Map of all properties which are not collections or associations\n"
+#~ "Map namedValues = new HashMap();\n"
+#~ "for ( int i=0; i<propertyNames.length; i++ ) {\n"
+#~ " if ( !propertyTypes[i].isEntityType() && !propertyTypes[i]."
+#~ "isCollectionType() ) {\n"
+#~ " namedValues.put( propertyNames[i], propertyValues[i] );\n"
+#~ " }\n"
+#~ "}]]>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/toolset_guide.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/toolset_guide.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/toolset_guide.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,968 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-16 10:12+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Toolset Guide"
+msgstr "å·¥å
·ç®±æå"
+
+#. Tag: para
+#, no-c-format
+msgid "Roundtrip engineering with Hibernate is possible using a set of Eclipse plugins, commandline tools, and Ant tasks."
+msgstr "å¯ä»¥éè¿ä¸ç³»å Eclipse æ件ãå½ä»¤è¡å·¥å
·å Ant ä»»å¡æ¥è¿è¡ä¸ Hibernate å
³èç转æ¢ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Hibernate Tools</emphasis> currently include plugins for the Eclipse IDE as well as Ant tasks for reverse engineering of existing databases:"
+msgstr "é¤äº Ant ä»»å¡å¤ï¼å½åç <emphasis>Hibernate Tools</emphasis> ä¹å
å«äº Eclipse IDE çæ件ï¼ç¨äºä¸ç°åæ°æ®åºçéåå·¥ç¨ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Mapping Editor:</emphasis> an editor for Hibernate XML mapping files that supports auto-completion and syntax highlighting. It also supports semantic auto-completion for class names and property/field names, making it more versatile than a normal XML editor."
+msgstr "<emphasis>Mapping Editor:</emphasis> Hibernate XML æ å°æ件çç¼è¾å¨ï¼æ¯æèªå¨å®æåè¯æ³é«äº®ãå®ä¹æ¯æ对类ååå±æ§/å段åçè¯ä¹èªå¨å®æï¼æ¯é常ç XML ç¼è¾å¨æ¹ä¾¿å¾å¤ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Console:</emphasis> the console is a new view in Eclipse. In addition to a tree overview of your console configurations, you are also provided with an interactive view of your persistent classes and their relationships. The console allows you to execute HQL queries against your database and browse the result directly in Eclipse."
+msgstr "<emphasis>Console:</emphasis> Console æ¯ Eclipse çä¸ä¸ªæ°è§å¾ãé¤äºå¯¹ä½ ç console é
ç½®çæ ç¶æ¦è§ï¼ä½ è¿å¯ä»¥è·å¾å¯¹ä½ æä¹
åç±»åå
¶å
³èç交äºå¼è§å¾ãConsole å
è®¸ä½ å¯¹æ°æ®åºæ§è¡ HQL æ¥è¯¢ï¼å¹¶ç´æ¥å¨ Eclipse ä¸æµè§ç»æã "
+
+#. Tag: para
+#, no-c-format
+msgid "<emphasis>Development Wizards:</emphasis> several wizards are provided with the Hibernate Eclipse tools. You can use a wizard to quickly generate Hibernate configuration (cfg.xml) files, or to reverse engineer an existing database schema into POJO source files and Hibernate mapping files. The reverse engineering wizard supports customizable templates."
+msgstr "<emphasis>Development Wizards:</emphasis> å¨ Hibernate Eclipse tools ä¸è¿æä¾äºå 个å导ï¼ä½ å¯ä»¥ç¨å导快éçæ Hibernate é
ç½®æ件ï¼cfg.xmlï¼ï¼ä½ çè³è¿å¯ä»¥åç°åçæ°æ®åº schema ä¸ååå·¥ç¨åº POJO æºä»£ç ä¸ Hibernate æ å°æ件ãååå·¥ç¨æ¯æå¯å®å¶ç模çã "
+
+#. Tag: para
+#, no-c-format
+msgid "Please refer to the <emphasis>Hibernate Tools</emphasis> package documentation for more information."
+msgstr "è¦å¾å°æ´å¤ä¿¡æ¯ï¼è¯·æ¥é
<emphasis>Hibernate Tools</emphasis> å
åå
¶ææ¡£ã "
+
+#. Tag: para
+#, no-c-format
+msgid "However, the Hibernate main package comes bundled with an integrated tool : <emphasis>SchemaExport</emphasis> aka <literal>hbm2ddl</literal>.It can even be used from \"inside\" Hibernate."
+msgstr "åæ¶ï¼Hibernate 主åè¡å
è¿é带äºä¸ä¸ªéæçå·¥å
·ï¼å®çè³å¯ä»¥å¨ Hibernateâå
é¨âå¿«éè¿è¡ï¼<emphasis>SchemaExport</emphasis> ï¼ä¹å°±æ¯ <literal>hbm2ddl</literal>ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Automatic schema generation"
+msgstr "Schema èªå¨çæï¼Automatic schema generationï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "DDL can be generated from your mapping files by a Hibernate utility. The generated schema includes referential integrity constraints, primary and foreign keys, for entity and collection tables. Tables and sequences are also created for mapped identifier generators."
+msgstr "å¯ä»¥ä»ä½ çæ å°æ件使ç¨ä¸ä¸ª Hibernate å·¥å
·çæ DDLãçæç schema å
å«æ对å®ä½åéå类表çå®æ´æ§å¼ç¨çº¦æï¼ä¸»é®åå¤é®ï¼ãæ¶åå°çæ 示符çæå¨æéç表å sequence ä¹ä¼åæ¶çæã "
+
+#. Tag: para
+#, no-c-format
+msgid "You <emphasis>must</emphasis> specify a SQL <literal>Dialect</literal> via the <literal>hibernate.dialect</literal> property when using this tool, as DDL is highly vendor-specific."
+msgstr "å¨ä½¿ç¨è¿ä¸ªå·¥å
·çæ¶åï¼ä½ <emphasis>å¿
é¡»</emphasis> éè¿ <literal>hibernate.dialet</literal> å±æ§æå®ä¸ä¸ª SQL<literal> æ¹è¨ï¼Dialetï¼</literal>ï¼å 为 DDL æ¯ä¸ä¾åºåé«åº¦ç¸å
³çã "
+
+#. Tag: para
+#, no-c-format
+msgid "First, you must customize your mapping files to improve the generated schema. The next section covers schema customization."
+msgstr "é¦å
ï¼è¦å®å¶ä½ çæ å°æ件ï¼æ¥æ¹åçæç schemaãä¸ç« å°æ¶µç schema å®å¶ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing the schema"
+msgstr "对 schema å®å¶åï¼Customizing the schemaï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Many Hibernate mapping elements define optional attributes named <literal>length</literal>, <literal>precision</literal> and <literal>scale</literal>. You can set the length, precision and scale of a column with this attribute."
+msgstr "å¾å¤ Hibernate æ å°å
ç´ å®ä¹äºå¯éç <literal>length</literal>ã<literal>precision</literal> æè
<literal>scale</literal> å±æ§ãä½ å¯ä»¥éè¿è¿ä¸ªå±æ§è®¾ç½®å段çé¿åº¦ã精度ãå°æ°ç¹ä½æ°ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Some tags also accept a <literal>not-null</literal> attribute for generating a <literal>NOT NULL</literal> constraint on table columns, and a <literal>unique</literal> attribute for generating <literal>UNIQUE</literal> constraint on table columns."
+msgstr "æäº tag è¿æ¥å <literal>not-null</literal> å±æ§ï¼ç¨æ¥å¨è¡¨å段ä¸çæ <literal>NOT NULL</literal> 约æï¼å <literal>unique</literal> å±æ§ï¼ç¨æ¥å¨è¡¨å段ä¸çæ <literal>UNIQUE</literal> 约æï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>unique-key</literal> attribute can be used to group columns in a single, unique key constraint. Currently, the specified value of the <literal>unique-key</literal> attribute is <emphasis>not</emphasis> used to name the constraint in the generated DDL. It is only used to group the columns in the mapping file."
+msgstr "<literal>unique-key</literal> å±æ§å¯ä»¥å¯¹æç»çå段æå®ä¸ä¸ªå¯ä¸é®çº¦æï¼unique key constraintï¼ãç®åï¼<literal>unique-key</literal> å±æ§æå®çå¼å¨çæ DDL æ¶<emphasis>并ä¸ä¼</emphasis>被å½ä½è¿ä¸ªçº¦æçååï¼å®ä»¬åªæ¯å¨ç¨æ¥å¨æ å°æ件å
é¨ç¨ä½åºåçã "
+
+#. Tag: para
+#, no-c-format
+msgid "An <literal>index</literal> attribute specifies the name of an index that will be created using the mapped column or columns. Multiple columns can be grouped into the same index by simply specifying the same index name."
+msgstr "<literal>index</literal> å±æ§ä¼ç¨å¯¹åºçå段ï¼ä¸ä¸ªæå¤ä¸ªï¼çæä¸ä¸ª indexï¼å®æåºäºè¿ä¸ª index çååãå¦æå¤ä¸ªå段对åºç index ååç¸åï¼å°±ä¼çæå
å«è¿äºå段ç indexã "
+
+#. Tag: para
+#, no-c-format
+msgid "A <literal>foreign-key</literal> attribute can be used to override the name of any generated foreign key constraint."
+msgstr "<literal>foreign-key</literal> å±æ§å¯ä»¥ç¨æ¥è¦çä»»ä½çæçå¤é®çº¦æçååã "
+
+#. Tag: para
+#, no-c-format
+msgid "Many mapping elements also accept a child <literal><column></literal> element. This is particularly useful for mapping multi-column types:"
+msgstr "å¾å¤æ å°å
ç´ è¿æ¥å <literal><column></literal> åå
ç´ ãè¿å¨å®ä¹è·¨è¶å¤å段çç±»åæ¶ç¹å«æç¨ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>default</literal> attribute allows you to specify a default value for a column.You should assign the same value to the mapped property before saving a new instance of the mapped class."
+msgstr "<literal>default</literal> å±æ§ä¸ºå段æå®ä¸ä¸ªé»è®¤å¼ï¼å¨ä¿å被æ å°çç±»çæ°å®ä¾ä¹åï¼ä½ åºè¯¥å°åæ ·çå¼èµäºå¯¹åºçå±æ§ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>sql-type</literal> attribute allows the user to override the default mapping of a Hibernate type to SQL datatype."
+msgstr "<literal>sql-type</literal> å±æ§å
许ç¨æ·è¦çé»è®¤ç Hibernate ç±»åå° SQL æ°æ®ç±»åçæ å°ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>check</literal> attribute allows you to specify a check constraint."
+msgstr "<literal>check</literal> å±æ§å
许ç¨æ·æå®ä¸ä¸ªçº¦ææ£æ¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following table summarizes these optional attributes."
+msgstr "ä¸è¡¨æ»ç»äºè¿äºå¯éå±æ§ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "æ»ç»"
+
+#. Tag: entry
+#, no-c-format
+msgid "Attribute"
+msgstr "å±æ§ï¼Attributeï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Values"
+msgstr "å¼ï¼Valuesï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "Interpretation"
+msgstr "解éï¼Interpretationï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>length</literal>"
+msgstr "<literal>length</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "number"
+msgstr "æ°å"
+
+#. Tag: entry
+#, no-c-format
+msgid "column length"
+msgstr "å段é¿åº¦"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>precision</literal>"
+msgstr "<literal>precision</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal precision"
+msgstr "精度ï¼decimal precisionï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>scale</literal>"
+msgstr "<literal>scale</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "column decimal scale"
+msgstr "å°æ°ç¹ä½æ°ï¼decimal scaleï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>not-null</literal>"
+msgstr "<literal>not-null</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>true|false</literal>"
+msgstr "<literal>true|false</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should be non-nullable"
+msgstr "ææå段æ¯å¦åºè¯¥æ¯é空ç "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique</literal>"
+msgstr "<literal>unique</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies that the column should have a unique constraint"
+msgstr "æææ¯å¦è¯¥å段å
·ææä¸çº¦æ"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index</literal>"
+msgstr "<literal>index</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>index_name</literal>"
+msgstr "<literal>index_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a (multi-column) index"
+msgstr "ææä¸ä¸ªï¼å¤å段ï¼çç´¢å¼ï¼indexï¼çåå"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique-key</literal>"
+msgstr "<literal>unique-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>unique_key_name</literal>"
+msgstr "<literal>unique_key_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of a multi-column unique constraint"
+msgstr "ææå¤å段æä¸çº¦æçååï¼åè§ä¸é¢ç说æï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign-key</literal>"
+msgstr "<literal>foreign-key</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>foreign_key_name</literal>"
+msgstr "<literal>foreign_key_name</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "specifies the name of the foreign key constraint generated for an association, for a <literal><one-to-one></literal>, <literal><many-to-one></literal>, <literal><key></literal>, or <literal><many-to-many></literal> mapping element. Note that <literal>inverse=\"true\"</literal> sides will not be considered by <literal>SchemaExport</literal>."
+msgstr "ææä¸ä¸ªå¤é®çååï¼å®æ¯ä¸ºå
³èçæçï¼æè
æ¯ä¸º <literal><one-to-one></literal>, <literal><many-to-one></literal>, <literal><key></literal>, or <literal><many-to-many></literal> æ å°å
ç´ ã注æ <literal>inverse=\"true\"</literal> ä¼è¢« <literal>SchemaExport</literal> 忽ç¥ã"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>sql-type</literal>"
+msgstr "<literal>sql-type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>SQL column type</literal>"
+msgstr "<literal>SQL column type</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "overrides the default column type (attribute of <literal><column></literal> element only)"
+msgstr "è¦çé»è®¤çå段类åï¼åªè½ç¨äº <literal><column></literal> å±æ§ï¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>default</literal>"
+msgstr "<literal>default</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "SQL expression"
+msgstr "SQL 表达å¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a default value for the column"
+msgstr "为å段æå®é»è®¤å¼"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>check</literal>"
+msgstr "<literal>check</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "create an SQL check constraint on either column or table"
+msgstr "对å段æ表å å
¥ SQL 约ææ£æ¥"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal><comment></literal> element allows you to specify comments for the generated schema."
+msgstr "<literal><comment></literal> å
ç´ å¯ä»¥è®©ä½ å¨çæç schema ä¸å å
¥æ³¨éã"
+
+#. Tag: para
+#, no-c-format
+msgid "This results in a <literal>comment on table</literal> or <literal>comment on column</literal> statement in the generated DDL where supported."
+msgstr "ç»ææ¯å¨çæç DDL ä¸å
å« <literal>comment on table</literal> æè
<literal>comment on column</literal> è¯å¥ï¼åè¥æ¯æçè¯ï¼ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Running the tool"
+msgstr "è¿è¡è¯¥å·¥å
·"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>SchemaExport</literal> tool writes a DDL script to standard out and/or executes the DDL statements."
+msgstr "<literal>SchemaExport</literal> å·¥å
·æ DDL èæ¬åå°æ åè¾åºï¼åæ¶/æè
æ§è¡ DDL è¯å¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The following table displays the <literal>SchemaExport</literal> command line options"
+msgstr "ä¸è¡¨æ¾ç¤ºäº <literal>SchemaExport</literal> å½ä»¤è¡é项"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options mapping_files</emphasis>"
+msgstr "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaExport</literal> <emphasis>options mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaExport</literal> Command Line Options"
+msgstr "<literal>SchemaExport</literal> å½ä»¤è¡é项"
+
+#. Tag: entry
+#, no-c-format
+msgid "Option"
+msgstr "é项"
+
+#. Tag: entry
+#, no-c-format
+msgid "Description"
+msgstr "æè¿°"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--quiet</literal>"
+msgstr "<literal>--quiet</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not output the script to stdout"
+msgstr "ä¸è¦æèæ¬è¾åºå° stdout "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--drop</literal>"
+msgstr "<literal>--drop</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only drop the tables"
+msgstr "åªè¿è¡ drop tables çæ¥éª¤"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--create</literal>"
+msgstr "<literal>--create</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "only create the tables"
+msgstr "åªå建表"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--text</literal>"
+msgstr "<literal>--text</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export to the database"
+msgstr "ä¸æ§è¡å¨æ°æ®åºä¸è¿è¡çæ¥éª¤ "
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--output=my_schema.ddl</literal>"
+msgstr "<literal>--output=my_schema.ddl</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "output the ddl script to a file"
+msgstr "æè¾åºç ddl èæ¬è¾åºå°ä¸ä¸ªæ件"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--naming=eg.MyNamingStrategy</literal>"
+msgstr "<literal>--naming=eg.MyNamingStrategy</literal> "
+
+#. Tag: entry
+#, no-c-format
+msgid "select a <literal>NamingStrategy</literal>"
+msgstr "éæ© <literal>NamingStrategy</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--config=hibernate.cfg.xml</literal>"
+msgstr "<literal>--config=hibernate.cfg.xml</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read Hibernate configuration from an XML file"
+msgstr "ä» XML æ件读å
¥ Hibernate é
ç½®"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--properties=hibernate.properties</literal>"
+msgstr "<literal>--properties=hibernate.properties</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "read database properties from a file"
+msgstr "ä»æ件读å
¥æ°æ®åºå±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--format</literal>"
+msgstr "<literal>--format</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "format the generated SQL nicely in the script"
+msgstr "æèæ¬ä¸ç SQL è¯å¥å¯¹é½åç¾å"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>--delimiter=;</literal>"
+msgstr "<literal>--delimiter=;</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "set an end of line delimiter for the script"
+msgstr "为èæ¬è®¾ç½®è¡ç»æ符"
+
+#. Tag: para
+#, no-c-format
+msgid "You can even embed <literal>SchemaExport</literal> in your application:"
+msgstr "ä½ çè³å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥ <literal>SchemaExport</literal> å·¥å
·ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Properties"
+msgstr "å±æ§ï¼Propertiesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Database properties can be specified:"
+msgstr "å¯ä»¥éè¿å¦ä¸æ¹å¼æå®æ°æ®åºå±æ§ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "as system properties with <literal>-D</literal><emphasis><property></emphasis>"
+msgstr "éè¿ <literal>-D</literal><emphasis><property></emphasis> ç³»ç»åæ°"
+
+#. Tag: para
+#, no-c-format
+msgid "in <literal>hibernate.properties</literal>"
+msgstr "å¨ <literal>hibernate.properties</literal> æ件ä¸"
+
+#. Tag: para
+#, no-c-format
+msgid "in a named properties file with <literal>--properties</literal>"
+msgstr "ä½äºä¸ä¸ªå
¶å®ååç properties æ件ä¸,ç¶åç¨ <literal>--properties</literal> åæ°æå®"
+
+#. Tag: para
+#, no-c-format
+msgid "The needed properties are:"
+msgstr "æéçåæ°å
æ¬ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "SchemaExport Connection Properties"
+msgstr "SchemaExport è¿æ¥å±æ§"
+
+#. Tag: entry
+#, no-c-format
+msgid "Property Name"
+msgstr "å±æ§å"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.driver_class</literal>"
+msgstr "<literal>hibernate.connection.driver_class</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc driver class"
+msgstr "jdbc driver class"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.url</literal>"
+msgstr "<literal>hibernate.connection.url</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "jdbc url"
+msgstr "jdbc url"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.username</literal>"
+msgstr "<literal>hibernate.connection.username</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "database user"
+msgstr "database user"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.connection.password</literal>"
+msgstr "<literal>hibernate.connection.password</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "user password"
+msgstr "user password"
+
+#. Tag: entry
+#, no-c-format
+msgid "<literal>hibernate.dialect</literal>"
+msgstr "<literal>hibernate.dialect</literal>"
+
+#. Tag: entry
+#, no-c-format
+msgid "dialect"
+msgstr "æ¹è¨ï¼dialectï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant"
+msgstr "ä½¿ç¨ Antï¼Using Antï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaExport</literal> from your Ant build script:"
+msgstr "ä½ å¯ä»¥å¨ä½ ç Ant build èæ¬ä¸è°ç¨ <literal>SchemaExport</literal>ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Incremental schema updates"
+msgstr "对 schema çå¢éæ´æ°ï¼Incremental schema updatesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>SchemaUpdate</literal> tool will update an existing schema with \"incremental\" changes. The <literal>SchemaUpdate</literal> depends upon the JDBC metadata API and, as such, will not work with all JDBC drivers."
+msgstr "<literal>SchemaUpdate</literal> å·¥å
·å¯¹å·²åå¨ç schema éç¨\"å¢é\"æ¹å¼è¿è¡æ´æ°ã注æ <literal>SchemaUpdate</literal> 严éä¾èµäº JDBC metadata APIï¼æ以å®å¹¶é对ææ JDBC 驱å¨é½ææã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options mapping_files</emphasis>"
+msgstr "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaUpdate</literal> <emphasis>options mapping_files</emphasis>"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaUpdate</literal> Command Line Options"
+msgstr "<literal>SchemaUpdate</literal> å½ä»¤è¡é项"
+
+#. Tag: entry
+#, no-c-format
+msgid "do not export the script to the database"
+msgstr "ä¸æèæ¬è¾åºå°æ°æ®åº "
+
+#. Tag: entry
+#, no-c-format
+msgid "specify a <literal>.cfg.xml</literal> file"
+msgstr "æå®ä¸ä¸ª <literal>.cfg.xml</literal> æ件"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaUpdate</literal> in your application:"
+msgstr "ä½ å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥ <literal>SchemaUpdate</literal> å·¥å
·ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for incremental schema updates"
+msgstr "ç¨ Ant æ¥å¢éæ´æ° schemaï¼Using Ant for incremental schema updatesï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaUpdate</literal> from the Ant script:"
+msgstr "ä½ å¯ä»¥å¨ Ant èæ¬ä¸è°ç¨ <literal>SchemaUpdate</literal>ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Schema validation"
+msgstr "Schema æ ¡éª"
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>SchemaValidator</literal> tool will validate that the existing database schema \"matches\" your mapping documents. The <literal>SchemaValidator</literal> depends heavily upon the JDBC metadata API and, as such, will not work with all JDBC drivers. This tool is extremely useful for testing."
+msgstr "<literal>SchemaValidator</literal> å·¥å
·ä¼æ¯è¾æ°æ®åºç°ç¶æ¯å¦ä¸æ å°ææ¡£âå¹é
âã注æï¼<literal>SchemaValidator</literal> 严éä¾èµäº JDBC ç metadata APIï¼å æ¤ä¸æ¯å¯¹ææç JDBC 驱å¨é½éç¨ãè¿ä¸å·¥å
·å¨æµè¯çæ¶åç¹å«æç¨ã "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> <emphasis>options mapping_files</emphasis>"
+msgstr "<literal>java -cp </literal><emphasis>hibernate_classpaths</emphasis> <literal>org.hibernate.tool.hbm2ddl.SchemaValidator</literal> <emphasis>options mapping_files</emphasis>"
+
+#. Tag: para
+#, no-c-format
+msgid "The following table displays the <literal>SchemaValidator</literal> command line options:"
+msgstr "ä¸è¡¨æ¾ç¤ºäº <literal>SchemaValidator</literal> å½ä»¤è¡åæ°ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "<literal>SchemaValidator</literal> Command Line Options"
+msgstr "<literal>SchemaValidator</literal> å½ä»¤è¡åæ°"
+
+#. Tag: para
+#, no-c-format
+msgid "You can embed <literal>SchemaValidator</literal> in your application:"
+msgstr "ä½ å¯ä»¥å¨ä½ çåºç¨ç¨åºä¸åµå
¥ <literal>SchemaValidator</literal>ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Using Ant for schema validation"
+msgstr "ä½¿ç¨ Ant è¿è¡ schema æ ¡éª"
+
+#. Tag: para
+#, no-c-format
+msgid "You can call <literal>SchemaValidator</literal> from the Ant script:"
+msgstr "ä½ å¯ä»¥å¨ Ant èæ¬ä¸è°ç¨ <literal>SchemaValidator</literal>ï¼"
+
+#, fuzzy
+#~ msgid "<![CDATA[<property name=\"zip\" length=\"5\"/>]]>"
+#~ msgstr "<property name=\"zip\" length=\"5\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" precision=\"12\" scale=\"2\"/>]]>"
+#~ msgstr "<property name=\"balance\" precision=\"12\" scale=\"2\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" not-null=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>]]>"
+#~ msgstr ""
+#~ "<element column=\"serialNumber\" type=\"long\" not-null=\"true\" "
+#~ "unique=\"true\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"org\" column=\"orgId\" unique-key="
+#~ "\"OrgEmployeeId\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"org\" column=\"orgId\" unique-key=\"OrgEmployeeId"
+#~ "\"/>\n"
+#~ "<property name=\"employeeId\" unique-key=\"OrgEmployee\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>]]>"
+#~ msgstr ""
+#~ "<property name=\"lastName\" index=\"CustName\"/>\n"
+#~ "<property name=\"firstName\" index=\"CustName\"/>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar"
+#~ "\"/>]]>"
+#~ msgstr ""
+#~ "<many-to-one name=\"bar\" column=\"barId\" foreign-key=\"FKFooBar\"/"
+#~ ">"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length=\"30"
+#~ "\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length=\"20"
+#~ "\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"name\" type=\"my.customtypes.Name\"/>\n"
+#~ " <column name=\"last\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"30\"/>\n"
+#~ " <column name=\"first\" not-null=\"true\" index=\"bar_idx\" length="
+#~ "\"20\"/>\n"
+#~ " <column name=\"initial\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"credits\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"credits\" default=\"10\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<version name=\"version\" type=\"integer\" insert=\"false\">\n"
+#~ " <column name=\"version\" default=\"0\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\" type=\"float\">\n"
+#~ " <column name=\"balance\" sql-type=\"decimal(13,3)\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"foo\" type=\"integer\">\n"
+#~ " <column name=\"foo\" check=\"foo > 10\"/>\n"
+#~ "</property>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Foo\" table=\"foos\" check=\"bar < 100.0\">\n"
+#~ " ...\n"
+#~ " <property name=\"bar\" type=\"float\"/>\n"
+#~ "</class>"
+#~ msgid "length"
+#~ msgstr "length"
+#~ msgid "precision"
+#~ msgstr "precision"
+#~ msgid "scale"
+#~ msgstr "scale"
+#~ msgid "not-null"
+#~ msgstr "not-null"
+#~ msgid "true|false"
+#~ msgstr "true|false"
+#~ msgid "unique"
+#~ msgstr "unique"
+#~ msgid "index"
+#~ msgstr "index"
+#~ msgid "index_name"
+#~ msgstr "index_name"
+#~ msgid "unique-key"
+#~ msgstr "unique-key"
+#~ msgid "unique_key_name"
+#~ msgstr "unique_key_name"
+#~ msgid "foreign-key"
+#~ msgstr "foreign-key"
+
+#, fuzzy
+#~ msgid "foreign_key_name"
+#~ msgstr "foreign-key"
+#~ msgid "sql-type"
+#~ msgstr "sql-type"
+
+#, fuzzy
+#~ msgid "SQL column type"
+#~ msgstr "<literal>SQL column type</literal>"
+#~ msgid "default"
+#~ msgstr "default"
+#~ msgid "check"
+#~ msgstr "check"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<class name=\"Customer\" table=\"CurCust\">\n"
+#~ " <comment>Current customers only</comment>\n"
+#~ " ...\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>]]>"
+#~ msgstr ""
+#~ "<property name=\"balance\">\n"
+#~ " <column name=\"bal\">\n"
+#~ " <comment>Balance in USD</comment>\n"
+#~ " </column>\n"
+#~ "</property>"
+#~ msgid "--quiet"
+#~ msgstr "--quiet"
+#~ msgid "--drop"
+#~ msgstr "--drop"
+#~ msgid "--create"
+#~ msgstr "--create"
+#~ 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"
+#~ msgid "--format"
+#~ msgstr "--format"
+#~ msgid "--delimiter=;"
+#~ msgstr "--delimiter=;"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaExport(cfg).create(false, true);"
+
+#, fuzzy
+#~ msgid "hibernate.connection.driver_class"
+#~ msgstr "hibernate.connection.url"
+#~ msgid "hibernate.connection.url"
+#~ msgstr "hibernate.connection.url"
+#~ msgid "hibernate.connection.username"
+#~ msgstr "hibernate.connection.username"
+#~ msgid "hibernate.connection.password"
+#~ msgstr "hibernate.connection.password"
+#~ msgid "hibernate.dialect"
+#~ msgstr "hibernate.dialect"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaexport\">\n"
+#~ " <taskdef name=\"schemaexport\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaExportTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaexport\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\"\n"
+#~ " text=\"no\"\n"
+#~ " drop=\"no\"\n"
+#~ " delimiter=\";\"\n"
+#~ " output=\"schema-export.sql\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaexport>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaUpdate(cfg).execute(false);"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemaupdate\">\n"
+#~ " <taskdef name=\"schemaupdate\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaUpdateTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemaupdate\n"
+#~ " properties=\"hibernate.properties\"\n"
+#~ " quiet=\"no\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();]]>"
+#~ msgstr ""
+#~ "Configuration cfg = ....;\n"
+#~ "new SchemaValidator(cfg).validate();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemavalidator>\n"
+#~ "</target>]]>"
+#~ msgstr ""
+#~ "<target name=\"schemavalidate\">\n"
+#~ " <taskdef name=\"schemavalidator\"\n"
+#~ " classname=\"org.hibernate.tool.hbm2ddl.SchemaValidatorTask\"\n"
+#~ " classpathref=\"class.path\"/>\n"
+#~ " \n"
+#~ " <schemavalidator\n"
+#~ " properties=\"hibernate.properties\">\n"
+#~ " <fileset dir=\"src\">\n"
+#~ " <include name=\"**/*.hbm.xml\"/>\n"
+#~ " </fileset>\n"
+#~ " </schemaupdate>\n"
+#~ "</target>"
+#~ msgid "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+#~ msgstr "<!-- <emphasis>Ant Tasks:</emphasis> -->"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/transactions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/transactions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/transactions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,922 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-16 09:58+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Transactions and Concurrency"
+msgstr "äºå¡å并å "
+
+#. 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 æ¥è¯¢è¯è¨åä½ ä½¿ç¨çæ°æ®åºç³»ç»çäºå¡é离è§èã "
+
+#. 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ï¼ã "
+
+#. 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ã "
+
+#. 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 ç并è¡æ§å¶ãæ°æ®åºäºå¡ååºç¨ç¨åºçé¿äºå¡ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Session and transaction scopes"
+msgstr "Session åäºå¡èå´ï¼transaction scopeï¼"
+
+#. 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> çå®ä¾æ¥å建ã "
+
+#. 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>ï¼å¯¹è±¡ï¼å æ¤åè¥ä¸ä½¿ç¨çæ¶åå®ä¸æ¶è´¹ä»»ä½èµæºã "
+
+#. 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 "æ¤å¤æ们è¿è¦èèæ°æ®åºäºå¡ãæ°æ®åºäºå¡åºè¯¥å°½å¯è½ççï¼éä½æ°æ®åºä¸çéäºç¨ãæ°æ®åºé¿äºå¡ä¼é»æ¢ä½ çåºç¨ç¨åºæ©å±å°é«ç并åè´è½½ãå æ¤ï¼åè¥å¨ç¨æ·æèæé´è®©æ°æ®åºäºå¡å¼çï¼ç´å°æ´ä¸ªå·¥ä½åå
å®ææå
³éè¿ä¸ªäºå¡ï¼è¿ç»ä¸æ¯ä¸ä¸ªå¥½ç设计ã "
+
+#. 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>ï¼ä½ åå¦ä½ååæ°æ®åºäºå¡çè¾¹çå¢ï¼æ们å°å¨åç»ç« è解å³è¿äºé®é¢ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Unit of work"
+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\" ææ¶ä¹åå·¥ä½åå
ä¸èµ·ä½¿ç¨ã"
+
+#. 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 è¡ä¸ºï¼å 为å¾å¤å°çäºå¡æ¯ä¸ä¸ªæ¸
æ°å®ä¹çå·¥ä½åå
æ§è½å·®ãåè
ä¹æ´å®¹æç»´æ¤åæ©å±ã "
+
+#. 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> ä¹åæ交äºå¡ãä¼è¯å请æ±ä¹é´çå
³ç³»æ¯ä¸å¯¹ä¸çå
³ç³»ï¼è¿ç§æ¨¡å¼å¯¹ äºå¤§å¤æ°åºç¨ç¨åºæ¥è¯´æ¯å¾æ£çã "
+
+#. 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ï¼è¿å¯¹æç¨æ§å代ç å¯ç§»æ¤æ§é½æ好å¤ã "
+
+#. 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\"/>ã"
+
+#. 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> è¿ä¸æ¨¡å¼çæ示å示ä¾ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Long conversations"
+msgstr "é¿å¯¹è¯"
+
+#. 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 çåºç¨åä¼ä¸åºç¨ä¸ï¼è·¨ç¨æ·äº¤äºçæ°æ®åºäºå¡æ¯æ æ³æ¥åçãèèä¸é¢çä¾åï¼ "
+
+#. 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ï¼çãç¨æ·å¯ä»¥éæä¿®æ¹å¯¹è¯æ¡ä¸çæ°æ®å¯¹è±¡ã "
+
+#. 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 åéåï¼ç¨æ·ç¹å»âä¿åâï¼æææååºçä¿®æ¹è¢«æä¹
åï¼åæ¶ä»ä¹ææèªå·±æ¯å¯ä¸ä¿®æ¹è¿ä¸ªä¿¡æ¯ç人ï¼ä¸ä¼åºç°ä¿®æ¹å²çªã "
+
+#. 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ï¼ãå¨ä½ çåºç¨ç¨åºä¸ï¼å¯ä»¥æå¾å¤ç§æ¹æ³æ¥å®ç°å®ã"
+
+#. 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> åæ°æ®åºäºå¡æ¯æå¼çï¼ä¿ææ°æ®åºéå®ï¼ä»¥é»æ¢å¹¶åä¿®æ¹ï¼ä»èä¿è¯æ°æ®åºäºå¡é离级å«åååæä½ãè¿ç§æ¹å¼å½ç¶æ¯ä¸ä¸ªå模å¼ï¼å 为éäºç¨ä¼å¯¼è´åºç¨ç¨åºæ æ³æ©å±å¹¶åç¨æ·çæ°ç®ã "
+
+#. 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 çä¸è¿°ç¹æ§çæ¶åï¼ "
+
+#. 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 è½å¤èªå¨æ£æµå°ãä¸è¬æ们åªå¨å¯¹è¯ç»ææ¶ææ£æ¥ã"
+
+#. 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>ãèªå¨çæ¬å被ç¨æ¥é离并åä¿®æ¹ã"
+
+#. 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ã "
+
+#. 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> åæä¼ç¼ºç¹ï¼æ们å¨æ¬ç« åé¢ä¹è§å¹¶åæ§å¶é£é¨ååè¿è¡è®¨è®ºã "
+
+#. Tag: title
+#, no-c-format
+msgid "Considering object identity"
+msgstr "å
³æ³¨å¯¹è±¡æ è¯ï¼Considering object identityï¼"
+
+#. 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> ä¸å
±äº«ãå æ¤æ两ç§ä¸åçæ è¯è¯ä¹ï¼ "
+
+#. Tag: term
+#, no-c-format
+msgid "Database Identity"
+msgstr "æ°æ®åºæ è¯"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo.getId().equals( bar.getId() )</literal>"
+msgstr "<literal>foo.getId().equals( bar.getId() )</literal> "
+
+#. Tag: term
+#, no-c-format
+msgid "JVM Identity"
+msgstr "JVM æ è¯"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>foo==bar</literal>"
+msgstr "<literal>foo==bar</literal>"
+
+#. 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 è¯å«æ¥çï¼ãè¿ç§å²çªå¯ä»¥éè¿å¨åæ¥åæ交çæ¶å使ç¨èªå¨çæ¬ååä¹è§éå®æ¹æ³æ¥è§£å³ã "
+
+#. 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> è¿è¡å¯¹è±¡æ¯è¾ã "
+
+#. 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 对象æ è¯åå¤çè¡ä¸ºå¦ä½å®ç°çé®é¢ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Common issues"
+msgstr "常è§é®é¢"
+
+#. 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>ï¼å½ç¶ï¼è¿ä¸ªè§å®å ä¹æ²¡æä¾å¤ï¼ã请注æï¼ä¸è¿°ä¸äºé®é¢å¯è½ä¹ä¼åºç°å¨æ们æ¨èç模å¼ä¸ï¼å¨ä½ ä½åºæ个设计å³å®ä¹åï¼è¯·å¡å¿
ç解该模å¼çåºç¨åæã "
+
+#. 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>ã "
+
+#. 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> ç»å®å°ä¸ä¸ªåºç¨ç¨åºä¸ï¼ä½ å¿
é¡»åæ¢è¯¥åºç¨ç¨åºãåæ»æ°æ®åºäºå¡å¹¶ä¸ä¼æä½ çä¸å¡å¯¹è±¡éåå°äºå¡å¯å¨æ¶åçç¶æãè¿æå³çæ°æ®åºç¶æåä¸å¡å¯¹è±¡ç¶æä¸åæ¥ãé常æ
åµä¸ï¼è¿ä¸æ¯ä»ä¹é®é¢ï¼å 为å¼å¸¸æ¯ä¸å¯æ¢å¤çï¼ä½ å¿
é¡»å¨åæ»ä¹åéæ°å¼å§æ§è¡ã "
+
+#. 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> æå¼ä¹æå³çåºç°èæ°æ®çå¯è½æ§å¾é«ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr "æ°æ®åºäºå¡å£°æ"
+
+#. 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 "æ°æ®åºï¼æè
ç³»ç»ï¼äºå¡ç声ææ»æ¯å¿
é¡»çãå¨æ°æ®åºäºå¡ä¹å¤ï¼å°±æ æ³åæ°æ®åºé讯ï¼è¿å¯è½ä¼è®©é£äºä¹ æ¯äºèªå¨æ交äºå¡æ¨¡å¼çå¼å人åæå°è¿·æï¼ãæ°¸è¿ä½¿ç¨æ¸
æ°çäºå¡å£°æï¼å³ä½¿åªè¯»æä½ä¹æ¯å¦æ¤ãè¿è¡ æ¾å¼çäºå¡å£°æ并ä¸æ»æ¯éè¦çï¼è¿åå³äºä½ çäºå¡é离级å«åæ°æ®åºçè½åï¼ä½ä¸ç®¡æä¹è¯´ï¼å£°æäºå¡æ»å½æçæ 害ãå½ç¶ï¼ä¸ä¸ªåç¬çæ°æ®åºäºå¡æ»æ¯æ¯å¾å¤çç¢çäºå¡æ§è½æ´å¥½ï¼å³æ¶å¯¹è¯»æ°æ®èè¨ä¹æ¯ä¸æ ·ã "
+
+#. 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> çåæ¥ä¹å¯ä»¥èªå¨å®æã "
+
+#. 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ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Ending a <literal>Session</literal> usually involves four distinct phases:"
+msgstr "é常æ
åµä¸ï¼ç»æ <literal>Session</literal> å
å«äºå个ä¸åçé¶æ®µï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "flush the session"
+msgstr "åæ¥ sessionï¼flushï¼å·åºå°ç£çï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "commit the transaction"
+msgstr "æ交äºå¡"
+
+#. Tag: para
+#, no-c-format
+msgid "close the session"
+msgstr "å
³é session"
+
+#. Tag: para
+#, no-c-format
+msgid "handle exceptions"
+msgstr "å¤çå¼å¸¸"
+
+#. 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ï¼å·åºï¼åé¢å·²ç»è®¨è®ºè¿äºï¼æ们ç°å¨è¿ä¸æ¥èå¯å¨æ管åéæ管ç¯å¢ä¸çäºå¡å£°æåå¼å¸¸å¤çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Non-managed environment"
+msgstr "éæ管ç¯å¢"
+
+#. 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 å¤çæ¹å¼å¦ä¸æç¤ºï¼ "
+
+#. 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 <link linkend=\"objectstate-flushing\">FlushMode</link> for the session. A call to <literal>close()</literal> marks the end of a session. The main implication of <literal>close()</literal> is that the JDBC connection will be relinquished by the session. This Java code is portable and runs in both non-managed and JTA environments."
+msgstr "ä½ ä¸éè¦æ¾å¼ <literal>flush()</literal> <literal>Session</literal> â 对 <literal>commit()</literal> çè°ç¨ä¼èªå¨è§¦å session çåæ¥ï¼åå³äº session ç <xref linkend=\"objectstate-flushing\" />ï¼ãè°ç¨ <literal>close()</literal> æ å¿ session çç»æã<literal>close()</literal> æ¹æ³éè¦çæ示æ¯ï¼<literal>session</literal> éæ¾äº JDBC è¿æ¥ãè¿æ®µ Java 代ç å¨éæ管ç¯å¢ä¸å JTA ç¯å¢ä¸é½å¯ä»¥è¿è¡ã "
+
+#. Tag: para
+#, no-c-format
+msgid "As outlined earlier, a much more flexible solution is Hibernate's built-in \"current session\" context management:"
+msgstr "æ´å çµæ´»çæ¹æ¡æ¯ Hibernate å
ç½®ç \"current session\" ä¸ä¸æ管çï¼åæå·²ç»è®²è¿ï¼ "
+
+#. 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>ãå¼å¸¸å¤çå°å¨æ¬ç« ç¨åè¿è¡è®¨è®ºã "
+
+#. 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Using JTA"
+msgstr "ä½¿ç¨ JTA"
+
+#. 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 éæã "
+
+#. 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 äºå¡ãå æ¤ï¼äºå¡ç®¡ç代ç åå¨éæ管ç¯å¢ä¸æ¯ä¸æ ·çã "
+
+#. 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ã "
+
+#. 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 çé¨ç½²æ述符ä¸ï¼èä¸éè¦ç¼ç¨ãå æ¤ï¼ä»£ç 被ç®å为ï¼"
+
+#. 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>"
+
+#. 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>ã "
+
+#. 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>ãï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Exception handling"
+msgstr "å¼å¸¸å¤ç"
+
+#. 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>ã"
+
+#. 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> çéæ£æ¥æå¼å¸¸ãè¿äºå¼å¸¸åæ ·ä¹æ¯æ æ³æ¢å¤çï¼åºè¯¥ éåæäºç¸åºçæä½å»å¤çã"
+
+#. 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> åç±»åæ¯ï¼ "
+
+#. Tag: para
+#, no-c-format
+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 è¯å¥çè¯æ³æè
æ ¼å¼é误ã"
+
+#. Tag: para
+#, no-c-format
+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>ï¼ææäºå¨æ§è¡è¯·æ±æä½æ¶ï¼è·åæéçé级å«æ¶åºç°çé误ã"
+
+#. 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>ï¼ä¸å±äºä»»ä½å
¶ä»ç§ç±»çåçå¼å¸¸ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Transaction timeout"
+msgstr "äºå¡è¶
æ¶"
+
+#. 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> 对象è¿è¡æ½è±¡ã "
+
+#. 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 ä¸è°ç¨ï¼æ¤æ¶äºå¡è¶
æ¶å¼åºè¯¥æ¯è¢«å£°æå¼å®ä¹çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr "ä¹è§å¹¶åæ§å¶ï¼Optimistic concurrency controlï¼"
+
+#. 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 为使ç¨ä¹è§å¹¶åæ§å¶ç代ç æä¾äºä¸ç§å¯ è½çæ¹æ³ï¼åºç¨ç¨åºå¨ç¼åè¿äºä»£ç æ¶ï¼å¯ä»¥éç¨å®ä»¬ãæ们已ç»å¨åé¢åºç¨ç¨åºå¯¹è¯é£é¨åå±ç¤ºäº ä¹è§å¹¶åæ§å¶çåºç¨åºæ¯ï¼æ¤å¤ï¼å¨å个æ°æ®åºäºå¡èå´å
ï¼çæ¬æ£æ¥ä¹æä¾äºé²æ¢æ´æ°ä¸¢å¤±ç好å¤ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Application version checking"
+msgstr "åºç¨ç¨åºçº§å«ççæ¬æ£æ¥ï¼Application version checkingï¼"
+
+#. 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 æç¸ä¼¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The <literal>version</literal> property is mapped using <literal><version></literal>, and Hibernate will automatically increment it during flush if the entity is dirty."
+msgstr "<literal>version</literal> å±æ§ä½¿ç¨ <literal><version></literal> æ¥æ å°ï¼å¦æ对象æ¯èæ°æ®ï¼å¨åæ¥çæ¶åï¼Hibernate ä¼èªå¨å¢å çæ¬å·ã"
+
+#. 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>ï¼å°±æ¯ä½ çé¿å¯¹è¯çé»è®¤å¤ççç¥ã请记ä½è¿ç§çç¥å¯è½ä¼è®©åºç¨è½¯ä»¶çç¨æ·æå°å°æï¼å 为ä»ä»¬æå¯è½ä¼ç¢°ä¸æ´æ°ä¸¢å¤±æå´æ²¡æåºéä¿¡æ¯ï¼æè
éè¦å并æ´æ¹å²çªçæ
åµã "
+
+#. 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> çæ¹å¼ï¼æè
è±ç®¡å¯¹è±¡å®ä¾çæ¹å¼æ¥æä¾èªå¨çæ¬æ£æ¥ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Extended session and automatic versioning"
+msgstr "æ©å±å¨æç session åèªå¨çæ¬å"
+
+#. 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 å¨åæ¥çæ¶åè¿è¡å¯¹è±¡å®ä¾ççæ¬æ£æ¥ï¼å¦ææ£æµå°å¹¶åä¿®æ¹åæåºå¼å¸¸ãç±å¼å人åæ¥å³å®æ¯å¦éè¦æè·åå¤çè¿ä¸ªå¼å¸¸ï¼é常çææ©æ¯ç»ç¨æ· æä¾ä¸ä¸ªå并æ´æ¹ï¼æè
å¨æ èæ°æ®æ
åµä¸éæ°è¿è¡ä¸å¡å¯¹è¯çæºä¼ï¼ã "
+
+#. 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 è¿æ¥ãè¿ç§æ¹å¼ä»¥æ°æ®åºè®¿é®çè§åº¦æ¥è¯´æ¯æé«æçæ¹å¼ãåºç¨ç¨åºä¸éè¦å
³å¿çæ¬æ£æ¥æè±ç®¡å¯¹è±¡å®ä¾çéæ°å
³èï¼å¨æ¯ä¸ªæ°æ®åºäºå¡ä¸ï¼åºç¨ç¨åºä¹ä¸éè¦è½½å
¥è¯»å对象å®ä¾ã "
+
+#. 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ã "
+
+#. 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> ç¨äºå个对è¯ï¼å 为å®å¾å¿«å°±ä¼åºç°èæ°æ®ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. 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ãè¿äºæ¹æ³ç°å¨å·²ç»è¿æ¶äºï¼æå¼äºå¡åå
³éäºå¡ä¼èµ·å°åæ ·çææã"
+
+#. 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> ä¸ã "
+
+#. 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 以è·å¾ç¤ºä¾ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr "è±ç®¡å¯¹è±¡ï¼deatched objectï¼åèªå¨çæ¬å"
+
+#. 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> æ¥éæ°å
³è该对象å®ä¾ã"
+
+#. Tag: para
+#, no-c-format
+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> æä½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Customizing automatic versioning"
+msgstr "å®å¶èªå¨çæ¬åè¡ä¸º"
+
+#. 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 å°ä¸åå¢å çæ¬å·ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Legacy database schemas are often static and cannot be modified. Or, other applications might access the same database and will not know how to handle version numbers or even timestamps. In both cases, versioning cannot rely on a particular column in a table. To force a version check with a comparison of the state of all fields in a row but without a version or timestamp property mapping, turn on <literal>optimistic-lock=\"all\"</literal> in the <literal><class></literal> mapping. This conceptually only works if Hibernate can compare the old and the new state (i.e., if you use a single long <literal>Session</literal> and not session-per-request-with-detached-objects)."
+msgstr "éçç³»ç»çæ°æ®åº Schema é常æ¯éæçï¼ä¸å¯ä¿®æ¹çãæè
ï¼å
¶ä»åºç¨ç¨åºä¹å¯è½è®¿é®åä¸æ°æ®åºï¼æ ¹æ¬æ æ³å¾ç¥å¦ä½å¤ççæ¬å·ï¼çè³æ¶é´æ³ãå¨ä»¥ä¸çææåºæ¯ä¸ï¼å®ç°çæ¬åä¸è½ä¾é æ°æ®åºè¡¨çæ个ç¹å®åãå¨ <literal><class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"all\"</literal> å¯ä»¥å¨æ²¡æçæ¬æè
æ¶é´æ³å±æ§æ å°çæ
åµä¸å®ç°çæ¬æ£æ¥ï¼æ¤æ¶ Hibernate å°æ¯è¾ä¸è¡è®°å½çæ¯ä¸ªå段çç¶æã请注æï¼åªæå½ Hibernate è½å¤æ¯è¾æ°æ§ç¶æçæ
åµä¸ï¼è¿ç§æ¹å¼æè½çæï¼ä¹å°±æ¯è¯´ï¼ä½ å¿
须使ç¨å个é¿çå½å¨æ <literal>Session</literal> 模å¼ï¼èä¸è½ä½¿ç¨ session-per-request-with-detached-objects 模å¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Concurrent modification can be permitted in instances where the changes that have been made do not overlap. If you set <literal>optimistic-lock=\"dirty\"</literal> when mapping the <literal><class></literal>, Hibernate will only compare dirty fields during flush."
+msgstr "æäºæ
åµä¸ï¼åªè¦æ´æ¹ä¸åç交éï¼å¹¶åä¿®æ¹ä¹æ¯å
许çãå½ä½ å¨ <literal><class></literal> çæ å°ä¸è®¾ç½® <literal>optimistic-lock=\"dirty\"</literal>ï¼Hibernate å¨åæ¥çæ¶åå°åªæ¯è¾æèæ°æ®çå段ã "
+
+#. Tag: para
+#, no-c-format
+msgid "In both cases, with dedicated version/timestamp columns or with a full/dirty field comparison, Hibernate uses a single <literal>UPDATE</literal> statement, with an appropriate <literal>WHERE</literal> clause, per entity to execute the version check and update the information. If you use transitive persistence to cascade reattachment to associated entities, Hibernate may execute unnecessary updates. This is usually not a problem, but <emphasis>on update</emphasis> triggers in the database might be executed even when no changes have been made to detached instances. You can customize this behavior by setting <literal>select-before-update=\"true\"</literal> in the <literal><class></literal> mapping, forcing Hibernate to <literal>SELECT</literal> the instance to ensure that changes did occur before updating the row."
+msgstr "å¨ä»¥ä¸ææåºæ¯ä¸ï¼ä¸ç®¡æ¯ä¸é¨è®¾ç½®ä¸ä¸ªçæ¬/æ¶é´æ³åï¼è¿æ¯è¿è¡å
¨é¨å段/èæ°æ®å段æ¯è¾ï¼Hibernate é½ä¼é对æ¯ä¸ªå®ä½å¯¹è±¡åéä¸æ¡ <literal>UPDATE</literal>ï¼å¸¦æç¸åºç <literal>WHERE</literal> è¯å¥ ï¼ç SQL è¯å¥æ¥æ§è¡çæ¬æ£æ¥åæ°æ®æ´æ°ãå¦æä½ å¯¹å
³èå®ä½ 设置级èå
³ç³»ä½¿ç¨ä¼ ææ§æä¹
åï¼transitive persistenceï¼ï¼é£ä¹ Hibernate å¯è½ä¼æ§è¡ä¸å¿
è¦çupdateè¯å¥ãè¿é常ä¸æ¯ä¸ªé®é¢ï¼ä½æ¯æ°æ®åºéé¢å¯¹ <emphasis>on update</emphasis> ç¹ç« ç触åå¨å¯è½å¨è±ç®¡å¯¹è±¡æ²¡æä»»ä½æ´æ¹çæ
åµä¸è¢«è§¦åãå æ¤ï¼ä½ å¯ä»¥å¨ <literal><class></literal> çæ å°ä¸ï¼éè¿è®¾ç½®<literal>select-before-update=\"true\"</literal> æ¥å®å¶è¿ä¸è¡ä¸ºï¼å¼ºå¶ Hibernate <literal>SELECT</literal> è¿ä¸ªå¯¹è±¡å®ä¾ï¼ä»èä¿è¯ï¼å¨æ´æ°è®°å½ä¹åï¼å¯¹è±¡çç¡®æ¯è¢«ä¿®æ¹è¿ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Pessimistic locking"
+msgstr "æ²è§éå®ï¼Pessimistic Lockingï¼ "
+
+#. 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 è¿æ¥æå®ä¸ä¸é离级å«ï¼ç¶å让æ°æ®åºå»æå®ä¸åå°±å¤äºãç¶èï¼é«çº§ç¨æ·ææ¶åå¸æè¿è¡ä¸ä¸ªæå®çæ²è§éå®ï¼æè
å¨ä¸ä¸ªæ°çäºå¡å¯å¨çæ¶åï¼éæ°è¿è¡éå®ã "
+
+#. Tag: para
+#, no-c-format
+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 æéçä¸åçéå®çº§å«ãä¸ä¸ªéå®å¯ä»¥éè¿ä»¥ä¸çæºå¶æ¥è®¾ç½®ï¼"
+
+#. 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>ã"
+
+#. 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>ã "
+
+#. 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>ã "
+
+#. 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>ãè¿ç§æ¨¡å¼ä¹å¯ä»¥éè¿ç¨æ·æ¾å¼æå®è¿è¡è®¾ç½®ã "
+
+#. 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> è±ç¦»è¯¥æ¨¡å¼ã"
+
+#. Tag: para
+#, no-c-format
+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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Session.lock()</literal>."
+msgstr "è°ç¨ <literal>Session.lock()</literal>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "A call to <literal>Query.setLockMode()</literal>."
+msgstr "è°ç¨ <literal>Query.setLockMode()</literal>ã"
+
+#. 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> æ¹æ³ã"
+
+#. 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è¯å¥ãï¼"
+
+#. 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 å°ä½¿ç¨éå½çæ¿ä»£æ¨¡å¼ï¼èä¸æ¯æåºå¼å¸¸ï¼ãè¿ä¸ç¹å¯ä»¥ç¡®ä¿åºç¨ç¨åºçå¯ç§»æ¤æ§ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Connection release modes"
+msgstr "è¿æ¥éæ¾æ¨¡å¼ï¼Connection Release Modesï¼ "
+
+#. 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> çä¸åæ举å¼æ¥ä½¿ç¨ä¸ç¨çéæ¾æ¨¡å¼ï¼"
+
+#. 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 å
³éã"
+
+#. 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> ç»æåéæ¾è¿æ¥ã"
+
+#. 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>ã"
+
+#. 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> é
ç½®åæ°ç¨æ¥æå®ä½¿ç¨åªä¸ç§éæ¾æ¨¡å¼ãå¯è½çå¼æï¼ "
+
+#. 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ï¼æè
ç»ç¨æ·ä»£ç 带æ¥è¯¯å¯¼ã"
+
+#. 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ãè¿ç§æ¹å¼æ¯ä¸ºäºåä¸å
¼å®¹ç,ä½æ¯å·²ç»å®å
¨ä¸è¢«é¼å±ä½¿ç¨äºã"
+
+#. 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 é£æ ·è¢«éæ¾ã"
+
+#. 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 "foo==bar"
+#~ msgstr "foo==bar"
+#~ msgid ""
+#~ "<![CDATA[// Non-managed environment idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// Non-managed environment idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " factory.getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " factory.getCurrentSession().getTransaction().commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " factory.getCurrentSession().getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// Non-managed environment idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " factory.getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " factory.getCurrentSession().getTransaction().commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " factory.getCurrentSession().getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// BMT idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// BMT idiom\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "Transaction tx = null;\n"
+#~ "try {\n"
+#~ " tx = sess.beginTransaction();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " if (tx != null) tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " UserTransaction tx = (UserTransaction)new InitialContext()\n"
+#~ " .lookup(\"java:comp/UserTransaction\");\n"
+#~ "\n"
+#~ " tx.begin();\n"
+#~ "\n"
+#~ " // Do some work on Session bound to transaction\n"
+#~ " factory.getCurrentSession().load(...);\n"
+#~ " factory.getCurrentSession().persist(...);\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[// BMT idiom with getCurrentSession()\n"
+#~ "try {\n"
+#~ " UserTransaction tx = (UserTransaction)new InitialContext()\n"
+#~ " .lookup(\"java:comp/UserTransaction\");\n"
+#~ "\n"
+#~ " tx.begin();\n"
+#~ "\n"
+#~ " // Do some work on Session bound to transaction\n"
+#~ " factory.getCurrentSession().load(...);\n"
+#~ " factory.getCurrentSession().persist(...);\n"
+#~ "\n"
+#~ " tx.commit();\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " tx.rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "]]>"
+#~ msgstr ""
+#~ "<![CDATA[// CMT idiom\n"
+#~ " Session sess = factory.getCurrentSession();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "]]>"
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "try {\n"
+#~ " //set transaction timeout to 3 seconds\n"
+#~ " sess.getTransaction().setTimeout(3);\n"
+#~ " sess.getTransaction().begin();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " sess.getTransaction().commit()\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " sess.getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "Session sess = factory.openSession();\n"
+#~ "try {\n"
+#~ " //set transaction timeout to 3 seconds\n"
+#~ " sess.getTransaction().setTimeout(3);\n"
+#~ " sess.getTransaction().begin();\n"
+#~ "\n"
+#~ " // do some work\n"
+#~ " ...\n"
+#~ "\n"
+#~ " sess.getTransaction().commit()\n"
+#~ "}\n"
+#~ "catch (RuntimeException e) {\n"
+#~ " sess.getTransaction().rollback();\n"
+#~ " throw e; // or display error message\n"
+#~ "}\n"
+#~ "finally {\n"
+#~ " sess.close();\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "\n"
+#~ "int oldVersion = foo.getVersion();\n"
+#~ "session.load( foo, foo.getKey() ); // load the current state\n"
+#~ "if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
+#~ "();\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "\n"
+#~ "int oldVersion = foo.getVersion();\n"
+#~ "session.load( foo, foo.getKey() ); // load the current state\n"
+#~ "if ( oldVersion != foo.getVersion() ) throw new StaleObjectStateException"
+#~ "();\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[// foo is an instance loaded earlier by the old session\n"
+#~ "Transaction t = session.beginTransaction(); // Obtain a new JDBC "
+#~ "connection, start transaction\n"
+#~ "\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "session.flush(); // Only for last transaction in conversation\n"
+#~ "t.commit(); // Also return JDBC connection\n"
+#~ "session.close(); // Only for last transaction in conversation]]>"
+#~ msgstr ""
+#~ "<![CDATA[// foo is an instance loaded earlier by the old session\n"
+#~ "Transaction t = session.beginTransaction(); // Obtain a new JDBC "
+#~ "connection, start transaction\n"
+#~ "\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "\n"
+#~ "session.flush(); // Only for last transaction in conversation\n"
+#~ "t.commit(); // Also return JDBC connection\n"
+#~ "session.close(); // Only for last transaction in conversation]]>"
+#~ msgid ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been "
+#~ "loaded already\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[// foo is an instance loaded by a previous Session\n"
+#~ "foo.setProperty(\"bar\");\n"
+#~ "session = factory.openSession();\n"
+#~ "Transaction t = session.beginTransaction();\n"
+#~ "session.saveOrUpdate(foo); // Use merge() if \"foo\" might have been "
+#~ "loaded already\n"
+#~ "t.commit();\n"
+#~ "session.close();]]>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/tutorial.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/tutorial.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/tutorial.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,1965 @@
+# translation of tutorial.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007, 2009.
+# translation of Collection_Mapping.po to
+msgid ""
+msgstr ""
+"Project-Id-Version: tutorial\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-11T05:38:16\n"
+"PO-Revision-Date: 2010-03-16 09:56+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Tutorial"
+msgstr "æç¨"
+
+#. 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> ç®å½ä¸ã"
+
+#. 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 ä¹åå
好好äºè§£è¿äºææ¯ã"
+
+#. 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> ä¸è¿å
å«å¦å¤ä¸ä¸ªä¾ç¨ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Part 1 - The first Hibernate Application"
+msgstr "第ä¸é¨å ï¼ ç¬¬ä¸ä¸ª Hibernate åºç¨ç¨åº"
+
+#. 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 èä¸æ¯å®çä¸æç¿»è¯âæ´»å¨âï¼ä»¥å
æ··æ·ãï¼"
+
+#. 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 ç¼åçå
åæ°æ®åºï¼æ¥é¿å
è±è´¹ç¯ç« 对æ°æ®åºæå¡å¨çå®è£
/é
ç½®è¿è¡è§£éã"
+
+#. Tag: title
+#, no-c-format
+msgid "Setup"
+msgstr "设置"
+
+#. 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> ç®å½ã"
+
+#. 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 èªå¨è®¾ç½®é¡¹ç®çè½åã"
+
+#. Tag: para
+#, no-c-format
+msgid "It is not a requirement to use Maven. If you wish to use something else to build this tutoial (such as Ant), the layout will remain the same. The only change is that you will need to manually account for all the needed dependencies. If you use something like <ulink url=\"http://ant.apache.org/ivy/\">Ivy</ulink> providing transitive dependency management you would still use the dependencies mentioned below. Otherwise, you'd need to grab <emphasis>all</emphasis> dependencies, both explicit and transitive, and add them to the project's classpath. If working from the Hibernate distribution bundle, this would mean <filename>hibernate3.jar</filename>, all artifacts in the <filename>lib/required</filename> directory and all files from either the <filename>lib/bytecode/cglib</filename> or <filename>lib/bytecode/javassist</filename> directory; additionally you will need both the servlet-api jar and one of the slf4j logging backends."
+msgstr "Maven 并ä¸è¦æ±è¿æ ·ãå¦æä½ å¸æ使ç¨å
¶ä»ææ¯æ¥æ建è¿ä¸ªæç¨ï¼å¦ Antï¼ï¼æ ¼å¼å°ä¿æä¸åãå¯ä¸çæ¹åæ¯ä½ å°éè¦æ工管çææçä¾èµå
³ç³»ãå¦æä½ ä½¿ç¨ <ulink url=\"http://ant.apache.org/ivy/\">Ivy</ulink> æ¥æä¾ transitive dependency 管çï¼ä½ å°ä»ç¶ä¸é¢æå°çä¾èµå
³ç³»ãå¦åï¼ä½ å°éè¦æ¾å°ææçä¾èµå
³ç³»ï¼æ¾æ§çåè¿æ¸¡çï¼å¹¶æå®ä»¬æ·»å å°é¡¹ç®ç classpath éãå¦æä½¿ç¨ Hibernate æç»çæ¬ï¼è¿æå³ç <filename>hibernate3.jar</filename>ã<filename>lib/required</filename> ç®å½ä¸çææ artifact å <filename>lib/bytecode/cglib</filename> æ <filename>lib/bytecode/javassist</filename> ä¸çæææ件ï¼æ¤å¤ä½ å°éè¦ servlet-api jar åä¸ä¸ª slf4j æ¥å¿åå°æ件ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Save this file as <filename>pom.xml</filename> in the project root directory."
+msgstr "æè¿ä¸ªæ件ä¿å为项ç®æ ¹ç®å½ä¸ç <filename>pom.xml</filename>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "The first class"
+msgstr "第ä¸ä¸ª class"
+
+#. 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 ç±»ï¼"
+
+#. 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ï¼ã"
+
+#. 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ãæ以éæ©åªç§æ¹å¼å®å
¨åå³äºä½ ï¼ä½ å¯ä»¥ä½¿ä½ çéæ©ä¸ä½ çåºç¨ç¨åºè®¾è®¡ç¸å»åã "
+
+#. 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ï¼çæ
åµä¸ï¼ä»æä¹
åç±»éè·åæ°æ®ä¼æ´ææçã "
+
+#. 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> ç®å½ä¸ã"
+
+#. Tag: title
+#, no-c-format
+msgid "The mapping file"
+msgstr "æ å°æ件"
+
+#. 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ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The basic structure of a mapping file looks like this:"
+msgstr "ä¸ä¸ªæ å°æ件çåºæ¬ç»æçèµ·æ¥åè¿æ ·ï¼"
+
+#. 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> ç®å½ä¸ã "
+
+#. 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 声ææ¯å¿
éçã "
+
+#. 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 æ°æ®åºéç表ï¼"
+
+#. 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 çæ è¯ç¬¦çæçç¥æ¥äº§ç代ç主é®å段ï¼"
+
+#. 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> 表çåªä¸ªå段ææ主é®å¼ã"
+
+#. 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 çæ©å±åè½ä¹ä¸ï¼ä½ å¯ä»¥æå
¥èªå·±ççç¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>native</literal> is no longer consider the best strategy in terms of portability. for further discussion, see <xref linkend=\"portability-idgen\" />"
+msgstr "ä»ç§»æ¤æ§æ¥è¯´ï¼<literal>native</literal> ä¸å被认为æ¯æ好ççç¥ãè¿ä¸æ¥ç讨论ï¼è¯·åè <xref linkend=\"portability-idgen\" />ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Lastly, we need to tell Hibernate about the remaining entity class properties. By default, no properties of the class are considered persistent:"
+msgstr "æåæ们å¨æ å°æ件éé¢å
å«éè¦æä¹
åå±æ§ç声æãé»è®¤æ
åµä¸ï¼ç±»éé¢çå±æ§é½è¢«è§ä¸ºéæä¹
åçï¼ "
+
+#. 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> æ¹æ³ã "
+
+#. 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> å¨å¤æ°çæ°æ®åºéï¼æ¯ä¸ä¸ªä¿çå
³é®åï¼æ以æ们æ好æå®æ å°æä¸ä¸ªä¸åçååã "
+
+#. 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> 转æ¢å¨ï¼è¿æ ·æ们é¢çäºæ¥æåæ¶é´çå
¨é¨ä¿¡æ¯ã "
+
+#. 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ï¼æ¥å³å®è¿ä¸ªæ å°ç±»åãè¿éè¦æ¶é´åèµæºï¼æ以å¦æä½ æ³¨éå¯å¨æ§è½ï¼ä½ åºè¯¥èèæ¾æ§å°å®ä¹æç¨çç±»åã"
+
+#. 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Hibernate configuration"
+msgstr "Hibernate é
ç½®"
+
+#. 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 使å
¶è¿è¡å¨âæå¡å¨æ¨¡å¼âã"
+
+#. Tag: para
+#, no-c-format
+msgid "We do this do that the data remains between runs."
+msgstr "æ°æ®å¨ç¨åºè¿è¡æé´éè¦ä¿æææã "
+
+#. Tag: para
+#, no-c-format
+msgid "We will utilize the Maven exec plugin to launch the HSQLDB server by running: <command> mvn exec:java -Dexec.mainClass=\"org.hsqldb.Server\" -Dexec.args=\"-database.0 file:target/data/tutorial\"</command> You will see it start up and bind to a TCP/IP socket; this is where our application will connect later. If you want to start with a fresh database during this tutorial, shutdown HSQLDB, delete all files in the <filename>target/data</filename> directory, and start HSQLDB again."
+msgstr "å¨å¼åçæ ¹ç®å½ä¸å建ä¸ä¸ª <literal>data</literal> ç®å½ ï¼ è¿æ¯ HSQL DB åå¨æ°æ®æ件çå°æ¹ãæ¤æ¶å¨ data ç®å½ä¸è¿è¡ <literal>java -classpath ../lib/hsqldb.jar org.hsqldb.Server</literal> å°±å¯å¯å¨æ°æ®åºãä½ å¯ä»¥å¨ log ä¸çå°å®çå¯å¨ï¼åç»å®å° TCP/IP å¥æ¥åï¼è¿æ£æ¯æ们çåºç¨ç¨åºç¨åä¼è¿æ¥çå°æ¹ãå¦æä½ å¸æå¨æ¬ä¾ä¸è¿è¡ä¸ä¸ªå
¨æ°çæ°æ®åºï¼å°±å¨çªå£ä¸æä¸ <literal>CTRL + C</literal> æ¥å
³é HSQL æ°æ®åºï¼å¹¶å é¤ <literal>data/</literal> ç®å½ä¸çæææ件ï¼åéæ°å¯å¨ HSQL æ°æ®åºã "
+
+#. 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 å
ç½®çè¿æ¥æ± ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The built-in Hibernate connection pool is in no way intended for production use. It lacks several features found on any decent connection pool."
+msgstr "åµå
¥ç Hibernate è¿æ¥æ± ä¸ç¨äºäº§åç¯å¢ãå®ç¼ºä¹è¿æ¥æ± éçå 个åè½ã"
+
+#. Tag: para
+#, no-c-format
+msgid "For Hibernate's configuration, we can use a simple <literal>hibernate.properties</literal> file, a more sophisticated <literal>hibernate.cfg.xml</literal> file, or even complete programmatic setup. Most users prefer the XML configuration file:"
+msgstr "为äºä¿å Hibernate çé
ç½®ï¼æ们å¯ä»¥ä½¿ç¨ä¸ä¸ªç®åç <literal>hibernate.properties</literal> æ件ï¼æè
ä¸ä¸ªç¨å¾®å¤æç <literal>hibernate.cfg.xml</literal>ï¼çè³å¯ä»¥å®å
¨ä½¿ç¨ç¨åºæ¥é
ç½® Hibernateãå¤æ°ç¨æ·æ´åæ¬¢ä½¿ç¨ XML é
ç½®æä»¶ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Notice that this configuration file specifies a different DTD"
+msgstr "请注æï¼è¿ä¸ªé
ç½®æ件æå®äºä¸ä¸ªä¸åç DTDã"
+
+#. Tag: para
+#, no-c-format
+msgid "You configure Hibernate's <literal>SessionFactory</literal>. SessionFactory is a global factory responsible for a particular database. If you have several databases, for easier startup you should use several <literal><session-factory></literal> configurations in several configuration files."
+msgstr "注æè¿ä¸ª XML é
置使ç¨äºä¸ä¸ªä¸åç DTDãå¨è¿éï¼æ们é
ç½®äº Hibernate ç<literal>SessionFactory</literal> â ä¸ä¸ªå
³èäºç¹å®æ°æ®åºå
¨å±çå·¥åï¼factoryï¼ãå¦æä½ è¦ä½¿ç¨å¤ä¸ªæ°æ®åºï¼å°±è¦ç¨å¤ä¸ªç <literal><session-factory></literal>ï¼é常æå®ä»¬æ¾å¨å¤ä¸ªé
ç½®æ件ä¸ï¼ä¸ºäºæ´å®¹æå¯å¨ï¼ã "
+
+#. 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 è¯å¥ã"
+
+#. Tag: para
+#, no-c-format
+msgid "In most cases, Hibernate is able to properly determine which dialect to use. See <xref linkend=\"portability-dialectresolver\" /> for more information."
+msgstr "å¨å¤§å¤æ°æ
åµä¸ï¼Hibernate é½è½å¤æ£ç¡®å°å³å®æ使ç¨çæ¹è¨ãæ´å¤ä¿¡æ¯è¯·åè <xref linkend=\"portability-dialectresolver\" />ã "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate's automatic session management for persistence contexts is particularly useful in this context. The <literal>hbm2ddl.auto</literal> option turns on automatic generation of database schemas directly into the database. This can also be turned off by removing the configuration option, or redirected to a file with the help of the <literal>SchemaExport</literal> Ant task. Finally, add the mapping file(s) for persistent classes to the configuration."
+msgstr "æå¼å§ç 4 个 <literal>property</literal> å
ç´ å
å«å¿
è¦ç JDBC è¿æ¥ä¿¡æ¯ãæ¹è¨ï¼dialectï¼ç <literal>property</literal> å
ç´ ææ Hibernate çæçç¹å® SQL åéãä½ å¾å¿«ä¼çå°ï¼Hibernate 对æä¹
åä¸ä¸æçèªå¨ session 管çå°±ä¼æ´¾ä¸ç¨åºã æå¼ <literal>hbm2ddl.auto</literal> é项å°èªå¨çææ°æ®åºæ¨¡å¼ï¼schemaï¼ï¼ ç´æ¥å å
¥æ°æ®åºä¸ãå½ç¶è¿ä¸ªé项ä¹å¯ä»¥è¢«å
³éï¼éè¿å»é¤è¿ä¸ªé
ç½®é项ï¼æè
éè¿ Ant ä»»å¡ <literal>SchemaExport</literal> ç帮å©æ¥ææ°æ®åº schema éå®åå°æ件ä¸ãæåï¼å¨é
ç½®ä¸ä¸ºæä¹
åç±»å å
¥æ å°æ件ã "
+
+#. 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>ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Building with Maven"
+msgstr "ç¨ Maven æ建 "
+
+#. 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> ç®æ æ¥ç¡®ä¿æ们å¯ä»¥ç¼è¯å°ç®å为æ¢çææç¨åºï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Startup and helpers"
+msgstr "å¯å¨åè¾
å©ç±»"
+
+#. 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> åæ¯ä¸ªçº¿ç¨å®å
¨çå
¨å±å¯¹è±¡ï¼åªéè¦è¢«å®ä¾åä¸æ¬¡ã "
+
+#. 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>ã让æ们æ¥çä¸ä¸å®çå®ç°ï¼"
+
+#. 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>ã"
+
+#. 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>ã"
+
+#. 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ãè¿äºé«çº§å¯é项å¨åé¢çç« èä¸ä¼è®¨è®ºå°ã"
+
+#. 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 çå¯å¨ä¿¡æ¯æä¼æ¾ç¤ºå¨æ åè¾åºä¸ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The tutorial infrastructure is complete and you are now ready to do some real work with Hibernate."
+msgstr "示ä¾çåºæ¬æ¡æ¶å®æäº â ç°å¨æ们å¯ä»¥ç¨ Hibernate æ¥åäºçæ£çå·¥ä½ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Loading and storing objects"
+msgstr "å 载并åå¨å¯¹è±¡"
+
+#. 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> ç±»ï¼ "
+
+#. 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> å½ä»¤ä¼ ç»æ°æ®åºã"
+
+#. 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 ä¸èµ·è¿è¡ã"
+
+#. 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ï¼ï¼å®ä½æ¶å¼å§,åä½æ¶ç»æã"
+
+#. 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 åæå¦ç¨éãåé¢å°æ´è¯¦ç»å°è®¨è®ºä¼è¯è·è¸ªã"
+
+#. 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>ï¼å¹¶ä¸å¼å§ä¸ä¸ªæ°çå·¥ä½åå
ã"
+
+#. 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ï¼ç¨åºã"
+
+#. 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\" /> ãå¨ä¸é¢çä¾åä¸ï¼æ们ä¹å¿½ç¥äºææçé误ä¸åæ»çå¤çã "
+
+#. 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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "You may need to perform <command>mvn compile</command> first."
+msgstr "ä½ å¯è½éè¦å
æ§è¡ <command>mvn compile</command>ã"
+
+#. 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 æ ¹æ®ä½ çé
ç½®å¯å¨ï¼å¹¶äº§çä¸å¤§å çè¾åºæ¥å¿ãå¨æ¥å¿æåä½ ä¼çå°ä¸é¢è¿è¡ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "This is the <literal>INSERT</literal> executed by Hibernate."
+msgstr "æ§è¡ HQL <literal>INSERT</literal> è¯å¥çä¾åå¦ä¸ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "To list stored events an option is added to the main method:"
+msgstr "æ们æ³è¦ååºææå·²ç»è¢«åå¨ç eventsï¼å°±è¦å¢å ä¸ä¸ªæ¡ä»¶åæ¯éé¡¹å° main æ¹æ³ä¸ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "A new <literal>listEvents() method is also added</literal>:"
+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\"/>ã "
+
+#. 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> è°ç¨æ°çåè½äºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Part 2 - Mapping associations"
+msgstr "第äºé¨å ï¼ å
³èæ å°"
+
+#. 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 æ¥è¡¨ç¤ºâ人âèä¸æ¯å®çä¸æç¿»è¯ï¼ "
+
+#. Tag: title
+#, no-c-format
+msgid "Mapping the Person class"
+msgstr "æ å° Person ç±»"
+
+#. Tag: para
+#, no-c-format
+msgid "The first cut of the <literal>Person</literal> class looks like this:"
+msgstr "æåç®åç <literal>Person</literal> ç±»ï¼ "
+
+#. 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>ã"
+
+#. 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>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, add the new mapping to Hibernate's configuration:"
+msgstr "æåï¼ææ°çæ å°å å
¥å° Hibernate çé
ç½®ä¸ï¼"
+
+#. 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ï¼çè¡ä¸ºã "
+
+#. Tag: title
+#, no-c-format
+msgid "A unidirectional Set-based association"
+msgstr "åå Set-based çå
³è"
+
+#. 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 ä¸å
å«éå¤çå
ç´ åä¸æ们æ å
³çæåºã "
+
+#. 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 çå¤å¯¹å¤æ å°ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "Hibernate supports a broad range of collection mappings, a <literal>set</literal> being most common. For a many-to-many association, or <emphasis>n:m</emphasis> entity relationship, an association table is required. Each row in this table represents a link between a person and an event. The table name is decalred using the <literal>table</literal> attribute of the <literal>set</literal> element. The identifier column name in the association, for the person side, is defined with the <literal>key</literal> element, the column name for the event's side with the <literal>column</literal> attribute of the <literal>many-to-many</literal>. You also have to tell Hibernate the class of the objects in your collection (the class on the other side of the collection of references)."
+msgstr "Hibernate æ¯æåç§åæ ·çéåæ å°ï¼<literal><set></literal> 使ç¨çæ为æ®éã对äºå¤å¯¹å¤å
³èï¼æå« <emphasis>n:m</emphasis> å®ä½å
³ç³»ï¼, éè¦ä¸ä¸ªå
³è表ï¼association tableï¼ã<literal>表</literal>éé¢çæ¯ä¸è¡ä»£è¡¨ä» person å° event çä¸ä¸ªå
³èã表åæ¯ç± <literal>set</literal> å
ç´ ç <literal>table</literal> å±æ§é
ç½®çãå
³èéé¢çæ è¯ç¬¦å段åï¼å¯¹äº person çä¸ç«¯ï¼æ¯ç± <literal><key></literal> å
ç´ å®ä¹ï¼è event ä¸ç«¯çå段åæ¯ç± <literal><many-to-many></literal> å
ç´ ç <literal>column</literal> å±æ§å®ä¹ãä½ ä¹å¿
é¡»åè¯ Hibernate éåä¸å¯¹è±¡çç±»ï¼ä¹å°±æ¯ä½äºè¿ä¸ªéåæ代表çå
³èå¦å¤ä¸ç«¯çç±»ï¼ã "
+
+#. Tag: para
+#, no-c-format
+msgid "The database schema for this mapping is therefore:"
+msgstr "å èè¿ä¸ªæ å°çæ°æ®åº schema æ¯ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Working the association"
+msgstr "使å
³èå·¥ä½"
+
+#. 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> çæ°æ¹æ³ä¸ï¼ "
+
+#. 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> é
ç½®é项å®ä¹çã "
+
+#. 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>ï¼ãä½ çè³å¯ä»¥å¨ä¸ä¸ªéå被è±ç®¡æ¶ä¿®æ¹å®ï¼ "
+
+#. 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> çè°ç¨ä½¿ä¸ä¸ªè±ç®¡å¯¹è±¡éæ°æä¹
åï¼ä½ å¯ä»¥è¯´å®è¢«ç»å®å°ä¸ä¸ªæ°çåå
æä½ä¸ï¼æ以å¨è±ç®¡ç¶æä¸å¯¹å®æåçä»»ä½ä¿®æ¹é½ä¼è¢«ä¿åå°æ°æ®åºéãè¿ä¹å
æ¬ä½ 对è¿ä¸ªå®ä½å¯¹è±¡çéåæä½çä»»ä½æ¹å¨ï¼å¢å /å é¤ï¼ã "
+
+#. 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> æ¹æ³è¿åå®ï¼ä½ å¯è½éè¦ä¿®æ¹åé¢çä¸äºæ¹æ³æ¥è¿åé£ä¸ªæ è¯ç¬¦ï¼ï¼ "
+
+#. 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>ã "
+
+#. 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 éé¢çèµ·æ¥å ä¹æ¯ä¸æ ·çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Collection of values"
+msgstr "å¼ç±»åçéå"
+
+#. 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> åºç°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "The mapping of this <literal>Set</literal> is as follows:"
+msgstr "è¿ä¸ª <literal>Set</literal> çæ å°å¦ä¸ï¼"
+
+#. 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> å¼çå段åã "
+
+#. Tag: para
+#, no-c-format
+msgid "Here is the updated schema:"
+msgstr "çä¸ä¸ä¿®æ¹åçæ°æ®åº schemaã "
+
+#. 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 éå
ç´ ä¸è½éå¤ï¼ã"
+
+#. 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 代ç æ¯ç¸åçï¼ "
+
+#. 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ï¼è¯çéè¿é¢å
æåæ¥ä¼åå®ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Bi-directional associations"
+msgstr "ååå
³è"
+
+#. 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ï¼çä¸è¥¿ â æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥çåè·åã "
+
+#. 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 "å
³ç³»åæ°æ®åºæ¯ç½ç»ç¼ç¨è¯è¨æ´ä¸ºçµæ´»ï¼å 为å®ä¸éè¦æ¹å导èªï¼å
¶æ°æ®å¯ä»¥ç¨ä»»ä½å¯è½çæ¹å¼è¿è¡æ¥çåæåã"
+
+#. Tag: para
+#, no-c-format
+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>."
+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> å±æ§ã "
+
+#. 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> ç±»å¾å°ä¸¤ä¸ªå®ä½é´å
³èçä¿¡æ¯ãè¿å°ä¼æ大å°å¸®å©ä½ ç解ååå
³èæ¯å¦ä½å¨ä¸¤ä¸ªå®ä½é´è¢«å建çã "
+
+#. Tag: title
+#, no-c-format
+msgid "Working bi-directional links"
+msgstr "使ååè¿èµ·æ¥"
+
+#. 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 å¼ç¨éåãè¿âå¨å
³èç两端设置èç³»âæ¯å®å
¨å¿
è¦çèä¸ä½ é½å¾è¿ä¹åã "
+
+#. 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> éï¼ "
+
+#. 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ã "
+
+#. 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ï¼å
³èä¸ï¼ä½ å¯ä»¥ä»»æéåä¸ç«¯ï¼å 为两端ä¹!
é´å¹¶æ²¡æå·®å«ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Part 3 - The EventManager web application"
+msgstr "第ä¸é¨å - EventManager web åºç¨ç¨åº"
+
+#. 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ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Writing the basic servlet"
+msgstr "ç¼ååºæ¬ç servlet"
+
+#. 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> æ¹æ³ï¼ "
+
+#. 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>ã"
+
+#. 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 模å¼ï¼ã "
+
+#. 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 线ç¨ã"
+
+#. 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ãæ们å¾å¿«å°±ä¼æ¶åå°é£é¨åã "
+
+#. 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ä¸ï¼ä½ å°±ä¼å¾å¿«ç¨å°å®ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Processing and rendering"
+msgstr "å¤çä¸æ¸²æ"
+
+#. Tag: para
+#, no-c-format
+msgid "Now you can implement the processing of the request and the rendering of the page."
+msgstr "æ们æ¥å®ç°å¤ç请æ±ä»¥å渲æ页é¢çå·¥ä½ã "
+
+#. Tag: para
+#, no-c-format
+msgid "This coding style, with a mix of Java and HTML, would not scale in a more complex application—keep in mind that we are only illustrating basic Hibernate concepts in this tutorial. The code prints an HTML header and a footer. Inside this page, an HTML form for event entry and a list of all events in the database are printed. The first method is trivial and only outputs HTML:"
+msgstr "å¿
é¡»æ¿è®¤ï¼è¿ç§ç¼ç é£æ ¼æ Java å HTML æ··å¨ä¸èµ·ï¼å¨æ´å¤æçåºç¨ç¨åºéä¸åºè¯¥å¤§éä½¿ç¨ â è®°ä½ï¼å¨æ¬ç« éæ们ä»
ä»
æ¯å±ç¤ºäº Hibernate çåºæ¬æ¦å¿µãè¿æ®µä»£ç æå°åºäº HTML 页çå页èï¼å¨è¿ä¸ªé¡µé¢éï¼è¿æå°äºä¸ä¸ªè¾å
¥ events æ¡ç®ç表åå并ååºäºæ°æ®åºéçæç eventsã第ä¸ä¸ªæ¹æ³å¾®ä¸è¶³éï¼ä»
ä»
æ¯è¾åº HTMLï¼"
+
+#. 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> æ¥æ§è¡æ¥è¯¢ï¼"
+
+#. 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>ï¼"
+
+#. 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ï¼é£éææ´å¤çä¾åã "
+
+#. Tag: title
+#, no-c-format
+msgid "Deploying and testing"
+msgstr "é¨ç½²ä¸æµè¯"
+
+#. 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>ã"
+
+#. 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 çé
ç½®ã "
+
+#. 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 é
ç½®è¿è¡ä¿®æ¹ã "
+
+#. 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> çéæåå§åå¨è¢«è°ç¨ï¼ï¼åè¥æä»»ä½å¼å¸¸æåºï¼ä¹å¯ä»¥çå°è¯¦ç»çè¾åºã"
+
+#. Tag: title
+#, no-c-format
+msgid "Summary"
+msgstr "æ»ç»"
+
+#. 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 ""
+#~ "<![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 ""
+#~ "<![CDATA[<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://"
+#~ "maven.apache.org/xsd/maven-4.0.0.xsd\">\n"
+#~ "\n"
+#~ " <modelVersion>4.0.0</modelVersion>\n"
+#~ "\n"
+#~ " <groupId>org.hibernate.tutorials</groupId>\n"
+#~ " <artifactId>hibernate-tutorial</artifactId>\n"
+#~ " <version>1.0.0-SNAPSHOT</version>\n"
+#~ " <name>First Hibernate Tutorial</name>\n"
+#~ "\n"
+#~ " <build>\n"
+#~ " <!-- we dont want the version to be part of the generated war "
+#~ "file name -->\n"
+#~ " <finalName>${artifactId}</finalName>\n"
+#~ " </build>\n"
+#~ "\n"
+#~ " <dependencies>\n"
+#~ " <dependency>\n"
+#~ " <groupId>org.hibernate</groupId>\n"
+#~ " <artifactId>hibernate-core</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Because this is a web app, we also have a dependency on the "
+#~ "servlet api. -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>javax.servlet</groupId>\n"
+#~ " <artifactId>servlet-api</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Hibernate uses slf4j for logging, for our purposes here use "
+#~ "the simple backend -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>org.slf4j</groupId>\n"
+#~ " <artifactId>slf4j-simple</artifactId>\n"
+#~ " </dependency>\n"
+#~ "\n"
+#~ " <!-- Hibernate gives you a choice of bytecode providers between "
+#~ "cglib and javassist -->\n"
+#~ " <dependency>\n"
+#~ " <groupId>javassist</groupId>\n"
+#~ " <artifactId>javassist</artifactId>\n"
+#~ " </dependency>\n"
+#~ " </dependencies>\n"
+#~ "\n"
+#~ "</project>]]>"
+#~ msgid ""
+#~ "<![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 ""
+#~ "<![CDATA[package org.hibernate.tutorial.domain;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "public class Event {\n"
+#~ " private Long id;\n"
+#~ "\n"
+#~ " private String title;\n"
+#~ " private Date date;\n"
+#~ "\n"
+#~ " public Event() {}\n"
+#~ "\n"
+#~ " public Long getId() {\n"
+#~ " return id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void setId(Long id) {\n"
+#~ " this.id = id;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public Date getDate() {\n"
+#~ " return date;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setDate(Date date) {\n"
+#~ " this.date = date;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public String getTitle() {\n"
+#~ " return title;\n"
+#~ " }\n"
+#~ "\n"
+#~ " public void setTitle(String title) {\n"
+#~ " this.title = title;\n"
+#~ " }\n"
+#~ "}]]>"
+#~ msgid ""
+#~ "<![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 ""
+#~ "<![CDATA[<?xml version=\"1.0\"?>\n"
+#~ "<!DOCTYPE hibernate-mapping PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Mapping DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd\">\n"
+#~ "\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "[...]\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ "\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ 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 ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/"
+#~ ">\n"
+#~ " <property name=\"title\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<![CDATA[\n"
+#~ "<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Event\" table=\"EVENTS\">\n"
+#~ " <id name=\"id\" column=\"EVENT_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"date\" type=\"timestamp\" column=\"EVENT_DATE\"/"
+#~ ">\n"
+#~ " <property name=\"title\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgid ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <session-factory>\n"
+#~ "\n"
+#~ " <!-- Database connection settings -->\n"
+#~ " <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</"
+#~ "property>\n"
+#~ " <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</"
+#~ "property>\n"
+#~ " <property name=\"connection.username\">sa</property>\n"
+#~ " <property name=\"connection.password\"></property>\n"
+#~ "\n"
+#~ " <!-- JDBC connection pool (use the built-in) -->\n"
+#~ " <property name=\"connection.pool_size\">1</property>\n"
+#~ "\n"
+#~ " <!-- SQL dialect -->\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Enable Hibernate's automatic session context management -->\n"
+#~ " <property name=\"current_session_context_class\">thread</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Disable the second-level cache -->\n"
+#~ " <property name=\"cache.provider_class\">org.hibernate.cache."
+#~ "NoCacheProvider</property>\n"
+#~ "\n"
+#~ " <!-- Echo all executed SQL to stdout -->\n"
+#~ " <property name=\"show_sql\">true</property>\n"
+#~ "\n"
+#~ " <!-- Drop and re-create the database schema on startup -->\n"
+#~ " <property name=\"hbm2ddl.auto\">update</property>\n"
+#~ "\n"
+#~ " <mapping resource=\"org/hibernate/tutorial/domain/Event.hbm.xml\"/"
+#~ ">\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<?xml version='1.0' encoding='utf-8'?>\n"
+#~ "<!DOCTYPE hibernate-configuration PUBLIC\n"
+#~ " \"-//Hibernate/Hibernate Configuration DTD 3.0//EN\"\n"
+#~ " \"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
+#~ "\">\n"
+#~ "\n"
+#~ "<hibernate-configuration>\n"
+#~ "\n"
+#~ " <session-factory>\n"
+#~ "\n"
+#~ " <!-- Database connection settings -->\n"
+#~ " <property name=\"connection.driver_class\">org.hsqldb.jdbcDriver</"
+#~ "property>\n"
+#~ " <property name=\"connection.url\">jdbc:hsqldb:hsql://localhost</"
+#~ "property>\n"
+#~ " <property name=\"connection.username\">sa</property>\n"
+#~ " <property name=\"connection.password\"></property>\n"
+#~ "\n"
+#~ " <!-- JDBC connection pool (use the built-in) -->\n"
+#~ " <property name=\"connection.pool_size\">1</property>\n"
+#~ "\n"
+#~ " <!-- SQL dialect -->\n"
+#~ " <property name=\"dialect\">org.hibernate.dialect.HSQLDialect</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Enable Hibernate's automatic session context management -->\n"
+#~ " <property name=\"current_session_context_class\">thread</"
+#~ "property>\n"
+#~ "\n"
+#~ " <!-- Disable the second-level cache -->\n"
+#~ " <property name=\"cache.provider_class\">org.hibernate.cache."
+#~ "NoCacheProvider</property>\n"
+#~ "\n"
+#~ " <!-- Echo all executed SQL to stdout -->\n"
+#~ " <property name=\"show_sql\">true</property>\n"
+#~ "\n"
+#~ " <!-- Drop and re-create the database schema on startup -->\n"
+#~ " <property name=\"hbm2ddl.auto\">update</property>\n"
+#~ "\n"
+#~ " <mapping resource=\"org/hibernate/tutorial/domain/Event.hbm.xml\"/"
+#~ ">\n"
+#~ "\n"
+#~ " </session-factory>\n"
+#~ "\n"
+#~ "</hibernate-configuration>]]>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "package util;\n"
+#~ "\n"
+#~ "import org.hibernate.*;\n"
+#~ "import org.hibernate.cfg.*;\n"
+#~ "\n"
+#~ "public class HibernateUtil {\n"
+#~ "\n"
+#~ " private static final SessionFactory sessionFactory;\n"
+#~ "\n"
+#~ " static {\n"
+#~ " try {\n"
+#~ " // Create the SessionFactory from hibernate.cfg.xml\n"
+#~ " sessionFactory = new Configuration().configure()."
+#~ "buildSessionFactory();\n"
+#~ " } catch (Throwable ex) {\n"
+#~ " // Make sure you log the exception, as it might be swallowed\n"
+#~ " System.err.println(\"Initial SessionFactory creation failed."
+#~ "\" + ex);\n"
+#~ " throw new ExceptionInInitializerError(ex);\n"
+#~ " }\n"
+#~ " }\n"
+#~ "\n"
+#~ " public static SessionFactory getSessionFactory() {\n"
+#~ " return sessionFactory;\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "package events;\n"
+#~ "import org.hibernate.Session;\n"
+#~ "\n"
+#~ "import java.util.Date;\n"
+#~ "\n"
+#~ "import util.HibernateUtil;\n"
+#~ "\n"
+#~ "public class EventManager {\n"
+#~ "\n"
+#~ " public static void main(String[] args) {\n"
+#~ " EventManager mgr = new EventManager();\n"
+#~ "\n"
+#~ " if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ " }\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory().close();\n"
+#~ " }\n"
+#~ "\n"
+#~ " private void createAndStoreEvent(String title, Date theDate) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory()."
+#~ "getCurrentSession();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " session.save(theEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[[java] Hibernate: insert into EVENTS (EVENT_DATE, title, "
+#~ "EVENT_ID) values (?, ?, ?)]]>"
+#~ msgstr ""
+#~ "[java] Hibernate: insert into EVENTS (EVENT_DATE, title, EVENT_ID) values "
+#~ "(?, ?, ?)"
+
+#, fuzzy
+#~ 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 ""
+#~ "if (args[0].equals(\"store\")) {\n"
+#~ " mgr.createAndStoreEvent(\"My Event\", new Date());\n"
+#~ "}\n"
+#~ "else if (args[0].equals(\"list\")) {\n"
+#~ " List events = mgr.listEvents();\n"
+#~ " for (int i = 0; i < events.size(); i++) {\n"
+#~ " Event theEvent = (Event) events.get(i);\n"
+#~ " System.out.println(\"Event: \" + theEvent.getTitle() +\n"
+#~ " \" Time: \" + theEvent.getDate());\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private List listEvents() {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ "\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " List result = session.createQuery(\"from Event\").list();\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " return result;\n"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "package events;\n"
+#~ "\n"
+#~ "public class Person {\n"
+#~ "\n"
+#~ " private Long id;\n"
+#~ " private int age;\n"
+#~ " private String firstname;\n"
+#~ " private String lastname;\n"
+#~ "\n"
+#~ " public Person() {}\n"
+#~ "\n"
+#~ " // Accessor methods for all properties, private setter for 'id'\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<hibernate-mapping package=\"org.hibernate.tutorial.domain\">\n"
+#~ "\n"
+#~ " <class name=\"Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>]]>"
+#~ msgstr ""
+#~ "<hibernate-mapping>\n"
+#~ "\n"
+#~ " <class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ " </class>\n"
+#~ "\n"
+#~ "</hibernate-mapping>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>]]>"
+#~ msgstr ""
+#~ "<mapping resource=\"events/Event.hbm.xml\"/>\n"
+#~ "<mapping resource=\"events/Person.hbm.xml\"/>"
+
+#, fuzzy
+#~ 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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "<class name=\"events.Person\" table=\"PERSON\">\n"
+#~ " <id name=\"id\" column=\"PERSON_ID\">\n"
+#~ " <generator class=\"native\"/>\n"
+#~ " </id>\n"
+#~ " <property name=\"age\"/>\n"
+#~ " <property name=\"firstname\"/>\n"
+#~ " <property name=\"lastname\"/>\n"
+#~ "\n"
+#~ " <set name=\"events\" table=\"PERSON_EVENT\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <many-to-many column=\"EVENT_ID\" class=\"events.Event\"/>\n"
+#~ " </set>\n"
+#~ "\n"
+#~ "</class>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | |\n"
+#~ " |_____________| |__________________| | PERSON |\n"
+#~ " | | | | |_____________|\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | |\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE |\n"
+#~ " |_____________| | FIRSTNAME |\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addPersonToEvent(Long personId, Long eventId) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session\n"
+#~ " .createQuery(\"select p from Person p left join fetch p."
+#~ "events where p.id = :pid\")\n"
+#~ " .setParameter(\"pid\", personId)\n"
+#~ " .uniqueResult(); // Eager fetch the collection so we can use "
+#~ "it detached\n"
+#~ "\n"
+#~ " Event anEvent = (Event) session.load(Event.class, eventId);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "\n"
+#~ " // End of first unit of work\n"
+#~ "\n"
+#~ " aPerson.getEvents().add(anEvent); // aPerson (and its collection) is "
+#~ "detached\n"
+#~ "\n"
+#~ " // Begin second unit of work\n"
+#~ "\n"
+#~ " Session session2 = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session2.beginTransaction();\n"
+#~ "\n"
+#~ " session2.update(aPerson); // Reattachment of aPerson\n"
+#~ "\n"
+#~ " session2.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "private Set emailAddresses = new HashSet();\n"
+#~ "\n"
+#~ "public Set getEmailAddresses() {\n"
+#~ " return emailAddresses;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setEmailAddresses(Set emailAddresses) {\n"
+#~ " this.emailAddresses = emailAddresses;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[ <set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR"
+#~ "\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ " </set>]]>"
+#~ msgstr ""
+#~ "<set name=\"emailAddresses\" table=\"PERSON_EMAIL_ADDR\">\n"
+#~ " <key column=\"PERSON_ID\"/>\n"
+#~ " <element type=\"string\" column=\"EMAIL_ADDR\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ 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 ""
+#~ "_____________ __________________\n"
+#~ " | | | | _____________\n"
+#~ " | EVENTS | | PERSON_EVENT | | | "
+#~ "___________________\n"
+#~ " |_____________| |__________________| | PERSON | "
+#~ "| |\n"
+#~ " | | | | |_____________| | "
+#~ "PERSON_EMAIL_ADDR |\n"
+#~ " | *EVENT_ID | <--> | *EVENT_ID | | "
+#~ "| |___________________|\n"
+#~ " | EVENT_DATE | | *PERSON_ID | <--> | *PERSON_ID | "
+#~ "<--> | *PERSON_ID |\n"
+#~ " | TITLE | |__________________| | AGE | | "
+#~ "*EMAIL_ADDR |\n"
+#~ " |_____________| | FIRSTNAME | |"
+#~ "___________________|\n"
+#~ " | LASTNAME |\n"
+#~ " |_____________|"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void addEmailToPerson(Long personId, String emailAddress) {\n"
+#~ "\n"
+#~ " Session session = HibernateUtil.getSessionFactory().getCurrentSession"
+#~ "();\n"
+#~ " session.beginTransaction();\n"
+#~ "\n"
+#~ " Person aPerson = (Person) session.load(Person.class, personId);\n"
+#~ "\n"
+#~ " // The getEmailAddresses() might trigger a lazy load of the "
+#~ "collection\n"
+#~ " aPerson.getEmailAddresses().add(emailAddress);\n"
+#~ "\n"
+#~ " session.getTransaction().commit();\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private Set participants = new HashSet();\n"
+#~ "\n"
+#~ "public Set getParticipants() {\n"
+#~ " return participants;\n"
+#~ "}\n"
+#~ "\n"
+#~ "public void setParticipants(Set participants) {\n"
+#~ " this.participants = participants;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[ <set name=\"participants\" table=\"PERSON_EVENT\" "
+#~ "inverse=\"true\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ " </set>]]>"
+#~ msgstr ""
+#~ "<set name=\"participants\" table=\"PERSON_EVENT\" inverse=\"true"
+#~ "\">\n"
+#~ " <key column=\"EVENT_ID\"/>\n"
+#~ " <many-to-many column=\"PERSON_ID\" class=\"events.Person\"/>\n"
+#~ "</set>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "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"
+#~ "}"
+
+#, fuzzy
+#~ 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 ""
+#~ "protected void doGet(HttpServletRequest request,\n"
+#~ " HttpServletResponse response)\n"
+#~ " throws ServletException, IOException {\n"
+#~ "\n"
+#~ " SimpleDateFormat dateFormatter = new SimpleDateFormat(\"dd.MM.yyyy"
+#~ "\");\n"
+#~ "\n"
+#~ " try {\n"
+#~ " // Begin unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().beginTransaction();\n"
+#~ "\n"
+#~ " // Process request and render page...\n"
+#~ "\n"
+#~ " // End unit of work\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().commit();\n"
+#~ "\n"
+#~ " } catch (Exception ex) {\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().getTransaction().rollback();\n"
+#~ " throw new ServletException(ex);\n"
+#~ " }\n"
+#~ "\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "// Write HTML header\n"
+#~ "PrintWriter out = response.getWriter();\n"
+#~ "out.println(\"<html><head><title>Event Manager</"
+#~ "title></head><body>\");\n"
+#~ "\n"
+#~ "// Handle actions\n"
+#~ "if ( \"store\".equals(request.getParameter(\"action\")) ) {\n"
+#~ "\n"
+#~ " String eventTitle = request.getParameter(\"eventTitle\");\n"
+#~ " String eventDate = request.getParameter(\"eventDate\");\n"
+#~ "\n"
+#~ " if ( \"\".equals(eventTitle) || \"\".equals(eventDate) ) {\n"
+#~ " out.println(\"<b><i>Please enter event title and date."
+#~ "</i></b>\");\n"
+#~ " } else {\n"
+#~ " createAndStoreEvent(eventTitle, dateFormatter.parse(eventDate));\n"
+#~ " out.println(\"<b><i>Added event.</i></b>"
+#~ "\");\n"
+#~ " }\n"
+#~ "}\n"
+#~ "\n"
+#~ "// Print page\n"
+#~ "printEventForm(out);\n"
+#~ "listEvents(out, dateFormatter);\n"
+#~ "\n"
+#~ "// Write HTML footer\n"
+#~ "out.println(\"</body></html>\");\n"
+#~ "out.flush();\n"
+#~ "out.close();"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void printEventForm(PrintWriter out) {\n"
+#~ " out.println(\"<h2>Add new event:</h2>\");\n"
+#~ " out.println(\"<form>\");\n"
+#~ " out.println(\"Title: <input name='eventTitle' length='50'/><"
+#~ "br/>\");\n"
+#~ " out.println(\"Date (e.g. 24.12.2009): <input name='eventDate' "
+#~ "length='10'/><br/>\");\n"
+#~ " out.println(\"<input type='submit' name='action' value='store'/>"
+#~ "\");\n"
+#~ " out.println(\"</form>\");\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) "
+#~ "{\n"
+#~ "\n"
+#~ " List result = HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().createCriteria(Event.class).list"
+#~ "();\n"
+#~ " if (result.size() > 0) {\n"
+#~ " out.println(\"<h2>Events in database:</h2>\");\n"
+#~ " out.println(\"<table border='1'>\");\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<th>Event title</th>\");\n"
+#~ " out.println(\"<th>Event date</th>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " for (Iterator it = result.iterator(); it.hasNext();) {\n"
+#~ " Event event = (Event) it.next();\n"
+#~ " out.println(\"<tr>\");\n"
+#~ " out.println(\"<td>\" + event.getTitle() + \"</td>"
+#~ "\");\n"
+#~ " out.println(\"<td>\" + dateFormatter.format(event."
+#~ "getDate()) + \"</td>\");\n"
+#~ " out.println(\"</tr>\");\n"
+#~ " }\n"
+#~ " out.println(\"</table>\");\n"
+#~ " }\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![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 ""
+#~ "protected void createAndStoreEvent(String title, Date theDate) {\n"
+#~ " Event theEvent = new Event();\n"
+#~ " theEvent.setTitle(title);\n"
+#~ " theEvent.setDate(theDate);\n"
+#~ "\n"
+#~ " HibernateUtil.getSessionFactory()\n"
+#~ " .getCurrentSession().save(theEvent);\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid ""
+#~ "<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun."
+#~ "com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>org.hibernate.tutorial.web.EventManagerServlet</"
+#~ "servlet-class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>]]>"
+#~ msgstr ""
+#~ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+#~ "<web-app version=\"2.4\"\n"
+#~ " xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
+#~ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+#~ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee\n"
+#~ " http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\">\n"
+#~ "\n"
+#~ " <servlet>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <servlet-class>events.EventManagerServlet</servlet-"
+#~ "class>\n"
+#~ " </servlet>\n"
+#~ "\n"
+#~ " <servlet-mapping>\n"
+#~ " <servlet-name>Event Manager</servlet-name>\n"
+#~ " <url-pattern>/eventmanager</url-pattern>\n"
+#~ " </servlet-mapping>\n"
+#~ "</web-app>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/xml.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/xml.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/content/xml.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,441 @@
+# translation of Collection_Mapping.po to
+# Xi Huang <xhuang at redhat.com>, 2006.
+# Xi HUANG <xhuang at redhat.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: Collection_Mapping\n"
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-10T07:25:35\n"
+"PO-Revision-Date: 2010-03-16 10:02+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: <en at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. Tag: title
+#, no-c-format
+msgid "XML Mapping"
+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> "
+
+#. Tag: title
+#, no-c-format
+msgid "Working with XML data"
+msgstr "ç¨ XML æ°æ®è¿è¡å·¥ä½"
+
+#. 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 çå¦å¤ä¸ç§å¨å¯¹è±¡å±é¢ä¸è¡¨ç¤ºå
³ç³»åæ°æ®çéå¾ã"
+
+#. 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()ç®åè¿ä¸æ¯æï¼ã"
+
+#. 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 çæ¥è¡¨ã"
+
+#. 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 ææ¡£ã "
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying XML and class mapping together"
+msgstr "æå®åæ¶æ å° XML åç±»"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example of mapping a POJO and XML simultaneously:"
+msgstr "è¿æ¯ä¸ä¸ªåæ¶æ å° POJO å XML çä¾åï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Specifying only an XML mapping"
+msgstr "åªå®ä¹ XML æ å°"
+
+#. Tag: para
+#, no-c-format
+msgid "Here is an example where there is no POJO class:"
+msgstr "è¿æ¯ä¸ä¸ªä¸æ å° POJO çä¾åï¼"
+
+#. 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 æ¥è¯¢ä¸å¼ç¨å®ã"
+
+#. Tag: title
+#, no-c-format
+msgid "XML mapping metadata"
+msgstr "XML æ å°å
æ°æ®"
+
+#. 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> å±æ§å¿
é¡»æ¯ä¸åæ ¼å¼ä¹ä¸ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"element-name\"</literal>: map to the named XML element"
+msgstr "<literal>\"element-name\"</literal>ï¼æ å°ä¸ºæå®ç XML å
ç´ "
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\"@attribute-name\"</literal>: map to the named XML attribute"
+msgstr "<literal>\"@attribute-name\"</literal>ï¼æ å°ä¸ºæå®ç XML å±æ§"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>\".\"</literal>: map to the parent element"
+msgstr "<literal>\".\"</literal>ï¼æ å°ä¸ºç¶å
ç´ "
+
+#. 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>ï¼æ å°ä¸ºæå®å
ç´ çæå®å±æ§"
+
+#. 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 æ ä¸ï¼è¢«å¼ç¨å®ä½æ¬èº«ä¸åºç°ï¼ï¼èéååæ ¹æ¬ä¸åºç°ã"
+
+#. 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 ä¸è½å¾å¥½å°å¤ç循ç¯å¼ç¨ã"
+
+#. 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 æ¥è¯¢ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "would return datasets such as this:"
+msgstr "è¿åçæ°æ®éå°æ¯è¿æ ·ï¼ "
+
+#. Tag: para
+#, no-c-format
+msgid "If you set <literal>embed-xml=\"true\"</literal> on the <literal><one-to-many></literal> mapping, the data might look more like this:"
+msgstr "å¦æä½ æä¸å¯¹å¤æ å° <literal><one-to-many></literal> ç embed-xml å±æ§ç½®ä¸ºçï¼<literal>embed-xml=\"true\"</literal>ï¼ï¼åæ°æ®çä¸å»å°±åè¿æ ·ï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Manipulating XML data"
+msgstr "æä½ XML æ°æ®"
+
+#. 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 ä¼è¯å¯ä»¥åå°è¿ä¸ç¹ï¼"
+
+#. 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 ""
+#~ "<![CDATA[<class name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"accountId\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"accountId\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customer\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class entity-name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\" \n"
+#~ " type=\"string\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customerId\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\" \n"
+#~ " entity-name=\"Customer\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\" \n"
+#~ " type=\"big_decimal\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class entity-name=\"Account\" \n"
+#~ " table=\"ACCOUNTS\" \n"
+#~ " node=\"account\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"ACCOUNT_ID\" \n"
+#~ " node=\"@id\" \n"
+#~ " type=\"string\"/>\n"
+#~ " \n"
+#~ " <many-to-one name=\"customerId\" \n"
+#~ " column=\"CUSTOMER_ID\" \n"
+#~ " node=\"customer/@id\" \n"
+#~ " embed-xml=\"false\" \n"
+#~ " entity-name=\"Customer\"/>\n"
+#~ " \n"
+#~ " <property name=\"balance\" \n"
+#~ " column=\"BALANCE\" \n"
+#~ " node=\"balance\" \n"
+#~ " type=\"big_decimal\"/>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[<class name=\"Customer\" \n"
+#~ " table=\"CUSTOMER\" \n"
+#~ " node=\"customer\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"CUST_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <map name=\"accounts\" \n"
+#~ " node=\".\" \n"
+#~ " embed-xml=\"true\">\n"
+#~ " <key column=\"CUSTOMER_ID\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"SHORT_DESC\" \n"
+#~ " node=\"@short-desc\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many entity-name=\"Account\"\n"
+#~ " embed-xml=\"false\" \n"
+#~ " node=\"account\"/>\n"
+#~ " </map>\n"
+#~ " \n"
+#~ " <component name=\"name\" \n"
+#~ " node=\"name\">\n"
+#~ " <property name=\"firstName\" \n"
+#~ " node=\"first-name\"/>\n"
+#~ " <property name=\"initial\" \n"
+#~ " node=\"initial\"/>\n"
+#~ " <property name=\"lastName\" \n"
+#~ " node=\"last-name\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<class name=\"Customer\" \n"
+#~ " table=\"CUSTOMER\" \n"
+#~ " node=\"customer\">\n"
+#~ " \n"
+#~ " <id name=\"id\" \n"
+#~ " column=\"CUST_ID\" \n"
+#~ " node=\"@id\"/>\n"
+#~ " \n"
+#~ " <map name=\"accounts\" \n"
+#~ " node=\".\" \n"
+#~ " embed-xml=\"true\">\n"
+#~ " <key column=\"CUSTOMER_ID\" \n"
+#~ " not-null=\"true\"/>\n"
+#~ " <map-key column=\"SHORT_DESC\" \n"
+#~ " node=\"@short-desc\" \n"
+#~ " type=\"string\"/>\n"
+#~ " <one-to-many entity-name=\"Account\"\n"
+#~ " embed-xml=\"false\" \n"
+#~ " node=\"account\"/>\n"
+#~ " </map>\n"
+#~ " \n"
+#~ " <component name=\"name\" \n"
+#~ " node=\"name\">\n"
+#~ " <property name=\"firstName\" \n"
+#~ " node=\"first-name\"/>\n"
+#~ " <property name=\"initial\" \n"
+#~ " node=\"initial\"/>\n"
+#~ " <property name=\"lastName\" \n"
+#~ " node=\"last-name\"/>\n"
+#~ " </component>\n"
+#~ " \n"
+#~ " ...\n"
+#~ " \n"
+#~ "</class>]]>"
+#~ msgid ""
+#~ "<![CDATA[from Customer c left join fetch c.accounts where c.lastName "
+#~ "like :lastName]]>"
+#~ msgstr ""
+#~ "<![CDATA[from Customer c left join fetch c.accounts where c.lastName "
+#~ "like :lastName]]>"
+#~ msgid ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account short-desc=\"Savings\">987632567</account>\n"
+#~ " <account short-desc=\"Credit Card\">985612323</account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account short-desc=\"Savings\">987632567</account>\n"
+#~ " <account short-desc=\"Credit Card\">985612323</account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgid ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account id=\"987632567\" short-desc=\"Savings\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>100.29</balance>\n"
+#~ " </account>\n"
+#~ " <account id=\"985612323\" short-desc=\"Credit Card\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>-2370.34</balance>\n"
+#~ " </account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgstr ""
+#~ "<![CDATA[<customer id=\"123456789\">\n"
+#~ " <account id=\"987632567\" short-desc=\"Savings\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>100.29</balance>\n"
+#~ " </account>\n"
+#~ " <account id=\"985612323\" short-desc=\"Credit Card\">\n"
+#~ " <customer id=\"123456789\"/>\n"
+#~ " <balance>-2370.34</balance>\n"
+#~ " </account>\n"
+#~ " <name>\n"
+#~ " <first-name>Gavin</first-name>\n"
+#~ " <initial>A</initial>\n"
+#~ " <last-name>King</last-name>\n"
+#~ " </name>\n"
+#~ " ...\n"
+#~ "</customer>]]>"
+#~ msgid ""
+#~ "<![CDATA[Document doc = ....;\n"
+#~ " \n"
+#~ "Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "List results = dom4jSession\n"
+#~ " .createQuery(\"from Customer c left join fetch c.accounts where c."
+#~ "lastName like :lastName\")\n"
+#~ " .list();\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " //add the customer data to the XML document\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " doc.add(customer);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Document doc = ....;\n"
+#~ " \n"
+#~ "Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "List results = dom4jSession\n"
+#~ " .createQuery(\"from Customer c left join fetch c.accounts where c."
+#~ "lastName like :lastName\")\n"
+#~ " .list();\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " //add the customer data to the XML document\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " doc.add(customer);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgid ""
+#~ "<![CDATA[Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " //change the customer name in the XML and database\n"
+#~ " Element name = customer.element(\"name\");\n"
+#~ " name.element(\"first-name\").setText(firstName);\n"
+#~ " name.element(\"initial\").setText(initial);\n"
+#~ " name.element(\"last-name\").setText(lastName);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+#~ msgstr ""
+#~ "<![CDATA[Session session = factory.openSession();\n"
+#~ "Session dom4jSession = session.getSession(EntityMode.DOM4J);\n"
+#~ "Transaction tx = session.beginTransaction();\n"
+#~ "\n"
+#~ "Element cust = (Element) dom4jSession.get(\"Customer\", customerId);\n"
+#~ "for ( int i=0; i<results.size(); i++ ) {\n"
+#~ " Element customer = (Element) results.get(i);\n"
+#~ " //change the customer name in the XML and database\n"
+#~ " Element name = customer.element(\"name\");\n"
+#~ " name.element(\"first-name\").setText(firstName);\n"
+#~ " name.element(\"initial\").setText(initial);\n"
+#~ " name.element(\"last-name\").setText(lastName);\n"
+#~ "}\n"
+#~ "\n"
+#~ "tx.commit();\n"
+#~ "session.close();]]>"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Conventions.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Conventions.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Conventions.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,214 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-16 11:39+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Document Conventions"
+msgstr "ææ¡£è§å"
+
+#. Tag: para
+#, no-c-format
+msgid "This manual uses several conventions to highlight certain words and phrases and draw attention to specific pieces of information."
+msgstr "æ¬æå使ç¨äºå ç§è§åæ¥çªåºæäºæååçè¯ä»¥åæäºä¿¡æ¯ã"
+
+#. Tag: para
+#, no-c-format
+msgid "In PDF and paper editions, this manual uses typefaces drawn from the <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> set. The Liberation Fonts set is also used in HTML editions if the set is installed on your system. If not, alternative but equivalent typefaces are displayed. Note: Red Hat Enterprise Linux 5 and later includes the Liberation Fonts set by default."
+msgstr "å¨ PDF çæ¬éï¼æ¬æåä½¿ç¨ <ulink url=\"https://fedorahosted.org/liberation-fonts/\">Liberation Fonts</ulink> ééæ½åç typefacesãå¦æä½ å®è£
äº Liberation Fonts éï¼å®ä¹ä¼ç¨å¨ HTML çæ¬éãå¦æ没æå®è£
ï¼åä¼ä½¿ç¨å
¶ä»ç¸çç typefacesã请注æï¼çº¢å¸½ä¼ä¸ç Linux 5 åä¹åççæ¬ç¼ºçé½å
å«äº Liberation Fonts éã"
+
+#. Tag: title
+#, no-c-format
+msgid "Typographic Conventions"
+msgstr "å°å·è§å"
+
+#. Tag: para
+#, no-c-format
+msgid "Four typographic conventions are used to call attention to specific words and phrases. These conventions, and the circumstances they apply to, are as follows."
+msgstr "æ们使ç¨äºåç§å°å·è§åæ¥çªåºç¹æ®çæååçè¯ãä¸é¢æ¯è¿äºè§å以åå
¶éç¨çæ
åµã"
+
+#. Tag: para
+#, no-c-format
+msgid "<literal>Mono-spaced Bold</literal>"
+msgstr "<literal>Mono-spaced Bold</literal>"
+
+#. Tag: para
+#, no-c-format
+msgid "Used to highlight system input, including shell commands, file names and paths. Also used to highlight keycaps and key combinations. For example:"
+msgstr "ç¨æ¥é«äº®æ¾ç¤ºç³»ç»è¾å
¥ï¼å
æ¬ shell å½ä»¤ãæ件ååè·¯å¾ãå®ä¹ç¨äºé«äº®æ¾ç¤ºé®åé®ç»åãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "To see the contents of the file <filename>my_next_bestselling_novel</filename> in your current working directory, enter the <command>cat my_next_bestselling_novel</command> command at the shell prompt and press <keycap>Enter</keycap> to execute the command."
+msgstr "è¦æ¥çå½åå·¥ä½ç®å½éç <filename>my_next_bestselling_novel</filename> çå
容ï¼è¯·å¨ shell æ示符ä¸è¾å
¥ <command>cat my_next_bestselling_novel</command> 并æ<keycap>Enter</keycap> æ¥æ§è¡å½ä»¤ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The above includes a file name, a shell command and a keycap, all presented in mono-spaced bold and all distinguishable thanks to context."
+msgstr "ä¸é¢å
æ¬äºä¸ä¸ªæ件åãä¸ä¸ª shell å½ä»¤åé®ï¼å®ä»¬é½ä»¥ mono-spaced bold åºç°å¹¶åä¸ä¸æåºåã"
+
+#. Tag: para
+#, no-c-format
+msgid "Key combinations can be distinguished from keycaps by the hyphen connecting each part of a key combination. For example:"
+msgstr "é®ç»åå¯ä»¥éè¿è¿å符åé®æ¥åºåãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycap>Enter</keycap> to execute the command."
+msgstr "æ <keycap>Enter</keycap> æ¥æ§è¡è¿ä¸ªå½ä»¤ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> to switch to the first virtual terminal. Press <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> to return to your X-Windows session."
+msgstr "æ <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo> åæ¢è³ç¬¬ä¸ä¸ªèæç»ç«¯ãæ <keycombo><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F7</keycap></keycombo> è¿åå° X-Windows ä¼è¯ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The first paragraph highlights the particular keycap to press. The second highlights two key combinations (each a set of three keycaps with each set pressed simultaneously)."
+msgstr "第ä¸æ®µé«äº®æ¾ç¤ºäºç¹æ®çé®ã第äºæ®µé«äº®æ¾ç¤ºäºä¸¤ä¸ªé®ç»åï¼æ¯ä¸ªé½ç±ä¸ä¸ªåæ¶æä½çé®ææï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "If source code is discussed, class names, methods, functions, variable names and returned values mentioned within a paragraph will be presented as above, in <literal>mono-spaced bold</literal>. For example:"
+msgstr "å¨æºç ä¸æåçç±»åãæ¹æ³ãå½æ°ãåéåè¿åå¼é½å°ä»¥ <literal>mono-spaced bold</literal> åºç°ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "File-related classes include <classname>filesystem</classname> for file systems, <classname>file</classname> for files, and <classname>dir</classname> for directories. Each class has its own associated set of permissions."
+msgstr "æ件ç¸å
³çç±»å
æ¬ç¨äºæ件系ç»ç <classname>filesystem</classname>ãç¨äºæ件ç <classname>file</classname> åç¨äºç®å½ç <classname>dir</classname>ãæ¯ä¸ªç±»é½æèªå·±çä¸å¥æéã"
+
+#. Tag: para
+#, no-c-format
+msgid "<application>Proportional Bold</application>"
+msgstr "<application>Proportional Bold</application>"
+
+#. Tag: para
+#, no-c-format
+msgid "This denotes words or phrases encountered on a system, including application names; dialog box text; labeled buttons; check-box and radio button labels; menu titles and sub-menu titles. For example:"
+msgstr "å®è¡¨ç¤ºç³»ç»éçæåæçè¯ï¼å
æ¬ç¨åºåã对è¯æ¡ææ¬ãæ ç¾æé®ãå¤éæ¡ååéæ¡ãèåååèåæ é¢ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Choose <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> from the main menu bar to launch <application>Mouse Preferences</application>. In the <guilabel>Buttons</guilabel> tab, click the <guilabel>Left-handed mouse</guilabel> check box and click <guibutton>Close</guibutton> to switch the primary mouse button from the left to the right (making the mouse suitable for use in the left hand)."
+msgstr "ä»ä¸»èåéæ© <menuchoice><guimenu>System</guimenu><guisubmenu>Preferences</guisubmenu><guimenuitem>Mouse</guimenuitem></menuchoice> æ¥å¯å¨ <application>Mouse Preferences</application>ãå¨ <guilabel>Buttons</guilabel> æ ç¾é¡µéï¼ç¹å» <guilabel>Left-handed mouse</guilabel> å¤éæ¡å¹¶ç¹å» <guibutton>Close</guibutton> æ¥æé¼ æ 主æé®ä»å·¦åæ¢å°å³ï¼éåäºä¹ æ¯ç¨å·¦æç人ï¼ã"
+
+#. Tag: para
+#, no-c-format
+msgid "To insert a special character into a <application>gedit</application> file, choose <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice> from the main menu bar. Next, choose <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice> from the <application>Character Map</application> menu bar, type the name of the character in the <guilabel>Search</guilabel> field and click <guibutton>Next</guibutton>. The character you sought will be highlighted in the <guilabel>Character Table</guilabel>. Double-click this highlighted character to place it in the <guilabel>Text to copy</guilabel> field and then click the <guibutton>Copy</guibutton> button. Now switch back to your document and choose <menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice> from the <application>gedit</application> menu bar."
+msgstr "è¦å¨ <application>gedit</application> æ件éæå
¥ç¹æ®å符ï¼ä»ä¸»èåééæ© <menuchoice><guimenu>Applications</guimenu><guisubmenu>Accessories</guisubmenu><guimenuitem>Character Map</guimenuitem></menuchoice>ãç¶åï¼ä» <application>Character Map</application> èåæ¡ééæ© <menuchoice><guimenu>Search</guimenu><guimenuitem>Find…</guimenuitem></menuchoice>ï¼å¨ <guilabel>Search</guilabel>å段éè¾å
¥å符并ç¹å» <guibutton>Next</guibutton>ãä½ è¦æç´¢çå符ä¼å¨ <guilabel>Character Table</guilabel> éé«äº®æ¾ç¤ºãåå»è¿ä¸ªé«äº®æ¾ç¤ºçå符并æ¾å
¥ <guilabel>Text to copy</guilabel> å段éï¼ç¶åç¹å» <guibutton>Copy</guibutton> æé®ãç°å¨åæ¢åä½ çææ¡£å¹¶ä» <application>gedit</application> èåæ¡ééæ©<menuchoice><guimenu>Edit</guimenu><guimenuitem>Paste</guimenuitem></menuchoice>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The above text includes application names; system-wide menu names and items; application-specific menu names; and buttons and text found within a GUI interface, all presented in proportional bold and all distinguishable by context."
+msgstr "ä¸é¢çå
容å
æ¬äºç¨åºå称ãç³»ç»çº§çèåååæ¡ç®ãç¨åºä¸æçèååãå¾å½¢çé¢éçæé®åææ¬ï¼å®ä»¬é½ä»¥ proportional bold åºç°å¹¶åå
¶ä»å
容åºåã"
+
+#. Tag: para
+#, no-c-format
+msgid "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> or <application><replaceable>Proportional Bold Italic</replaceable></application>"
+msgstr "<command><replaceable>Mono-spaced Bold Italic</replaceable></command> æ <application><replaceable>Proportional Bold Italic</replaceable></application>"
+
+#. Tag: para
+#, no-c-format
+msgid "Whether mono-spaced bold or proportional bold, the addition of italics indicates replaceable or variable text. Italics denotes text you do not input literally or displayed text that changes depending on circumstance. For example:"
+msgstr "æ è®ºæ¯ mono-spaced bold è¿æ¯ proportional boldï¼æä½é½è¡¨ç¤ºå¯æ¿æ¢çæå¯åçææ¬ãæä½è¡¨ç¤ºéè¾å
¥çææ¬ï¼å®æ ¹æ®å¨å´çå
容èååãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "To connect to a remote machine using ssh, type <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command> at a shell prompt. If the remote machine is <filename>example.com</filename> and your username on that machine is john, type <command>ssh john at example.com</command>."
+msgstr "è¦ç¨ ssh è¿æ¥å°è¿ç¨æºå¨ï¼å¨ shell æ示ä¸è¾å
¥ <command>ssh <replaceable>username</replaceable>@<replaceable>domain.name</replaceable></command>ãå¦æè¿ä¸ªè¿ç¨ä¸»æºæ¯ <filename>example.com</filename> ä¸ä½ çç¨æ·åæ¯ johnï¼è¯·è¾å
¥ <command>ssh john at example.com</command>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "The <command>mount -o remount <replaceable>file-system</replaceable></command> command remounts the named file system. For example, to remount the <filename>/home</filename> file system, the command is <command>mount -o remount /home</command>."
+msgstr "<command>mount -o remount <replaceable>file-system</replaceable></command> å½ä»¤éæ°æè½½æ件系ç»ãä¾å¦ï¼è¦éæ°æè½½ <filename>/home</filename>ï¼å½ä»¤æ¯ <command>mount -o remount /home</command>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "To see the version of a currently installed package, use the <command>rpm -q <replaceable>package</replaceable></command> command. It will return a result as follows: <command><replaceable>package-version-release</replaceable></command>."
+msgstr "è¦æ¥çå½åå®è£
ç软件å
ççæ¬ï¼ä½ å¯ä»¥ä½¿ç¨ <command>rpm -q <replaceable>package</replaceable></command> å½ä»¤ãå®å°è¿åè¿æ ·çç»æéï¼<command><replaceable>package-version-release</replaceable></command>ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Note the words in bold italics above — username, domain.name, file-system, package, version and release. Each word is a placeholder, either for text you enter when issuing a command or for text displayed by the system."
+msgstr "请注æä¸é¢åä½ä¸ºç²æä½çæå — username, domain.name, file-system, package, version å releaseãæ 论æ¯ä½ è¾å
¥çå½ä»¤è¿æ¯ç³»ç»æ¾ç¤ºçææ¬ï¼æ¯ä¸ªæåé½æ¯ä¸ä¸ªå ä½ç¬¦ã"
+
+#. Tag: para
+#, no-c-format
+msgid "Aside from standard usage for presenting the title of a work, italics denotes the first use of a new and important term. For example:"
+msgstr "é¤äºè¡¨ç¤ºæ é¢çæ åç¨æ³ä¹å¤ï¼æä½è¡¨ç¤ºæ°çåéè¦çæ¯è¯ç第ä¸æ¬¡ä½¿ç¨ãä¾å¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Publican is a <firstterm>DocBook</firstterm> publishing system."
+msgstr "Publican æ¯ä¸ä¸ªåºäº <firstterm>DocBook</firstterm> çåå¸ç³»ç»ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Pull-quote Conventions"
+msgstr "å¯æ é¢è§å"
+
+#. Tag: para
+#, no-c-format
+msgid "Terminal output and source code listings are set off visually from the surrounding text."
+msgstr "ç»ç«¯è¾åºåæºä»£ç å表ç±å¨å´çææ¬æ¥çæã"
+
+#. Tag: para
+#, no-c-format
+msgid "Output sent to a terminal is set in <computeroutput>mono-spaced roman</computeroutput> and presented thus:"
+msgstr "åéå°ç»ç«¯çè¾åºå¨ <computeroutput>mono-spaced roman</computeroutput> 设置ä¸ä»¥è¿ç§å½¢å¼åºç°ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "Source-code listings are also set in <computeroutput>mono-spaced roman</computeroutput> but add syntax highlighting as follows:"
+msgstr "æºç å表ä¹å¨ <computeroutput>mono-spaced roman</computeroutput> é设置ä½æ·»å äºå¦ä¸çè¯æ³é«äº®æ¾ç¤ºï¼"
+
+#. Tag: title
+#, no-c-format
+msgid "Notes and Warnings"
+msgstr "注æåè¦å"
+
+#. Tag: para
+#, no-c-format
+msgid "Finally, we use three visual styles to draw attention to information that might otherwise be overlooked."
+msgstr "æåï¼æ们使ç¨ä¸ç« å¯è§é£æ ¼æ¥å¼èµ·å¯¹å¯è½è¢«å¿½è§çä¿¡æ¯ç注æã"
+
+#. Tag: title
+#, no-c-format
+msgid "Note"
+msgstr "注æ"
+
+#. Tag: para
+#, no-c-format
+msgid "Notes are tips, shortcuts or alternative approaches to the task at hand. Ignoring a note should have no negative consequences, but you might miss out on a trick that makes your life easier."
+msgstr "注ææ¯å®ææä¸ä»»å¡çæ示ãå¿«æ·æ¹å¼æå
¶ä»æ¹æ³ã忽ç¥â注æâä¸ä¼äº§çè´é¢å½±åï¼ä½ä½ å¯è½ä¼éå¤±ä½¿ä½ åççæå·§ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Important"
+msgstr "éè¦ä¿¡æ¯"
+
+#. Tag: para
+#, no-c-format
+msgid "Important boxes detail things that are easily missed: configuration changes that only apply to the current session, or services that need restarting before an update will apply. Ignoring a box labeled 'Important' won't cause data loss but may cause irritation and frustration."
+msgstr "éè¦ä¿¡æ¯æ¾ç¤ºå®¹æ被éè¿çä¿¡æ¯ï¼åªéç¨äºå½åä¼è¯çé
ç½®æ¹å¨ãæéè¦éå¯æ¥çæçæå¡ã忽ç¥æ 记为âéè¦ä¿¡æ¯âç对è¯æ¡ä¸ä¼å¯¼è´æ°æ®ä¸¢å¤±ä½ä¼å¼åé®é¢ã"
+
+#. Tag: title
+#, no-c-format
+msgid "Warning"
+msgstr "è¦å"
+
+#. Tag: para
+#, no-c-format
+msgid "Warnings should not be ignored. Ignoring warnings will most likely cause data loss."
+msgstr "è¦åä¸åºè¯¥è¢«å¿½ç¥ã忽ç¥è¦åå°å¯¼è´æ°æ®ä¸¢å¤±ã"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Feedback.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Feedback.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Feedback.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,24 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-03-12T00:03:48\n"
+"PO-Revision-Date: 2010-03-16 10:17+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "We Need Feedback!"
+msgstr "æ们éè¦ä½ çåé¦ï¼"
+
+#. Tag: para
+#, no-c-format
+msgid "You should over ride this by creating your own local Feedback.xml file."
+msgstr "ç¨èªå·±ç Feedback.xml æ件è¦çæ¬æ®µå
容ã"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/fallback_content/Legal_Notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,19 @@
+#
+# AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: 0\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-16 10:18+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; This material may only be distributed subject to the terms and conditions set forth in the GNU Free Documentation License (GFDL), V1.2 or later (the latest version is presently available at <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>)."
+msgstr "Copyright <trademark class=\"copyright\"></trademark> &YEAR; &HOLDER; æ¬ææ¡£åªå¯ä»¥æç
§ GNU Free Documentation License (GFDL), V1.2 ææ´æ°åè®®è¿è¡ååï¼GNU çææ°çæ¬è¯·åè <ulink url=\"http://www.gnu.org/licenses/fdl.txt\">http://www.gnu.org/licenses/fdl.txt</ulink>ï¼ã"
+
Added: core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/legal_notice.po
===================================================================
--- core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/legal_notice.po (rev 0)
+++ core/branches/gradle2/hibernate-release/src/main/docbook/zh-CN/legal_notice.po 2010-06-10 16:31:26 UTC (rev 19714)
@@ -0,0 +1,52 @@
+msgid ""
+msgstr ""
+"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
+"POT-Creation-Date: 2010-02-04T04:51:23\n"
+"PO-Revision-Date: 2010-03-15 08:45+1000\n"
+"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Project-Id-Version: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Tag: title
+#, no-c-format
+msgid "Legal Notice"
+msgstr "Legal Notice"
+
+#. Tag: para
+#, no-c-format
+msgid "<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country> </address>"
+msgstr "<address> <street>1801 Varsity Drive</street> <city>Raleigh</city>, <state>NC</state><postcode>27606-2072</postcode><country>USA</country> <phone>Phone: +1 919 754 3700</phone> <phone>Phone: 888 733 4281</phone> <fax>Fax: +1 919 754 3701</fax> <pob>PO Box 13588</pob><city>Research Triangle Park</city>, <state>NC</state><postcode>27709</postcode><country>USA</country> </address> "
+
+#. Tag: para
+#, no-c-format
+msgid "Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General Public License</ulink>, as published by the Free Software Foundation."
+msgstr "Copyright <trademark class=\"copyright\"></trademark> 2007 by Red Hat, Inc. This copyrighted material is made available to anyone wishing to use, modify, copy, or redistribute it subject to the terms and conditions of the GNU <ulink url=\"http://www.gnu.org/licenses/lgpl-2.1.html\">Lesser General Public License</ulink>, as published by the Free Software Foundation."
+
+#. Tag: para
+#, no-c-format
+msgid "Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red Hat, Inc. in the United States and other countries."
+msgstr "Red Hat and the Red Hat \"Shadow Man\" logo are registered trademarks of Red Hat, Inc. in the United States and other countries."
+
+#. Tag: para
+#, no-c-format
+msgid "All other trademarks referenced herein are the property of their respective owners."
+msgstr "All other trademarks referenced herein are the property of their respective owners."
+
+#. Tag: para
+#, no-c-format
+msgid "The GPG fingerprint of the security at redhat.com key is:"
+msgstr "The GPG fingerprint of the security at redhat.com key is:"
+
+#. Tag: para
+#, no-c-format
+msgid "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+msgstr "CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E"
+
+#~ msgid "ROLES_OF_TRANSLATORS"
+#~ msgstr "<!--TRANS:ROLES_OF_TRANSLATORS-->"
+
+#~ msgid "CREDIT_FOR_TRANSLATORS"
+#~ msgstr "<!--TRANS:CREDIT_FOR_TRANSLATORS-->"
More information about the hibernate-commits
mailing list