[jboss-cvs] JBossAS SVN: r89779 - in projects/docs/enterprise/4.2.7/Hibernate: Hibernate_Annotations_Reference_Guide and 9 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jun 3 21:49:17 EDT 2009


Author: irooskov at redhat.com
Date: 2009-06-03 21:49:17 -0400 (Wed, 03 Jun 2009)
New Revision: 89779

Added:
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/Makefile
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/.directory
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Additional_modules.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Author_Group.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Book_Info.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Chapter.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Entity_Beans.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Feedback.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.ent
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Introduction.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Overriding_metadata_through_XML.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Preface.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Revision_History.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Setting_up_an_annotations_project.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/.directory
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_1.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_10.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_11.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_12.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_13.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_14.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_15.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_16.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_17.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_18.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_19.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_2.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_20.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21a.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_22.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_23.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_24.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_25.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_26.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_27.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_28.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_29.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_3.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_30.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_31.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_32.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_33.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_34.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_35.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_36.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_37.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_38.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_39.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_4.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_40.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_41.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_42.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_43.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_44.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_45.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_46.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_47.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_48.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_49.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_5.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_50.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_51.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_52.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_53.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_54.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_55.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_56.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_57.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_58.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_6.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_60.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_61.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_62.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_63.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_64.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_65.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_66.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_67.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_68.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_69.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_7.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_70.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_71.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_72.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_73.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_74.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_75.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_76.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_77.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_78.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_79.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_8.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_80.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_81.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_82.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_83.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_84.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_85.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_86.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_87.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_88.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_89.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_9.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_90.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_91.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_92.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_93.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_94.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_95.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_96.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_97.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_98.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_99.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/hibernate_logo_a.png
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/icon.svg
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Additional_modules.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Author_Group.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Book_Info.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Chapter.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Entity_Beans.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Feedback.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Hibernate_Annotations_Reference_Guide_CP03_FP01.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Introduction.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Overriding_metadata_through_XML.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Preface.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Revision_History.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Setting_up_an_annotations_project.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/extras/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/Makefile
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/.directory
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Architecture.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Author_Group.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Batch_processing.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Book_Info.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Chapter.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/EJBQL_The_Object_Query_Language.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Entity_listeners_and_Callback_methods.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Feedback.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.ent
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Introduction.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Native_query.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Preface.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Revision_History.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Setup_and_configuration.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Transactions_and_concurrency.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Working_with_objects.xml
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/.directory
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_1.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_10.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_11.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_12.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_13.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_14.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_15.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_16.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_17.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_18.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_19.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_2.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_20.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_21.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_22.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_23.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_24.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_25.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_26.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_27.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_28.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_29.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_3.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_30.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_31.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_32.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_33.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_34.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_35.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_4.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_5.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_6.xmlt
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_7.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-1.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-2.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-3.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-4.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-5.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_9.java
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/images/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/images/icon.svg
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Architecture.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Author_Group.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Batch_processing.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Book_Info.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Chapter.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/EJBQL_The_Object_Query_Language.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Entity_listeners_and_Callback_methods.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Feedback.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Hibernate_EntityManager_User_Guide_CP03_FP01.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Introduction.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Native_query.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Preface.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Revision_History.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Setup_and_configuration.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Transactions_and_concurrency.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Working_with_objects.pot
   projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/extras/
Log:
added FP versions of books because hibernate is being upgraded to that version


Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/Makefile
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/Makefile	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/Makefile	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+#Makefile for Hibernate_Annotations_Reference_Guide
+
+XML_LANG	= en-US
+DOCNAME		= Hibernate_Annotations_Reference_Guide_CP03_FP01
+#PRODUCT	= FIX_ME!
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+# Extra Parameters start here
+
+# Extra Parameters stop here
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/.directory
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/.directory	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/.directory	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+[Dolphin]
+Timestamp=2008,11,27,12,5,48
+ViewMode=1

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Additional_modules.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Additional_modules.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Additional_modules.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,84 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_Annotations_Reference_Guide-Additional_modules">
+	<title>Additional modules</title>
+	<para>
+		Hibernate Annotations mainly focuses on persistence metadata. The project also has a nice integration with two Hibernate modules.
+	</para>
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Additional_modules-Hibernate_Validator">
+		<title>Hibernate Validator</title>
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Validator-Description">
+			<title>Description</title>
+			<para>
+				Annotations are a very convenient and elegant way to specify invariant constraints for a domain model. You can, for example, express that a property should never be null, that the account balance should be strictly positive, etc. These domain-model constraints are declared in the bean itself by annotating its properties. A validator can then read them and check for constraint violations. The validation mechanism can be executed in different layers in your application without having to duplicate any of these rules (presentation layer, data access layer). Following the DRY principle, Hibernate Validator has been designed for that purpose.
+			</para>
+			<para>
+				Hibernate Validator works at two levels. First, it is able to check in-memory instances of a class for constraint violations. Second, it can apply the constraints to the Hibernate meta-model and incorporate them into the generated database schema.
+			</para>
+			<para>
+				Each constraint annotation is associated to a validator implementation responsible for checking the constraint on the entity instance. A validator can also (optionally) apply the constraint to the Hibernate meta-model, allowing Hibernate to generate DDL that expresses the constraint. With the appropriate event listener, you can execute the checking operation on inserts and updates done by Hibernate. Hibernate Validator is not limited to use with Hibernate. You can easily use it anywhere in your application.
+			</para>
+			<para>
+				When checking instances at runtime, Hibernate Validator returns information about constraint violations in an array of <classname>InvalidValue</classname> s. Among other information, the <classname>InvalidValue</classname> contains an error description message that can embed the parameter values bundle with the annotation (eg. length limit), and message strings that may be externalized to a <classname>ResourceBundle</classname> .
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Validator-Integration_with_Hibernate_Annotations">
+			<title>Integration with Hibernate Annotations</title>
+			<para>
+				If Hibernate Validator (<filename>hibernate-validator.jar</filename>) is available in the classpath, Hibernate Annotations will integrate it in two ways:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						Constraints will be applied to the Data Definition Language. In other words, the database schema will reflect the constraints (provided that you use the <filename>hbm2ddl</filename> tool).
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						Before an entity change is applied to the database (insert or update), the entity is validated. Validation errors, if any, will be carried over through an <classname>InvalidStateException</classname>.
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				For entities free of validation rules, the runtime performance cost is null.
+			</para>
+			<para>
+				To disable constraint propagation to DDL, set up <literal>hibernate.validator.apply_to_ddl</literal> to false in the configuration file. Such a need is very uncommon and not recommended.
+			</para>
+			<para>
+				To disable pre-entity change validation, set up <literal>hibernate.validator.autoregister_listeners</literal> to false in the configuration file. Such a need is very uncommon and not recommended.
+			</para>
+			<para>
+				Check the Hibernate Validator reference documentation for more information.
+			</para>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Additional_modules-Hibernate_Search">
+		<title>Hibernate Search</title>
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Search-Description">
+			<title>Description</title>
+			<para>
+				Full-text search engines like Apache Lucene
+				 are a very powerful technology to bring free text/efficient queries to applications. Ift suffers several mismatches when dealing with a object domain model (keeping the index up-to-date, mismatch between the index structure and the domain model, querying mismatch...) Hibernate Search indexes your domain model thanks to a few annotations, takes care of the database / index synchronization and brings you back regular managed objects from free text queries. <ulink url="http://lucene.apache.org">Apache Lucene</ulink> underlies Hibernate Search.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Search-Integration_with_Hibernate_Annotations">
+			<title>Integration with Hibernate Annotations</title>
+			<para>
+				Hibernate Search integrates with Hibernate Annotations transparently provided that hibernate-search.jar is present in the classpath. If you do not wish to automatically register Hibernate Search event listeners, you can set <literal>hibernate.search.autoregister_listeners</literal> to false. Such a need is very uncommon and not recommended.
+			</para>
+			<para>
+				Check the Hibernate Search reference documentation for more information.
+			</para>
+		</section>
+
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Author_Group.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Author_Group.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<author>
+		<firstname>Hibernate Development Team</firstname>
+		<surname></surname>
+	</author>
+	<editor>
+		<firstname>Red Hat Inc. Engineering Content Services</firstname>
+		<surname></surname>
+	</editor>
+</authorgroup>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Book_Info.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Book_Info.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,33 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Hibernate_Annotations_Reference_Guide-Hibernate_Annotations_Reference_Guide_CP07">
+	<title>Hibernate Annotations Reference Guide CP07</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.2.0 Cumulative Patch 7</subtitle>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.2</productnumber>
+	<edition>1.0</edition>
+	<pubsnumber>2</pubsnumber>
+	<pubdate>, 2009</pubdate>
+	<abstract>
+		<para>This book is a Reference Guide to Hibernate Annotations
+for JBoss Enterprise Application Platform 4.2.0 CP07.</para></abstract>
+			<corpauthor>
+				<inlinemediaobject>
+					<imageobject>
+						<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+					</imageobject>
+					<textobject>
+						<phrase>Logo</phrase>
+					</textobject>
+				</inlinemediaobject>
+			</corpauthor>
+			<copyright>
+				<year>&YEAR;</year>
+				<holder>&HOLDER;</holder>
+			</copyright>
+			<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+			<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+		</bookinfo>
+		

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Chapter.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Chapter.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Chapter.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_Annotations_Reference_Guide-Test">
+	<title>Test</title>
+	<para>
+		This is a test paragraph
+	</para>
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Test-Section_1_Test">
+		<title>Section 1 Test</title>
+		<para>
+			Test of a section
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Test-Section_2_Test">
+		<title>Section 2 Test</title>
+		<para>
+			Test of a section
+		</para>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Entity_Beans.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Entity_Beans.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Entity_Beans.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,1740 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_Annotations_Reference_Guide-Entity_Beans">
+	<title>Entity Beans</title>
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Intro" revision="2">
+		<title>Intro</title>
+		<para>
+			This section covers EJB 3.0 (aka Java Persistence) entity annotations and Hibernate-specific extensions.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Mapping_with_EJB3JPA_Annotations" revision="2">
+		<title>Mapping with EJB3/JPA Annotations</title>
+		<para>
+			EJB3 entities are plain POJOs. Actually they represent the exact same concept as the Hibernate persistent entities. Their mappings are defined through JDK 5.0 annotations (an XML descriptor syntax for overriding is defined in the EJB3 specification). Annotations can be split in two categories, the logical mapping annotations (allowing you to describe the object model, the class associations, etc.) and the physical mapping annotations (describing the physical schema, tables, columns, indexes, etc). We will mix annotations from both categories in the following code examples.
+		</para>
+		<para>
+			EJB3 annotations are in the <literal>javax.persistence.*</literal> package. Most JDK 5 compliant IDE (like Eclipse, IntelliJ IDEA and Netbeans) can autocomplete annotation interfaces and attributes for you (even without a specific "EJB3" module, since EJB3 annotations are plain JDK 5 annotations).
+		</para>
+		<para>
+			For more and runnable concrete examples read the JBoss EJB 3.0 tutorial or review the Hibernate Annotations test suite. Most of the unit tests have been designed to represent a concrete example and be a source of inspiration.
+		</para>
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Declaring_an_entity_bean">
+			<title>Declaring an entity bean</title>
+			<para>
+				Every bound persistent POJO class is an entity bean and is declared using the <literal>@Entity</literal> annotation (at the class level):
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_4.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				<literal>@Entity</literal> declares the class as an entity bean (i.e. a persistent POJO class), <literal>@Id</literal> declares the identifier property of this entity bean. The other mapping declarations are implicit. This "configuration by exception" concept is central to the new EJB3 specification and a major improvement. The class Flight is mapped to the Flight table, using the column id as its primary key column.
+			</para>
+			<para>
+				Depending on whether you annotate fields or methods, the access type used by Hibernate will be <literal>field</literal> or <literal>property</literal>. The EJB3 spec requires that you declare annotations on the element type that will be accessed, that is, the getter method if you use <literal>property</literal> access, the field if you use <literal>field</literal> access. Mixing EJB3 annotations in both fields and methods should be avoided. Hibernate will guess the access type from the position of <literal>@Id</literal> or <literal>@EmbeddedId</literal>.
+			</para>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Declaring_an_entity_bean-Defining_the_table">
+				<title>Defining the table</title>
+				<para>
+					<literal>@Table</literal> is set at the class level. It allows you to define the table, catalog, and schema names for your entity bean mapping. If no <literal>@Table</literal> is defined the default values are used: the unqualified class name of the entity.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_5.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The <literal>@Table</literal> element also contains <literal>schema</literal> and a <literal>catalog</literal> attributes, if they need to be defined. You can also define unique constraints to the table using the <literal>@UniqueConstraint</literal> annotation in conjunction with <literal>@Table</literal> (for a unique constraint bound to a single column, refer to <literal>@Column</literal>).
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_6.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					A unique constraint is applied to the tuple month, day. Note that the <literal>columnNames</literal> array refers to the logical column names.
+				</para>
+				<remark>The logical column name is defined by the Hibernate NamingStrategy implementation. The default EJB3 naming strategy use the physical column name as the logical column name. Note that this may be different than the property name (if the column name is explicit). Unless you override the NamingStrategy, you shouldn't worry about that.</remark>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Declaring_an_entity_bean-Versioning_for_optimistic_locking" revision="1">
+				<title>Versioning for optimistic locking</title>
+				<para>
+					You can add optimistic locking capability to an entity bean using the <literal>@Version</literal> annotation:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_7.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The version property will be mapped to the <literal>OPTLOCK</literal> column, and the entity manager will use it to detect conflicting updates (preventing lost updates you might otherwise see with the last-commit-wins strategy).
+				</para>
+				<para>
+					The version column may be a numeric (the recommended solution) or a timestamp as per the EJB3 spec. Hibernate supports any kind of type provided that you define and implement the appropriate <classname>UserVersionType</classname>.
+				</para>
+				<para>
+					The application must not alter the version number set up by Hibernate in any way. To artificially increase the version number, check in Hibernate EntityManager's reference documentation <literal>LockMode.WRITE</literal>
+				</para>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_simple_properties" revision="1">
+			<title>Mapping simple properties</title>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_simple_properties-Declaring_basic_property_mappings">
+				<title>Declaring basic property mappings</title>
+				<para>
+					Every non-static non-transient property (field or method) of an entity bean is considered persistent, unless you annotate it as <literal>@Transient</literal>. Not having an annotation for your property is equivalent to the appropriate <literal>@Basic</literal> annotation. The <literal>@Basic</literal> annotation allows you to declare the fetching strategy for a property:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_8.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					<literal>counter</literal>, a transient field, and <literal>lengthInMeter</literal>, a method annotated as <literal>@Transient</literal>, and will be ignored by the entity manager. <literal>name</literal>, <literal>length</literal>, and <literal>firstname</literal> properties are mapped persistent and eagerly fetched (the default for simple properties). The <literal>detailedComment</literal> property value will be lazily fetched from the database once a lazy property of the entity is accessed for the first time. Usually you don't need to lazy simple properties (not to be confused with lazy association fetching).
+				</para>
+				<note>
+					<para>
+						To enable property-level lazy fetching, your classes have to be instrumented: bytecode is added to the original one to enable such feature – please refer to the Hibernate reference documentation. If your classes are not instrumented, property level lazy loading is silently ignored.
+					</para>
+				</note>
+				<para>
+					The recommended alternative is to use the projection capability of EJB-QL or Criteria queries.
+				</para>
+				<para>
+					EJB3 supports property mapping of all basic types supported by Hibernate (all basic Java types, their respective wrappers and serializable classes). Hibernate Annotations supports out-of-the-box Enum type mapping either into a ordinal column (saving the enum ordinal) or a string-based column (saving the enum string representation): the persistence representation, defaulted to ordinal, can be overridden through the <literal>@Enumerated</literal> annotation as shown in the <literal>note</literal> property example.
+				</para>
+				<para>
+					In core Java APIs, the temporal precision is not defined. When dealing with temporal data you might want to describe the expected precision in database. Temporal data can have <literal>DATE</literal>, <literal>TIME</literal>, or <literal>TIMESTAMP</literal> precision (ie the actual date, only the time, or both). Use the <literal>@Temporal</literal> annotation to fine tune that.
+				</para>
+				<para>
+					<literal>@Lob</literal> indicates that the property should be persisted in a Blob or a Clob depending on the property type: <classname>java.sql.Clob</classname>, <classname>Character[]</classname>, <classname>char[]</classname> and java.lang.<classname>String</classname> will be persisted in a Clob. <classname>java.sql.Blob</classname>, <classname>Byte[]</classname>, <classname>byte[] </classname>and serializable type will be persisted in a Blob.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_9.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					If the property type implements <classname>java.io.Serializable</classname> and is not a basic type, and if the property is not annotated with <literal>@Lob</literal>, then the Hibernate <literal>serializable</literal> type is used.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_simple_properties-Declaring_column_attributes" revision="1">
+				<title>Declaring column attributes</title>
+				<para>
+					The column(s) used for a property mapping can be defined using the <literal>@Column</literal> annotation. Use it to override default values (see the EJB3 specification for more information on the defaults). You can use this annotation at the property level for properties that are:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							not annotated at all
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							annotated with <literal>@Basic</literal>
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							annotated with <literal>@Version</literal>
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							annotated with <literal>@Lob</literal>
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							annotated with <literal>@Temporal</literal>
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							annotated with <literal>@org.hibernate.annotations.CollectionOfElements</literal> (for Hibernate only)
+						</para>
+					</listitem>
+				</itemizedlist>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_10.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The <literal>name</literal> property is mapped to the <literal>flight_name</literal> column, which is not nullable, has a length of 50 and is not updatable (making the property immutable).
+				</para>
+				<para>
+					This annotation can be applied to regular properties as well as <literal>@Id</literal> or <literal>@Version</literal> properties.
+				</para>
+
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_11.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<orderedlist><title>Notes</title>
+						<listitem>
+							<para>
+								<literal>name</literal> (optional): the column name (default to the property name)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal>unique</literal> (optional): set a unique constraint on this column or not (default false)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal>nullable</literal> (optional): set the column as nullable (default true).
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal>insertable</literal> (optional): whether or not the column will be part of the insert statement (default true)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal>updatable</literal> (optional): whether or not the column will be part of the update statement (default true)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal>columnDefinition</literal> (optional): override the sql DDL fragment for this particular column (non portable)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal>table</literal> (optional): define the targeted table (default primary table)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal><literal>length</literal></literal> (optional): column length (default 255)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal><literal>precision</literal></literal> (optional): column decimal precision (default 0)
+							</para>
+						</listitem>
+						<listitem>
+							<para>
+								<literal><literal>scale</literal></literal> (optional): column decimal scale if useful (default 0)
+							</para>
+						</listitem>
+					</orderedlist>
+
+
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_simple_properties-Embedded_objects_aka_components">
+				<title>Embedded objects (aka components)</title>
+				<para>
+					It is possible to declare an embedded component inside an entity and even override its column mapping. Component classes have to be annotated at the class level with the <literal>@Embeddable</literal> annotation. It is possible to override the column mapping of an embedded object for a particular entity using the <literal>@Embedded</literal> and <literal>@AttributeOverride</literal> annotation in the associated property:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_12.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_13.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_14.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					A embeddable object inherits the access type of its owning entity (note that you can override that using the Hibernate-specific <literal>@AccessType</literal> annotations (see <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Hibernate_Annotation_Extensions" />).
+				</para>
+				<para>
+					The <literal>Person</literal> entity bean has two component properties, <literal>homeAddress</literal> and <literal>bornIn</literal>. <literal>homeAddress</literal> property has not been annotated, but Hibernate will guess that it is a persistent component by looking for the <literal>@Embeddable</literal> annotation in the Address class. We also override the mapping of a column name (to <literal>bornCountryName</literal>) with the <literal>@Embedded</literal> and <literal>@AttributeOverride </literal>annotations for each mapped attribute of <literal>Country</literal>. As you can see, <literal>Country </literal>is also a nested component of <literal>Address</literal>, again using auto-detection by Hibernate and EJB3 defaults. Overriding columns of embedded objects of embedded objects is currently not supported in the EJB3 spec, however, Hibernate Annotations supports it through dotted expressions.
+				</para>
+				<para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_15.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					 Hibernate Annotations supports one more feature that is not explicitly supported by the EJB3 specification: you can annotate a embedded object with the <literal>@MappedSuperclass</literal> annotation to make the superclass properties persistent (see <literal>@MappedSuperclass</literal> for more information).
+				</para>
+				<para>
+					While not supported by the EJB3 specification, Hibernate Annotations allows you to use association annotations in an embeddable object (ie <literal>@*ToOne</literal> nor <literal>@*ToMany</literal>). To override the association columns you can use <literal>@AssociationOverride</literal>.
+				</para>
+				<para>
+					If you want to have the same embeddable object type twice in the same entity, the column name defaulting will not work: at least one of the columns will have to be explicit. Hibernate goes beyond the EJB3 spec and allows you to enhance the defaulting mechanism through the <classname>NamingStrategy</classname>. <classname>DefaultComponentSafeNamingStrategy</classname> is a small improvement over the default EJB3NamingStrategy that allows embedded objects to be defaulted even if used twice in the same entity.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_simple_properties-Non_annotated_property_defaults">
+				<title>Non-annotated property defaults</title>
+				<para>
+					If a property is not annotated, the following rules apply:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>If the property is of a single type, it is mapped as <literal>@Basic</literal></para>
+					</listitem>
+					<listitem>
+						<para>Otherwise, if the type of the property is annotated as <literal>@Embeddable</literal>, it is mapped as <literal>@Embedded</literal></para>
+					</listitem>
+					<listitem>
+						<para>Otherwise, if the type of the property is Serializable, it is mapped as <literal>@Basic</literal> in a column holding the object in its serialized version</para>
+					</listitem>
+					<listitem>
+						<para>Otherwise, if the type of the property is <literal>java.sql.Clob</literal> or <literal>java.sql.Blob</literal>, it is mapped as <literal>@Lob</literal> with the appropriate LobType</para>
+					</listitem>
+				</itemizedlist>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_identifier_properties">
+			<title>Mapping identifier properties</title>
+			<para>
+				The <literal>@Id</literal> annotation lets you define which property is the identifier of your entity bean. This property can be set by the application itself or be generated by Hibernate (preferred). You can define the identifier generation strategy thanks to the <literal>@GeneratedValue</literal> annotation:
+			</para>
+			<variablelist>
+			<varlistentry>
+			<term><literal>AUTO></literal></term>
+			<listitem><para>identity column, sequence or table depending on the underlying DB</para></listitem>
+			</varlistentry>
+			<varlistentry>
+			<term><literal>TABLE></literal></term>
+			<listitem><para>table holding the id</para></listitem>
+			</varlistentry>
+			<varlistentry>
+			<term><literal>IDENTITY></literal></term>
+			<listitem><para>identity column</para></listitem>
+			</varlistentry>
+			<varlistentry>
+			<term><literal>SEQUENCE></literal></term>
+			<listitem><para>sequence</para></listitem>
+			</varlistentry>
+			</variablelist>
+			<para>
+				Hibernate provides more id generators than the basic EJB3 ones. Check <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Hibernate_Annotation_Extensions" /> for more information.
+			</para>
+			<para>
+				The following example shows a sequence generator using the <literal>SEQ_STORE</literal> configuration (see below)
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_16.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The next example uses the identity generator:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_17.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The <literal>AUTO</literal> generator is the preferred type for portable applications (across several DB vendors). The identifier generation configuration can be shared for several <literal>@Id</literal> mappings with the generator attribute. There are several configurations available through <literal>@SequenceGenerator</literal> and <literal>@TableGenerator</literal>. The scope of a generator can be the application or the class. Class-defined generators are not visible outside the class and can override application level generators. Application-level generators are defined at XML level (see <xref linkend="chap-Hibernate_Annotations_Reference_Guide-Overriding_metadata_through_XML" />):
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_18.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				If JPA XML (like <filename>META-INF/orm.xml</filename>) is used to define the generators, <literal>EMP_GEN</literal> and <literal>SEQ_GEN</literal> are application level generators. <literal>EMP_GEN</literal> defines a table based id generator using the hilo algorithm with a <literal>max_lo</literal> of 20. The hi value is kept in a <literal>table</literal> "<literal>GENERATOR_TABLE</literal>". The information is kept in a row where <literal>pkColumnName</literal> "key" is equals to <literal>pkColumnValue</literal> "<literal>EMP</literal>" and column <literal>valueColumnName</literal> "<literal>hi</literal>" contains the the next high value used.
+			</para>
+			<para>
+				<literal>SEQ_GEN</literal> defines a sequence generator using a sequence named <literal>my_sequence</literal>. The allocation size used for this sequence based hilo algorithm is 20. Note that this version of Hibernate Annotations does not handle <literal>initialValue</literal> in the sequence generator. The default allocation size is 50, so if you want to use a sequence and pickup the value each time, you must set the allocation size to 1.
+			</para>
+			<note>
+				<para>
+					Package level definition is no longer supported by the EJB 3.0 specification. However, you can use the <literal>@GenericGenerator</literal> at the package level (see <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Identifier" />).
+				</para>
+			</note>
+			<para>
+				The next example shows the definition of a sequence generator in a class scope:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_19.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				This class will use a sequence named my_sequence and the SEQ_STORE generator is not visible in other classes. Note that you can check the Hibernate Annotations tests in the <package>org.hibernate.test.annotations.id</package> package for more examples.
+			</para>
+			<para>
+				You can define a composite primary key through several syntaxes:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>annotate the component property as <literal>@Id</literal> and make the component class <literal>@Embeddable</literal></para>
+				</listitem>
+				<listitem>
+					<para>annotate the component property as <literal>@EmbeddedId</literal></para>
+				</listitem>
+				<listitem>
+					<para>annotate the class as <literal>@IdClass</literal> and annotate each property of the entity involved in the primary key with <literal>@Id</literal></para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				While quite common to the EJB2 developer, <literal>@IdClass</literal> is likely new for Hibernate users. The composite primary key class corresponds to multiple fields or properties of the entity class, and the names of primary key fields or properties in the primary key class and those of the entity class must match and their types must be the same. Let's look at an example:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_20.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				As you may have seen, <literal>@IdClass</literal> points to the corresponding primary key class.
+			</para>
+			<para>
+				While not supported by the EJB3 specification, Hibernate allows you to define associations inside a composite identifier. Simply use the regular annotations for that.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_21.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_inheritance">
+			<title>Mapping inheritance</title>
+			<para>
+				EJB3 supports the three types of inheritance:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>Table per Class Strategy: the <literal>&lt;union-class&gt;</literal> element in Hibernate</para>
+				</listitem>
+				<listitem>
+					<para>Single Table per Class Hierarchy Strategy: the <literal>&lt;subclass&gt;</literal> element in Hibernate</para>
+				</listitem>
+				<listitem>
+					<para>Joined Subclass Strategy: the <literal>&lt;joined-subclass&gt;</literal> element in Hibernate</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				The chosen strategy is declared at the class level of the top level entity in the hierarchy using the <literal>@Inheritance</literal> annotation.
+			</para>
+			<note>
+				<para>
+					Annotating interfaces is currently not supported.
+				</para>
+			</note>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_inheritance-Table_per_class">
+				<title>Table per class</title>
+				<para>
+					This strategy has many drawbacks (esp. with polymorphic queries and associations) explained in the EJB3 spec, the Hibernate reference documentation, <citetitle>Hibernate in Action</citetitle>, and many other places. Hibernate works around most of them implementing this strategy using <literal>SQL UNION</literal> queries. It is commonly used for the top level of an inheritance hierarchy:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_21a.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					This strategy supports one-to-many associations provided that they are bidirectional. This strategy does not support the <literal>IDENTITY</literal> generator strategy: the id has to be shared across several tables. Consequently, when using this strategy, you should not use <literal>AUTO </literal>nor <literal>IDENTITY</literal>.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_inheritance-Single_table_per_class_hierarchy">
+				<title>Single table per class hierarchy</title>
+				<para>
+					All properties of all super- and subclasses are mapped into the same table, instances are distinguished by a special discriminator column:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_22.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					<classname>Plane</classname> is the superclass, it defines the inheritance strategy <literal>InheritanceType.SINGLE_TABLE</literal>. It also defines the discriminator column through the <literal>@DiscriminatorColumn</literal> annotation. A discriminator column can also define the discriminator type. Finally, the <literal>@DiscriminatorValue</literal> annotation defines the value used to differentiate a class in the hierarchy. All of these attributes have sensible default values. The default name of the discriminator column is <literal>DTYPE</literal>. The default discriminator value is the entity name (as defined in <literal>@Entity.name</literal>) for DiscriminatorType.STRING. <classname>A320</classname> is a subclass; you only have to define discriminator value if you don't want to use the default value. The strategy and the discriminator type are implicit.
+				</para>
+				<para>
+					<literal>@Inheritance</literal> and <literal>@DiscriminatorColumn</literal> should only be defined at the top of the entity hierarchy.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_inheritance-Joined_subclasses">
+				<title>Joined subclasses</title>
+				<para>
+					The<literal> @PrimaryKeyJoinColumn</literal> and <literal>@PrimaryKeyJoinColumns</literal> annotations define the primary key(s) of the joined subclass table:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_23.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					All of the above entities use the <literal>JOINED</literal> strategy, the <literal>Ferry</literal> table is joined with the <literal>Boat</literal> table using the same primary key names. The <literal>AmericaCupClass</literal> table is joined with <literal>Boat</literal> using the join condition <code>Boat.id = AmericaCupClass.BOAT_ID</code>.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_inheritance-Inherit_properties_from_superclasses">
+				<title>Inherit properties from superclasses</title>
+				<para>
+					This is sometimes useful to share common properties through a technical or a business superclass without including it as a regular mapped entity (ie no specific table for this entity). For that purpose you can map them as <literal>@MappedSuperclass</literal>.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_24.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					In database, this hierarchy will be represented as an <literal>Order</literal> table having the <literal>id</literal>, <literal>lastUpdate</literal> and <literal>lastUpdater</literal> columns. The embedded superclass property mappings are copied into their entity subclasses. Remember that the embeddable superclass is not the root of the hierarchy though.
+				</para>
+				<note>
+					<para>
+						Properties from superclasses not mapped as <literal>@MappedSuperclass</literal> are ignored.
+					</para>
+				</note>
+				<note>
+					<para>
+						The access type (field or methods), is inherited from the root entity, unless you use the Hibernate annotation <literal>@AccessType</literal>
+					</para>
+				</note>
+				<note>
+					<para>
+						The same notion can be applied to <literal>@Embeddable</literal> objects to persist properties from their superclasses. You also need to use <literal>@MappedSuperclass</literal> to do that (this should not be considered as a standard EJB3 feature though)
+					</para>
+				</note>
+				<note>
+					<para>
+						It is allowed to mark a class as <literal>@MappedSuperclass</literal> in the middle of the mapped inheritance hierarchy.
+					</para>
+				</note>
+				<note>
+					<para>
+						Any class in the hierarchy non annotated with <literal>@MappedSuperclass</literal> nor <literal>@Entity</literal> will be ignored.
+					</para>
+				</note>
+				<para>
+					You can override columns defined in entity superclasses at the root entity level using the <literal>@AttributeOverride</literal> annotation.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_25.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The <literal>altitude</literal> property will be persisted in an <literal>fld_altitude</literal> column of table <literal>Plane</literal> and the propulsion association will be materialized in a <literal>fld_propulsion_fk</literal> foreign key column.
+				</para>
+				<para>
+					You can define <literal>@AttributeOverride</literal>(s) and <literal>@AssociationOverride</literal>(s) on <literal>@Entity</literal> classes, <literal>@MappedSuperclass</literal> classes and properties pointing to an <literal>@Embeddable</literal> object.
+				</para>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_entity_bean_associationsrelationships">
+			<title>Mapping entity bean associations/relationships</title>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_entity_bean_associationsrelationships-One_to_one">
+				<title>One-to-one</title>
+				<para>
+					You can associate entity beans through a one-to-one relationship using <literal>@OneToOne</literal>. There are three cases for one-to-one associations: either the associated entities share the same primary key values, a foreign key is held by one of the entities (note that this FK column in the database should be constrained unique to simulate one-to-one multiplicity), or an association table is used to store the link between the 2 entities (a unique constraint has to be defined on each fk to ensure the one-to-one multiplicity)
+				</para>
+				<para>
+					First, we map a real one-to-one association using shared primary keys:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_26.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_27.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The one-to-one is marked as true by using the <literal>@PrimaryKeyJoinColumn</literal> annotation.
+				</para>
+				<para>
+					In the following example, the associated entities are linked through a foreign key column:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_28.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					A <classname>Customer</classname> is linked to a <classname>Passport</classname>, with a foreign key column named <literal>passport_fk</literal> in the <literal>Customer</literal> table. The join column is declared with the <literal>@JoinColumn</literal> annotation which looks like the <literal>@Column</literal> annotation. It has one more parameters named <literal>referencedColumnName</literal>. This parameter declares the column in the targeted entity that will be used to the join. Note that when using <literal><literal>referencedColumnName</literal></literal> to a non primary key column, the associated class has to be <classname>Serializable</classname>. Also note that the <literal><literal>referencedColumnName</literal></literal> to a non primary key column has to be mapped to a property having a single column (other cases might not work).
+				</para>
+				<para>
+					The association may be bidirectional. In a bidirectional relationship, one of the sides (and only one) has to be the owner: the owner is responsible for the association column(s) update. To declare a side as <emphasis>not</emphasis> responsible for the relationship, the attribute <literal>mappedBy</literal> is used. <literal>mappedBy</literal> refers to the property name of the association on the owner side. In our case, this is <literal>passport</literal>. As you can see, you don't have to (must not) declare the join column since it has already been declared on the owners side.
+				</para>
+				<para>
+					If no <literal>@JoinColumn</literal> is declared on the owner side, the defaults apply. A join column(s) will be created in the owner table and its name will be the concatenation of the name of the relationship in the owner side, <keycap>_</keycap> (underscore), and the name of the primary key column(s) in the owned side. In this example <literal>passport_id</literal> because the property name is <literal>passport</literal> and the column id of <literal>Passport </literal>is <literal>id</literal>.
+				</para>
+				<para>
+					The third possibility (using an association table) is very exotic.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_29.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					A <classname>Customer</classname> is linked to a <classname>Passport</classname> through a association table named <literal>CustomerPassports</literal> ; this association table has a foreign key column named <literal>passport_fk</literal> pointing to the <literal>Passport</literal> table (materialized by the <literal>inverseJoinColumn</literal> and a foreign key column named <literal>customer_fk</literal> pointing to the <literal>Customer</literal> table materialized by the <literal>joinColumns</literal> attribute.
+				</para>
+				<para>
+					You must declare the join table name and the join columns explicitly in such a mapping.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_entity_bean_associationsrelationships-Many_to_one">
+				<title>Many-to-one</title>
+				<para>
+					Many-to-one associations are declared at the property level with the annotation <literal>@ManyToOne</literal>:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_30.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The <literal>@JoinColumn</literal> attribute is optional, the default value(s) is like in one-to-one, the concatenation of the name of the relationship in the owner side, <keycap>_</keycap> (underscore), and the name of the primary key column in the owned side. In this example <literal>company_id</literal> because the property name is <literal>company</literal> and the column id of Company is <literal>id</literal>.
+				</para>
+				<para>
+					<literal>@ManyToOne</literal> has a parameter named <literal>targetEntity</literal> which describes the target entity name. You usually don't need this parameter since the default value (the type of the property that stores the association) is good in almost all cases. However this is useful when you want to use interfaces as the return type instead of the regular entity.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_31.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					You can also map a many-to-one association through an association table. This association table described by the <literal>@JoinTable</literal> annotation will contains a foreign key referencing back the entity table (through <literal>@JoinTable.joinColumns</literal>) and a a foreign key referencing the target entity table (through <literal>@JoinTable.inverseJoinColumns</literal>).
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_32.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_entity_bean_associationsrelationships-Collections" revision="1">
+				<title>Collections</title>
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Collections-Overview" revision="1">
+					<title>Overview</title>
+					<para>
+						You can map <classname>Collection</classname>, <literal>List</literal> (ie ordered lists, not indexed lists), <literal>Map</literal> and <classname>Set</classname>. The EJB3 specification describes how to map an ordered list (that is, a list ordered at load time) using <literal>@javax.persistence.OrderBy</literal> annotation: this annotation takes into parameter a list of comma separated (target entity) properties to order the collection by (for example, <code>firstname asc, age desc</code>), if the string is empty, the collection will be ordered by id. For true indexed collections, please refer to the <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Hibernate_Annotation_Extensions" />. EJB3 allows you to map Maps using as a key one of the target entity property using <literal>@MapKey(name="myProperty")</literal> (myProperty is a property name in the target entity). When using <literal>@MapKey</literal> (without property name), the target entity !
 primary key is used. The map key uses the same column as the property pointed out: there is no additional column defined to hold the map key, and it does make sense since the map key actually represents a target property. Be aware that once loaded, the key is no longer kept in sync with the property, in other words, if you change the property value, the key will not change automatically in your Java model (for true map support please refers to <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Hibernate_Annotation_Extensions" />). Many people confuse <literal>&lt;map&gt;</literal> capabilities and <literal>@MapKey</literal> ones. These are two different features. <literal>@MapKey</literal> still has some limitations, please check the forum or the JIRA tracking system for more information.
+					</para>
+					<para>
+						Hibernate has several notions of collections.
+					</para>
+					<table id="tabl-Hibernate_Annotations_Reference_Guide-Overview-Collections_semantics">
+						<title>Collections semantics</title>
+			<tgroup align="left" cols="3" colsep="1" rowsep="1">
+                <colspec colname="c1" colwidth="1*"/>
+                <colspec colname="c2" colwidth="1*"/>
+                <colspec colname="c3" colwidth="3*"/>
+							<thead>
+								<row>
+									<entry>
+										Semantic
+									</entry>
+									<entry>
+										java representation
+									</entry>
+									<entry>
+										annotations
+									</entry>
+								</row>
+							</thead>
+							<tbody>
+								<row>
+									<entry>
+										Bag semantic
+									</entry>
+									<entry>
+										java.util.List, java.util.Collection
+									</entry>
+									<entry>
+										@org.hibernate.annotations.CollectionOfElements or @OneToMany or @ManyToMany
+									</entry>
+								</row>
+								<row>
+									<entry>
+										Bag semantic with primary key (without the limitations of Bag semantic)
+									</entry>
+									<entry>
+										java.util.List, java.util.Collection
+									</entry>
+									<entry>
+										(@org.hibernate.annotations.CollectionOfElements or @OneToMany or @ManyToMany) and @CollectionId
+									</entry>
+								</row>
+								<row>
+									<entry>
+										List semantic
+									</entry>
+									<entry>
+										java.util.List
+									</entry>
+									<entry>
+										(@org.hibernate.annotations.CollectionOfElements or @OneToMany or @ManyToMany) and @org.hibernate.annotations.IndexColumn
+									</entry>
+								</row>
+								<row>
+									<entry>
+										Set semantic
+									</entry>
+									<entry>
+										java.util.Set
+									</entry>
+									<entry>
+										@org.hibernate.annotations.CollectionOfElements or @OneToMany or @ManyToMany
+									</entry>
+								</row>
+								<row>
+									<entry>
+										Map semantic
+									</entry>
+									<entry>
+										java.util.Map
+									</entry>
+									<entry>
+										(@org.hibernate.annotations.CollectionOfElements or @OneToMany or @ManyToMany) and (nothing or @org.hibernate.annotations.MapKey/MapKeyManyToMany for true map support, OR @javax.persistence.MapKey
+									</entry>
+								</row>
+							</tbody>
+						</tgroup>
+					</table>
+					<remark>So specifically, java.util.List collections without @org.hibernate.annotations.IndexColumn are going to be considered as bags.</remark>
+					<para>
+						Collection of primitive, core type or embedded objects is not supported by the EJB3 specification. Hibernate Annotations allows them however (see <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Hibernate_Annotation_Extensions" />).
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_33.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<para>
+						So <literal>City</literal> has a collection of <literal>Street</literal>s that are ordered by <literal>streetName</literal> (of <literal>Street</literal>) when the collection is loaded. <literal>Software</literal> has a map of <literal>Version</literal>s which key is the <literal>Version</literal> <literal>codeName</literal>.
+					</para>
+					<para>
+						Unless the collection is a generic, you will have to define <literal>targetEntity</literal>. This is an annotation attribute that take the target entity class as a value.
+					</para>
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Collections-One_to_many" revision="2">
+					<title>One-to-many</title>
+					<para>
+						One-to-many associations are declared at the property level with the annotation <literal>@OneToMany</literal>. One to many associations may be bidirectional.
+					</para>
+					<section id="sect-Hibernate_Annotations_Reference_Guide-One_to_many-Bidirectional">
+						<title>Bidirectional</title>
+						<para>
+							Since many-to-one are (almost) always the owner side of a bidirectional relationship in the EJB3 spec, the one-to-many association is annotated by <literal>@OneToMany( mappedBy=... )</literal>
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_34.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							<classname>Troop</classname> has a bidirectional one-to-many relationship with <literal>Soldier</literal> through the <literal>troop</literal> property. You don't have to (must not) define any physical mapping in the <literal>mappedBy</literal> side.
+						</para>
+						<para>
+							To map a bidirectional one-to-many, with the one-to-many side as the owning side, you have to remove the <literal>mappedBy</literal> element and set the many-to-one <literal>@JoinColumn</literal> as insertable and updatable to false. This solution is obviously not optimized and will produce some additional UPDATE statements.
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_35.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					</section>
+					
+					<section id="sect-Hibernate_Annotations_Reference_Guide-One_to_many-Unidirectional">
+						<title>Unidirectional</title>
+						<para>
+							A unidirectional one-to-many using a foreign key column in the owned entity is not that common and not really recommended. We strongly advise you to use a join table for this kind of association (as explained in the next section). This kind of association is described through a <literal>@JoinColumn</literal>
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_36.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							<literal>Customer</literal> describes a unidirectional relationship with <literal>Ticket</literal> using the join column <literal>CUST_ID</literal>.
+						</para>
+					</section>
+					
+					<section id="sect-Hibernate_Annotations_Reference_Guide-One_to_many-Unidirectional_with_join_table">
+						<title>Unidirectional with join table</title>
+						<para>
+							A unidirectional one-to-many with join table is much preferred. This association is described through an <literal>@JoinTable</literal>.
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_37.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							<literal>Trainer</literal> describes a unidirectional relationship with <classname>Monkey</classname> using the join table <classname>TrainedMonkeys</classname>, with a foreign key <literal>trainer_id</literal> to <literal>Trainer</literal> (<literal>joinColumns</literal>) and a foreign key <literal>monkey_id</literal> to <literal>Monkey</literal> (<literal>inversejoinColumns</literal>).
+						</para>
+					</section>
+					
+					<section id="sect-Hibernate_Annotations_Reference_Guide-One_to_many-Defaults" revision="1">
+						<title>Defaults</title>
+						<para>
+							Without describing any physical mapping, a unidirectional one-to-many with join table is used. The table name is the concatenation of the owner table name, <keycap>_</keycap>, and the other side table name. The foreign key name(s) referencing the owner table is the concatenation of the owner table, <keycap>_</keycap>, and the owner primary key column(s) name. The foreign key name(s) referencing the other side is the concatenation of the owner property name, <keycap>_</keycap>, and the other side primary key column(s) name. A unique constraint is added to the foreign key referencing the other side table to reflect the one-to-many.
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_38.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							<classname>Trainer</classname> describes a unidirectional relationship with <classname>Tiger</classname> using the join table <literal>Trainer_Tiger</literal>, with a foreign key <literal>trainer_id</literal> to <literal>Trainer</literal> (table name, <keycap>_</keycap>, trainer id) and a foreign key <literal>trainedTigers_id</literal> to <literal>Monkey</literal> (property name, <keycap>_</keycap>, Tiger primary column).
+						</para>
+					</section>
+
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Collections-Many_to_many" revision="">
+					<title>Many-to-many</title>
+					<section id="sect-Hibernate_Annotations_Reference_Guide-Many_to_many-Definition">
+						<title>Definition</title>
+						<para>
+							A many-to-many association is defined logically using the <literal>@ManyToMany</literal> annotation. You also have to describe the association table and the join conditions using the <literal>@JoinTable</literal> annotation. If the association is bidirectional, one side has to be the owner and one side has to be the inverse end (ie. it will be ignored when updating the relationship values in the association table):
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_39.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_40.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							We've already shown the many declarations and the detailed attributes for associations. We'll go deeper in the <literal>@JoinTable</literal> description, it defines a <literal>name</literal>, an array of join columns (an array in annotation is defined using { A, B, C }), and an array of inverse join columns. The latter ones are the columns of the association table which refer to the <classname>Employee</classname> primary key (the "other side").
+						</para>
+						<para>
+							As seen previously, the other side don't have to (must not) describe the physical mapping: a simple <literal>mappedBy</literal> argument containing the owner side property name bind the two.
+						</para>
+					</section>
+					
+					<section id="sect-Hibernate_Annotations_Reference_Guide-Many_to_many-Default_values">
+						<title>Default values</title>
+						<para>
+							As any other annotations, most values are guessed in a many-to-many relationship. Without describing any physical mapping in a unidirectional many-to-many the following rules applied. The table name is the concatenation of the owner table name, <keycap>_</keycap> and the other side table name. The foreign key name(s) referencing the owner table is the concatenation of the owner table name, <keycap>_</keycap> and the owner primary key column(s). The foreign key name(s) referencing the other side is the concatenation of the owner property name, <keycap>_</keycap>, and the other side primary key column(s). These are the same rules used for a unidirectional one-to-many relationship.
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_41.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							A <literal>Store_City</literal> is used as the join table. The <literal>Store_id</literal> column is a foreign key to the <literal>Store</literal> table. The <literal>implantedIn_id</literal> column is a foreign key to the <literal>City</literal> table.
+						</para>
+						<para>
+							Without describing any physical mapping in a bidirectional many-to-many the following rules applied. The table name is the concatenation of the owner table name, <keycap>_</keycap> and the other side table name. The foreign key name(s) referencing the owner table is the concatenation of the other side property name, <keycap>_</keycap>, and the owner primary key column(s). The foreign key name(s) referencing the other side is the concatenation of the owner property name, <keycap>_</keycap>, and the other side primary key column(s). These are the same rules used for a unidirectional one-to-many relationship.
+						</para>
+						
+		<programlisting language="java"><xi:include href="extras/Code_Example_42.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+						<para>
+							A <literal>Store_Customer</literal> is used as the join table. The <literal>stores_id</literal> column is a foreign key to the <literal>Store</literal> table. The <literal>customers_id</literal> column is a foreign key to the <literal>Customer</literal> table.
+						</para>
+					</section>
+
+				</section>
+
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_entity_bean_associationsrelationships-Transitive_persistence_with_cascading">
+				<title>Transitive persistence with cascading</title>
+				<para>
+					You probably have noticed the <literal>cascade</literal> attribute taking an array of <classname>CascadeType</classname> as a value. The cascade concept in EJB3 is very is similar to the transitive persistence and cascading of operations in Hibernate, but with slightly different semantics and cascading types:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para><literal>CascadeType.PERSIST</literal>: cascades the persist (create) operation to associated entities persist() is called or if the entity is managed</para>
+					</listitem>
+					<listitem>
+						<para><literal>CascadeType.MERGE</literal>: cascades the merge operation to associated entities if merge() is called or if the entity is managed</para>
+					</listitem>
+					<listitem>
+						<para><literal>CascadeType.REMOVE</literal>: cascades the remove operation to associated entities if delete() is called</para>
+					</listitem>
+					<listitem>
+						<para><literal>CascadeType.REFRESH</literal>: cascades the refresh operation to associated entities if refresh() is called</para>
+					</listitem>
+					<listitem>
+						<para><literal>CascadeType.ALL</literal>: all of the above</para>
+					</listitem>
+				</itemizedlist>
+				<note>
+					<para>
+						CascadeType.ALL also covers Hibernate-specific operations like save-update, lock etc... Check <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Cascade" /> for more information.
+					</para>
+				</note>
+				<para>
+					Please refer to the chapter 6.3 of the EJB3 specification for more information on cascading and create/merge semantics.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_entity_bean_associationsrelationships-Association_fetching" revision="1">
+				<title>Association fetching</title>
+				<para>
+					You have the ability to either eagerly or lazily fetch associated entities. The <literal>fetch</literal> parameter can be set to <literal>FetchType.LAZY</literal> or <literal>FetchType.EAGER</literal>. <literal>EAGER</literal> will try to use an outer join select to retrieve the associated object, while <literal>LAZY</literal> will only trigger a select when the associated object is accessed for the first time. <literal>@OneToMany</literal> and <literal>@ManyToMany</literal> associations are defaulted to <literal>LAZY</literal> and <literal>@OneToOne</literal> and <literal>@ManyToOne</literal> are defaulted to <literal>EAGER</literal>. For more information about static fetching, check <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Single_Association_related_annotations-Lazy_options_and_fetching_modes" />.
+				</para>
+				<para>
+					The recommended approach is to use <literal>LAZY</literal> on all static fetching definitions and override this choice dynamically through JPA-QL. JPA-QL has a <literal>fetch</literal> keyword that allows you to override laziness when doing a particular query. This is very useful to improve performance and is decided on a use-case-to-use-case basis.
+				</para>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_composite_primary_and_foreign_keys">
+			<title>Mapping composite primary and foreign keys</title>
+			<para>
+				Composite primary keys use a embedded class as the primary key representation, so you'd use the <literal>@Id</literal> and <literal>@Embeddable</literal> annotations. Alternatively, you can use the <literal>@EmbeddedId</literal> annotation. Note that the dependent class has to be serializable and implements <methodname>equals()</methodname>/<methodname>hashCode()</methodname>. You can also use <literal>@IdClass</literal> as described in <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_identifier_properties" />.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_43.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				or alternatively
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_44.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				<literal>@Embeddable</literal> inherits the access type of its owning entity unless the Hibernate-specific annotation <literal>@AccessType</literal> is used. Composite foreign keys (if not using the default sensitive values) are defined on associations using the <literal>@JoinColumns</literal> element, which is basically an array of <literal>@JoinColumn</literal>. It is considered a good practice to express <literal>referencedColumnNames</literal> explicitly. Otherwise, Hibernate will suppose that you use the same order of columns as in the primary key declaration.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_45.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_46.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_47.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				Note the explicit usage of the <literal>referencedColumnName</literal>.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-Mapping_secondary_tables">
+			<title>Mapping secondary tables</title>
+			<para>
+				You can map a single entity bean to several tables using the <literal>@SecondaryTable</literal> or <literal>@SecondaryTables</literal> class level annotations. To express that a column is in a particular table, use the <literal>table</literal> parameter of <literal>@Column</literal> or <literal>@JoinColumn</literal>.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_48.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				In this example, <literal>name</literal> will be in <literal>MainCat</literal>. <literal>storyPart1</literal> will be in <literal>Cat1</literal> and <literal>storyPart2</literal> will be in <literal>Cat2</literal>. <literal>Cat1</literal> will be joined to <literal>MainCat</literal> using the <literal>cat_id</literal> as a foreign key, and <literal>Cat2</literal> using <literal>id</literal> (ie the same column name, the <literal>MainCat</literal> id column has). Plus a unique constraint on <literal>storyPart2</literal> has been set.
+			</para>
+			<para>
+				Check out the <citetitle>JBoss EJB 3 tutorial</citetitle> or the Hibernate Annotations unit test suite for more examples.
+			</para>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Mapping_Queries">
+		<title>Mapping Queries</title>
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_Queries-Mapping_JPAQLHQL_queries" label="Mapping JPAQL/HQL queries" revision="1">
+			<title>Mapping JPAQL/HQL queries</title>
+			<para>
+				You can map EJBQL/HQL queries using annotations. <literal>@NamedQuery</literal> and <literal>@NamedQueries</literal> can be defined at the class level or in a JPA XML file. However their definitions are global to the session factory/entity manager factory scope. A named query is defined by its name and the actual query string.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_49.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				You can also provide some hints to a query through an array of <literal>QueryHint</literal> through a <literal>hints</literal> attribute.
+			</para>
+			<para>
+				The available Hibernate hints are
+			</para>
+			<table id="tabl-Hibernate_Annotations_Reference_Guide-Mapping_JPAQLHQL_queries-Query_hints">
+				<title>Query hints</title>
+				<tgroup cols="2">
+		<colspec colname="c1" colwidth="2*"/>
+                <colspec colname="c2" colwidth="3*"/>
+							<thead>
+						<row>
+							<entry>
+								hint
+							</entry>
+							<entry colname="c2">
+								description
+							</entry>
+						</row>
+					</thead>
+					<tbody>
+						<row>
+							<entry>
+								org.hibernate.cacheable
+							</entry>
+							<entry>
+								Whether the query should interact with the second level cache (default to false)
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.cacheRegion
+							</entry>
+							<entry>
+								Cache region name (default used otherwise)
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.timeout
+							</entry>
+							<entry>
+								Query timeout
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.fetchSize
+							</entry>
+							<entry>
+								resultset fetch size
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.flushMode
+							</entry>
+							<entry>
+								Flush mode used for this query
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.cacheMode
+							</entry>
+							<entry>
+								Cache mode used for this query
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.readOnly
+							</entry>
+							<entry>
+								Entities loaded by this query should be in read only mode or not (default to false)
+							</entry>
+						</row>
+						<row>
+							<entry>
+								org.hibernate.comment
+							</entry>
+							<entry>
+								Query comment added to the generated SQL
+							</entry>
+						</row>
+					</tbody>
+				</tgroup>
+			</table>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Mapping_Queries-Mapping_native_queries" revision="2">
+			<title>Mapping native queries</title>
+			<para>
+				You can also map a native query (ie a plain SQL query). To achieve that, you need to describe the SQL resultset structure using <literal>@SqlResultSetMapping</literal> (or <literal>@SqlResultSetMappings</literal> if you plan to define several resultset mappings). Like <literal>@NamedQuery</literal>, a <literal>@SqlResultSetMapping</literal> can be defined at class level or in a JPA XML file. However, its scope is global to the application.
+			</para>
+			<para>
+				As we will see, a <literal>resultSetMapping</literal> parameter is defined in <literal>@NamedNativeQuery</literal>, it represents the name of a defined <literal>@SqlResultSetMapping</literal>. The resultset mapping declares the entities retrieved by this native query. Each field of the entity is bound to an SQL alias (or column name). All fields of the entity including the ones of subclasses and the foreign key columns of related entities have to be present in the SQL query. Field definitions are optional provided that they map to the same column name as the one declared on the class property.
+			</para>
+			<para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_50.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</para>
+			<para>
+				In the above example, the <literal>night&amp;area</literal> named query use the <literal>joinMapping</literal> result set mapping. This mapping returns 2 entities, <literal>Night</literal> and <literal>Area</literal>, each property is declared and associated to a column name, actually the column name retrieved by the query. Let's now see an implicit declaration of the property / column:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_51.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				In this example, we only describe the entity member of the result set mapping. The property / column mapping is done using the entity mapping values. In this case the <literal>model</literal> property is bound to the <literal>model_txt </literal>column. If the association to a related entity involves a composite primary key, a <literal>@FieldResult</literal> element should be used for each foreign key column. The <literal>@FieldResult</literal> name is composed of the property name for the relationship, followed by a dot ("."), followed by the name or the field or property of the primary key.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_52.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<note>
+				<para>
+					If you look at the dimension property, you'll see that although EJB3 implementations do not have to support the dotted notation for embedded objects, Hobernate does. You can even have nested embedded objects.
+				</para>
+			</note>
+			<para>
+				If you retrieve a single entity and if you use the default mapping, you can use the <literal>resultClass</literal> attribute instead of <literal>resultSetMapping</literal>:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_53.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				In some of your native queries, you'll have to return scalar values, for example when building report queries. You can map them in the <literal>@SqlResultsetMapping</literal> through <literal>@ColumnResult</literal>. You actually can even mix entities and scalar returns in the same native query (this is probably not common though).
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_54.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				Another query hint specific to native queries has been introduced: <literal>org.hibernate.callable</literal> which can be true or false depending on whether the query is a stored procedure or not.
+			</para>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-Hibernate_Annotation_Extensions">
+		<title>Hibernate Annotation Extensions</title>
+		<para>
+			Hibernate 3.1 offers a variety of additional annotations that you can mix/match with your EJB 3 entities. They have been designed as a natural extension of EJB3 annotations.
+		</para>
+		<para>
+			To empower the EJB3 capabilities, Hibernate provides specific annotations that match Hibernate features. The <classname>org.hibernate.annotations</classname> package contains all these annotations extensions.
+		</para>
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Entity">
+			<title>Entity</title>
+			<para>
+				You can fine tune some of the actions done by Hibernate on entities beyond what the EJB3 spec offers.
+			</para>
+			<para><classname>@org.hibernate.annotations.Entity</classname> adds additional metadata that may be needed beyond what is defined in the standard <literal>@Entity</literal>:
+				<variablelist>
+				<varlistentry><term><literal>mutable</literal></term>
+				<listitem><para>whether this entity is mutable or not</para></listitem></varlistentry>
+				<varlistentry><term><literal>dynamicInsert</literal></term>
+				<listitem><para>allow dynamic SQL for inserts</para></listitem></varlistentry>
+				<varlistentry><term><literal>dynamicUpdate</literal></term>
+				<listitem><para>allow dynamic SQL for updates</para></listitem></varlistentry>
+				<varlistentry><term><literal>selectBeforeUpdate</literal></term>
+				<listitem><para>Specifies that Hibernate should never perform an <literal>SQL UPDATE</literal> unless it is certain that an object is actually modified.</para></listitem></varlistentry>
+				<varlistentry><term><literal>polymorphism</literal></term>
+				<listitem><para>whether the entity polymorphism is of <literal>PolymorphismType.IMPLICIT</literal> (default) or <literal>PolymorphismType.EXPLICIT</literal></para></listitem></varlistentry>
+				<varlistentry><term><literal>optimisticLock</literal></term>
+				<listitem><para>optimistic locking strategy (<literal>OptimisticLockType.VERSION</literal>, <literal>OptimisticLockType.NONE</literal>, <literal>OptimisticLockType.DIRTY</literal> or <literal>OptimisticLockType.ALL</literal>)</para></listitem></varlistentry>
+				</variablelist>
+			</para>
+			<para>
+				<note>
+					<para>
+						<literal>@javax.persistence.Entity</literal> is still mandatory – <literal>@org.hibernate.annotations.Entity</literal> is not a replacement.
+					</para>
+				</note>
+			</para>
+			<para>
+				Here are some additional Hibernate annotation extensions:
+			</para>
+				<variablelist>
+				<varlistentry><term><literal>@org.hibernate.annotations.BatchSize</literal></term>
+				<listitem><para>allows you to define the batch size when fetching instances of this entity ( eg. <literal>@BatchSize(size=4)</literal> ). When loading a given entity, Hibernate will then load all the uninitialized entities of the same type in the persistence context up to the batch size.</para></listitem></varlistentry>		<varlistentry><term><literal>@org.hibernate.annotations.Proxy</literal></term>
+				<listitem><para>defines the laziness attributes of the entity. lazy (default to true) define whether the class is lazy or not. proxyClassName is the interface used to generate the proxy (default is the class itself).</para></listitem></varlistentry>
+				<varlistentry><term><literal>@org.hibernate.annotations.Where</literal></term>
+				<listitem><para>defines an optional <literal>SQL WHERE</literal> clause used when instances of this class is retrieved.</para></listitem></varlistentry>
+				<varlistentry><term><literal>@org.hibernate.annotations.Check</literal></term>
+				<listitem><para>defines an optional check constraints defined in the DDL statement.</para></listitem></varlistentry>
+				<varlistentry><term><literal>@OnDelete(action=OnDeleteAction.CASCADE)</literal></term>
+				<listitem><para>on joined subclasses: use a SQL cascade delete on deletion instead of the regular Hibernate mechanism.</para></listitem></varlistentry>
+				<varlistentry><term><literal>@Table(appliesTo="tableName", indexes = { @Index(name="index1", columnNames={"column1", "column2"} ) } )</literal></term>
+				<listitem><para>creates the defined indexes on the columns of table <literal>tableName</literal>. This can be applied on the primary table or any secondary table. The <literal>@Tables</literal> annotation allows your to apply indexes on different tables. This annotation is expected where <literal>@javax.persistence.Table</literal> or <literal>@javax.persistence.SecondaryTable</literal>(s) occurs.</para></listitem></varlistentry>
+				</variablelist>			
+			<note>
+				<para>
+					<literal>@org.hibernate.annotations.Table</literal> is a complement to, not a replacement for <literal>@javax.persistence.Table</literal>. In particular, if you want to change the default name of a table, you must use <literal>@javax.persistence.Table</literal>, not <literal>@org.hibernate.annotations.Table</literal>.
+				</para>
+			</note>
+			<para>
+				<literal>@org.hibernate.annotations.Table</literal> can also be used to define the following elements of secondary tables:
+			</para>
+				<variablelist>
+				<varlistentry><term><literal>fetch</literal></term>
+				<listitem><para>If set to <literal>JOIN</literal>, the default, Hibernate will use an inner join to retrieve a secondary table defined by a class or its superclasses and an outer join for a secondary table defined by a subclass. If set to select then Hibernate will use a sequential select for a secondary table defined on a subclass, which will be issued only if a row turns out to represent an instance of the subclass. Inner joins will still be used to retrieve a secondary defined by the class and its superclasses.</para></listitem></varlistentry>
+				<varlistentry><term><literal>inverse</literal></term>
+				<listitem><para>If true, Hibernate will not try to insert or update the properties defined by this join. Default to false.</para></listitem></varlistentry>
+				<varlistentry><term><literal>optional</literal></term>
+				<listitem><para>If enabled (the default), Hibernate will insert a row only if the properties defined by this join are non-null and will always use an outer join to retrieve the properties.</para></listitem></varlistentry>
+				<varlistentry><term><literal>foreignKey</literal></term>
+				<listitem><para>defines the Foreign Key name of a secondary table pointing back to the primary table.</para></listitem></varlistentry>
+				</variablelist>
+
+			<para>
+				<literal>@Immutable</literal> marks an entity as immutable. The entity may not be updated or deleted by the application. This allows Hibernate to make some minor performance optimizations. <literal>@Immutable</literal> must be use on root entities only.
+			</para>
+			<para>
+				<literal>@Persister</literal> lets you define your own custom persistence strategy. You may, for example, specify your own subclass of <classname>org.hibernate.persister.EntityPersister</classname> or you might even provide a completely new implementation of the interface <literal>org.hibernate.persister.ClassPersister</literal> that implements persistence via, for example, stored procedure calls, serialization to flat files or LDAP.
+			</para>
+			<para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_55.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_56.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Identifier" label="Identifier" revision="2">
+			<title>Identifier</title>
+			<para>
+				Hibernate Annotations goes beyond the Java Persistence specification when defining identifiers.
+			</para>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Identifier-Generators">
+				<title>Generators</title>
+				<para>
+					<literal>@org.hibernate.annotations.GenericGenerator</literal> and <literal>@org.hibernate.annotations.GenericGenerators</literal> allows you to define a Hibernate-specific id generator.
+				</para>
+				<para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_57.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				</para>
+				<para>
+					<literal>strategy</literal> is the short name of a Hibernate3 generator strategy or the fully qualified class name of an <classname>IdentifierGenerator</classname> implementation. You can add some parameters through the <literal>parameters</literal> attribute.
+				</para>
+				<para>
+					Contrary to their standard counterpart, <literal>@GenericGenerator</literal> and <literal>@GenericGenerators</literal> can be used in package-level annotations, making them application-level generators (just like if they were in a JPA XML file).
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_58.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Identifier-NaturalId">
+				<title>@NaturalId</title>
+				<para>
+					While not used as identifier property, some (groups of) properties represent the natural identifier of an entity. This is especially true when the schema uses the recommended approach of using surrogate primary key even if a natural business key exists. Hibernate allows to map such natural properties and reuse them in a <classname>Criteria</classname> query. The natural identifier is composed of all the properties marked <classname>@NaturalId</classname>.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_60.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					Note that the group of properties representing the natural identifier have to be unique (Hibernate will generate a unique constraint if the database schema is generated).
+				</para>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Property" revision="2">
+			<title>Property</title>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Access_type">
+				<title>Access type</title>
+				<para>
+					The access type is guessed from the position of <literal>@Id</literal> or <literal>@EmbeddedId</literal> in the entity hierarchy. Sub-entities, embedded objects and mapped superclass inherit the access type from the root entity.
+				</para>
+				<para>
+					In Hibernate, you can override the access type to:
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							use a custom access type strategy
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							fine tune the access type at the class level or at the property level
+						</para>
+					</listitem>
+				</itemizedlist>
+				<para>
+					An <literal>@AccessType</literal> annotation has been introduced to support this behavior. You can define the access type on
+				</para>
+				<itemizedlist>
+					<listitem>
+						<para>
+							an entity
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							a superclass
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							an embeddable object
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							a property
+						</para>
+					</listitem>
+				</itemizedlist>
+				<para>
+					The access type is overridden for the annotated element, if overridden on a class, all the properties of the given class inherit the access type. For root entities, the access type is considered to be the default one for the whole hierarchy (overridable at class or property level).
+				</para>
+				<para>
+					If the access type is marked as "property", the getters are scanned for annotations, if the access type is marked as "field", the fields are scanned for annotations. Otherwise the elements marked with <literal>@Id</literal> or <literal>@embeddedId</literal> are scanned.
+				</para>
+				<para>
+					You can override an access type for a property, but the element to annotate will not be influenced: for example an entity having access type <literal>field</literal>, can annotate a field with <literal>@AccessType("property")</literal>, the access type will then be property for this attribute, the the annotations still have to be carried on the field.
+				</para>
+				<para>
+					If a superclass or an embeddable object is not annotated, the root entity access type is used (even if an access type has been define on an intermediate superclass or embeddable object). The "Matryoshka doll principle" does not apply.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_61.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Formula">
+				<title>Formula</title>
+				<para>
+					Sometimes, you want the Database to do some computation for you rather than in the JVM, you might also create some kind of virtual column. You can use a SQL fragment (aka formula) instead of mapping a property into a column. This kind of property is read only (its value is calculated by your formula fragment).
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_62.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					The SQL fragment can be as complex as you want and even include subselects.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Type">
+				<title>Type</title>
+				<para>
+					<literal>@org.hibernate.annotations.Type</literal> overrides the default Hibernate type used: this is generally not necessary since the type is correctly inferred by Hibernate. Please refer to the <citetitle>Hibernate Reference Guide</citetitle> for more information on the Hibernate types.
+				</para>
+				<para>
+					<literal>@org.hibernate.annotations.TypeDef</literal> and <literal>@org.hibernate.annotations.TypeDefs</literal> allows you to declare type definitions. These annotations are placed at the class or package level. Note that these definitions will be global for the session factory (even at the class level) and that type definition has to be defined before any usage.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_63.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					When using composite user type, you will have to express column definitions. The <literal>@Columns</literal> has been introduced for that purpose.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_64.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Index">
+				<title>Index</title>
+				<para>
+					You can define an index on a particular column using the <literal>@Index</literal> annotation on a one column property, the columnNames attribute will then be ignored
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_65.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Parent">
+				<title>@Parent</title>
+				<para>
+					When inside an embeddable object, you can define one of the properties as a pointer back to the owner element.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_66.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Generated_properties">
+				<title>Generated properties</title>
+				<para>
+					Some properties are generated at insert or update time by your database. Hibernate can deal with such properties and triggers a subsequent select to read these properties.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_67.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					Annotate your property as <literal>@Generated</literal>. You have to make sure your insertability or updatability does not conflict with the generation strategy you have chosen. When <literal>GenerationTime.INSERT</literal> is chosen, the property must not contains insertable columns, when <literal>GenerationTime.ALWAYS</literal> is chosen, the property must not contains insertable nor updatable columns.
+				</para>
+				<para>
+					<literal>@Version</literal> properties cannot be <literal>@Generated(INSERT)</literal> by design, it has to be either <literal>NEVER</literal> or <literal>ALWAYS</literal>.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Target">
+				<title>@Target</title>
+				<para>
+					Sometimes, the type guessed by reflection is not the one you want Hibernate to use. This is especially true of components when an interface is used. You can use <literal>@Target</literal> to bypass the reflection guessing mechanism (very much like the <literal>targetEntity</literal> attribute available on associations.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_68.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Property-Optimistic_lock">
+				<title>Optimistic lock</title>
+				<para>
+					It is sometimes useful to avoid increasing the version number even if a given property is dirty (particularly collections). You can do that by annotating the property (or collection) with <literal>@OptimisticLock(excluded=true)</literal>.
+				</para>
+				<para>
+					More formally, it specifies that updates to this property do not require acquisition of the optimistic lock.
+				</para>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Inheritance" revision="3">
+			<title>Inheritance</title>
+			<para>
+				<literal>SINGLE_TABLE</literal> is a very powerful strategy but sometimes, and especially for legacy systems, you cannot add an additional discriminator column. For that purpose, Hibernate has introduced the notion of discriminator formula: <literal>@DiscriminatorFormula</literal> is a replacement of <literal>@DiscriminatorColumn</literal> and use a SQL fragment as a formula for discriminator resolution (no need to have a dedicated column).
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_69.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				By default, when querying the top entities, Hibernate does not put a restriction clause on the discriminator column. This can be inconvenient if this column contains values not mapped in your hierarchy (through <literal>@DiscriminatorValue</literal>). To work around that you can use <literal>@ForceDiscriminator</literal> (at the class level, next to <literal>@DiscriminatorColumn</literal>). Hibernate will then list the available values when loading the entities.
+			</para>
+			<para>
+				You can define the foreign key name generated by Hibernate for subclass tables in the JOINED inheritance strategy.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_70.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The foreign key from the <literal>Document</literal> table to the <literal>File</literal> table will be named <literal>FK_DOCU_FILE</literal>.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Single_Association_related_annotations">
+			<title>Single Association related annotations</title>
+			<para>
+				By default, when Hibernate cannot resolve the association because the expected associated element is not in database (wrong id on the association column), an exception is raised by Hibernate. This might be inconvenient for legacy and badly maintained schemas. You can ask Hibernate to ignore such elements instead of raising an exception using the <literal>@NotFound</literal> annotation. This annotation can be used on a <literal>@OneToOne</literal> (with FK), <literal>@ManyToOne</literal>, <literal>@OneToMany</literal> or <literal>@ManyToMany</literal> association.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_71.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				Sometimes you want to delegate to your database the deletion of cascade when a given entity is deleted.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_72.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				In this case Hibernate generates a cascade delete constraint at the database level.
+			</para>
+			<para>
+				Foreign key constraints, when generated by Hibernate, have a fairly unreadable name. You can override the constraint name by using <literal>@ForeignKey</literal>.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_73.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Single_Association_related_annotations-Lazy_options_and_fetching_modes">
+				<title>Lazy options and fetching modes</title>
+				<para>
+					EJB3 comes with the <literal>fetch</literal> option to define lazy loading and fetching modes, however Hibernate has a much greater option set in this area. To fine tune the lazy loading and fetching strategies, some additional annotations have been introduced:
+				</para>
+				<variablelist>
+				<varlistentry><term><literal>@LazyToOne</literal></term>
+				<listitem><para>defines the lazyness option on <literal>@ManyToOne</literal> and <literal>@OneToOne</literal> associations. <literal>LazyToOneOption</literal> can be <literal>PROXY</literal> (ie use a proxy based lazy loading), <literal>NO_PROXY</literal> (use a bytecode enhancement based lazy loading - note that build time bytecode processing is necessary) and <literal>FALSE</literal> (association not lazy)</para></listitem></varlistentry>
+				<varlistentry><term><literal>@LazyCollection></literal></term>
+				<listitem><para>defines the lazyness option on <literal>@ManyTo</literal>Many and <literal>@OneToMany</literal> associations. LazyCollectionOption can be <literal>TRUE</literal> (the collection is lazy and will be loaded when its state is accessed), <literal>EXTRA</literal> (the collection is lazy and all operations will try to avoid the collection loading, this is especially useful for huge collections when loading all the elements is not necessary) and FALSE (association not lazy)</para></listitem></varlistentry>
+				<varlistentry><term><literal>@Fetch></literal></term>
+				<listitem><para>defines the fetching strategy used to load the association. <literal>FetchMode</literal> can be <literal>SELECT</literal> (a select is triggered when the association needs to be loaded), <literal>SUBSELECT</literal> (only available for collections, use a subselect strategy - please refer to the <citetitle>Hibernate Reference Documentation</citetitle> for more information) or <literal>JOIN</literal> (use a SQL JOIN to load the association while loading the owner entity). <literal>JOIN</literal> overrides any lazy attribute (an association loaded through a <literal>JOIN</literal> strategy cannot be lazy). </para></listitem></varlistentry>
+				</variablelist>
+				<para>
+					The Hibernate annotations override the EJB3 fetching options.
+				</para>
+				<table id="tabl-Hibernate_Annotations_Reference_Guide-Lazy_options_and_fetching_modes-Lazy_and_fetch_options_equivalent">
+					<title>Lazy and fetch options equivalent</title>
+					<tgroup cols="3">
+						<thead>
+							<row>
+								<entry>
+									Annotations
+								</entry>
+								<entry>
+									Lazy
+								</entry>
+								<entry>
+									Fetch
+								</entry>
+							</row>
+						</thead>
+						<tbody>
+							<row>
+								<entry>
+									@[One|Many]ToOne](fetch=FetchType.LAZY)
+								</entry>
+								<entry>
+									@LazyToOne(PROXY)
+								</entry>
+								<entry>
+									@Fetch(SELECT)
+								</entry>
+							</row>
+							<row>
+								<entry>
+									@[One|Many]ToOne](fetch=FetchType.EAGER)
+								</entry>
+								<entry>
+									@LazyToOne(FALSE)
+								</entry>
+								<entry>
+									@Fetch(JOIN)
+								</entry>
+							</row>
+							<row>
+								<entry>
+									@ManyTo[One|Many](fetch=FetchType.LAZY)
+								</entry>
+								<entry>
+									@LazyCollection(TRUE)
+								</entry>
+								<entry>
+									@Fetch(SELECT)
+								</entry>
+							</row>
+							<row>
+								<entry>
+									@ManyTo[One|Many](fetch=FetchType.EAGER)
+								</entry>
+								<entry>
+									@LazyCollection(FALSE)
+								</entry>
+								<entry>
+									@Fetch(JOIN)
+								</entry>
+							</row>
+						</tbody>
+					</tgroup>
+				</table>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Single_Association_related_annotations-Any">
+				<title>@Any</title>
+				<para>
+					The <classname>@Any</classname> annotation defines a polymorphic association to classes from multiple tables. This type of mapping always requires more than one column. The first column holds the type of the associated entity. The remaining columns hold the identifier. It is impossible to specify a foreign key constraint for this kind of association, so this is most certainly not meant as the usual way of mapping (polymorphic) associations. You should use this only in very special cases (eg. audit logs, user session data, etc).
+				</para>
+				<para>
+					The @Any annotation describes the column holding the metadata information. To link the value of the metadata information and an actual entity type, The <classname>@AnyDef</classname> and <classname>@AnyDefs</classname> annotations are used.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_74.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					<methodname>idType</methodname> represents the target entities identifier property type and <methodname>metaType</methodname> the metadata type (usually String).
+				</para>
+				<para>
+					Note that <classname>@AnyDef</classname> can be mutualized and reused. It is recommended to place it as a package metadata in this case.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_75.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Collection_related_annotations" revision="2">
+			<title>Collection related annotations</title>
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Collection_related_annotations-Enhance_collection_settings" revision="3">
+				<title>Enhance collection settings</title>
+				<para>
+					It is possible to set 
+					<itemizedlist>
+						<listitem>
+							<para>the batch size for collections using @BatchSize</para>
+						</listitem>
+						<listitem>
+							<para>the where clause, using @Where (applied on the target entity) or @WhereJoinTable (applied on the association table)</para>
+						</listitem>
+						<listitem>
+							<para>the check clause, using @Check</para>
+						</listitem>
+						<listitem>
+							<para>the SQL order by clause, using @OrderBy</para>
+						</listitem>
+						<listitem>
+							<para>the delete cascade strategy through @OnDelete(action=OnDeleteAction.CASCADE)</para>
+						</listitem>
+						<listitem>
+							<para>the collection immutability using @Immutable: if set specifies that the elements of the collection never change (a minor performance optimization in some cases)</para>
+						</listitem>
+						<listitem>
+							<para>
+								a custom collection persister (ie the persistence strategy used) using <literal>@Persister</literal>: the class must implement <classname>org.hibernate.persister.collectionCollectionPersister</classname>
+							</para>
+						</listitem>
+					</itemizedlist>
+				</para>
+				<para>
+					You can also declare a sort comparator. Use the <literal>@Sort</literal> annotation. Expressing the comparator type you want between unsorted, natural or custom comparator. If you want to use your own comparator implementation, you'll also have to express the implementation class using the <literal>comparator</literal> attribute. Note that you need to use either a <classname>SortedSet</classname> or a <classname>SortedMap</classname> interface.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_76.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					Please refer to the previous descriptions of these annotations for more information.
+				</para>
+				<para>
+					Foreign key constraints, while generated by Hibernate, have a fairly unreadable name. You can override the constraint name by use <literal>@ForeignKey</literal>. Note that this annotation has to be placed on the owning side of the relationship, <literal>inverseName</literal> referencing to the other side constraint.
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_77.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_Annotations_Reference_Guide-Collection_related_annotations-Extra_collection_types" revision="1">
+				<title>Extra collection types</title>
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Extra_collection_types-List">
+					<title>List</title>
+					<para>
+						Beyond EJB3, Hibernate Annotations supports true <classname>List</classname> and <classname>Array</classname>. Map your collection the same way as usual and add the @<literal>IndexColumn</literal>. This annotation allows you to describe the column that will hold the index. You can also declare the index value in DB that represent the first element (aka as base index). The usual value is <literal>0</literal> or <literal>1</literal>.
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_78.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<note>
+						<para>
+							If you forgot to set <literal>@IndexColumn</literal>, the bag semantic is applied. If you want the bag semantic without the limitations of it, consider using <literal>@CollectionId</literal>.
+						</para>
+					</note>
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Extra_collection_types-Map" revision="1">
+					<title>Map</title>
+					<para>
+						Hibernate Annotations also supports true Map mappings. If <literal>@javax.persistence.MapKey</literal> is not set, Hibernate will map the key element or embeddable object in its/their own columns. To overrides the default columns, you can use <literal>@org.hibernate.annotations.MapKey</literal> if your key is a basic type (defaulted to <literal>mapkey</literal>) or an embeddable object, or you can use <literal>@org.hibernate.annotations.MapKeyManyToMany</literal> if your key is an entity.
+					</para>
+					<para>
+						Both <literal>@org.hibernate.annotations.MapKey</literal> and <literal>@org.hibernate.annotations.MapKeyManyToMany</literal> allow you to override the target element to be used. This is especially useful if your collection does not use generics (or if you use interfaces).
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_79.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Extra_collection_types-Bidirectional_association_with_indexed_collections" revision="2">
+					<title>Bidirectional association with indexed collections</title>
+					<para>
+						A bidirectional association where one end is an indexed collection (that is, represented as a <literal>@IndexColumn</literal>, <literal>@org.hibernate.annotations.MapKey</literal> or <classname>@org.hibernate.annotations.MapKeyManyToMany</classname>) requires special consideration. If a property on the associated class explicitly maps the indexed value, the use of <methodname>mappedBy</methodname> is permitted:
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_80.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<para>
+						But, if there is no such property on the child class, we can't think of the association as truly bidirectional (there is information available at one end of the association that is not available at the other end: the index). In this case, we can't map the collection as <literal>mappedBy</literal>. Instead, we could use the following mapping:
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_81.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<para>
+						Note that in this mapping, the collection-valued end of the association is responsible for updating the foreign key.
+					</para>
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Extra_collection_types-Bag_with_primary_key">
+					<title>Bag with primary key</title>
+					<para>
+						Another interesting feature is the ability to define a surrogate primary key to a bag collection. This removes pretty much all of the drawbacks of bags: update and removal are efficient, more than one <literal>EAGER</literal> bag per query or per entity. This primary key will be contained in an additional column of your collection table but will not be visible to the Java application. @CollectionId is used to mark a collection as id bag, it also allow to override the primary key column(s), the primary key type and the generator strategy. The strategy can be <literal>identity</literal>, or any defined generator name of your application.
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_82.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Extra_collection_types-Collection_of_element_or_composite_elements">
+					<title>Collection of element or composite elements</title>
+					<para>
+						Hibernate Annotations also supports collections of core types (Integer, String, Enums, ...), collections of embeddable objects and even arrays of primitive types. This is known as collection of elements.
+					</para>
+					<para>
+						A collection of elements has to be annotated as <literal>@CollectionOfElements</literal> (as a replacement of <literal>@OneToMany</literal>) To define the collection table, the <literal>@JoinTable</literal> annotation is used on the association property, <literal>joinColumns</literal> defines the join columns between the entity primary table and the collection table (inverseJoincolumn is useless and should be left empty). For collection of core types or array of primitive types, you can override the element column definition using a <literal>@Column</literal> on the association property. You can also override the columns of a collection of embeddable object using <literal>@AttributeOverride</literal>. To reach the collection element, you need to append "element" to the attribute override name (eg "element" for core types, or "element.serial" for the serial property of an embeddable element). To reach the index/key of a collection, append "key" instead.
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_83.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<para>
+						On a collection of embeddable objects, the embeddable object can have a property annotated with <literal>@Parent</literal>. This property will then point back to the entity containing the collection.
+					</para>
+					<note>
+						<para>
+							Previous versions of Hibernate Annotations used the <literal>@OneToMany</literal> to mark a collection of elements. Due to semantic inconsistencies, we've introduced the annotation <literal>@CollectionOfElements</literal>. Marking collections of elements the old way still work but is considered deprecated and is going to be unsupported in future releases
+						</para>
+					</note>
+				</section>
+				
+				<section id="sect-Hibernate_Annotations_Reference_Guide-Extra_collection_types-ManyToAny">
+					<title>@ManyToAny</title>
+					<para>
+						<classname>@ManyToAny</classname> allows polymorphic associations to classes from multiple tables. This type of mapping always requires more than one column. The first column holds the type of the associated entity. The remaining columns hold the identifier. It is impossible to specify a foreign key constraint for this kind of association, so this is most certainly not meant as the usual way of mapping (polymorphic) associations. You should use this only in very special cases (eg. audit logs, user session data, etc).
+					</para>
+					
+		<programlisting language="java"><xi:include href="extras/Code_Example_84.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					<para>
+						Like <classname>@Any</classname>, <classname>@ManyToAny</classname> can use named <classname>@AnyDef</classname>s, see <xref linkend="sect-Hibernate_Annotations_Reference_Guide-Single_Association_related_annotations-Any" /> for more information.
+					</para>
+				</section>
+
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Cascade">
+			<title>Cascade</title>
+			<para>
+				Hibernate offers more operations than the Java Persistence specification. You can use the <literal>@Cascade</literal> annotation to cascade the following operations:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						<literal>PERSIST</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>MERGE</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>REMOVE</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>REFRESH</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>DELETE</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>SAVE_UPDATE</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>REPLICATE</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>DELETE_ORPHAN</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>LOCK</literal>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>EVICT</literal>
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				This is especially useful for <literal>SAVE_UPDATE</literal> (which is the operation cascaded at flush time if you use plain Hibernate Annotations - Hibernate EntityManager cascade <literal>PERSIST</literal> at flush time as per the specification). <literal>DELETE_ORPHAN</literal> applies only to <literal>@OneToMany</literal> associations, and indicates that the <methodname>delete()/remove()</methodname> operation should be applied to any child object that is removed from the association. In other words, if a child is dereferenced by a persistent parent and if <literal>DELETE_ORPHAN</literal> is used, the "orphaned" child is deleted.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_85.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				It is recommended to use @Cascade to compliment @*To*(cascade=...) as shown in the previous example.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Cache">
+			<title>Cache</title>
+			<para>
+				In order to optimize your database accesses, you can activate the so-called second level cache of Hibernate. This cache is configurable on a per-entity and per-collection basis.
+			</para>
+			<para>
+				<literal>@org.hibernate.annotations.Cache</literal> defines the caching strategy and region of a given second level cache. This annotation can be applied on the root entity (not the sub entities), and on the collections.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_86.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_87.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_88.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<orderedlist><title>Notes:</title>
+					<listitem>
+						<para>
+							usage: the given cache concurrency strategy (NONE, READ_ONLY, NONSTRICT_READ_WRITE, READ_WRITE, TRANSACTIONAL)
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							region (optional): the cache region (default to the fqcn of the class or the fq role name of the collection)
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>include</literal> (optional): all to include all properties, non-lazy to only include non lazy properties (default all).
+						</para>
+					</listitem>
+				</orderedlist>
+
+
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Filters">
+			<title>Filters</title>
+			<para>
+				Hibernate has the ability to apply arbitrary filters on top of your data. Those filters are applied at runtime on a given session. First, you need to define them.
+			</para>
+			<para>
+				<literal>@org.hibernate.annotations.FilterDef</literal> or <literal>@FilterDefs</literal> define filter definition(s) used by filter(s) using the same name. A filter definition has a name() and an array of parameters(). A parameter will allow you to adjust the behavior of the filter at runtime. Each parameter is defined by a <literal>@ParamDef</literal> which has a name and a type. You can also define a defaultCondition() parameter for a given <literal>@FilterDef</literal> to set the default condition to use when none are defined in each individual <literal>@Filter</literal>. A <literal>@FilterDef</literal>(s) can be defined at the class or package level.
+			</para>
+			<para>
+				We now need to define the SQL filter clause applied to either the entity load or the collection load. <literal>@Filter</literal> is used and placed either on the entity or the collection element
+			</para>
+			<para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_89.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</para>
+			<para>
+				When the collection uses an association table as a relational representation, you might want to apply the filter condition to the association table itself or to the target entity table. To apply the constraint on the target entity, use the regular <literal>@Filter</literal> annotation. However, if you want to target the association table, use the <literal>@FilterJoinTable</literal> annotation.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_90.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Queries">
+			<title>Queries</title>
+			<para>
+				Since Hibernate has more features on named queries than the one defined in the EJB3 specification, <literal>@org.hibernate.annotations.NamedQuery</literal>, <literal>@org.hibernate.annotations.NamedQueries</literal>, <literal>@org.hibernate.annotations.NamedNativeQuery</literal> and <literal>@org.hibernate.annotations.NamedNativeQueries</literal> have been introduced. They add attributes to the standard version and can be used as a replacement:
+			</para>
+				<variablelist>
+				<varlistentry><term><literal>flushMode</literal></term>
+				<listitem><para>defines the query flush mode (<literal>Always</literal>, <literal>Auto</literal>, <literal>Commit</literal> or <literal>Manual</literal>)</para></listitem></varlistentry>
+				<varlistentry><term><literal>cacheable</literal></term>
+				<listitem><para>whether the query should be cached or not</para></listitem></varlistentry>
+				<varlistentry><term><literal>cacheRegion</literal></term>
+				<listitem><para>cache region used if the query is cached</para></listitem></varlistentry>
+				<varlistentry><term><literal>fetchSize</literal></term>
+				<listitem><para>JDBC statement fetch size for this query</para></listitem></varlistentry>
+				<varlistentry><term><literal>timeout</literal></term>
+				<listitem><para>query time out</para></listitem></varlistentry>
+				<varlistentry><term><literal>callable</literal></term>
+				<listitem><para>for native queries only, to be set to true for stored procedures</para></listitem></varlistentry>
+				<varlistentry><term><literal>comment</literal></term>
+				<listitem><para>if comments are activated, the comment seen when the query is sent to the database.</para></listitem></varlistentry>
+				<varlistentry><term><literal>cacheMode</literal></term>
+				<listitem><para>Cache interaction mode (<literal>get</literal>, <literal>ignore</literal>, <literal>normal</literal>, <literal>put</literal> or <literal>refresh</literal>)</para></listitem></varlistentry>
+				<varlistentry><term><literal>readOnly</literal></term>
+				<listitem><para>whether or not the elements retrievent from the query are in read-only mode.</para></listitem></varlistentry>
+				</variablelist>
+			<para>
+				Those hints can be set in a standard <literal>@javax.persistence.NamedQuery</literal> annotations through the detyped <literal>@QueryHint</literal>. Another key advantage is the ability to set those annotations at a package level.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Custom_SQL_for_CRUD_operations" revision="1">
+			<title>Custom SQL for CRUD operations</title>
+			<para>
+				Hibernate gives you the ability to override every single SQL statement generated. We have seen native SQL query usage already, but you can also override the SQL statement used to load or change the state of entities.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_91.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				<literal>@SQLInsert</literal>, <literal>@SQLUpdate</literal>, <literal>@SQLDelete</literal>, <literal>@SQLDeleteAll</literal> respectively override the <literal>INSERT</literal> statement, <literal>UPDATE</literal> statement, <literal>DELETE</literal> statement, <literal>DELETE</literal> statement to remove all entities.
+			</para>
+			<para>
+				If you expect to call a store procedure, be sure to set the <literal>callable</literal> attribute to true (<literal>@SQLInsert(callable=true, ...)</literal>).
+			</para>
+			<para>
+				To check that the execution happens correctly, Hibernate allows you to define one of those three strategies:
+			</para>
+			<variablelist>
+				<varlistentry><term><literal>NONE</literal></term>
+				<listitem><para>no check is performed: the store procedure is expected to fail upon issues</para></listitem></varlistentry>
+				<varlistentry><term><literal>COUNT</literal></term>
+				<listitem><para>use of rowcount to check that the update is successful</para></listitem></varlistentry>
+				<varlistentry><term><literal>PARAM</literal></term>
+				<listitem><para>like <literal>COUNT</literal> but using an output parameter rather that the standard mechanism</para></listitem></varlistentry>
+			</variablelist>
+			<para>
+				To define the result check style, use the <literal>check</literal> parameter (<literal>@SQLUpdate(check=ResultCheckStyle.COUNT, ...)</literal>).
+			</para>
+			<para>
+				You can also override the SQL load statement by a native SQL query or a HQL query. You just have to refer to a named query with the <literal><literal>@Loader</literal></literal> annotation.
+			</para>
+			<para>
+				You can use the exact same set of annotations to override the collection related statements.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_92.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The order of the parameters is important and is defined by the order Hibernate handles properties. You can see 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 see the expected sequence, remember not to include your custom SQL through annotations as that will override the Hibernate-generated static sql.)
+			</para>
+			<para>
+				Overriding SQL statements for secondary tables is also possible using <literal>@org.hibernate.annotations.Table</literal> and either (or all) attributes <literal>sqlInsert</literal>, <literal>sqlUpdate</literal>, <literal>sqlDelete</literal>:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_93.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The previous example also show that you can give a comment to a given table (primary or secondary): This comment will be used for DDL generation.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-Tuplizer">
+			<title>Tuplizer</title>
+			<para>
+				<classname>org.hibernate.tuple.Tuplizer</classname>, 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 which 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 and how to access the POJO properties using the defined property accessors. There are two high-level types of Tuplizers, represented by the <classname>org.hibernate.tuple.EntityTuplizer</classname> and <classname>org.hibernate.tuple.ComponentTuplizer</classname> interfaces. EntityTuplizers are responsible for managing the above mentioned contracts in regards to entities, while <classname>ComponentTuplizers</classname> do th!
 e same for components. Check the <citetitle>Hibernate Reference Documentation</citetitle> for more information.
+			</para>
+			<para>
+				To define tuplixer in annotations, simply use the <literal>@Tuplizer</literal> annotation on the according element
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_94.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		</section>
+
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Feedback.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Feedback.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Feedback.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+
+<section id="Feedback">
+	<title>Feedback</title>
+	<para>
+			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>&lt;version&gt;</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.
+	</para>
+</section>

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.ent
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.ent	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.ent	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY PRODUCT "JBoss Enterprise Application Platform">
+<!ENTITY VERSION "4.3.0_CP04_FP01">
+<!ENTITY BOOKID "Hibernate_Annotations_Reference_Guide">
+<!ENTITY YEAR "2008">

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Hibernate_Annotations_Reference_Guide_CP07.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+<?xml version='1.0'?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Setting_up_an_annotations_project.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Entity_Beans.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Overriding_metadata_through_XML.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Additional_modules.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</book>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Introduction.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Introduction.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Introduction.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,28 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_Annotations_Reference_Guide-Preface">
+	<title>Introduction</title>
+
+	<para>
+		Hibernate, like all other object/relational mapping tools, requires metadata that governs the transformation of data from one representation to the other (and vice versa). In Hibernate 2.x, mapping metadata is most of the time declared in XML text files. Another option is XDoclet, utilizing Javadoc source code annotations and a preprocessor at compile time. The same kind of annotation support is now available in the standard JDK, although more powerful and better supported by tools. IntelliJ IDEA, and Eclipse for example, support auto-completion and syntax highlighting of JDK 5.0 annotations. Annotations are compiled into the bytecode and read at runtime (in Hibernate's case on startup) using reflection, so no external XML files are needed.
+	</para>
+	<para>
+		The EJB3 specification recognizes the interest in and the success of the transparent object/relational mapping paradigm. The EJB3 specification standardizes the basic APIs and the metadata needed for any object/relational persistence mechanism. Hibernate EntityManager implements the programming interfaces and lifecycle rules as defined by the EJB3 persistence specification. Together with Hibernate Annotations, this wrapper implements a complete (and standalone) EJB3 persistence solution on top of the mature Hibernate core. You may use a combination of all three together, annotations without EJB3 programming interfaces and lifecycle, or even pure native Hibernate, depending on the business and technical needs of your project. You can at all times fall back to Hibernate native APIs, or if required, even to native JDBC and SQL.
+	</para>
+	<para>
+		This release is based on the final release of the EJB 3.0 / JPA specification (aka JSP-220) and support all the specification features (including the optional ones). Most of the Hibernate features and extensions are also available through Hibernate-specific annotations compared to the specification are also available. While the Hibernate feature coverage is now very high, some are still missing. The eventual goal is to cover all of them. See the JIRA road map section for more information.
+	</para>
+	<para>
+		If you are moving from previous Hibernate Annotations versions, please have a look at <ulink url="http://www.hibernate.org/398.html">Java Persistence migration guide</ulink>.
+	</para>
+
+<!--	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude">
+		<xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude">
+			<xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+		</xi:fallback>
+	</xi:include> -->
+	
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Overriding_metadata_through_XML.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Overriding_metadata_through_XML.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Overriding_metadata_through_XML.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,177 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_Annotations_Reference_Guide-Overriding_metadata_through_XML">
+	<title>Overriding metadata through XML</title>
+	<para>
+		The primary target for metadata in EJB3 is annotations, but the EJB3 specification provides a way to override or replace the annotation-defined metadata through an XML deployment descriptor. In the current release only pure EJB3 annotations overriding are supported. If you wish to use Hibernate-specific features in some entities, you'll have to either use annotations or fallback to hbm files. You can of course mix and match annotated entities and entities described in hbm files.
+	</para>
+	<para>
+		The unit test suite shows some additional XML file samples.
+	</para>
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Overriding_metadata_through_XML-Principles">
+		<title>Principles</title>
+		<para>
+			The XML deployment descriptor structure has been designed to reflect the annotations one. So if you know the annotations structure, using the XML schema will be straightforward for you.
+		</para>
+		<para>
+			You can define one or more XML files describing your metadata, these files will be merged by the overriding engine.
+		</para>
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Principles-Global_level_metadata">
+			<title>Global level metadata</title>
+			<para>
+				You can define global level metadata available for all XML files. You must not define these metadata more than once per deployment.
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_95.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				<literal>xml-mapping-metadata-complete</literal> means that all entity, mapped-superclasses and embeddable metadata should be picked up from XML (that is, ignore annotations).
+			</para>
+			<para>
+				<literal>schema / catalog</literal> will override all default definitions of schema and catalog in the metadata (both XML and annotations).
+			</para>
+			<para>
+				<literal>cascade-persist</literal> means that all associations have PERSIST as a cascade type. We recommend you to not use this feature.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Principles-Entity_level_metadata" revision="1">
+			<title>Entity level metadata</title>
+			<para>
+				You can either define or override metadata information on a given entity.
+			</para>
+				
+		<programlisting language="xml"><xi:include href="extras/Code_Example_96.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<orderedlist><title>Notes</title>
+					<listitem>
+						<para>
+							<literal>entity-mappings</literal>: entity-mappings is the root element for all XML files. You must declare the xml schema, the schema file is included in the <filename>hibernate-annotations.jar</filename> file, no Internet access will be processed by Hibernate Annotations.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>package</literal> (optional): default package used for all non qualified class names in the given deployment descriptor file.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>entity</literal>: describes an entity.
+						</para>
+						<para>
+							<literal>metadata-complete</literal> defines whether the metadata description for this element is complete or not (in other words, if annotations present at the class level should be considered or not).
+						</para>
+						<para>
+							An entity has to have a <literal>class</literal> attribute referring to the java class the metadata applies on.
+						</para>
+						<para>
+							You can overrides entity name through the <literal>name</literal> attribute, if none is defined and if an <literal>@Entity.name</literal> is present, then it is used (provided that metadata complete is not set).
+						</para>
+						<para>
+							For metadata complete (see below) element, you can define an <literal>access</literal> (either <literal>FIELD</literal> or <literal>PROPERTY</literal> (default)). For non metadata complete element, if <literal>access</literal> is not defined, the @Id position will lead position, if <literal>access</literal> is defined, the value is used.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>table</literal>: you can declare table properties (name, schema, catalog), if none is defined, the java annotation is used.
+						</para>
+						<para>
+							You can define one or several unique constraints as seen in the example
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>secondary-table</literal>: defines a secondary table very much like a regular table except that you can define the primary key / foreign key column(s) through the <literal>primary-key-join-column</literal> element. On non metadata complete, annotation secondary tables are used only if there is no <literal>secondary-table</literal> definition, annotations are ignored otherwise.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>id-class</literal>: defines the id class in a similar way <literal>@IdClass</literal> does
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>inheritance</literal>: defines the inheritance strategy (<literal>JOINED</literal>, <literal>TABLE_PER_CLASS</literal>, <literal>SINGLE_TABLE</literal>), Available only at the root entity level
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>sequence-generator</literal>: defines a sequence generator
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>table-generator</literal>: defines a table generator
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal><literal>primary-key-join-column</literal></literal>: defines the primary key join column for sub entities when JOINED inheritance strategy is used
+						</para>
+					</listitem>
+				</orderedlist>
+
+				
+		<programlisting language="xml"><xi:include href="extras/Code_Example_97.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<orderedlist><title>Notes</title>
+					<listitem>
+						<para>
+							<literal>discriminator-value / discriminator-column</literal>: defines the discriminator value and the column holding it when the SINGLE_TABLE inheritance strategy is chosen
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>named-query</literal>: defines named queries and possibly the hints associated to them. Those definitions are additive to the one defined in annotations, if two definitions have the same name, the XML one has priority.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>named-native-query</literal>: defines an named native query and its sql result set mapping. Alternatively, you can define the <literal>result-class</literal>. Those definitions are additive to the one defined in annotations, if two definitions have the same name, the XML one has priority.
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>sql-result-set-mapping</literal>: describes the result set mapping structure. You can define both entity and column mappings. Those definitions are additive to the one defined in annotations, if two definitions have the same name, the XML one has priority
+						</para>
+					</listitem>
+					<listitem>
+						<para>
+							<literal>attribute-override / association-override</literal>: defines a column or join column overriding. This overriding is additive to the one defined in annotations
+						</para>
+					</listitem>
+				</orderedlist>
+
+			
+			<para>
+				Same applies for <literal>&lt;embeddable&gt;</literal> and <literal>&lt;mapped-superclass&gt;</literal>.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Principles-Property_level_metadata">
+			<title>Property level metadata</title>
+			<para>
+				You can of course define XML overriding for properties. If metadata complete is defined, then additional properties (ie at the Java level) will be ignored. Otherwise, once you start overriding a property, all annotations on the given property are ignored. All property level metadata behave in <literal>entity/attributes</literal>, <literal>mapped-superclass/attributes</literal> or <literal>embeddable/attributes</literal>.
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_98.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				You can override a property through <literal>id</literal>, <literal>embedded-id</literal>, <literal>version</literal>, <literal>embedded</literal> and <literal>basic</literal>. Each of these elements can have sub-elements accordingly: <literal>lob</literal>, <literal>temporal</literal>, <literal>enumerated</literal>, <literal>column</literal>.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_Annotations_Reference_Guide-Principles-Association_level_metadata">
+			<title>Association level metadata</title>
+			<para>
+				You can define XML overriding for associations. All association level metadata behave in <literal>entity/attributes</literal>, <literal>mapped-superclass/attributes</literal> or <literal>embeddable/attributes</literal>.
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_99.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				You can override an association through <literal>one-to-many</literal>, <literal>one-to-one</literal>, <literal>many-to-one</literal>, and <literal>many-to-many</literal>. Each of these elements can have sub-elements accordingly: <literal>join-table</literal> (which can have <literal>join-column</literal>s and <literal>inverse-join-column</literal>s), <literal><literal>join-column</literal>s</literal>, <literal>map-key</literal>, and <literal>order-by</literal>. <literal>mapped-by</literal> and <literal>target-entity</literal> can be defined as attributes when it makes sense. Once again the structure is reflects the annotations structure. You can find all semantic information in <xref linkend="chap-Hibernate_Annotations_Reference_Guide-Entity_Beans" />.
+			</para>
+		</section>
+
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Preface.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Preface.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Preface.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="Hibernate_Annotations_Reference_Guide-Preface">
+	<title>Preface</title>
+	<para>
+	</para>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</preface>

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Revision_History.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Revision_History.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Hibernate_Annotations_Reference_Guide-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date>Wed Dec 3 2008</date>
+				<author>
+					<firstname>Rüdiger</firstname>
+					<surname>Landmann</surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member>Initial release</member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Setting_up_an_annotations_project.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Setting_up_an_annotations_project.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/Setting_up_an_annotations_project.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,102 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_Annotations_Reference_Guide-Setting_up_an_annotations_project">
+	<title>Setting up an annotations project</title>
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Setting_up_an_annotations_project-Requirements" revision="2">
+		<title>Requirements</title>
+		<itemizedlist>
+			<listitem>
+				<para>
+					Download and unpack the Hibernate Annotations distribution from the Hibernate website.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<emphasis>This release requires Hibernate Core 3.2.0.GA and above.</emphasis>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					This release is known to work on Hibernate Core 3.2.0 up to 3.2.2.GA
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Make sure you have JDK 5.0 installed or above. You can of course continue using XDoclet and get some of the benefits of annotation-based metadata with older JDK versions. Note that this document only describes JDK 5.0 annotations and you have to refer to the XDoclet documentation for more information.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Setting_up_an_annotations_project-Configuration" revision="2">
+		<title>Configuration</title>
+		<para>
+			First, set up your classpath (after you have created a new project in your favorite IDE): 
+			<itemizedlist>
+				<listitem>
+					<para>
+						Copy all Hibernate3 core and required 3rd party library files (see lib/README.txt in Hibernate).
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						Copy <filename>hibernate-annotations.jar</filename>, <filename>lib/hibernate-comons-annotations.jar</filename> and <filename>lib/ejb3-persistence.jar</filename> from the Hibernate Annotations distribution to your classpath as well.
+					</para>
+				</listitem>
+			</itemizedlist>
+		</para>
+		<para>
+			If you wish to use Hibernate Validator, download it from the Hibernate website and add <filename>hibernate-validator.jar</filename> in your classpath.
+		</para>
+		<para>
+			If you wish to use Hibernate Search, download it from the Hibernate website and add <filename>hibernate-search.jar</filename> and <filename>lucene-core-x.y.z.jar</filename> in your classpath.
+		</para>
+		<para>
+			We also recommend a small wrapper class to startup Hibernate in a static initializer block, known as <classname>HibernateUtil</classname>. You might have seen this class in various forms in other areas of the Hibernate documentation. For Annotation support you have to enhance this helper class as follows: 
+		<programlisting language="java"><xi:include href="extras/Code_Example_1.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		</para>
+		<para>
+			Interesting here is the use of <classname>AnnotationConfiguration</classname>. The packages and annotated classes are declared in your regular XML configuration file (usually <filename>hibernate.cfg.xml</filename>). Here is the equivalent of the above declaration:
+		</para>
+		
+		<programlisting language="xml"><xi:include href="extras/Code_Example_2.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			Note that you can mix the hbm.xml use and the new annotation one. The resource element can be either an hbm file or an EJB3 XML deployment descriptor. The distinction is transparent for your configuration process.
+		</para>
+		<para>
+			Alternatively, you can define the annotated classes and packages using the programmatic API
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_3.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			You can also use the Hibernate EntityManager which has its own configuration mechanism. Please refer to this project documentation for more details.
+		</para>
+		<para>
+			There is no other difference in the way you use Hibernate APIs with annotations, except for this startup routine change or in the configuration file. You can use your favorite configuration method for other properties ( <filename>hibernate.properties</filename>, <filename>hibernate.cfg.xml</filename>, programmatic APIs, etc). You can even mix annotated persistent classes and classic <filename>hbm.cfg.xml</filename> declarations with the same <classname>SessionFactory</classname>. You can however not declare a class several times (whether annotated or through hbm.xml). You cannot mix configuration strategies (hbm vs annotations) in a mapped entity hierarchy either.
+		</para>
+		<para>
+			To ease the migration process from hbm files to annotations, the configuration mechanism detects the mapping duplication between annotations and hbm files. HBM files are then prioritized over annotated metadata on a class to class basis. You can change the priority using <literal>hibernate.mapping.precedence</literal> property. The default is <literal>hbm, class</literal>, changing it to <literal>class, hbm</literal> will prioritize the annotated classes over hbm files when a conflict occurs.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_Annotations_Reference_Guide-Setting_up_an_annotations_project-Properties">
+		<title>Properties</title>
+		<para>
+			Aside from the Hibernate core properties, Hibernate Annotations reacts to the following one:
+		</para>
+
+		<variablelist>
+		<varlistentry><term><filename>hibernate.validator.apply_to_ddl</filename></term>
+		<listitem>
+		<para>
+		Use Hibernate Validator annotations to refine the database schema generation. Default to true.
+		</para>
+		</listitem>
+		</varlistentry>
+		</variablelist>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/.directory
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/.directory	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/.directory	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+[Dolphin]
+Timestamp=2008,12,2,11,30,45
+ViewMode=1

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_1.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_1.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_1.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,27 @@
+package hello;
+
+import org.hibernate.*;
+import org.hibernate.cfg.*;
+import test.*;
+import test.animals.Dog;
+
+public class HibernateUtil {
+
+private static final SessionFactory sessionFactory;
+
+    static {
+        try {
+
+            sessionFactory = new AnnotationConfiguration()
+                    configure().buildSessionFactory();
+        } catch (Throwable ex) {
+            // Log exception!
+            throw new ExceptionInInitializerError(ex);
+        }
+    }
+
+    public static Session getSession()
+            throws HibernateException {
+        return sessionFactory.openSession();
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_10.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_10.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_10.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at Entity
+public class Flight implements Serializable {
+...
+ at Column(updatable = false, name = "flight_name", nullable = false, length=50)
+public String getName() { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_11.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_11.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_11.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+ at Column(
+    name="columnName";
+    boolean unique() default false;
+    boolean nullable() default true;
+    boolean insertable() default true;
+    boolean updatable() default true;
+    String columnDefinition() default "";
+    String table() default "";
+    int length() default 255;
+    int precision() default 0; // decimal precision
+    int scale() default 0; // decimal scale
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_12.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_12.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_12.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+ at Entity
+public class Person implements Serializable {
+
+    // Persistent component using defaults
+    Address homeAddress;
+
+    @Embedded
+    @AttributeOverrides( {
+            @AttributeOverride(name="iso2", column = @Column(name="bornIso2") ),
+            @AttributeOverride(name="name", column = @Column(name="bornCountryName") )
+    } )
+    Country bornIn;
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_13.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_13.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_13.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at Embeddable
+public class Address implements Serializable {
+    String city;
+    Country nationality; //no overriding here
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_14.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_14.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_14.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,13 @@
+ at Embeddable
+public class Country implements Serializable {
+    private String iso2;
+    @Column(name="countryName") private String name;
+
+    public String getIso2() { return iso2; }
+    public void setIso2(String iso2) { this.iso2 = iso2; }
+
+    
+    public String getName() { return name; }
+    public void setName(String name) { this.name = name; }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_15.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_15.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_15.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,8 @@
+ at Embedded
+    @AttributeOverrides( {
+            @AttributeOverride(name="city", column = @Column(name="fld_city") ),
+            @AttributeOverride(name="nationality.iso2", column = @Column(name="nat_Iso2") ),
+            @AttributeOverride(name="nationality.name", column = @Column(name="nat_CountryName") )
+            //nationality columns in homeAddress are overridden
+    } )
+    Address homeAddress;
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_16.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_16.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_16.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+ at Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+public Integer getId() { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_17.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_17.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_17.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+ at Id @GeneratedValue(strategy=GenerationType.IDENTITY)
+public Long getId() { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_18.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_18.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_18.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,29 @@
+<table-generator name="EMP_GEN"
+            table="GENERATOR_TABLE"
+            pk-column-name="key"
+            value-column-name="hi"
+            pk-column-value="EMP"
+            allocation-size="20"/>
+
+//and the annotation equivalent
+
+ at javax.persistence.TableGenerator(
+    name="EMP_GEN",
+    table="GENERATOR_TABLE",
+    pkColumnName = "key",
+    valueColumnName = "hi"
+    pkColumnValue="EMP",
+    allocationSize=20
+)
+
+<sequence-generator name="SEQ_GEN" 
+    sequence-name="my_sequence"
+    allocation-size="20"/>
+
+//and the annotation equivalent
+
+ at javax.persistence.SequenceGenerator(
+    name="SEQ_GEN",
+    sequenceName="my_sequence",
+    allocationSize=20
+)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_19.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_19.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_19.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+ at Entity
+ at javax.persistence.SequenceGenerator(
+    name="SEQ_STORE",
+    sequenceName="my_sequence"
+)
+public class Store implements Serializable {
+    private Long id;
+
+    @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_STORE")
+    public Long getId() { return id; }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_2.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_2.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_2.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+<!DOCTYPE hibernate-configuration PUBLIC
+  "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
+  "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
+
+  <hibernate-configuration>
+    <session-factory>
+      <mapping package="test.animals"/> 
+      <mapping class="test.Flight"/> 
+      <mapping class="test.Sky"/> 
+      <mapping class="test.Person"/> 
+      <mapping class="test.animals.Dog"/> 
+      <mapping resource="test/animals/orm.xml"/>
+    </session-factory>
+  </hibernate-configuration>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_20.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_20.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_20.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,54 @@
+ at Entity
+ at IdClass(FootballerPk.class)
+public class Footballer {
+    //part of the id key
+    @Id public String getFirstname() {
+        return firstname;
+    }
+
+    public void setFirstname(String firstname) {
+        this.firstname = firstname;
+    }
+
+    //part of the id key
+    @Id public String getLastname() {
+        return lastname;
+    }
+
+    public void setLastname(String lastname) {
+        this.lastname = lastname;
+    }
+
+    public String getClub() {
+        return club;
+    }
+
+    public void setClub(String club) {
+        this.club = club;
+    }
+
+    //appropriate equals() and hashCode() implementation
+}
+
+ at Embeddable
+public class FootballerPk implements Serializable {
+    //same name and type as in Footballer
+    public String getFirstname() {
+        return firstname;
+    }
+
+    public void setFirstname(String firstname) {
+        this.firstname = firstname;
+    }
+
+    //same name and type as in Footballer
+    public String getLastname() {
+        return lastname;
+    }
+
+    public void setLastname(String lastname) {
+        this.lastname = lastname;
+    }
+
+    //appropriate equals() and hashCode() implementation
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+ at Entity
+ at AssociationOverride( name="id.channel", joinColumns = @JoinColumn(name="chan_id") )
+public class TvMagazin {
+    @EmbeddedId public TvMagazinPk id;
+    @Temporal(TemporalType.TIME) Date time;
+}
+
+ at Embeddable
+public class TvMagazinPk implements Serializable {
+    @ManyToOne
+    public Channel channel;
+    public String name;
+    @ManyToOne
+    public Presenter presenter;
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21a.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21a.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_21a.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+ at Entity
+ at Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
+public class Flight implements Serializable {
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_22.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_22.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_22.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Entity
+ at Inheritance(strategy=InheritanceType.SINGLE_TABLE)
+ at DiscriminatorColumn(
+    name="planetype",
+    discriminatorType=DiscriminatorType.STRING
+)
+ at DiscriminatorValue("Plane")
+public class Plane { ... }
+
+ at Entity
+ at DiscriminatorValue("A320")
+public class A320 extends Plane { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_23.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_23.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_23.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+ at Entity
+ at Inheritance(strategy=InheritanceType.JOINED)
+public class Boat implements Serializable { ... }
+
+ at Entity
+public class Ferry extends Boat { ... }
+
+ at Entity
+ at PrimaryKeyJoinColumn(name="BOAT_ID")
+public class AmericaCupClass  extends Boat { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_24.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_24.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_24.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,13 @@
+ at MappedSuperclass
+public class BaseEntity {
+    @Basic
+    @Temporal(TemporalType.TIMESTAMP)
+    public Date getLastUpdate() { ... }
+    public String getLastUpdater() { ... }
+    ...
+}
+
+ at Entity class Order extends BaseEntity {
+    @Id public Integer getId() { ... }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_25.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_25.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_25.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,25 @@
+ at MappedSuperclass
+public class FlyingObject implements Serializable {
+
+    public int getAltitude() {
+        return altitude;
+    }
+
+    @Transient
+    public int getMetricAltitude() {
+        return metricAltitude;
+    }
+
+    @ManyToOne
+    public PropulsionType getPropulsion() {
+        return metricAltitude;
+    }
+    ...
+}
+
+ at Entity
+ at AttributeOverride( name="altitude", column = @Column(name="fld_altitude") )
+ at AssociationOverride( name="propulsion", joinColumns = @JoinColumn(name="fld_propulsion_fk") )
+public class Plane extends FlyingObject {
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_26.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_26.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_26.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Entity
+public class Body {
+    @Id
+    public Long getId() { return id; }
+
+    @OneToOne(cascade = CascadeType.ALL)
+    @PrimaryKeyJoinColumn
+    public Heart getHeart() {
+        return heart;
+    }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_27.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_27.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_27.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at Entity
+public class Heart {
+    @Id
+    public Long getId() { ...}
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_28.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_28.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_28.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+ at Entity
+public class Customer implements Serializable {
+    @OneToOne(cascade = CascadeType.ALL)
+    @JoinColumn(name="passport_fk")
+    public Passport getPassport() {
+        ...
+    }
+
+ at Entity
+public class Passport implements Serializable {
+    @OneToOne(mappedBy = "passport")
+    public Customer getOwner() {
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_29.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_29.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_29.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+ at Entity
+public class Customer implements Serializable {
+    @OneToOne(cascade = CascadeType.ALL)
+    @JoinTable(name = "CustomerPassports", joinColumns = @JoinColumn(name="customer_fk"), inverseJoinColumns = @JoinColumn(name="passport_fk")
+    )
+    public Passport getPassport() {
+        ...
+    }
+
+ at Entity
+public class Passport implements Serializable {
+    @OneToOne(mappedBy = "passport")
+    public Customer getOwner() {
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_3.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_3.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_3.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+sessionFactory = new AnnotationConfiguration() .addPackage("test.animals") 
+/* the fully qualified package name 
+ * .addAnnotatedClass(Flight.class) 
+ * .addAnnotatedClass(Sky.class) 
+ * .addAnnotatedClass(Person.class) 
+ * .addAnnotatedClass(Dog.class)
+ */
+.addResource("test/animals/orm.xml")
+configure()..buildSessionFactory();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_30.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_30.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_30.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Entity()
+public class Flight implements Serializable {
+    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+    @JoinColumn(name="COMP_ID")
+    public Company getCompany() {
+        return company;
+    }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_31.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_31.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_31.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Entity()
+public class Flight implements Serializable {
+    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, targetEntity=CompanyImpl.class )
+    @JoinColumn(name="COMP_ID")
+    public Company getCompany() {
+        return company;
+    }
+    ...
+}
+
+public interface Company {
+    ...
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_32.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_32.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_32.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Entity()
+public class Flight implements Serializable {
+    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
+    @JoinTable(name="Flight_Company", joinColumns = @JoinColumn(name="FLIGHT_ID"), inverseJoinColumns = @JoinColumn(name="COMP_ID") )
+    public Company getCompany() {
+        return company;
+    }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_33.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_33.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_33.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,41 @@
+ at Entity public class City {
+    @OneToMany(mappedBy="city")
+    @OrderBy("streetName")
+    public List<Street> getStreets() {
+        return streets;
+    }
+...
+}
+
+ at Entity public class Street {
+    public String getStreetName() {
+        return streetName;
+    }
+
+    @ManyToOne
+    public City getCity() {
+        return city;
+    }
+    ...
+}
+
+
+ at Entity
+public class Software {
+    @OneToMany(mappedBy="software")
+    @MapKey(name="codeName")
+    public Map<String, Version> getVersions() {
+        return versions;
+    }
+...
+}
+
+ at Entity
+ at Table(name="tbl_version")
+public class Version {
+    public String getCodeName() {...}
+
+    @ManyToOne
+    public Software getSoftware() { ... }
+...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_34.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_34.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_34.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+ at Entity
+public class Troop {
+    @OneToMany(mappedBy="troop")
+    public Set<Soldier> getSoldiers() {
+    ...
+}
+
+ at Entity
+public class Soldier {
+    @ManyToOne
+    @JoinColumn(name="troop_fk")
+    public Troop getTroop() {
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_35.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_35.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_35.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+ at Entity
+public class Troop {
+    @OneToMany
+    @JoinColumn(name="troop_fk") //we need to duplicate the physical information
+    public Set<Soldier> getSoldiers() {
+    ...
+}
+
+ at Entity
+public class Soldier {
+    @ManyToOne
+    @JoinColumn(name="troop_fk", insertable=false, updatable=false)
+    public Troop getTroop() {
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_36.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_36.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_36.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Entity
+public class Customer implements Serializable {
+    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+    @JoinColumn(name="CUST_ID")
+    public Set<Ticket> getTickets() {
+    ...
+}
+
+ at Entity
+public class Ticket implements Serializable {
+    ... //no bidir
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_37.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_37.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_37.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,16 @@
+ at Entity
+public class Trainer {
+    @OneToMany
+    @JoinTable(
+            name="TrainedMonkeys",
+            joinColumns = @JoinColumn( name="trainer_id"),
+            inverseJoinColumns = @JoinColumn( name="monkey_id")
+    )
+    public Set<Monkey> getTrainedMonkeys() {
+    ...
+}
+
+ at Entity
+public class Monkey {
+    ... //no bidir
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_38.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_38.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_38.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+ at Entity
+public class Trainer {
+    @OneToMany
+    public Set<Tiger> getTrainedTigers() {
+    ...
+}
+
+ at Entity
+public class Tiger {
+    ... //no bidir
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_39.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_39.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_39.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,16 @@
+ at Entity
+public class Employer implements Serializable {
+    @ManyToMany(
+        targetEntity=org.hibernate.test.metadata.manytomany.Employee.class,
+        cascade={CascadeType.PERSIST, CascadeType.MERGE}
+    )
+    @JoinTable(
+        name="EMPLOYER_EMPLOYEE",
+        joinColumns=@JoinColumn(name="EMPER_ID"),
+        inverseJoinColumns=@JoinColumn(name="EMPEE_ID")
+    )
+    public Collection getEmployees() {
+        return employees;
+    }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_4.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_4.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_4.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Entity
+public class Flight implements Serializable {
+    Long id;
+
+    @Id
+    public Long getId() { return id; }
+
+    public void setId(Long id) { this.id = id; }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_40.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_40.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_40.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+ at Entity
+public class Employee implements Serializable {
+    @ManyToMany(
+        cascade = {CascadeType.PERSIST, CascadeType.MERGE},
+        mappedBy = "employees",
+        targetEntity = Employer.class
+    )
+    public Collection getEmployers() {
+        return employers;
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_41.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_41.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_41.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Entity
+public class Store {
+    @ManyToMany(cascade = CascadeType.PERSIST)
+    public Set<City> getImplantedIn() {
+        ...
+    }
+}
+
+ at Entity
+public class City {
+    ... //no bidirectional relationship
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_42.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_42.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_42.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+ at Entity
+public class Store {
+    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
+    public Set<Customer> getCustomers() {
+        ...
+    }
+}
+
+ at Entity
+public class Customer {
+    @ManyToMany(mappedBy="customers")
+    public Set<Store> getStores() {
+        ...
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_43.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_43.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_43.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Entity
+public class RegionalArticle implements Serializable {
+
+    @Id
+    public RegionalArticlePk getPk() { ... }
+}
+
+ at Embeddable
+public class RegionalArticlePk implements Serializable { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_44.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_44.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_44.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,8 @@
+ at Entity
+public class RegionalArticle implements Serializable {
+
+    @EmbeddedId
+    public RegionalArticlePk getPk() { ... }
+}
+
+public class RegionalArticlePk implements Serializable { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_45.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_45.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_45.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+ at Entity
+public class Parent implements Serializable {
+    @Id
+    public ParentPk id;
+    public int age;
+
+    @OneToMany(cascade=CascadeType.ALL)
+    @JoinColumns ({
+        @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+        @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+        @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+    })
+    public Set<Child> children; //unidirectional
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_46.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_46.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_46.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,13 @@
+ at Entity
+public class Child implements Serializable {
+    @Id @GeneratedValue
+    public Integer id;
+
+    @ManyToOne
+    @JoinColumns ({
+        @JoinColumn(name="parentCivility", referencedColumnName = "isMale"),
+        @JoinColumn(name="parentLastName", referencedColumnName = "lastName"),
+        @JoinColumn(name="parentFirstName", referencedColumnName = "firstName")
+    })
+    public Parent parent; //unidirectional
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_47.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_47.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_47.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,6 @@
+ at Embeddable
+public class ParentPk implements Serializable {
+    String firstName;
+    String lastName;
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_48.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_48.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_48.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,28 @@
+ at Entity
+ at Table(name="MainCat")
+<emphasis role="bold">@SecondaryTables({ @SecondaryTable(name="Cat1", pkJoinColumns={ @PrimaryKeyJoinColumn(name="cat_id", referencedColumnName="id") ), @SecondaryTable(name="Cat2", uniqueConstraints={@UniqueConstraint(columnNames={"storyPart2"})}) })</emphasis>
+public class Cat implements Serializable {
+
+    private Integer id;
+    private String name;
+    private String storyPart1;
+    private String storyPart2;
+
+    @Id @GeneratedValue
+    public Integer getId() {
+        return id;
+    }
+
+    public String getName() {
+        return name;
+    }
+    
+    <emphasis role="bold">@Column(table="Cat1")</emphasis>
+    public String getStoryPart1() {
+        return storyPart1;
+    }
+
+    <emphasis role="bold">@Column(table="Cat2")</emphasis>
+    public String getStoryPart2() {
+        return storyPart2;
+    }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_49.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_49.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_49.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,23 @@
+<entity-mappings>
+    <named-query name="plane.getAll">
+        <query>select p from Plane p</query>
+    </named-query>
+    ...
+</entity-mappings>
+...
+
+ at Entity
+ at NamedQuery(name="night.moreRecentThan", query="select n from Night n where n.date >= :date")
+public class Night {
+    ...
+}
+
+public class MyDao {
+    doStuff() {
+        Query q = s.getNamedQuery("night.moreRecentThan");
+        q.setDate( "date", aMonthAgo );
+        List results = q.list();
+        ...
+    }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_5.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_5.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_5.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+ at Entity
+ at Table(name="tbl_sky")
+public class Sky implements Serializable {
+...
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_50.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_50.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_50.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+ at NamedNativeQuery(name="night&area", query="select night.id nid, night.night_duration, "
+    + " night.night_date, area.id aid, night.area_id, area.name "
+    + "from Night night, Area area where night.area_id = area.id", resultSetMapping="joinMapping")
+ at SqlResultSetMapping(name="joinMapping", entities={
+    @EntityResult(entityClass=org.hibernate.test.annotations.query.Night.class, fields = {
+        @FieldResult(name="id", column="nid"),
+        @FieldResult(name="duration", column="night_duration"),
+        @FieldResult(name="date", column="night_date"),
+        @FieldResult(name="area", column="area_id"),
+        discriminatorColumn="disc"
+    }),
+    @EntityResult(entityClass=org.hibernate.test.annotations.query.Area.class, fields = {
+        @FieldResult(name="id", column="aid"),
+        @FieldResult(name="name", column="name")
+    })
+    }
+)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_51.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_51.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_51.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,34 @@
+ at Entity
+ at SqlResultSetMapping(name="implicit", entities=@EntityResult(entityClass=org.hibernate.test.annotations.query
+.SpaceShip.class)) @NamedNativeQuery(name="implicitSample", query="select * from SpaceShip", resultSetMapping="implicit")
+public class SpaceShip {
+    private String name;
+    private String model;
+    private double speed;
+
+    @Id
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @Column(name="model_txt")
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(double speed) {
+        this.speed = speed;
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_52.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_52.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_52.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,97 @@
+ at Entity
+ at SqlResultSetMapping(name="compositekey",
+        entities=@EntityResult(entityClass=org.hibernate.test.annotations.query
+        .SpaceShip.class,
+            fields = {
+                    @FieldResult(name="name", column = "name"),
+                    @FieldResult(name="model", column = "model"),
+                    @FieldResult(name="speed", column = "speed"),
+<emphasis role="bold"> @FieldResult(name="captain.firstname", column = "firstn"), @FieldResult(name="captain.lastname", column = "lastn"),</emphasis>
+                    @FieldResult(name="dimensions.length", column = "length"),
+                    @FieldResult(name="dimensions.width", column = "width")
+                    }),
+        columns = { @ColumnResult(name = "surface"),
+                    @ColumnResult(name = "volume") } )
+
+ at NamedNativeQuery(name="compositekey",
+    query="select name, model, speed, lname as lastn, fname as firstn, length, width, length * width as surface from SpaceShip", 
+    resultSetMapping="compositekey")
+} )
+public class SpaceShip {
+    private String name;
+    private String model;
+    private double speed;
+    private Captain captain;
+    private Dimensions dimensions;
+
+    @Id
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    @ManyToOne(fetch= FetchType.LAZY)
+    @JoinColumns( {
+            @JoinColumn(name="fname", referencedColumnName = "firstname"),
+            @JoinColumn(name="lname", referencedColumnName = "lastname")
+            } )
+    public Captain getCaptain() {
+        return captain;
+    }
+
+    public void setCaptain(Captain captain) {
+        this.captain = captain;
+    }
+
+    public String getModel() {
+        return model;
+    }
+
+    public void setModel(String model) {
+        this.model = model;
+    }
+
+    public double getSpeed() {
+        return speed;
+    }
+
+    public void setSpeed(double speed) {
+        this.speed = speed;
+    }
+
+    public Dimensions getDimensions() {
+        return dimensions;
+    }
+
+    public void setDimensions(Dimensions dimensions) {
+        this.dimensions = dimensions;
+    }
+}
+
+ at Entity
+ at IdClass(Identity.class)
+public class Captain implements Serializable {
+    private String firstname;
+    private String lastname;
+
+    @Id
+    public String getFirstname() {
+        return firstname;
+    }
+
+    public void setFirstname(String firstname) {
+        this.firstname = firstname;
+    }
+
+    @Id
+    public String getLastname() {
+        return lastname;
+    }
+
+    public void setLastname(String lastname) {
+        this.lastname = lastname;
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_53.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_53.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_53.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+ at NamedNativeQuery(name="implicitSample", query="select * from SpaceShip", resultClass=SpaceShip.class)
+public class SpaceShip {
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_54.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_54.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_54.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1 @@
+ at SqlResultSetMapping(name="scalar", columns=@ColumnResult(name="dimension")) @NamedNativeQuery(name="scalar", query="select length*width as dimension from SpaceShip", resultSetMapping="scalar")
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_55.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_55.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_55.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+ at Entity
+ at BatchSize(size=5)
+ at org.hibernate.annotations.Entity(
+        selectBeforeUpdate = true,
+        dynamicInsert = true, dynamicUpdate = true,
+        optimisticLock = OptimisticLockType.ALL,
+        polymorphism = PolymorphismType.EXPLICIT)
+ at Where(clause="1=1")
+ at org.hibernate.annotations.Table(name="Forest", indexes = { @Index(name="idx", columnNames = { "name", "length" } ) } )
+ at Persister(impl=MyEntityPersister.class)
+public class Forest { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_56.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_56.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_56.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Entity
+ at Inheritance(
+    strategy=InheritanceType.JOINED
+)
+public class Vegetable { ... }
+
+ at Entity
+ at OnDelete(action=OnDeleteAction.CASCADE)
+public class Carrot extends Vegetable { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_57.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_57.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_57.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Id @GeneratedValue(generator="system-uuid")
+ at GenericGenerator(name="system-uuid", strategy = "uuid")
+public String getId() {
+
+ at Id @GeneratedValue(generator="hibseq")
+ at GenericGenerator(name="hibseq", strategy = "seqhilo",
+    parameters = {
+        @Parameter(name="max_lo", value = "5"),
+        @Parameter(name="sequence", value="heybabyhey")
+    }
+)
+public Integer getId() {
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_58.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_58.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_58.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+ at GenericGenerators(
+    {
+    @GenericGenerator(
+        name="hibseq",
+        strategy = "seqhilo",
+        parameters = {
+            @Parameter(name="max_lo", value = "5"),
+            @Parameter(name="sequence", value="heybabyhey")
+        }
+     ),
+     @GenericGenerator(...)
+     }
+)
+package org.hibernate.test.model
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_6.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_6.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_6.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+ at Table(name="tbl_sky",
+    uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}
+)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_60.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_60.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_60.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,23 @@
+ at Entity
+public class Citizen {
+    @Id
+    @GeneratedValue
+    private Integer id;
+    private String firstname;
+    private String lastname;
+    
+    @NaturalId
+    @ManyToOne
+    private State state;
+
+    @NaturalId
+    private String ssn;
+    ...
+}
+
+
+
+//and later on query
+List results = s.createCriteria( Citizen.class )
+                .add( Restrictions.naturalId().set( "ssn", "1234" ).set( "state", ste ) )
+                .list();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_61.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_61.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_61.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,36 @@
+ at Entity
+public class Person implements Serializable {
+    @Id  @GeneratedValue //access type field
+    Integer id;
+
+    @Embedded
+    @AttributeOverrides({
+    @AttributeOverride(name = "iso2", column = @Column(name = "bornIso2")),
+    @AttributeOverride(name = "name", column = @Column(name = "bornCountryName"))
+            })
+    Country bornIn;
+}
+
+ at Embeddable
+ at AccessType("property") //override access type for all properties in Country
+public class Country implements Serializable {
+    private String iso2;
+    private String name;
+
+    public String getIso2() {
+        return iso2;
+    }
+
+    public void setIso2(String iso2) {
+        this.iso2 = iso2;
+    }
+
+    @Column(name = "countryName")
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_62.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_62.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_62.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+ at Formula("obj_length * obj_height * obj_width")
+public long getObjectVolume()
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_63.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_63.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_63.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,19 @@
+ at TypeDefs(
+    {
+    @TypeDef(
+        name="caster",
+        typeClass = CasterStringType.class,
+        parameters = {
+            @Parameter(name="cast", value="lower")
+        }
+    )
+    }
+)
+package org.hibernate.test.annotations.entity;
+
+...
+public class Forest {
+    @Type(type="caster")
+    public String getSmallText() {
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_64.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_64.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_64.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+ at Type(type="org.hibernate.test.annotations.entity.MonetaryAmountUserType")
+ at Columns(columns = {
+    @Column(name="r_amount"),
+    @Column(name="r_currency")
+})
+public MonetaryAmount getAmount() {
+    return amount;
+}
+
+
+public class MonetaryAmount implements Serializable {
+    private BigDecimal amount;
+    private Currency currency;
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_65.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_65.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_65.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at Column(secondaryTable="Cat1")
+ at Index(name="story1index")
+public String getStoryPart1() {
+    return storyPart1;
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_66.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_66.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_66.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+ at Entity
+public class Person {
+    @Embeddable public Address address;
+    ...
+}
+
+ at Embeddable
+public class Address {
+    @Parent public Person owner;
+    ...
+}
+
+
+person == person.address.owner
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_67.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_67.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_67.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Entity
+public class Antenna {
+    @Id public Integer id;
+    @Generated(GenerationTime.ALWAYS) @Column(insertable = false, updatable = false)
+    public String longitude;
+
+    @Generated(GenerationTime.INSERT) @Column(insertable = false)
+    public String latitude;
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_68.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_68.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_68.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at Embedded
+    @Target(OwnerImpl.class)
+    public Owner getOwner() {
+        return owner;
+    }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_69.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_69.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_69.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+ at Entity
+ at DiscriminatorFormula("case when forest_type is null then 0 else forest_type end")
+public class Forest { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_7.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_7.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_7.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,7 @@
+ at Entity
+public class Flight implements Serializable {
+...
+    @Version
+    @Column(name="OPTLOCK")
+    public Integer getVersion() { ... }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_70.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_70.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_70.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,7 @@
+ at Entity
+ at Inheritance(strategy = InheritanceType.JOINED)
+public abstract class File { ... }
+
+ at Entity
+ at ForeignKey(name = "FK_DOCU_FILE")
+public class Document extends File {
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_71.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_71.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_71.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,8 @@
+ at Entity
+public class Child {
+    ...
+    @ManyToOne
+    @NotFound(action=NotFoundAction.IGNORE)
+    public Parent getParent() { ... }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_72.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_72.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_72.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,8 @@
+ at Entity
+public class Child {
+    ...
+    @ManyToOne
+    @OnDelete(action=OnDeleteAction.CASCADE)
+    public Parent getParent() { ... }
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_73.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_73.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_73.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+ at Entity
+public class Child {
+    ...
+    @ManyToOne
+    @ForeignKey(name="FK_PARENT")
+    public Parent getParent() { ... }
+    ...
+}
+
+alter table Child add constraint FK_PARENT foreign key (parent_id) references Parent
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_74.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_74.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_74.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Any( metaColumn = @Column( name = "property_type" ), fetch=FetchType.EAGER )
+    @AnyMetaDef( 
+        idType = "integer", 
+        metaType = "string", 
+        metaValues = {
+            @MetaValue( value = "S", targetEntity = StringProperty.class ),
+            @MetaValue( value = "I", targetEntity = IntegerProperty.class )
+        } )
+    @JoinColumn( name = "property_id" )
+    public Property getMainProperty() {
+        return mainProperty;
+    }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_75.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_75.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_75.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+//on a package
+ at AnyMetaDef( name="property" 
+    idType = "integer", 
+    metaType = "string", 
+    metaValues = {
+        @MetaValue( value = "S", targetEntity = StringProperty.class ),
+        @MetaValue( value = "I", targetEntity = IntegerProperty.class )
+    } )
+package org.hibernate.test.annotations.any;
+
+
+//in a class
+    @Any( metaDef="property", metaColumn = @Column( name = "property_type" ), fetch=FetchType.EAGER )
+    @JoinColumn( name = "property_id" )
+    public Property getMainProperty() {
+        return mainProperty;
+    }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_76.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_76.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_76.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,8 @@
+ at OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+    @JoinColumn(name="CUST_ID")
+    @Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)
+    @Where(clause="1=1")
+    @OnDelete(action=OnDeleteAction.CASCADE)
+    public SortedSet<Ticket> getTickets() {
+        return tickets;
+    }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_77.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_77.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_77.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at Entity
+public class Woman {
+    ...
+    @ManyToMany(cascade = {CascadeType.ALL})
+    @ForeignKey(name = "TO_WOMAN_FK", inverseName = "TO_MAN_FK")
+    public Set<Man> getMens() {
+        return mens;
+    }
+}
+
+alter table Man_Woman add constraint TO_WOMAN_FK foreign key (woman_id) references Woman
+alter table Man_Woman add constraint TO_MAN_FK foreign key (man_id) references Man
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_78.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_78.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_78.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at OneToMany(cascade = CascadeType.ALL)
+ at IndexColumn(name = "drawer_position", base=1)
+public List<Drawer> getDrawers() {
+    return drawers;
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_79.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_79.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_79.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+ at CollectionOfElements(targetElement = SizeImpl.class)
+    @MapKeyManyToMany(targetEntity = LuggageImpl.class)
+    private Map<Luggage, Size> sizePerLuggage = new HashMap<Luggage, Size>();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_8.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_8.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_8.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,20 @@
+public transient int counter; //transient property
+
+private String firstname; //persistent property
+
+ at Transient
+String getLengthInMeter() { ... } //transient property
+
+String getName() {... } // persistent property
+
+ at Basic
+int getLength() { ... } // persistent property
+
+ at Basic(fetch = FetchType.LAZY)
+String getDetailedComment() { ... } // persistent property
+
+ at Temporal(TemporalType.TIME)
+java.util.Date getDepartureTime() { ... } // persistent property           
+
+ at Enumerated(EnumType.STRING)
+Starred getNote() { ... } //enum persisted as String in database
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_80.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_80.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_80.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,20 @@
+ at Entity
+public class Parent {
+    @OneToMany(mappedBy="parent")
+    @org.hibernate.annotations.IndexColumn(name="order")
+    private List<Child> children;
+    ...
+}
+
+ at Entity
+public class Child {
+    ...
+    //the index column is mapped as a property in the associated entity
+    @Column(name="order")
+    private int order;
+
+    @ManyToOne
+    @JoinColumn(name="parent_id", nullable=false)
+    private Parent parent;
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_81.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_81.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_81.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+ at Entity
+public class Parent {
+    @OneToMany
+    @org.hibernate.annotations.IndexColumn(name="order")
+    @JoinColumn(name="parent_id", nullable=false)
+    private List<Child> children;
+    ...
+}
+
+ at Entity
+public class Child {
+    ...
+    @ManyToOne
+    @JoinColumn(name="parent_id", insertable=false, updatable=false, nullable=false)
+    private Parent parent;
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_82.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_82.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_82.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+ at Entity
+ at TableGenerator(name="ids_generator", table="IDS")
+public class Passport {
+    ...
+
+    @ManyToMany(cascade = CascadeType.ALL)
+    @JoinTable(name="PASSPORT_VISASTAMP")
+    @CollectionId( columns = @Column(name="COLLECTION_ID"), type=@Type(type="long"), generator = "ids_generator" )
+    private Collection<Stamp> visaStamp = new ArrayList();
+    ...
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_83.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_83.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_83.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,93 @@
+ at Entity
+public class Boy {
+    private Integer id;
+    private Set<String> nickNames = new HashSet<String>();
+    private int[] favoriteNumbers;
+    private Set<Toy> favoriteToys = new HashSet<Toy>();
+    private Set<Character> characters = new HashSet<Character>();
+
+    @Id @GeneratedValue
+    public Integer getId() {
+        return id;
+    }
+
+    @CollectionOfElements public Set<String> getNickNames() {
+        return nickNames;
+    }
+
+    @CollectionOfElements @JoinTable( table=@Table(name="BoyFavoriteNumbers"), joinColumns = @JoinColumn(name="BoyId") ) @Column(name="favoriteNumber", nullable=false)
+    @IndexColumn(name="nbr_index")
+    public int[] getFavoriteNumbers() {
+        return favoriteNumbers;
+    }
+
+    @CollectionOfElements @AttributeOverride( name="element.serial", column=@Column(name="serial_nbr") )
+    public Set<Toy> getFavoriteToys() {
+        return favoriteToys;
+    }
+
+    @CollectionOfElements public Set<Character> getCharacters() {
+        return characters;
+    }
+    ...
+}
+
+public enum Character {
+    GENTLE,
+    NORMAL,
+    AGGRESSIVE,
+    ATTENTIVE,
+    VIOLENT,
+    CRAFTY
+}
+
+ at Embeddable
+public class Toy {
+    public String name;
+    public String serial;
+    public Boy owner;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getSerial() {
+        return serial;
+    }
+
+    public void setSerial(String serial) {
+        this.serial = serial;
+    }
+
+    @Parent
+    public Boy getOwner() {
+        return owner;
+    }
+
+    public void setOwner(Boy owner) {
+        this.owner = owner;
+    }
+
+    public boolean equals(Object o) {
+        if ( this == o ) return true;
+        if ( o == null || getClass() != o.getClass() ) return false;
+
+        final Toy toy = (Toy) o;
+
+        if ( !name.equals( toy.name ) ) return false;
+        if ( !serial.equals( toy.serial ) ) return false;
+
+        return true;
+    }
+
+    public int hashCode() {
+        int result;
+        result = name.hashCode();
+        result = 29 * result + serial.hashCode();
+        return result;
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_84.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_84.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_84.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at ManyToAny(
+            metaColumn = @Column( name = "property_type" ) )
+    @AnyMetaDef( 
+        idType = "integer", 
+        metaType = "string",
+        metaValues = {
+            @MetaValue( value = "S", targetEntity = StringProperty.class ),
+            @MetaValue( value = "I", targetEntity = IntegerProperty.class ) } )
+    @Cascade( { org.hibernate.annotations.CascadeType.ALL } )
+    @JoinTable( name = "obj_properties", joinColumns = @JoinColumn( name = "obj_id" ),
+            inverseJoinColumns = @JoinColumn( name = "property_id" ) )
+    public List<Property> getGeneralProperties() {
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_85.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_85.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_85.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+ at OneToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @Cascade({org.hibernate.annotations.CascadeType.SAVE_UPDATE, org.hibernate.annotations.CascadeType.DELETE_ORPHAN})
+public Collection<Employer> getEmployers()
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_86.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_86.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_86.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+ at Entity
+ at Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+public class Forest { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_87.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_87.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_87.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,6 @@
+ at OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
+    @JoinColumn(name="CUST_ID")
+    @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
+    public SortedSet<Ticket> getTickets() {
+        return tickets;
+    }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_88.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_88.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_88.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+ at Cache(
+    CacheConcurrencyStrategy usage();
+    String region() default "";
+    String include() default "all";
+)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_89.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_89.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_89.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,7 @@
+ at Entity
+ at FilterDef(name="minLength", parameters=@ParamDef( name="minLength", type="integer" ) )
+ at Filters( {
+    @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length"),
+    @Filter(name="minLength", condition=":minLength <= length")
+} )
+public class Forest { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_9.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_9.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_9.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+ at Lob
+public String getFullText() {
+    return fullText;
+}
+
+ at Lob 
+public byte[] getFullCode() {
+    return fullCode;
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_90.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_90.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_90.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,7 @@
+ at OneToMany
+    @JoinTable
+    //filter on the target entity table
+    @Filter(name="betweenLength", condition=":minLength <= length and :maxLength >= length")
+    //filter on the association table
+    @FilterJoinTable(name="security", condition=":userlevel >= requredLevel")
+    public Set<Forest> getForests() { ... }
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_91.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_91.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_91.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+ at Entity
+ at Table(name="CHAOS")
+ at SQLInsert( sql="INSERT INTO CHAOS(size, name, nickname, id) VALUES(?,upper(?),?,?)") @SQLUpdate( sql="UPDATE CHAOS SET size = ?, name = upper(?), nickname = ? WHERE id = ?") @SQLDelete( sql="DELETE CHAOS WHERE id = ?") @SQLDeleteAll( sql="DELETE CHAOS") @Loader(namedQuery = "chaos")
+ at NamedNativeQuery(name="chaos", query="select id, size, name, lower( nickname ) as nickname from CHAOS where id= ?", resultClass = Chaos.class)
+public class Chaos {
+    @Id
+    private Long id;
+    private Long size;
+    private String name;
+    private String nickname;
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_92.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_92.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_92.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+ at OneToMany
+ at JoinColumn(name="chaos_fk")
+ at SQLInsert( sql="UPDATE CASIMIR_PARTICULE SET chaos_fk = ? where id = ?") @SQLDelete( sql="UPDATE CASIMIR_PARTICULE SET chaos_fk = null where id = ?")
+private Set<CasimirParticle> particles = new HashSet<CasimirParticle>();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_93.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_93.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_93.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+ at Entity
+ at SecondaryTables({
+    @SecondaryTable(name = "`Cat nbr1`"),
+    @SecondaryTable(name = "Cat2"})
+ at org.hibernate.annotations.Tables( {
+    @Table(appliesTo = "Cat", comment = "My cat table" ),
+    @Table(appliesTo = "Cat2", foreignKey = @ForeignKey(name="FK_CAT2_CAT"), fetch = FetchMode.SELECT,
+        sqlInsert=@SQLInsert(sql="insert into Cat2(storyPart2, id) values(upper(?), ?)") )
+} )
+public class Cat implements Serializable {
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_94.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_94.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_94.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+ at Entity
+ at Tuplizer(impl = DynamicEntityTuplizer.class)
+public interface Cuisine {
+    @Id
+    @GeneratedValue
+    public Long getId();
+    public void setId(Long id);
+
+    public String getName();
+    public void setName(String name);
+
+    @Tuplizer(impl = DynamicComponentTuplizer.class)
+    public Country getCountry();
+    public void setCountry(Country country);
+
+
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_95.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_95.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_95.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings 
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+  version="1.0">
+
+    <persistence-unit-metadata>
+        <xml-mapping-metadata-complete/>
+        <persistence-unit-defaults>
+            <schema>myschema</schema>
+            <catalog>mycatalog</catalog>
+            <cascade-persist/>
+        </persistence-unit-defaults>
+    </persistence-unit-metadata>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_96.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_96.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_96.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings 
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+  version="1.0">
+
+    <package>org.hibernate.test.annotations.reflection</package>
+    <entity class="Administration" access="PROPERTY" metadata-complete="true">
+        <table name="tbl_admin">
+            <unique-constraint>
+                <column-name>firstname</column-name>
+                <column-name>lastname</column-name>
+            </unique-constraint>
+        </table>
+        <secondary-table name="admin2">
+            <primary-key-join-column name="admin_id" referenced-column-name="id"/>
+            <unique-constraint>
+                <column-name>address</column-name>
+            </unique-constraint>
+        </secondary-table>
+        <id-class class="SocialSecurityNumber"/>
+        <inheritance strategy="JOINED"/>
+        <sequence-generator name="seqhilo" sequence-name="seqhilo"/>
+        <table-generator name="table" table="tablehilo"/>
+        ...
+    </entity>
+
+    <entity class="PostalAdministration">
+        <primary-key-join-column name="id"/>
+        ...
+    </entity>
+</entity-mappings>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_97.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_97.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_97.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings 
+  xmlns="http://java.sun.com/xml/ns/persistence/orm"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+  version="1.0">
+
+    <package>org.hibernate.test.annotations.reflection</package>
+    <entity class="Music" access="PROPERTY" metadata-complete="true">
+        <discriminator-value>Generic</discriminator-value>
+        <discriminator-column length="34"/>
+        ...
+    </entity>
+
+    <entity class="PostalAdministration">
+        <primary-key-join-column name="id"/>
+        <named-query name="adminById">
+            <query>select m from Administration m where m.id = :id</query>
+            <hint name="org.hibernate.timeout" value="200"/>
+        </named-query>
+        <named-native-query name="allAdmin" result-set-mapping="adminrs">
+            <query>select *, count(taxpayer_id) as taxPayerNumber 
+            from Administration, TaxPayer
+            where taxpayer_admin_id = admin_id group by ...</query>
+            <hint name="org.hibernate.timeout" value="200"/>
+        </named-native-query>
+        <sql-result-set-mapping name="adminrs">
+            <entity-result entity-class="Administration">
+                <field-result name="name" column="fld_name"/>
+            </entity-result>
+            <column-result name="taxPayerNumber"/>
+        </sql-result-set-mapping>
+        <attribute-override name="ground">
+            <column name="fld_ground" unique="true" scale="2"/>
+        </attribute-override>
+        <association-override name="referer">
+            <join-column name="referer_id" referenced-column-name="id"/>
+        </association-override>
+        ...
+    </entity>
+</entity-mappings>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_98.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_98.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_98.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,24 @@
+<attributes>
+        <id name="id">
+            <column name="fld_id"/>
+            <generated-value generator="generator" strategy="SEQUENCE"/>
+            <temporal>DATE</temporal>
+            <sequence-generator name="generator" sequence-name="seq"/>
+        </id>
+        <version name="version"/>
+        <embedded name="embeddedObject">
+            <attribute-override name"subproperty">
+                <column name="my_column"/>
+            </attribute-override>
+        </embedded>
+        <basic name="status" optional="false">
+            <enumerated>STRING</enumerated>
+        </basic>
+        <basic name="serial" optional="true">
+            <column name="serialbytes"/>
+            <lob/>
+        </basic>
+        <basic name="terminusTime" fetch="LAZY">
+            <temporal>TIMESTAMP</temporal>
+        </basic>
+    </attributes>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_99.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_99.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/extras/Code_Example_99.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,20 @@
+<attributes>
+        <one-to-many name="players" fetch="EAGER">
+            <map-key name="name"/>
+            <join-column name="driver"/>
+            <join-column name="number"/>
+        </one-to-many>
+        <many-to-many name="roads" target-entity="Administration">
+            <order-by>maxSpeed</order-by>
+            <join-table name="bus_road">
+                <join-column name="driver"/>
+                <join-column name="number"/>
+                <inverse-join-column name="road_id"/>
+                <unique-constraint>
+                    <column-name>driver</column-name>
+                    <column-name>number</column-name>
+                </unique-constraint>
+            </join-table>
+        </many-to-many>
+        <many-to-many name="allTimeDrivers" mapped-by="drivenBuses">
+    </attributes>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/hibernate_logo_a.png
===================================================================
(Binary files differ)


Property changes on: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/hibernate_logo_a.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/icon.svg
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/icon.svg	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/en-US/images/icon.svg	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Additional_modules.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Additional_modules.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Additional_modules.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,194 @@
+# 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: 2009-01-04 22:24+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
+#: Additional_modules.xml:6
+#, no-c-format
+msgid "Additional modules"
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:7
+#, no-c-format
+msgid ""
+"Hibernate Annotations mainly focuses on persistence metadata. The project "
+"also has a nice integration with two Hibernate modules."
+msgstr ""
+
+#. Tag: title
+#: Additional_modules.xml:11
+#, no-c-format
+msgid "Hibernate Validator"
+msgstr ""
+
+#. Tag: title
+#: Additional_modules.xml:13 Additional_modules.xml:64
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:14
+#, no-c-format
+msgid ""
+"Annotations are a very convenient and elegant way to specify invariant "
+"constraints for a domain model. You can, for example, express that a "
+"property should never be null, that the account balance should be strictly "
+"positive, etc. These domain-model constraints are declared in the bean "
+"itself by annotating its properties. A validator can then read them and "
+"check for constraint violations. The validation mechanism can be executed in "
+"different layers in your application without having to duplicate any of "
+"these rules (presentation layer, data access layer). Following the DRY "
+"principle, Hibernate Validator has been designed for that purpose."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:17
+#, no-c-format
+msgid ""
+"Hibernate Validator works at two levels. First, it is able to check in-"
+"memory instances of a class for constraint violations. Second, it can apply "
+"the constraints to the Hibernate meta-model and incorporate them into the "
+"generated database schema."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:20
+#, no-c-format
+msgid ""
+"Each constraint annotation is associated to a validator implementation "
+"responsible for checking the constraint on the entity instance. A validator "
+"can also (optionally) apply the constraint to the Hibernate meta-model, "
+"allowing Hibernate to generate DDL that expresses the constraint. With the "
+"appropriate event listener, you can execute the checking operation on "
+"inserts and updates done by Hibernate. Hibernate Validator is not limited to "
+"use with Hibernate. You can easily use it anywhere in your application."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:23
+#, no-c-format
+msgid ""
+"When checking instances at runtime, Hibernate Validator returns information "
+"about constraint violations in an array of <classname>InvalidValue</"
+"classname> s. Among other information, the <classname>InvalidValue</"
+"classname> contains an error description message that can embed the "
+"parameter values bundle with the annotation (eg. length limit), and message "
+"strings that may be externalized to a <classname>ResourceBundle</classname> ."
+msgstr ""
+
+#. Tag: title
+#: Additional_modules.xml:29 Additional_modules.xml:72
+#, no-c-format
+msgid "Integration with Hibernate Annotations"
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:30
+#, no-c-format
+msgid ""
+"If Hibernate Validator (<filename>hibernate-validator.jar</filename>) is "
+"available in the classpath, Hibernate Annotations will integrate it in two "
+"ways:"
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:35
+#, no-c-format
+msgid ""
+"Constraints will be applied to the Data Definition Language. In other words, "
+"the database schema will reflect the constraints (provided that you use the "
+"<filename>hbm2ddl</filename> tool)."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:40
+#, no-c-format
+msgid ""
+"Before an entity change is applied to the database (insert or update), the "
+"entity is validated. Validation errors, if any, will be carried over through "
+"an <classname>InvalidStateException</classname>."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:45
+#, no-c-format
+msgid ""
+"For entities free of validation rules, the runtime performance cost is null."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:48
+#, no-c-format
+msgid ""
+"To disable constraint propagation to DDL, set up <literal>hibernate."
+"validator.apply_to_ddl</literal> to false in the configuration file. Such a "
+"need is very uncommon and not recommended."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:51
+#, no-c-format
+msgid ""
+"To disable pre-entity change validation, set up <literal>hibernate.validator."
+"autoregister_listeners</literal> to false in the configuration file. Such a "
+"need is very uncommon and not recommended."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:54
+#, no-c-format
+msgid ""
+"Check the Hibernate Validator reference documentation for more information."
+msgstr ""
+
+#. Tag: title
+#: Additional_modules.xml:62
+#, no-c-format
+msgid "Hibernate Search"
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:65
+#, no-c-format
+msgid ""
+"Full-text search engines like Apache Lucene are a very powerful technology "
+"to bring free text/efficient queries to applications. Ift suffers several "
+"mismatches when dealing with a object domain model (keeping the index up-to-"
+"date, mismatch between the index structure and the domain model, querying "
+"mismatch...) Hibernate Search indexes your domain model thanks to a few "
+"annotations, takes care of the database / index synchronization and brings "
+"you back regular managed objects from free text queries. <ulink url=\"http://"
+"lucene.apache.org\">Apache Lucene</ulink> underlies Hibernate Search."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:73
+#, no-c-format
+msgid ""
+"Hibernate Search integrates with Hibernate Annotations transparently "
+"provided that hibernate-search.jar is present in the classpath. If you do "
+"not wish to automatically register Hibernate Search event listeners, you can "
+"set <literal>hibernate.search.autoregister_listeners</literal> to false. "
+"Such a need is very uncommon and not recommended."
+msgstr ""
+
+#. Tag: para
+#: Additional_modules.xml:76
+#, no-c-format
+msgid ""
+"Check the Hibernate Search reference documentation for more information."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Author_Group.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Author_Group.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Author_Group.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,29 @@
+# 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: 2009-01-04 22:24+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: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Book_Info.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Book_Info.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Book_Info.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,49 @@
+# 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: 2009-01-04 22:24+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
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate Annotations Reference Guide CP03 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid ""
+"for Use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 3 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:14
+#, no-c-format
+msgid ""
+"This book is a Reference Guide to Hibernate Annotations for JBoss Enterprise "
+"Application Platform 4.3.0 CP03 FP01."
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:22
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:28
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Chapter.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Chapter.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Chapter.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,45 @@
+# 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: 2009-01-04 22:24+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
+#: Chapter.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:11
+#, no-c-format
+msgid "Section 1 Test"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:12 Chapter.xml:19
+#, no-c-format
+msgid "Test of a section"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:18
+#, no-c-format
+msgid "Section 2 Test"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Entity_Beans.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Entity_Beans.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Entity_Beans.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4659 @@
+# 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: 2009-01-04 22:24+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
+#: Entity_Beans.xml:6
+#, no-c-format
+msgid "Entity Beans"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:8
+#, no-c-format
+msgid "Intro"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:9
+#, no-c-format
+msgid ""
+"This section covers EJB 3.0 (aka Java Persistence) entity annotations and "
+"Hibernate-specific extensions."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:15
+#, no-c-format
+msgid "Mapping with EJB3/JPA Annotations"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:16
+#, no-c-format
+msgid ""
+"EJB3 entities are plain POJOs. Actually they represent the exact same "
+"concept as the Hibernate persistent entities. Their mappings are defined "
+"through JDK 5.0 annotations (an XML descriptor syntax for overriding is "
+"defined in the EJB3 specification). Annotations can be split in two "
+"categories, the logical mapping annotations (allowing you to describe the "
+"object model, the class associations, etc.) and the physical mapping "
+"annotations (describing the physical schema, tables, columns, indexes, etc). "
+"We will mix annotations from both categories in the following code examples."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:19
+#, no-c-format
+msgid ""
+"EJB3 annotations are in the <literal>javax.persistence.*</literal> package. "
+"Most JDK 5 compliant IDE (like Eclipse, IntelliJ IDEA and Netbeans) can "
+"autocomplete annotation interfaces and attributes for you (even without a "
+"specific \"EJB3\" module, since EJB3 annotations are plain JDK 5 "
+"annotations)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:22
+#, no-c-format
+msgid ""
+"For more and runnable concrete examples read the JBoss EJB 3.0 tutorial or "
+"review the Hibernate Annotations test suite. Most of the unit tests have "
+"been designed to represent a concrete example and be a source of inspiration."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:26
+#, no-c-format
+msgid "Declaring an entity bean"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:27
+#, no-c-format
+msgid ""
+"Every bound persistent POJO class is an entity bean and is declared using "
+"the <literal>@Entity</literal> annotation (at the class level):"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:31
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_4.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:32
+#, no-c-format
+msgid ""
+"<literal>@Entity</literal> declares the class as an entity bean (i.e. a "
+"persistent POJO class), <literal>@Id</literal> declares the identifier "
+"property of this entity bean. The other mapping declarations are implicit. "
+"This \"configuration by exception\" concept is central to the new EJB3 "
+"specification and a major improvement. The class Flight is mapped to the "
+"Flight table, using the column id as its primary key column."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:35
+#, no-c-format
+msgid ""
+"Depending on whether you annotate fields or methods, the access type used by "
+"Hibernate will be <literal>field</literal> or <literal>property</literal>. "
+"The EJB3 spec requires that you declare annotations on the element type that "
+"will be accessed, that is, the getter method if you use <literal>property</"
+"literal> access, the field if you use <literal>field</literal> access. "
+"Mixing EJB3 annotations in both fields and methods should be avoided. "
+"Hibernate will guess the access type from the position of <literal>@Id</"
+"literal> or <literal>@EmbeddedId</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:39
+#, no-c-format
+msgid "Defining the table"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:40
+#, no-c-format
+msgid ""
+"<literal>@Table</literal> is set at the class level. It allows you to define "
+"the table, catalog, and schema names for your entity bean mapping. If no "
+"<literal>@Table</literal> is defined the default values are used: the "
+"unqualified class name of the entity."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:44
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_5.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:45
+#, no-c-format
+msgid ""
+"The <literal>@Table</literal> element also contains <literal>schema</"
+"literal> and a <literal>catalog</literal> attributes, if they need to be "
+"defined. You can also define unique constraints to the table using the "
+"<literal>@UniqueConstraint</literal> annotation in conjunction with "
+"<literal>@Table</literal> (for a unique constraint bound to a single column, "
+"refer to <literal>@Column</literal>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:49
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_6.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:50
+#, no-c-format
+msgid ""
+"A unique constraint is applied to the tuple month, day. Note that the "
+"<literal>columnNames</literal> array refers to the logical column names."
+msgstr ""
+
+#. Tag: remark
+#: Entity_Beans.xml:53
+#, no-c-format
+msgid ""
+"The logical column name is defined by the Hibernate NamingStrategy "
+"implementation. The default EJB3 naming strategy use the physical column "
+"name as the logical column name. Note that this may be different than the "
+"property name (if the column name is explicit). Unless you override the "
+"NamingStrategy, you shouldn't worry about that."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:57
+#, no-c-format
+msgid "Versioning for optimistic locking"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:58
+#, no-c-format
+msgid ""
+"You can add optimistic locking capability to an entity bean using the "
+"<literal>@Version</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:62
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_7.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:63
+#, no-c-format
+msgid ""
+"The version property will be mapped to the <literal>OPTLOCK</literal> "
+"column, and the entity manager will use it to detect conflicting updates "
+"(preventing lost updates you might otherwise see with the last-commit-wins "
+"strategy)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:66
+#, no-c-format
+msgid ""
+"The version column may be a numeric (the recommended solution) or a "
+"timestamp as per the EJB3 spec. Hibernate supports any kind of type provided "
+"that you define and implement the appropriate <classname>UserVersionType</"
+"classname>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:69
+#, no-c-format
+msgid ""
+"The application must not alter the version number set up by Hibernate in any "
+"way. To artificially increase the version number, check in Hibernate "
+"EntityManager's reference documentation <literal>LockMode.WRITE</literal>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:77
+#, no-c-format
+msgid "Mapping simple properties"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:79
+#, no-c-format
+msgid "Declaring basic property mappings"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:80
+#, no-c-format
+msgid ""
+"Every non-static non-transient property (field or method) of an entity bean "
+"is considered persistent, unless you annotate it as <literal>@Transient</"
+"literal>. Not having an annotation for your property is equivalent to the "
+"appropriate <literal>@Basic</literal> annotation. The <literal>@Basic</"
+"literal> annotation allows you to declare the fetching strategy for a "
+"property:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:84
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:85
+#, no-c-format
+msgid ""
+"<literal>counter</literal>, a transient field, and <literal>lengthInMeter</"
+"literal>, a method annotated as <literal>@Transient</literal>, and will be "
+"ignored by the entity manager. <literal>name</literal>, <literal>length</"
+"literal>, and <literal>firstname</literal> properties are mapped persistent "
+"and eagerly fetched (the default for simple properties). The "
+"<literal>detailedComment</literal> property value will be lazily fetched "
+"from the database once a lazy property of the entity is accessed for the "
+"first time. Usually you don't need to lazy simple properties (not to be "
+"confused with lazy association fetching)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:89
+#, no-c-format
+msgid ""
+"To enable property-level lazy fetching, your classes have to be "
+"instrumented: bytecode is added to the original one to enable such feature – "
+"please refer to the Hibernate reference documentation. If your classes are "
+"not instrumented, property level lazy loading is silently ignored."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:93
+#, no-c-format
+msgid ""
+"The recommended alternative is to use the projection capability of EJB-QL or "
+"Criteria queries."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:96
+#, no-c-format
+msgid ""
+"EJB3 supports property mapping of all basic types supported by Hibernate "
+"(all basic Java types, their respective wrappers and serializable classes). "
+"Hibernate Annotations supports out-of-the-box Enum type mapping either into "
+"a ordinal column (saving the enum ordinal) or a string-based column (saving "
+"the enum string representation): the persistence representation, defaulted "
+"to ordinal, can be overridden through the <literal>@Enumerated</literal> "
+"annotation as shown in the <literal>note</literal> property example."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:99
+#, no-c-format
+msgid ""
+"In core Java APIs, the temporal precision is not defined. When dealing with "
+"temporal data you might want to describe the expected precision in database. "
+"Temporal data can have <literal>DATE</literal>, <literal>TIME</literal>, or "
+"<literal>TIMESTAMP</literal> precision (ie the actual date, only the time, "
+"or both). Use the <literal>@Temporal</literal> annotation to fine tune that."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:102
+#, no-c-format
+msgid ""
+"<literal>@Lob</literal> indicates that the property should be persisted in a "
+"Blob or a Clob depending on the property type: <classname>java.sql.Clob</"
+"classname>, <classname>Character[]</classname>, <classname>char[]</"
+"classname> and java.lang.<classname>String</classname> will be persisted in "
+"a Clob. <classname>java.sql.Blob</classname>, <classname>Byte[]</classname>, "
+"<classname>byte[] </classname>and serializable type will be persisted in a "
+"Blob."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:106
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_9.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:107
+#, no-c-format
+msgid ""
+"If the property type implements <classname>java.io.Serializable</classname> "
+"and is not a basic type, and if the property is not annotated with "
+"<literal>@Lob</literal>, then the Hibernate <literal>serializable</literal> "
+"type is used."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:113
+#, no-c-format
+msgid "Declaring column attributes"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:114
+#, no-c-format
+msgid ""
+"The column(s) used for a property mapping can be defined using the "
+"<literal>@Column</literal> annotation. Use it to override default values "
+"(see the EJB3 specification for more information on the defaults). You can "
+"use this annotation at the property level for properties that are:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:119
+#, no-c-format
+msgid "not annotated at all"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:124
+#, no-c-format
+msgid "annotated with <literal>@Basic</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:129
+#, no-c-format
+msgid "annotated with <literal>@Version</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:134
+#, no-c-format
+msgid "annotated with <literal>@Lob</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:139
+#, no-c-format
+msgid "annotated with <literal>@Temporal</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:144
+#, no-c-format
+msgid ""
+"annotated with <literal>@org.hibernate.annotations.CollectionOfElements</"
+"literal> (for Hibernate only)"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:150
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_10.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:151
+#, no-c-format
+msgid ""
+"The <literal>name</literal> property is mapped to the <literal>flight_name</"
+"literal> column, which is not nullable, has a length of 50 and is not "
+"updatable (making the property immutable)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:154
+#, no-c-format
+msgid ""
+"This annotation can be applied to regular properties as well as "
+"<literal>@Id</literal> or <literal>@Version</literal> properties."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:159
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_11.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:160
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:162
+#, no-c-format
+msgid ""
+"<literal>name</literal> (optional): the column name (default to the property "
+"name)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:167
+#, no-c-format
+msgid ""
+"<literal>unique</literal> (optional): set a unique constraint on this column "
+"or not (default false)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:172
+#, no-c-format
+msgid ""
+"<literal>nullable</literal> (optional): set the column as nullable (default "
+"true)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:177
+#, no-c-format
+msgid ""
+"<literal>insertable</literal> (optional): whether or not the column will be "
+"part of the insert statement (default true)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:182
+#, no-c-format
+msgid ""
+"<literal>updatable</literal> (optional): whether or not the column will be "
+"part of the update statement (default true)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:187
+#, no-c-format
+msgid ""
+"<literal>columnDefinition</literal> (optional): override the sql DDL "
+"fragment for this particular column (non portable)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:192
+#, no-c-format
+msgid ""
+"<literal>table</literal> (optional): define the targeted table (default "
+"primary table)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:197
+#, no-c-format
+msgid ""
+"<literal><literal>length</literal></literal> (optional): column length "
+"(default 255)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:202
+#, no-c-format
+msgid ""
+"<literal><literal>precision</literal></literal> (optional): column decimal "
+"precision (default 0)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:207
+#, no-c-format
+msgid ""
+"<literal><literal>scale</literal></literal> (optional): column decimal scale "
+"if useful (default 0)"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:217
+#, no-c-format
+msgid "Embedded objects (aka components)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:218
+#, no-c-format
+msgid ""
+"It is possible to declare an embedded component inside an entity and even "
+"override its column mapping. Component classes have to be annotated at the "
+"class level with the <literal>@Embeddable</literal> annotation. It is "
+"possible to override the column mapping of an embedded object for a "
+"particular entity using the <literal>@Embedded</literal> and "
+"<literal>@AttributeOverride</literal> annotation in the associated property:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:222
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_12.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:224
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_13.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:226
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_14.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:227
+#, no-c-format
+msgid ""
+"A embeddable object inherits the access type of its owning entity (note that "
+"you can override that using the Hibernate-specific <literal>@AccessType</"
+"literal> annotations (see <xref linkend=\"sect-"
+"Hibernate_Annotations_Reference_Guide-Entity_Beans-"
+"Hibernate_Annotation_Extensions\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:230
+#, no-c-format
+msgid ""
+"The <literal>Person</literal> entity bean has two component properties, "
+"<literal>homeAddress</literal> and <literal>bornIn</literal>. "
+"<literal>homeAddress</literal> property has not been annotated, but "
+"Hibernate will guess that it is a persistent component by looking for the "
+"<literal>@Embeddable</literal> annotation in the Address class. We also "
+"override the mapping of a column name (to <literal>bornCountryName</"
+"literal>) with the <literal>@Embedded</literal> and "
+"<literal>@AttributeOverride </literal>annotations for each mapped attribute "
+"of <literal>Country</literal>. As you can see, <literal>Country </literal>is "
+"also a nested component of <literal>Address</literal>, again using auto-"
+"detection by Hibernate and EJB3 defaults. Overriding columns of embedded "
+"objects of embedded objects is currently not supported in the EJB3 spec, "
+"however, Hibernate Annotations supports it through dotted expressions."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:235
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_15.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:235
+#, no-c-format
+msgid ""
+"Hibernate Annotations supports one more feature that is not explicitly "
+"supported by the EJB3 specification: you can annotate a embedded object with "
+"the <literal>@MappedSuperclass</literal> annotation to make the superclass "
+"properties persistent (see <literal>@MappedSuperclass</literal> for more "
+"information)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:238
+#, no-c-format
+msgid ""
+"While not supported by the EJB3 specification, Hibernate Annotations allows "
+"you to use association annotations in an embeddable object (ie "
+"<literal>@*ToOne</literal> nor <literal>@*ToMany</literal>). To override the "
+"association columns you can use <literal>@AssociationOverride</literal>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:241
+#, no-c-format
+msgid ""
+"If you want to have the same embeddable object type twice in the same "
+"entity, the column name defaulting will not work: at least one of the "
+"columns will have to be explicit. Hibernate goes beyond the EJB3 spec and "
+"allows you to enhance the defaulting mechanism through the "
+"<classname>NamingStrategy</classname>. "
+"<classname>DefaultComponentSafeNamingStrategy</classname> is a small "
+"improvement over the default EJB3NamingStrategy that allows embedded objects "
+"to be defaulted even if used twice in the same entity."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:247
+#, no-c-format
+msgid "Non-annotated property defaults"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:248
+#, no-c-format
+msgid "If a property is not annotated, the following rules apply:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:253
+#, no-c-format
+msgid ""
+"If the property is of a single type, it is mapped as <literal>@Basic</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:256
+#, no-c-format
+msgid ""
+"Otherwise, if the type of the property is annotated as <literal>@Embeddable</"
+"literal>, it is mapped as <literal>@Embedded</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:259
+#, no-c-format
+msgid ""
+"Otherwise, if the type of the property is Serializable, it is mapped as "
+"<literal>@Basic</literal> in a column holding the object in its serialized "
+"version"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:262
+#, no-c-format
+msgid ""
+"Otherwise, if the type of the property is <literal>java.sql.Clob</literal> "
+"or <literal>java.sql.Blob</literal>, it is mapped as <literal>@Lob</literal> "
+"with the appropriate LobType"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:270
+#, no-c-format
+msgid "Mapping identifier properties"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:271
+#, no-c-format
+msgid ""
+"The <literal>@Id</literal> annotation lets you define which property is the "
+"identifier of your entity bean. This property can be set by the application "
+"itself or be generated by Hibernate (preferred). You can define the "
+"identifier generation strategy thanks to the <literal>@GeneratedValue</"
+"literal> annotation:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:276
+#, no-c-format
+msgid "AUTO>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:277
+#, no-c-format
+msgid "identity column, sequence or table depending on the underlying DB"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:280
+#, no-c-format
+msgid "TABLE>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:281
+#, no-c-format
+msgid "table holding the id"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:284
+#, no-c-format
+msgid "IDENTITY>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:285
+#, no-c-format
+msgid "identity column"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:288
+#, no-c-format
+msgid "SEQUENCE>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:289
+#, no-c-format
+msgid "sequence"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:292
+#, no-c-format
+msgid ""
+"Hibernate provides more id generators than the basic EJB3 ones. Check <xref "
+"linkend=\"sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-"
+"Hibernate_Annotation_Extensions\"/> for more information."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:295
+#, no-c-format
+msgid ""
+"The following example shows a sequence generator using the "
+"<literal>SEQ_STORE</literal> configuration (see below)"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:299
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_16.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:300
+#, no-c-format
+msgid "The next example uses the identity generator:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:304
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_17.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:305
+#, no-c-format
+msgid ""
+"The <literal>AUTO</literal> generator is the preferred type for portable "
+"applications (across several DB vendors). The identifier generation "
+"configuration can be shared for several <literal>@Id</literal> mappings with "
+"the generator attribute. There are several configurations available through "
+"<literal>@SequenceGenerator</literal> and <literal>@TableGenerator</"
+"literal>. The scope of a generator can be the application or the class. "
+"Class-defined generators are not visible outside the class and can override "
+"application level generators. Application-level generators are defined at "
+"XML level (see <xref linkend=\"chap-Hibernate_Annotations_Reference_Guide-"
+"Overriding_metadata_through_XML\"/>):"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:309
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_18.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:310
+#, no-c-format
+msgid ""
+"If JPA XML (like <filename>META-INF/orm.xml</filename>) is used to define "
+"the generators, <literal>EMP_GEN</literal> and <literal>SEQ_GEN</literal> "
+"are application level generators. <literal>EMP_GEN</literal> defines a table "
+"based id generator using the hilo algorithm with a <literal>max_lo</literal> "
+"of 20. The hi value is kept in a <literal>table</literal> "
+"\"<literal>GENERATOR_TABLE</literal>\". The information is kept in a row "
+"where <literal>pkColumnName</literal> \"key\" is equals to "
+"<literal>pkColumnValue</literal> \"<literal>EMP</literal>\" and column "
+"<literal>valueColumnName</literal> \"<literal>hi</literal>\" contains the "
+"the next high value used."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:313
+#, no-c-format
+msgid ""
+"<literal>SEQ_GEN</literal> defines a sequence generator using a sequence "
+"named <literal>my_sequence</literal>. The allocation size used for this "
+"sequence based hilo algorithm is 20. Note that this version of Hibernate "
+"Annotations does not handle <literal>initialValue</literal> in the sequence "
+"generator. The default allocation size is 50, so if you want to use a "
+"sequence and pickup the value each time, you must set the allocation size to "
+"1."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:317
+#, no-c-format
+msgid ""
+"Package level definition is no longer supported by the EJB 3.0 "
+"specification. However, you can use the <literal>@GenericGenerator</literal> "
+"at the package level (see <xref linkend=\"sect-"
+"Hibernate_Annotations_Reference_Guide-Hibernate_Annotation_Extensions-"
+"Identifier\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:321
+#, no-c-format
+msgid ""
+"The next example shows the definition of a sequence generator in a class "
+"scope:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:325
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_19.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:326
+#, no-c-format
+msgid ""
+"This class will use a sequence named my_sequence and the SEQ_STORE generator "
+"is not visible in other classes. Note that you can check the Hibernate "
+"Annotations tests in the <package>org.hibernate.test.annotations.id</"
+"package> package for more examples."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:329
+#, no-c-format
+msgid "You can define a composite primary key through several syntaxes:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:334
+#, no-c-format
+msgid ""
+"annotate the component property as <literal>@Id</literal> and make the "
+"component class <literal>@Embeddable</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:337
+#, no-c-format
+msgid "annotate the component property as <literal>@EmbeddedId</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:340
+#, no-c-format
+msgid ""
+"annotate the class as <literal>@IdClass</literal> and annotate each property "
+"of the entity involved in the primary key with <literal>@Id</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:343
+#, no-c-format
+msgid ""
+"While quite common to the EJB2 developer, <literal>@IdClass</literal> is "
+"likely new for Hibernate users. The composite primary key class corresponds "
+"to multiple fields or properties of the entity class, and the names of "
+"primary key fields or properties in the primary key class and those of the "
+"entity class must match and their types must be the same. Let's look at an "
+"example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:347
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_20.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:348
+#, no-c-format
+msgid ""
+"As you may have seen, <literal>@IdClass</literal> points to the "
+"corresponding primary key class."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:351
+#, no-c-format
+msgid ""
+"While not supported by the EJB3 specification, Hibernate allows you to "
+"define associations inside a composite identifier. Simply use the regular "
+"annotations for that."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:355
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_21.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:359
+#, no-c-format
+msgid "Mapping inheritance"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:360
+#, no-c-format
+msgid "EJB3 supports the three types of inheritance:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:365
+#, no-c-format
+msgid ""
+"Table per Class Strategy: the <literal>&lt;union-class&gt;</literal> element "
+"in Hibernate"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:368
+#, no-c-format
+msgid ""
+"Single Table per Class Hierarchy Strategy: the <literal>&lt;subclass&gt;</"
+"literal> element in Hibernate"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:371
+#, no-c-format
+msgid ""
+"Joined Subclass Strategy: the <literal>&lt;joined-subclass&gt;</literal> "
+"element in Hibernate"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:374
+#, no-c-format
+msgid ""
+"The chosen strategy is declared at the class level of the top level entity "
+"in the hierarchy using the <literal>@Inheritance</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:378
+#, no-c-format
+msgid "Annotating interfaces is currently not supported."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:383
+#, no-c-format
+msgid "Table per class"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:384
+#, no-c-format
+msgid ""
+"This strategy has many drawbacks (esp. with polymorphic queries and "
+"associations) explained in the EJB3 spec, the Hibernate reference "
+"documentation, <citetitle>Hibernate in Action</citetitle>, and many other "
+"places. Hibernate works around most of them implementing this strategy using "
+"<literal>SQL UNION</literal> queries. It is commonly used for the top level "
+"of an inheritance hierarchy:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:388
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_21a.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:389
+#, no-c-format
+msgid ""
+"This strategy supports one-to-many associations provided that they are "
+"bidirectional. This strategy does not support the <literal>IDENTITY</"
+"literal> generator strategy: the id has to be shared across several tables. "
+"Consequently, when using this strategy, you should not use <literal>AUTO </"
+"literal>nor <literal>IDENTITY</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:395
+#, no-c-format
+msgid "Single table per class hierarchy"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:396
+#, no-c-format
+msgid ""
+"All properties of all super- and subclasses are mapped into the same table, "
+"instances are distinguished by a special discriminator column:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:400
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_22.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:401
+#, no-c-format
+msgid ""
+"<classname>Plane</classname> is the superclass, it defines the inheritance "
+"strategy <literal>InheritanceType.SINGLE_TABLE</literal>. It also defines "
+"the discriminator column through the <literal>@DiscriminatorColumn</literal> "
+"annotation. A discriminator column can also define the discriminator type. "
+"Finally, the <literal>@DiscriminatorValue</literal> annotation defines the "
+"value used to differentiate a class in the hierarchy. All of these "
+"attributes have sensible default values. The default name of the "
+"discriminator column is <literal>DTYPE</literal>. The default discriminator "
+"value is the entity name (as defined in <literal>@Entity.name</literal>) for "
+"DiscriminatorType.STRING. <classname>A320</classname> is a subclass; you "
+"only have to define discriminator value if you don't want to use the default "
+"value. The strategy and the discriminator type are implicit."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:404
+#, no-c-format
+msgid ""
+"<literal>@Inheritance</literal> and <literal>@DiscriminatorColumn</literal> "
+"should only be defined at the top of the entity hierarchy."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:410
+#, no-c-format
+msgid "Joined subclasses"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:411
+#, no-c-format
+msgid ""
+"The<literal> @PrimaryKeyJoinColumn</literal> and "
+"<literal>@PrimaryKeyJoinColumns</literal> annotations define the primary key"
+"(s) of the joined subclass table:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:415
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_23.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:416
+#, no-c-format
+msgid ""
+"All of the above entities use the <literal>JOINED</literal> strategy, the "
+"<literal>Ferry</literal> table is joined with the <literal>Boat</literal> "
+"table using the same primary key names. The <literal>AmericaCupClass</"
+"literal> table is joined with <literal>Boat</literal> using the join "
+"condition <code>Boat.id = AmericaCupClass.BOAT_ID</code>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:422
+#, no-c-format
+msgid "Inherit properties from superclasses"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:423
+#, no-c-format
+msgid ""
+"This is sometimes useful to share common properties through a technical or a "
+"business superclass without including it as a regular mapped entity (ie no "
+"specific table for this entity). For that purpose you can map them as "
+"<literal>@MappedSuperclass</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:427
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_24.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:428
+#, no-c-format
+msgid ""
+"In database, this hierarchy will be represented as an <literal>Order</"
+"literal> table having the <literal>id</literal>, <literal>lastUpdate</"
+"literal> and <literal>lastUpdater</literal> columns. The embedded superclass "
+"property mappings are copied into their entity subclasses. Remember that the "
+"embeddable superclass is not the root of the hierarchy though."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:432
+#, no-c-format
+msgid ""
+"Properties from superclasses not mapped as <literal>@MappedSuperclass</"
+"literal> are ignored."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:437
+#, no-c-format
+msgid ""
+"The access type (field or methods), is inherited from the root entity, "
+"unless you use the Hibernate annotation <literal>@AccessType</literal>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:442
+#, no-c-format
+msgid ""
+"The same notion can be applied to <literal>@Embeddable</literal> objects to "
+"persist properties from their superclasses. You also need to use "
+"<literal>@MappedSuperclass</literal> to do that (this should not be "
+"considered as a standard EJB3 feature though)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:447
+#, no-c-format
+msgid ""
+"It is allowed to mark a class as <literal>@MappedSuperclass</literal> in the "
+"middle of the mapped inheritance hierarchy."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:452
+#, no-c-format
+msgid ""
+"Any class in the hierarchy non annotated with <literal>@MappedSuperclass</"
+"literal> nor <literal>@Entity</literal> will be ignored."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:456
+#, no-c-format
+msgid ""
+"You can override columns defined in entity superclasses at the root entity "
+"level using the <literal>@AttributeOverride</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:460
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_25.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:461
+#, no-c-format
+msgid ""
+"The <literal>altitude</literal> property will be persisted in an "
+"<literal>fld_altitude</literal> column of table <literal>Plane</literal> and "
+"the propulsion association will be materialized in a "
+"<literal>fld_propulsion_fk</literal> foreign key column."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:464
+#, no-c-format
+msgid ""
+"You can define <literal>@AttributeOverride</literal>(s) and "
+"<literal>@AssociationOverride</literal>(s) on <literal>@Entity</literal> "
+"classes, <literal>@MappedSuperclass</literal> classes and properties "
+"pointing to an <literal>@Embeddable</literal> object."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:472
+#, no-c-format
+msgid "Mapping entity bean associations/relationships"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:474
+#, no-c-format
+msgid "One-to-one"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:475
+#, no-c-format
+msgid ""
+"You can associate entity beans through a one-to-one relationship using "
+"<literal>@OneToOne</literal>. There are three cases for one-to-one "
+"associations: either the associated entities share the same primary key "
+"values, a foreign key is held by one of the entities (note that this FK "
+"column in the database should be constrained unique to simulate one-to-one "
+"multiplicity), or an association table is used to store the link between the "
+"2 entities (a unique constraint has to be defined on each fk to ensure the "
+"one-to-one multiplicity)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:478
+#, no-c-format
+msgid "First, we map a real one-to-one association using shared primary keys:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:482
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_26.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:484
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_27.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:485
+#, no-c-format
+msgid ""
+"The one-to-one is marked as true by using the "
+"<literal>@PrimaryKeyJoinColumn</literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:488
+#, no-c-format
+msgid ""
+"In the following example, the associated entities are linked through a "
+"foreign key column:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:492
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_28.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:493
+#, no-c-format
+msgid ""
+"A <classname>Customer</classname> is linked to a <classname>Passport</"
+"classname>, with a foreign key column named <literal>passport_fk</literal> "
+"in the <literal>Customer</literal> table. The join column is declared with "
+"the <literal>@JoinColumn</literal> annotation which looks like the "
+"<literal>@Column</literal> annotation. It has one more parameters named "
+"<literal>referencedColumnName</literal>. This parameter declares the column "
+"in the targeted entity that will be used to the join. Note that when using "
+"<literal><literal>referencedColumnName</literal></literal> to a non primary "
+"key column, the associated class has to be <classname>Serializable</"
+"classname>. Also note that the <literal><literal>referencedColumnName</"
+"literal></literal> to a non primary key column has to be mapped to a "
+"property having a single column (other cases might not work)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:496
+#, no-c-format
+msgid ""
+"The association may be bidirectional. In a bidirectional relationship, one "
+"of the sides (and only one) has to be the owner: the owner is responsible "
+"for the association column(s) update. To declare a side as <emphasis>not</"
+"emphasis> responsible for the relationship, the attribute <literal>mappedBy</"
+"literal> is used. <literal>mappedBy</literal> refers to the property name of "
+"the association on the owner side. In our case, this is <literal>passport</"
+"literal>. As you can see, you don't have to (must not) declare the join "
+"column since it has already been declared on the owners side."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:499
+#, no-c-format
+msgid ""
+"If no <literal>@JoinColumn</literal> is declared on the owner side, the "
+"defaults apply. A join column(s) will be created in the owner table and its "
+"name will be the concatenation of the name of the relationship in the owner "
+"side, <keycap>_</keycap> (underscore), and the name of the primary key column"
+"(s) in the owned side. In this example <literal>passport_id</literal> "
+"because the property name is <literal>passport</literal> and the column id "
+"of <literal>Passport </literal>is <literal>id</literal>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:502
+#, no-c-format
+msgid "The third possibility (using an association table) is very exotic."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:506
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_29.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:507
+#, no-c-format
+msgid ""
+"A <classname>Customer</classname> is linked to a <classname>Passport</"
+"classname> through a association table named <literal>CustomerPassports</"
+"literal> ; this association table has a foreign key column named "
+"<literal>passport_fk</literal> pointing to the <literal>Passport</literal> "
+"table (materialized by the <literal>inverseJoinColumn</literal> and a "
+"foreign key column named <literal>customer_fk</literal> pointing to the "
+"<literal>Customer</literal> table materialized by the <literal>joinColumns</"
+"literal> attribute."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:510
+#, no-c-format
+msgid ""
+"You must declare the join table name and the join columns explicitly in such "
+"a mapping."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:516
+#, no-c-format
+msgid "Many-to-one"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:517
+#, no-c-format
+msgid ""
+"Many-to-one associations are declared at the property level with the "
+"annotation <literal>@ManyToOne</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:521
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_30.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:522
+#, no-c-format
+msgid ""
+"The <literal>@JoinColumn</literal> attribute is optional, the default value"
+"(s) is like in one-to-one, the concatenation of the name of the relationship "
+"in the owner side, <keycap>_</keycap> (underscore), and the name of the "
+"primary key column in the owned side. In this example <literal>company_id</"
+"literal> because the property name is <literal>company</literal> and the "
+"column id of Company is <literal>id</literal>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:525
+#, no-c-format
+msgid ""
+"<literal>@ManyToOne</literal> has a parameter named <literal>targetEntity</"
+"literal> which describes the target entity name. You usually don't need this "
+"parameter since the default value (the type of the property that stores the "
+"association) is good in almost all cases. However this is useful when you "
+"want to use interfaces as the return type instead of the regular entity."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:529
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_31.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:530
+#, no-c-format
+msgid ""
+"You can also map a many-to-one association through an association table. "
+"This association table described by the <literal>@JoinTable</literal> "
+"annotation will contains a foreign key referencing back the entity table "
+"(through <literal>@JoinTable.joinColumns</literal>) and a a foreign key "
+"referencing the target entity table (through <literal>@JoinTable."
+"inverseJoinColumns</literal>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:534
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_32.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:538
+#, no-c-format
+msgid "Collections"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:540
+#, no-c-format
+msgid "Overview"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:541
+#, no-c-format
+msgid ""
+"You can map <classname>Collection</classname>, <literal>List</literal> (ie "
+"ordered lists, not indexed lists), <literal>Map</literal> and "
+"<classname>Set</classname>. The EJB3 specification describes how to map an "
+"ordered list (that is, a list ordered at load time) using <literal>@javax."
+"persistence.OrderBy</literal> annotation: this annotation takes into "
+"parameter a list of comma separated (target entity) properties to order the "
+"collection by (for example, <code>firstname asc, age desc</code>), if the "
+"string is empty, the collection will be ordered by id. For true indexed "
+"collections, please refer to the <xref linkend=\"sect-"
+"Hibernate_Annotations_Reference_Guide-Entity_Beans-"
+"Hibernate_Annotation_Extensions\"/>. EJB3 allows you to map Maps using as a "
+"key one of the target entity property using <literal>@MapKey(name="
+"\"myProperty\")</literal> (myProperty is a property name in the target "
+"entity). When using <literal>@MapKey</literal> (without property name), the "
+"target entity primary key is used. The map key uses the same column as the "
+"property pointed out: there is no additional column defined to hold the map "
+"key, and it does make sense since the map key actually represents a target "
+"property. Be aware that once loaded, the key is no longer kept in sync with "
+"the property, in other words, if you change the property value, the key will "
+"not change automatically in your Java model (for true map support please "
+"refers to <xref linkend=\"sect-Hibernate_Annotations_Reference_Guide-"
+"Entity_Beans-Hibernate_Annotation_Extensions\"/>). Many people confuse "
+"<literal>&lt;map&gt;</literal> capabilities and <literal>@MapKey</literal> "
+"ones. These are two different features. <literal>@MapKey</literal> still has "
+"some limitations, please check the forum or the JIRA tracking system for "
+"more information."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:544
+#, no-c-format
+msgid "Hibernate has several notions of collections."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:548
+#, no-c-format
+msgid "Collections semantics"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:555
+#, no-c-format
+msgid "Semantic"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:558
+#, no-c-format
+msgid "java representation"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:561
+#, no-c-format
+msgid "annotations"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:568
+#, no-c-format
+msgid "Bag semantic"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:571 Entity_Beans.xml:582
+#, no-c-format
+msgid "java.util.List, java.util.Collection"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:574 Entity_Beans.xml:607
+#, no-c-format
+msgid ""
+"@org.hibernate.annotations.CollectionOfElements or @OneToMany or @ManyToMany"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:579
+#, no-c-format
+msgid "Bag semantic with primary key (without the limitations of Bag semantic)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:585
+#, no-c-format
+msgid ""
+"(@org.hibernate.annotations.CollectionOfElements or @OneToMany or "
+"@ManyToMany) and @CollectionId"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:590
+#, no-c-format
+msgid "List semantic"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:593
+#, no-c-format
+msgid "java.util.List"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:596
+#, no-c-format
+msgid ""
+"(@org.hibernate.annotations.CollectionOfElements or @OneToMany or "
+"@ManyToMany) and @org.hibernate.annotations.IndexColumn"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:601
+#, no-c-format
+msgid "Set semantic"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:604
+#, no-c-format
+msgid "java.util.Set"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:612
+#, no-c-format
+msgid "Map semantic"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:615
+#, no-c-format
+msgid "java.util.Map"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:618
+#, no-c-format
+msgid ""
+"(@org.hibernate.annotations.CollectionOfElements or @OneToMany or "
+"@ManyToMany) and (nothing or @org.hibernate.annotations.MapKey/"
+"MapKeyManyToMany for true map support, OR @javax.persistence.MapKey"
+msgstr ""
+
+#. Tag: remark
+#: Entity_Beans.xml:625
+#, no-c-format
+msgid ""
+"So specifically, java.util.List collections without @org.hibernate."
+"annotations.IndexColumn are going to be considered as bags."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:626
+#, no-c-format
+msgid ""
+"Collection of primitive, core type or embedded objects is not supported by "
+"the EJB3 specification. Hibernate Annotations allows them however (see <xref "
+"linkend=\"sect-Hibernate_Annotations_Reference_Guide-Entity_Beans-"
+"Hibernate_Annotation_Extensions\"/>)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:630
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_33.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:631
+#, no-c-format
+msgid ""
+"So <literal>City</literal> has a collection of <literal>Street</literal>s "
+"that are ordered by <literal>streetName</literal> (of <literal>Street</"
+"literal>) when the collection is loaded. <literal>Software</literal> has a "
+"map of <literal>Version</literal>s which key is the <literal>Version</"
+"literal> <literal>codeName</literal>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:634
+#, no-c-format
+msgid ""
+"Unless the collection is a generic, you will have to define "
+"<literal>targetEntity</literal>. This is an annotation attribute that take "
+"the target entity class as a value."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:640
+#, no-c-format
+msgid "One-to-many"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:641
+#, no-c-format
+msgid ""
+"One-to-many associations are declared at the property level with the "
+"annotation <literal>@OneToMany</literal>. One to many associations may be "
+"bidirectional."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:645
+#, no-c-format
+msgid "Bidirectional"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:646
+#, no-c-format
+msgid ""
+"Since many-to-one are (almost) always the owner side of a bidirectional "
+"relationship in the EJB3 spec, the one-to-many association is annotated by "
+"<literal>@OneToMany( mappedBy=... )</literal>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:650
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_34.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:651
+#, no-c-format
+msgid ""
+"<classname>Troop</classname> has a bidirectional one-to-many relationship "
+"with <literal>Soldier</literal> through the <literal>troop</literal> "
+"property. You don't have to (must not) define any physical mapping in the "
+"<literal>mappedBy</literal> side."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:654
+#, no-c-format
+msgid ""
+"To map a bidirectional one-to-many, with the one-to-many side as the owning "
+"side, you have to remove the <literal>mappedBy</literal> element and set the "
+"many-to-one <literal>@JoinColumn</literal> as insertable and updatable to "
+"false. This solution is obviously not optimized and will produce some "
+"additional UPDATE statements."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:658
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_35.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:662
+#, no-c-format
+msgid "Unidirectional"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:663
+#, no-c-format
+msgid ""
+"A unidirectional one-to-many using a foreign key column in the owned entity "
+"is not that common and not really recommended. We strongly advise you to use "
+"a join table for this kind of association (as explained in the next "
+"section). This kind of association is described through a "
+"<literal>@JoinColumn</literal>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:667
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_36.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:668
+#, no-c-format
+msgid ""
+"<literal>Customer</literal> describes a unidirectional relationship with "
+"<literal>Ticket</literal> using the join column <literal>CUST_ID</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:674
+#, no-c-format
+msgid "Unidirectional with join table"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:675
+#, no-c-format
+msgid ""
+"A unidirectional one-to-many with join table is much preferred. This "
+"association is described through an <literal>@JoinTable</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:679
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_37.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:680
+#, no-c-format
+msgid ""
+"<literal>Trainer</literal> describes a unidirectional relationship with "
+"<classname>Monkey</classname> using the join table "
+"<classname>TrainedMonkeys</classname>, with a foreign key "
+"<literal>trainer_id</literal> to <literal>Trainer</literal> "
+"(<literal>joinColumns</literal>) and a foreign key <literal>monkey_id</"
+"literal> to <literal>Monkey</literal> (<literal>inversejoinColumns</"
+"literal>)."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:686
+#, no-c-format
+msgid "Defaults"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:687
+#, no-c-format
+msgid ""
+"Without describing any physical mapping, a unidirectional one-to-many with "
+"join table is used. The table name is the concatenation of the owner table "
+"name, <keycap>_</keycap>, and the other side table name. The foreign key name"
+"(s) referencing the owner table is the concatenation of the owner table, "
+"<keycap>_</keycap>, and the owner primary key column(s) name. The foreign "
+"key name(s) referencing the other side is the concatenation of the owner "
+"property name, <keycap>_</keycap>, and the other side primary key column(s) "
+"name. A unique constraint is added to the foreign key referencing the other "
+"side table to reflect the one-to-many."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:691
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_38.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:692
+#, no-c-format
+msgid ""
+"<classname>Trainer</classname> describes a unidirectional relationship with "
+"<classname>Tiger</classname> using the join table <literal>Trainer_Tiger</"
+"literal>, with a foreign key <literal>trainer_id</literal> to "
+"<literal>Trainer</literal> (table name, <keycap>_</keycap>, trainer id) and "
+"a foreign key <literal>trainedTigers_id</literal> to <literal>Monkey</"
+"literal> (property name, <keycap>_</keycap>, Tiger primary column)."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:700
+#, no-c-format
+msgid "Many-to-many"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:702
+#, no-c-format
+msgid "Definition"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:703
+#, no-c-format
+msgid ""
+"A many-to-many association is defined logically using the "
+"<literal>@ManyToMany</literal> annotation. You also have to describe the "
+"association table and the join conditions using the <literal>@JoinTable</"
+"literal> annotation. If the association is bidirectional, one side has to be "
+"the owner and one side has to be the inverse end (ie. it will be ignored "
+"when updating the relationship values in the association table):"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:707
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_39.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:709
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_40.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:710
+#, no-c-format
+msgid ""
+"We've already shown the many declarations and the detailed attributes for "
+"associations. We'll go deeper in the <literal>@JoinTable</literal> "
+"description, it defines a <literal>name</literal>, an array of join columns "
+"(an array in annotation is defined using { A, B, C }), and an array of "
+"inverse join columns. The latter ones are the columns of the association "
+"table which refer to the <classname>Employee</classname> primary key (the "
+"\"other side\")."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:713
+#, no-c-format
+msgid ""
+"As seen previously, the other side don't have to (must not) describe the "
+"physical mapping: a simple <literal>mappedBy</literal> argument containing "
+"the owner side property name bind the two."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:719
+#, no-c-format
+msgid "Default values"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:720
+#, no-c-format
+msgid ""
+"As any other annotations, most values are guessed in a many-to-many "
+"relationship. Without describing any physical mapping in a unidirectional "
+"many-to-many the following rules applied. The table name is the "
+"concatenation of the owner table name, <keycap>_</keycap> and the other side "
+"table name. The foreign key name(s) referencing the owner table is the "
+"concatenation of the owner table name, <keycap>_</keycap> and the owner "
+"primary key column(s). The foreign key name(s) referencing the other side is "
+"the concatenation of the owner property name, <keycap>_</keycap>, and the "
+"other side primary key column(s). These are the same rules used for a "
+"unidirectional one-to-many relationship."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:724
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_41.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:725
+#, no-c-format
+msgid ""
+"A <literal>Store_City</literal> is used as the join table. The "
+"<literal>Store_id</literal> column is a foreign key to the <literal>Store</"
+"literal> table. The <literal>implantedIn_id</literal> column is a foreign "
+"key to the <literal>City</literal> table."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:728
+#, no-c-format
+msgid ""
+"Without describing any physical mapping in a bidirectional many-to-many the "
+"following rules applied. The table name is the concatenation of the owner "
+"table name, <keycap>_</keycap> and the other side table name. The foreign "
+"key name(s) referencing the owner table is the concatenation of the other "
+"side property name, <keycap>_</keycap>, and the owner primary key column(s). "
+"The foreign key name(s) referencing the other side is the concatenation of "
+"the owner property name, <keycap>_</keycap>, and the other side primary key "
+"column(s). These are the same rules used for a unidirectional one-to-many "
+"relationship."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:732
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_42.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:733
+#, no-c-format
+msgid ""
+"A <literal>Store_Customer</literal> is used as the join table. The "
+"<literal>stores_id</literal> column is a foreign key to the <literal>Store</"
+"literal> table. The <literal>customers_id</literal> column is a foreign key "
+"to the <literal>Customer</literal> table."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:743
+#, no-c-format
+msgid "Transitive persistence with cascading"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:744
+#, no-c-format
+msgid ""
+"You probably have noticed the <literal>cascade</literal> attribute taking an "
+"array of <classname>CascadeType</classname> as a value. The cascade concept "
+"in EJB3 is very is similar to the transitive persistence and cascading of "
+"operations in Hibernate, but with slightly different semantics and cascading "
+"types:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:749
+#, no-c-format
+msgid ""
+"<literal>CascadeType.PERSIST</literal>: cascades the persist (create) "
+"operation to associated entities persist() is called or if the entity is "
+"managed"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:752
+#, no-c-format
+msgid ""
+"<literal>CascadeType.MERGE</literal>: cascades the merge operation to "
+"associated entities if merge() is called or if the entity is managed"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:755
+#, no-c-format
+msgid ""
+"<literal>CascadeType.REMOVE</literal>: cascades the remove operation to "
+"associated entities if delete() is called"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:758
+#, no-c-format
+msgid ""
+"<literal>CascadeType.REFRESH</literal>: cascades the refresh operation to "
+"associated entities if refresh() is called"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:761
+#, no-c-format
+msgid "<literal>CascadeType.ALL</literal>: all of the above"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:765
+#, no-c-format
+msgid ""
+"CascadeType.ALL also covers Hibernate-specific operations like save-update, "
+"lock etc... Check <xref linkend=\"sect-Hibernate_Annotations_Reference_Guide-"
+"Hibernate_Annotation_Extensions-Cascade\"/> for more information."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:769
+#, no-c-format
+msgid ""
+"Please refer to the chapter 6.3 of the EJB3 specification for more "
+"information on cascading and create/merge semantics."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:775
+#, no-c-format
+msgid "Association fetching"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:776
+#, no-c-format
+msgid ""
+"You have the ability to either eagerly or lazily fetch associated entities. "
+"The <literal>fetch</literal> parameter can be set to <literal>FetchType."
+"LAZY</literal> or <literal>FetchType.EAGER</literal>. <literal>EAGER</"
+"literal> will try to use an outer join select to retrieve the associated "
+"object, while <literal>LAZY</literal> will only trigger a select when the "
+"associated object is accessed for the first time. <literal>@OneToMany</"
+"literal> and <literal>@ManyToMany</literal> associations are defaulted to "
+"<literal>LAZY</literal> and <literal>@OneToOne</literal> and "
+"<literal>@ManyToOne</literal> are defaulted to <literal>EAGER</literal>. For "
+"more information about static fetching, check <xref linkend=\"sect-"
+"Hibernate_Annotations_Reference_Guide-Single_Association_related_annotations-"
+"Lazy_options_and_fetching_modes\"/>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:779
+#, no-c-format
+msgid ""
+"The recommended approach is to use <literal>LAZY</literal> on all static "
+"fetching definitions and override this choice dynamically through JPA-QL. "
+"JPA-QL has a <literal>fetch</literal> keyword that allows you to override "
+"laziness when doing a particular query. This is very useful to improve "
+"performance and is decided on a use-case-to-use-case basis."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:787
+#, no-c-format
+msgid "Mapping composite primary and foreign keys"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:788
+#, no-c-format
+msgid ""
+"Composite primary keys use a embedded class as the primary key "
+"representation, so you'd use the <literal>@Id</literal> and "
+"<literal>@Embeddable</literal> annotations. Alternatively, you can use the "
+"<literal>@EmbeddedId</literal> annotation. Note that the dependent class has "
+"to be serializable and implements <methodname>equals()</methodname>/"
+"<methodname>hashCode()</methodname>. You can also use <literal>@IdClass</"
+"literal> as described in <xref linkend=\"sect-"
+"Hibernate_Annotations_Reference_Guide-Mapping_with_EJB3JPA_Annotations-"
+"Mapping_identifier_properties\"/>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:792
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_43.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:793
+#, no-c-format
+msgid "or alternatively"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:797
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_44.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:798
+#, no-c-format
+msgid ""
+"<literal>@Embeddable</literal> inherits the access type of its owning entity "
+"unless the Hibernate-specific annotation <literal>@AccessType</literal> is "
+"used. Composite foreign keys (if not using the default sensitive values) are "
+"defined on associations using the <literal>@JoinColumns</literal> element, "
+"which is basically an array of <literal>@JoinColumn</literal>. It is "
+"considered a good practice to express <literal>referencedColumnNames</"
+"literal> explicitly. Otherwise, Hibernate will suppose that you use the same "
+"order of columns as in the primary key declaration."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:802
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_45.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:804
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_46.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:806
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_47.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:807
+#, no-c-format
+msgid "Note the explicit usage of the <literal>referencedColumnName</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:813
+#, no-c-format
+msgid "Mapping secondary tables"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:814
+#, no-c-format
+msgid ""
+"You can map a single entity bean to several tables using the "
+"<literal>@SecondaryTable</literal> or <literal>@SecondaryTables</literal> "
+"class level annotations. To express that a column is in a particular table, "
+"use the <literal>table</literal> parameter of <literal>@Column</literal> or "
+"<literal>@JoinColumn</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:818
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_48.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:819
+#, no-c-format
+msgid ""
+"In this example, <literal>name</literal> will be in <literal>MainCat</"
+"literal>. <literal>storyPart1</literal> will be in <literal>Cat1</literal> "
+"and <literal>storyPart2</literal> will be in <literal>Cat2</literal>. "
+"<literal>Cat1</literal> will be joined to <literal>MainCat</literal> using "
+"the <literal>cat_id</literal> as a foreign key, and <literal>Cat2</literal> "
+"using <literal>id</literal> (ie the same column name, the <literal>MainCat</"
+"literal> id column has). Plus a unique constraint on <literal>storyPart2</"
+"literal> has been set."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:822
+#, no-c-format
+msgid ""
+"Check out the <citetitle>JBoss EJB 3 tutorial</citetitle> or the Hibernate "
+"Annotations unit test suite for more examples."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:830
+#, no-c-format
+msgid "Mapping Queries"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:832
+#, no-c-format
+msgid "Mapping JPAQL/HQL queries"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:833
+#, no-c-format
+msgid ""
+"You can map EJBQL/HQL queries using annotations. <literal>@NamedQuery</"
+"literal> and <literal>@NamedQueries</literal> can be defined at the class "
+"level or in a JPA XML file. However their definitions are global to the "
+"session factory/entity manager factory scope. A named query is defined by "
+"its name and the actual query string."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:837
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_49.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:838
+#, no-c-format
+msgid ""
+"You can also provide some hints to a query through an array of "
+"<literal>QueryHint</literal> through a <literal>hints</literal> attribute."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:841
+#, no-c-format
+msgid "The available Hibernate hints are"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:845
+#, no-c-format
+msgid "Query hints"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:851
+#, no-c-format
+msgid "hint"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:854
+#, no-c-format
+msgid "description"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:861
+#, no-c-format
+msgid "org.hibernate.cacheable"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:864
+#, no-c-format
+msgid ""
+"Whether the query should interact with the second level cache (default to "
+"false)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:869
+#, no-c-format
+msgid "org.hibernate.cacheRegion"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:872
+#, no-c-format
+msgid "Cache region name (default used otherwise)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:877
+#, no-c-format
+msgid "org.hibernate.timeout"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:880
+#, no-c-format
+msgid "Query timeout"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:885
+#, no-c-format
+msgid "org.hibernate.fetchSize"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:888
+#, no-c-format
+msgid "resultset fetch size"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:893
+#, no-c-format
+msgid "org.hibernate.flushMode"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:896
+#, no-c-format
+msgid "Flush mode used for this query"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:901
+#, no-c-format
+msgid "org.hibernate.cacheMode"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:904
+#, no-c-format
+msgid "Cache mode used for this query"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:909
+#, no-c-format
+msgid "org.hibernate.readOnly"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:912
+#, no-c-format
+msgid ""
+"Entities loaded by this query should be in read only mode or not (default to "
+"false)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:917
+#, no-c-format
+msgid "org.hibernate.comment"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:920
+#, no-c-format
+msgid "Query comment added to the generated SQL"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:930
+#, no-c-format
+msgid "Mapping native queries"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:931
+#, no-c-format
+msgid ""
+"You can also map a native query (ie a plain SQL query). To achieve that, you "
+"need to describe the SQL resultset structure using "
+"<literal>@SqlResultSetMapping</literal> (or <literal>@SqlResultSetMappings</"
+"literal> if you plan to define several resultset mappings). Like "
+"<literal>@NamedQuery</literal>, a <literal>@SqlResultSetMapping</literal> "
+"can be defined at class level or in a JPA XML file. However, its scope is "
+"global to the application."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:934
+#, no-c-format
+msgid ""
+"As we will see, a <literal>resultSetMapping</literal> parameter is defined "
+"in <literal>@NamedNativeQuery</literal>, it represents the name of a defined "
+"<literal>@SqlResultSetMapping</literal>. The resultset mapping declares the "
+"entities retrieved by this native query. Each field of the entity is bound "
+"to an SQL alias (or column name). All fields of the entity including the "
+"ones of subclasses and the foreign key columns of related entities have to "
+"be present in the SQL query. Field definitions are optional provided that "
+"they map to the same column name as the one declared on the class property."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:939
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_50.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:941
+#, no-c-format
+msgid ""
+"In the above example, the <literal>night&amp;area</literal> named query use "
+"the <literal>joinMapping</literal> result set mapping. This mapping returns "
+"2 entities, <literal>Night</literal> and <literal>Area</literal>, each "
+"property is declared and associated to a column name, actually the column "
+"name retrieved by the query. Let's now see an implicit declaration of the "
+"property / column:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:945
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_51.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:946
+#, no-c-format
+msgid ""
+"In this example, we only describe the entity member of the result set "
+"mapping. The property / column mapping is done using the entity mapping "
+"values. In this case the <literal>model</literal> property is bound to the "
+"<literal>model_txt </literal>column. If the association to a related entity "
+"involves a composite primary key, a <literal>@FieldResult</literal> element "
+"should be used for each foreign key column. The <literal>@FieldResult</"
+"literal> name is composed of the property name for the relationship, "
+"followed by a dot (\".\"), followed by the name or the field or property of "
+"the primary key."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:950
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_52.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:952
+#, no-c-format
+msgid ""
+"If you look at the dimension property, you'll see that although EJB3 "
+"implementations do not have to support the dotted notation for embedded "
+"objects, Hobernate does. You can even have nested embedded objects."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:956
+#, no-c-format
+msgid ""
+"If you retrieve a single entity and if you use the default mapping, you can "
+"use the <literal>resultClass</literal> attribute instead of "
+"<literal>resultSetMapping</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:960
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_53.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:961
+#, no-c-format
+msgid ""
+"In some of your native queries, you'll have to return scalar values, for "
+"example when building report queries. You can map them in the "
+"<literal>@SqlResultsetMapping</literal> through <literal>@ColumnResult</"
+"literal>. You actually can even mix entities and scalar returns in the same "
+"native query (this is probably not common though)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:965
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_54.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:966
+#, no-c-format
+msgid ""
+"Another query hint specific to native queries has been introduced: "
+"<literal>org.hibernate.callable</literal> which can be true or false "
+"depending on whether the query is a stored procedure or not."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:974
+#, no-c-format
+msgid "Hibernate Annotation Extensions"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:975
+#, no-c-format
+msgid ""
+"Hibernate 3.1 offers a variety of additional annotations that you can mix/"
+"match with your EJB 3 entities. They have been designed as a natural "
+"extension of EJB3 annotations."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:978
+#, no-c-format
+msgid ""
+"To empower the EJB3 capabilities, Hibernate provides specific annotations "
+"that match Hibernate features. The <classname>org.hibernate.annotations</"
+"classname> package contains all these annotations extensions."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:982
+#, no-c-format
+msgid "Entity"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:983
+#, no-c-format
+msgid ""
+"You can fine tune some of the actions done by Hibernate on entities beyond "
+"what the EJB3 spec offers."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:986
+#, no-c-format
+msgid ""
+"<classname>@org.hibernate.annotations.Entity</classname> adds additional "
+"metadata that may be needed beyond what is defined in the standard "
+"<literal>@Entity</literal>:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:988
+#, no-c-format
+msgid "mutable"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:989
+#, no-c-format
+msgid "whether this entity is mutable or not"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:990
+#, no-c-format
+msgid "dynamicInsert"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:991
+#, no-c-format
+msgid "allow dynamic SQL for inserts"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:992
+#, no-c-format
+msgid "dynamicUpdate"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:993
+#, no-c-format
+msgid "allow dynamic SQL for updates"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:994
+#, no-c-format
+msgid "selectBeforeUpdate"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:995
+#, no-c-format
+msgid ""
+"Specifies that Hibernate should never perform an <literal>SQL UPDATE</"
+"literal> unless it is certain that an object is actually modified."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:996
+#, no-c-format
+msgid "polymorphism"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:997
+#, no-c-format
+msgid ""
+"whether the entity polymorphism is of <literal>PolymorphismType.IMPLICIT</"
+"literal> (default) or <literal>PolymorphismType.EXPLICIT</literal>"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:998
+#, no-c-format
+msgid "optimisticLock"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:999
+#, no-c-format
+msgid ""
+"optimistic locking strategy (<literal>OptimisticLockType.VERSION</literal>, "
+"<literal>OptimisticLockType.NONE</literal>, <literal>OptimisticLockType."
+"DIRTY</literal> or <literal>OptimisticLockType.ALL</literal>)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1004
+#, no-c-format
+msgid ""
+"<literal>@javax.persistence.Entity</literal> is still mandatory – "
+"<literal>@org.hibernate.annotations.Entity</literal> is not a replacement."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1009
+#, no-c-format
+msgid "Here are some additional Hibernate annotation extensions:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1013
+#, no-c-format
+msgid "@org.hibernate.annotations.BatchSize"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1014
+#, no-c-format
+msgid ""
+"allows you to define the batch size when fetching instances of this entity "
+"( eg. <literal>@BatchSize(size=4)</literal> ). When loading a given entity, "
+"Hibernate will then load all the uninitialized entities of the same type in "
+"the persistence context up to the batch size."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1014
+#, no-c-format
+msgid "@org.hibernate.annotations.Proxy"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1015
+#, no-c-format
+msgid ""
+"defines the laziness attributes of the entity. lazy (default to true) define "
+"whether the class is lazy or not. proxyClassName is the interface used to "
+"generate the proxy (default is the class itself)."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1016
+#, no-c-format
+msgid "@org.hibernate.annotations.Where"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1017
+#, no-c-format
+msgid ""
+"defines an optional <literal>SQL WHERE</literal> clause used when instances "
+"of this class is retrieved."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1018
+#, no-c-format
+msgid "@org.hibernate.annotations.Check"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1019
+#, no-c-format
+msgid "defines an optional check constraints defined in the DDL statement."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1020
+#, no-c-format
+msgid "@OnDelete(action=OnDeleteAction.CASCADE)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1021
+#, no-c-format
+msgid ""
+"on joined subclasses: use a SQL cascade delete on deletion instead of the "
+"regular Hibernate mechanism."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1022
+#, no-c-format
+msgid ""
+"@Table(appliesTo=\"tableName\", indexes = { @Index(name=\"index1\", "
+"columnNames={\"column1\", \"column2\"} ) } )"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1023
+#, no-c-format
+msgid ""
+"creates the defined indexes on the columns of table <literal>tableName</"
+"literal>. This can be applied on the primary table or any secondary table. "
+"The <literal>@Tables</literal> annotation allows your to apply indexes on "
+"different tables. This annotation is expected where <literal>@javax."
+"persistence.Table</literal> or <literal>@javax.persistence.SecondaryTable</"
+"literal>(s) occurs."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1026
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.Table</literal> is a complement to, not "
+"a replacement for <literal>@javax.persistence.Table</literal>. In "
+"particular, if you want to change the default name of a table, you must use "
+"<literal>@javax.persistence.Table</literal>, not <literal>@org.hibernate."
+"annotations.Table</literal>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1030
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.Table</literal> can also be used to "
+"define the following elements of secondary tables:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1034
+#, no-c-format
+msgid "fetch"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1035
+#, no-c-format
+msgid ""
+"If set to <literal>JOIN</literal>, the default, Hibernate will use an inner "
+"join to retrieve a secondary table defined by a class or its superclasses "
+"and an outer join for a secondary table defined by a subclass. If set to "
+"select then Hibernate will use a sequential select for a secondary table "
+"defined on a subclass, which will be issued only if a row turns out to "
+"represent an instance of the subclass. Inner joins will still be used to "
+"retrieve a secondary defined by the class and its superclasses."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1036
+#, no-c-format
+msgid "inverse"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1037
+#, no-c-format
+msgid ""
+"If true, Hibernate will not try to insert or update the properties defined "
+"by this join. Default to false."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1038
+#, no-c-format
+msgid "optional"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1039
+#, no-c-format
+msgid ""
+"If enabled (the default), Hibernate will insert a row only if the properties "
+"defined by this join are non-null and will always use an outer join to "
+"retrieve the properties."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1040
+#, no-c-format
+msgid "foreignKey"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1041
+#, no-c-format
+msgid ""
+"defines the Foreign Key name of a secondary table pointing back to the "
+"primary table."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1044
+#, no-c-format
+msgid ""
+"<literal>@Immutable</literal> marks an entity as immutable. The entity may "
+"not be updated or deleted by the application. This allows Hibernate to make "
+"some minor performance optimizations. <literal>@Immutable</literal> must be "
+"use on root entities only."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1047
+#, no-c-format
+msgid ""
+"<literal>@Persister</literal> lets you define your own custom persistence "
+"strategy. You may, for example, specify your own subclass of <classname>org."
+"hibernate.persister.EntityPersister</classname> or you might even provide a "
+"completely new implementation of the interface <literal>org.hibernate."
+"persister.ClassPersister</literal> that implements persistence via, for "
+"example, stored procedure calls, serialization to flat files or LDAP."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1052
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_55.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1054
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_56.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1059
+#, no-c-format
+msgid "Identifier"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1060
+#, no-c-format
+msgid ""
+"Hibernate Annotations goes beyond the Java Persistence specification when "
+"defining identifiers."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1064
+#, no-c-format
+msgid "Generators"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1065
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.GenericGenerator</literal> and "
+"<literal>@org.hibernate.annotations.GenericGenerators</literal> allows you "
+"to define a Hibernate-specific id generator."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1070
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_57.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1072
+#, no-c-format
+msgid ""
+"<literal>strategy</literal> is the short name of a Hibernate3 generator "
+"strategy or the fully qualified class name of an "
+"<classname>IdentifierGenerator</classname> implementation. You can add some "
+"parameters through the <literal>parameters</literal> attribute."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1075
+#, no-c-format
+msgid ""
+"Contrary to their standard counterpart, <literal>@GenericGenerator</literal> "
+"and <literal>@GenericGenerators</literal> can be used in package-level "
+"annotations, making them application-level generators (just like if they "
+"were in a JPA XML file)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1079
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_58.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1083
+#, no-c-format
+msgid "@NaturalId"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1084
+#, no-c-format
+msgid ""
+"While not used as identifier property, some (groups of) properties represent "
+"the natural identifier of an entity. This is especially true when the schema "
+"uses the recommended approach of using surrogate primary key even if a "
+"natural business key exists. Hibernate allows to map such natural properties "
+"and reuse them in a <classname>Criteria</classname> query. The natural "
+"identifier is composed of all the properties marked <classname>@NaturalId</"
+"classname>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1088
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_60.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1089
+#, no-c-format
+msgid ""
+"Note that the group of properties representing the natural identifier have "
+"to be unique (Hibernate will generate a unique constraint if the database "
+"schema is generated)."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1097
+#, no-c-format
+msgid "Property"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1099
+#, no-c-format
+msgid "Access type"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1100
+#, no-c-format
+msgid ""
+"The access type is guessed from the position of <literal>@Id</literal> or "
+"<literal>@EmbeddedId</literal> in the entity hierarchy. Sub-entities, "
+"embedded objects and mapped superclass inherit the access type from the root "
+"entity."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1103
+#, no-c-format
+msgid "In Hibernate, you can override the access type to:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1108
+#, no-c-format
+msgid "use a custom access type strategy"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1113
+#, no-c-format
+msgid "fine tune the access type at the class level or at the property level"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1118
+#, no-c-format
+msgid ""
+"An <literal>@AccessType</literal> annotation has been introduced to support "
+"this behavior. You can define the access type on"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1123
+#, no-c-format
+msgid "an entity"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1128
+#, no-c-format
+msgid "a superclass"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1133
+#, no-c-format
+msgid "an embeddable object"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1138
+#, no-c-format
+msgid "a property"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1143
+#, no-c-format
+msgid ""
+"The access type is overridden for the annotated element, if overridden on a "
+"class, all the properties of the given class inherit the access type. For "
+"root entities, the access type is considered to be the default one for the "
+"whole hierarchy (overridable at class or property level)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1146
+#, no-c-format
+msgid ""
+"If the access type is marked as \"property\", the getters are scanned for "
+"annotations, if the access type is marked as \"field\", the fields are "
+"scanned for annotations. Otherwise the elements marked with <literal>@Id</"
+"literal> or <literal>@embeddedId</literal> are scanned."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1149
+#, no-c-format
+msgid ""
+"You can override an access type for a property, but the element to annotate "
+"will not be influenced: for example an entity having access type "
+"<literal>field</literal>, can annotate a field with <literal>@AccessType"
+"(\"property\")</literal>, the access type will then be property for this "
+"attribute, the the annotations still have to be carried on the field."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1152
+#, no-c-format
+msgid ""
+"If a superclass or an embeddable object is not annotated, the root entity "
+"access type is used (even if an access type has been define on an "
+"intermediate superclass or embeddable object). The \"Matryoshka doll "
+"principle\" does not apply."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1156
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_61.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1160
+#, no-c-format
+msgid "Formula"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1161
+#, no-c-format
+msgid ""
+"Sometimes, you want the Database to do some computation for you rather than "
+"in the JVM, you might also create some kind of virtual column. You can use a "
+"SQL fragment (aka formula) instead of mapping a property into a column. This "
+"kind of property is read only (its value is calculated by your formula "
+"fragment)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1165
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_62.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1166
+#, no-c-format
+msgid ""
+"The SQL fragment can be as complex as you want and even include subselects."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1172
+#, no-c-format
+msgid "Type"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1173
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.Type</literal> overrides the default "
+"Hibernate type used: this is generally not necessary since the type is "
+"correctly inferred by Hibernate. Please refer to the <citetitle>Hibernate "
+"Reference Guide</citetitle> for more information on the Hibernate types."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1176
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.TypeDef</literal> and <literal>@org."
+"hibernate.annotations.TypeDefs</literal> allows you to declare type "
+"definitions. These annotations are placed at the class or package level. "
+"Note that these definitions will be global for the session factory (even at "
+"the class level) and that type definition has to be defined before any usage."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1180
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_63.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1181
+#, no-c-format
+msgid ""
+"When using composite user type, you will have to express column definitions. "
+"The <literal>@Columns</literal> has been introduced for that purpose."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1185
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_64.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1189
+#, no-c-format
+msgid "Index"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1190
+#, no-c-format
+msgid ""
+"You can define an index on a particular column using the <literal>@Index</"
+"literal> annotation on a one column property, the columnNames attribute will "
+"then be ignored"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1194
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_65.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1198
+#, no-c-format
+msgid "@Parent"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1199
+#, no-c-format
+msgid ""
+"When inside an embeddable object, you can define one of the properties as a "
+"pointer back to the owner element."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1203
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_66.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1207
+#, no-c-format
+msgid "Generated properties"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1208
+#, no-c-format
+msgid ""
+"Some properties are generated at insert or update time by your database. "
+"Hibernate can deal with such properties and triggers a subsequent select to "
+"read these properties."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1212
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_67.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1213
+#, no-c-format
+msgid ""
+"Annotate your property as <literal>@Generated</literal>. You have to make "
+"sure your insertability or updatability does not conflict with the "
+"generation strategy you have chosen. When <literal>GenerationTime.INSERT</"
+"literal> is chosen, the property must not contains insertable columns, when "
+"<literal>GenerationTime.ALWAYS</literal> is chosen, the property must not "
+"contains insertable nor updatable columns."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1216
+#, no-c-format
+msgid ""
+"<literal>@Version</literal> properties cannot be <literal>@Generated(INSERT)"
+"</literal> by design, it has to be either <literal>NEVER</literal> or "
+"<literal>ALWAYS</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1222
+#, no-c-format
+msgid "@Target"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1223
+#, no-c-format
+msgid ""
+"Sometimes, the type guessed by reflection is not the one you want Hibernate "
+"to use. This is especially true of components when an interface is used. You "
+"can use <literal>@Target</literal> to bypass the reflection guessing "
+"mechanism (very much like the <literal>targetEntity</literal> attribute "
+"available on associations."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1227
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_68.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1231
+#, no-c-format
+msgid "Optimistic lock"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1232
+#, no-c-format
+msgid ""
+"It is sometimes useful to avoid increasing the version number even if a "
+"given property is dirty (particularly collections). You can do that by "
+"annotating the property (or collection) with <literal>@OptimisticLock"
+"(excluded=true)</literal>."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1235
+#, no-c-format
+msgid ""
+"More formally, it specifies that updates to this property do not require "
+"acquisition of the optimistic lock."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1243
+#, no-c-format
+msgid "Inheritance"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1244
+#, no-c-format
+msgid ""
+"<literal>SINGLE_TABLE</literal> is a very powerful strategy but sometimes, "
+"and especially for legacy systems, you cannot add an additional "
+"discriminator column. For that purpose, Hibernate has introduced the notion "
+"of discriminator formula: <literal>@DiscriminatorFormula</literal> is a "
+"replacement of <literal>@DiscriminatorColumn</literal> and use a SQL "
+"fragment as a formula for discriminator resolution (no need to have a "
+"dedicated column)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1248
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_69.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1249
+#, no-c-format
+msgid ""
+"By default, when querying the top entities, Hibernate does not put a "
+"restriction clause on the discriminator column. This can be inconvenient if "
+"this column contains values not mapped in your hierarchy (through "
+"<literal>@DiscriminatorValue</literal>). To work around that you can use "
+"<literal>@ForceDiscriminator</literal> (at the class level, next to "
+"<literal>@DiscriminatorColumn</literal>). Hibernate will then list the "
+"available values when loading the entities."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1252
+#, no-c-format
+msgid ""
+"You can define the foreign key name generated by Hibernate for subclass "
+"tables in the JOINED inheritance strategy."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1256
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_70.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1257
+#, no-c-format
+msgid ""
+"The foreign key from the <literal>Document</literal> table to the "
+"<literal>File</literal> table will be named <literal>FK_DOCU_FILE</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1263
+#, no-c-format
+msgid "Single Association related annotations"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1264
+#, no-c-format
+msgid ""
+"By default, when Hibernate cannot resolve the association because the "
+"expected associated element is not in database (wrong id on the association "
+"column), an exception is raised by Hibernate. This might be inconvenient for "
+"legacy and badly maintained schemas. You can ask Hibernate to ignore such "
+"elements instead of raising an exception using the <literal>@NotFound</"
+"literal> annotation. This annotation can be used on a <literal>@OneToOne</"
+"literal> (with FK), <literal>@ManyToOne</literal>, <literal>@OneToMany</"
+"literal> or <literal>@ManyToMany</literal> association."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1268
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_71.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1269
+#, no-c-format
+msgid ""
+"Sometimes you want to delegate to your database the deletion of cascade when "
+"a given entity is deleted."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1273
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_72.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1274
+#, no-c-format
+msgid ""
+"In this case Hibernate generates a cascade delete constraint at the database "
+"level."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1277
+#, no-c-format
+msgid ""
+"Foreign key constraints, when generated by Hibernate, have a fairly "
+"unreadable name. You can override the constraint name by using "
+"<literal>@ForeignKey</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1281
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_73.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1283
+#, no-c-format
+msgid "Lazy options and fetching modes"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1284
+#, no-c-format
+msgid ""
+"EJB3 comes with the <literal>fetch</literal> option to define lazy loading "
+"and fetching modes, however Hibernate has a much greater option set in this "
+"area. To fine tune the lazy loading and fetching strategies, some additional "
+"annotations have been introduced:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1288
+#, no-c-format
+msgid "@LazyToOne"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1289
+#, no-c-format
+msgid ""
+"defines the lazyness option on <literal>@ManyToOne</literal> and "
+"<literal>@OneToOne</literal> associations. <literal>LazyToOneOption</"
+"literal> can be <literal>PROXY</literal> (ie use a proxy based lazy "
+"loading), <literal>NO_PROXY</literal> (use a bytecode enhancement based lazy "
+"loading - note that build time bytecode processing is necessary) and "
+"<literal>FALSE</literal> (association not lazy)"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1290
+#, no-c-format
+msgid "@LazyCollection>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1291
+#, no-c-format
+msgid ""
+"defines the lazyness option on <literal>@ManyTo</literal>Many and "
+"<literal>@OneToMany</literal> associations. LazyCollectionOption can be "
+"<literal>TRUE</literal> (the collection is lazy and will be loaded when its "
+"state is accessed), <literal>EXTRA</literal> (the collection is lazy and all "
+"operations will try to avoid the collection loading, this is especially "
+"useful for huge collections when loading all the elements is not necessary) "
+"and FALSE (association not lazy)"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1292
+#, no-c-format
+msgid "@Fetch>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1293
+#, no-c-format
+msgid ""
+"defines the fetching strategy used to load the association. "
+"<literal>FetchMode</literal> can be <literal>SELECT</literal> (a select is "
+"triggered when the association needs to be loaded), <literal>SUBSELECT</"
+"literal> (only available for collections, use a subselect strategy - please "
+"refer to the <citetitle>Hibernate Reference Documentation</citetitle> for "
+"more information) or <literal>JOIN</literal> (use a SQL JOIN to load the "
+"association while loading the owner entity). <literal>JOIN</literal> "
+"overrides any lazy attribute (an association loaded through a <literal>JOIN</"
+"literal> strategy cannot be lazy)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1295
+#, no-c-format
+msgid "The Hibernate annotations override the EJB3 fetching options."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1299
+#, no-c-format
+msgid "Lazy and fetch options equivalent"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1303
+#, no-c-format
+msgid "Annotations"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1306
+#, no-c-format
+msgid "Lazy"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1309
+#, no-c-format
+msgid "Fetch"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1316
+#, no-c-format
+msgid "@[One|Many]ToOne](fetch=FetchType.LAZY)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1319
+#, no-c-format
+msgid "@LazyToOne(PROXY)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1322 Entity_Beans.xml:1344
+#, no-c-format
+msgid "@Fetch(SELECT)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1327
+#, no-c-format
+msgid "@[One|Many]ToOne](fetch=FetchType.EAGER)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1330
+#, no-c-format
+msgid "@LazyToOne(FALSE)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1333 Entity_Beans.xml:1355
+#, no-c-format
+msgid "@Fetch(JOIN)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1338
+#, no-c-format
+msgid "@ManyTo[One|Many](fetch=FetchType.LAZY)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1341
+#, no-c-format
+msgid "@LazyCollection(TRUE)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1349
+#, no-c-format
+msgid "@ManyTo[One|Many](fetch=FetchType.EAGER)"
+msgstr ""
+
+#. Tag: entry
+#: Entity_Beans.xml:1352
+#, no-c-format
+msgid "@LazyCollection(FALSE)"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1365
+#, no-c-format
+msgid "@Any"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1366
+#, no-c-format
+msgid ""
+"The <classname>@Any</classname> annotation defines a polymorphic association "
+"to classes from multiple tables. This type of mapping always requires more "
+"than one column. The first column holds the type of the associated entity. "
+"The remaining columns hold the identifier. It is impossible to specify a "
+"foreign key constraint for this kind of association, so this is most "
+"certainly not meant as the usual way of mapping (polymorphic) associations. "
+"You should use this only in very special cases (eg. audit logs, user session "
+"data, etc)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1369
+#, no-c-format
+msgid ""
+"The @Any annotation describes the column holding the metadata information. "
+"To link the value of the metadata information and an actual entity type, The "
+"<classname>@AnyDef</classname> and <classname>@AnyDefs</classname> "
+"annotations are used."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1373
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_74.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1374
+#, no-c-format
+msgid ""
+"<methodname>idType</methodname> represents the target entities identifier "
+"property type and <methodname>metaType</methodname> the metadata type "
+"(usually String)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1377
+#, no-c-format
+msgid ""
+"Note that <classname>@AnyDef</classname> can be mutualized and reused. It is "
+"recommended to place it as a package metadata in this case."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1381
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_75.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1387
+#, no-c-format
+msgid "Collection related annotations"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1389
+#, no-c-format
+msgid "Enhance collection settings"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1390
+#, no-c-format
+msgid "It is possible to set"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1394
+#, no-c-format
+msgid "the batch size for collections using @BatchSize"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1397
+#, no-c-format
+msgid ""
+"the where clause, using @Where (applied on the target entity) or "
+"@WhereJoinTable (applied on the association table)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1400
+#, no-c-format
+msgid "the check clause, using @Check"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1403
+#, no-c-format
+msgid "the SQL order by clause, using @OrderBy"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1406
+#, no-c-format
+msgid ""
+"the delete cascade strategy through @OnDelete(action=OnDeleteAction.CASCADE)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1409
+#, no-c-format
+msgid ""
+"the collection immutability using @Immutable: if set specifies that the "
+"elements of the collection never change (a minor performance optimization in "
+"some cases)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1412
+#, no-c-format
+msgid ""
+"a custom collection persister (ie the persistence strategy used) using "
+"<literal>@Persister</literal>: the class must implement <classname>org."
+"hibernate.persister.collectionCollectionPersister</classname>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1418
+#, no-c-format
+msgid ""
+"You can also declare a sort comparator. Use the <literal>@Sort</literal> "
+"annotation. Expressing the comparator type you want between unsorted, "
+"natural or custom comparator. If you want to use your own comparator "
+"implementation, you'll also have to express the implementation class using "
+"the <literal>comparator</literal> attribute. Note that you need to use "
+"either a <classname>SortedSet</classname> or a <classname>SortedMap</"
+"classname> interface."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1422
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_76.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1423
+#, no-c-format
+msgid ""
+"Please refer to the previous descriptions of these annotations for more "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1426
+#, no-c-format
+msgid ""
+"Foreign key constraints, while generated by Hibernate, have a fairly "
+"unreadable name. You can override the constraint name by use "
+"<literal>@ForeignKey</literal>. Note that this annotation has to be placed "
+"on the owning side of the relationship, <literal>inverseName</literal> "
+"referencing to the other side constraint."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1430
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_77.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1434
+#, no-c-format
+msgid "Extra collection types"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1436
+#, no-c-format
+msgid "List"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1437
+#, no-c-format
+msgid ""
+"Beyond EJB3, Hibernate Annotations supports true <classname>List</classname> "
+"and <classname>Array</classname>. Map your collection the same way as usual "
+"and add the @<literal>IndexColumn</literal>. This annotation allows you to "
+"describe the column that will hold the index. You can also declare the index "
+"value in DB that represent the first element (aka as base index). The usual "
+"value is <literal>0</literal> or <literal>1</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1441
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_78.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1443
+#, no-c-format
+msgid ""
+"If you forgot to set <literal>@IndexColumn</literal>, the bag semantic is "
+"applied. If you want the bag semantic without the limitations of it, "
+"consider using <literal>@CollectionId</literal>."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1450
+#, no-c-format
+msgid "<title>Map</title>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1451
+#, no-c-format
+msgid ""
+"Hibernate Annotations also supports true Map mappings. If <literal>@javax."
+"persistence.MapKey</literal> is not set, Hibernate will map the key element "
+"or embeddable object in its/their own columns. To overrides the default "
+"columns, you can use <literal>@org.hibernate.annotations.MapKey</literal> if "
+"your key is a basic type (defaulted to <literal>mapkey</literal>) or an "
+"embeddable object, or you can use <literal>@org.hibernate.annotations."
+"MapKeyManyToMany</literal> if your key is an entity."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1454
+#, no-c-format
+msgid ""
+"Both <literal>@org.hibernate.annotations.MapKey</literal> and <literal>@org."
+"hibernate.annotations.MapKeyManyToMany</literal> allow you to override the "
+"target element to be used. This is especially useful if your collection does "
+"not use generics (or if you use interfaces)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1458
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_79.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1462
+#, no-c-format
+msgid "Bidirectional association with indexed collections"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1463
+#, no-c-format
+msgid ""
+"A bidirectional association where one end is an indexed collection (that is, "
+"represented as a <literal>@IndexColumn</literal>, <literal>@org.hibernate."
+"annotations.MapKey</literal> or <classname>@org.hibernate.annotations."
+"MapKeyManyToMany</classname>) requires special consideration. If a property "
+"on the associated class explicitly maps the indexed value, the use of "
+"<methodname>mappedBy</methodname> is permitted:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1467
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_80.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1468
+#, no-c-format
+msgid ""
+"But, if there is no such property on the child class, we can't think of the "
+"association as truly bidirectional (there is information available at one "
+"end of the association that is not available at the other end: the index). "
+"In this case, we can't map the collection as <literal>mappedBy</literal>. "
+"Instead, we could use the following mapping:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1472
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_81.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1473
+#, no-c-format
+msgid ""
+"Note that in this mapping, the collection-valued end of the association is "
+"responsible for updating the foreign key."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1479
+#, no-c-format
+msgid "Bag with primary key"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1480
+#, no-c-format
+msgid ""
+"Another interesting feature is the ability to define a surrogate primary key "
+"to a bag collection. This removes pretty much all of the drawbacks of bags: "
+"update and removal are efficient, more than one <literal>EAGER</literal> bag "
+"per query or per entity. This primary key will be contained in an additional "
+"column of your collection table but will not be visible to the Java "
+"application. @CollectionId is used to mark a collection as id bag, it also "
+"allow to override the primary key column(s), the primary key type and the "
+"generator strategy. The strategy can be <literal>identity</literal>, or any "
+"defined generator name of your application."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1484
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_82.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1488
+#, no-c-format
+msgid "Collection of element or composite elements"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1489
+#, no-c-format
+msgid ""
+"Hibernate Annotations also supports collections of core types (Integer, "
+"String, Enums, ...), collections of embeddable objects and even arrays of "
+"primitive types. This is known as collection of elements."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1492
+#, no-c-format
+msgid ""
+"A collection of elements has to be annotated as "
+"<literal>@CollectionOfElements</literal> (as a replacement of "
+"<literal>@OneToMany</literal>) To define the collection table, the "
+"<literal>@JoinTable</literal> annotation is used on the association "
+"property, <literal>joinColumns</literal> defines the join columns between "
+"the entity primary table and the collection table (inverseJoincolumn is "
+"useless and should be left empty). For collection of core types or array of "
+"primitive types, you can override the element column definition using a "
+"<literal>@Column</literal> on the association property. You can also "
+"override the columns of a collection of embeddable object using "
+"<literal>@AttributeOverride</literal>. To reach the collection element, you "
+"need to append \"element\" to the attribute override name (eg \"element\" "
+"for core types, or \"element.serial\" for the serial property of an "
+"embeddable element). To reach the index/key of a collection, append \"key\" "
+"instead."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1496
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_83.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1497
+#, no-c-format
+msgid ""
+"On a collection of embeddable objects, the embeddable object can have a "
+"property annotated with <literal>@Parent</literal>. This property will then "
+"point back to the entity containing the collection."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1501
+#, no-c-format
+msgid ""
+"Previous versions of Hibernate Annotations used the <literal>@OneToMany</"
+"literal> to mark a collection of elements. Due to semantic inconsistencies, "
+"we've introduced the annotation <literal>@CollectionOfElements</literal>. "
+"Marking collections of elements the old way still work but is considered "
+"deprecated and is going to be unsupported in future releases"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1508
+#, no-c-format
+msgid "@ManyToAny"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1509
+#, no-c-format
+msgid ""
+"<classname>@ManyToAny</classname> allows polymorphic associations to classes "
+"from multiple tables. This type of mapping always requires more than one "
+"column. The first column holds the type of the associated entity. The "
+"remaining columns hold the identifier. It is impossible to specify a foreign "
+"key constraint for this kind of association, so this is most certainly not "
+"meant as the usual way of mapping (polymorphic) associations. You should use "
+"this only in very special cases (eg. audit logs, user session data, etc)."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1513
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_84.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1514
+#, no-c-format
+msgid ""
+"Like <classname>@Any</classname>, <classname>@ManyToAny</classname> can use "
+"named <classname>@AnyDef</classname>s, see <xref linkend=\"sect-"
+"Hibernate_Annotations_Reference_Guide-Single_Association_related_annotations-"
+"Any\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1524
+#, no-c-format
+msgid "Cascade"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1525
+#, no-c-format
+msgid ""
+"Hibernate offers more operations than the Java Persistence specification. "
+"You can use the <literal>@Cascade</literal> annotation to cascade the "
+"following operations:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1531
+#, no-c-format
+msgid "PERSIST"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1536
+#, no-c-format
+msgid "MERGE"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1541
+#, no-c-format
+msgid "REMOVE"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1546
+#, no-c-format
+msgid "REFRESH"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1551
+#, no-c-format
+msgid "DELETE"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1556
+#, no-c-format
+msgid "SAVE_UPDATE"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1561
+#, no-c-format
+msgid "REPLICATE"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1566
+#, no-c-format
+msgid "DELETE_ORPHAN"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1571
+#, no-c-format
+msgid "LOCK"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1576
+#, no-c-format
+msgid "EVICT"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1580
+#, no-c-format
+msgid ""
+"This is especially useful for <literal>SAVE_UPDATE</literal> (which is the "
+"operation cascaded at flush time if you use plain Hibernate Annotations - "
+"Hibernate EntityManager cascade <literal>PERSIST</literal> at flush time as "
+"per the specification). <literal>DELETE_ORPHAN</literal> applies only to "
+"<literal>@OneToMany</literal> associations, and indicates that the "
+"<methodname>delete()/remove()</methodname> operation should be applied to "
+"any child object that is removed from the association. In other words, if a "
+"child is dereferenced by a persistent parent and if <literal>DELETE_ORPHAN</"
+"literal> is used, the \"orphaned\" child is deleted."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1584
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_85.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1585
+#, no-c-format
+msgid ""
+"It is recommended to use @Cascade to compliment @*To*(cascade=...) as shown "
+"in the previous example."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1591
+#, no-c-format
+msgid "Cache"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1592
+#, no-c-format
+msgid ""
+"In order to optimize your database accesses, you can activate the so-called "
+"second level cache of Hibernate. This cache is configurable on a per-entity "
+"and per-collection basis."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1595
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.Cache</literal> defines the caching "
+"strategy and region of a given second level cache. This annotation can be "
+"applied on the root entity (not the sub entities), and on the collections."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1599
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_86.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1601
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_87.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1603
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_88.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1604
+#, no-c-format
+msgid "Notes:"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1606
+#, no-c-format
+msgid ""
+"usage: the given cache concurrency strategy (NONE, READ_ONLY, "
+"NONSTRICT_READ_WRITE, READ_WRITE, TRANSACTIONAL)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1611
+#, no-c-format
+msgid ""
+"region (optional): the cache region (default to the fqcn of the class or the "
+"fq role name of the collection)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1616
+#, no-c-format
+msgid ""
+"<literal>include</literal> (optional): all to include all properties, non-"
+"lazy to only include non lazy properties (default all)."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1626
+#, no-c-format
+msgid "Filters"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1627
+#, no-c-format
+msgid ""
+"Hibernate has the ability to apply arbitrary filters on top of your data. "
+"Those filters are applied at runtime on a given session. First, you need to "
+"define them."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1630
+#, no-c-format
+msgid ""
+"<literal>@org.hibernate.annotations.FilterDef</literal> or "
+"<literal>@FilterDefs</literal> define filter definition(s) used by filter(s) "
+"using the same name. A filter definition has a name() and an array of "
+"parameters(). A parameter will allow you to adjust the behavior of the "
+"filter at runtime. Each parameter is defined by a <literal>@ParamDef</"
+"literal> which has a name and a type. You can also define a defaultCondition"
+"() parameter for a given <literal>@FilterDef</literal> to set the default "
+"condition to use when none are defined in each individual <literal>@Filter</"
+"literal>. A <literal>@FilterDef</literal>(s) can be defined at the class or "
+"package level."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1633
+#, no-c-format
+msgid ""
+"We now need to define the SQL filter clause applied to either the entity "
+"load or the collection load. <literal>@Filter</literal> is used and placed "
+"either on the entity or the collection element"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1638
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_89.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1640
+#, no-c-format
+msgid ""
+"When the collection uses an association table as a relational "
+"representation, you might want to apply the filter condition to the "
+"association table itself or to the target entity table. To apply the "
+"constraint on the target entity, use the regular <literal>@Filter</literal> "
+"annotation. However, if you want to target the association table, use the "
+"<literal>@FilterJoinTable</literal> annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1644
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_90.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1648
+#, no-c-format
+msgid "Queries"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1649
+#, no-c-format
+msgid ""
+"Since Hibernate has more features on named queries than the one defined in "
+"the EJB3 specification, <literal>@org.hibernate.annotations.NamedQuery</"
+"literal>, <literal>@org.hibernate.annotations.NamedQueries</literal>, "
+"<literal>@org.hibernate.annotations.NamedNativeQuery</literal> and "
+"<literal>@org.hibernate.annotations.NamedNativeQueries</literal> have been "
+"introduced. They add attributes to the standard version and can be used as a "
+"replacement:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1653
+#, no-c-format
+msgid "flushMode"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1654
+#, no-c-format
+msgid ""
+"defines the query flush mode (<literal>Always</literal>, <literal>Auto</"
+"literal>, <literal>Commit</literal> or <literal>Manual</literal>)"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1655
+#, no-c-format
+msgid "cacheable"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1656
+#, no-c-format
+msgid "whether the query should be cached or not"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1657
+#, no-c-format
+msgid "cacheRegion"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1658
+#, no-c-format
+msgid "cache region used if the query is cached"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1659
+#, no-c-format
+msgid "fetchSize"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1660
+#, no-c-format
+msgid "JDBC statement fetch size for this query"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1661
+#, no-c-format
+msgid "timeout"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1662
+#, no-c-format
+msgid "query time out"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1663
+#, no-c-format
+msgid "callable"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1664
+#, no-c-format
+msgid "for native queries only, to be set to true for stored procedures"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1665
+#, no-c-format
+msgid "comment"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1666
+#, no-c-format
+msgid ""
+"if comments are activated, the comment seen when the query is sent to the "
+"database."
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1667
+#, no-c-format
+msgid "cacheMode"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1668
+#, no-c-format
+msgid ""
+"Cache interaction mode (<literal>get</literal>, <literal>ignore</literal>, "
+"<literal>normal</literal>, <literal>put</literal> or <literal>refresh</"
+"literal>)"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1669
+#, no-c-format
+msgid "readOnly"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1670
+#, no-c-format
+msgid ""
+"whether or not the elements retrievent from the query are in read-only mode."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1672
+#, no-c-format
+msgid ""
+"Those hints can be set in a standard <literal>@javax.persistence.NamedQuery</"
+"literal> annotations through the detyped <literal>@QueryHint</literal>. "
+"Another key advantage is the ability to set those annotations at a package "
+"level."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1678
+#, no-c-format
+msgid "Custom SQL for CRUD operations"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1679
+#, no-c-format
+msgid ""
+"Hibernate gives you the ability to override every single SQL statement "
+"generated. We have seen native SQL query usage already, but you can also "
+"override the SQL statement used to load or change the state of entities."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1683
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_91.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1684
+#, no-c-format
+msgid ""
+"<literal>@SQLInsert</literal>, <literal>@SQLUpdate</literal>, "
+"<literal>@SQLDelete</literal>, <literal>@SQLDeleteAll</literal> respectively "
+"override the <literal>INSERT</literal> statement, <literal>UPDATE</literal> "
+"statement, <literal>DELETE</literal> statement, <literal>DELETE</literal> "
+"statement to remove all entities."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1687
+#, no-c-format
+msgid ""
+"If you expect to call a store procedure, be sure to set the "
+"<literal>callable</literal> attribute to true (<literal>@SQLInsert"
+"(callable=true, ...)</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1690
+#, no-c-format
+msgid ""
+"To check that the execution happens correctly, Hibernate allows you to "
+"define one of those three strategies:"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1694
+#, no-c-format
+msgid "NONE"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1695
+#, no-c-format
+msgid ""
+"no check is performed: the store procedure is expected to fail upon issues"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1696
+#, no-c-format
+msgid "COUNT"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1697
+#, no-c-format
+msgid "use of rowcount to check that the update is successful"
+msgstr ""
+
+#. Tag: literal
+#: Entity_Beans.xml:1698
+#, no-c-format
+msgid "PARAM"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1699
+#, no-c-format
+msgid ""
+"like <literal>COUNT</literal> but using an output parameter rather that the "
+"standard mechanism"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1701
+#, no-c-format
+msgid ""
+"To define the result check style, use the <literal>check</literal> parameter "
+"(<literal>@SQLUpdate(check=ResultCheckStyle.COUNT, ...)</literal>)."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1704
+#, no-c-format
+msgid ""
+"You can also override the SQL load statement by a native SQL query or a HQL "
+"query. You just have to refer to a named query with the "
+"<literal><literal>@Loader</literal></literal> annotation."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1707
+#, no-c-format
+msgid ""
+"You can use the exact same set of annotations to override the collection "
+"related statements."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1711
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_92.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1712
+#, no-c-format
+msgid ""
+"The order of the parameters is important and is defined by the order "
+"Hibernate handles properties. You can see 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 see the expected "
+"sequence, remember not to include your custom SQL through annotations as "
+"that will override the Hibernate-generated static sql.)"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1715
+#, no-c-format
+msgid ""
+"Overriding SQL statements for secondary tables is also possible using "
+"<literal>@org.hibernate.annotations.Table</literal> and either (or all) "
+"attributes <literal>sqlInsert</literal>, <literal>sqlUpdate</literal>, "
+"<literal>sqlDelete</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1719
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_93.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1720
+#, no-c-format
+msgid ""
+"The previous example also show that you can give a comment to a given table "
+"(primary or secondary): This comment will be used for DDL generation."
+msgstr ""
+
+#. Tag: title
+#: Entity_Beans.xml:1726
+#, no-c-format
+msgid "Tuplizer"
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1727
+#, no-c-format
+msgid ""
+"<classname>org.hibernate.tuple.Tuplizer</classname>, 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 which 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 and how to access the POJO properties using the "
+"defined property accessors. There are two high-level types of Tuplizers, "
+"represented by the <classname>org.hibernate.tuple.EntityTuplizer</classname> "
+"and <classname>org.hibernate.tuple.ComponentTuplizer</classname> interfaces. "
+"EntityTuplizers are responsible for managing the above mentioned contracts "
+"in regards to entities, while <classname>ComponentTuplizers</classname> do "
+"the same for components. Check the <citetitle>Hibernate Reference "
+"Documentation</citetitle> for more information."
+msgstr ""
+
+#. Tag: para
+#: Entity_Beans.xml:1730
+#, no-c-format
+msgid ""
+"To define tuplixer in annotations, simply use the <literal>@Tuplizer</"
+"literal> annotation on the according element"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_Beans.xml:1734
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_94.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Feedback.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Feedback.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Feedback.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,35 @@
+# 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: 2009-01-04 22:24+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
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, 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>&lt;version&gt;</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 ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Hibernate_Annotations_Reference_Guide_CP03_FP01.pot
===================================================================

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Introduction.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Introduction.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Introduction.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,78 @@
+# 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: 2009-01-04 22:24+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
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introduction"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:8
+#, no-c-format
+msgid ""
+"Hibernate, like all other object/relational mapping tools, requires metadata "
+"that governs the transformation of data from one representation to the other "
+"(and vice versa). In Hibernate 2.x, mapping metadata is most of the time "
+"declared in XML text files. Another option is XDoclet, utilizing Javadoc "
+"source code annotations and a preprocessor at compile time. The same kind of "
+"annotation support is now available in the standard JDK, although more "
+"powerful and better supported by tools. IntelliJ IDEA, and Eclipse for "
+"example, support auto-completion and syntax highlighting of JDK 5.0 "
+"annotations. Annotations are compiled into the bytecode and read at runtime "
+"(in Hibernate's case on startup) using reflection, so no external XML files "
+"are needed."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:11
+#, no-c-format
+msgid ""
+"The EJB3 specification recognizes the interest in and the success of the "
+"transparent object/relational mapping paradigm. The EJB3 specification "
+"standardizes the basic APIs and the metadata needed for any object/"
+"relational persistence mechanism. Hibernate EntityManager implements the "
+"programming interfaces and lifecycle rules as defined by the EJB3 "
+"persistence specification. Together with Hibernate Annotations, this wrapper "
+"implements a complete (and standalone) EJB3 persistence solution on top of "
+"the mature Hibernate core. You may use a combination of all three together, "
+"annotations without EJB3 programming interfaces and lifecycle, or even pure "
+"native Hibernate, depending on the business and technical needs of your "
+"project. You can at all times fall back to Hibernate native APIs, or if "
+"required, even to native JDBC and SQL."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:14
+#, no-c-format
+msgid ""
+"This release is based on the final release of the EJB 3.0 / JPA "
+"specification (aka JSP-220) and support all the specification features "
+"(including the optional ones). Most of the Hibernate features and extensions "
+"are also available through Hibernate-specific annotations compared to the "
+"specification are also available. While the Hibernate feature coverage is "
+"now very high, some are still missing. The eventual goal is to cover all of "
+"them. See the JIRA road map section for more information."
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:17
+#, no-c-format
+msgid ""
+"If you are moving from previous Hibernate Annotations versions, please have "
+"a look at <ulink url=\"http://www.hibernate.org/398.html\">Java Persistence "
+"migration guide</ulink>."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Overriding_metadata_through_XML.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Overriding_metadata_through_XML.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Overriding_metadata_through_XML.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,403 @@
+# 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: 2009-01-04 22:24+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
+#: Overriding_metadata_through_XML.xml:6
+#, no-c-format
+msgid "Overriding metadata through XML"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:7
+#, no-c-format
+msgid ""
+"The primary target for metadata in EJB3 is annotations, but the EJB3 "
+"specification provides a way to override or replace the annotation-defined "
+"metadata through an XML deployment descriptor. In the current release only "
+"pure EJB3 annotations overriding are supported. If you wish to use Hibernate-"
+"specific features in some entities, you'll have to either use annotations or "
+"fallback to hbm files. You can of course mix and match annotated entities "
+"and entities described in hbm files."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:10
+#, no-c-format
+msgid "The unit test suite shows some additional XML file samples."
+msgstr ""
+
+#. Tag: title
+#: Overriding_metadata_through_XML.xml:14
+#, no-c-format
+msgid "Principles"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:15
+#, no-c-format
+msgid ""
+"The XML deployment descriptor structure has been designed to reflect the "
+"annotations one. So if you know the annotations structure, using the XML "
+"schema will be straightforward for you."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:18
+#, no-c-format
+msgid ""
+"You can define one or more XML files describing your metadata, these files "
+"will be merged by the overriding engine."
+msgstr ""
+
+#. Tag: title
+#: Overriding_metadata_through_XML.xml:22
+#, no-c-format
+msgid "Global level metadata"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:23
+#, no-c-format
+msgid ""
+"You can define global level metadata available for all XML files. You must "
+"not define these metadata more than once per deployment."
+msgstr ""
+
+#. Tag: programlisting
+#: Overriding_metadata_through_XML.xml:27
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_95.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:28
+#, no-c-format
+msgid ""
+"<literal>xml-mapping-metadata-complete</literal> means that all entity, "
+"mapped-superclasses and embeddable metadata should be picked up from XML "
+"(that is, ignore annotations)."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:31
+#, no-c-format
+msgid ""
+"<literal>schema / catalog</literal> will override all default definitions of "
+"schema and catalog in the metadata (both XML and annotations)."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:34
+#, no-c-format
+msgid ""
+"<literal>cascade-persist</literal> means that all associations have PERSIST "
+"as a cascade type. We recommend you to not use this feature."
+msgstr ""
+
+#. Tag: title
+#: Overriding_metadata_through_XML.xml:40
+#, no-c-format
+msgid "Entity level metadata"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:41
+#, no-c-format
+msgid ""
+"You can either define or override metadata information on a given entity."
+msgstr ""
+
+#. Tag: programlisting
+#: Overriding_metadata_through_XML.xml:45
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_96.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Overriding_metadata_through_XML.xml:46
+#: Overriding_metadata_through_XML.xml:116
+#, no-c-format
+msgid "Notes"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:48
+#, no-c-format
+msgid ""
+"<literal>entity-mappings</literal>: entity-mappings is the root element for "
+"all XML files. You must declare the xml schema, the schema file is included "
+"in the <filename>hibernate-annotations.jar</filename> file, no Internet "
+"access will be processed by Hibernate Annotations."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:53
+#, no-c-format
+msgid ""
+"<literal>package</literal> (optional): default package used for all non "
+"qualified class names in the given deployment descriptor file."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:58
+#, no-c-format
+msgid "<literal>entity</literal>: describes an entity."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:61
+#, no-c-format
+msgid ""
+"<literal>metadata-complete</literal> defines whether the metadata "
+"description for this element is complete or not (in other words, if "
+"annotations present at the class level should be considered or not)."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:64
+#, no-c-format
+msgid ""
+"An entity has to have a <literal>class</literal> attribute referring to the "
+"java class the metadata applies on."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:67
+#, no-c-format
+msgid ""
+"You can overrides entity name through the <literal>name</literal> attribute, "
+"if none is defined and if an <literal>@Entity.name</literal> is present, "
+"then it is used (provided that metadata complete is not set)."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:70
+#, no-c-format
+msgid ""
+"For metadata complete (see below) element, you can define an "
+"<literal>access</literal> (either <literal>FIELD</literal> or "
+"<literal>PROPERTY</literal> (default)). For non metadata complete element, "
+"if <literal>access</literal> is not defined, the @Id position will lead "
+"position, if <literal>access</literal> is defined, the value is used."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:75
+#, no-c-format
+msgid ""
+"<literal>table</literal>: you can declare table properties (name, schema, "
+"catalog), if none is defined, the java annotation is used."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:78
+#, no-c-format
+msgid "You can define one or several unique constraints as seen in the example"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:83
+#, no-c-format
+msgid ""
+"<literal>secondary-table</literal>: defines a secondary table very much like "
+"a regular table except that you can define the primary key / foreign key "
+"column(s) through the <literal>primary-key-join-column</literal> element. On "
+"non metadata complete, annotation secondary tables are used only if there is "
+"no <literal>secondary-table</literal> definition, annotations are ignored "
+"otherwise."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:88
+#, no-c-format
+msgid ""
+"<literal>id-class</literal>: defines the id class in a similar way "
+"<literal>@IdClass</literal> does"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:93
+#, no-c-format
+msgid ""
+"<literal>inheritance</literal>: defines the inheritance strategy "
+"(<literal>JOINED</literal>, <literal>TABLE_PER_CLASS</literal>, "
+"<literal>SINGLE_TABLE</literal>), Available only at the root entity level"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:98
+#, no-c-format
+msgid "<literal>sequence-generator</literal>: defines a sequence generator"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:103
+#, no-c-format
+msgid "<literal>table-generator</literal>: defines a table generator"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:108
+#, no-c-format
+msgid ""
+"<literal><literal>primary-key-join-column</literal></literal>: defines the "
+"primary key join column for sub entities when JOINED inheritance strategy is "
+"used"
+msgstr ""
+
+#. Tag: programlisting
+#: Overriding_metadata_through_XML.xml:115
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_97.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:118
+#, no-c-format
+msgid ""
+"<literal>discriminator-value / discriminator-column</literal>: defines the "
+"discriminator value and the column holding it when the SINGLE_TABLE "
+"inheritance strategy is chosen"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:123
+#, no-c-format
+msgid ""
+"<literal>named-query</literal>: defines named queries and possibly the hints "
+"associated to them. Those definitions are additive to the one defined in "
+"annotations, if two definitions have the same name, the XML one has priority."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:128
+#, no-c-format
+msgid ""
+"<literal>named-native-query</literal>: defines an named native query and its "
+"sql result set mapping. Alternatively, you can define the <literal>result-"
+"class</literal>. Those definitions are additive to the one defined in "
+"annotations, if two definitions have the same name, the XML one has priority."
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:133
+#, no-c-format
+msgid ""
+"<literal>sql-result-set-mapping</literal>: describes the result set mapping "
+"structure. You can define both entity and column mappings. Those definitions "
+"are additive to the one defined in annotations, if two definitions have the "
+"same name, the XML one has priority"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:138
+#, no-c-format
+msgid ""
+"<literal>attribute-override / association-override</literal>: defines a "
+"column or join column overriding. This overriding is additive to the one "
+"defined in annotations"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:145
+#, no-c-format
+msgid ""
+"Same applies for <literal>&lt;embeddable&gt;</literal> and <literal>&lt;"
+"mapped-superclass&gt;</literal>."
+msgstr ""
+
+#. Tag: title
+#: Overriding_metadata_through_XML.xml:151
+#, no-c-format
+msgid "Property level metadata"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:152
+#, no-c-format
+msgid ""
+"You can of course define XML overriding for properties. If metadata complete "
+"is defined, then additional properties (ie at the Java level) will be "
+"ignored. Otherwise, once you start overriding a property, all annotations on "
+"the given property are ignored. All property level metadata behave in "
+"<literal>entity/attributes</literal>, <literal>mapped-superclass/attributes</"
+"literal> or <literal>embeddable/attributes</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Overriding_metadata_through_XML.xml:156
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_98.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:157
+#, no-c-format
+msgid ""
+"You can override a property through <literal>id</literal>, <literal>embedded-"
+"id</literal>, <literal>version</literal>, <literal>embedded</literal> and "
+"<literal>basic</literal>. Each of these elements can have sub-elements "
+"accordingly: <literal>lob</literal>, <literal>temporal</literal>, "
+"<literal>enumerated</literal>, <literal>column</literal>."
+msgstr ""
+
+#. Tag: title
+#: Overriding_metadata_through_XML.xml:163
+#, no-c-format
+msgid "Association level metadata"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:164
+#, no-c-format
+msgid ""
+"You can define XML overriding for associations. All association level "
+"metadata behave in <literal>entity/attributes</literal>, <literal>mapped-"
+"superclass/attributes</literal> or <literal>embeddable/attributes</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Overriding_metadata_through_XML.xml:168
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_99.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Overriding_metadata_through_XML.xml:169
+#, no-c-format
+msgid ""
+"You can override an association through <literal>one-to-many</literal>, "
+"<literal>one-to-one</literal>, <literal>many-to-one</literal>, and "
+"<literal>many-to-many</literal>. Each of these elements can have sub-"
+"elements accordingly: <literal>join-table</literal> (which can have "
+"<literal>join-column</literal>s and <literal>inverse-join-column</"
+"literal>s), <literal><literal>join-column</literal>s</literal>, <literal>map-"
+"key</literal>, and <literal>order-by</literal>. <literal>mapped-by</literal> "
+"and <literal>target-entity</literal> can be defined as attributes when it "
+"makes sense. Once again the structure is reflects the annotations structure. "
+"You can find all semantic information in <xref linkend=\"chap-"
+"Hibernate_Annotations_Reference_Guide-Entity_Beans\"/>."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Preface.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Preface.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Preface.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,21 @@
+# 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: 2009-01-04 22:24+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
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Revision_History.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Revision_History.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Revision_History.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,34 @@
+# 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: 2009-01-04 22:24+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
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Rüdiger</firstname> <surname>Landmann</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Initial release"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Setting_up_an_annotations_project.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Setting_up_an_annotations_project.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_Annotations_Reference_Guide/pot/Setting_up_an_annotations_project.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,235 @@
+# 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: 2009-01-04 22:24+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
+#: Setting_up_an_annotations_project.xml:6
+#, no-c-format
+msgid "Setting up an annotations project"
+msgstr ""
+
+#. Tag: title
+#: Setting_up_an_annotations_project.xml:8
+#, no-c-format
+msgid "Requirements"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:11
+#, no-c-format
+msgid ""
+"Download and unpack the Hibernate Annotations distribution from the "
+"Hibernate website."
+msgstr ""
+
+#. Tag: emphasis
+#: Setting_up_an_annotations_project.xml:17
+#, no-c-format
+msgid "This release requires Hibernate Core 3.2.0.GA and above."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:21
+#, no-c-format
+msgid "This release is known to work on Hibernate Core 3.2.0 up to 3.2.2.GA"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:26
+#, no-c-format
+msgid ""
+"Make sure you have JDK 5.0 installed or above. You can of course continue "
+"using XDoclet and get some of the benefits of annotation-based metadata with "
+"older JDK versions. Note that this document only describes JDK 5.0 "
+"annotations and you have to refer to the XDoclet documentation for more "
+"information."
+msgstr ""
+
+#. Tag: title
+#: Setting_up_an_annotations_project.xml:34
+#, no-c-format
+msgid "Configuration"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:35
+#, no-c-format
+msgid ""
+"First, set up your classpath (after you have created a new project in your "
+"favorite IDE):"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:39
+#, no-c-format
+msgid ""
+"Copy all Hibernate3 core and required 3rd party library files (see lib/"
+"README.txt in Hibernate)."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:44
+#, no-c-format
+msgid ""
+"Copy <filename>hibernate-annotations.jar</filename>, <filename>lib/hibernate-"
+"comons-annotations.jar</filename> and <filename>lib/ejb3-persistence.jar</"
+"filename> from the Hibernate Annotations distribution to your classpath as "
+"well."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:50
+#, no-c-format
+msgid ""
+"If you wish to use Hibernate Validator, download it from the Hibernate "
+"website and add <filename>hibernate-validator.jar</filename> in your "
+"classpath."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:53
+#, no-c-format
+msgid ""
+"If you wish to use Hibernate Search, download it from the Hibernate website "
+"and add <filename>hibernate-search.jar</filename> and <filename>lucene-core-"
+"x.y.z.jar</filename> in your classpath."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:56
+#, no-c-format
+msgid ""
+"We also recommend a small wrapper class to startup Hibernate in a static "
+"initializer block, known as <classname>HibernateUtil</classname>. You might "
+"have seen this class in various forms in other areas of the Hibernate "
+"documentation. For Annotation support you have to enhance this helper class "
+"as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: Setting_up_an_annotations_project.xml:58
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_1.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:60
+#, no-c-format
+msgid ""
+"Interesting here is the use of <classname>AnnotationConfiguration</"
+"classname>. The packages and annotated classes are declared in your regular "
+"XML configuration file (usually <filename>hibernate.cfg.xml</filename>). "
+"Here is the equivalent of the above declaration:"
+msgstr ""
+
+#. Tag: programlisting
+#: Setting_up_an_annotations_project.xml:64
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_2.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:65
+#, no-c-format
+msgid ""
+"Note that you can mix the hbm.xml use and the new annotation one. The "
+"resource element can be either an hbm file or an EJB3 XML deployment "
+"descriptor. The distinction is transparent for your configuration process."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:68
+#, no-c-format
+msgid ""
+"Alternatively, you can define the annotated classes and packages using the "
+"programmatic API"
+msgstr ""
+
+#. Tag: programlisting
+#: Setting_up_an_annotations_project.xml:72
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_3.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:73
+#, no-c-format
+msgid ""
+"You can also use the Hibernate EntityManager which has its own configuration "
+"mechanism. Please refer to this project documentation for more details."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:76
+#, no-c-format
+msgid ""
+"There is no other difference in the way you use Hibernate APIs with "
+"annotations, except for this startup routine change or in the configuration "
+"file. You can use your favorite configuration method for other properties "
+"( <filename>hibernate.properties</filename>, <filename>hibernate.cfg.xml</"
+"filename>, programmatic APIs, etc). You can even mix annotated persistent "
+"classes and classic <filename>hbm.cfg.xml</filename> declarations with the "
+"same <classname>SessionFactory</classname>. You can however not declare a "
+"class several times (whether annotated or through hbm.xml). You cannot mix "
+"configuration strategies (hbm vs annotations) in a mapped entity hierarchy "
+"either."
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:79
+#, no-c-format
+msgid ""
+"To ease the migration process from hbm files to annotations, the "
+"configuration mechanism detects the mapping duplication between annotations "
+"and hbm files. HBM files are then prioritized over annotated metadata on a "
+"class to class basis. You can change the priority using <literal>hibernate."
+"mapping.precedence</literal> property. The default is <literal>hbm, class</"
+"literal>, changing it to <literal>class, hbm</literal> will prioritize the "
+"annotated classes over hbm files when a conflict occurs."
+msgstr ""
+
+#. Tag: title
+#: Setting_up_an_annotations_project.xml:85
+#, no-c-format
+msgid "Properties"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:86
+#, no-c-format
+msgid ""
+"Aside from the Hibernate core properties, Hibernate Annotations reacts to "
+"the following one:"
+msgstr ""
+
+#. Tag: filename
+#: Setting_up_an_annotations_project.xml:91
+#, no-c-format
+msgid "hibernate.validator.apply_to_ddl"
+msgstr ""
+
+#. Tag: para
+#: Setting_up_an_annotations_project.xml:93
+#, no-c-format
+msgid ""
+"Use Hibernate Validator annotations to refine the database schema "
+"generation. Default to true."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/Makefile
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/Makefile	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/Makefile	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+#Makefile for Hibernate_EntityManager_User_Guide
+
+XML_LANG	= en-US
+DOCNAME		= Hibernate_EntityManager_User_Guide_CP03_FP01
+#PRODUCT	= FIX_ME!
+BRAND		= JBoss
+
+#OTHER_LANGS	= as-IN bn-IN de-DE es-ES fr-FR gu-IN hi-IN it-IT ja-JP kn-IN ko-KR ml-IN mr-IN or-IN pa-IN pt-BR ru-RU si-LK ta-IN te-IN zh-CN zh-TW
+
+# Extra Parameters start here
+
+# Extra Parameters stop here
+COMMON_CONFIG  = /usr/share/publican
+include $(COMMON_CONFIG)/make/Makefile.common
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/.directory
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/.directory	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/.directory	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+[Dolphin]
+Timestamp=2008,11,24,15,1,35
+ViewMode=1

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Architecture.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Architecture.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Architecture.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Architecture">
+	<title>Architecture</title>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Architecture-Definitions">
+		<title>Definitions</title>
+		<para>
+			EJB3 is part of the Java EE 5.0 platform. Persistence in EJB3 is available in EJB3 containers, as well as for standalone J2SE applications that execute outside of a particular container. The following programming interfaces and artifacts are available in both environments.
+		</para>
+		<variablelist spacing="compact">
+			<varlistentry>
+				<term><literal>EntityManagerFactory</literal></term>
+				<listitem>
+					<para>
+						An entity manager factory provides entity manager instances, all instances are configured to connect to the same database, to use the same default settings as defined by the particular implementation, etc. You can prepare several entity manager factories to access several data stores. This interface is similar to the <literal>SessionFactory</literal> in native Hibernate.
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term><literal>EntityManager</literal></term>
+				<listitem>
+					<para>
+						The <literal>EntityManager</literal> API is used to access a database in a particular unit of work. It is used to create and remove persistent entity instances, to find entities by their primary key identity, and to query over all entities. This interface is similar to the <literal>Session</literal> in Hibernate.
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term>Persistence context</term>
+				<listitem>
+					<para>
+						A persistence context is a set of entity instances in which for any persistent entity identity there is a unique entity instance. Within the persistence context, the entity instances and their lifecycle is managed by a particular entity manager. The scope of this context can either be the transaction, or an extended unit of work.
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term>Persistence unit</term>
+				<listitem>
+					<para>
+						The set of entity types that can be managed by a given entity manager is defined by a persistence unit. A persistence unit defines the set of all classes that are related or grouped by the application, and which must be collocated in their mapping to a single data store.
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term>Container-managed entity manager</term>
+				<listitem>
+					<para>
+						An Entity Manager whose lifecycle is managed by the container
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term>Application-managed entity manager</term>
+				<listitem>
+					<para>
+						An Entity Manager whose lifecycle is managed by the application.
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term>JTA entity manager</term>
+				<listitem>
+					<para>
+						Entity manager involved in a JTA transaction
+					</para>
+				</listitem>
+			</varlistentry>
+			<varlistentry>
+				<term>Resource-local entity manager</term>
+				<listitem>
+					<para>
+						Entity manager using a resource transaction (not a JTA transaction).
+					</para>
+				</listitem>
+			</varlistentry>
+		</variablelist>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Architecture-EJB_container_environment">
+		<title>EJB container environment</title>
+		<section id="sect-Hibernate_EntityManager_User_Guide-EJB_container_environment-Container_managed_entity_manager">
+			<title>Container-managed entity manager</title>
+			<para>
+				The most common and widely used entity manager in a Java EE environment is the container-managed entity manager. In this mode, the container is responsible for the opening and closing of the entity manager (this is transparent to the application). It is also responsible for transaction boundaries. A container-managed entity manager is obtained in an application through dependency injection or through JNDI lookup, A container-managed entity manger requires the use of a JTA transaction.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-EJB_container_environment-Application_managed_entity_manager">
+			<title>Application-managed entity manager</title>
+			<para>
+				An application-managed entity manager allows you to control the entity manager in application code. This entity manager is retrieved through the <literal>EntityManagerFactory</literal> API. An application-managed entity manager can be either involved in the current JTA transaction (a JTA entity manager), or the transaction may be controlled through the <literal>EntityTransaction</literal> API (a resource-local entity manager). The resource-local entity manager transaction maps to a direct resource transaction (i. e. in Hibernate's case a JDBC transaction). The entity manager type (JTA or resource-local) is defined at configuration time, when setting up the entity manager factory.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-EJB_container_environment-Persistence_context_scope">
+			<title>Persistence context scope</title>
+			<para>
+				An entity manager is the API to interact with the persistence context. Two common strategies can be used: binding the persistence context to the transaction boundaries, or keeping the persistence context available across several transactions.
+			</para>
+			<para>
+				The most common case is to bind the persistence context scope to the current transaction scope. This is only do-able when JTA transactions are used: the persistence context is associated with the JTA transaction life cycle. When a entity manager is invoked, the persistence context is also opened, if there is no persistence context associated with the current JTA transaction. Otherwise, the associated persistence context is used. The persistence context ends when the JTA transaction completes. This means that during the JTA transaction, an application will be able to work on managed entities of the same persistence context. In other words, you don't have to pass the entity manager's persistence context across your EJB method calls, but simply use dependency injection or lookup whenever you need an entity manager.
+			</para>
+			<para>
+				You can also use an extended persistence context. This can be combined with stateful session beans, if you use a container-managed entity manager: the persistence context is created when an entity manager is retrieved from dependency injection or JNDI lookup , and is kept until the container closes it after the completion of the <literal>Remove</literal> stateful session bean method. This is a perfect mechanism for implementing a "long" unit of work pattern. For example, if you have to deal with multiple user interaction cycles as a single unit of work (for example, a wizard dialog that has to be fully completed), you usually model this as a unit of work from the point of view of the application user, and implement it using an extended persistence context. Please refer to the Hibernate reference manual or the book <citetitle>Hibernate In Action</citetitle> for more information about this pattern. JBoss Seam is a framework that link together JSF and EJB3 around the notio!
 n of conversation and unit of work. For an application-managed entity manager the persistence context is created when the entity manager is created and kept until the entity manager is closed. In an extended persistence context, all modification operations (persist, merge, remove) executed outside a transaction are queued until the persistence context is attached to a transaction. The transaction typically occurs at the user process end, allowing the whole process to be committed or rollbacked as application-managed entity manager only supports the extended persistence context.
+			</para>
+			<para>
+				A resource-local entity manager or an entity manager created with <literal>EntityManagerFactory.createEntityManager()</literal> (application-managed) has a one-to-one relationship with a persistence context. In other situations, <emphasis>persistence context propagation</emphasis> occurs.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-EJB_container_environment-Persistence_context_propagation">
+			<title>Persistence context propagation</title>
+			<para>
+				Persistence context propagation occurs for container-managed entity managers.
+			</para>
+			<para>
+				In a transaction-scoped container-managed entity manager (common case in a Java EE environment), the JTA transaction propagation is the same as the persistence context resource propagation. In other words, container-managed transaction-scoped entity managers retrieved within a given JTA transaction all share the same persistence context. In Hibernate terms, this means all managers share the same session.
+			</para>
+			<para>
+				Important: persistence context is never shared between different JTA transactions or between entity manager that do not came from the same entity manager factory. There are some noteworthy exceptions for context propagation when using extended persistence contexts:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						If a stateless session bean, message-driven bean, or stateful session bean with a transaction-scoped persistence context calls a stateful session bean with an extended persistence context in the same JTA transaction, an <literal>IllegalStateException</literal> is thrown.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						If a stateful session bean with an extended persistence context calls as stateless session bean or a stateful session bean with a transaction-scoped persistence context in the same JTA transaction, the persistence context is propagated.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						If a stateful session bean with an extended persistence context calls a stateless or stateful session bean in a different JTA transaction context, the persistence context is not propagated.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						If a stateful session bean with an extended persistence context instantiates another stateful session bean with an extended persistence context, the extended persistence context is inherited by the second stateful session bean. If the second stateful session bean is called with a different transaction context than the first, an <literal>IllegalStateException</literal> is thrown.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						If a stateful session bean with an extended persistence context calls a stateful session bean with a different extended persistence context in the same transaction, an <literal>IllegalStateException</literal> is thrown.
+					</para>
+				</listitem>
+			</itemizedlist>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Architecture-Java_SE_environments" revision="1">
+		<title>Java SE environments</title>
+		<para>
+			In a Java SE environment only extended context application-managed entity managers are available. You can retrieve an entity manger using the <literal>EntityManagerFactory</literal> API. Only resource-local entity managers are available. In other words, JTA transactions and persistence context propagation are not supported in Java SE (you will have to propagate the persistence context yourself, e.g. using the thread local session pattern popular in the Hibernate community).
+		</para>
+		<para>
+			Extended context means that a persistence context is created when the entity manager is retrieved (using <literal>EntityManagerFactory.createEntityManager(...)</literal> ) and closed when the entity manager is closed. In this case, many resource-local transaction share the same persistence context.
+		</para>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Author_Group.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Author_Group.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Author_Group.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<authorgroup>
+	<author>
+		<firstname>Hibernate Development Team</firstname>
+		<surname></surname>
+	</author>
+	<editor>
+		<firstname>Red Hat Inc. Engineering Content Services</firstname>
+		<surname></surname>
+	</editor>
+</authorgroup>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Batch_processing.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Batch_processing.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Batch_processing.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,55 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Batch_processing">
+	<title>Batch processing</title>
+	<para>
+		Batch processing has traditionally been difficult in full object/relational mapping. ORM is all about object state management, which implies that object state is available in memory. However, Hibernate has some features to optimize batch processing which are discussed in the Hibernate reference guide, however, EJB3 persistence differs slightly.
+	</para>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Batch_processing-Bulk_updatedelete">
+		<title>Bulk update/delete</title>
+		<para>
+			As already discussed, automatic and transparent object/relational mapping is concerned with the management of object state. This implies that the object state is available in memory, hence updating or deleting (using SQL <literal>UPDATE</literal> and <literal>DELETE</literal>) data directly in the database will not affect in-memory state. However, Hibernate provides methods for bulk SQL-style <literal>UPDATE</literal> and <literal>DELETE</literal> statement execution which are performed through EJB-QL (<xref linkend="chap-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language" />).
+		</para>
+		<para>
+			The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</literal> statements is: <literal>( UPDATE | DELETE ) FROM? ClassName (WHERE WHERE_CONDITIONS)?</literal>. Note that:
+		</para>
+		<itemizedlist spacing="compact">
+			<listitem>
+				<para>
+					In the from-clause, the FROM keyword is optional.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					There can only be a single class named in the from-clause, and it <emphasis>cannot</emphasis> have an alias (this is a current Hibernate limitation and will be removed soon).
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					No joins (either implicit or explicit) can be specified in a bulk EJB-QL query. Sub-queries may be used in the where-clause.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					The where-clause is also optional.
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			As an example, to execute an EJB-QL <literal>UPDATE</literal>, use the <literal>Query.executeUpdate()</literal> method:
+		</para>
+		<programlisting language="java"><xi:include href="extras/Code_Example_34.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			To execute an EJB-QL <literal>DELETE</literal>, use the same <literal>Query.executeUpdate()</literal> method (the method is named for those familiar with JDBC's <literal>PreparedStatement.executeUpdate()</literal>):
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_35.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			The <literal>int</literal> value returned by the <literal>Query.executeUpdate()</literal> method indicate the number of entities effected by the operation. This may or may not correlate with the number of rows effected in the database. An EJB-QL 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.
+		</para>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Book_Info.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Book_Info.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Book_Info.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,33 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<bookinfo id="book-Hibernate_EntityManager_User_Guide-Hibernate_EntityManager_User_Guide_CP07">
+	<title>Hibernate EntityManager User Guide CP07</title>
+	<subtitle>for Use with JBoss Enterprise Application Platform 4.2.0 Cumulative Patch 7</subtitle>
+	<productname>JBoss Enterprise Application Platform</productname>
+	<productnumber>4.2</productnumber>
+	<edition>1.0</edition>
+	<pubsnumber>2</pubsnumber>
+	<pubdate>, 2009</pubdate>
+	<abstract>
+		<para>This book is a User Guide to Hibernate EntityManager for
+JBoss Enterprise Application Platform 4.2.0 CP07.</para></abstract>
+			<corpauthor>
+				<inlinemediaobject>
+					<imageobject>
+						<imagedata fileref="Common_Content/images/title_logo.svg" format="SVG" />
+					</imageobject>
+					<textobject>
+						<phrase>Logo</phrase>
+					</textobject>
+				</inlinemediaobject>
+			</corpauthor>
+			<copyright>
+				<year>&YEAR;</year>
+				<holder>&HOLDER;</holder>
+			</copyright>
+			<xi:include href="Common_Content/Legal_Notice.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+			<xi:include href="Author_Group.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+		</bookinfo>
+		

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Chapter.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Chapter.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Chapter.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Test">
+	<title>Test</title>
+	<para>
+		This is a test paragraph
+	</para>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Test-Section_1_Test">
+		<title>Section 1 Test</title>
+		<para>
+			Test of a section
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Test-Section_2_Test">
+		<title>Section 2 Test</title>
+		<para>
+			Test of a section
+		</para>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/EJBQL_The_Object_Query_Language.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/EJBQL_The_Object_Query_Language.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/EJBQL_The_Object_Query_Language.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,861 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language">
+	<title>EJB-QL: The Object Query Language</title>
+	<para>
+		EJB3-QL has been heavily inspired by HQL, the native Hibernate Query Language. Both are therefore very close to SQL, but portable and independent of the database schema. People familiar with HQL shouldn't have any problem using EJB-QL. Actually, you use the same query API for EJB-QL and HQL queries. Portable EJB3 applications however should stick to EJB-QL or similar vendor extensions are needed.
+	</para>
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Case_Sensitivity">
+		<title>Case Sensitivity</title>
+		<para>
+			Queries are case-insensitive, except for names of Java classes and properties. 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>.
+		</para>
+		<para>
+			This manual uses lowercase EJBQL keywords. Some users find queries with uppercase keywords more readable, but we find this convention ugly when embedded in Java code.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-The_from_clause">
+		<title>The from clause</title>
+		<para>
+			The simplest possible EJB-QL query is of the form:
+		</para>
+		
+<programlisting>select c from eg.Cat c
+</programlisting>
+		<para>
+			which simply returns all instances of the class <literal>eg.Cat</literal>. Unlike HQL, the select clause is not optional in EJB-QL. We don't usually need to qualify the class name, since the entity name defaults to the unqualified class name (<literal>@Entity</literal>). So we almost always just write:
+		</para>
+		
+<programlisting>select c from Cat c
+</programlisting>
+		<para>
+			As you may have noticed you can assign aliases to classes, the <literal>as</literal> keywork is optional. An alias allows you to refer to <literal>Cat</literal> in other parts of the query.
+		</para>
+		
+<programlisting>select cat from Cat as cat
+</programlisting>
+		<para>
+			Multiple classes may appear, resulting in a Cartesian product or "cross" join.
+		</para>
+		
+<programlisting>select form, param from Formula as form, Parameter as param
+</programlisting>
+		<para>
+			It is considered good practice to name query aliases using an initial lowercase, consistent with Java naming standards for local variables (eg. <literal>domesticCat</literal>).
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Associations_and_joins" revision="1">
+		<title>Associations and joins</title>
+		<para>
+			You may also assign aliases to associated entities, or even to elements of a collection of values, using a <literal>join</literal>.
+		</para>
+		
+<programlisting>select cat, mate, kitten from Cat as cat 
+    inner join cat.mate as mate
+    left outer join cat.kittens as kitten
+</programlisting>
+		
+<programlisting>select cat from Cat as cat left join cat.mate.kittens as kittens
+</programlisting>
+		<para>
+			The supported join types are borrowed from ANSI SQL
+		</para>
+		<itemizedlist spacing="compact">
+			<listitem>
+				<para>
+					<literal>inner join</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>left outer join</literal>
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			The <literal>inner join</literal>, <literal>left outer join</literal> constructs may be abbreviated.
+		</para>
+		
+<programlisting>select cat, mate, kitten from Cat as cat 
+    join cat.mate as mate
+    left join cat.kittens as kitten
+</programlisting>
+		<para>
+			In addition, 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 fetching options in the associations and collection mapping metadata. See the Performance chapter of the Hibernate reference guide for more information.
+		</para>
+		
+<programlisting>select cat from Cat as cat 
+    inner join fetch cat.mate
+    left join fetch cat.kittens
+</programlisting>
+		<para>
+			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). Also, the associated objects are not returned directly in the query results. Instead, they may be accessed via the parent object. The only reason we might need an alias is if we are recursively join fetching a further collection:
+		</para>
+		
+<programlisting>select cat from Cat as cat 
+    inner join fetch cat.mate
+    left join fetch cat.kittens child
+    left join fetch child.kittens
+</programlisting>
+		<para>
+			Note that the <literal>fetch</literal> construct may not be used in queries called using <literal>scroll()</literal> or <literal>iterate()</literal>. Nor should <literal>fetch</literal> be used together with <literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>. It is possible to create a cartesian product by join fetching more than one collection in a query (as in the example above), be careful the result of this product isn't bigger than you expect.
+		</para>
+		<para>
+			If you are using property-level lazy fetching (with bytecode instrumentation), it is possible to force Hibernate to fetch the lazy properties immediately (in the first query) using <literal>fetch all properties</literal>. This is Hibernate specific option:
+		</para>
+		
+<programlisting>select doc from Document doc fetch all properties order by doc.name
+</programlisting>
+		
+<programlisting>select doc from Document doc fetch all properties where lower(doc.name) like '%cats%'
+</programlisting>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-The_select_clause">
+		<title>The select clause</title>
+		<para>
+			The <literal>select</literal> clause picks which objects and properties to return in the query result set. Consider:
+		</para>
+		
+<programlisting>select mate 
+from Cat as cat 
+    inner join cat.mate as mate
+</programlisting>
+		<para>
+			The query will select <literal>mate</literal>s of other <literal>Cat</literal>s. Actually, you may express this query more compactly as:
+		</para>
+		
+<programlisting>select cat.mate from Cat cat
+</programlisting>
+		<para>
+			Queries may return properties of any value type including properties of component type:
+		</para>
+		
+<programlisting>select cat.name from DomesticCat cat
+where cat.name like 'fri%'
+</programlisting>
+		
+<programlisting>select cust.name.firstName from Customer as cust
+</programlisting>
+		<para>
+			Queries may return multiple objects and/or properties as an array of type <literal>Object[]</literal>,
+		</para>
+		
+<programlisting>select mother, offspr, mate.name 
+from DomesticCat as mother
+    inner join mother.mate as mate
+    left outer join mother.kittens as offspr
+</programlisting>
+		<para>
+			or as a <literal>List</literal> (HQL specific feature)
+		</para>
+		
+<programlisting>select new list(mother, offspr, mate.name)
+from DomesticCat as mother
+    inner join mother.mate as mate
+    left outer join mother.kittens as offspr
+</programlisting>
+		<para>
+			or as an actual typesafe Java object,
+		</para>
+		
+<programlisting>select new Family(mother, mate, offspr)
+from DomesticCat as mother
+    join mother.mate as mate
+    left join mother.kittens as offspr
+</programlisting>
+		<para>
+			assuming that the class <literal>Family</literal> has an appropriate constructor.
+		</para>
+		<para>
+			You may assign aliases to selected expressions using <literal>as</literal>:
+		</para>
+		
+<programlisting>select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
+from Cat cat
+</programlisting>
+		<para>
+			This is most useful when used together with <literal>select new map</literal> (HQL specific feature):
+		</para>
+		
+<programlisting>select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
+from Cat cat
+</programlisting>
+		<para>
+			This query returns a <literal>Map</literal> from aliases to selected values.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Aggregate_functions">
+		<title>Aggregate functions</title>
+		<para>
+			HQL queries may even return the results of aggregate functions on properties:
+		</para>
+		
+<programlisting>select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)
+from Cat cat
+</programlisting>
+		<para>
+			The supported aggregate functions are
+		</para>
+		<itemizedlist spacing="compact">
+			<listitem>
+				<para>
+					<literal>avg(...), avg(distinct ...), sum(...), sum(distinct ...), min(...), max(...)</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>count(*)</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>count(...), count(distinct ...), count(all...)</literal>
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			You may use arithmetic operators, concatenation, and recognized SQL functions in the select clause (dpending on configured dialect, HQL specific feature):
+		</para>
+		
+<programlisting>select cat.weight + sum(kitten.weight) 
+from Cat cat 
+    join cat.kittens kitten
+group by cat.id, cat.weight
+</programlisting>
+		
+<programlisting>select firstName||' '||initial||' '||upper(lastName) from Person
+</programlisting>
+		<para>
+			The <literal>distinct</literal> and <literal>all</literal> keywords may be used and have the same semantics as in SQL.
+		</para>
+		
+<programlisting>select distinct cat.name from Cat cat
+
+select count(distinct cat.name), count(cat) from Cat cat
+</programlisting>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Polymorphic_queries">
+		<title>Polymorphic queries</title>
+		<para>
+			A query like:
+		</para>
+		
+<programlisting>select cat from Cat as cat
+</programlisting>
+		<para>
+			returns instances not only of <literal>Cat</literal>, but also of subclasses like <literal>DomesticCat</literal>. Hibernate queries may name <emphasis>any</emphasis> Java class or interface in the <literal>from</literal> clause (portable EJB-QL queries should only name mapped entities). 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:
+		</para>
+		
+<programlisting>from java.lang.Object o // HQL only
+</programlisting>
+		<para>
+			The interface <literal>Named</literal> might be implemented by various persistent classes:
+		</para>
+		
+<programlisting>from Named n, Named m where n.name = m.name // HQL only
+</programlisting>
+		<para>
+			Note that 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 can't call these queries using <literal>Query.scroll()</literal>.)
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-The_where_clause">
+		<title>The where clause</title>
+		<para>
+			The <literal>where</literal> clause allows you to narrow the list of instances returned. If no alias exists, you may refer to properties by name:
+		</para>
+		
+<programlisting>select cat from Cat cat where cat.name='Fritz'
+</programlisting>
+		<para>
+			returns instances of <literal>Cat</literal> named 'Fritz'.
+		</para>
+		
+<programlisting>select foo 
+from Foo foo, Bar bar
+where foo.startDate = bar.date
+</programlisting>
+		<para>
+			will return all instances of <literal>Foo</literal> for which there exists 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:
+		</para>
+		
+<programlisting>select cat from Cat cat where cat.mate.name is not null
+</programlisting>
+		<para>
+			This query translates to an SQL query with a table (inner) join. If you were to write something like
+		</para>
+		
+<programlisting>select foo from Foo foo  
+where foo.bar.baz.customer.address.city is not null
+</programlisting>
+		<para>
+			you would end up with a query that would require four table joins in SQL.
+		</para>
+		<para>
+			The <literal>=</literal> operator may be used to compare not only properties, but also instances:
+		</para>
+		
+<programlisting>select cat, rival from Cat cat, Cat rival where cat.mate = rival.mate
+</programlisting>
+		
+<programlisting>select cat, mate 
+from Cat cat, Cat mate
+where cat.mate = mate
+</programlisting>
+		<para>
+			The special property (lowercase) <literal>id</literal> may be used to reference the unique identifier of an object. (You may also use its mapped identifier property name.). Note that this keyword is specific to HQL.
+		</para>
+		
+<programlisting>select cat from Cat as cat where cat.id = 123
+
+select cat from Cat as cat where cat.mate.id = 69
+</programlisting>
+		<para>
+			The second query is efficient. No table join is required!
+		</para>
+		<para>
+			Properties of composite identifiers may also be used. Suppose <literal>Person</literal> has a composite identifier consisting of <literal>country</literal> and <literal>medicareNumber</literal>.
+		</para>
+		
+<programlisting>select person from bank.Person person
+where person.id.country = 'AU' 
+    and person.id.medicareNumber = 123456
+</programlisting>
+		
+<programlisting>select account from bank.Account account
+where account.owner.id.country = 'AU' 
+    and account.owner.id.medicareNumber = 123456
+</programlisting>
+		<para>
+			Once again, the second query requires no table join.
+		</para>
+		<para>
+			Likewise, 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. Once again, this is specific to HQL.
+		</para>
+		
+<programlisting>select cat from Cat cat where cat.class = DomesticCat
+</programlisting>
+		<para>
+			You may also specify properties of components or composite user types (and of components of components, etc). Never try to use a path-expression that ends in a property of component type (as opposed to a property of a component). For example, if <literal>store.owner</literal> is an entity with a component <literal>address</literal>
+		</para>
+		
+<programlisting>store.owner.address.city    // okay
+store.owner.address         // error!
+</programlisting>
+		<para>
+			An "any" type has the special properties <literal>id</literal> and <literal>class</literal>, allowing us to express a join in the following way (where <literal>AuditLog.item</literal> is a property mapped with <literal>&lt;any&gt;</literal>). <literal>Any</literal> is specific to Hibernate
+		</para>
+		
+<programlisting>from AuditLog log, Payment payment 
+where log.item.class = 'Payment' and log.item.id = payment.id
+</programlisting>
+		<para>
+			Notice that <literal>log.item.class</literal> and <literal>payment.class</literal> would refer to the values of completely different database columns in the above query.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Expressions">
+		<title>Expressions</title>
+		<para>
+			Expressions allowed in the <literal>where</literal> clause include most of the kind of things you could write in SQL:
+		</para>
+		<itemizedlist spacing="compact">
+			<listitem>
+				<para>
+					mathematical operators <literal>+, -, *, /</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					binary comparison operators <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					logical operations <literal>and, or, not</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Parentheses <literal>( )</literal>, indicating grouping
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					"Simple" case, <literal>case ... when ... then ... else ... end</literal>, and "searched" case, <literal>case when ... then ... else ... end (specific to HQL)</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					string concatenation <literal>...||...</literal> or <literal>concat(...,...) (use concat() for portable EJB-QL queries)</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>current_date()</literal>, <literal>current_time()</literal>, <literal>current_timestamp()</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, <literal>year(...)</literal>, (specific to HQL)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Any function or operator defined by EJB-QL 3.0: <literal>substring(), trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length()</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>coalesce()</literal> and <literal>nullif()</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<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
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Any database-supported SQL scalar function like <literal>sign()</literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					JDBC IN parameters <literal>?</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					named parameters <literal>:name</literal>, <literal>:start_date</literal>, <literal>:x1</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>'1970-01-01 10:00:01.0'</literal>
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Java <literal>public static final</literal> constants <literal>eg.Color.TABBY</literal>
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			<literal>in</literal> and <literal>between</literal> may be used as follows:
+		</para>
+		
+<programlisting>select cat from DomesticCat cat where cat.name between 'A' and 'B'
+</programlisting>
+		
+<programlisting>select cat from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )
+</programlisting>
+		<para>
+			and the negated forms may be written
+		</para>
+		
+<programlisting>select cat from DomesticCat cat where cat.name not between 'A' and 'B'
+</programlisting>
+		
+<programlisting>select cat from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )
+</programlisting>
+		<para>
+			Likewise, <literal>is null</literal> and <literal>is not null</literal> may be used to test for null values.
+		</para>
+		<para>
+			Booleans may be easily used in expressions by declaring HQL query substitutions in Hibernate configuration:
+		</para>
+		
+<programlisting>hibernate.query.substitutions true 1, false 0
+</programlisting>
+		<para>
+			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:
+		</para>
+		
+<programlisting>select cat from Cat cat where cat.alive = true
+</programlisting>
+		<para>
+			You may test the size of a collection with the special property <literal>size</literal>, or the special <literal>size()</literal> function (HQL specific feature).
+		</para>
+		
+<programlisting>select cat from Cat cat where cat.kittens.size &gt; 0
+</programlisting>
+		
+<programlisting>select cat from Cat cat where size(cat.kittens) &gt; 0
+</programlisting>
+		<para>
+			For indexed collections, you may refer to the minimum and maximum indices using <literal>minindex</literal> and <literal>maxindex</literal> functions. Similarly, you may refer to the minimum and maximum elements of a collection of basic type using the <literal>minelement</literal> and <literal>maxelement</literal> functions. These are HQL specific features.
+		</para>
+		
+<programlisting>select cal from Calendar cal where maxelement(cal.holidays) &gt; current date
+</programlisting>
+		
+<programlisting>select order from Order order where maxindex(order.items) &gt; 100
+</programlisting>
+		
+<programlisting>select order from Order order where minelement(order.items) &gt; 10000
+</programlisting>
+		<para>
+			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). While subqueries are supported by EJB-QL, <literal>elements</literal> and <literal>indices</literal> are specific HQL features.
+		</para>
+		
+<programlisting>select mother from Cat as mother, Cat as kit
+where kit in elements(foo.kittens)
+</programlisting>
+		
+<programlisting>select p from NameList list, Person p
+where p.name = some elements(list.names)
+</programlisting>
+		
+<programlisting>select cat from Cat cat where exists elements(cat.kittens)
+</programlisting>
+		
+<programlisting>select cat from Player p where 3 &gt; all elements(p.scores)
+</programlisting>
+		
+<programlisting>select cat from Show show where 'fizard' in indices(show.acts)
+</programlisting>
+		<para>
+			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> - may only be used in the where clause in Hibernate3.
+		</para>
+		<para>
+			In HQL, elements of indexed collections (arrays, lists, maps) may be referred to by index (in a where clause only):
+		</para>
+		
+<programlisting>select order from Order order where order.items[0].id = 1234
+</programlisting>
+		
+<programlisting>select person from Person person, Calendar calendar
+where calendar.holidays['national day'] = person.birthDay
+    and person.nationality.calendar = calendar
+</programlisting>
+		
+<programlisting>select item from Item item, Order order
+where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11
+</programlisting>
+		
+<programlisting>select item from Item item, Order order
+where order.items[ maxindex(order.items) ] = item and order.id = 11
+</programlisting>
+		<para>
+			The expression inside <literal>[]</literal> may even be an arithmetic expression.
+		</para>
+		
+<programlisting>select item from Item item, Order order
+where order.items[ size(order.items) - 1 ] = item
+</programlisting>
+		<para>
+			HQL also provides the built-in <literal>index()</literal> function, for elements of a one-to-many association or collection of values.
+		</para>
+		
+<programlisting>select item, index(item) from Order order 
+    join order.items item
+where index(item) &lt; 5
+</programlisting>
+		<para>
+			Scalar SQL functions supported by the underlying database may be used
+		</para>
+		
+<programlisting>select cat from DomesticCat cat where upper(cat.name) like 'FRI%'
+</programlisting>
+		<para>
+			If you are not yet convinced by all this, think how much longer and less readable the following query would be in SQL:
+		</para>
+		
+<programlisting>select cust
+from Product prod,
+    Store store
+    inner join store.customers cust
+where prod.name = 'widget'
+    and store.location.name in ( 'Melbourne', 'Sydney' )
+    and prod = all elements(cust.currentOrder.lineItems)
+</programlisting>
+		<para>
+			<emphasis>Hint:</emphasis> something like
+		</para>
+		
+<programlisting>SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order
+FROM customers cust,
+    stores store,
+    locations loc,
+    store_customers sc,
+    product prod
+WHERE prod.name = 'widget'
+    AND store.loc_id = loc.id
+    AND loc.name IN ( 'Melbourne', 'Sydney' )
+    AND sc.store_id = store.id
+    AND sc.cust_id = cust.id
+    AND prod.id = ALL(
+        SELECT item.prod_id
+        FROM line_items item, orders o
+        WHERE item.order_id = o.id
+            AND cust.current_order = o.id
+    )
+</programlisting>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-The_order_by_clause">
+		<title>The order by clause</title>
+		<para>
+			The list returned by a query may be ordered by any property of a returned class or components:
+		</para>
+		
+<programlisting>select cat from DomesticCat cat
+order by cat.name asc, cat.weight desc, cat.birthdate
+</programlisting>
+		<para>
+			The optional <literal>asc</literal> or <literal>desc</literal> indicate ascending or descending order respectively.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-The_group_by_clause">
+		<title>The group by clause</title>
+		<para>
+			A query that returns aggregate values may be grouped by any property of a returned class or components:
+		</para>
+		
+<programlisting>select cat.color, sum(cat.weight), count(cat) 
+from Cat cat
+group by cat.color
+</programlisting>
+		
+<programlisting>select foo.id, avg(name), max(name) 
+from Foo foo join foo.names name
+group by foo.id
+</programlisting>
+		<para>
+			A <literal>having</literal> clause is also allowed.
+		</para>
+		
+<programlisting>select cat.color, sum(cat.weight), count(cat) 
+from Cat cat
+group by cat.color 
+having cat.color in (eg.Color.TABBY, eg.Color.BLACK)
+</programlisting>
+		<para>
+			SQL functions and aggregate functions are allowed in the <literal>having</literal> and <literal>order by</literal> clauses, if supported by the underlying database (eg. not in MySQL).
+		</para>
+		
+<programlisting>select cat
+from Cat cat
+    join cat.kittens kitten
+group by cat
+having avg(kitten.weight) &gt; 100
+order by count(kitten) asc, sum(kitten.weight) desc
+</programlisting>
+		<para>
+			Note that neither the <literal>group by</literal> clause nor the <literal>order by</literal> clause may contain arithmetic expressions.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Subqueries">
+		<title>Subqueries</title>
+		<para>
+			For databases that support subselects, EJB-QL 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.
+		</para>
+		
+<programlisting>select fatcat from Cat as fatcat 
+where fatcat.weight &gt; ( 
+    select avg(cat.weight) from DomesticCat cat 
+)
+</programlisting>
+		
+<programlisting>select cat from DomesticCat as cat 
+where cat.name = some ( 
+    select name.nickName from Name as name 
+)
+</programlisting>
+		
+<programlisting>select cat from Cat as cat 
+where not exists ( 
+    from Cat as mate where mate.mate = cat 
+)
+</programlisting>
+		
+<programlisting>select cat from DomesticCat as cat 
+where cat.name not in ( 
+    select name.nickName from Name as name 
+)
+</programlisting>
+		<para>
+			For subqueries with more than one expression in the select list, you can use a tuple constructor:
+		</para>
+		
+<programlisting>select cat from Cat as cat 
+where not ( cat.name, cat.color ) in ( 
+    select cat.name, cat.color from DomesticCat cat 
+)
+</programlisting>
+		<para>
+			Note that on some databases (but not Oracle or HSQLDB), you can use tuple constructors in other contexts, for example when querying components or composite user types:
+		</para>
+		
+<programlisting>select cat from Person where name = ('Gavin', 'A', 'King')
+</programlisting>
+		<para>
+			Which is equivalent to the more verbose:
+		</para>
+		
+<programlisting>select cat from Person where name.first = 'Gavin' and name.initial = 'A' and name.last = 'King')
+</programlisting>
+		<para>
+			There are two good reasons you might not want to do this kind of thing: first, it is not completely portable between database platforms; second, the query is now dependent upon the ordering of properties in the mapping document.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-EJB_QL_examples">
+		<title>EJB-QL examples</title>
+		<para>
+			Hibernate queries can be quite powerful and complex. In fact, the power of the query language is one of Hibernate's (and now EJB-QL's) main selling points. Here are some example queries very similar to queries that I used on a recent project. Note that most queries you will write are much simpler than these!
+		</para>
+		<para>
+			The following query returns the order id, number of items and total value of the order for all unpaid orders for a particular customer and given minimum total value, ordering the results 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.
+		</para>
+		
+<programlisting>select order.id, sum(price.amount), count(item)
+from Order as order
+    join order.lineItems as item
+    join item.product as product,
+    Catalog as catalog
+    join catalog.prices as price
+where order.paid = false
+    and order.customer = :customer
+    and price.product = product
+    and catalog.effectiveDate &lt; sysdate
+    and catalog.effectiveDate &gt;= all (
+        select cat.effectiveDate 
+        from Catalog as cat
+        where cat.effectiveDate &lt; sysdate
+    )
+group by order
+having sum(price.amount) &gt; :minAmount
+order by sum(price.amount) desc
+</programlisting>
+		<para>
+			What a monster! Actually, in real life, I'm not very keen on subqueries, so my query was really more like this:
+		</para>
+		
+<programlisting>select order.id, sum(price.amount), count(item)
+from Order as order
+    join order.lineItems as item
+    join item.product as product,
+    Catalog as catalog
+    join catalog.prices as price
+where order.paid = false
+    and order.customer = :customer
+    and price.product = product
+    and catalog = :currentCatalog
+group by order
+having sum(price.amount) &gt; :minAmount
+order by sum(price.amount) desc
+</programlisting>
+		<para>
+			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.
+		</para>
+		
+<programlisting>select count(payment), status.name 
+from Payment as payment 
+    join payment.currentStatus as status
+    join payment.statusChanges as statusChange
+where payment.status.name &lt;&gt; PaymentStatus.AWAITING_APPROVAL
+    or (
+        statusChange.timeStamp = ( 
+            select max(change.timeStamp) 
+            from PaymentStatusChange change 
+            where change.payment = payment
+        )
+        and statusChange.user &lt;&gt; :currentUser
+    )
+group by status.name, status.sortOrder
+order by status.sortOrder
+</programlisting>
+		<para>
+			If I would have mapped the <literal>statusChanges</literal> collection as a list, instead of a set, the query would have been much simpler to write.
+		</para>
+		
+<programlisting>select count(payment), status.name 
+from Payment as payment
+    join payment.currentStatus as status
+where payment.status.name &lt;&gt; PaymentStatus.AWAITING_APPROVAL
+    or payment.statusChanges[ maxIndex(payment.statusChanges) ].user &lt;&gt; :currentUser
+group by status.name, status.sortOrder
+order by status.sortOrder
+</programlisting>
+		<para>
+			However the query would have been HQL specific.
+		</para>
+		<para>
+			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.
+		</para>
+		
+<programlisting>select account, payment
+from Account as account
+    join account.holder.users as user
+    left outer join account.payments as payment
+where :currentUser = user
+    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, PaymentStatus.UNPAID)
+order by account.type.sortOrder, account.accountNumber, payment.dueDate
+</programlisting>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Bulk_UPDATE_DELETE_Statements">
+		<title>Bulk UPDATE &amp; DELETE Statements</title>
+		<para>
+			Hibernate now supports UPDATE and DELETE statements in HQL/EJB-QL. See <xref linkend="sect-Hibernate_EntityManager_User_Guide-Batch_processing-Bulk_updatedelete" /> for details.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-EJB_QL_The_Object_Query_Language-Tips_Tricks">
+		<title>Tips &amp; Tricks</title>
+		<para>
+			To order a result by the size of a collection, use the following query:
+		</para>
+		
+<programlisting>select usr.id, usr.name
+from User as usr 
+    left join usr.messages as msg
+group by usr.id, usr.name
+order by count(msg)
+</programlisting>
+		<para>
+			If your database supports subselects, you can place a condition upon selection size in the where clause of your query:
+		</para>
+		
+<programlisting>from User usr where size(usr.messages) &gt;= 1
+</programlisting>
+		<para>
+			If your database doesn't support subselects, use the following query:
+		</para>
+		
+<programlisting>select usr.id, usr.name
+from User usr.name
+    join usr.messages msg
+group by usr.id, usr.name
+having count(msg) &gt;= 1
+</programlisting>
+		<para>
+			As this solution can't return a <literal>User</literal> with zero messages because of the inner join, the following form is also useful:
+		</para>
+		
+<programlisting>select usr.id, usr.name
+from User as usr
+    left join usr.messages as msg
+group by usr.id, usr.name
+having count(msg) = 0
+</programlisting>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Entity_listeners_and_Callback_methods.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Entity_listeners_and_Callback_methods.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Entity_listeners_and_Callback_methods.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,158 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Entity_listeners_and_Callback_methods">
+	<title>Entity listeners and Callback methods</title>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Entity_listeners_and_Callback_methods-Definition">
+		<title>Definition</title>
+		<para>
+			It is often useful for the application to react to certain events that occur inside the persistence mechanism. This allows the implementation of certain kinds of generic functionality, and extension of built-in functionality. The EJB3 specification provides two related mechanisms for this purpose.
+		</para>
+		<para>
+			A method of the entity may be designated as a callback method to receive notification of a particular entity life cycle event. Callbacks methods are annotated by a callback annotation. You can also define an entity listener class to be used instead of the callback methods defined directly inside the entity class. An entity listener is a stateless class with a no-arg constructor. An entity listener is defined by annotating the entity class with the <literal>@EntityListeners</literal> annotation:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_32.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			The same callback method or entity listener method can be annotated with more than one callback annotation. For a given entity, you cannot have two methods being annotated by the same callback annotation whether it is a callback method or an entity listener method. A callback method is a no-arg method with no return type and any arbitrary name. An entity listener has the signature <code>void &lt;METHOD&gt;(Object)</code> where Object is of the actual entity type (note that Hibernate Entity Manager relaxed this constraint and allows <literal>Object</literal> of <literal>java.lang.Object</literal> type (allowing sharing of listeners across several entities.)
+		</para>
+		<para>
+			A callback method can raise a <classname>RuntimeException</classname>. The current transaction, if any, must be rolled back. The following callbacks are defined:
+		</para>
+		<table id="tabl-Hibernate_EntityManager_User_Guide-Definition-Callbacks">
+			<title>Callbacks</title>
+			<tgroup cols="2">
+					<colspec colname="c1" colwidth="1*"></colspec>
+					<colspec colname="c2" colwidth="3*"></colspec>
+					<thead>
+					<row>
+						<entry align="center">
+							Type
+						</entry>
+						<entry align="center">
+							Description
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							@PrePersist
+						</entry>
+						<entry>
+							Executed before the entity manager persist operation is actually executed or cascaded. This call is synchronous with the persist operation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							@PreRemove
+						</entry>
+						<entry>
+							Executed before the entity manager remove operation is actually executed or cascaded. This call is synchronous with the remove operation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							@PostPersist
+						</entry>
+						<entry>
+							Executed after the entity manager persist operation is actually executed or cascaded. This call is invoked after the database INSERT is executed.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							@PostRemove
+						</entry>
+						<entry>
+							Executed after the entity manager remove operation is actually executed or cascaded. This call is synchronous with the remove operation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							@PreUpdate
+						</entry>
+						<entry>
+							Executed before the database UPDATE operation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							@PostUpdate
+						</entry>
+						<entry>
+							Executed after the database UPDATE operation.
+						</entry>
+					</row>
+					<row>
+						<entry>
+							@PostLoad
+						</entry>
+						<entry>
+							Executed after an entity has been loaded into the current persistence context or an entity has been refreshed.
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+		<para>
+			A callback method must not invoke <classname>EntityManager</classname> or <classname>Query</classname> methods!
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Entity_listeners_and_Callback_methods-Callbacks_and_listeners_inheritance">
+		<title>Callbacks and listeners inheritance</title>
+		<para>
+			You can define several entity listeners per entity at different level of the hierarchy.You can also define several callbacks at different level of the hierarchy. But you cannot define two listeners for the same event in the same entity or the same entity listener.
+		</para>
+		<para>
+			When an event is raised, the listeners are executed in this order:
+		</para>
+		<orderedlist>
+			<listitem>
+				<para>
+					<literal>@EntityListeners</literal> for a given entity or superclass in the array order
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Entity listeners for the superclasses (highest first)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Entity Listeners for the entity
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Callbacks of the superclasses (highest first)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					Callbacks of the entity
+				</para>
+			</listitem>
+		</orderedlist>
+		<para>
+			You can stop the entity listeners inheritance by using the <literal>@ExcludeSuperclassListeners</literal>, all superclasses <literal>@EntityListeners</literal> will then be ignored.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Entity_listeners_and_Callback_methods-XML_definition">
+		<title>XML definition</title>
+		<para>
+			The EJB3 specification allows annotation overriding through EJB3 deployment descriptor. There is also an additional feature that can be useful: default event listeners.
+		</para>
+		<programlisting language="xml"><xi:include href="extras/Code_Example_33.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			You can override entity listeners on a given entity. An entity listener correspond to a given class and one or several event fire a given method call. You can also define event on the entity itself to describe the callbacks.
+		</para>
+		<para>
+			Last but not least, you can define some default entity listeners that will apply first on the entity listener stack of all the mapped entities of a given persistence unit. If you don&#39;t want an entity to inherit the default listeners, you can use @ExcludeDefaultListeners (or &lt;exclude-default-listeners/&gt;).
+		</para>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Feedback.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Feedback.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Feedback.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
+]>
+
+
+<section id="Feedback">
+	<title>Feedback</title>
+	<para>
+			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>&lt;version&gt;</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.
+	</para>
+</section>

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.ent
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.ent	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.ent	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+<!ENTITY HOLDER "Red Hat, Inc">
+<!ENTITY PRODUCT "JBoss Enterprise Application Platform">
+<!ENTITY VERSION "4.3.0_CP04_FP01">
+<!ENTITY BOOKID "Hibernate_EntityManager_User_Guide">
+<!ENTITY YEAR "2008">

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Hibernate_EntityManager_User_Guide_CP07.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,19 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<book>
+	<xi:include href="Book_Info.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Preface.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+<xi:include href="Introduction.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Architecture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Setup_and_configuration.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Working_with_objects.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Transactions_and_concurrency.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Entity_listeners_and_Callback_methods.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Batch_processing.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="EJBQL_The_Object_Query_Language.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Native_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	<xi:include href="Revision_History.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+</book>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Introduction.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Introduction.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Introduction.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,14 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Introducing_EJB3_Persistence">
+	<title>Introducing EJB3 Persistence</title>
+	<para>
+		The EJB3 specification recognizes the interest in and the success of the transparent object/relational mapping paradigm. The EJB3 specification standardizes the basic APIs and the metadata needed for any object/relational persistence mechanism. <emphasis>Hibernate EntityManager</emphasis> implements the programming interfaces and lifecycle rules as defined by the EJB3 persistence specification. Together with <emphasis>Hibernate Annotations</emphasis>, this wrapper implements a complete (and standalone) EJB3 persistence solution on top of the mature Hibernate core. You may use a combination of all three together, annotations without EJB3 programming interfaces and lifecycle, or even pure native Hibernate, depending on the business and technical needs of your project. You can at all times fall back to Hibernate native APIs, or if required, even to native JDBC and SQL.
+	</para>
+<!--	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"><xi:fallback xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="Common_Content/Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include>
+	</xi:fallback>
+	</xi:include> -->
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Native_query.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Native_query.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Native_query.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,55 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Native_query">
+	<title>Native query</title>
+	<para>
+		You may 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 CONNECT BY option in Oracle. It also provides a clean migration path from a direct SQL/JDBC based application to Hibernate. Note that Hibernate3 allows you to specify handwritten SQL (including stored procedures) for all create, update, delete, and load operations (please refer to the reference guide for more information.)
+	</para>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Native_query-Expressing_the_resultset">
+		<title>Expressing the resultset</title>
+		<para>
+			To use a SQL query, you need to describe the SQL resultset, this description will help the <literal>EntityManager</literal> to map your columns onto entity properties. This is done using the <literal>@SqlResultSetMapping</literal> annotation. Each <literal>@SqlResultSetMapping </literal>has a name which is used when creating a SQL query on <literal>EntityManager</literal>.
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_8-1.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			You can also define scalar results and even mix entity results and scalar results
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_8-2.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			The SQL query will then have to return a column alias <literal>durationInSec</literal>.
+		</para>
+		<para>
+			Please refer to the Hibernate Annotations reference guide for more information about <literal>@SqlResultSetMapping.</literal>
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Native_query-Using_native_SQL_Queries">
+		<title>Using native SQL Queries</title>
+		<para>
+			Now that the result set is described, we are capable of executing the native SQL query. <literal>EntityManager</literal> provides all the needed APIs. The first method is to use a SQL resultset name to do the binding, the second one uses the entity default mapping (the column returned has to have the same names as the one used in the mapping). A third one (not yet supported by Hibernate entity manager), returns pure scalar results.
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_8-3.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			This native query returns nights and area based on the <literal>GetNightAndArea</literal> result set.
+		</para>
+		<programlisting language="java"><xi:include href="extras/Code_Example_8-4.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			The second version is useful when your SQL query returns one entity reusing the same columns as the ones mapped in metadata.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Native_query-Named_queries">
+		<title>Named queries</title>
+		<para>
+			Native named queries share the same calling API than EJB-QL named queries. Your code doesn't need to know the difference between the two. This is very useful for migration from SQL to EJB-QL:
+		</para>
+		<programlisting language="java"><xi:include href="extras/Code_Example_8-5.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Preface.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Preface.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Preface.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+<?xml version='1.0'?>
+<!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<preface id="Hibernate_EntityManager_User_Guide-Preface">
+	<title>Preface</title>
+	<para>
+	</para>
+	<xi:include href="Common_Content/Conventions.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+	<xi:include href="Feedback.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
+</preface>

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Revision_History.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Revision_History.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Revision_History.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,26 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<appendix id="appe-Hibernate_EntityManager_User_Guide-Revision_History">
+	<title>Revision History</title>
+	<simpara>
+		<revhistory>
+			<revision>
+				<revnumber>1.0</revnumber>
+				<date>Wed Dec 3 2008</date>
+				<author>
+					<firstname>Rüdiger</firstname>
+					<surname>Landmann</surname>
+					<email></email>
+				</author>
+				<revdescription>
+					<simplelist>
+						<member>Initial release</member>
+					</simplelist>
+				</revdescription>
+			</revision>
+		</revhistory>
+	</simpara>
+</appendix>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Setup_and_configuration.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Setup_and_configuration.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Setup_and_configuration.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,470 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Setup_and_configuration">
+	<title>Setup and configuration</title>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Setup_and_configuration-Setup">
+		<title>Setup</title>
+		<para>
+			The EJB 3.0 / JPA compatible Hibernate EntityManager is built on top of Hibernate core and Hibernate Annotations. You have to use compatible versions of each module. Please consult the compatibility matrix in the hibernate.org download section. The following libraries have to be in your classpath: <filename>hibernate3.jar</filename>, <filename>hibernate-annotations.jar</filename>, <filename>hibernate-commons-annotations.jar</filename>, <filename>hibernate-entitymanager.jar</filename> and all needed third party libraries for each package (including <filename>ejb-persistence.jar</filename>).
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Setup_and_configuration-Configuration_and_bootstrapping">
+		<title>Configuration and bootstrapping</title>
+		<section id="sect-Hibernate_EntityManager_User_Guide-Configuration_and_bootstrapping-Packaging" revision="1">
+			<title>Packaging</title>
+			<para>
+				The configuration for entity managers both inside an application server and in a standalone application reside in a persistence archive. A persistence archive is a JAR file which must define a <literal>persistence.xml</literal> file that resides in the <filename>META-INF</filename> folder. All properly annotated classes included in the archive (ie having an <literal>@Entity</literal> annotation), all annotated packages and all Hibernate <filename>hbm.xml</filename> files included in the archive will be added to the persistence unit configuration, so by default, your <filename>persistence.xml</filename> will be quite minimalist:
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_1.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				Here's a more complete example of a <filename><literal>persistence.xml</literal></filename> file
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_2.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<variablelist spacing="compact">
+				<varlistentry>
+					<term><code>name</code></term>
+					<listitem>
+						<para>
+							(attribute) Every entity manager must have a name.
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>transaction-type</code></term>
+					<listitem>
+						<para>
+							(attribute) Transaction type used. Either JTA or RESOURCE_LOCAL (default to JTA in a JavaEE environment and to RESOURCE_LOCAL in a JavaSE environment). When a jta-datasource is used, the default is JTA, if non-jta-datasource is used, RESOURCE_LOCAL is used.
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>provider</code></term>
+					<listitem>
+						<para>
+							The provider is a fully-qualified class name of the EJB Persistence provider. You do not have to define it if you don't work with several EJB3 implementations. This is needed when you are using multiple vendor implementations of EJB Persistence.
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>jta-data-source</code>, <code>non-jta-data-source</code></term>
+					<listitem>
+						<para>
+							This is the JNDI name of where the javax.sql.DataSource is located. When running without a JNDI available Datasource, you must specify JDBC connections with Hibernate specific properties (see below).
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>mapping-file</code></term>
+					<listitem>
+						<para>
+							The class element specifies a EJB3 compliant XML mapping file that you will map. The file has to be in the classpath. As per the EJB3 specification, Hibernate EntityManager will try to load the mapping file located in the jar file at <literal>META_INF/orm.xml</literal>. Of course any explicit mapping file will be loaded too. As a matter of fact, you can provides any XML file in the mapping file element ie. either hbm files or EJB3 deployment descriptor.
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>jar-file</code></term>
+					<listitem>
+						<para>
+							The jar-file elements specifies a jar to analyze. All properly annotated classes, annotated packages and all hbm.xml files part of this jar file will be added to the persistence unit configuration. This element is mainly used in Java EE environment. Use of this one in Java SE should be considered as non portable, in this case a absolute url is needed. You can alternatively point to a directory (This is especially useful when in your test environment, the persistence.xml file is not under the same root directory or jar than your domain model).
+						</para>
+						
+		<programlisting language="xml"><xi:include href="extras/Code_Example_3.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>exclude-unlisted-classes</code></term>
+					<listitem>
+						<para>
+							Do not check the main jar file for annotated classes. Only explicit classes will be part of the persistence unit.
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>class</code></term>
+					<listitem>
+						<para>
+							The class element specifies a fully qualified class name that you will map. By default all properly annotated classes and all hbm.xml files found inside the archive are added to the persistence unit configuration. You can add some external entity through the class element though. As an extension to the specification, you can add a package name in the <literal>&lt;class&gt;</literal> element (eg <code>&lt;class&gt;org.hibernate.eg&lt;/class&gt;</code>). Caution, the package will include the metadata defined at the package level (ie in <filename>package-info.java</filename>), it will not include all the classes of a given package.
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term><code>properties</code></term>
+					<listitem>
+						<para>
+							The properties element is used to specify vendor specific properties. This is where you will define your Hibernate specific configurations. This is also where you will have to specify JDBC connection information as well.
+						</para>
+					</listitem>
+				</varlistentry>
+			</variablelist>
+			<para>
+				Be sure to define the grammar definition in the <literal>persistence</literal> element since the EJB3 specification requires the schema validation. If the systemId ends with <literal>persistence_1_0.xsd</literal>, Hibernate entityManager will use the version embedded in the hibernate-entitymanager.jar. No Internet access will be processed.
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_4.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Configuration_and_bootstrapping-Bootstrapping" revision="1">
+			<title>Bootstrapping</title>
+			<para>
+				The EJB3 specification defines a bootstrap procedure to access the <classname>EntityManagerFactory</classname> and the <classname>EntityManager</classname>. The bootstrap class is <classname>javax.persistence.Persistence</classname>, for example:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_5.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The first version is equivalent to the second with an empty map. The map version is a set of overrides that will take precedence over any properties defined in your persistence.xml files. There are a couple of EJB3 properties usable in the map:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						<classname>javax.persistence.provider</classname> to define the provider class used
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<classname>javax.persistence.transactionType</classname> to define the transaction type used (either JTA or RESOURCE_LOCAL)
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<classname>javax.persistence.jtaDataSource</classname> to define the JTA datasource name in JNDI
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<classname>javax.persistence.nonJtaDataSource</classname> to define the non-JTA datasource name in JNDI
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				When <code>Persistence.createEntityManagerFactory()</code> is called, the persistence implementation will search your classpath for any <code>META-INF/persistence.xml</code> files using the <code>ClassLoader.getResource("META-INF/persistence.xml")</code> method. Actually the <classname>Persistence</classname> class will look at all the Persistence Providers available in the classpath and ask each of them if they are responsible for the creation of the entity manager factory <literal>manager1</literal>. Each provider, from this list of resources, it will try to find an entity manager that matches the name you specify in the command line with what is specified in the persistence.xml file (of course the provider <literal>element</literal> must match the current persistent provider). If no persistence.xml with the correct name are found or if the expected persistence provider is not found, a <classname>PersistenceException</classname> is raised.
+			</para>
+			<para>
+				Apart from Hibernate system-level settings, all the properties available in Hibernate can be set in <code>properties</code> element of the persistence.xml file or as an override in the map you pass to <code>createEntityManagerFactory()</code>. Please refer to the Hibernate reference documentation for a complete listing. There are however a couple of properties available in the EJB3 provider only.
+			</para>
+			<table id="tabl-Hibernate_EntityManager_User_Guide-Bootstrapping-Hibernate_Entity_Manager_specific_properties">
+				<title>Hibernate Entity Manager specific properties</title>
+				<tgroup cols="2">
+					<colspec colname="c1"></colspec>
+					<colspec colname="c2"></colspec>
+					<thead>
+						<row>
+							<entry>
+								Property name
+							</entry>
+							<entry>
+								Description
+							</entry>
+						</row>
+					</thead>
+					<tbody>
+						<row>
+							<entry>
+								hibernate.ejb.classcache.&lt;classname&gt;
+							</entry>
+							<entry>
+								class cache strategy [comma cache region] of the class Default to no cache, and default region cache to fully.qualified.classname (eg. hibernate.ejb.classcache.com.acme.Cat read-write or hibernate.ejb.classcache.com.acme.Cat read-write, MyRegion).
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.collectioncache.&lt;collectionrole&gt;
+							</entry>
+							<entry>
+								collection cache strategy [comma cache region] of the class Default to no cache, and default region cache to fully.qualified.classname.role (eg. hibernate.ejb.classcache.com.acme.Cat read-write or hibernate.ejb.classcache.com.acme.Cat read-write, MyRegion).
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.cfgfile
+							</entry>
+							<entry>
+								XML configuration file to use to configure Hibernate (eg. <filename>/hibernate.cfg.xml</filename>).
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.archive.autodetection
+							</entry>
+							<entry>
+								Determine which element is auto discovered by Hibernate Entity Manager while parsing the .par archive. (default to <literal>class,hbm</literal>).
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.interceptor
+							</entry>
+							<entry>
+								An optional Hibernate interceptor. The interceptor instance is shared by all <classname>Session</classname> instances. This interceptor has to implement <classname>org.hibernate.Interceptor</classname> and have a no-arg constructor. This property can not be combined with <literal>hibernate.ejb.interceptor.session_scoped</literal>.
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.interceptor.session_scoped
+							</entry>
+							<entry>
+								An optional Hibernate interceptor. The interceptor instance is specific to a given <classname>Session</classname> instance (and hence can be non thread-safe). This interceptor has to implement <classname>org.hibernate.Interceptor</classname> and have a no-arg constructor. This property can not be combined with <literal>hibernate.ejb.interceptor</literal>.
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.naming_strategy
+							</entry>
+							<entry>
+								An optional naming strategy. The default naming strategy used is <classname>EJB3NamingStrategy</classname>. You also might want to consider the <classname>DefaultComponentSafeNamingStrategy</classname>.
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.event.&lt;eventtype&gt;
+							</entry>
+							<entry>
+								Event listener list for a given eventtype. The list of event listeners is a comma separated fully qualified class name list (eg. hibernate.ejb.event.pre-load com.acme.SecurityListener, com.acme.AuditListener)
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.use_class_enhancer
+							</entry>
+							<entry>
+								Whether or not use Application server class enhancement at deployment time (default to false)
+							</entry>
+						</row>
+						<row>
+							<entry>
+								hibernate.ejb.discard_pc_on_close
+							</entry>
+							<entry>
+								If true, the persistence context will be discarded (think clear() when the method is called. Otherwise the persistence context will stay alive till the transaction completion: all objects will remain managed, and any change will be synchronized with the database (default to false, ie wait the transaction completion)
+							</entry>
+						</row>
+					</tbody>
+				</tgroup>
+			</table>
+			<para>
+				Note that you can mix XML <literal>&lt;class&gt;</literal> declaration and <literal>hibernate.ejb.cfgfile</literal> usage in the same configuration. Be aware of the potential clashed. The properties set in <filename>persistence.xml</filename> will override the one in the defined <filename>hibernate.cfg.xml</filename>.
+			</para>
+			<note>
+				<para>
+					It is important that you do not override <literal>hibernate.transaction.factory_class</literal>, Hibernate EntityManager automatically set the appropriate transaction factory depending on the EntityManager type (ie <literal>JTA</literal> versus <literal>RESOURSE_LOCAL</literal>). If you are working in a Java EE environment, you might want to set the <literal>hibernate.transaction.manager_lookup_class</literal> though.
+				</para>
+			</note>
+			<para>
+				Here is a typical configuration in a J2SE environment
+			</para>
+			
+		<programlisting language="xml"><xi:include href="extras/Code_Example_6.xmlt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				To ease the programmatic configuration, Hibernate Entity Manager provides a proprietary API. This API is very similar to the <classname>Configuration</classname> API and shares the same concepts: <classname>Ejb3Configuration</classname>. Refer to the JavaDoc and the Hibernate reference guide for more detailed information on how to use it.
+			</para>
+
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_7.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Setup_and_configuration-Event_listeners">
+		<title>Event listeners</title>
+		<para>
+			Hibernate Entity Manager needs to enhance Hibernate core to implements all the EJB3 semantics. It does that through the event listener system of Hibernate. Be careful when you use the event system yourself, you might override some of the EJB3 semantics. A safe way is to add your event listeners to the list given below.
+		</para>
+		<table id="tabl-Hibernate_EntityManager_User_Guide-Event_listeners-Hibernate_Entity_Manager_default_event_listeners">
+			<title>Hibernate Entity Manager default event listeners</title>
+			<tgroup cols="2">
+				<colspec align="left" colname="c1"></colspec>
+				<colspec colname="c2" colwidth="2*"></colspec>
+				<thead>
+					<row>
+						<entry>
+							Event
+						</entry>
+						<entry>
+							Listeners
+						</entry>
+					</row>
+				</thead>
+				<tbody>
+					<row>
+						<entry>
+							flush
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3FlushEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							auto-flush
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3AutoFlushEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							delete
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3DeleteEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							flush-entity
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3FlushEntityEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							merge
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3MergeEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							create
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3PersistEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							create-onflush
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3PersistOnFlushEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							save
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3SaveEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							save-update
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3SaveOrUpdateEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							pre-insert
+						</entry>
+						<entry>
+							org.hibernate.secure.JACCPreInsertEventListener, org.hibernate.valitator.event.ValidateEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							pre-insert
+						</entry>
+						<entry>
+							org.hibernate.secure.JACCPreUpdateEventListener, org.hibernate.valitator.event.ValidateEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							pre-delete
+						</entry>
+						<entry>
+							org.hibernate.secure.JACCPreDeleteEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							pre-load
+						</entry>
+						<entry>
+							org.hibernate.secure.JACCPreLoadEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							post-delete
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3PostDeleteEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							post-insert
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3PostInsertEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							post-load
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3PostLoadEventListener
+						</entry>
+					</row>
+					<row>
+						<entry>
+							post-update
+						</entry>
+						<entry>
+							org.hibernate.ejb.event.EJB3PostUpdateEventListener
+						</entry>
+					</row>
+				</tbody>
+			</tgroup>
+		</table>
+		<para>
+			Note that the JACC*EventListeners are removed if the security is not enabled.
+		</para>
+		<para>
+			You can configure the event listeners either through the properties (see <xref linkend="sect-Hibernate_EntityManager_User_Guide-Configuration_and_bootstrapping-Packaging" />) or through the <methodname>ejb3configuration.getEventListeners()</methodname> API.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Setup_and_configuration-Obtaining_an_EntityManager_in_a_Java_SE_environment">
+		<title>Obtaining an EntityManager in a Java SE environment</title>
+		<para>
+			An entity manager factory should be considered as an immutable configuration holder, it is defined to point to a single datasource and to map a defined set of entities. This is the entry point to create and manage <classname>EntityManager</classname>s. The <classname>Persistence</classname> class is bootstrap class to create an entity manager factory.
+		</para>
+		
+<programlisting>// Use persistence.xml configuration
+EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1")
+EntityManager em = emf.createEntityManager(); // Retrieve an application managed entity manager
+// Work with the EM
+em.close();
+...
+emf.close(); //close at application end
+</programlisting>
+		<para>
+			An entity manager factory is typically create at application initialization time and closed at application end. It's creation is an expensive process. For those who are familiar with Hibernate, an entity manager factory is very much like a session factory. Actually, an entity manager factory is a wrapper on top of a session factory. Calls to the entityManagerFactory are thread safe.
+		</para>
+		<para>
+			Thanks to the EntityManagerFactory, you can retrieve an extended entity manager. The extended entity manager keep the same persistence context for the lifetime of the entity manager: in other words, the entities are still managed between two transactions (unless you call entityManager.clear() in between). You can see an entity manager as a small wrapper on top of an Hibernate session.
+		</para>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Setup_and_configuration-Various">
+		<title>Various</title>
+		<para>
+			Hibernate Entity Manager comes with Hibernate Validator configured out of the box. You don't have to override any event yourself. If you do not use Hibernate Validator annotations in your domain model, there will be no performance cost. For more information on Hibernate Validator, please refer to the Hibernate Annotations reference guide.
+		</para>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Transactions_and_concurrency.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Transactions_and_concurrency.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Transactions_and_concurrency.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,417 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Transactions_and_concurrency">
+	<title>Transactions and concurrency</title>
+	<para>
+		The most important point about Hibernate Entity Manager and concurrency control is that it is very easy to understand. Hibernate Entity Manager directly uses JDBC connections and JTA resources without adding any additional locking behavior. We highly recommend you spend some time with the JDBC, ANSI, and transaction isolation specification of your database management system. Hibernate Entity Manager only adds automatic versioning but does not lock objects in memory or change the isolation level of your database transactions. Basically, use Hibernate Entity Manager like you would use direct JDBC (or JTA/CMT) with your database resources.
+	</para>
+	<para>
+		We start the discussion of concurrency control in Hibernate with the granularity of <literal>EntityManagerFactory</literal>, and <literal>EntityManager</literal>, as well as database transactions and long units of work..
+	</para>
+	<para>
+		In this chapter, and unless explicitly expressed, we will mix and match the concept of entity manager and persistence context. One is an API and programming object, the other a definition of scope. However, keep in mind the essential difference. A persistence context is usually bound to a JTA transaction in Java EE, and a persistence context starts and ends at transaction boundaries (transaction-scoped) unless you use an extended entity manager. Please refer to <xref linkend="sect-Hibernate_EntityManager_User_Guide-EJB_container_environment-Persistence_context_scope" /> for more information.
+	</para>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Transactions_and_concurrency-Entity_manager_and_transaction_scopes">
+		<title>Entity manager and transaction scopes</title>
+		<para>
+			A <literal>EntityManagerFactory</literal> is an expensive-to-create, threadsafe object intended to be shared by all application threads. It is created once, usually on application startup.
+		</para>
+		<para>
+			An <literal>EntityManager</literal> is an inexpensive, non-threadsafe object that should be used once, for a single business process, a single unit of work, and then discarded. An <literal>EntityManager</literal> will not obtain a JDBC <literal>Connection</literal> (or a <literal>Datasource</literal>) unless it is needed, so you may safely open and close an <literal>EntityManager</literal> even if you are not sure that data access will be needed to serve a particular request. (This becomes important as soon as you are implementing some of the following patterns using request interception.)
+		</para>
+		<para>
+			To complete this picture you also have to think about database transactions. A database transaction has to be as short as possible, to reduce lock contention in the database. Long database transactions will prevent your application from scaling to highly concurrent load.
+		</para>
+		<para>
+			What is the scope of a unit of work? Can a single Hibernate <literal>EntityManager</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?
+		</para>
+		<section id="sect-Hibernate_EntityManager_User_Guide-Entity_manager_and_transaction_scopes-Unit_of_work">
+			<title>Unit of work</title>
+			<para>
+				First, don't use the <emphasis>entitymanager-per-operation</emphasis> antipattern, that is, don't open and close an <literal>EntityManager</literal> for every simple database call in a single thread! Of course, 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. (Note that this also means that auto-commit after every single SQL statement is useless in an application, this mode is intended for ad-hoc SQL console work.)
+			</para>
+			<para>
+				The most common pattern in a multi-user client/server application is <emphasis>entitymanager-per-request</emphasis>. In this model, a request from the client is send to the server (where the EJB3 persistence layer runs), a new <literal>EntityManager</literal> is opened, and all database operations are executed in this unit of work. Once the work has been completed (and the response for the client has been prepared), the persistence context is flushed and closed, as well as the entity manager object. You would also use a single database transaction to serve the clients request. The relationship between the two is one-to-one and this model is a perfect fit for many applications.
+			</para>
+			<para>
+				This is the default EJB3 persistence model in a Java EE environment (JTA-bounded, transaction-scoped persistence context); injected (or looked up) entity managers share the same persistence context for a particular JTA transaction. The beauty of EJB3 is that you don't have to care about that anymore and just see data access through entity manager and demarcation of transaction scope on session beans as completely orthogonal.
+			</para>
+			<para>
+				The challenge is the implementation of this (and other) behavior outside an EJB3 container: not only has the <literal>EntityManager</literal> and resource-local transaction to be started and ended correctly, but they also have to be accessible for data access operations. The demarcation of a unit of work is ideally implemented using an interceptor that runs when a request hits the non-EJB3 container server and before the response will be send (i.e. a <literal>ServletFilter</literal> if you are using a standalone servlet container). We recommend to bind the <literal>EntityManager</literal> to the thread that serves the request, using a <literal>ThreadLocal</literal> variable. This allows easy access (like accessing a static variable) in all code that runs in this thread. Depending on the database transaction demarcation mechanism you chose, you might also keep the transaction context in a <literal>ThreadLocal</literal> variable. The implementation patterns for this are k!
 nown as <emphasis>ThreadLocal Session</emphasis> and <emphasis>Open Session in View</emphasis> in the Hibernate community. You can easily extend the <literal>HibernateUtil</literal> shown in the Hibernate reference documentation to implement this pattern – you don't need any external software (it's in fact very trivial). Of course, you'd have to find a way to implement an interceptor and set it up in your environment. See the Hibernate website for tips and examples. Once again, remember that your first choice is naturally an EJB3 container - preferably a light and modular one such as JBoss application server.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Entity_manager_and_transaction_scopes-Long_units_of_work">
+			<title>Long units of work</title>
+			<para>
+				The entitymanager-per-request pattern is not the only useful concept you can use to design units of work. Many business processes require a whole series of interactions with the user interleaved with database accesses. In web and enterprise applications it is not acceptable for a database transaction to span a user interaction with possibly long waiting time between requests. Consider the following example:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						The first screen of a dialog opens, the data seen by the user has been loaded in a particular <literal>EntityManager</literal> and resource-local transaction. The user is free to modify the detached objects.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						The user clicks "Save" after 5 minutes and expects his modifications to be made persistent; he also expects that he was the only person editing this information and that no conflicting modification can occur.
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				We call this unit of work, from the point of view of the user, a long running <emphasis>application transaction</emphasis>. There are many ways how you can implement this in your application.
+			</para>
+			<para>
+				A first naive implementation might keep the <literal>EntityManager</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 of course an anti-pattern, a pessimistic approach, since lock contention would not allow the application to scale with the number of concurrent users.
+			</para>
+			<para>
+				Clearly, we have to use several database transactions to implement the application transaction. In this case, maintaining isolation of business processes becomes the partial responsibility of the application tier. A single application transaction 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 (e.g. in a wizard-style dialog spanning several request/response cycles). This is easier to implement than it might sound, especially if you use EJB3 entity manager and persistence context features:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						<emphasis>Automatic Versioning</emphasis> - An entity manager can do automatic optimistic concurrency control for you, it can automatically detect if a concurrent modification occurred during user think time (usually by comparing version numbers or timestamps when updating the data in the final resource-local transaction).
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<emphasis>Detached Entities</emphasis> - If you decide to use the already discussed <emphasis>entity-per-request</emphasis> pattern, all loaded instances will be in detached state during user think time. The entity manager allows you to merge the detached (modified) state and persist the modifications, the pattern is called <emphasis>entitymanager-per-request-with-detached-entities</emphasis>. Automatic versioning is used to isolate concurrent modifications.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<emphasis>Extended Entity Manager</emphasis> - The Hibernate Entity Manager may be disconnected from the underlying JDBC connection between two client calls and reconnected when a new client request occurs. This pattern is known as <emphasis>entitymanager-per-application-transaction</emphasis> and makes even merging unnecessary. An extend persistence context is responsible to collect and retain any modification (persist, merge, remove) made outside a transaction. The next client call made inside an active transaction (typically the last operation of a user conversation) will execute all queued modifications. Automatic versioning is used to isolate concurrent modifications.
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				Both <emphasis>entitymanager-per-request-with-detached-objects</emphasis> and <emphasis>entitymanager-per-application-transaction</emphasis> have advantages and disadvantages, we discuss them later in this chapter in the context of optimistic concurrency control.
+			</para>
+
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Entity_manager_and_transaction_scopes-Considering_object_identity">
+			<title>Considering object identity</title>
+			<para>
+				An application may concurrently access the same persistent state in two different persistence contexts. However, an instance of a managed class is never shared between two persistence contexts. Hence there are two different notions of identity:
+			</para>
+			<variablelist spacing="compact">
+				<varlistentry>
+					<term>Database Identity</term>
+					<listitem>
+						<para>
+							<literal>foo.getId().equals( bar.getId() )</literal>
+						</para>
+					</listitem>
+				</varlistentry>
+				<varlistentry>
+					<term>JVM Identity</term>
+					<listitem>
+						<para>
+							<literal>foo==bar</literal>
+						</para>
+					</listitem>
+				</varlistentry>
+			</variablelist>
+			<para>
+				Then for objects attached to a <emphasis>particular</emphasis> persistence context (i.e. in the scope of an <literal>EntityManager</literal>) the two notions are equivalent, and JVM identity for database identity is guaranteed by the Hibernate Entity Manager. However, while the application might concurrently access the "same" (persistent identity) business object in two different persistence contexts, the two instances will actually be "different" (JVM identity). Conflicts are resolved using (automatic versioning) at flush/commit time, using an optimistic approach.
+			</para>
+			<para>
+				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 only doesn't need expensive locking or other means of synchronization. The application never needs to synchronize on any business object, as long as it sticks to a single thread per <literal>EntityManager</literal>. Within a persistence context, the application may safely use <literal>==</literal> to compare entities.
+			</para>
+			<para>
+				However, an application that uses <literal>==</literal> outside of a persistence context might see 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), but JVM identity is by definition not guaranteed for instances in detached state. The developer has to override the <literal>equals()</literal> and <literal>hashCode()</literal> methods in persistent classes and implement his own notion of object equality. There is one caveat: Never use the database identifier to implement equality, use a business key, a combination of unique, usually immutable, attributes. The database identifier will change if a transient entity is made persistent (see the contract of the <literal>persist()</literal> operation). If the transient instance (usually together with detached instances) is held in a <literal>Set</li!
 teral>, changing the hashcode breaks the contract of the <literal>Set</literal>. Attributes for good business keys don't 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. Also note that this is not a Hibernate issue, but simply how Java object identity and equality has to be implemented.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Entity_manager_and_transaction_scopes-Common_concurrency_control_issues">
+			<title>Common concurrency control issues</title>
+			<para>
+				Never use the anti-patterns <emphasis>entitymanager-per-user-session</emphasis> or <emphasis>entitymanager-per-application</emphasis> (of course, there are rare exceptions to this rule, e.g. entitymanager-per-application might be acceptable in a desktop application, with manual flushing of the persistence context). Note that some of the following issues might also appear with the recommended patterns, make sure you understand the implications before making a design decision:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						An entity manager is not thread-safe. Things which are supposed to work concurrently, like HTTP requests, session beans, or Swing workers, will cause race conditions if an <literal>EntityManager</literal> instance would be shared. If you keep your Hibernate <literal>EntityManager</literal> in your <literal>HttpSession</literal> (discussed later), you should consider synchronizing access to your Http session. Otherwise, a user that clicks reload fast enough may use the same <literal>EntityManager</literal> in two concurrently running threads. You will very likely have provisions for this case already in place, for other non-threadsafe but session-scoped objects.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						An exception thrown by the Entity Manager means you have to rollback your database transaction and close the <literal>EntityManager</literal> immediately (discussed later in more detail). If your <literal>EntityManager</literal> is bound to the application, you have to stop the application. Rolling back the database transaction doesn't put your business objects back into the state they were at the start of the transaction. This means the database state and the business objects do get out of sync. Usually this is not a problem, because exceptions are not recoverable and you have to start over your unit of work after rollback anyway.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						The persistence context caches every object that is in managed state (watched and checked for dirty state by Hibernate). This means it grows endlessly until you get an <classname>OutOfMemoryException</classname>, if you keep it open for a long time or simply load too much data. One solution for this is some kind batch processing with regular flushing of the persistence context, but you should consider using a database stored procedure if you need mass data operations. Some solutions for this problem are shown in <xref linkend="chap-Hibernate_EntityManager_User_Guide-Batch_processing" />. Keeping a persistence context open for the duration of a user session also means a high probability of stale data, which you have to know about and control appropriately.
+					</para>
+				</listitem>
+			</itemizedlist>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Transactions_and_concurrency-Database_transaction_demarcation">
+		<title>Database transaction demarcation</title>
+		<para>
+			Datatabase (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. You'll have to do operations outside a transaction, though, when you'll need to retain modifications in an <literal>EXTENDED</literal> persistence context.
+		</para>
+		<para>
+			An EJB3 application can run in non-managed (i.e. standalone, simple Web- or Swing applications) and managed J2EE environments. In a non-managed environment, an <literal>EntityManagerFactory</literal> is usually responsible for its own database connection pool. The application developer has to manually set transaction boundaries, in other words, begin, commit, or rollback database transactions itself. A managed environment usually provides container-managed transactions, with the transaction assembly defined declaratively through annotations of EJB session beans, for example. Programmatic transaction demarcation is then no longer necessary, even flushing the <literal>EntityManager</literal> is done automatically.
+		</para>
+		<para>
+			Usually, ending a unit of work involves four distinct phases:
+		</para>
+		<itemizedlist spacing="compact">
+			<listitem>
+				<para>
+					commit the (resource-local or JTA) transaction (this automatically flushes the entity manager and persistence context)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					close the entity manager (if using an application-managed entity manager)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					handle exceptions
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			We'll now have a closer look at transaction demarcation and exception handling in both managed- and non-managed environments.
+		</para>
+		<section id="sect-Hibernate_EntityManager_User_Guide-Database_transaction_demarcation-Non_managed_environment">
+			<title>Non-managed environment</title>
+			<para>
+				If an EJB3 persistence layer runs in a non-managed environment, database connections are usually handled by Hibernate's pooling mechanism behind the scenes. The common entity manager and transaction handling idiom looks like this:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_26.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				You don't have to <literal>flush()</literal> the <literal>EntityManager</literal> explicitly - the call to <literal>commit()</literal> automatically triggers the synchronization.
+			</para>
+			<para>
+				A call to <literal>close()</literal> marks the end of an <literal>EntityManager</literal>. The main implication of <literal>close()</literal> is the release of resources - make sure you always close and never outside of guaranteed finally block.
+			</para>
+			<para>
+				You will very likely never see this idiom in business code in a normal application; fatal (system) exceptions should always be caught at the "top". In other words, the code that executes entity manager 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. This can be a challenge to design yourself and you should use J2EE/EJB container services whenever they are available. Exception handling is discussed later in this chapter.
+			</para>
+			<section id="sect-Hibernate_EntityManager_User_Guide-Non_managed_environment-EntityTransaction">
+				<title>EntityTransaction</title>
+				<para>
+					In a JTA environment, you don't need any extra API to interact with the transaction in your environment. Simply use transaction declaration or the JTA APIs.
+				</para>
+				<para>
+					If you are using a <literal>RESOURCE_LOCAL</literal> entity manager, you need to demarcate your transaction boundaries through the <literal>EntityTransaction</literal> API. You can get an <literal>EntityTransaction</literal> through <literal>entityManager.getTransaction()</literal>. This <literal>EntityTransaction</literal> API provides the regular <methodname>begin()</methodname>, <methodname>commit()</methodname>, <methodname>rollback()</methodname> and <methodname>isActive()</methodname> methods. It also provide a way to mark a transaction as rollback only, ie force the transaction to rollback. This is very similar to the JTA operation <methodname>setRollbackOnly()</methodname>. When a <literal>commit()</literal> operation fail and/or if the transaction is marked as <literal>setRollbackOnly()</literal>, the <literal>commit()</literal> method will try to rollback the transaction and raise a <literal>javax.transaction.RollbackException</literal>.
+				</para>
+				<para>
+					In a <literal>JTA</literal> entity manager, <literal>entityManager.getTransaction()</literal> calls are not permitted.
+				</para>
+			</section>
+
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Database_transaction_demarcation-Using_JTA">
+			<title>Using JTA</title>
+			<para>
+				If your persistence layer runs in an application server (e.g. behind EJB3 session beans), every datasource connection obtained internally by the entity manager will automatically be part of the global JTA transaction. Hibernate offers two strategies for this integration.
+			</para>
+			<para>
+				If you use bean-managed transactions (BMT), the code will look like this:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_27.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				With Container Managed Transactions (CMT) in an EJB3 container, transaction demarcation is done in session bean annotations or deployment descriptors, not programatically. The <literal>EntityManager</literal> will automatically be flushed on transaction completion (and if you have injected or lookup the <literal>EntityManager</literal>, it will be also closed automatically). If an exception occurs during the <literal>EntityManager</literal> use, transaction rollback occurs automatically if you don't catch the exception. Since <literal>EntityManager</literal> exceptions are <literal>RuntimeException</literal>s they will rollback the transaction as per the EJB specification (system exception vs. application exception).
+			</para>
+			<para>
+				It is important to let Hibernate EntityManager define the <literal>hibernate.transaction.factory_class</literal> (ie not overriding this value). Remember to also set <literal>org.hibernate.transaction.manager_lookup_class</literal>.
+			</para>
+			<para>
+				If you work in a CMT environment, you might also want to use the same entity manager in different parts of your code. Typically, in a non-managed environment you would use a <literal>ThreadLocal</literal> variable to hold the entity manager, but a single EJB request might execute in different threads (e.g. session bean calling another session bean). The EJB3 container takes care of the persistence context propagation for you. Either using injection or lookup, the EJB3 container will return an entity manager with the same persistence context bound to the JTA context if any, or create a new one and bind it (see <xref linkend="sect-Hibernate_EntityManager_User_Guide-EJB_container_environment-Persistence_context_propagation" /> .)
+			</para>
+			<para>
+				Our entity manager/transaction management idiom for CMT and EJB3 container-use is reduced to this:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_28.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				In other words, all you have to do in a managed environment is to inject the <literal>EntityManager</literal>, do your data access work, and leave the rest to the container. Transaction boundaries are set declaratively in the annotations or deployment descriptors of your session beans. The lifecycle of the entity manager and persistence context is completely managed by the container.
+			</para>
+
+			<para>
+				When using particular Hibernate native APIs, care must be taken to use the <literal>after_statement</literal> connection release mode. 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. (Of course, most applications can easily avoid using <literal>scroll()</literal> or <literal>iterate()</literal> at all from the CMT code.)
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Database_transaction_demarcation-Exception_handling">
+			<title>Exception handling</title>
+			<para>
+				If the <literal>EntityManager</literal> throws an exception (including any <literal>SQLException</literal>), you should immediately rollback the database transaction, call <literal>EntityManager.close()</literal> (if <methodname>createEntityManager()</methodname> has been called) and discard the <literal>EntityManager</literal> instance. Certain methods of <literal>EntityManager</literal> will <emphasis>not</emphasis> leave the persistence context in a consistent state. No exception thrown by an entity manager can be treated as recoverable. Ensure that the <literal>EntityManager</literal> will be closed by calling <literal>close()</literal> in a <literal>finally</literal> block. Note that a container managed entity manager will do that for you. You just have to let the RuntimeException propagate up to the container.
+			</para>
+			<para>
+				The Hibernate entity manager generally raises exceptions which encapsulate the Hibernate core exception. Common exceptions raised by the <literal>EntityManager</literal> API are:
+			</para>
+			<variablelist>
+				<varlistentry><term><literal>IllegalArgumentException</literal></term>
+				<listitem><para>&nbsp;</para></listitem></varlistentry>
+				
+				<varlistentry><term><literal>EntityNotFoundException</literal></term>
+				<listitem><para>an entity was expected but none match the requirement</para></listitem></varlistentry>
+				
+				<varlistentry><term><literal>TransactionRequiredException</literal></term>
+				<listitem><para>this operation has to be in a transaction</para></listitem></varlistentry>
+				
+				<varlistentry><term><literal>IllegalStateException</literal></term>
+				<listitem><para>the entity manager is used in a wrong way</para></listitem></varlistentry>
+			</variablelist>
+			<para>
+				The <literal>HibernateException</literal>, which wraps most of the errors that can occur in a Hibernate persistence layer, is an unchecked exception. Note that Hibernate might also throw other unchecked exceptions which are not a <literal>HibernateException</literal>. These are, again, not recoverable and appropriate action should be taken.
+			</para>
+			<para>
+				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:
+			</para>
+			<itemizedlist spacing="compact">
+				<listitem>
+					<para>
+						<literal>JDBCConnectionException</literal> - indicates an error with the underlying JDBC communication.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>SQLGrammarException</literal> - indicates a grammar or syntax problem with the issued SQL.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>ConstraintViolationException</literal> - indicates some form of integrity constraint violation.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>LockAcquisitionException</literal> - indicates an error acquiring a lock level necessary to perform the requested operation.
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>GenericJDBCException</literal> - a generic exception which did not fall into any of the other categories.
+					</para>
+				</listitem>
+			</itemizedlist>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Transactions_and_concurrency-EXTENDED_Persistence_Context">
+		<title>EXTENDED Persistence Context</title>
+		<para>
+			All application managed entity manager and container managed persistence contexts defined as such are <literal>EXTENDED</literal>. This means that the persistence context type goes beyond the transaction life cycle. We should then understand what happens to operations made outside the scope of a transaction.
+		</para>
+		<para>
+			In an <literal>EXTENDED</literal> persistence context, all read only operations of the entity manager can be executed outside a transaction (<literal>find()</literal>, <literal>getReference()</literal>, <literal>refresh()</literal>, and read queries). Some modifications operations can be executed outside a transaction, but they are queued until the persistence context join a transaction: this is the case of <literal>persist()</literal>, <literal><literal>merge()</literal></literal>, <literal>remove()</literal>. Some operations cannot be called outside a transaction: <literal>flush()</literal>, <literal>lock()</literal>, and update/delete queries.
+		</para>
+		<section id="sect-Hibernate_EntityManager_User_Guide-EXTENDED_Persistence_Context-Container_Managed_Entity_Manager">
+			<title>Container Managed Entity Manager</title>
+			<para>
+				When using an EXTENDED persistence context with a container managed entity manager, the lifecycle of the persistence context is binded to the lifecycle of the Stateful Session Bean. Plus if the entity manager is created outside a transaction, modifications operations (persist, merge, remove) are queued in the persistence context and not executed to the database.
+			</para>
+			<para>
+				When a method of the stateful session bean involved or starting a transaction is later called, the entity manager join the transaction. All queued operation will then be executed to synchronize the persistence context.
+			</para>
+			<para>
+				This is perfect to implement the <literal>entitymanager-per-conversation</literal> pattern. A stateful session bean represents the conversation implementation. All intermediate conversation work will be processed in methods not involving transaction. The end of the conversation will be processed inside a <literal>JTA</literal> transaction. Hence all queued operations will be executed to the database and committed. If you are interested in the notion of conversation inside your application, have a look at JBoss Seam. JBoss Seam emphasizes the concept of conversation and entity manager lifecycle and bind EJB3 and JSF together.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-EXTENDED_Persistence_Context-Application_Managed_Entity_Manager">
+			<title>Application Managed Entity Manager</title>
+			<para>
+				Application-managed entity manager are always <literal>EXTENDED</literal>. When you create an entity manager inside a transaction, the entity manager automatically join the current transaction. If the entity manager is created outside a transaction, the entity manager will queue the modification operations. When
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						<methodname>entityManager.joinTransaction()</methodname> is called when a JTA transaction is active for a <literal>JTA</literal> entity manager
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						<literal>entityManager.getTransaction().begin()</literal> is called for a <literal>RESOURCE_LOCAL</literal> entity manager
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				the entity manager join the transaction and all the queued operations will then be executed to synchronize the persistence context.
+			</para>
+			<para>
+				It is not legal to call <methodname>entityManager.joinTransaction()</methodname> if no JTA transaction is involved.
+			</para>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Transactions_and_concurrency-Optimistic_concurrency_control">
+		<title>Optimistic concurrency control</title>
+		<para>
+			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 for three possible approaches to writing application code that uses optimistic concurrency. The use cases we show are in the context of long application transactions but version checking also has the benefit of preventing lost updates in single database transactions.
+		</para>
+		<section id="sect-Hibernate_EntityManager_User_Guide-Optimistic_concurrency_control-Application_version_checking">
+			<title>Application version checking</title>
+			<para>
+				In an implementation without much help from the persistence mechanism, each interaction with the database occurs in a new <literal>EntityManager</literal> and the developer is responsible for reloading all persistent instances from the database before manipulating them. This approach forces the application to carry out its own version checking to ensure application transaction isolation. This approach is the least efficient in terms of database access. It is the approach most similar to EJB2 entities:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_29.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The <literal>version</literal> property is mapped using <literal>@Version</literal>, and the entity manager will automatically increment it during flush if the entity is dirty.
+			</para>
+			<para>
+				Of course, if you are operating in a low-data-concurrency environment and don't require version checking, you may use this approach and just skip the version check. In that case, <emphasis>last commit wins</emphasis> will be the default strategy for your long application transactions. Keep in mind 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.
+			</para>
+			<para>
+				Clearly, manual version checking is only feasible in very 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 detached instances or an extended entity manager and persistence context as the design paradigm.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Optimistic_concurrency_control-Extended_entity_manager_and_automatic_versioning">
+			<title>Extended entity manager and automatic versioning</title>
+			<para>
+				A single persistence context is used for the whole application transaction. The entity manager checks instance versions at flush time, throwing an exception if concurrent modification is detected. It's up to the developer to catch and handle this exception (common options are the opportunity for the user to merge his changes or to restart the business process with non-stale data).
+			</para>
+			<para>
+				In an <literal>EXTENDED</literal> persistence context, all operations made outside an active transaction are queued. The <literal>EXTENDED</literal> persistence context is flushed when executed in an active transaction (at worse at commit time).
+			</para>
+			<para>
+				The <literal>Entity Manager</literal> is disconnected from any underlying JDBC connection when waiting for user interaction. In an application-managed extended entity manager, this occurs automatically at transaction completion. In a stateful session bean holding a container-managed extended entity manager (i.e. a SFSB annotated with <literal>@PersistenceContext(EXTENDED)</literal>), this occurs transparently as well. This approach is the most efficient in terms of database access. The application need not concern itself with version checking or with merging detached instances, nor does it have to reload instances in every database transaction. For those who might be concerned by the number of connections opened and closed, remember that the connection provider should be a connection pool, so there is no performance impact. The following examples show the idiom in a non-managed environment:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_30.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				The <literal>foo</literal> object still knows which <literal>persistence context</literal> it was loaded in. With <literal>getTransaction.begin();</literal> the entity manager obtains a new connection and resumes the persistence context. The method <literal>getTransaction().commit()</literal> will not only flush and check versions, but also disconnects the entity manager from the JDBC connection and return the connection to the pool.
+			</para>
+			<para>
+				This pattern is problematic if the persistence context is too big to be stored during user think time, and if you don't know where to store it. E.g. the <literal>HttpSession</literal> should be kept as small as possible. As the persistence context is also the (mandatory) first-level cache and contains all loaded objects, we can probably use this strategy only for a few request/response cycles. This is indeed recommended, as the persistence context will soon also have stale data.
+			</para>
+			<para>
+				It is up to you where you store the extended entity manager during requests, inside an EJB3 container you simply use a stateful session bean as described above. Don't transfer it to the web layer (or even serialize it to a separate tier) to store it in the <literal>HttpSession</literal>. In a non-managed, two-tiered environment the <literal>HttpSession</literal> might indeed be the right place to store it.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Optimistic_concurrency_control-Detached_objects_and_automatic_versioning">
+			<title>Detached objects and automatic versioning</title>
+			<para>
+				With this paradigm, each interaction with the data store occurs in a new persistence context. 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 persistence context and then merges the changes using <literal>EntityManager.merge()</literal>:
+			</para>
+		<programlisting language="java"><xi:include href="extras/Code_Example_31.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				Again, the entity manager will check instance versions during flush, throwing an exception if conflicting updates occurred.
+			</para>
+		</section>
+
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Working_with_objects.xml
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Working_with_objects.xml	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/Working_with_objects.xml	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,514 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+
+<chapter id="chap-Hibernate_EntityManager_User_Guide-Working_with_objects">
+	<title>Working with objects</title>
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Entity_states">
+		<title>Entity states</title>
+		<para>
+			Like in Hibernate (comparable terms in parentheses), an entity instance is in one of the following states:
+		</para>
+		<variablelist>
+		<varlistentry><term>New (transient)</term>
+		<listitem><para>an entity is new if it has just been instantiated using the new operator, and it is not associated with a persistence context. It has no persistent representation in the database and no identifier value has been assigned.</para></listitem></varlistentry>
+		<varlistentry><term>Managed (persistent)</term>
+		<listitem><para>a managed entity instance is an instance with a persistent identity that is currently associated with a persistence context.</para></listitem></varlistentry>
+		<varlistentry><term><filename>Detached</filename></term>
+		<listitem><para>the entity instance is an instance with a persistent identity that is no longer associated with a persistence context, usually because the persistence context was closed or the instance was evicted from the context.</para></listitem></varlistentry>
+		<varlistentry><term><filename>Removed</filename></term>
+		<listitem><para>a removed entity instance is an instance with a persistent identity, associated with a persistence context, but scheduled for removal from the database.</para></listitem></varlistentry>
+		</variablelist>
+		<para>
+			The <classname>EntityManager</classname> API allows you to change the state of an entity, or in other words, to load and store objects. You will find persistence with EJB3 easier to understand if you think about object state management, not managing of SQL statements.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Making_objects_persistent">
+		<title>Making objects persistent</title>
+		<para>
+			Once you've created a new entity instance (using the common <literal>new</literal> operator) it is in the <literal>new</literal> state. You can make it persistent by associating it to an entity manager:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_8.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			If the <literal>DomesticCat</literal> entity type has a generated identifier, the value is associated to the instance when <code>persist()</code> is called. If the identifier is not automatically generated, the application-assigned (usually natural) key value has to be set on the instance before <code>persist()</code> is called.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Loading_an_object">
+		<title>Loading an object</title>
+		<para>
+			Load an entity instance by its identifier value with the entity manager's <code>find()</code> method:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_9.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			In some cases, you don't really want to load the object state, but just have a reference to it (a proxy). You can get this reference using the <literal>getReference()</literal> method. This is especially useful to link a child to its parent without having to load the parent.
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_10.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			You can reload an entity instance and its collections at any time using the <code>em.refresh()</code> operation. This is useful when database triggers are used to initialize some of the properties of the entity. Note that only the entity instance and its collections are refreshed unless you specify <literal>REFRESH</literal> as a cascade style of any associations:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_11.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Querying_objects">
+		<title>Querying objects</title>
+		<para>
+			If you don't know the identifier values of the objects you are looking for, you need a query. The Hibernate EntityManager implementation supports an easy-to-use but powerful object-oriented query language (EJB3-QL) which has been inspired by HQL (and vice-versa). Both query languages are portable across databases, the use entity and property names as identifiers (instead of table and column names). You may also express your query in the native SQL of your database, with optional support from EJB3 for result set conversion into Java business objects.
+		</para>
+		<section id="sect-Hibernate_EntityManager_User_Guide-Querying_objects-Executing_queries">
+			<title>Executing queries</title>
+			<para>
+				EJB3QL and SQL queries are represented by an instance of <classname>javax.persistence.Query</classname>. This interface offers methods for parameter binding, result set handling, and for execution of the query. Queries are always created using the current entity manager:
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_12.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				A query is usually executed by invoking <methodname>getResultList()</methodname>. This method loads the resulting instances of the query completely into memory. Entity instances retrieved by a query are in persistent state. The <methodname>getSingleResult() </methodname>method offers a shortcut if you know your query will only return a single object.
+			</para>
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Projection">
+				<title>Projection</title>
+				<para>
+					An EJB3QL query queries can return tuples of objects if projection is used. Each result tuple is returned as an object array:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_13.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Scalar_results">
+				<title>Scalar results</title>
+				<para>
+					Queries may specify a particular property of an entity in the select clause, instead of an entity alias. You may call SQL aggregate functions as well. Returned non-transactional objects or aggregation results are considered "scalar" results and are not entities in persistent state (in other words, they are considered "read only"):
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_14.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Bind_parameters">
+				<title>Bind parameters</title>
+				<para>
+					Both named and positional query parameters are supported. The <literal>Query</literal> API offers several methods to bind arguments. The EJB3 specification numbers positional parameters from one. Named parameters are identifiers of the form <literal>:paramname</literal> in the query string. Named parameters should be preferred, they are more robust and easier to read and understand:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_15.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			</section>
+			
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Pagination">
+				<title>Pagination</title>
+				<para>
+					If you need to specify bounds upon your result set (the maximum number of rows you want to retrieve and/or the first row you want to retrieve), use the following methods:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_16.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					Hibernate knows how to translate this limit query into the native SQL of your DBMS.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Externalizing_named_queries">
+				<title>Externalizing named queries</title>
+				<para>
+					You may also define named queries through annotations:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_17.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					Parameters are bound programatically to the named query, before it is executed:
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_18.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<para>
+					Note that the actual program code is independent of the query language that is used. You may also define native SQL queries in metadata, or use Hibernate's native facilities by placing them in XML mapping files.
+				</para>
+			</section>
+			
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Native_queries">
+				<title>Native queries</title>
+				<para>
+					You may express a query in SQL, using <methodname>createNativeQuery()</methodname> and let Hibernate take care mapping from JDBC result sets to business objects. Use the <literal>@SqlResultSetMapping</literal> (please see the Hibernate Annotations reference documentation on how to map a SQL resultset mapping) or the entity mapping (if the column names of the query result are the same as the names declared in the entity mapping. Remember that all entity columns have to be returned for this mechanism to work):
+				</para>
+				
+		<programlisting language="java"><xi:include href="extras/Code_Example_19.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+				<note>
+					<para>
+						For more information about scalar support in named queries, please refers to the Hibernate Annotations documentation
+					</para>
+				</note>
+			</section>
+			
+			<section id="sect-Hibernate_EntityManager_User_Guide-Executing_queries-Query_hints">
+				<title>Query hints</title>
+				<para>
+					Query hints (for performance optimization, usually) are implementation specific. Hints are declared using the <methodname>query.setHint(String name, Object value)</methodname> method, or through the <literal>@Named(Native)Query(hints)</literal> annotation Note that these are not SQL query hints! The Hibernate EJB3 implementation offers the following query hints:
+				</para>
+				<table id="tabl-Hibernate_EntityManager_User_Guide-Query_hints-Hibernate_query_hints">
+					<title>Hibernate query hints</title>
+					<tgroup cols="2" align="left" colsep="1" rowsep="1">
+							<colspec colname="c1" colwidth="1*"/>
+							<colspec colname="c2" colwidth="2*"/>
+						<thead>
+							<row>
+								<entry align="center">
+									Hint
+								</entry>
+								<entry align="center">
+									Description
+								</entry>
+							</row>
+						</thead>
+						<tbody>
+							<row>
+								<entry>
+									org.hibernate.timeout
+								</entry>
+								<entry>
+									Query timeout in seconds ( eg. new Integer(10) )
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.fetchSize
+								</entry>
+								<entry>
+									Number of rows fetched by the JDBC driver per roundtrip ( eg. new Integer(50) )
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.comment
+								</entry>
+								<entry>
+									Add a comment to the SQL query, useful for the DBA ( e.g. new String("fetch all orders in 1 statement") )
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.cacheable
+								</entry>
+								<entry>
+									Whether or not a query is cacheable ( eg. new Boolean(true) ), defaults to false
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.cacheMode
+								</entry>
+								<entry>
+									Override the cache mode for this query ( eg. CacheMode.REFRESH )
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.cacheRegion
+								</entry>
+								<entry>
+									Cache region of this query ( eg. new String("regionName") )
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.readOnly
+								</entry>
+								<entry>
+									Entities retrieved by this query will be loaded in a read-only mode where Hibernate will never dirty-check them or make changes persistent ( eg. new Boolean(true) ), default to false
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.flushMode
+								</entry>
+								<entry>
+									Flush mode used for this query
+								</entry>
+							</row>
+							<row>
+								<entry>
+									org.hibernate.cacheMode
+								</entry>
+								<entry>
+									Cache mode used for this query
+								</entry>
+							</row>
+						</tbody>
+					</tgroup>
+				</table>
+				<para>
+					The value object accept both the native type or its string equivalent (eg. <literal>CaheMode.REFRESH</literal> or "<literal>REFRESH</literal>"). Please refer to the Hibernate reference documentation for more information.
+				</para>
+			</section>
+
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Modifying_persistent_objects">
+		<title>Modifying persistent objects</title>
+		<para>
+			Transactional-managed instances (ie. objects loaded, saved, created or queried by the entity manager) may be manipulated by the application and any changes to persistent state will be persisted when the Entity manager is flushed (discussed in <xref linkend="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Flush_the_persistence_context" />). There is no need to call a particular method to make your modifications persistent. A straightforward way to update the state of an entity instance is to <methodname>find()</methodname> it, and then manipulate it directly, while the persistence context is open:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_20.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			Sometimes this programming model is inefficient since it would require both an SQL SELECT (to load an object) and an SQL UPDATE (to persist its updated state) in the same session. Therefore Hibernate offers an alternate approach, using detached instances.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Modifying_detached_objects">
+		<title>Modifying detached objects</title>
+		<para>
+			Many applications need to retrieve an object in one transaction, send it to the presentation layer for manipulation, and later save the changes in a new transaction. There can be significant user think and waiting time between both transactions. 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.
+		</para>
+		<para>
+			The EJB3 specifications supports this development model by providing for persistence of modifications made to detached instances using the <methodname>EntityManager.merge()</methodname> method:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_21.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			The <literal>merge()</literal> method merges modifications made to the detached instance into the corresponding managed instance, if any, without consideration of the state of the persistence context. In other words, the merged objects state overrides the persistent entity state in the persistence context, if one is already present. The application should individually <methodname>merge()</methodname> detached instances reachable from the given detached instance if and only if it wants their state also to be persistent. This can be cascaded to associated entities and collections, using transitive persistence, see <xref linkend="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Transitive_persistence" />.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Automatic_state_detection">
+		<title>Automatic state detection</title>
+		<para>
+			The merge operation is clever enough to automatically detect whether the merging of the detached instance has to result in an insert or update. In other words, you don't have to worry about passing a new instance (and not a detached instance) to <literal>merge()</literal>, the entity manager will figure this out for you:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_22.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			The usage and semantics of <literal>merge()</literal> seem to be confusing for new users. Remember that as long as you are not trying to use an object state loaded in one entity manager in another new entity manager, you should not need to use <methodname>merge()</methodname> at all. Some whole applications will never use this method.
+		</para>
+		<para>
+			Usually <methodname>merge()</methodname> is used in the following scenario:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					the application loads an object in the first entity manager
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the object is passed up to the presentation layer
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					some modifications are made to the object
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the object is passed back down to the business logic layer
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the application persists these modifications by calling <methodname>merge()</methodname> in a second entity manager
+				</para>
+			</listitem>
+		</itemizedlist>
+		<para>
+			Here is the exact semantic of <methodname>merge()</methodname>:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					if there is a managed instance with the same identifier currently associated with the persistence context, copy the state of the given object onto the managed instance
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					if there is no managed instance currently associated with the persistence context, try to load it from the database, or create a new managed instance
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the managed instance is returned
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					the given instance does not become associated with the persistence context, it remains detached and is usually discarded
+				</para>
+			</listitem>
+		</itemizedlist>
+		<note>
+			<title>Merging vs. saveOrUpdate/saveOrUpdateCopy</title>
+			<para>
+				Merging in EJB3 is similar to the <literal>saveOrUpdateCopy()</literal> method in native Hibernate. However, it is not the same as the <literal>saveOrUpdate()</literal> method, the given instance is not reattached with the persistence context, but a managed instance is returned by the <methodname>merge()</methodname> method.
+			</para>
+		</note>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Deleting_managed_objects">
+		<title>Deleting managed objects</title>
+		<para>
+			<methodname>EntityManager.remove()</methodname> will remove an object's state from the database. Of course, your application might still hold a reference to a deleted object. You can think of <methodname>remove()</methodname> as making a persistent instance new (aka transient) again. It is not detached, and a merge would result in an insertion.
+		</para>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Flush_the_persistence_context">
+		<title>Flush the persistence context</title>
+		<section id="sect-Hibernate_EntityManager_User_Guide-Flush_the_persistence_context-In_a_transaction">
+			<title>In a transaction</title>
+			<para>
+				From time to time the entity manager will execute the SQL DML statements needed to synchronize the data store with the state of objects held in memory. This process, flush, occurs by default (this is Hibernate-specific and not defined by the specification) at the following points:
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						before query execution*
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						from <methodname>javax.persistence.EntityTransaction.commit()*</methodname>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						when <methodname>EntityManager.flush()</methodname> is called*
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				(*) if a transaction is active
+			</para>
+			<para>
+				The SQL statements are issued in the following order
+			</para>
+			<itemizedlist>
+				<listitem>
+					<para>
+						all entity insertions, in the same order the corresponding objects were saved using <methodname>EntityManager.persist()</methodname>
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						all entity updates
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						all collection deletions
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						all collection element deletions, updates and insertions
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						all collection insertions
+					</para>
+				</listitem>
+				<listitem>
+					<para>
+						all entity deletions, in the same order the corresponding objects were deleted using <methodname>EntityManager.remove()</methodname>
+					</para>
+				</listitem>
+			</itemizedlist>
+			<para>
+				(Exception: entity instances using application-assigned identifiers are inserted when they are saved.)
+			</para>
+			<para>
+				Except when you explicitly <methodname>flush()</methodname>, there are absolutely no guarantees about when the entity manager executes the JDBC calls, only the order in which they are executed. However, Hibernate does guarantee that the <methodname>Query.getResultList()</methodname>/<methodname>Query.getSingleResult()</methodname> will never return stale data; nor will they return wrong data if executed in an active transaction.
+			</para>
+			<para>
+				It is possible to change the default behavior so that flush occurs less frequently. The <classname>FlushModeType</classname> for an entity manager defines two different modes: only flush at commit time or flush automatically using the explained routine unless <methodname>flush()</methodname> is called explicitly.
+			</para>
+			
+		<programlisting language="java"><xi:include href="extras/Code_Example_23.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+			<para>
+				During flush, an exception might happen (e.g. if a DML operation violates a constraint).
+			</para>
+			<para>
+				Hibernate provides more flush modes than the one described in the EJB3 specification. Please refer to the Hibernate core reference documentation for more information.
+			</para>
+		</section>
+		
+		<section id="sect-Hibernate_EntityManager_User_Guide-Flush_the_persistence_context-Outside_a_transaction">
+			<title>Outside a transaction</title>
+			<para>
+				In an <literal>EXTENDED</literal> persistence context, all read only operations of the entity manager can be executed outside a transaction (<literal>find()</literal>, <literal>getReference()</literal>, <literal>refresh()</literal>, and read queries). Some modifications operations can be executed outside a transaction, but they are queued until the persistence context join a transaction. This is the case of <literal>persist()</literal>, <literal><literal>merge()</literal></literal>, <literal>remove()</literal>. Some operations cannot be called outside a transaction: <literal>flush()</literal>, <literal>lock()</literal>, and update/delete queries.
+			</para>
+		</section>
+
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Transitive_persistence" revision="1">
+		<title>Transitive persistence</title>
+		<para>
+			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:
+		</para>
+		<para>
+			If the children in a parent/child relationship would be value-typed (for example, a collection of addresses or strings), their lifecycle would depend on the parent and no further action would be required for convenient "cascading" of state changes. When the parent is persisted, the value-typed child objects are persisted as well, when the parent is removed, the children will be removed, etc. This even works for operations such as the removal of a child from the collection; Hibernate will detect this and, since value-typed objects can't have shared references, remove the child from the database.
+		</para>
+		<para>
+			Now consider the same scenario with parent and child objects being entities, not value-types (for example, categories and items, or parent and child cats). Entities have their own lifecycle, support shared references (so 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. The EJB3 specification does not require persistence by reachability. It supports a more flexible model of transitive persistence, as first seen in Hibernate.
+		</para>
+		<para>
+			For each basic operation of the entity manager - including <methodname>persist()</methodname>, <methodname>merge()</methodname>, <methodname>remove()</methodname>, <methodname>refresh()</methodname> - there is a corresponding cascade style. Respectively, the cascade styles are named PERSIST, MERGE, REMOVE, REFRESH. If you want an operation to be cascaded to associated entity (or collection of entities), you must indicate that in the association annotation:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_24.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			Cascading options can be combined:
+		</para>
+		
+		<programlisting language="java"><xi:include href="extras/Code_Example_25.java" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"></xi:include></programlisting>
+		<para>
+			You may even use CascadeType.ALL to specify that all operations should be cascaded for a particular association. Remember that by default, no operation is cascaded.
+		</para>
+		<para>
+			Hibernate offers more native cascading options, please refer to the Hibernate Annotations manual and the Hibernate reference guide for more information.
+		</para>
+		<para>
+			Recommendations:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					It doesn't usually make sense to enable cascade on a <literal>@ManyToOne</literal> or <literal>@ManyToMany</literal> association. Cascade is often useful for <literal>@OneToOne</literal> and <literal>@OneToMany</literal> associations.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					If the child object's lifespan is bounded by the lifespan of the parent object, make the parent a full lifecycle object by specifying <literal>CascadeType.ALL</literal> and <literal>org.hibernate.annotations.CascadeType.DELETE_ORPHAN</literal> (please refer to the Hibernate reference guide for the semantics of orphan delete)
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					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 <code>cascade={PERSIST, MERGE}</code>. These options can even make sense for a many-to-many association.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+	
+	<section id="sect-Hibernate_EntityManager_User_Guide-Working_with_objects-Locking">
+		<title>Locking</title>
+		<para>
+			The default locking system in EJB3 is mostly based on optimistic locking (ie using a version column to check any concurrency issues). EJB3 has defined an additional mechanism to increase the concurrency guaranties. You can apply a lock on a given entity (and it's associated entities if <literal>LOCK</literal> is cascaded) through the <methodname>lock(Object entity)</methodname> method. Depending on the concurrency guaranties you requires, you choose a lock mode:
+		</para>
+		<itemizedlist>
+			<listitem>
+				<para>
+					<literal>LockMode.READ</literal> prevents dirty-reads and non-repeatable reads on a given entity.
+				</para>
+			</listitem>
+			<listitem>
+				<para>
+					<literal>LockMode.WRITE</literal> prevents dirty-reads and non-repeatable reads on a given entity and forces an increase of the version number, if any.
+				</para>
+			</listitem>
+		</itemizedlist>
+	</section>
+
+</chapter>
+

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/.directory
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/.directory	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/.directory	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+[Dolphin]
+Timestamp=2008,12,2,16,59,33
+ViewMode=1

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_1.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_1.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_1.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
+   version="1.0">
+   <persistence-unit name="sample">
+      <jta-data-source>java:/DefaultDS</jta-data-source>
+      <properties>
+         <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+      </properties>
+   </persistence-unit>
+</persistence>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_10.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_10.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_10.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+child = new Child();
+child.SetName("Henry");
+Parent parent = em.getReference(Parent.class, parentId); //no query to the DB
+child.setParent(parent);
+em.persist(child);
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_11.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_11.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_11.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+em.persist(cat);
+em.flush(); // force the SQL insert and triggers to run
+em.refresh(cat); //re-read the state (after the trigger executes)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_12.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_12.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_12.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,19 @@
+List cats = em.createQuery(
+    "select cat from Cat as cat where cat.birthdate < ?1")
+    .setParameter(1, date, TemporalType.DATE)
+    .getResultList();
+
+List mothers = em.createQuery(
+    "select mother from Cat as cat join cat.mother as mother where cat.name = ?1")
+    .setParameter(1, name)
+    .getResultList();
+
+List kittens = em.createQuery(
+    "from Cat as cat where cat.mother = ?1")
+    .setEntity(1, pk)
+    .getResultList();
+
+Cat mother = (Cat) em.createQuery(
+    "select cat.mother from Cat as cat where cat = ?1")
+    .setParameter(1, izi)
+    .getSingleResult();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_13.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_13.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_13.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+Iterator kittensAndMothers = sess.createQuery(
+            "select kitten, mother from Cat kitten join kitten.mother mother")
+            .getResultList()
+            .iterator();
+
+while ( kittensAndMothers.hasNext() ) {
+    Object[] tuple = (Object[]) kittensAndMothers.next();
+    Cat kitten = (Cat) tuple[0];
+    Cat mother = (Cat) tuple[1];
+    ....
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_14.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_14.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_14.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,13 @@
+Iterator results = em.createQuery(
+        "select cat.color, min(cat.birthdate), count(cat) from Cat cat " +
+        "group by cat.color")
+        .getResultList()
+        .iterator();
+
+while ( results.hasNext() ) {
+    Object[] row = results.next();
+    Color type = (Color) row[0];
+    Date oldest = (Date) row[1];
+    Integer count = (Integer) row[2];
+    .....
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_15.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_15.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_15.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+// Named parameter (preferred)
+Query q = em.createQuery("select cat from DomesticCat cat where cat.name = :name");
+q.setParameter("name", "Fritz");
+List cats = q.getResultList();
+
+// Positional parameter
+Query q = em.createQuery("select cat from DomesticCat cat where cat.name = ?1");
+q.setParameter(1, "Izi");
+List cats = q.getResultList();
+
+// Named parameter list
+List names = new ArrayList();
+names.add("Izi");
+names.add("Fritz");
+Query q = em.createQuery("select cat from DomesticCat cat where cat.name in (:namesList)");
+q.setParameter("namesList", names);
+List cats = q.list();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_16.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_16.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_16.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+Query q = em.createQuery("select cat from DomesticCat cat");
+q.setFirstResult(20);
+q.setMaxResults(10);
+List cats = q.getResultList(); //return cats from the 20th position to 29th
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_17.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_17.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_17.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+ at javax.persistence.NamedQuery(name="eg.DomesticCat.by.name.and.minimum.weight", 
+  query="select cat from eg.DomesticCat as cat  where cat.name = ?1 and cat.weight > ?2")
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_18.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_18.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_18.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+Query q = em.createNamedQuery("eg.DomesticCat.by.name.and.minimum.weight");
+q.setString(1, name);
+q.setInt(2, minWeight);
+List cats = q.getResultList();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_19.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_19.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_19.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,12 @@
+ at SqlResultSetMapping(name="getItem", entities = 
+        @EntityResult(entityClass=org.hibernate.ejb.test.Item.class, fields= {
+            @FieldResult(name="name", column="itemname"),
+            @FieldResult(name="descr", column="itemdescription")
+        })
+)
+
+Query q = em.createNativeQuery("select name as itemname, descr as itemdescription from Item", "getItem");
+item = (Item) q.getSingleResult(); //from a resultset
+
+Query q = em.createNativeQuery("select * from Item", Item.class);
+item = (Item) q.getSingleResult(); //from a class columns names match the mapping
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_2.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_2.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_2.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,18 @@
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
+   version="1.0">
+   <persistence-unit name="manager1" transaction-type="JTA">
+      <provider>org.hibernate.ejb.HibernatePersistence</provider>
+      <jta-data-source>java:/DefaultDS</jta-data-source>
+      <mapping-file>ormap.xml</mapping-file>
+      <jar-file>MyApp.jar</jar-file>
+      <class>org.acme.Employee</class>
+      <class>org.acme.Person</class>
+      <class>org.acme.Address</class>
+      <properties>
+         <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+         <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
+      </properties>
+   </persistence-unit>
+</persistence>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_20.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_20.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_20.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+Cat cat = em.find( Cat.class, new Long(69) );
+cat.setName("PK");
+em.flush();  // changes to cat are automatically detected and persisted
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_21.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_21.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_21.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,11 @@
+// in the first entity manager
+Cat cat = firstEntityManager.find(Cat.class, catId);
+Cat potentialMate = new Cat();
+firstEntityManager.persist(potentialMate);
+
+// in a higher layer of the application
+cat.setMate(potentialMate);
+
+// later, in a new entity manager
+secondEntityManager.merge(cat);  // update cat
+secondEntityManager.merge(mate); // update mate
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_22.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_22.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_22.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+// In the first entity manager
+Cat cat = firstEntityManager.find(Cat.class, catID);
+
+// In a higher layer of the application, detached
+Cat mate = new Cat();
+cat.setMate(mate);
+
+// Later, in a new entity manager
+secondEntityManager.merge(cat);   // update existing state
+secondEntityManager.merge(mate);  // save the new instance
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_23.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_23.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_23.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,13 @@
+em = emf.createEntityManager();
+Transaction tx = em.getTransaction().begin();
+em.setFlushMode(FlushModeType.COMMIT); // allow queries to return stale state
+
+Cat izi = em.find(Cat.class, id);
+izi.setName(iznizi);
+
+// might return stale data
+em.createQuery("from Cat as cat left outer join cat.kittens kitten").getResultList();
+
+// change to izi is not flushed!
+...
+em.getTransaction().commit(); // flush occurs
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_24.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_24.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_24.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1 @@
+ at OneToOne(cascade=CascadeType.PERSIST)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_25.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_25.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_25.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1 @@
+ at OneToOne(cascade= { CascadeType.PERSIST, CascadeType.REMOVE, CascadeType.REFRESH } )
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_26.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_26.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_26.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,19 @@
+// Non-managed environment idiom
+EntityManager em = emf.createEntityManager();
+EntityTransaction tx = null;
+try {
+    tx = em.getTransaction();
+    tx.begin();
+
+    // do some work
+    ...
+
+    tx.commit();
+}
+catch (RuntimeException e) {
+    if ( tx != null && tx.isActive() ) tx.rollback();
+    throw e; // or display error message
+}
+finally {
+    em.close();
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_27.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_27.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_27.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,20 @@
+// BMT idiom
+ at Resource public UserTransaction utx;
+ at Resource public EntityManagerFactory factory;
+
+public void doBusiness() {
+    EntityManager em = factory.createEntityManager();
+    try {
+
+    // do some work
+    ...
+
+    utx.commit();
+}
+catch (RuntimeException e) {
+    if (utx != null) utx.rollback();
+    throw e; // or display error message
+}
+finally {
+    em.close();
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_28.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_28.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_28.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,2 @@
+//CMT idiom through injection
+ at PersistenceContext(name="sample") EntityManager em;
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_29.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_29.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_29.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+// foo is an instance loaded by a previous entity manager
+em = factory.createEntityManager();
+EntityTransaction t = em.getTransaction();
+t.begin();
+int oldVersion = foo.getVersion();
+Foo dbFoo = em.find( foo.getClass(), foo.getKey() ); // load the current state
+if ( dbFoo.getVersion()!=foo.getVersion ) throw new StaleObjectStateException();
+dbFoo.setProperty("bar");
+t.commit();
+em.close();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_3.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_3.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_3.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1 @@
+<jar-file>file:/home/turin/work/local/lab8/build/classes</jar-file>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_30.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_30.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_30.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+// foo is an instance loaded earlier by the extended entity manager
+em.getTransaction.begin(); // new connection to data store is obtained and tx started
+foo.setProperty("bar");
+em.getTransaction().commit();  // End tx, flush and check version, disconnect
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_31.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_31.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_31.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,7 @@
+// foo is an instance loaded by a non-extended entity manager
+foo.setProperty("bar");
+entityManager = factory.createEntityManager();
+entityManager.getTransaction().begin();
+managedFoo = session.merge(foo); // discard foo and from now on use managedFoo
+entityManager.getTransaction().commit();
+entityManager.close();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_32.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_32.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_32.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,38 @@
+ at Entity 
+ at EntityListeners(class=Audit.class)
+public class Cat {
+    @Id private Integer id;
+    private String name;
+    private Calendar dateOfBirth;
+    @Transient private int age;
+    private Date lastUpdate;
+    //getters and setters
+
+    /**
+     * Set my transient property at load time based on a calculation,
+     * note that a native Hibernate formula mapping is better for this purpose.
+     */
+    @PostLoad
+    public void calculateAge() {
+        Calendar birth = new GregorianCalendar();
+        birth.setTime(dateOfBirth);
+        Calendar now = new GregorianCalendar();
+        now.setTime( new Date() );
+        int adjust = 0;
+        if ( now.get(Calendar.DAY_OF_YEAR) - birth.get(Calendar.DAY_OF_YEAR) < 0) {
+            adjust = -1;
+        }
+        age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR) + adjust;
+    }
+}
+
+public class LastUpdateListener {
+    /**
+     * automatic property set before any database persistence
+     */
+    @PreUpdate
+    @PrePersist
+    public void setLastUpdate(Cat o) {
+        o.setLastUpdate( new Date() );
+    }
+}
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_33.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_33.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_33.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
+                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd"
+                 version="1.0"
+        >
+    <persistence-unit-metadata>
+        <persistence-unit-defaults>
+            <entity-listeners>
+                <entity-listener class="org.hibernate.ejb.test.pack.defaultpar.IncrementListener">
+                    <pre-persist method-name="increment"/>
+                </entity-listener>
+            </entity-listeners>
+        </persistence-unit-defaults>
+    </persistence-unit-metadata>
+    <package>org.hibernate.ejb.test.pack.defaultpar</package>
+    <entity class="ApplicationServer">
+        <entity-listeners>
+            <entity-listener class="OtherIncrementListener">
+                <pre-persist method-name="increment"/>
+            </entity-listener>
+        </entity-listeners>
+
+
+        <pre-persist method-name="calculate"/>
+    </entity>
+</entity-mappings>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_34.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_34.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_34.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+EntityManager entityManager = entityManagerFactory.createEntityManager();
+entityManager.getTransaction().begin();
+
+String ejbqlUpdate = "update Customer set name = :newName where name = :oldName"
+int updatedEntities = entityManager.createQuery( hqlUpdate )
+                            .setParameter( "newName", newName )
+                            .setParameter( "oldName", oldName )
+                            .executeUpdate();
+entityManager.getTransaction().commit();
+entityManager.close();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_35.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_35.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_35.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,9 @@
+EntityManager entityManager = entityManagerFactory.createEntityManager();
+entityManager.getTransaction().begin();
+
+String hqlDelete = "delete Customer where name = :oldName";
+int deletedEntities = entityManager.createQuery( hqlDelete )
+                            .setParameter( "oldName", oldName )
+                            .executeUpdate();
+entityManager.getTransaction().commit();
+entityManager.close();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_4.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_4.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_4.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
+   version="1.0">
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_5.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_5.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_5.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,6 @@
+EntityManagerFactory emf = Persistence.createEntityManagerFactory("manager1");
+//or
+Map configOverrides = new HashMap();
+configOverrides.put("hibernate.hbm2ddl.auto", "create-drop");
+EntityManagerFactory programmaticEmf =
+    Persistence.createEntityManagerFactory("manager1", configOverrides);
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_6.xmlt
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_6.xmlt	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_6.xmlt	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,22 @@
+<persistence>
+   <persistence-unit name="manager1" transaction-type="RESOURCE_LOCAL">
+      <class>org.hibernate.ejb.test.Cat</class>
+      <class>org.hibernate.ejb.test.Distributor</class>
+      <class>org.hibernate.ejb.test.Item</class>
+      <properties>
+         <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
+         <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
+         <property name="hibernate.connection.username" value="sa"/>
+         <property name="hibernate.connection.password" value=""/>
+         <property name="hibernate.connection.url" value="jdbc:hsqldb:."/>
+         <property name="hibernate.max_fetch_depth" value="3"/>
+       
+         <!-- cache configuration -->
+         <property name="hibernate.ejb.classcache.org.hibernate.ejb.test.Item" value="read-write"/>
+         <property name="hibernate.ejb.collectioncache.org.hibernate.ejb.test.Item.distributors" value="read-write, RegionName"/>
+
+         <!-- alternatively to <class> and <property> declarations, you can use a regular hibernate.cfg.xml file -->
+         <!-- property name="hibernate.ejb.cfgfile" value="/org/hibernate/ejb/test/hibernate.cfg.xml"/ -->
+      </properties>
+   </persistence-unit>
+</persistence>
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_7.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_7.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_7.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,10 @@
+Ejb3Configuration cfg = new Ejb3Configuration();
+EntityManagerFactory emf = 
+  cfg.addProperties( properties ) //add some properties
+     .setInterceptor( myInterceptorImpl ) // set an interceptor
+     .addAnnotatedClass( MyAnnotatedClass.class ) //add a class to be mapped
+     .addClass( NonAnnotatedClass.class ) //add an hbm.xml file using the Hibernate convention
+     .addRerousce( "mypath/MyOtherCLass.hbm.xml ) //add an hbm.xml file
+     .addRerousce( "mypath/orm.xml ) //add an EJB3 deployment descriptor
+     .configure("/mypath/hibernate.cfg.xml") //add a regular hibernate.cfg.xml
+     .buildEntityManagerFactory(); //Create the entity manager factory
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-1.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-1.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-1.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+ at SqlResultSetMapping(name="GetNightAndArea", entities={
+    @EntityResult(name="org.hibernate.test.annotations.query.Night", fields = {
+        @FieldResult(name="id", column="nid"),
+        @FieldResult(name="duration", column="night_duration"),
+        @FieldResult(name="date", column="night_date"),
+        @FieldResult(name="area", column="area_id")
+    }),
+    @EntityResult(name="org.hibernate.test.annotations.query.Area", fields = {
+        @FieldResult(name="id", column="aid"),
+        @FieldResult(name="name", column="name")
+    })
+    }
+)
+
+//or
+ at SqlResultSetMapping(name="defaultSpaceShip", 
+entities=@EntityResult(name="org.hibernate.test.annotations.query.SpaceShip"))
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-2.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-2.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-2.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,17 @@
+ at SqlResultSetMapping(name="ScalarAndEntities", 
+    entities={
+        @EntityResult(name="org.hibernate.test.annotations.query.Night", fields = {
+            @FieldResult(name="id", column="nid"),
+            @FieldResult(name="duration", column="night_duration"),
+            @FieldResult(name="date", column="night_date"),
+            @FieldResult(name="area", column="area_id")
+        }),
+        @EntityResult(name="org.hibernate.test.annotations.query.Area", fields = {
+            @FieldResult(name="id", column="aid"),
+            @FieldResult(name="name", column="name")
+        })
+    },
+    columns={
+        @ColumnResult(name="durationInSec")
+    }
+)
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-3.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-3.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-3.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,6 @@
+String sqlQuery = "select night.id nid, night.night_duration, night.night_date, area.id aid, "
+    + "night.area_id, area.name from Night night, Area area where night.area_id = area.id "
+    + "and night.night_duration > ?";
+Query q = entityManager.createNativeQuery(sqlQuery, "GetNightAndArea");
+q.setParameter( 1, expectedDuration );
+q.getResultList();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-4.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-4.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-4.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,4 @@
+String sqlQuery = "select * from tbl_spaceship where owner = ?";
+Query q = entityManager.createNativeQuery(sqlQuery, SpaceShip.class);
+q.setParameter( 1, "Han" );
+q.getResultList();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-5.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-5.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8-5.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3 @@
+Query q = entityManager.createNamedQuery("getSeasonByNativeQuery");
+q.setParameter( 1, name );
+Season season = (Season) q.getSingleResult();
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_8.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+DomesticCat fritz = new DomesticCat();
+fritz.setColor(Color.GINGER);
+fritz.setSex('M');
+fritz.setName("Fritz");
+em.persist(fritz);
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_9.java
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_9.java	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/extras/Code_Example_9.java	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,5 @@
+cat = em.find(Cat.class, catId);
+
+// You may need to wrap the primitive identifiers
+long catId = 1234;
+em.find( Cat.class, new Long(catId) );
\ No newline at end of file

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/images/icon.svg
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/images/icon.svg	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/en-US/images/icon.svg	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,3936 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
+   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.0"
+   width="32"
+   height="32"
+   id="svg3017"
+   sodipodi:version="0.32"
+   inkscape:version="0.44+devel"
+   sodipodi:docname="book.svg"
+   sodipodi:docbase="/home/andy/Desktop">
+  <metadata
+     id="metadata489">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <sodipodi:namedview
+     inkscape:window-height="480"
+     inkscape:window-width="858"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0.0"
+     guidetolerance="10.0"
+     gridtolerance="10.0"
+     objecttolerance="10.0"
+     borderopacity="1.0"
+     bordercolor="#666666"
+     pagecolor="#ffffff"
+     id="base"
+     inkscape:zoom="1"
+     inkscape:cx="16"
+     inkscape:cy="15.944056"
+     inkscape:window-x="0"
+     inkscape:window-y="33"
+     inkscape:current-layer="svg3017" />
+  <defs
+     id="defs3019">
+    <linearGradient
+       id="linearGradient2381">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop2383" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop2385" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="XMLID_1758_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop3903" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3905" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3890" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3892" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1755_">
+      <use
+         id="use3874"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3877" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3879" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3881" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3883" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="XMLID_1754_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop3863" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop3865" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop3867" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop3869" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop3851" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop3853" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_1751_">
+      <use
+         id="use3837"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3840" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3842" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3844" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3846" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="XMLID_1750_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3830" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3832" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop3818" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop3820" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="XMLID_1748_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop3803" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop3805" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop3807" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop3809" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="XMLID_2275_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9947" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9949" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9951" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9953" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="XMLID_2273_">
+      <use
+         id="use9933"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="XMLID_2274_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9936" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9938" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9940" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9942" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="XMLID_2272_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop9917" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop9919" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop9921" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop9923" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleInM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(-0.4,-0.4)"
+         style="fill:#5c5c4f"
+         id="path3197" />
+    </marker>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="XMLID_3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#bfbfbf;stop-opacity:1"
+         offset="0"
+         id="stop20103" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop20105" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#BFBFBF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="200.7363"
+       y1="100.4028"
+       x2="211.99519"
+       y2="89.143997"
+       id="linearGradient36592"
+       xlink:href="#XMLID_3298_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="XMLID_3297_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop20096" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20098" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="181.2925"
+       y1="110.8481"
+       x2="192.6369"
+       y2="99.5037"
+       id="linearGradient36595"
+       xlink:href="#XMLID_3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="XMLID_3296_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#0f6124;stop-opacity:1"
+         offset="0"
+         id="stop20087" />
+      <stop
+         style="stop-color:#219630;stop-opacity:1"
+         offset="1"
+         id="stop20089" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#0F6124" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#219630" />
+    </linearGradient>
+    <linearGradient
+       x1="211.77589"
+       y1="105.7749"
+       x2="212.6619"
+       y2="108.2092"
+       id="linearGradient36677"
+       xlink:href="#XMLID_3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="XMLID_3295_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20076" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.5"
+         id="stop20078" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20080" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="208.9834"
+       y1="116.8296"
+       x2="200.0811"
+       y2="96.834602"
+       id="linearGradient36604"
+       xlink:href="#XMLID_3295_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="XMLID_3294_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop20069" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop20071" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="195.5264"
+       y1="97.911102"
+       x2="213.5213"
+       y2="115.9061"
+       id="linearGradient36607"
+       xlink:href="#XMLID_3294_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="XMLID_3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20056" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20058" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20060" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20062" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:1"
+         offset="0.5"
+         id="stop20064" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C2C2C2" />
+    </linearGradient>
+    <linearGradient
+       x1="186.1938"
+       y1="109.1343"
+       x2="206.6881"
+       y2="88.639999"
+       id="linearGradient36610"
+       xlink:href="#XMLID_3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="XMLID_3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop20043" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.16850001"
+         id="stop20045" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.23029999"
+         id="stop20047" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0.2809"
+         id="stop20049" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop20051" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.1685"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.2303"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.2809"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="184.8569"
+       y1="112.2676"
+       x2="211.94099"
+       y2="89.541397"
+       id="linearGradient36613"
+       xlink:href="#XMLID_3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
+    <marker
+       refX="0"
+       refY="0"
+       orient="auto"
+       style="overflow:visible"
+       id="TriangleOutM">
+      <path
+         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
+         transform="scale(0.4,0.4)"
+         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
+         id="path3238" />
+    </marker>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="XMLID_3457_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="stop8309" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8311" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="stop8313" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#999999" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#B2B2B2" />
+    </linearGradient>
+    <linearGradient
+       x1="165.3"
+       y1="99.5"
+       x2="165.3"
+       y2="115.9"
+       id="lg1997"
+       xlink:href="#XMLID_3457_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="XMLID_3456_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="stop8300" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8302" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8304" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="175"
+       y1="99.800003"
+       x2="175"
+       y2="112.5"
+       id="lg2000"
+       xlink:href="#XMLID_3456_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="XMLID_3455_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8291" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="0.69999999"
+         id="stop8293" />
+      <stop
+         style="stop-color:#191919;stop-opacity:1"
+         offset="1"
+         id="stop8295" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.7"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#191919" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#191919" />
+    </linearGradient>
+    <linearGradient
+       x1="168.8"
+       y1="107.1"
+       x2="164.5"
+       y2="110"
+       id="lg2003"
+       xlink:href="#XMLID_3455_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       id="lg63694">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop63696" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="stop63698" />
+    </linearGradient>
+    <linearGradient
+       x1="458"
+       y1="483"
+       x2="465.20001"
+       y2="271.39999"
+       id="lg2006"
+       xlink:href="#lg63694"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="XMLID_3453_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="0"
+         id="stop8271" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0.2"
+         id="stop8273" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8275" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#666666" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#737373" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="176.3"
+       y1="110.1"
+       x2="158.7"
+       y2="105"
+       id="lg2009"
+       xlink:href="#XMLID_3453_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="XMLID_3449_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8232" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="0.60000002"
+         id="stop8234" />
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="1"
+         id="stop8236" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.6"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFF95E" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#ECD600" />
+    </linearGradient>
+    <linearGradient
+       x1="173.60001"
+       y1="118.9"
+       x2="172.8"
+       y2="128.2"
+       id="lg2016"
+       xlink:href="#XMLID_3449_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8219" />
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8221" />
+      <stop
+         style="stop-color:#c96b00;stop-opacity:1"
+         offset="0.89999998"
+         id="stop8223" />
+      <stop
+         style="stop-color:#9a5500;stop-opacity:1"
+         offset="1"
+         id="stop8225" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.9"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#C96B00" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#9A5500" />
+    </radialGradient>
+    <radialGradient
+       cx="284.60001"
+       cy="172.60001"
+       r="6.5"
+       fx="284.60001"
+       fy="172.60001"
+       id="rg2020"
+       xlink:href="#XMLID_3448_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="XMLID_3447_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecd600;stop-opacity:1"
+         offset="0"
+         id="stop8204" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8206" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop8208" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECD600" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="158.10001"
+       y1="123"
+       x2="164.2"
+       y2="126.6"
+       id="lg2026"
+       xlink:href="#XMLID_3447_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop8197" />
+      <stop
+         style="stop-color:#fff95e;stop-opacity:1"
+         offset="1"
+         id="stop8199" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#FFF95E" />
+    </radialGradient>
+    <radialGradient
+       cx="280.89999"
+       cy="163.7"
+       r="10.1"
+       fx="280.89999"
+       fy="163.7"
+       id="rg2029"
+       xlink:href="#XMLID_3446_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="XMLID_3445_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8184" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8186" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8188" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8190" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8192" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.5"
+       y1="122.7"
+       x2="180.10001"
+       y2="122.7"
+       id="lg2032"
+       xlink:href="#XMLID_3445_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="XMLID_3444_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ecb300;stop-opacity:1"
+         offset="0"
+         id="stop8171" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.2"
+         id="stop8173" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.30000001"
+         id="stop8175" />
+      <stop
+         style="stop-color:#ffe900;stop-opacity:1"
+         offset="0.40000001"
+         id="stop8177" />
+      <stop
+         style="stop-color:#d68100;stop-opacity:1"
+         offset="1"
+         id="stop8179" />
+      <a:midPointstop
+         offset="0"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#ECB300" />
+      <a:midPointstop
+         offset="0.2"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.3"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFFFB3" />
+      <a:midPointstop
+         offset="0.4"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="0.5"
+         style="stop-color:#FFE900" />
+      <a:midPointstop
+         offset="1"
+         style="stop-color:#D68100" />
+    </linearGradient>
+    <linearGradient
+       x1="156.39999"
+       y1="115.4"
+       x2="180.10001"
+       y2="115.4"
+       id="lg2035"
+       xlink:href="#XMLID_3444_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
+    <linearGradient
+       x1="379.70001"
+       y1="167.89999"
+       x2="383.89999"
+       y2="172.89999"
+       id="lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16159" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16161" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s16163" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="379.60001"
+       y1="167.8"
+       x2="383.79999"
+       y2="172"
+       id="lg6416"
+       xlink:href="#lg4286_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="0"
+         id="s16152" />
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="1"
+         id="s16154" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#737373"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="384.20001"
+       y1="169.8"
+       x2="384.79999"
+       y2="170.39999"
+       id="lg6453"
+       xlink:href="#lg4285_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="0"
+         id="s16145" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="s16147" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#808080"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#E5E5E5"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="380.5"
+       y1="172.60001"
+       x2="382.79999"
+       y2="173.7"
+       id="lg6456"
+       xlink:href="#lg4284_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
+    <radialGradient
+       cx="347.29999"
+       cy="244.5"
+       r="5.1999998"
+       fx="347.29999"
+       fy="244.5"
+       id="lg4282_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#333;stop-opacity:1"
+         offset="0"
+         id="s16135" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s16137" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#333333"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0"
+         id="s16111" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.60000002"
+         id="s16113" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="1"
+         id="s16115" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.6" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.39999"
+       y1="397.70001"
+       x2="310.89999"
+       y2="399.5"
+       id="lg6467"
+       xlink:href="#lg4280_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16100" />
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0.40000001"
+         id="s16102" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="0.89999998"
+         id="s16104" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16106" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.9" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="310.89999"
+       y1="395.79999"
+       x2="313.29999"
+       y2="403.10001"
+       id="lg6465"
+       xlink:href="#lg4279_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="307.79999"
+       y1="395.20001"
+       x2="313.79999"
+       y2="413.60001"
+       id="lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
+      <stop
+         style="stop-color:#ffffb3;stop-opacity:1"
+         offset="0"
+         id="s16091" />
+      <stop
+         style="stop-color:#fcd72f;stop-opacity:1"
+         offset="0.40000001"
+         id="s16093" />
+      <stop
+         style="stop-color:#ffcd00;stop-opacity:1"
+         offset="1"
+         id="s16095" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFB3"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.4" />
+      <ns:midPointStop
+         style="stop-color:#FCD72F"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFCD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="306.5"
+       y1="393"
+       x2="309"
+       y2="404"
+       id="lg6400"
+       xlink:href="#lg4278_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
+    <linearGradient
+       x1="352.10001"
+       y1="253.60001"
+       x2="348.5"
+       y2="237.8"
+       id="lg4276_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16077" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16079" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s16057" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.80000001"
+         id="s16059" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="s16061" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.8" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="335.60001"
+       y1="354.79999"
+       x2="337.89999"
+       y2="354.79999"
+       id="lg6463"
+       xlink:href="#lg4275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16048" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.1"
+         id="s16050" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16052" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.1" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="337.39999"
+       y1="353.10001"
+       x2="339.39999"
+       y2="357.10001"
+       id="lg6461"
+       xlink:href="#lg4274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s16041" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s16043" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="5.6e-003" />
+      <ns:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="334.39999"
+       y1="355.5"
+       x2="335.5"
+       y2="356.79999"
+       id="lg6381"
+       xlink:href="#lg4273_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
+    <linearGradient
+       x1="348.39999"
+       y1="247.39999"
+       x2="354.10001"
+       y2="242"
+       id="lg4271_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s16025" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.40000001"
+         id="s16027" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="s16029" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#000000"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg4270_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffff87;stop-opacity:1"
+         offset="0"
+         id="s16007" />
+      <stop
+         style="stop-color:#ffad00;stop-opacity:1"
+         offset="1"
+         id="s16009" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0" />
+      <ns:midPointStop
+         style="stop-color:#FFFF87"
+         offset="0.5" />
+      <ns:midPointStop
+         style="stop-color:#FFAD00"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="351.29999"
+       y1="257.29999"
+       x2="346.29999"
+       y2="235.5"
+       id="lg6459"
+       xlink:href="#lg4270_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="XMLID_2708_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="stop75318" />
+      <stop
+         style="stop-color:#fffcea;stop-opacity:1"
+         offset="1"
+         id="stop75320" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#FFFCEA"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="43.799999"
+       y1="32.5"
+       x2="63.299999"
+       y2="66.400002"
+       id="lg1907"
+       xlink:href="#XMLID_2708_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="XMLID_2707_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#ffdea0;stop-opacity:1"
+         offset="0"
+         id="stop75305" />
+      <stop
+         style="stop-color:#ffd89e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75307" />
+      <stop
+         style="stop-color:#ffd79e;stop-opacity:1"
+         offset="0.30000001"
+         id="stop75309" />
+      <stop
+         style="stop-color:#dbaf6d;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75311" />
+      <stop
+         style="stop-color:#6f4c24;stop-opacity:1"
+         offset="1"
+         id="stop75313" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#FFDEA0"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.3" />
+      <a:midPointStop
+         style="stop-color:#FFD79E"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#DBAF6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6F4C24"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="52.5"
+       y1="40.400002"
+       x2="58.200001"
+       y2="64"
+       id="lg1910"
+       xlink:href="#XMLID_2707_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="58"
+       y1="73.199997"
+       x2="44.5"
+       y2="19"
+       id="XMLID_2704_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)">
+      <stop
+         style="stop-color:#d4a96c;stop-opacity:1"
+         offset="0.5"
+         id="stop75284" />
+      <stop
+         style="stop-color:#dcb273;stop-opacity:1"
+         offset="0.60000002"
+         id="stop75286" />
+      <stop
+         style="stop-color:#f0ca87;stop-opacity:1"
+         offset="0.80000001"
+         id="stop75288" />
+      <stop
+         style="stop-color:#ffdc96;stop-opacity:1"
+         offset="0.69999999"
+         id="stop75290" />
+      <stop
+         style="stop-color:#c18a42;stop-opacity:1"
+         offset="1"
+         id="stop75292" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D4A96C"
+         offset="0.6" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.7" />
+      <a:midPointStop
+         style="stop-color:#FFDC96"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C18A42"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="XMLID_2703_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0"
+         id="stop75268" />
+      <stop
+         style="stop-color:#e5c9b0;stop-opacity:1"
+         offset="0.40000001"
+         id="stop75270" />
+      <stop
+         style="stop-color:#c0aa94;stop-opacity:1"
+         offset="1"
+         id="stop75272" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.4" />
+      <a:midPointStop
+         style="stop-color:#E5C9B0"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#C0AA94"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="53.700001"
+       y1="32"
+       x2="53.700001"
+       y2="64.599998"
+       id="lg1916"
+       xlink:href="#XMLID_2703_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-29,-22.6)" />
+    <linearGradient
+       x1="224.31"
+       y1="19.450001"
+       x2="214.33"
+       y2="11.46"
+       id="XMLID_419_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#404040;stop-opacity:1"
+         offset="0"
+         id="s1903" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1905" />
+      <stop
+         style="stop-color:#e9e9e9;stop-opacity:1"
+         offset="1"
+         id="s1907" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#404040" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E9E9E9" />
+    </linearGradient>
+    <linearGradient
+       x1="221.84"
+       y1="32.779999"
+       x2="212.2"
+       y2="20.27"
+       id="lg1988"
+       xlink:href="#XMLID_419_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1900"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s1902" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s1906" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#575757"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.33" />
+      <a:midPointStop
+         style="stop-color:#6D6D6D"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#D3D3D3"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="234.81"
+       y1="33.279999"
+       x2="228.27"
+       y2="33.279999"
+       id="lg1908"
+       xlink:href="#lg1900"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="XMLID_416_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#575757;stop-opacity:1"
+         offset="0"
+         id="s1874" />
+      <stop
+         style="stop-color:#6d6d6d;stop-opacity:1"
+         offset="0.33000001"
+         id="s1876" />
+      <stop
+         style="stop-color:#d3d3d3;stop-opacity:1"
+         offset="1"
+         id="s1878" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#575757" />
+      <a:midPointStop
+         offset="0.33"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#6D6D6D" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#D3D3D3" />
+    </linearGradient>
+    <linearGradient
+       x1="228.35001"
+       y1="33.279999"
+       x2="215.42999"
+       y2="33.279999"
+       id="lg1991"
+       xlink:href="#XMLID_416_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
+      <stop
+         style="stop-color:#c9ffc9;stop-opacity:1"
+         offset="0"
+         id="stop29201" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="stop29203" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#C9FFC9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#23A11F" />
+    </radialGradient>
+    <radialGradient
+       cx="603.19"
+       cy="230.77"
+       r="1.67"
+       fx="603.19"
+       fy="230.77"
+       id="radialGradient5711"
+       xlink:href="#x5010_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5722"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="x5002_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29134" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0.2"
+         id="stop29136" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="stop29138" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.20"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#FFFFFF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#999999" />
+    </linearGradient>
+    <linearGradient
+       x1="601.48999"
+       y1="170.16"
+       x2="613.84003"
+       y2="170.16"
+       id="lg5725"
+       xlink:href="#x5002_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29157" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29159" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.23"
+       id="lg5728"
+       xlink:href="#x5004_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="x5003_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="stop29143" />
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="1"
+         id="stop29145" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#E5E5E5" />
+    </linearGradient>
+    <linearGradient
+       x1="592.31"
+       y1="162.60001"
+       x2="609.32001"
+       y2="145.59"
+       id="lg5732"
+       xlink:href="#x5003_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop29124" />
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="1"
+         id="stop29126" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#FFFFFF" />
+    </linearGradient>
+    <linearGradient
+       x1="592.20001"
+       y1="156.45"
+       x2="609.98999"
+       y2="174.24001"
+       id="lg5735"
+       xlink:href="#x5000_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="XMLID_2433_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d6d6d6;stop-opacity:1"
+         offset="0"
+         id="71615" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71617" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D6D6D6" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="308.54999"
+       y1="149.89999"
+       x2="299.72"
+       y2="148.83"
+       id="lg1952"
+       xlink:href="#XMLID_2433_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
+      <stop
+         style="stop-color:#d2d2d2;stop-opacity:1"
+         offset="0.19"
+         id="71592" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.44999999"
+         id="71594" />
+      <stop
+         style="stop-color:#c7c7c7;stop-opacity:1"
+         offset="0.60000002"
+         id="71596" />
+      <stop
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.74000001"
+         id="71598" />
+      <stop
+         style="stop-color:#a4a4a4;stop-opacity:1"
+         offset="0.86000001"
+         id="71600" />
+      <stop
+         style="stop-color:#8a8a8a;stop-opacity:1"
+         offset="0.95999998"
+         id="71602" />
+      <stop
+         style="stop-color:gray;stop-opacity:1"
+         offset="1"
+         id="71604" />
+      <a:midPointStop
+         offset="0.19"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="0.8"
+         style="stop-color:#D2D2D2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#808080" />
+    </radialGradient>
+    <radialGradient
+       cx="307.39999"
+       cy="121"
+       r="23.35"
+       fx="307.39999"
+       fy="121"
+       id="radialGradient2331"
+       xlink:href="#XMLID_2432_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-276.62,-121.54)" />
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="XMLID_2430_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#b5d8ff;stop-opacity:1"
+         offset="0"
+         id="71582" />
+      <stop
+         style="stop-color:black;stop-opacity:1"
+         offset="1"
+         id="71584" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B5D8FF" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#000000" />
+    </linearGradient>
+    <linearGradient
+       x1="294.13"
+       y1="127.07"
+       x2="294.13"
+       y2="142.2"
+       id="lg2820"
+       xlink:href="#XMLID_2430_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="XMLID_2429_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0"
+         id="71564" />
+      <stop
+         style="stop-color:#e1e1e1;stop-opacity:1"
+         offset="0.25"
+         id="71566" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="0.44"
+         id="71568" />
+      <stop
+         style="stop-color:#a5a5a5;stop-opacity:1"
+         offset="1"
+         id="71570" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.25"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E1E1E1" />
+      <a:midPointStop
+         offset="0.44"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#A5A5A5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A5A5A5" />
+    </linearGradient>
+    <linearGradient
+       x1="279.10999"
+       y1="148.03"
+       x2="309.16"
+       y2="148.03"
+       id="lg2818"
+       xlink:href="#XMLID_2429_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
+      <stop
+         style="stop-color:#23468e;stop-opacity:1"
+         offset="0"
+         id="stop10972" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10974" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#23468E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </radialGradient>
+    <radialGradient
+       cx="622.34302"
+       cy="14.449"
+       r="26.496"
+       fx="622.34302"
+       fy="14.449"
+       id="rg5791"
+       xlink:href="#lg3499_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
+    <linearGradient
+       x1="616.112"
+       y1="76.247002"
+       x2="588.14099"
+       y2="60.742001"
+       id="lg3497_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#01326e;stop-opacity:1"
+         offset="0"
+         id="stop10962" />
+      <stop
+         style="stop-color:#012859;stop-opacity:1"
+         offset="1"
+         id="stop10964" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#01326E" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#012859" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg3496_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="stop10950" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10952" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#E5E5E5" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="617.698"
+       y1="82.445999"
+       x2="585.95203"
+       y2="54.848999"
+       id="lg5794"
+       xlink:href="#lg3496_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg3495_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10941" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10943" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10945" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="601.39001"
+       y1="55.341"
+       x2="588.29199"
+       y2="71.515999"
+       id="lg5771"
+       xlink:href="#lg3495_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg3494_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="stop10932" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.52200001"
+         id="stop10934" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="stop10936" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#D9D9D9" />
+      <a:midPointStop
+         offset="0.522"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#F2F2F2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#CCCCCC" />
+    </linearGradient>
+    <linearGradient
+       x1="611.34601"
+       y1="55.279999"
+       x2="590.39001"
+       y2="81.157997"
+       id="lg5774"
+       xlink:href="#lg3494_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="g3302_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#005e00;stop-opacity:1"
+         offset="0"
+         id="s6504" />
+      <stop
+         style="stop-color:#23a11f;stop-opacity:1"
+         offset="1"
+         id="s6506" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#005E00"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#23A11F"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="798.72998"
+       y1="69.839996"
+       x2="799.04999"
+       y2="70.709999"
+       id="lg5851"
+       xlink:href="#g3302_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0"
+         id="s6483" />
+      <stop
+         style="stop-color:#eee;stop-opacity:1"
+         offset="0.17"
+         id="s6485" />
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1"
+         offset="0.34"
+         id="s6487" />
+      <stop
+         style="stop-color:#cfcfcf;stop-opacity:1"
+         offset="0.50999999"
+         id="s6489" />
+      <stop
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="0.67000002"
+         id="s6491" />
+      <stop
+         style="stop-color:#919191;stop-opacity:1"
+         offset="0.83999997"
+         id="s6493" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6495" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.71" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="779.19"
+       y1="122.73"
+       x2="811.69"
+       y2="149.74001"
+       id="lg5855"
+       xlink:href="#g3301_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
+    <clipPath
+       id="g3299_">
+      <use
+         id="use6469"
+         x="0"
+         y="0"
+         width="1005.92"
+         height="376.97"
+         xlink:href="#g101_" />
+    </clipPath>
+    <radialGradient
+       cx="1189.9301"
+       cy="100.05"
+       r="40.400002"
+       fx="1189.9301"
+       fy="100.05"
+       id="g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6472" />
+      <stop
+         style="stop-color:white;stop-opacity:0"
+         offset="1"
+         id="s6474" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#000000"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1199.74"
+       cy="97.150002"
+       r="40.400002"
+       fx="1199.74"
+       fy="97.150002"
+       id="rg5860"
+       xlink:href="#g3300_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
+    <linearGradient
+       x1="796.38"
+       y1="67.580002"
+       x2="781.28003"
+       y2="58.549999"
+       id="g3298_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#4c8bca;stop-opacity:1"
+         offset="0"
+         id="s6462" />
+      <stop
+         style="stop-color:#b7e9ff;stop-opacity:1"
+         offset="1"
+         id="s6464" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#4C8BCA"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B7E9FF"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6448" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6450" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="800.97998"
+       y1="140.72"
+       x2="777.71997"
+       y2="121.76"
+       id="lg5890"
+       xlink:href="#g3297_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,70.17)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6439" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.51999998"
+         id="s6441" />
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="1"
+         id="s6443" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.52" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#CCCCCC"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="790.03998"
+       y1="-16.33"
+       x2="779.84003"
+       y2="-3.73"
+       id="lg5866"
+       xlink:href="#g3296_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="g3293_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6412" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6414" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="785.84003"
+       y1="72.989998"
+       x2="785.26001"
+       y2="76.279999"
+       id="lg5871"
+       xlink:href="#g3293_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="g3292_"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="0"
+         id="s6403" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="0.28"
+         id="s6405" />
+      <stop
+         style="stop-color:#666;stop-opacity:1"
+         offset="1"
+         id="s6407" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.28" />
+      <a:midPointstop
+         style="stop-color:#F2F2F2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#666666"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="789.37"
+       y1="69.879997"
+       x2="791.03998"
+       y2="77.120003"
+       id="lg5874"
+       xlink:href="#g3292_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
+      <stop
+         style="stop-color:#d9d9d9;stop-opacity:1"
+         offset="0"
+         id="s6380" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="1"
+         id="s6382" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#D9D9D9"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="786.65997"
+       y1="136.12"
+       x2="786.71002"
+       y2="134.33"
+       id="lg5878"
+       xlink:href="#g3290_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:white;stop-opacity:1"
+         offset="0"
+         id="s6371" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6373" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#FFFFFF"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1458.77"
+       cy="-5.0999999"
+       r="35.130001"
+       fx="1458.77"
+       fy="-5.0999999"
+       id="rg5881"
+       xlink:href="#g3289_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6362" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.63999999"
+         id="s6364" />
+      <stop
+         style="stop-color:#737373;stop-opacity:1"
+         offset="1"
+         id="s6366" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.64" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#737373"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1612.98"
+       cy="-4.4699998"
+       r="36.580002"
+       fx="1612.98"
+       fy="-4.4699998"
+       id="rg5884"
+       xlink:href="#g3288_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
+      <stop
+         style="stop-color:#e5e5e5;stop-opacity:1"
+         offset="0"
+         id="s6347" />
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0.38999999"
+         id="s6349" />
+      <stop
+         style="stop-color:#b1b1b1;stop-opacity:1"
+         offset="0.75"
+         id="s6351" />
+      <stop
+         style="stop-color:#aaa;stop-opacity:1"
+         offset="0.88"
+         id="s6353" />
+      <stop
+         style="stop-color:#9e9e9e;stop-opacity:1"
+         offset="0.97000003"
+         id="s6355" />
+      <stop
+         style="stop-color:#999;stop-opacity:1"
+         offset="1"
+         id="s6357" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0" />
+      <a:midPointstop
+         style="stop-color:#E5E5E5"
+         offset="0.5" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.39" />
+      <a:midPointstop
+         style="stop-color:#B2B2B2"
+         offset="0.87" />
+      <a:midPointstop
+         style="stop-color:#999999"
+         offset="1" />
+    </radialGradient>
+    <radialGradient
+       cx="1470.5"
+       cy="-10.21"
+       r="33.290001"
+       fx="1470.5"
+       fy="-10.21"
+       id="rg5887"
+       xlink:href="#g3287_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
+    <pattern
+       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
+       id="cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-365.3146,-513.505)"
+         id="g3047">
+           id=&quot;path2858&quot; /&gt;
+        <path
+   inkscape:label="#path2854"
+   sodipodi:nodetypes="czzzz"
+   style="fill:#e3dcc0"
+   id="path3060"
+   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
+</g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
+       id="dark-cream-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-408.0946,-513.505)"
+         id="dark-cream-spot"
+         inkscape:label="#g3043">
+        <path
+           sodipodi:nodetypes="czzzz"
+           style="fill:#c8c5ac"
+           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
+           id="path2953" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.375,0,0,0.375,379,400)"
+       id="white-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-484.3997,-513.505)"
+         id="white-spot"
+         inkscape:label="#g3035">
+        <path
+           style="opacity:0.25;fill:white"
+           id="path3033"
+           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
+           sodipodi:nodetypes="czzzz" />
+      </g>
+    </pattern>
+    <pattern
+       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
+       id="black-spots"
+       height="32"
+       width="32"
+       patternUnits="userSpaceOnUse">
+      <g
+         transform="translate(-448.3997,-513.505)"
+         id="black-spot"
+         inkscape:label="#g3039">
+        <path
+           sodipodi:nodetypes="czzzz"
+           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
+           id="path2961"
+           style="opacity:0.25;fill:black" />
+      </g>
+    </pattern>
+    <linearGradient
+       x1="501.0903"
+       y1="-19.2544"
+       x2="531.85413"
+       y2="0.72390002"
+       id="linearGradient17334"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17336" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17338" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17340" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17342" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5112"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B4DAEA" />
+      <a:midPointStop
+         offset="0.6461"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#16336E" />
+    </linearGradient>
+    <linearGradient
+       x1="415.73831"
+       y1="11.854"
+       x2="418.13361"
+       y2="18.8104"
+       id="linearGradient17426"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
+      <stop
+         style="stop-color:#ccc;stop-opacity:1"
+         offset="0"
+         id="stop17428" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17430" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#CCCCCC" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="478.21341"
+       y1="-131.9297"
+       x2="469.85818"
+       y2="-140.28481"
+       id="linearGradient17434"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17436" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17438" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17440" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17442" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="0.4213"
+         style="stop-color:#F3403F" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#A6100C" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17709"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17711"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17713"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17715"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17717"
+       xlink:href="#XMLID_1757_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17721"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17723"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="500.70749"
+       y1="-13.2441"
+       x2="513.46442"
+       y2="-2.1547"
+       id="linearGradient17416"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17418" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17420" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <defs
+       id="defs9929">
+      <path
+         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
+         id="XMLID_960_" />
+    </defs>
+    <clipPath
+       id="clipPath17448">
+      <use
+         id="use17450"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_960_" />
+    </clipPath>
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17452"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17454" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17456" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17458" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17460" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17463"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#f3403f;stop-opacity:1"
+         offset="0"
+         id="stop17465" />
+      <stop
+         style="stop-color:#d02a28;stop-opacity:1"
+         offset="0.37889999"
+         id="stop17467" />
+      <stop
+         style="stop-color:#b21714;stop-opacity:1"
+         offset="0.77649999"
+         id="stop17469" />
+      <stop
+         style="stop-color:#a6100c;stop-opacity:1"
+         offset="1"
+         id="stop17471" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#F3403F"
+         offset="0.4213" />
+      <a:midPointStop
+         style="stop-color:#A6100C"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="481.23969"
+       y1="212.5742"
+       x2="472.92981"
+       y2="207.4967"
+       id="linearGradient17807"
+       xlink:href="#XMLID_2275_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="473.7681"
+       y1="209.17529"
+       x2="486.98099"
+       y2="213.2001"
+       id="linearGradient17810"
+       xlink:href="#XMLID_2274_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-177.1654,35.43307)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17812"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17814"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17816"
+       xlink:href="#XMLID_1753_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17818"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17347"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17349" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17351" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#5387BA" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#96BAD6" />
+    </linearGradient>
+    <linearGradient
+       x1="516.57672"
+       y1="-15.769"
+       x2="516.57672"
+       y2="0.84280002"
+       id="linearGradient17379"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b2b2b2;stop-opacity:1"
+         offset="0"
+         id="stop17381" />
+      <stop
+         style="stop-color:#f2f2f2;stop-opacity:1"
+         offset="1"
+         id="stop17383" />
+      <a:midPointStop
+         offset="0"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="0.5"
+         style="stop-color:#B2B2B2" />
+      <a:midPointStop
+         offset="1"
+         style="stop-color:#F2F2F2" />
+    </linearGradient>
+    <linearGradient
+       x1="502.70749"
+       y1="115.3013"
+       x2="516.39001"
+       y2="127.1953"
+       id="linearGradient17862"
+       xlink:href="#XMLID_1749_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17864"
+       xlink:href="#XMLID_1756_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3859">
+      <polygon
+         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
+         id="XMLID_343_" />
+    </defs>
+    <linearGradient
+       x1="471.0806"
+       y1="201.07761"
+       x2="481.91711"
+       y2="210.4977"
+       id="linearGradient17389"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#6498c1;stop-opacity:1"
+         offset="0.005618"
+         id="stop17391" />
+      <stop
+         style="stop-color:#79a9cc;stop-opacity:1"
+         offset="0.2332"
+         id="stop17393" />
+      <stop
+         style="stop-color:#a4cde2;stop-opacity:1"
+         offset="0.74049997"
+         id="stop17395" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="1"
+         id="stop17397" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="5.618000e-003" />
+      <a:midPointStop
+         style="stop-color:#6498C1"
+         offset="0.4438" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17400">
+      <use
+         id="use17402"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_343_" />
+    </clipPath>
+    <linearGradient
+       x1="505.62939"
+       y1="-14.9526"
+       x2="527.49402"
+       y2="-0.7536"
+       id="linearGradient17404"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17406" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17408" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17410" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17412" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17882"
+       xlink:href="#XMLID_1752_"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
+    <defs
+       id="defs3826">
+      <polygon
+         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
+         id="XMLID_338_" />
+    </defs>
+    <linearGradient
+       x1="468.2915"
+       y1="204.7612"
+       x2="479.39871"
+       y2="214.4166"
+       id="linearGradient17357"
+       gradientUnits="userSpaceOnUse">
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0"
+         id="stop17359" />
+      <stop
+         style="stop-color:#96bad6;stop-opacity:1"
+         offset="1"
+         id="stop17361" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#96BAD6"
+         offset="1" />
+    </linearGradient>
+    <clipPath
+       id="clipPath17364">
+      <use
+         id="use17366"
+         x="0"
+         y="0"
+         width="744.09448"
+         height="600"
+         xlink:href="#XMLID_338_" />
+    </clipPath>
+    <linearGradient
+       x1="506.09909"
+       y1="-11.5137"
+       x2="527.99609"
+       y2="2.7063999"
+       id="linearGradient17368"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0"
+         id="stop17370" />
+      <stop
+         style="stop-color:#b4daea;stop-opacity:1"
+         offset="0.51120001"
+         id="stop17372" />
+      <stop
+         style="stop-color:#5387ba;stop-opacity:1"
+         offset="0.64609998"
+         id="stop17374" />
+      <stop
+         style="stop-color:#16336e;stop-opacity:1"
+         offset="1"
+         id="stop17376" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5112" />
+      <a:midPointStop
+         style="stop-color:#B4DAEA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.6461" />
+      <a:midPointStop
+         style="stop-color:#5387BA"
+         offset="0.5" />
+      <a:midPointStop
+         style="stop-color:#16336E"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient2387"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5105"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398"
+       id="linearGradient5145"
+       xlink:href="#linearGradient2381"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2381"
+       id="linearGradient2371"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
+       x1="296.4996"
+       y1="188.81061"
+       x2="317.32471"
+       y2="209.69398" />
+  </defs>
+  <g
+     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
+     id="g5089">
+    <path
+       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
+       transform="translate(282.8327,227.1903)"
+       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
+       id="path5091" />
+    <rect
+       width="27.85074"
+       height="29.369793"
+       rx="1.1414107"
+       ry="1.1414107"
+       x="286.96509"
+       y="227.63805"
+       style="fill:#032c87"
+       id="rect5093" />
+    <path
+       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
+       style="fill:white"
+       id="rect5095" />
+    <path
+       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
+       style="fill:#a70000;fill-opacity:1;stroke-width:2"
+       id="path5097" />
+    <rect
+       width="25.241802"
+       height="29.736675"
+       rx="0.89682275"
+       ry="0.89682275"
+       x="290.73544"
+       y="220.92249"
+       style="fill:#809cc9"
+       id="rect5099" />
+    <path
+       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
+       transform="matrix(0.499065,-0.866565,0,1,0,0)"
+       style="fill:#4573b3;fill-opacity:1"
+       id="rect5101" />
+    <path
+       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
+       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
+       id="path5103" />
+  </g>
+</svg>

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Architecture.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Architecture.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Architecture.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,386 @@
+# 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: 2009-01-04 22: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
+#: Architecture.xml:6
+#, no-c-format
+msgid "Architecture"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:8
+#, no-c-format
+msgid "Definitions"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:9
+#, no-c-format
+msgid ""
+"EJB3 is part of the Java EE 5.0 platform. Persistence in EJB3 is available "
+"in EJB3 containers, as well as for standalone J2SE applications that execute "
+"outside of a particular container. The following programming interfaces and "
+"artifacts are available in both environments."
+msgstr ""
+
+#. Tag: literal
+#: Architecture.xml:14
+#, no-c-format
+msgid "EntityManagerFactory"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:16
+#, no-c-format
+msgid ""
+"An entity manager factory provides entity manager instances, all instances "
+"are configured to connect to the same database, to use the same default "
+"settings as defined by the particular implementation, etc. You can prepare "
+"several entity manager factories to access several data stores. This "
+"interface is similar to the <literal>SessionFactory</literal> in native "
+"Hibernate."
+msgstr ""
+
+#. Tag: literal
+#: Architecture.xml:22
+#, no-c-format
+msgid "EntityManager"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:24
+#, no-c-format
+msgid ""
+"The <literal>EntityManager</literal> API is used to access a database in a "
+"particular unit of work. It is used to create and remove persistent entity "
+"instances, to find entities by their primary key identity, and to query over "
+"all entities. This interface is similar to the <literal>Session</literal> in "
+"Hibernate."
+msgstr ""
+
+#. Tag: term
+#: Architecture.xml:30
+#, no-c-format
+msgid "Persistence context"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:32
+#, no-c-format
+msgid ""
+"A persistence context is a set of entity instances in which for any "
+"persistent entity identity there is a unique entity instance. Within the "
+"persistence context, the entity instances and their lifecycle is managed by "
+"a particular entity manager. The scope of this context can either be the "
+"transaction, or an extended unit of work."
+msgstr ""
+
+#. Tag: term
+#: Architecture.xml:38
+#, no-c-format
+msgid "Persistence unit"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:40
+#, no-c-format
+msgid ""
+"The set of entity types that can be managed by a given entity manager is "
+"defined by a persistence unit. A persistence unit defines the set of all "
+"classes that are related or grouped by the application, and which must be "
+"collocated in their mapping to a single data store."
+msgstr ""
+
+#. Tag: term
+#: Architecture.xml:46
+#, no-c-format
+msgid "<term>Container-managed entity manager</term>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:48
+#, no-c-format
+msgid "An Entity Manager whose lifecycle is managed by the container"
+msgstr ""
+
+#. Tag: term
+#: Architecture.xml:54
+#, no-c-format
+msgid "<term>Application-managed entity manager</term>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:56
+#, no-c-format
+msgid "An Entity Manager whose lifecycle is managed by the application."
+msgstr ""
+
+#. Tag: term
+#: Architecture.xml:62
+#, no-c-format
+msgid "JTA entity manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:64
+#, no-c-format
+msgid "Entity manager involved in a JTA transaction"
+msgstr ""
+
+#. Tag: term
+#: Architecture.xml:70
+#, no-c-format
+msgid "Resource-local entity manager"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:72
+#, no-c-format
+msgid "Entity manager using a resource transaction (not a JTA transaction)."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:81
+#, no-c-format
+msgid "EJB container environment"
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:83
+#, no-c-format
+msgid "<title>Container-managed entity manager</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:84
+#, no-c-format
+msgid ""
+"The most common and widely used entity manager in a Java EE environment is "
+"the container-managed entity manager. In this mode, the container is "
+"responsible for the opening and closing of the entity manager (this is "
+"transparent to the application). It is also responsible for transaction "
+"boundaries. A container-managed entity manager is obtained in an application "
+"through dependency injection or through JNDI lookup, A container-managed "
+"entity manger requires the use of a JTA transaction."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:90
+#, no-c-format
+msgid "<title>Application-managed entity manager</title>"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:91
+#, no-c-format
+msgid ""
+"An application-managed entity manager allows you to control the entity "
+"manager in application code. This entity manager is retrieved through the "
+"<literal>EntityManagerFactory</literal> API. An application-managed entity "
+"manager can be either involved in the current JTA transaction (a JTA entity "
+"manager), or the transaction may be controlled through the "
+"<literal>EntityTransaction</literal> API (a resource-local entity manager). "
+"The resource-local entity manager transaction maps to a direct resource "
+"transaction (i. e. in Hibernate's case a JDBC transaction). The entity "
+"manager type (JTA or resource-local) is defined at configuration time, when "
+"setting up the entity manager factory."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:97
+#, no-c-format
+msgid "Persistence context scope"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:98
+#, no-c-format
+msgid ""
+"An entity manager is the API to interact with the persistence context. Two "
+"common strategies can be used: binding the persistence context to the "
+"transaction boundaries, or keeping the persistence context available across "
+"several transactions."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:101
+#, no-c-format
+msgid ""
+"The most common case is to bind the persistence context scope to the current "
+"transaction scope. This is only do-able when JTA transactions are used: the "
+"persistence context is associated with the JTA transaction life cycle. When "
+"a entity manager is invoked, the persistence context is also opened, if "
+"there is no persistence context associated with the current JTA transaction. "
+"Otherwise, the associated persistence context is used. The persistence "
+"context ends when the JTA transaction completes. This means that during the "
+"JTA transaction, an application will be able to work on managed entities of "
+"the same persistence context. In other words, you don't have to pass the "
+"entity manager's persistence context across your EJB method calls, but "
+"simply use dependency injection or lookup whenever you need an entity "
+"manager."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:104
+#, no-c-format
+msgid ""
+"You can also use an extended persistence context. This can be combined with "
+"stateful session beans, if you use a container-managed entity manager: the "
+"persistence context is created when an entity manager is retrieved from "
+"dependency injection or JNDI lookup , and is kept until the container closes "
+"it after the completion of the <literal>Remove</literal> stateful session "
+"bean method. This is a perfect mechanism for implementing a \"long\" unit of "
+"work pattern. For example, if you have to deal with multiple user "
+"interaction cycles as a single unit of work (for example, a wizard dialog "
+"that has to be fully completed), you usually model this as a unit of work "
+"from the point of view of the application user, and implement it using an "
+"extended persistence context. Please refer to the Hibernate reference manual "
+"or the book <citetitle>Hibernate In Action</citetitle> for more information "
+"about this pattern. JBoss Seam is a framework that link together JSF and "
+"EJB3 around the notion of conversation and unit of work. For an application-"
+"managed entity manager the persistence context is created when the entity "
+"manager is created and kept until the entity manager is closed. In an "
+"extended persistence context, all modification operations (persist, merge, "
+"remove) executed outside a transaction are queued until the persistence "
+"context is attached to a transaction. The transaction typically occurs at "
+"the user process end, allowing the whole process to be committed or "
+"rollbacked as application-managed entity manager only supports the extended "
+"persistence context."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:107
+#, no-c-format
+msgid ""
+"A resource-local entity manager or an entity manager created with "
+"<literal>EntityManagerFactory.createEntityManager()</literal> (application-"
+"managed) has a one-to-one relationship with a persistence context. In other "
+"situations, <emphasis>persistence context propagation</emphasis> occurs."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:113
+#, no-c-format
+msgid "Persistence context propagation"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:114
+#, no-c-format
+msgid ""
+"Persistence context propagation occurs for container-managed entity managers."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:117
+#, no-c-format
+msgid ""
+"In a transaction-scoped container-managed entity manager (common case in a "
+"Java EE environment), the JTA transaction propagation is the same as the "
+"persistence context resource propagation. In other words, container-managed "
+"transaction-scoped entity managers retrieved within a given JTA transaction "
+"all share the same persistence context. In Hibernate terms, this means all "
+"managers share the same session."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:120
+#, no-c-format
+msgid ""
+"Important: persistence context is never shared between different JTA "
+"transactions or between entity manager that do not came from the same entity "
+"manager factory. There are some noteworthy exceptions for context "
+"propagation when using extended persistence contexts:"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:125
+#, no-c-format
+msgid ""
+"If a stateless session bean, message-driven bean, or stateful session bean "
+"with a transaction-scoped persistence context calls a stateful session bean "
+"with an extended persistence context in the same JTA transaction, an "
+"<literal>IllegalStateException</literal> is thrown."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:130
+#, no-c-format
+msgid ""
+"If a stateful session bean with an extended persistence context calls as "
+"stateless session bean or a stateful session bean with a transaction-scoped "
+"persistence context in the same JTA transaction, the persistence context is "
+"propagated."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:135
+#, no-c-format
+msgid ""
+"If a stateful session bean with an extended persistence context calls a "
+"stateless or stateful session bean in a different JTA transaction context, "
+"the persistence context is not propagated."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:140
+#, no-c-format
+msgid ""
+"If a stateful session bean with an extended persistence context instantiates "
+"another stateful session bean with an extended persistence context, the "
+"extended persistence context is inherited by the second stateful session "
+"bean. If the second stateful session bean is called with a different "
+"transaction context than the first, an <literal>IllegalStateException</"
+"literal> is thrown."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:145
+#, no-c-format
+msgid ""
+"If a stateful session bean with an extended persistence context calls a "
+"stateful session bean with a different extended persistence context in the "
+"same transaction, an <literal>IllegalStateException</literal> is thrown."
+msgstr ""
+
+#. Tag: title
+#: Architecture.xml:155
+#, no-c-format
+msgid "Java SE environments"
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:156
+#, no-c-format
+msgid ""
+"In a Java SE environment only extended context application-managed entity "
+"managers are available. You can retrieve an entity manger using the "
+"<literal>EntityManagerFactory</literal> API. Only resource-local entity "
+"managers are available. In other words, JTA transactions and persistence "
+"context propagation are not supported in Java SE (you will have to propagate "
+"the persistence context yourself, e.g. using the thread local session "
+"pattern popular in the Hibernate community)."
+msgstr ""
+
+#. Tag: para
+#: Architecture.xml:159
+#, no-c-format
+msgid ""
+"Extended context means that a persistence context is created when the entity "
+"manager is retrieved (using <literal>EntityManagerFactory.createEntityManager"
+"(...)</literal> ) and closed when the entity manager is closed. In this "
+"case, many resource-local transaction share the same persistence context."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Author_Group.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Author_Group.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Author_Group.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,29 @@
+# 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: 2009-01-04 22: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: author
+#: Author_Group.xml:6
+#, no-c-format
+msgid "<firstname>Hibernate Development Team</firstname> <surname></surname>"
+msgstr ""
+
+#. Tag: editor
+#: Author_Group.xml:10
+#, no-c-format
+msgid ""
+"<firstname>Red Hat Inc. Engineering Content Services</firstname> <surname></"
+"surname>"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Batch_processing.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Batch_processing.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Batch_processing.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,140 @@
+# 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: 2009-01-04 22: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
+#: Batch_processing.xml:6
+#, no-c-format
+msgid "Batch processing"
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:7
+#, no-c-format
+msgid ""
+"Batch processing has traditionally been difficult in full object/relational "
+"mapping. ORM is all about object state management, which implies that object "
+"state is available in memory. However, Hibernate has some features to "
+"optimize batch processing which are discussed in the Hibernate reference "
+"guide, however, EJB3 persistence differs slightly."
+msgstr ""
+
+#. Tag: title
+#: Batch_processing.xml:11
+#, no-c-format
+msgid "Bulk update/delete"
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:12
+#, no-c-format
+msgid ""
+"As already discussed, automatic and transparent object/relational mapping is "
+"concerned with the management of object state. This implies that the object "
+"state is available in memory, hence updating or deleting (using SQL "
+"<literal>UPDATE</literal> and <literal>DELETE</literal>) data directly in "
+"the database will not affect in-memory state. However, Hibernate provides "
+"methods for bulk SQL-style <literal>UPDATE</literal> and <literal>DELETE</"
+"literal> statement execution which are performed through EJB-QL (<xref "
+"linkend=\"chap-Hibernate_EntityManager_User_Guide-"
+"EJB_QL_The_Object_Query_Language\"/>)."
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:15
+#, no-c-format
+msgid ""
+"The pseudo-syntax for <literal>UPDATE</literal> and <literal>DELETE</"
+"literal> statements is: <literal>( UPDATE | DELETE ) FROM? ClassName (WHERE "
+"WHERE_CONDITIONS)?</literal>. Note that:"
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:20
+#, no-c-format
+msgid "In the from-clause, the FROM keyword is optional."
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:25
+#, no-c-format
+msgid ""
+"There can only be a single class named in the from-clause, and it "
+"<emphasis>cannot</emphasis> have an alias (this is a current Hibernate "
+"limitation and will be removed soon)."
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:30
+#, no-c-format
+msgid ""
+"No joins (either implicit or explicit) can be specified in a bulk EJB-QL "
+"query. Sub-queries may be used in the where-clause."
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:35
+#, no-c-format
+msgid "The where-clause is also optional."
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:40
+#, no-c-format
+msgid ""
+"As an example, to execute an EJB-QL <literal>UPDATE</literal>, use the "
+"<literal>Query.executeUpdate()</literal> method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_processing.xml:43
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_34.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:44
+#, no-c-format
+msgid ""
+"To execute an EJB-QL <literal>DELETE</literal>, use the same <literal>Query."
+"executeUpdate()</literal> method (the method is named for those familiar "
+"with JDBC's <literal>PreparedStatement.executeUpdate()</literal>):"
+msgstr ""
+
+#. Tag: programlisting
+#: Batch_processing.xml:48
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_35.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Batch_processing.xml:49
+#, no-c-format
+msgid ""
+"The <literal>int</literal> value returned by the <literal>Query.executeUpdate"
+"()</literal> method indicate the number of entities effected by the "
+"operation. This may or may not correlate with the number of rows effected in "
+"the database. An EJB-QL 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 ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Book_Info.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Book_Info.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Book_Info.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,49 @@
+# 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: 2009-01-04 22: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
+#: Book_Info.xml:6
+#, no-c-format
+msgid "Hibernate EntityManager User Guide CP03 FP01"
+msgstr ""
+
+#. Tag: subtitle
+#: Book_Info.xml:7
+#, no-c-format
+msgid ""
+"for Use with JBoss Enterprise Application Platform 4.3.0 Cumulative Patch 3 "
+"Feature Pack 1"
+msgstr ""
+
+#. Tag: para
+#: Book_Info.xml:14
+#, no-c-format
+msgid ""
+"This book is a User Guide to Hibernate EntityManager for JBoss Enterprise "
+"Application Platform 4.3.0 CP03 FP01."
+msgstr ""
+
+#. Tag: phrase
+#: Book_Info.xml:22
+#, no-c-format
+msgid "Logo"
+msgstr ""
+
+#. Tag: holder
+#: Book_Info.xml:28
+#, no-c-format
+msgid "&HOLDER;"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Chapter.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Chapter.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Chapter.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,45 @@
+# 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: 2009-01-04 22: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
+#: Chapter.xml:6
+#, no-c-format
+msgid "Test"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:7
+#, no-c-format
+msgid "This is a test paragraph"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:11
+#, no-c-format
+msgid "Section 1 Test"
+msgstr ""
+
+#. Tag: para
+#: Chapter.xml:12 Chapter.xml:19
+#, no-c-format
+msgid "Test of a section"
+msgstr ""
+
+#. Tag: title
+#: Chapter.xml:18
+#, no-c-format
+msgid "Section 2 Test"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/EJBQL_The_Object_Query_Language.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/EJBQL_The_Object_Query_Language.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/EJBQL_The_Object_Query_Language.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,1737 @@
+# 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: 2009-01-04 22: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
+#: EJBQL_The_Object_Query_Language.xml:6
+#, no-c-format
+msgid "EJB-QL: The Object Query Language"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:7
+#, no-c-format
+msgid ""
+"EJB3-QL has been heavily inspired by HQL, the native Hibernate Query "
+"Language. Both are therefore very close to SQL, but portable and independent "
+"of the database schema. People familiar with HQL shouldn't have any problem "
+"using EJB-QL. Actually, you use the same query API for EJB-QL and HQL "
+"queries. Portable EJB3 applications however should stick to EJB-QL or "
+"similar vendor extensions are needed."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:11
+#, no-c-format
+msgid "Case Sensitivity"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:12
+#, no-c-format
+msgid ""
+"Queries are case-insensitive, except for names of Java classes and "
+"properties. 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
+#: EJBQL_The_Object_Query_Language.xml:15
+#, no-c-format
+msgid ""
+"This manual uses lowercase EJBQL keywords. Some users find queries with "
+"uppercase keywords more readable, but we find this convention ugly when "
+"embedded in Java code."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:21
+#, no-c-format
+msgid "The from clause"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:22
+#, no-c-format
+msgid "The simplest possible EJB-QL query is of the form:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:26
+#, no-c-format
+msgid "select c from eg.Cat c"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:27
+#, no-c-format
+msgid ""
+"which simply returns all instances of the class <literal>eg.Cat</literal>. "
+"Unlike HQL, the select clause is not optional in EJB-QL. We don't usually "
+"need to qualify the class name, since the entity name defaults to the "
+"unqualified class name (<literal>@Entity</literal>). So we almost always "
+"just write:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:31
+#, no-c-format
+msgid "select c from Cat c"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:32
+#, no-c-format
+msgid ""
+"As you may have noticed you can assign aliases to classes, the <literal>as</"
+"literal> keywork is optional. An alias allows you to refer to <literal>Cat</"
+"literal> in other parts of the query."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:36
+#: EJBQL_The_Object_Query_Language.xml:197
+#, no-c-format
+msgid "select cat from Cat as cat"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:37
+#, no-c-format
+msgid ""
+"Multiple classes may appear, resulting in a Cartesian product or \"cross\" "
+"join."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:41
+#, no-c-format
+msgid "select form, param from Formula as form, Parameter as param"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:42
+#, no-c-format
+msgid ""
+"It is considered good practice to name query aliases using an initial "
+"lowercase, consistent with Java naming standards for local variables (eg. "
+"<literal>domesticCat</literal>)."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:48
+#, no-c-format
+msgid "Associations and joins"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:49
+#, no-c-format
+msgid ""
+"You may also assign aliases to associated entities, or even to elements of a "
+"collection of values, using a <literal>join</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:53
+#, no-c-format
+msgid ""
+"select cat, mate, kitten from Cat as cat \n"
+"    inner join cat.mate as mate\n"
+"    left outer join cat.kittens as kitten"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:55
+#, no-c-format
+msgid "select cat from Cat as cat left join cat.mate.kittens as kittens"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:56
+#, no-c-format
+msgid "The supported join types are borrowed from ANSI SQL"
+msgstr ""
+
+#. Tag: literal
+#: EJBQL_The_Object_Query_Language.xml:62
+#, no-c-format
+msgid "inner join"
+msgstr ""
+
+#. Tag: literal
+#: EJBQL_The_Object_Query_Language.xml:67
+#, no-c-format
+msgid "left outer join"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:71
+#, no-c-format
+msgid ""
+"The <literal>inner join</literal>, <literal>left outer join</literal> "
+"constructs may be abbreviated."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:75
+#, no-c-format
+msgid ""
+"select cat, mate, kitten from Cat as cat \n"
+"    join cat.mate as mate\n"
+"    left join cat.kittens as kitten"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:76
+#, no-c-format
+msgid ""
+"In addition, 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 fetching options in the associations and collection mapping "
+"metadata. See the Performance chapter of the Hibernate reference guide for "
+"more information."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:80
+#, no-c-format
+msgid ""
+"select cat from Cat as cat \n"
+"    inner join fetch cat.mate\n"
+"    left join fetch cat.kittens"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:81
+#, 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). Also, the associated objects are not returned "
+"directly in the query results. Instead, they may be accessed via the parent "
+"object. The only reason we might need an alias is if we are recursively join "
+"fetching a further collection:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:85
+#, no-c-format
+msgid ""
+"select cat from Cat as cat \n"
+"    inner join fetch cat.mate\n"
+"    left join fetch cat.kittens child\n"
+"    left join fetch child.kittens"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:86
+#, no-c-format
+msgid ""
+"Note that the <literal>fetch</literal> construct may not be used in queries "
+"called using <literal>scroll()</literal> or <literal>iterate()</literal>. "
+"Nor should <literal>fetch</literal> be used together with "
+"<literal>setMaxResults()</literal> or <literal>setFirstResult()</literal>. "
+"It is possible to create a cartesian product by join fetching more than one "
+"collection in a query (as in the example above), be careful the result of "
+"this product isn't bigger than you expect."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:89
+#, 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 immediately (in the first query) using <literal>fetch all "
+"properties</literal>. This is Hibernate specific option:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:93
+#, no-c-format
+msgid "select doc from Document doc fetch all properties order by doc.name"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:95
+#, no-c-format
+msgid ""
+"select doc from Document doc fetch all properties where lower(doc.name) like "
+"'%cats%'"
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:99
+#, no-c-format
+msgid "The select clause"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:100
+#, no-c-format
+msgid ""
+"The <literal>select</literal> clause picks which objects and properties to "
+"return in the query result set. Consider:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:104
+#, no-c-format
+msgid ""
+"select mate \n"
+"from Cat as cat \n"
+"    inner join cat.mate as mate"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:105
+#, no-c-format
+msgid ""
+"The query will select <literal>mate</literal>s of other <literal>Cat</"
+"literal>s. Actually, you may express this query more compactly as:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:109
+#, no-c-format
+msgid "select cat.mate from Cat cat"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:110
+#, no-c-format
+msgid ""
+"Queries may return properties of any value type including properties of "
+"component type:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:114
+#, no-c-format
+msgid ""
+"select cat.name from DomesticCat cat\n"
+"where cat.name like 'fri%'"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:116
+#, no-c-format
+msgid "select cust.name.firstName from Customer as cust"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:117
+#, no-c-format
+msgid ""
+"Queries may return multiple objects and/or properties as an array of type "
+"<literal>Object[]</literal>,"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:121
+#, no-c-format
+msgid ""
+"select mother, offspr, mate.name \n"
+"from DomesticCat as mother\n"
+"    inner join mother.mate as mate\n"
+"    left outer join mother.kittens as offspr"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:122
+#, no-c-format
+msgid "or as a <literal>List</literal> (HQL specific feature)"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:126
+#, no-c-format
+msgid ""
+"select new list(mother, offspr, mate.name)\n"
+"from DomesticCat as mother\n"
+"    inner join mother.mate as mate\n"
+"    left outer join mother.kittens as offspr"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:127
+#, no-c-format
+msgid "or as an actual typesafe Java object,"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:131
+#, no-c-format
+msgid ""
+"select new Family(mother, mate, offspr)\n"
+"from DomesticCat as mother\n"
+"    join mother.mate as mate\n"
+"    left join mother.kittens as offspr"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:132
+#, no-c-format
+msgid ""
+"assuming that the class <literal>Family</literal> has an appropriate "
+"constructor."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:135
+#, no-c-format
+msgid ""
+"You may assign aliases to selected expressions using <literal>as</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:139
+#, no-c-format
+msgid ""
+"select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
+"from Cat cat"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:140
+#, no-c-format
+msgid ""
+"This is most useful when used together with <literal>select new map</"
+"literal> (HQL specific feature):"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:144
+#, no-c-format
+msgid ""
+"select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as "
+"n )\n"
+"from Cat cat"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:145
+#, no-c-format
+msgid ""
+"This query returns a <literal>Map</literal> from aliases to selected values."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:151
+#, no-c-format
+msgid "Aggregate functions"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:152
+#, no-c-format
+msgid ""
+"HQL queries may even return the results of aggregate functions on properties:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:156
+#, no-c-format
+msgid ""
+"select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
+"from Cat cat"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:157
+#, no-c-format
+msgid "The supported aggregate functions are"
+msgstr ""
+
+#. Tag: literal
+#: EJBQL_The_Object_Query_Language.xml:163
+#, no-c-format
+msgid ""
+"avg(...), avg(distinct ...), sum(...), sum(distinct ...), min(...), max(...)"
+msgstr ""
+
+#. Tag: literal
+#: EJBQL_The_Object_Query_Language.xml:168
+#, no-c-format
+msgid "count(*)"
+msgstr ""
+
+#. Tag: literal
+#: EJBQL_The_Object_Query_Language.xml:173
+#, no-c-format
+msgid "count(...), count(distinct ...), count(all...)"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:177
+#, no-c-format
+msgid ""
+"You may use arithmetic operators, concatenation, and recognized SQL "
+"functions in the select clause (dpending on configured dialect, HQL specific "
+"feature):"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:181
+#, no-c-format
+msgid ""
+"select cat.weight + sum(kitten.weight) \n"
+"from Cat cat \n"
+"    join cat.kittens kitten\n"
+"group by cat.id, cat.weight"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:183
+#, no-c-format
+msgid "select firstName||' '||initial||' '||upper(lastName) from Person"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:184
+#, no-c-format
+msgid ""
+"The <literal>distinct</literal> and <literal>all</literal> keywords may be "
+"used and have the same semantics as in SQL."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:188
+#, no-c-format
+msgid ""
+"select distinct cat.name from Cat cat\n"
+"\n"
+"select count(distinct cat.name), count(cat) from Cat cat"
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:192
+#, no-c-format
+msgid "Polymorphic queries"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:193
+#, no-c-format
+msgid "A query like:"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:198
+#, no-c-format
+msgid ""
+"returns instances not only of <literal>Cat</literal>, but also of subclasses "
+"like <literal>DomesticCat</literal>. Hibernate queries may name "
+"<emphasis>any</emphasis> Java class or interface in the <literal>from</"
+"literal> clause (portable EJB-QL queries should only name mapped entities). "
+"The query will return instances of all persistent classes that extend that "
+"class or implement the interface. The following query would return all "
+"persistent objects:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:202
+#, no-c-format
+msgid "from java.lang.Object o // HQL only"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:203
+#, no-c-format
+msgid ""
+"The interface <literal>Named</literal> might be implemented by various "
+"persistent classes:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:207
+#, no-c-format
+msgid "from Named n, Named m where n.name = m.name // HQL only"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:208
+#, no-c-format
+msgid ""
+"Note that 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 "
+"can't call these queries using <literal>Query.scroll()</literal>.)"
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:214
+#, no-c-format
+msgid "The where clause"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:215
+#, no-c-format
+msgid ""
+"The <literal>where</literal> clause allows you to narrow the list of "
+"instances returned. If no alias exists, you may refer to properties by name:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:219
+#, no-c-format
+msgid "select cat from Cat cat where cat.name='Fritz'"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:220
+#, no-c-format
+msgid "returns instances of <literal>Cat</literal> named 'Fritz'."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:224
+#, no-c-format
+msgid ""
+"select foo \n"
+"from Foo foo, Bar bar\n"
+"where foo.startDate = bar.date"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:225
+#, no-c-format
+msgid ""
+"will return all instances of <literal>Foo</literal> for which there exists "
+"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:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:229
+#, no-c-format
+msgid "select cat from Cat cat where cat.mate.name is not null"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:230
+#, no-c-format
+msgid ""
+"This query translates to an SQL query with a table (inner) join. If you were "
+"to write something like"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:234
+#, no-c-format
+msgid ""
+"select foo from Foo foo  \n"
+"where foo.bar.baz.customer.address.city is not null"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:235
+#, no-c-format
+msgid ""
+"you would end up with a query that would require four table joins in SQL."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:238
+#, no-c-format
+msgid ""
+"The <literal>=</literal> operator may be used to compare not only "
+"properties, but also instances:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:242
+#, no-c-format
+msgid "select cat, rival from Cat cat, Cat rival where cat.mate = rival.mate"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:244
+#, no-c-format
+msgid ""
+"select cat, mate \n"
+"from Cat cat, Cat mate\n"
+"where cat.mate = mate"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:245
+#, no-c-format
+msgid ""
+"The special property (lowercase) <literal>id</literal> may be used to "
+"reference the unique identifier of an object. (You may also use its mapped "
+"identifier property name.). Note that this keyword is specific to HQL."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:249
+#, no-c-format
+msgid ""
+"select cat from Cat as cat where cat.id = 123\n"
+"\n"
+"select cat from Cat as cat where cat.mate.id = 69"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:250
+#, no-c-format
+msgid "The second query is efficient. No table join is required!"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:253
+#, no-c-format
+msgid ""
+"Properties of composite identifiers may also be used. Suppose "
+"<literal>Person</literal> has a composite identifier consisting of "
+"<literal>country</literal> and <literal>medicareNumber</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:257
+#, no-c-format
+msgid ""
+"select person from bank.Person person\n"
+"where person.id.country = 'AU' \n"
+"    and person.id.medicareNumber = 123456"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:259
+#, no-c-format
+msgid ""
+"select account from bank.Account account\n"
+"where account.owner.id.country = 'AU' \n"
+"    and account.owner.id.medicareNumber = 123456"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:260
+#, no-c-format
+msgid "Once again, the second query requires no table join."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:263
+#, no-c-format
+msgid ""
+"Likewise, 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. Once again, this is specific to HQL."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:267
+#, no-c-format
+msgid "select cat from Cat cat where cat.class = DomesticCat"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:268
+#, no-c-format
+msgid ""
+"You may also specify properties of components or composite user types (and "
+"of components of components, etc). Never try to use a path-expression that "
+"ends in a property of component type (as opposed to a property of a "
+"component). For example, if <literal>store.owner</literal> is an entity with "
+"a component <literal>address</literal>"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:272
+#, no-c-format
+msgid ""
+"store.owner.address.city    // okay\n"
+"store.owner.address         // error!"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:273
+#, no-c-format
+msgid ""
+"An \"any\" type has the special properties <literal>id</literal> and "
+"<literal>class</literal>, allowing us to express a join in the following way "
+"(where <literal>AuditLog.item</literal> is a property mapped with "
+"<literal>&lt;any&gt;</literal>). <literal>Any</literal> is specific to "
+"Hibernate"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:277
+#, no-c-format
+msgid ""
+"from AuditLog log, Payment payment \n"
+"where log.item.class = 'Payment' and log.item.id = payment.id"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:278
+#, no-c-format
+msgid ""
+"Notice that <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
+#: EJBQL_The_Object_Query_Language.xml:284
+#, no-c-format
+msgid "Expressions"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:285
+#, no-c-format
+msgid ""
+"Expressions allowed in the <literal>where</literal> clause include most of "
+"the kind of things you could write in SQL:"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:290
+#, no-c-format
+msgid "mathematical operators <literal>+, -, *, /</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:295
+#, no-c-format
+msgid ""
+"binary comparison operators <literal>=, &gt;=, &lt;=, &lt;&gt;, !=, like</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:300
+#, no-c-format
+msgid "logical operations <literal>and, or, not</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:305
+#, no-c-format
+msgid "Parentheses <literal>( )</literal>, indicating grouping"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:310
+#, 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
+#: EJBQL_The_Object_Query_Language.xml:315
+#, no-c-format
+msgid ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end "
+"(specific to HQL)</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:320
+#, no-c-format
+msgid ""
+"string concatenation <literal>...||...</literal> or <literal>concat(...,...) "
+"(use concat() for portable EJB-QL queries)</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:325
+#, no-c-format
+msgid ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:330
+#, no-c-format
+msgid ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>, (specific to HQL)"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:335
+#, 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()</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:340
+#, no-c-format
+msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:345
+#, 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
+#: EJBQL_The_Object_Query_Language.xml:350
+#, no-c-format
+msgid ""
+"Any database-supported SQL scalar function like <literal>sign()</literal>, "
+"<literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</"
+"literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:355
+#, no-c-format
+msgid "JDBC IN parameters <literal>?</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:360
+#, no-c-format
+msgid ""
+"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
+"<literal>:x1</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:365
+#, no-c-format
+msgid ""
+"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>'1970-"
+"01-01 10:00:01.0'</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:370
+#, no-c-format
+msgid ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:375
+#, no-c-format
+msgid ""
+"<literal>in</literal> and <literal>between</literal> may be used as follows:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:379
+#, no-c-format
+msgid "select cat from DomesticCat cat where cat.name between 'A' and 'B'"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:381
+#, no-c-format
+msgid ""
+"select cat from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:382
+#, no-c-format
+msgid "and the negated forms may be written"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:386
+#, no-c-format
+msgid "select cat from DomesticCat cat where cat.name not between 'A' and 'B'"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:388
+#, no-c-format
+msgid ""
+"select cat from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:389
+#, no-c-format
+msgid ""
+"Likewise, <literal>is null</literal> and <literal>is not null</literal> may "
+"be used to test for null values."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:392
+#, no-c-format
+msgid ""
+"Booleans may be easily used in expressions by declaring HQL query "
+"substitutions in Hibernate configuration:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:396
+#, no-c-format
+msgid "hibernate.query.substitutions true 1, false 0"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:397
+#, no-c-format
+msgid ""
+"This will replace the keywords <literal>true</literal> and <literal>false</"
+"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
+"the translated SQL from this HQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:401
+#, no-c-format
+msgid "select cat from Cat cat where cat.alive = true"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:402
+#, no-c-format
+msgid ""
+"You may test the size of a collection with the special property "
+"<literal>size</literal>, or the special <literal>size()</literal> function "
+"(HQL specific feature)."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:406
+#, no-c-format
+msgid "select cat from Cat cat where cat.kittens.size &gt; 0"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:408
+#, no-c-format
+msgid "select cat from Cat cat where size(cat.kittens) &gt; 0"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:409
+#, no-c-format
+msgid ""
+"For indexed collections, you may refer to the minimum and maximum indices "
+"using <literal>minindex</literal> and <literal>maxindex</literal> functions. "
+"Similarly, you may refer to the minimum and maximum elements of a collection "
+"of basic type using the <literal>minelement</literal> and "
+"<literal>maxelement</literal> functions. These are HQL specific features."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:413
+#, no-c-format
+msgid ""
+"select cal from Calendar cal where maxelement(cal.holidays) &gt; current date"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:415
+#, no-c-format
+msgid "select order from Order order where maxindex(order.items) &gt; 100"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:417
+#, no-c-format
+msgid "select order from Order order where minelement(order.items) &gt; 10000"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:418
+#, 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). While subqueries are supported by EJB-"
+"QL, <literal>elements</literal> and <literal>indices</literal> are specific "
+"HQL features."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:422
+#, no-c-format
+msgid ""
+"select mother from Cat as mother, Cat as kit\n"
+"where kit in elements(foo.kittens)"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:424
+#, no-c-format
+msgid ""
+"select p from NameList list, Person p\n"
+"where p.name = some elements(list.names)"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:426
+#, no-c-format
+msgid "select cat from Cat cat where exists elements(cat.kittens)"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:428
+#, no-c-format
+msgid "select cat from Player p where 3 &gt; all elements(p.scores)"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:430
+#, no-c-format
+msgid "select cat from Show show where 'fizard' in indices(show.acts)"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:431
+#, 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> - may only be used in the where clause in "
+"Hibernate3."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:434
+#, no-c-format
+msgid ""
+"In HQL, elements of indexed collections (arrays, lists, maps) may be "
+"referred to by index (in a where clause only):"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:438
+#, no-c-format
+msgid "select order from Order order where order.items[0].id = 1234"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:440
+#, no-c-format
+msgid ""
+"select person from Person person, Calendar calendar\n"
+"where calendar.holidays['national day'] = person.birthDay\n"
+"    and person.nationality.calendar = calendar"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:442
+#, no-c-format
+msgid ""
+"select item from Item item, Order order\n"
+"where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:444
+#, no-c-format
+msgid ""
+"select item from Item item, Order order\n"
+"where order.items[ maxindex(order.items) ] = item and order.id = 11"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:445
+#, no-c-format
+msgid ""
+"The expression inside <literal>[]</literal> may even be an arithmetic "
+"expression."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:449
+#, no-c-format
+msgid ""
+"select item from Item item, Order order\n"
+"where order.items[ size(order.items) - 1 ] = item"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:450
+#, no-c-format
+msgid ""
+"HQL also provides the built-in <literal>index()</literal> function, for "
+"elements of a one-to-many association or collection of values."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:454
+#, no-c-format
+msgid ""
+"select item, index(item) from Order order \n"
+"    join order.items item\n"
+"where index(item) &lt; 5"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:455
+#, no-c-format
+msgid "Scalar SQL functions supported by the underlying database may be used"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:459
+#, no-c-format
+msgid "select cat from DomesticCat cat where upper(cat.name) like 'FRI%'"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:460
+#, no-c-format
+msgid ""
+"If you are not yet convinced by all this, think how much longer and less "
+"readable the following query would be in SQL:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:464
+#, no-c-format
+msgid ""
+"select cust\n"
+"from Product prod,\n"
+"    Store store\n"
+"    inner join store.customers cust\n"
+"where prod.name = 'widget'\n"
+"    and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+"    and prod = all elements(cust.currentOrder.lineItems)"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:465
+#, no-c-format
+msgid "<emphasis>Hint:</emphasis> something like"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:469
+#, no-c-format
+msgid ""
+"SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
+"FROM customers cust,\n"
+"    stores store,\n"
+"    locations loc,\n"
+"    store_customers sc,\n"
+"    product prod\n"
+"WHERE prod.name = 'widget'\n"
+"    AND store.loc_id = loc.id\n"
+"    AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+"    AND sc.store_id = store.id\n"
+"    AND sc.cust_id = cust.id\n"
+"    AND prod.id = ALL(\n"
+"        SELECT item.prod_id\n"
+"        FROM line_items item, orders o\n"
+"        WHERE item.order_id = o.id\n"
+"            AND cust.current_order = o.id\n"
+"    )"
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:473
+#, no-c-format
+msgid "The order by clause"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:474
+#, no-c-format
+msgid ""
+"The list returned by a query may be ordered by any property of a returned "
+"class or components:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:478
+#, no-c-format
+msgid ""
+"select cat from DomesticCat cat\n"
+"order by cat.name asc, cat.weight desc, cat.birthdate"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:479
+#, no-c-format
+msgid ""
+"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
+"ascending or descending order respectively."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:485
+#, no-c-format
+msgid "The group by clause"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:486
+#, no-c-format
+msgid ""
+"A query that returns aggregate values may be grouped by any property of a "
+"returned class or components:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:490
+#, no-c-format
+msgid ""
+"select cat.color, sum(cat.weight), count(cat) \n"
+"from Cat cat\n"
+"group by cat.color"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:492
+#, no-c-format
+msgid ""
+"select foo.id, avg(name), max(name) \n"
+"from Foo foo join foo.names name\n"
+"group by foo.id"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:493
+#, no-c-format
+msgid "A <literal>having</literal> clause is also allowed."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:497
+#, no-c-format
+msgid ""
+"select cat.color, sum(cat.weight), count(cat) \n"
+"from Cat cat\n"
+"group by cat.color \n"
+"having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:498
+#, no-c-format
+msgid ""
+"SQL functions and aggregate functions are allowed in the <literal>having</"
+"literal> and <literal>order by</literal> clauses, if supported by the "
+"underlying database (eg. not in MySQL)."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:502
+#, no-c-format
+msgid ""
+"select cat\n"
+"from Cat cat\n"
+"    join cat.kittens kitten\n"
+"group by cat\n"
+"having avg(kitten.weight) &gt; 100\n"
+"order by count(kitten) asc, sum(kitten.weight) desc"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:503
+#, no-c-format
+msgid ""
+"Note that neither the <literal>group by</literal> clause nor the "
+"<literal>order by</literal> clause may contain arithmetic expressions."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:509
+#, no-c-format
+msgid "Subqueries"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:510
+#, no-c-format
+msgid ""
+"For databases that support subselects, EJB-QL supports subqueries within "
+"queries. A subquery must be surrounded by parentheses (often by an SQL "
+"aggregate function call). Even correlated subqueries (subqueries that refer "
+"to an alias in the outer query) are allowed."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:514
+#, no-c-format
+msgid ""
+"select fatcat from Cat as fatcat \n"
+"where fatcat.weight &gt; ( \n"
+"    select avg(cat.weight) from DomesticCat cat \n"
+")"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:516
+#, no-c-format
+msgid ""
+"select cat from DomesticCat as cat \n"
+"where cat.name = some ( \n"
+"    select name.nickName from Name as name \n"
+")"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:518
+#, no-c-format
+msgid ""
+"select cat from Cat as cat \n"
+"where not exists ( \n"
+"    from Cat as mate where mate.mate = cat \n"
+")"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:520
+#, no-c-format
+msgid ""
+"select cat from DomesticCat as cat \n"
+"where cat.name not in ( \n"
+"    select name.nickName from Name as name \n"
+")"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:521
+#, no-c-format
+msgid ""
+"For subqueries with more than one expression in the select list, you can use "
+"a tuple constructor:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:525
+#, no-c-format
+msgid ""
+"select cat from Cat as cat \n"
+"where not ( cat.name, cat.color ) in ( \n"
+"    select cat.name, cat.color from DomesticCat cat \n"
+")"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:526
+#, no-c-format
+msgid ""
+"Note that on some databases (but not Oracle or HSQLDB), you can use tuple "
+"constructors in other contexts, for example when querying components or "
+"composite user types:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:530
+#, no-c-format
+msgid "select cat from Person where name = ('Gavin', 'A', 'King')"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:531
+#, no-c-format
+msgid "Which is equivalent to the more verbose:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:535
+#, no-c-format
+msgid ""
+"select cat from Person where name.first = 'Gavin' and name.initial = 'A' and "
+"name.last = 'King')"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:536
+#, no-c-format
+msgid ""
+"There are two good reasons you might not want to do this kind of thing: "
+"first, it is not completely portable between database platforms; second, the "
+"query is now dependent upon the ordering of properties in the mapping "
+"document."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:542
+#, no-c-format
+msgid "EJB-QL examples"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:543
+#, 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 (and now EJB-QL's) main selling "
+"points. Here are some example queries very similar to queries that I used on "
+"a recent project. Note that most queries you will write are much simpler "
+"than these!"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:546
+#, no-c-format
+msgid ""
+"The following query returns the order id, number of items and total value of "
+"the order for all unpaid orders for a particular customer and given minimum "
+"total value, ordering the results by total value. In determining the prices, "
+"it uses the current catalog. The resulting SQL query, against the "
+"<literal>ORDER</literal>, <literal>ORDER_LINE</literal>, <literal>PRODUCT</"
+"literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has "
+"four inner joins and an (uncorrelated) subselect."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:550
+#, no-c-format
+msgid ""
+"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 &lt; sysdate\n"
+"    and catalog.effectiveDate &gt;= all (\n"
+"        select cat.effectiveDate \n"
+"        from Catalog as cat\n"
+"        where cat.effectiveDate &lt; sysdate\n"
+"    )\n"
+"group by order\n"
+"having sum(price.amount) &gt; :minAmount\n"
+"order by sum(price.amount) desc"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:551
+#, no-c-format
+msgid ""
+"What a monster! Actually, in real life, I'm not very keen on subqueries, so "
+"my query was really more like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:555
+#, no-c-format
+msgid ""
+"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) &gt; :minAmount\n"
+"order by sum(price.amount) desc"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:556
+#, no-c-format
+msgid ""
+"The next query counts the number of payments in each status, excluding all "
+"payments in the <literal>AWAITING_APPROVAL</literal> status where the most "
+"recent status change was made by the current user. It translates to an SQL "
+"query with two inner joins and a correlated subselect against the "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
+"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:560
+#, no-c-format
+msgid ""
+"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 &lt;&gt; 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 &lt;&gt; :currentUser\n"
+"    )\n"
+"group by status.name, status.sortOrder\n"
+"order by status.sortOrder"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:561
+#, no-c-format
+msgid ""
+"If I would have mapped the <literal>statusChanges</literal> collection as a "
+"list, instead of a set, the query would have been much simpler to write."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:565
+#, no-c-format
+msgid ""
+"select count(payment), status.name \n"
+"from Payment as payment\n"
+"    join payment.currentStatus as status\n"
+"where payment.status.name &lt;&gt; PaymentStatus.AWAITING_APPROVAL\n"
+"    or payment.statusChanges[ maxIndex(payment.statusChanges) ].user &lt;"
+"&gt; :currentUser\n"
+"group by status.name, status.sortOrder\n"
+"order by status.sortOrder"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:566
+#, no-c-format
+msgid "However the query would have been HQL specific."
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:569
+#, no-c-format
+msgid ""
+"The next query uses the MS SQL Server <literal>isNull()</literal> function "
+"to return all the accounts and unpaid payments for the organization to which "
+"the current user belongs. It translates to an SQL query with three inner "
+"joins, an outer join and a subselect against the <literal>ACCOUNT</literal>, "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal>, "
+"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
+"<literal>ORG_USER</literal> tables."
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:573
+#, no-c-format
+msgid ""
+"select account, payment\n"
+"from Account as account\n"
+"    join account.holder.users as user\n"
+"    left outer join account.payments as payment\n"
+"where :currentUser = user\n"
+"    and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+"PaymentStatus.UNPAID)\n"
+"order by account.type.sortOrder, account.accountNumber, payment.dueDate"
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:577
+#, no-c-format
+msgid "Bulk UPDATE &amp; DELETE Statements"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:578
+#, no-c-format
+msgid ""
+"Hibernate now supports UPDATE and DELETE statements in HQL/EJB-QL. See <xref "
+"linkend=\"sect-Hibernate_EntityManager_User_Guide-Batch_processing-"
+"Bulk_updatedelete\"/> for details."
+msgstr ""
+
+#. Tag: title
+#: EJBQL_The_Object_Query_Language.xml:584
+#, no-c-format
+msgid "Tips &amp; Tricks"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:585
+#, no-c-format
+msgid "To order a result by the size of a collection, use the following query:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:589
+#, no-c-format
+msgid ""
+"select usr.id, usr.name\n"
+"from User as usr \n"
+"    left join usr.messages as msg\n"
+"group by usr.id, usr.name\n"
+"order by count(msg)"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:590
+#, no-c-format
+msgid ""
+"If your database supports subselects, you can place a condition upon "
+"selection size in the where clause of your query:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:594
+#, no-c-format
+msgid "from User usr where size(usr.messages) &gt;= 1"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:595
+#, no-c-format
+msgid "If your database doesn't support subselects, use the following query:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:599
+#, no-c-format
+msgid ""
+"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) &gt;= 1"
+msgstr ""
+
+#. Tag: para
+#: EJBQL_The_Object_Query_Language.xml:600
+#, no-c-format
+msgid ""
+"As this solution can't return a <literal>User</literal> with zero messages "
+"because of the inner join, the following form is also useful:"
+msgstr ""
+
+#. Tag: programlisting
+#: EJBQL_The_Object_Query_Language.xml:604
+#, no-c-format
+msgid ""
+"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 ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Entity_listeners_and_Callback_methods.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Entity_listeners_and_Callback_methods.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Entity_listeners_and_Callback_methods.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,310 @@
+# 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: 2009-01-04 22: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
+#: Entity_listeners_and_Callback_methods.xml:6
+#, no-c-format
+msgid "Entity listeners and Callback methods"
+msgstr ""
+
+#. Tag: title
+#: Entity_listeners_and_Callback_methods.xml:8
+#, no-c-format
+msgid "Definition"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:9
+#, no-c-format
+msgid ""
+"It is often useful for the application to react to certain events that occur "
+"inside the persistence mechanism. This allows the implementation of certain "
+"kinds of generic functionality, and extension of built-in functionality. The "
+"EJB3 specification provides two related mechanisms for this purpose."
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:12
+#, no-c-format
+msgid ""
+"A method of the entity may be designated as a callback method to receive "
+"notification of a particular entity life cycle event. Callbacks methods are "
+"annotated by a callback annotation. You can also define an entity listener "
+"class to be used instead of the callback methods defined directly inside the "
+"entity class. An entity listener is a stateless class with a no-arg "
+"constructor. An entity listener is defined by annotating the entity class "
+"with the <literal>@EntityListeners</literal> annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_listeners_and_Callback_methods.xml:16
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_32.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:17
+#, no-c-format
+msgid ""
+"The same callback method or entity listener method can be annotated with "
+"more than one callback annotation. For a given entity, you cannot have two "
+"methods being annotated by the same callback annotation whether it is a "
+"callback method or an entity listener method. A callback method is a no-arg "
+"method with no return type and any arbitrary name. An entity listener has "
+"the signature <code>void &lt;METHOD&gt;(Object)</code> where Object is of "
+"the actual entity type (note that Hibernate Entity Manager relaxed this "
+"constraint and allows <literal>Object</literal> of <literal>java.lang."
+"Object</literal> type (allowing sharing of listeners across several "
+"entities.)"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:20
+#, no-c-format
+msgid ""
+"A callback method can raise a <classname>RuntimeException</classname>. The "
+"current transaction, if any, must be rolled back. The following callbacks "
+"are defined:"
+msgstr ""
+
+#. Tag: title
+#: Entity_listeners_and_Callback_methods.xml:24
+#, no-c-format
+msgid "Callbacks"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:30
+#, no-c-format
+msgid "Type"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:33
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:40
+#, no-c-format
+msgid "@PrePersist"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:43
+#, no-c-format
+msgid ""
+"Executed before the entity manager persist operation is actually executed or "
+"cascaded. This call is synchronous with the persist operation."
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:48
+#, no-c-format
+msgid "@PreRemove"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:51
+#, no-c-format
+msgid ""
+"Executed before the entity manager remove operation is actually executed or "
+"cascaded. This call is synchronous with the remove operation."
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:56
+#, no-c-format
+msgid "@PostPersist"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:59
+#, no-c-format
+msgid ""
+"Executed after the entity manager persist operation is actually executed or "
+"cascaded. This call is invoked after the database INSERT is executed."
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:64
+#, no-c-format
+msgid "@PostRemove"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:67
+#, no-c-format
+msgid ""
+"Executed after the entity manager remove operation is actually executed or "
+"cascaded. This call is synchronous with the remove operation."
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:72
+#, no-c-format
+msgid "@PreUpdate"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:75
+#, no-c-format
+msgid "Executed before the database UPDATE operation."
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:80
+#, no-c-format
+msgid "@PostUpdate"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:83
+#, no-c-format
+msgid "Executed after the database UPDATE operation."
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:88
+#, no-c-format
+msgid "@PostLoad"
+msgstr ""
+
+#. Tag: entry
+#: Entity_listeners_and_Callback_methods.xml:91
+#, no-c-format
+msgid ""
+"Executed after an entity has been loaded into the current persistence "
+"context or an entity has been refreshed."
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:98
+#, no-c-format
+msgid ""
+"A callback method must not invoke <classname>EntityManager</classname> or "
+"<classname>Query</classname> methods!"
+msgstr ""
+
+#. Tag: title
+#: Entity_listeners_and_Callback_methods.xml:104
+#, no-c-format
+msgid "Callbacks and listeners inheritance"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:105
+#, no-c-format
+msgid ""
+"You can define several entity listeners per entity at different level of the "
+"hierarchy.You can also define several callbacks at different level of the "
+"hierarchy. But you cannot define two listeners for the same event in the "
+"same entity or the same entity listener."
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:108
+#, no-c-format
+msgid "When an event is raised, the listeners are executed in this order:"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:113
+#, no-c-format
+msgid ""
+"<literal>@EntityListeners</literal> for a given entity or superclass in the "
+"array order"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:118
+#, no-c-format
+msgid "Entity listeners for the superclasses (highest first)"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:123
+#, no-c-format
+msgid "Entity Listeners for the entity"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:128
+#, no-c-format
+msgid "Callbacks of the superclasses (highest first)"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:133
+#, no-c-format
+msgid "Callbacks of the entity"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:138
+#, no-c-format
+msgid ""
+"You can stop the entity listeners inheritance by using the "
+"<literal>@ExcludeSuperclassListeners</literal>, all superclasses "
+"<literal>@EntityListeners</literal> will then be ignored."
+msgstr ""
+
+#. Tag: title
+#: Entity_listeners_and_Callback_methods.xml:144
+#, no-c-format
+msgid "XML definition"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:145
+#, no-c-format
+msgid ""
+"The EJB3 specification allows annotation overriding through EJB3 deployment "
+"descriptor. There is also an additional feature that can be useful: default "
+"event listeners."
+msgstr ""
+
+#. Tag: programlisting
+#: Entity_listeners_and_Callback_methods.xml:148
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_33.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:149
+#, no-c-format
+msgid ""
+"You can override entity listeners on a given entity. An entity listener "
+"correspond to a given class and one or several event fire a given method "
+"call. You can also define event on the entity itself to describe the "
+"callbacks."
+msgstr ""
+
+#. Tag: para
+#: Entity_listeners_and_Callback_methods.xml:152
+#, no-c-format
+msgid ""
+"Last but not least, you can define some default entity listeners that will "
+"apply first on the entity listener stack of all the mapped entities of a "
+"given persistence unit. If you don&#39;t want an entity to inherit the "
+"default listeners, you can use @ExcludeDefaultListeners (or &lt;exclude-"
+"default-listeners/&gt;)."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Feedback.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Feedback.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Feedback.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,35 @@
+# 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: 2009-01-04 22: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
+#: Feedback.xml:7
+#, no-c-format
+msgid "Feedback"
+msgstr ""
+
+#. Tag: para
+#: Feedback.xml:8
+#, 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>&lt;version&gt;</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 ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Hibernate_EntityManager_User_Guide_CP03_FP01.pot
===================================================================

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Introduction.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Introduction.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Introduction.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,40 @@
+# 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: 2009-01-04 22: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
+#: Introduction.xml:6
+#, no-c-format
+msgid "Introducing EJB3 Persistence"
+msgstr ""
+
+#. Tag: para
+#: Introduction.xml:7
+#, no-c-format
+msgid ""
+"The EJB3 specification recognizes the interest in and the success of the "
+"transparent object/relational mapping paradigm. The EJB3 specification "
+"standardizes the basic APIs and the metadata needed for any object/"
+"relational persistence mechanism. <emphasis>Hibernate EntityManager</"
+"emphasis> implements the programming interfaces and lifecycle rules as "
+"defined by the EJB3 persistence specification. Together with "
+"<emphasis>Hibernate Annotations</emphasis>, this wrapper implements a "
+"complete (and standalone) EJB3 persistence solution on top of the mature "
+"Hibernate core. You may use a combination of all three together, annotations "
+"without EJB3 programming interfaces and lifecycle, or even pure native "
+"Hibernate, depending on the business and technical needs of your project. "
+"You can at all times fall back to Hibernate native APIs, or if required, "
+"even to native JDBC and SQL."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Native_query.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Native_query.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Native_query.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,164 @@
+# 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: 2009-01-04 22: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
+#: Native_query.xml:6
+#, no-c-format
+msgid "Native query"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:7
+#, no-c-format
+msgid ""
+"You may 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 CONNECT BY option in Oracle. It also provides a clean "
+"migration path from a direct SQL/JDBC based application to Hibernate. Note "
+"that Hibernate3 allows you to specify handwritten SQL (including stored "
+"procedures) for all create, update, delete, and load operations (please "
+"refer to the reference guide for more information.)"
+msgstr ""
+
+#. Tag: title
+#: Native_query.xml:11
+#, no-c-format
+msgid "Expressing the resultset"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:12
+#, no-c-format
+msgid ""
+"To use a SQL query, you need to describe the SQL resultset, this description "
+"will help the <literal>EntityManager</literal> to map your columns onto "
+"entity properties. This is done using the <literal>@SqlResultSetMapping</"
+"literal> annotation. Each <literal>@SqlResultSetMapping </literal>has a name "
+"which is used when creating a SQL query on <literal>EntityManager</literal>."
+msgstr ""
+
+#. Tag: programlisting
+#: Native_query.xml:16
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8-1.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:17
+#, no-c-format
+msgid ""
+"You can also define scalar results and even mix entity results and scalar "
+"results"
+msgstr ""
+
+#. Tag: programlisting
+#: Native_query.xml:21
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8-2.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:22
+#, no-c-format
+msgid ""
+"The SQL query will then have to return a column alias "
+"<literal>durationInSec</literal>."
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:25
+#, no-c-format
+msgid ""
+"Please refer to the Hibernate Annotations reference guide for more "
+"information about <literal>@SqlResultSetMapping.</literal>"
+msgstr ""
+
+#. Tag: title
+#: Native_query.xml:31
+#, no-c-format
+msgid "Using native SQL Queries"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:32
+#, no-c-format
+msgid ""
+"Now that the result set is described, we are capable of executing the native "
+"SQL query. <literal>EntityManager</literal> provides all the needed APIs. "
+"The first method is to use a SQL resultset name to do the binding, the "
+"second one uses the entity default mapping (the column returned has to have "
+"the same names as the one used in the mapping). A third one (not yet "
+"supported by Hibernate entity manager), returns pure scalar results."
+msgstr ""
+
+#. Tag: programlisting
+#: Native_query.xml:36
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8-3.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:37
+#, no-c-format
+msgid ""
+"This native query returns nights and area based on the "
+"<literal>GetNightAndArea</literal> result set."
+msgstr ""
+
+#. Tag: programlisting
+#: Native_query.xml:40
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8-4.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:41
+#, no-c-format
+msgid ""
+"The second version is useful when your SQL query returns one entity reusing "
+"the same columns as the ones mapped in metadata."
+msgstr ""
+
+#. Tag: title
+#: Native_query.xml:47
+#, no-c-format
+msgid "Named queries"
+msgstr ""
+
+#. Tag: para
+#: Native_query.xml:48
+#, no-c-format
+msgid ""
+"Native named queries share the same calling API than EJB-QL named queries. "
+"Your code doesn't need to know the difference between the two. This is very "
+"useful for migration from SQL to EJB-QL:"
+msgstr ""
+
+#. Tag: programlisting
+#: Native_query.xml:51
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8-5.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Preface.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Preface.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Preface.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,21 @@
+# 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: 2009-01-04 22: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
+#: Preface.xml:6
+#, no-c-format
+msgid "Preface"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Revision_History.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Revision_History.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Revision_History.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,34 @@
+# 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: 2009-01-04 22: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
+#: Revision_History.xml:6
+#, no-c-format
+msgid "Revision History"
+msgstr ""
+
+#. Tag: author
+#: Revision_History.xml:12
+#, no-c-format
+msgid ""
+"<firstname>Rüdiger</firstname> <surname>Landmann</surname> <email></email>"
+msgstr ""
+
+#. Tag: member
+#: Revision_History.xml:19
+#, no-c-format
+msgid "Initial release"
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Setup_and_configuration.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Setup_and_configuration.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Setup_and_configuration.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,921 @@
+# 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: 2009-01-04 22: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
+#: Setup_and_configuration.xml:6
+#, no-c-format
+msgid "Setup and configuration"
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:8
+#, no-c-format
+msgid "Setup"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:9
+#, no-c-format
+msgid ""
+"The EJB 3.0 / JPA compatible Hibernate EntityManager is built on top of "
+"Hibernate core and Hibernate Annotations. You have to use compatible "
+"versions of each module. Please consult the compatibility matrix in the "
+"hibernate.org download section. The following libraries have to be in your "
+"classpath: <filename>hibernate3.jar</filename>, <filename>hibernate-"
+"annotations.jar</filename>, <filename>hibernate-commons-annotations.jar</"
+"filename>, <filename>hibernate-entitymanager.jar</filename> and all needed "
+"third party libraries for each package (including <filename>ejb-persistence."
+"jar</filename>)."
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:15
+#, no-c-format
+msgid "Configuration and bootstrapping"
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:17
+#, no-c-format
+msgid "Packaging"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:18
+#, no-c-format
+msgid ""
+"The configuration for entity managers both inside an application server and "
+"in a standalone application reside in a persistence archive. A persistence "
+"archive is a JAR file which must define a <literal>persistence.xml</literal> "
+"file that resides in the <filename>META-INF</filename> folder. All properly "
+"annotated classes included in the archive (ie having an <literal>@Entity</"
+"literal> annotation), all annotated packages and all Hibernate <filename>hbm."
+"xml</filename> files included in the archive will be added to the "
+"persistence unit configuration, so by default, your <filename>persistence."
+"xml</filename> will be quite minimalist:"
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:22
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_1.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:23
+#, no-c-format
+msgid ""
+"Here's a more complete example of a <filename><literal>persistence.xml</"
+"literal></filename> file"
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:27
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_2.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:30
+#, no-c-format
+msgid "name"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:32
+#, no-c-format
+msgid "(attribute) Every entity manager must have a name."
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:38
+#, no-c-format
+msgid "transaction-type"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:40
+#, no-c-format
+msgid ""
+"(attribute) Transaction type used. Either JTA or RESOURCE_LOCAL (default to "
+"JTA in a JavaEE environment and to RESOURCE_LOCAL in a JavaSE environment). "
+"When a jta-datasource is used, the default is JTA, if non-jta-datasource is "
+"used, RESOURCE_LOCAL is used."
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:46
+#, no-c-format
+msgid "provider"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:48
+#, no-c-format
+msgid ""
+"The provider is a fully-qualified class name of the EJB Persistence "
+"provider. You do not have to define it if you don't work with several EJB3 "
+"implementations. This is needed when you are using multiple vendor "
+"implementations of EJB Persistence."
+msgstr ""
+
+#. Tag: term
+#: Setup_and_configuration.xml:54
+#, no-c-format
+msgid "<code>jta-data-source</code>, <code>non-jta-data-source</code>"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:56
+#, no-c-format
+msgid ""
+"This is the JNDI name of where the javax.sql.DataSource is located. When "
+"running without a JNDI available Datasource, you must specify JDBC "
+"connections with Hibernate specific properties (see below)."
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:62
+#, no-c-format
+msgid "mapping-file"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:64
+#, no-c-format
+msgid ""
+"The class element specifies a EJB3 compliant XML mapping file that you will "
+"map. The file has to be in the classpath. As per the EJB3 specification, "
+"Hibernate EntityManager will try to load the mapping file located in the jar "
+"file at <literal>META_INF/orm.xml</literal>. Of course any explicit mapping "
+"file will be loaded too. As a matter of fact, you can provides any XML file "
+"in the mapping file element ie. either hbm files or EJB3 deployment "
+"descriptor."
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:70
+#, no-c-format
+msgid "jar-file"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:72
+#, no-c-format
+msgid ""
+"The jar-file elements specifies a jar to analyze. All properly annotated "
+"classes, annotated packages and all hbm.xml files part of this jar file will "
+"be added to the persistence unit configuration. This element is mainly used "
+"in Java EE environment. Use of this one in Java SE should be considered as "
+"non portable, in this case a absolute url is needed. You can alternatively "
+"point to a directory (This is especially useful when in your test "
+"environment, the persistence.xml file is not under the same root directory "
+"or jar than your domain model)."
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:76
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_3.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:80
+#, no-c-format
+msgid "exclude-unlisted-classes"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:82
+#, no-c-format
+msgid ""
+"Do not check the main jar file for annotated classes. Only explicit classes "
+"will be part of the persistence unit."
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:88
+#, no-c-format
+msgid "class"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:90
+#, no-c-format
+msgid ""
+"The class element specifies a fully qualified class name that you will map. "
+"By default all properly annotated classes and all hbm.xml files found inside "
+"the archive are added to the persistence unit configuration. You can add "
+"some external entity through the class element though. As an extension to "
+"the specification, you can add a package name in the <literal>&lt;class&gt;</"
+"literal> element (eg <code>&lt;class&gt;org.hibernate.eg&lt;/class&gt;</"
+"code>). Caution, the package will include the metadata defined at the "
+"package level (ie in <filename>package-info.java</filename>), it will not "
+"include all the classes of a given package."
+msgstr ""
+
+#. Tag: code
+#: Setup_and_configuration.xml:96
+#, no-c-format
+msgid "properties"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:98
+#, no-c-format
+msgid ""
+"The properties element is used to specify vendor specific properties. This "
+"is where you will define your Hibernate specific configurations. This is "
+"also where you will have to specify JDBC connection information as well."
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:104
+#, no-c-format
+msgid ""
+"Be sure to define the grammar definition in the <literal>persistence</"
+"literal> element since the EJB3 specification requires the schema "
+"validation. If the systemId ends with <literal>persistence_1_0.xsd</"
+"literal>, Hibernate entityManager will use the version embedded in the "
+"hibernate-entitymanager.jar. No Internet access will be processed."
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:108
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_4.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:112
+#, no-c-format
+msgid "Bootstrapping"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:113
+#, no-c-format
+msgid ""
+"The EJB3 specification defines a bootstrap procedure to access the "
+"<classname>EntityManagerFactory</classname> and the "
+"<classname>EntityManager</classname>. The bootstrap class is "
+"<classname>javax.persistence.Persistence</classname>, for example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:117
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_5.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:118
+#, no-c-format
+msgid ""
+"The first version is equivalent to the second with an empty map. The map "
+"version is a set of overrides that will take precedence over any properties "
+"defined in your persistence.xml files. There are a couple of EJB3 properties "
+"usable in the map:"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:123
+#, no-c-format
+msgid ""
+"<classname>javax.persistence.provider</classname> to define the provider "
+"class used"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:128
+#, no-c-format
+msgid ""
+"<classname>javax.persistence.transactionType</classname> to define the "
+"transaction type used (either JTA or RESOURCE_LOCAL)"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:133
+#, no-c-format
+msgid ""
+"<classname>javax.persistence.jtaDataSource</classname> to define the JTA "
+"datasource name in JNDI"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:138
+#, no-c-format
+msgid ""
+"<classname>javax.persistence.nonJtaDataSource</classname> to define the non-"
+"JTA datasource name in JNDI"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:143
+#, no-c-format
+msgid ""
+"When <code>Persistence.createEntityManagerFactory()</code> is called, the "
+"persistence implementation will search your classpath for any <code>META-INF/"
+"persistence.xml</code> files using the <code>ClassLoader.getResource(\"META-"
+"INF/persistence.xml\")</code> method. Actually the <classname>Persistence</"
+"classname> class will look at all the Persistence Providers available in the "
+"classpath and ask each of them if they are responsible for the creation of "
+"the entity manager factory <literal>manager1</literal>. Each provider, from "
+"this list of resources, it will try to find an entity manager that matches "
+"the name you specify in the command line with what is specified in the "
+"persistence.xml file (of course the provider <literal>element</literal> must "
+"match the current persistent provider). If no persistence.xml with the "
+"correct name are found or if the expected persistence provider is not found, "
+"a <classname>PersistenceException</classname> is raised."
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:146
+#, no-c-format
+msgid ""
+"Apart from Hibernate system-level settings, all the properties available in "
+"Hibernate can be set in <code>properties</code> element of the persistence."
+"xml file or as an override in the map you pass to "
+"<code>createEntityManagerFactory()</code>. Please refer to the Hibernate "
+"reference documentation for a complete listing. There are however a couple "
+"of properties available in the EJB3 provider only."
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:150
+#, no-c-format
+msgid "Hibernate Entity Manager specific properties"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:156
+#, no-c-format
+msgid "Property name"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:159
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:166
+#, no-c-format
+msgid "hibernate.ejb.classcache.&lt;classname&gt;"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:169
+#, no-c-format
+msgid ""
+"class cache strategy [comma cache region] of the class Default to no cache, "
+"and default region cache to fully.qualified.classname (eg. hibernate.ejb."
+"classcache.com.acme.Cat read-write or hibernate.ejb.classcache.com.acme.Cat "
+"read-write, MyRegion)."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:174
+#, no-c-format
+msgid "hibernate.ejb.collectioncache.&lt;collectionrole&gt;"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:177
+#, no-c-format
+msgid ""
+"collection cache strategy [comma cache region] of the class Default to no "
+"cache, and default region cache to fully.qualified.classname.role (eg. "
+"hibernate.ejb.classcache.com.acme.Cat read-write or hibernate.ejb.classcache."
+"com.acme.Cat read-write, MyRegion)."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:182
+#, no-c-format
+msgid "hibernate.ejb.cfgfile"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:185
+#, no-c-format
+msgid ""
+"XML configuration file to use to configure Hibernate (eg. <filename>/"
+"hibernate.cfg.xml</filename>)."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:190
+#, no-c-format
+msgid "hibernate.archive.autodetection"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:193
+#, no-c-format
+msgid ""
+"Determine which element is auto discovered by Hibernate Entity Manager while "
+"parsing the .par archive. (default to <literal>class,hbm</literal>)."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:198
+#, no-c-format
+msgid "hibernate.ejb.interceptor"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:201
+#, no-c-format
+msgid ""
+"An optional Hibernate interceptor. The interceptor instance is shared by all "
+"<classname>Session</classname> instances. This interceptor has to implement "
+"<classname>org.hibernate.Interceptor</classname> and have a no-arg "
+"constructor. This property can not be combined with <literal>hibernate.ejb."
+"interceptor.session_scoped</literal>."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:206
+#, no-c-format
+msgid "hibernate.ejb.interceptor.session_scoped"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:209
+#, no-c-format
+msgid ""
+"An optional Hibernate interceptor. The interceptor instance is specific to a "
+"given <classname>Session</classname> instance (and hence can be non thread-"
+"safe). This interceptor has to implement <classname>org.hibernate."
+"Interceptor</classname> and have a no-arg constructor. This property can not "
+"be combined with <literal>hibernate.ejb.interceptor</literal>."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:214
+#, no-c-format
+msgid "hibernate.ejb.naming_strategy"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:217
+#, no-c-format
+msgid ""
+"An optional naming strategy. The default naming strategy used is "
+"<classname>EJB3NamingStrategy</classname>. You also might want to consider "
+"the <classname>DefaultComponentSafeNamingStrategy</classname>."
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:222
+#, no-c-format
+msgid "hibernate.ejb.event.&lt;eventtype&gt;"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:225
+#, no-c-format
+msgid ""
+"Event listener list for a given eventtype. The list of event listeners is a "
+"comma separated fully qualified class name list (eg. hibernate.ejb.event.pre-"
+"load com.acme.SecurityListener, com.acme.AuditListener)"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:230
+#, no-c-format
+msgid "hibernate.ejb.use_class_enhancer"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:233
+#, no-c-format
+msgid ""
+"Whether or not use Application server class enhancement at deployment time "
+"(default to false)"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:238
+#, no-c-format
+msgid "hibernate.ejb.discard_pc_on_close"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:241
+#, no-c-format
+msgid ""
+"If true, the persistence context will be discarded (think clear() when the "
+"method is called. Otherwise the persistence context will stay alive till the "
+"transaction completion: all objects will remain managed, and any change will "
+"be synchronized with the database (default to false, ie wait the transaction "
+"completion)"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:248
+#, no-c-format
+msgid ""
+"Note that you can mix XML <literal>&lt;class&gt;</literal> declaration and "
+"<literal>hibernate.ejb.cfgfile</literal> usage in the same configuration. Be "
+"aware of the potential clashed. The properties set in <filename>persistence."
+"xml</filename> will override the one in the defined <filename>hibernate.cfg."
+"xml</filename>."
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:252
+#, no-c-format
+msgid ""
+"It is important that you do not override <literal>hibernate.transaction."
+"factory_class</literal>, Hibernate EntityManager automatically set the "
+"appropriate transaction factory depending on the EntityManager type (ie "
+"<literal>JTA</literal> versus <literal>RESOURSE_LOCAL</literal>). If you are "
+"working in a Java EE environment, you might want to set the "
+"<literal>hibernate.transaction.manager_lookup_class</literal> though."
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:256
+#, no-c-format
+msgid "Here is a typical configuration in a J2SE environment"
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:260
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_6.xmlt\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:261
+#, no-c-format
+msgid ""
+"To ease the programmatic configuration, Hibernate Entity Manager provides a "
+"proprietary API. This API is very similar to the <classname>Configuration</"
+"classname> API and shares the same concepts: <classname>Ejb3Configuration</"
+"classname>. Refer to the JavaDoc and the Hibernate reference guide for more "
+"detailed information on how to use it."
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:266
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_7.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:272
+#, no-c-format
+msgid "Event listeners"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:273
+#, no-c-format
+msgid ""
+"Hibernate Entity Manager needs to enhance Hibernate core to implements all "
+"the EJB3 semantics. It does that through the event listener system of "
+"Hibernate. Be careful when you use the event system yourself, you might "
+"override some of the EJB3 semantics. A safe way is to add your event "
+"listeners to the list given below."
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:277
+#, no-c-format
+msgid "Hibernate Entity Manager default event listeners"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:283
+#, no-c-format
+msgid "Event"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:286
+#, no-c-format
+msgid "Listeners"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:293
+#, no-c-format
+msgid "flush"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:296
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3FlushEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:301
+#, no-c-format
+msgid "auto-flush"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:304
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3AutoFlushEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:309
+#, no-c-format
+msgid "delete"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:312
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3DeleteEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:317
+#, no-c-format
+msgid "flush-entity"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:320
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3FlushEntityEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:325
+#, no-c-format
+msgid "merge"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:328
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3MergeEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:333
+#, no-c-format
+msgid "create"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:336
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3PersistEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:341
+#, no-c-format
+msgid "create-onflush"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:344
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3PersistOnFlushEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:349
+#, no-c-format
+msgid "save"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:352
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3SaveEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:357
+#, no-c-format
+msgid "save-update"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:360
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3SaveOrUpdateEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:365 Setup_and_configuration.xml:373
+#, no-c-format
+msgid "pre-insert"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:368
+#, no-c-format
+msgid ""
+"org.hibernate.secure.JACCPreInsertEventListener, org.hibernate.valitator."
+"event.ValidateEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:376
+#, no-c-format
+msgid ""
+"org.hibernate.secure.JACCPreUpdateEventListener, org.hibernate.valitator."
+"event.ValidateEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:381
+#, no-c-format
+msgid "pre-delete"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:384
+#, no-c-format
+msgid "org.hibernate.secure.JACCPreDeleteEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:389
+#, no-c-format
+msgid "pre-load"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:392
+#, no-c-format
+msgid "org.hibernate.secure.JACCPreLoadEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:397
+#, no-c-format
+msgid "post-delete"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:400
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3PostDeleteEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:405
+#, no-c-format
+msgid "post-insert"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:408
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3PostInsertEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:413
+#, no-c-format
+msgid "post-load"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:416
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3PostLoadEventListener"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:421
+#, no-c-format
+msgid "post-update"
+msgstr ""
+
+#. Tag: entry
+#: Setup_and_configuration.xml:424
+#, no-c-format
+msgid "org.hibernate.ejb.event.EJB3PostUpdateEventListener"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:431
+#, no-c-format
+msgid ""
+"Note that the JACC*EventListeners are removed if the security is not enabled."
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:434
+#, no-c-format
+msgid ""
+"You can configure the event listeners either through the properties (see "
+"<xref linkend=\"sect-Hibernate_EntityManager_User_Guide-"
+"Configuration_and_bootstrapping-Packaging\"/>) or through the "
+"<methodname>ejb3configuration.getEventListeners()</methodname> API."
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:440
+#, no-c-format
+msgid "Obtaining an EntityManager in a Java SE environment"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:441
+#, no-c-format
+msgid ""
+"An entity manager factory should be considered as an immutable configuration "
+"holder, it is defined to point to a single datasource and to map a defined "
+"set of entities. This is the entry point to create and manage "
+"<classname>EntityManager</classname>s. The <classname>Persistence</"
+"classname> class is bootstrap class to create an entity manager factory."
+msgstr ""
+
+#. Tag: programlisting
+#: Setup_and_configuration.xml:445
+#, no-c-format
+msgid ""
+"// Use persistence.xml configuration\n"
+"EntityManagerFactory emf = Persistence.createEntityManagerFactory(\"manager1"
+"\")\n"
+"EntityManager em = emf.createEntityManager(); // Retrieve an application "
+"managed entity manager\n"
+"// Work with the EM\n"
+"em.close();\n"
+"...\n"
+"emf.close(); //close at application end"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:446
+#, no-c-format
+msgid ""
+"An entity manager factory is typically create at application initialization "
+"time and closed at application end. It's creation is an expensive process. "
+"For those who are familiar with Hibernate, an entity manager factory is very "
+"much like a session factory. Actually, an entity manager factory is a "
+"wrapper on top of a session factory. Calls to the entityManagerFactory are "
+"thread safe."
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:449
+#, no-c-format
+msgid ""
+"Thanks to the EntityManagerFactory, you can retrieve an extended entity "
+"manager. The extended entity manager keep the same persistence context for "
+"the lifetime of the entity manager: in other words, the entities are still "
+"managed between two transactions (unless you call entityManager.clear() in "
+"between). You can see an entity manager as a small wrapper on top of an "
+"Hibernate session."
+msgstr ""
+
+#. Tag: title
+#: Setup_and_configuration.xml:456
+#, no-c-format
+msgid "Various"
+msgstr ""
+
+#. Tag: para
+#: Setup_and_configuration.xml:457
+#, no-c-format
+msgid ""
+"Hibernate Entity Manager comes with Hibernate Validator configured out of "
+"the box. You don't have to override any event yourself. If you do not use "
+"Hibernate Validator annotations in your domain model, there will be no "
+"performance cost. For more information on Hibernate Validator, please refer "
+"to the Hibernate Annotations reference guide."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Transactions_and_concurrency.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Transactions_and_concurrency.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Transactions_and_concurrency.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,1243 @@
+# 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: 2009-01-04 22: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
+#: Transactions_and_concurrency.xml:6
+#, no-c-format
+msgid "Transactions and concurrency"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:7
+#, no-c-format
+msgid ""
+"The most important point about Hibernate Entity Manager and concurrency "
+"control is that it is very easy to understand. Hibernate Entity Manager "
+"directly uses JDBC connections and JTA resources without adding any "
+"additional locking behavior. We highly recommend you spend some time with "
+"the JDBC, ANSI, and transaction isolation specification of your database "
+"management system. Hibernate Entity Manager only adds automatic versioning "
+"but does not lock objects in memory or change the isolation level of your "
+"database transactions. Basically, use Hibernate Entity Manager like you "
+"would use direct JDBC (or JTA/CMT) with your database resources."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:10
+#, no-c-format
+msgid ""
+"We start the discussion of concurrency control in Hibernate with the "
+"granularity of <literal>EntityManagerFactory</literal>, and "
+"<literal>EntityManager</literal>, as well as database transactions and long "
+"units of work.."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:13
+#, no-c-format
+msgid ""
+"In this chapter, and unless explicitly expressed, we will mix and match the "
+"concept of entity manager and persistence context. One is an API and "
+"programming object, the other a definition of scope. However, keep in mind "
+"the essential difference. A persistence context is usually bound to a JTA "
+"transaction in Java EE, and a persistence context starts and ends at "
+"transaction boundaries (transaction-scoped) unless you use an extended "
+"entity manager. Please refer to <xref linkend=\"sect-"
+"Hibernate_EntityManager_User_Guide-EJB_container_environment-"
+"Persistence_context_scope\"/> for more information."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:17
+#, no-c-format
+msgid "Entity manager and transaction scopes"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:18
+#, no-c-format
+msgid ""
+"A <literal>EntityManagerFactory</literal> is an expensive-to-create, "
+"threadsafe object intended to be shared by all application threads. It is "
+"created once, usually on application startup."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:21
+#, no-c-format
+msgid ""
+"An <literal>EntityManager</literal> is an inexpensive, non-threadsafe object "
+"that should be used once, for a single business process, a single unit of "
+"work, and then discarded. An <literal>EntityManager</literal> will not "
+"obtain a JDBC <literal>Connection</literal> (or a <literal>Datasource</"
+"literal>) unless it is needed, so you may safely open and close an "
+"<literal>EntityManager</literal> even if you are not sure that data access "
+"will be needed to serve a particular request. (This becomes important as "
+"soon as you are implementing some of the following patterns using request "
+"interception.)"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:24
+#, no-c-format
+msgid ""
+"To complete this picture you also have to think about database transactions. "
+"A database transaction has to be as short as possible, to reduce lock "
+"contention in the database. Long database transactions will prevent your "
+"application from scaling to highly concurrent load."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:27
+#, no-c-format
+msgid ""
+"What is the scope of a unit of work? Can a single Hibernate "
+"<literal>EntityManager</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?"
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:31
+#, no-c-format
+msgid "Unit of work"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:32
+#, no-c-format
+msgid ""
+"First, don't use the <emphasis>entitymanager-per-operation</emphasis> "
+"antipattern, that is, don't open and close an <literal>EntityManager</"
+"literal> for every simple database call in a single thread! Of course, 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. "
+"(Note that this also means that auto-commit after every single SQL statement "
+"is useless in an application, this mode is intended for ad-hoc SQL console "
+"work.)"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:35
+#, no-c-format
+msgid ""
+"The most common pattern in a multi-user client/server application is "
+"<emphasis>entitymanager-per-request</emphasis>. In this model, a request "
+"from the client is send to the server (where the EJB3 persistence layer "
+"runs), a new <literal>EntityManager</literal> is opened, and all database "
+"operations are executed in this unit of work. Once the work has been "
+"completed (and the response for the client has been prepared), the "
+"persistence context is flushed and closed, as well as the entity manager "
+"object. You would also use a single database transaction to serve the "
+"clients request. The relationship between the two is one-to-one and this "
+"model is a perfect fit for many applications."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:38
+#, no-c-format
+msgid ""
+"This is the default EJB3 persistence model in a Java EE environment (JTA-"
+"bounded, transaction-scoped persistence context); injected (or looked up) "
+"entity managers share the same persistence context for a particular JTA "
+"transaction. The beauty of EJB3 is that you don't have to care about that "
+"anymore and just see data access through entity manager and demarcation of "
+"transaction scope on session beans as completely orthogonal."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:41
+#, no-c-format
+msgid ""
+"The challenge is the implementation of this (and other) behavior outside an "
+"EJB3 container: not only has the <literal>EntityManager</literal> and "
+"resource-local transaction to be started and ended correctly, but they also "
+"have to be accessible for data access operations. The demarcation of a unit "
+"of work is ideally implemented using an interceptor that runs when a request "
+"hits the non-EJB3 container server and before the response will be send (i."
+"e. a <literal>ServletFilter</literal> if you are using a standalone servlet "
+"container). We recommend to bind the <literal>EntityManager</literal> to the "
+"thread that serves the request, using a <literal>ThreadLocal</literal> "
+"variable. This allows easy access (like accessing a static variable) in all "
+"code that runs in this thread. Depending on the database transaction "
+"demarcation mechanism you chose, you might also keep the transaction context "
+"in a <literal>ThreadLocal</literal> variable. The implementation patterns "
+"for this are known as <emphasis>ThreadLocal Session</emphasis> and "
+"<emphasis>Open Session in View</emphasis> in the Hibernate community. You "
+"can easily extend the <literal>HibernateUtil</literal> shown in the "
+"Hibernate reference documentation to implement this pattern – you don't need "
+"any external software (it's in fact very trivial). Of course, you'd have to "
+"find a way to implement an interceptor and set it up in your environment. "
+"See the Hibernate website for tips and examples. Once again, remember that "
+"your first choice is naturally an EJB3 container - preferably a light and "
+"modular one such as JBoss application server."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:47
+#, no-c-format
+msgid "Long units of work"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:48
+#, no-c-format
+msgid ""
+"The entitymanager-per-request pattern is not the only useful concept you can "
+"use to design units of work. Many business processes require a whole series "
+"of interactions with the user interleaved with database accesses. In web and "
+"enterprise applications it is not acceptable for a database transaction to "
+"span a user interaction with possibly long waiting time between requests. "
+"Consider the following example:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:53
+#, no-c-format
+msgid ""
+"The first screen of a dialog opens, the data seen by the user has been "
+"loaded in a particular <literal>EntityManager</literal> and resource-local "
+"transaction. The user is free to modify the detached objects."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:58
+#, no-c-format
+msgid ""
+"The user clicks \"Save\" after 5 minutes and expects his modifications to be "
+"made persistent; he also expects that he was the only person editing this "
+"information and that no conflicting modification can occur."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:63
+#, no-c-format
+msgid ""
+"We call this unit of work, from the point of view of the user, a long "
+"running <emphasis>application transaction</emphasis>. There are many ways "
+"how you can implement this in your application."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:66
+#, no-c-format
+msgid ""
+"A first naive implementation might keep the <literal>EntityManager</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 of course an anti-pattern, a pessimistic approach, since "
+"lock contention would not allow the application to scale with the number of "
+"concurrent users."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:69
+#, no-c-format
+msgid ""
+"Clearly, we have to use several database transactions to implement the "
+"application transaction. In this case, maintaining isolation of business "
+"processes becomes the partial responsibility of the application tier. A "
+"single application transaction 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 (e.g. in a wizard-style "
+"dialog spanning several request/response cycles). This is easier to "
+"implement than it might sound, especially if you use EJB3 entity manager and "
+"persistence context features:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:74
+#, no-c-format
+msgid ""
+"<emphasis>Automatic Versioning</emphasis> - An entity manager can do "
+"automatic optimistic concurrency control for you, it can automatically "
+"detect if a concurrent modification occurred during user think time (usually "
+"by comparing version numbers or timestamps when updating the data in the "
+"final resource-local transaction)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:79
+#, no-c-format
+msgid ""
+"<emphasis>Detached Entities</emphasis> - If you decide to use the already "
+"discussed <emphasis>entity-per-request</emphasis> pattern, all loaded "
+"instances will be in detached state during user think time. The entity "
+"manager allows you to merge the detached (modified) state and persist the "
+"modifications, the pattern is called <emphasis>entitymanager-per-request-"
+"with-detached-entities</emphasis>. Automatic versioning is used to isolate "
+"concurrent modifications."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:84
+#, no-c-format
+msgid ""
+"<emphasis>Extended Entity Manager</emphasis> - The Hibernate Entity Manager "
+"may be disconnected from the underlying JDBC connection between two client "
+"calls and reconnected when a new client request occurs. This pattern is "
+"known as <emphasis>entitymanager-per-application-transaction</emphasis> and "
+"makes even merging unnecessary. An extend persistence context is responsible "
+"to collect and retain any modification (persist, merge, remove) made outside "
+"a transaction. The next client call made inside an active transaction "
+"(typically the last operation of a user conversation) will execute all "
+"queued modifications. Automatic versioning is used to isolate concurrent "
+"modifications."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:89
+#, no-c-format
+msgid ""
+"Both <emphasis>entitymanager-per-request-with-detached-objects</emphasis> "
+"and <emphasis>entitymanager-per-application-transaction</emphasis> have "
+"advantages and disadvantages, we discuss them later in this chapter in the "
+"context of optimistic concurrency control."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:96
+#, no-c-format
+msgid "Considering object identity"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:97
+#, no-c-format
+msgid ""
+"An application may concurrently access the same persistent state in two "
+"different persistence contexts. However, an instance of a managed class is "
+"never shared between two persistence contexts. Hence there are two different "
+"notions of identity:"
+msgstr ""
+
+#. Tag: term
+#: Transactions_and_concurrency.xml:102
+#, no-c-format
+msgid "Database Identity"
+msgstr ""
+
+#. Tag: literal
+#: Transactions_and_concurrency.xml:105
+#, no-c-format
+msgid "foo.getId().equals( bar.getId() )"
+msgstr ""
+
+#. Tag: term
+#: Transactions_and_concurrency.xml:110
+#, no-c-format
+msgid "JVM Identity"
+msgstr ""
+
+#. Tag: literal
+#: Transactions_and_concurrency.xml:113
+#, no-c-format
+msgid "foo==bar"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:118
+#, no-c-format
+msgid ""
+"Then for objects attached to a <emphasis>particular</emphasis> persistence "
+"context (i.e. in the scope of an <literal>EntityManager</literal>) the two "
+"notions are equivalent, and JVM identity for database identity is guaranteed "
+"by the Hibernate Entity Manager. However, while the application might "
+"concurrently access the \"same\" (persistent identity) business object in "
+"two different persistence contexts, the two instances will actually be "
+"\"different\" (JVM identity). Conflicts are resolved using (automatic "
+"versioning) at flush/commit time, using an optimistic approach."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:121
+#, 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 only doesn't need expensive locking or other means of "
+"synchronization. The application never needs to synchronize on any business "
+"object, as long as it sticks to a single thread per <literal>EntityManager</"
+"literal>. Within a persistence context, the application may safely use "
+"<literal>==</literal> to compare entities."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:124
+#, no-c-format
+msgid ""
+"However, an application that uses <literal>==</literal> outside of a "
+"persistence context might see 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), but JVM identity is by definition not "
+"guaranteed for instances in detached state. The developer has to override "
+"the <literal>equals()</literal> and <literal>hashCode()</literal> methods in "
+"persistent classes and implement his own notion of object equality. There is "
+"one caveat: Never use the database identifier to implement equality, use a "
+"business key, a combination of unique, usually immutable, attributes. The "
+"database identifier will change if a transient entity is made persistent "
+"(see the contract of the <literal>persist()</literal> operation). 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 good business keys don't 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. Also note "
+"that this is not a Hibernate issue, but simply how Java object identity and "
+"equality has to be implemented."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:130
+#, no-c-format
+msgid "Common concurrency control issues"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:131
+#, no-c-format
+msgid ""
+"Never use the anti-patterns <emphasis>entitymanager-per-user-session</"
+"emphasis> or <emphasis>entitymanager-per-application</emphasis> (of course, "
+"there are rare exceptions to this rule, e.g. entitymanager-per-application "
+"might be acceptable in a desktop application, with manual flushing of the "
+"persistence context). Note that some of the following issues might also "
+"appear with the recommended patterns, make sure you understand the "
+"implications before making a design decision:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:136
+#, no-c-format
+msgid ""
+"An entity manager is not thread-safe. Things which are supposed to work "
+"concurrently, like HTTP requests, session beans, or Swing workers, will "
+"cause race conditions if an <literal>EntityManager</literal> instance would "
+"be shared. If you keep your Hibernate <literal>EntityManager</literal> in "
+"your <literal>HttpSession</literal> (discussed later), you should consider "
+"synchronizing access to your Http session. Otherwise, a user that clicks "
+"reload fast enough may use the same <literal>EntityManager</literal> in two "
+"concurrently running threads. You will very likely have provisions for this "
+"case already in place, for other non-threadsafe but session-scoped objects."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:141
+#, no-c-format
+msgid ""
+"An exception thrown by the Entity Manager means you have to rollback your "
+"database transaction and close the <literal>EntityManager</literal> "
+"immediately (discussed later in more detail). If your "
+"<literal>EntityManager</literal> is bound to the application, you have to "
+"stop the application. Rolling back the database transaction doesn't put your "
+"business objects back into the state they were at the start of the "
+"transaction. This means the database state and the business objects do get "
+"out of sync. Usually this is not a problem, because exceptions are not "
+"recoverable and you have to start over your unit of work after rollback "
+"anyway."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:146
+#, no-c-format
+msgid ""
+"The persistence context caches every object that is in managed state "
+"(watched and checked for dirty state by Hibernate). This means it grows "
+"endlessly until you get an <classname>OutOfMemoryException</classname>, if "
+"you keep it open for a long time or simply load too much data. One solution "
+"for this is some kind batch processing with regular flushing of the "
+"persistence context, but you should consider using a database stored "
+"procedure if you need mass data operations. Some solutions for this problem "
+"are shown in <xref linkend=\"chap-Hibernate_EntityManager_User_Guide-"
+"Batch_processing\"/>. Keeping a persistence context open for the duration of "
+"a user session also means a high probability of stale data, which you have "
+"to know about and control appropriately."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:156
+#, no-c-format
+msgid "Database transaction demarcation"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:157
+#, no-c-format
+msgid ""
+"Datatabase (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. You'll have to do operations outside a transaction, "
+"though, when you'll need to retain modifications in an <literal>EXTENDED</"
+"literal> persistence context."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:160
+#, no-c-format
+msgid ""
+"An EJB3 application can run in non-managed (i.e. standalone, simple Web- or "
+"Swing applications) and managed J2EE environments. In a non-managed "
+"environment, an <literal>EntityManagerFactory</literal> is usually "
+"responsible for its own database connection pool. The application developer "
+"has to manually set transaction boundaries, in other words, begin, commit, "
+"or rollback database transactions itself. A managed environment usually "
+"provides container-managed transactions, with the transaction assembly "
+"defined declaratively through annotations of EJB session beans, for example. "
+"Programmatic transaction demarcation is then no longer necessary, even "
+"flushing the <literal>EntityManager</literal> is done automatically."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:163
+#, no-c-format
+msgid "Usually, ending a unit of work involves four distinct phases:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:168
+#, no-c-format
+msgid ""
+"commit the (resource-local or JTA) transaction (this automatically flushes "
+"the entity manager and persistence context)"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:173
+#, no-c-format
+msgid ""
+"close the entity manager (if using an application-managed entity manager)"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:178
+#, no-c-format
+msgid "handle exceptions"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:183
+#, no-c-format
+msgid ""
+"We'll now have a closer look at transaction demarcation and exception "
+"handling in both managed- and non-managed environments."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:187
+#, no-c-format
+msgid "Non-managed environment"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:188
+#, no-c-format
+msgid ""
+"If an EJB3 persistence layer runs in a non-managed environment, database "
+"connections are usually handled by Hibernate's pooling mechanism behind the "
+"scenes. The common entity manager and transaction handling idiom looks like "
+"this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Transactions_and_concurrency.xml:192
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_26.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:193
+#, no-c-format
+msgid ""
+"You don't have to <literal>flush()</literal> the <literal>EntityManager</"
+"literal> explicitly - the call to <literal>commit()</literal> automatically "
+"triggers the synchronization."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:196
+#, no-c-format
+msgid ""
+"A call to <literal>close()</literal> marks the end of an "
+"<literal>EntityManager</literal>. The main implication of <literal>close()</"
+"literal> is the release of resources - make sure you always close and never "
+"outside of guaranteed finally block."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:199
+#, no-c-format
+msgid ""
+"You will very likely never see this idiom in business code in a normal "
+"application; fatal (system) exceptions should always be caught at the \"top"
+"\". In other words, the code that executes entity manager 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. "
+"This can be a challenge to design yourself and you should use J2EE/EJB "
+"container services whenever they are available. Exception handling is "
+"discussed later in this chapter."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:203
+#, no-c-format
+msgid "EntityTransaction"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:204
+#, no-c-format
+msgid ""
+"In a JTA environment, you don't need any extra API to interact with the "
+"transaction in your environment. Simply use transaction declaration or the "
+"JTA APIs."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:207
+#, no-c-format
+msgid ""
+"If you are using a <literal>RESOURCE_LOCAL</literal> entity manager, you "
+"need to demarcate your transaction boundaries through the "
+"<literal>EntityTransaction</literal> API. You can get an "
+"<literal>EntityTransaction</literal> through <literal>entityManager."
+"getTransaction()</literal>. This <literal>EntityTransaction</literal> API "
+"provides the regular <methodname>begin()</methodname>, <methodname>commit()</"
+"methodname>, <methodname>rollback()</methodname> and <methodname>isActive()</"
+"methodname> methods. It also provide a way to mark a transaction as rollback "
+"only, ie force the transaction to rollback. This is very similar to the JTA "
+"operation <methodname>setRollbackOnly()</methodname>. When a <literal>commit"
+"()</literal> operation fail and/or if the transaction is marked as "
+"<literal>setRollbackOnly()</literal>, the <literal>commit()</literal> method "
+"will try to rollback the transaction and raise a <literal>javax.transaction."
+"RollbackException</literal>."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:210
+#, no-c-format
+msgid ""
+"In a <literal>JTA</literal> entity manager, <literal>entityManager."
+"getTransaction()</literal> calls are not permitted."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:218
+#, no-c-format
+msgid "Using JTA"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:219
+#, no-c-format
+msgid ""
+"If your persistence layer runs in an application server (e.g. behind EJB3 "
+"session beans), every datasource connection obtained internally by the "
+"entity manager will automatically be part of the global JTA transaction. "
+"Hibernate offers two strategies for this integration."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:222
+#, no-c-format
+msgid ""
+"If you use bean-managed transactions (BMT), the code will look like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Transactions_and_concurrency.xml:226
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_27.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:227
+#, no-c-format
+msgid ""
+"With Container Managed Transactions (CMT) in an EJB3 container, transaction "
+"demarcation is done in session bean annotations or deployment descriptors, "
+"not programatically. The <literal>EntityManager</literal> will automatically "
+"be flushed on transaction completion (and if you have injected or lookup the "
+"<literal>EntityManager</literal>, it will be also closed automatically). If "
+"an exception occurs during the <literal>EntityManager</literal> use, "
+"transaction rollback occurs automatically if you don't catch the exception. "
+"Since <literal>EntityManager</literal> exceptions are "
+"<literal>RuntimeException</literal>s they will rollback the transaction as "
+"per the EJB specification (system exception vs. application exception)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:230
+#, no-c-format
+msgid ""
+"It is important to let Hibernate EntityManager define the <literal>hibernate."
+"transaction.factory_class</literal> (ie not overriding this value). Remember "
+"to also set <literal>org.hibernate.transaction.manager_lookup_class</"
+"literal>."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:233
+#, no-c-format
+msgid ""
+"If you work in a CMT environment, you might also want to use the same entity "
+"manager in different parts of your code. Typically, in a non-managed "
+"environment you would use a <literal>ThreadLocal</literal> variable to hold "
+"the entity manager, but a single EJB request might execute in different "
+"threads (e.g. session bean calling another session bean). The EJB3 container "
+"takes care of the persistence context propagation for you. Either using "
+"injection or lookup, the EJB3 container will return an entity manager with "
+"the same persistence context bound to the JTA context if any, or create a "
+"new one and bind it (see <xref linkend=\"sect-"
+"Hibernate_EntityManager_User_Guide-EJB_container_environment-"
+"Persistence_context_propagation\"/> .)"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:236
+#, no-c-format
+msgid ""
+"Our entity manager/transaction management idiom for CMT and EJB3 container-"
+"use is reduced to this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Transactions_and_concurrency.xml:240
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_28.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:241
+#, no-c-format
+msgid ""
+"In other words, all you have to do in a managed environment is to inject the "
+"<literal>EntityManager</literal>, do your data access work, and leave the "
+"rest to the container. Transaction boundaries are set declaratively in the "
+"annotations or deployment descriptors of your session beans. The lifecycle "
+"of the entity manager and persistence context is completely managed by the "
+"container."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:245
+#, no-c-format
+msgid ""
+"When using particular Hibernate native APIs, care must be taken to use the "
+"<literal>after_statement</literal> connection release mode. 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. (Of course, most applications can "
+"easily avoid using <literal>scroll()</literal> or <literal>iterate()</"
+"literal> at all from the CMT code.)"
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:251
+#, no-c-format
+msgid "Exception handling"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:252
+#, no-c-format
+msgid ""
+"If the <literal>EntityManager</literal> throws an exception (including any "
+"<literal>SQLException</literal>), you should immediately rollback the "
+"database transaction, call <literal>EntityManager.close()</literal> (if "
+"<methodname>createEntityManager()</methodname> has been called) and discard "
+"the <literal>EntityManager</literal> instance. Certain methods of "
+"<literal>EntityManager</literal> will <emphasis>not</emphasis> leave the "
+"persistence context in a consistent state. No exception thrown by an entity "
+"manager can be treated as recoverable. Ensure that the "
+"<literal>EntityManager</literal> will be closed by calling <literal>close()</"
+"literal> in a <literal>finally</literal> block. Note that a container "
+"managed entity manager will do that for you. You just have to let the "
+"RuntimeException propagate up to the container."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:255
+#, no-c-format
+msgid ""
+"The Hibernate entity manager generally raises exceptions which encapsulate "
+"the Hibernate core exception. Common exceptions raised by the "
+"<literal>EntityManager</literal> API are:"
+msgstr ""
+
+#. Tag: literal
+#: Transactions_and_concurrency.xml:259
+#, no-c-format
+msgid "IllegalArgumentException"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:260
+#, no-c-format
+msgid "&nbsp;"
+msgstr ""
+
+#. Tag: literal
+#: Transactions_and_concurrency.xml:262
+#, no-c-format
+msgid "EntityNotFoundException"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:263
+#, no-c-format
+msgid "an entity was expected but none match the requirement"
+msgstr ""
+
+#. Tag: literal
+#: Transactions_and_concurrency.xml:265
+#, no-c-format
+msgid "TransactionRequiredException"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:266
+#, no-c-format
+msgid "this operation has to be in a transaction"
+msgstr ""
+
+#. Tag: literal
+#: Transactions_and_concurrency.xml:268
+#, no-c-format
+msgid "IllegalStateException"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:269
+#, no-c-format
+msgid "the entity manager is used in a wrong way"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:271
+#, 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. "
+"Note that Hibernate might also throw other unchecked exceptions which are "
+"not a <literal>HibernateException</literal>. These are, again, not "
+"recoverable and appropriate action should be taken."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:274
+#, no-c-format
+msgid ""
+"Hibernate wraps <literal>SQLException</literal>s thrown while interacting "
+"with the database in a <literal>JDBCException</literal>. In fact, Hibernate "
+"will attempt to convert the exception into a more meaningful subclass of "
+"<literal>JDBCException</literal>. The underlying <literal>SQLException</"
+"literal> is always available via <literal>JDBCException.getCause()</"
+"literal>. Hibernate converts the <literal>SQLException</literal> into an "
+"appropriate <literal>JDBCException</literal> subclass using the "
+"<literal>SQLExceptionConverter</literal> attached to the "
+"<literal>SessionFactory</literal>. By default, the "
+"<literal>SQLExceptionConverter</literal> is defined by the configured "
+"dialect; however, it is also possible to plug in a custom implementation "
+"(see the javadocs for the <literal>SQLExceptionConverterFactory</literal> "
+"class for details). The standard <literal>JDBCException</literal> subtypes "
+"are:"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:279
+#, no-c-format
+msgid ""
+"<literal>JDBCConnectionException</literal> - indicates an error with the "
+"underlying JDBC communication."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:284
+#, no-c-format
+msgid ""
+"<literal>SQLGrammarException</literal> - indicates a grammar or syntax "
+"problem with the issued SQL."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:289
+#, no-c-format
+msgid ""
+"<literal>ConstraintViolationException</literal> - indicates some form of "
+"integrity constraint violation."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:294
+#, no-c-format
+msgid ""
+"<literal>LockAcquisitionException</literal> - indicates an error acquiring a "
+"lock level necessary to perform the requested operation."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:299
+#, no-c-format
+msgid ""
+"<literal>GenericJDBCException</literal> - a generic exception which did not "
+"fall into any of the other categories."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:309
+#, no-c-format
+msgid "EXTENDED Persistence Context"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:310
+#, no-c-format
+msgid ""
+"All application managed entity manager and container managed persistence "
+"contexts defined as such are <literal>EXTENDED</literal>. This means that "
+"the persistence context type goes beyond the transaction life cycle. We "
+"should then understand what happens to operations made outside the scope of "
+"a transaction."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:313
+#, no-c-format
+msgid ""
+"In an <literal>EXTENDED</literal> persistence context, all read only "
+"operations of the entity manager can be executed outside a transaction "
+"(<literal>find()</literal>, <literal>getReference()</literal>, "
+"<literal>refresh()</literal>, and read queries). Some modifications "
+"operations can be executed outside a transaction, but they are queued until "
+"the persistence context join a transaction: this is the case of "
+"<literal>persist()</literal>, <literal><literal>merge()</literal></literal>, "
+"<literal>remove()</literal>. Some operations cannot be called outside a "
+"transaction: <literal>flush()</literal>, <literal>lock()</literal>, and "
+"update/delete queries."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:317
+#, no-c-format
+msgid "Container Managed Entity Manager"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:318
+#, no-c-format
+msgid ""
+"When using an EXTENDED persistence context with a container managed entity "
+"manager, the lifecycle of the persistence context is binded to the lifecycle "
+"of the Stateful Session Bean. Plus if the entity manager is created outside "
+"a transaction, modifications operations (persist, merge, remove) are queued "
+"in the persistence context and not executed to the database."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:321
+#, no-c-format
+msgid ""
+"When a method of the stateful session bean involved or starting a "
+"transaction is later called, the entity manager join the transaction. All "
+"queued operation will then be executed to synchronize the persistence "
+"context."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:324
+#, no-c-format
+msgid ""
+"This is perfect to implement the <literal>entitymanager-per-conversation</"
+"literal> pattern. A stateful session bean represents the conversation "
+"implementation. All intermediate conversation work will be processed in "
+"methods not involving transaction. The end of the conversation will be "
+"processed inside a <literal>JTA</literal> transaction. Hence all queued "
+"operations will be executed to the database and committed. If you are "
+"interested in the notion of conversation inside your application, have a "
+"look at JBoss Seam. JBoss Seam emphasizes the concept of conversation and "
+"entity manager lifecycle and bind EJB3 and JSF together."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:330
+#, no-c-format
+msgid "Application Managed Entity Manager"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:331
+#, no-c-format
+msgid ""
+"Application-managed entity manager are always <literal>EXTENDED</literal>. "
+"When you create an entity manager inside a transaction, the entity manager "
+"automatically join the current transaction. If the entity manager is created "
+"outside a transaction, the entity manager will queue the modification "
+"operations. When"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:336
+#, no-c-format
+msgid ""
+"<methodname>entityManager.joinTransaction()</methodname> is called when a "
+"JTA transaction is active for a <literal>JTA</literal> entity manager"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:341
+#, no-c-format
+msgid ""
+"<literal>entityManager.getTransaction().begin()</literal> is called for a "
+"<literal>RESOURCE_LOCAL</literal> entity manager"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:346
+#, no-c-format
+msgid ""
+"the entity manager join the transaction and all the queued operations will "
+"then be executed to synchronize the persistence context."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:349
+#, no-c-format
+msgid ""
+"It is not legal to call <methodname>entityManager.joinTransaction()</"
+"methodname> if no JTA transaction is involved."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:357
+#, no-c-format
+msgid "Optimistic concurrency control"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:358
+#, 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 for three possible "
+"approaches to writing application code that uses optimistic concurrency. The "
+"use cases we show are in the context of long application transactions but "
+"version checking also has the benefit of preventing lost updates in single "
+"database transactions."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:362
+#, no-c-format
+msgid "Application version checking"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:363
+#, no-c-format
+msgid ""
+"In an implementation without much help from the persistence mechanism, each "
+"interaction with the database occurs in a new <literal>EntityManager</"
+"literal> and the developer is responsible for reloading all persistent "
+"instances from the database before manipulating them. This approach forces "
+"the application to carry out its own version checking to ensure application "
+"transaction isolation. This approach is the least efficient in terms of "
+"database access. It is the approach most similar to EJB2 entities:"
+msgstr ""
+
+#. Tag: programlisting
+#: Transactions_and_concurrency.xml:367
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_29.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:368
+#, no-c-format
+msgid ""
+"The <literal>version</literal> property is mapped using <literal>@Version</"
+"literal>, and the entity manager will automatically increment it during "
+"flush if the entity is dirty."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:371
+#, no-c-format
+msgid ""
+"Of course, if you are operating in a low-data-concurrency environment and "
+"don't require version checking, you may use this approach and just skip the "
+"version check. In that case, <emphasis>last commit wins</emphasis> will be "
+"the default strategy for your long application transactions. Keep in mind "
+"that this might confuse the users of the application, as they might "
+"experience lost updates without error messages or a chance to merge "
+"conflicting changes."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:374
+#, no-c-format
+msgid ""
+"Clearly, manual version checking is only feasible in very 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 detached "
+"instances or an extended entity manager and persistence context as the "
+"design paradigm."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:380
+#, no-c-format
+msgid "Extended entity manager and automatic versioning"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:381
+#, no-c-format
+msgid ""
+"A single persistence context is used for the whole application transaction. "
+"The entity manager checks instance versions at flush time, throwing an "
+"exception if concurrent modification is detected. It's up to the developer "
+"to catch and handle this exception (common options are the opportunity for "
+"the user to merge his changes or to restart the business process with non-"
+"stale data)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:384
+#, no-c-format
+msgid ""
+"In an <literal>EXTENDED</literal> persistence context, all operations made "
+"outside an active transaction are queued. The <literal>EXTENDED</literal> "
+"persistence context is flushed when executed in an active transaction (at "
+"worse at commit time)."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:387
+#, no-c-format
+msgid ""
+"The <literal>Entity Manager</literal> is disconnected from any underlying "
+"JDBC connection when waiting for user interaction. In an application-managed "
+"extended entity manager, this occurs automatically at transaction "
+"completion. In a stateful session bean holding a container-managed extended "
+"entity manager (i.e. a SFSB annotated with <literal>@PersistenceContext"
+"(EXTENDED)</literal>), this occurs transparently as well. This approach is "
+"the most efficient in terms of database access. The application need not "
+"concern itself with version checking or with merging detached instances, nor "
+"does it have to reload instances in every database transaction. For those "
+"who might be concerned by the number of connections opened and closed, "
+"remember that the connection provider should be a connection pool, so there "
+"is no performance impact. The following examples show the idiom in a non-"
+"managed environment:"
+msgstr ""
+
+#. Tag: programlisting
+#: Transactions_and_concurrency.xml:391
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_30.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:392
+#, no-c-format
+msgid ""
+"The <literal>foo</literal> object still knows which <literal>persistence "
+"context</literal> it was loaded in. With <literal>getTransaction.begin();</"
+"literal> the entity manager obtains a new connection and resumes the "
+"persistence context. The method <literal>getTransaction().commit()</literal> "
+"will not only flush and check versions, but also disconnects the entity "
+"manager from the JDBC connection and return the connection to the pool."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:395
+#, no-c-format
+msgid ""
+"This pattern is problematic if the persistence context is too big to be "
+"stored during user think time, and if you don't know where to store it. E.g. "
+"the <literal>HttpSession</literal> should be kept as small as possible. As "
+"the persistence context is also the (mandatory) first-level cache and "
+"contains all loaded objects, we can probably use this strategy only for a "
+"few request/response cycles. This is indeed recommended, as the persistence "
+"context will soon also have stale data."
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:398
+#, no-c-format
+msgid ""
+"It is up to you where you store the extended entity manager during requests, "
+"inside an EJB3 container you simply use a stateful session bean as described "
+"above. Don't transfer it to the web layer (or even serialize it to a "
+"separate tier) to store it in the <literal>HttpSession</literal>. In a non-"
+"managed, two-tiered environment the <literal>HttpSession</literal> might "
+"indeed be the right place to store it."
+msgstr ""
+
+#. Tag: title
+#: Transactions_and_concurrency.xml:404
+#, no-c-format
+msgid "Detached objects and automatic versioning"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:405
+#, no-c-format
+msgid ""
+"With this paradigm, each interaction with the data store occurs in a new "
+"persistence context. 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 persistence context and then "
+"merges the changes using <literal>EntityManager.merge()</literal>:"
+msgstr ""
+
+#. Tag: programlisting
+#: Transactions_and_concurrency.xml:408
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_31.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Transactions_and_concurrency.xml:409
+#, no-c-format
+msgid ""
+"Again, the entity manager will check instance versions during flush, "
+"throwing an exception if conflicting updates occurred."
+msgstr ""

Added: projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Working_with_objects.pot
===================================================================
--- projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Working_with_objects.pot	                        (rev 0)
+++ projects/docs/enterprise/4.2.7/Hibernate/Hibernate_EntityManager_User_Guide/pot/Working_with_objects.pot	2009-06-04 01:49:17 UTC (rev 89779)
@@ -0,0 +1,1169 @@
+# 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: 2009-01-04 22: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
+#: Working_with_objects.xml:6
+#, no-c-format
+msgid "Working with objects"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:8
+#, no-c-format
+msgid "Entity states"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:9
+#, no-c-format
+msgid ""
+"Like in Hibernate (comparable terms in parentheses), an entity instance is "
+"in one of the following states:"
+msgstr ""
+
+#. Tag: term
+#: Working_with_objects.xml:13
+#, no-c-format
+msgid "New (transient)"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:14
+#, no-c-format
+msgid ""
+"an entity is new if it has just been instantiated using the new operator, "
+"and it is not associated with a persistence context. It has no persistent "
+"representation in the database and no identifier value has been assigned."
+msgstr ""
+
+#. Tag: term
+#: Working_with_objects.xml:15
+#, no-c-format
+msgid "Managed (persistent)"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:16
+#, no-c-format
+msgid ""
+"a managed entity instance is an instance with a persistent identity that is "
+"currently associated with a persistence context."
+msgstr ""
+
+#. Tag: filename
+#: Working_with_objects.xml:17
+#, no-c-format
+msgid "Detached"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:18
+#, no-c-format
+msgid ""
+"the entity instance is an instance with a persistent identity that is no "
+"longer associated with a persistence context, usually because the "
+"persistence context was closed or the instance was evicted from the context."
+msgstr ""
+
+#. Tag: filename
+#: Working_with_objects.xml:19
+#, no-c-format
+msgid "Removed"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:20
+#, no-c-format
+msgid ""
+"a removed entity instance is an instance with a persistent identity, "
+"associated with a persistence context, but scheduled for removal from the "
+"database."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:22
+#, no-c-format
+msgid ""
+"The <classname>EntityManager</classname> API allows you to change the state "
+"of an entity, or in other words, to load and store objects. You will find "
+"persistence with EJB3 easier to understand if you think about object state "
+"management, not managing of SQL statements."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:28
+#, no-c-format
+msgid "Making objects persistent"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:29
+#, no-c-format
+msgid ""
+"Once you've created a new entity instance (using the common <literal>new</"
+"literal> operator) it is in the <literal>new</literal> state. You can make "
+"it persistent by associating it to an entity manager:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:33
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_8.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:34
+#, no-c-format
+msgid ""
+"If the <literal>DomesticCat</literal> entity type has a generated "
+"identifier, the value is associated to the instance when <code>persist()</"
+"code> is called. If the identifier is not automatically generated, the "
+"application-assigned (usually natural) key value has to be set on the "
+"instance before <code>persist()</code> is called."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:40
+#, no-c-format
+msgid "Loading an object"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:41
+#, no-c-format
+msgid ""
+"Load an entity instance by its identifier value with the entity manager's "
+"<code>find()</code> method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:45
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_9.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:46
+#, no-c-format
+msgid ""
+"In some cases, you don't really want to load the object state, but just have "
+"a reference to it (a proxy). You can get this reference using the "
+"<literal>getReference()</literal> method. This is especially useful to link "
+"a child to its parent without having to load the parent."
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:50
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_10.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:51
+#, no-c-format
+msgid ""
+"You can reload an entity instance and its collections at any time using the "
+"<code>em.refresh()</code> operation. This is useful when database triggers "
+"are used to initialize some of the properties of the entity. Note that only "
+"the entity instance and its collections are refreshed unless you specify "
+"<literal>REFRESH</literal> as a cascade style of any associations:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:55
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_11.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:59
+#, no-c-format
+msgid "Querying objects"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:60
+#, no-c-format
+msgid ""
+"If you don't know the identifier values of the objects you are looking for, "
+"you need a query. The Hibernate EntityManager implementation supports an "
+"easy-to-use but powerful object-oriented query language (EJB3-QL) which has "
+"been inspired by HQL (and vice-versa). Both query languages are portable "
+"across databases, the use entity and property names as identifiers (instead "
+"of table and column names). You may also express your query in the native "
+"SQL of your database, with optional support from EJB3 for result set "
+"conversion into Java business objects."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:64
+#, no-c-format
+msgid "Executing queries"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:65
+#, no-c-format
+msgid ""
+"EJB3QL and SQL queries are represented by an instance of <classname>javax."
+"persistence.Query</classname>. This interface offers methods for parameter "
+"binding, result set handling, and for execution of the query. Queries are "
+"always created using the current entity manager:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:69
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_12.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:70
+#, no-c-format
+msgid ""
+"A query is usually executed by invoking <methodname>getResultList()</"
+"methodname>. This method loads the resulting instances of the query "
+"completely into memory. Entity instances retrieved by a query are in "
+"persistent state. The <methodname>getSingleResult() </methodname>method "
+"offers a shortcut if you know your query will only return a single object."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:74
+#, no-c-format
+msgid "Projection"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:75
+#, no-c-format
+msgid ""
+"An EJB3QL query queries can return tuples of objects if projection is used. "
+"Each result tuple is returned as an object array:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:79
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_13.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:83
+#, no-c-format
+msgid "Scalar results"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:84
+#, no-c-format
+msgid ""
+"Queries may specify a particular property of an entity in the select clause, "
+"instead of an entity alias. You may call SQL aggregate functions as well. "
+"Returned non-transactional objects or aggregation results are considered "
+"\"scalar\" results and are not entities in persistent state (in other words, "
+"they are considered \"read only\"):"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:88
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_14.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:92
+#, no-c-format
+msgid "Bind parameters"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:93
+#, no-c-format
+msgid ""
+"Both named and positional query parameters are supported. The "
+"<literal>Query</literal> API offers several methods to bind arguments. The "
+"EJB3 specification numbers positional parameters from one. Named parameters "
+"are identifiers of the form <literal>:paramname</literal> in the query "
+"string. Named parameters should be preferred, they are more robust and "
+"easier to read and understand:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:97
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_15.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:101
+#, no-c-format
+msgid "Pagination"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:102
+#, no-c-format
+msgid ""
+"If you need to specify bounds upon your result set (the maximum number of "
+"rows you want to retrieve and/or the first row you want to retrieve), use "
+"the following methods:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:106
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_16.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:107
+#, no-c-format
+msgid ""
+"Hibernate knows how to translate this limit query into the native SQL of "
+"your DBMS."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:113
+#, no-c-format
+msgid "Externalizing named queries"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:114
+#, no-c-format
+msgid "You may also define named queries through annotations:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:118
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_17.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:119
+#, no-c-format
+msgid ""
+"Parameters are bound programatically to the named query, before it is "
+"executed:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:123
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_18.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:124
+#, no-c-format
+msgid ""
+"Note that the actual program code is independent of the query language that "
+"is used. You may also define native SQL queries in metadata, or use "
+"Hibernate's native facilities by placing them in XML mapping files."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:130
+#, no-c-format
+msgid "Native queries"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:131
+#, no-c-format
+msgid ""
+"You may express a query in SQL, using <methodname>createNativeQuery()</"
+"methodname> and let Hibernate take care mapping from JDBC result sets to "
+"business objects. Use the <literal>@SqlResultSetMapping</literal> (please "
+"see the Hibernate Annotations reference documentation on how to map a SQL "
+"resultset mapping) or the entity mapping (if the column names of the query "
+"result are the same as the names declared in the entity mapping. Remember "
+"that all entity columns have to be returned for this mechanism to work):"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:135
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_19.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:137
+#, no-c-format
+msgid ""
+"For more information about scalar support in named queries, please refers to "
+"the Hibernate Annotations documentation"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:144
+#, no-c-format
+msgid "Query hints"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:145
+#, no-c-format
+msgid ""
+"Query hints (for performance optimization, usually) are implementation "
+"specific. Hints are declared using the <methodname>query.setHint(String "
+"name, Object value)</methodname> method, or through the <literal>@Named"
+"(Native)Query(hints)</literal> annotation Note that these are not SQL query "
+"hints! The Hibernate EJB3 implementation offers the following query hints:"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:149
+#, no-c-format
+msgid "Hibernate query hints"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:155
+#, no-c-format
+msgid "Hint"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:158
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:165
+#, no-c-format
+msgid "org.hibernate.timeout"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:168
+#, no-c-format
+msgid "Query timeout in seconds ( eg. new Integer(10) )"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:173
+#, no-c-format
+msgid "org.hibernate.fetchSize"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:176
+#, no-c-format
+msgid ""
+"Number of rows fetched by the JDBC driver per roundtrip ( eg. new Integer"
+"(50) )"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:181
+#, no-c-format
+msgid "org.hibernate.comment"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:184
+#, no-c-format
+msgid ""
+"Add a comment to the SQL query, useful for the DBA ( e.g. new String(\"fetch "
+"all orders in 1 statement\") )"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:189
+#, no-c-format
+msgid "org.hibernate.cacheable"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:192
+#, no-c-format
+msgid ""
+"Whether or not a query is cacheable ( eg. new Boolean(true) ), defaults to "
+"false"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:197 Working_with_objects.xml:229
+#, no-c-format
+msgid "org.hibernate.cacheMode"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:200
+#, no-c-format
+msgid "Override the cache mode for this query ( eg. CacheMode.REFRESH )"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:205
+#, no-c-format
+msgid "org.hibernate.cacheRegion"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:208
+#, no-c-format
+msgid "Cache region of this query ( eg. new String(\"regionName\") )"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:213
+#, no-c-format
+msgid "org.hibernate.readOnly"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:216
+#, no-c-format
+msgid ""
+"Entities retrieved by this query will be loaded in a read-only mode where "
+"Hibernate will never dirty-check them or make changes persistent ( eg. new "
+"Boolean(true) ), default to false"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:221
+#, no-c-format
+msgid "org.hibernate.flushMode"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:224
+#, no-c-format
+msgid "Flush mode used for this query"
+msgstr ""
+
+#. Tag: entry
+#: Working_with_objects.xml:232
+#, no-c-format
+msgid "Cache mode used for this query"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:239
+#, no-c-format
+msgid ""
+"The value object accept both the native type or its string equivalent (eg. "
+"<literal>CaheMode.REFRESH</literal> or \"<literal>REFRESH</literal>\"). "
+"Please refer to the Hibernate reference documentation for more information."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:249
+#, no-c-format
+msgid "Modifying persistent objects"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:250
+#, no-c-format
+msgid ""
+"Transactional-managed instances (ie. objects loaded, saved, created or "
+"queried by the entity manager) may be manipulated by the application and any "
+"changes to persistent state will be persisted when the Entity manager is "
+"flushed (discussed in <xref linkend=\"sect-"
+"Hibernate_EntityManager_User_Guide-Working_with_objects-"
+"Flush_the_persistence_context\"/>). There is no need to call a particular "
+"method to make your modifications persistent. A straightforward way to "
+"update the state of an entity instance is to <methodname>find()</methodname> "
+"it, and then manipulate it directly, while the persistence context is open:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:254
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_20.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:255
+#, no-c-format
+msgid ""
+"Sometimes this programming model is inefficient since it would require both "
+"an SQL SELECT (to load an object) and an SQL UPDATE (to persist its updated "
+"state) in the same session. Therefore Hibernate offers an alternate "
+"approach, using detached instances."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:261
+#, no-c-format
+msgid "Modifying detached objects"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:262
+#, no-c-format
+msgid ""
+"Many applications need to retrieve an object in one transaction, send it to "
+"the presentation layer for manipulation, and later save the changes in a new "
+"transaction. There can be significant user think and waiting time between "
+"both transactions. 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
+#: Working_with_objects.xml:265
+#, no-c-format
+msgid ""
+"The EJB3 specifications supports this development model by providing for "
+"persistence of modifications made to detached instances using the "
+"<methodname>EntityManager.merge()</methodname> method:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:269
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_21.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:270
+#, no-c-format
+msgid ""
+"The <literal>merge()</literal> method merges modifications made to the "
+"detached instance into the corresponding managed instance, if any, without "
+"consideration of the state of the persistence context. In other words, the "
+"merged objects state overrides the persistent entity state in the "
+"persistence context, if one is already present. The application should "
+"individually <methodname>merge()</methodname> detached instances reachable "
+"from the given detached instance if and only if it wants their state also to "
+"be persistent. This can be cascaded to associated entities and collections, "
+"using transitive persistence, see <xref linkend=\"sect-"
+"Hibernate_EntityManager_User_Guide-Working_with_objects-"
+"Transitive_persistence\"/>."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:276
+#, no-c-format
+msgid "Automatic state detection"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:277
+#, no-c-format
+msgid ""
+"The merge operation is clever enough to automatically detect whether the "
+"merging of the detached instance has to result in an insert or update. In "
+"other words, you don't have to worry about passing a new instance (and not a "
+"detached instance) to <literal>merge()</literal>, the entity manager will "
+"figure this out for you:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:281
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_22.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:282
+#, no-c-format
+msgid ""
+"The usage and semantics of <literal>merge()</literal> seem to be confusing "
+"for new users. Remember that as long as you are not trying to use an object "
+"state loaded in one entity manager in another new entity manager, you should "
+"not need to use <methodname>merge()</methodname> at all. Some whole "
+"applications will never use this method."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:285
+#, no-c-format
+msgid ""
+"Usually <methodname>merge()</methodname> is used in the following scenario:"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:290
+#, no-c-format
+msgid "the application loads an object in the first entity manager"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:295
+#, no-c-format
+msgid "the object is passed up to the presentation layer"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:300
+#, no-c-format
+msgid "some modifications are made to the object"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:305
+#, no-c-format
+msgid "the object is passed back down to the business logic layer"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:310
+#, no-c-format
+msgid ""
+"the application persists these modifications by calling <methodname>merge()</"
+"methodname> in a second entity manager"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:315
+#, no-c-format
+msgid "Here is the exact semantic of <methodname>merge()</methodname>:"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:320
+#, no-c-format
+msgid ""
+"if there is a managed instance with the same identifier currently associated "
+"with the persistence context, copy the state of the given object onto the "
+"managed instance"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:325
+#, no-c-format
+msgid ""
+"if there is no managed instance currently associated with the persistence "
+"context, try to load it from the database, or create a new managed instance"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:330
+#, no-c-format
+msgid "the managed instance is returned"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:335
+#, no-c-format
+msgid ""
+"the given instance does not become associated with the persistence context, "
+"it remains detached and is usually discarded"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:341
+#, no-c-format
+msgid "Merging vs. saveOrUpdate/saveOrUpdateCopy"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:342
+#, no-c-format
+msgid ""
+"Merging in EJB3 is similar to the <literal>saveOrUpdateCopy()</literal> "
+"method in native Hibernate. However, it is not the same as the "
+"<literal>saveOrUpdate()</literal> method, the given instance is not "
+"reattached with the persistence context, but a managed instance is returned "
+"by the <methodname>merge()</methodname> method."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:349
+#, no-c-format
+msgid "Deleting managed objects"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:350
+#, no-c-format
+msgid ""
+"<methodname>EntityManager.remove()</methodname> will remove an object's "
+"state from the database. Of course, your application might still hold a "
+"reference to a deleted object. You can think of <methodname>remove()</"
+"methodname> as making a persistent instance new (aka transient) again. It is "
+"not detached, and a merge would result in an insertion."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:356
+#, no-c-format
+msgid "Flush the persistence context"
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:358
+#, no-c-format
+msgid "In a transaction"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:359
+#, no-c-format
+msgid ""
+"From time to time the entity manager will execute the SQL DML statements "
+"needed to synchronize the data store with the state of objects held in "
+"memory. This process, flush, occurs by default (this is Hibernate-specific "
+"and not defined by the specification) at the following points:"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:364
+#, no-c-format
+msgid "before query execution*"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:369
+#, no-c-format
+msgid ""
+"from <methodname>javax.persistence.EntityTransaction.commit()*</methodname>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:374
+#, no-c-format
+msgid "when <methodname>EntityManager.flush()</methodname> is called*"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:379
+#, no-c-format
+msgid "(*) if a transaction is active"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:382
+#, no-c-format
+msgid "The SQL statements are issued in the following order"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:387
+#, no-c-format
+msgid ""
+"all entity insertions, in the same order the corresponding objects were "
+"saved using <methodname>EntityManager.persist()</methodname>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:392
+#, no-c-format
+msgid "all entity updates"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:397
+#, no-c-format
+msgid "all collection deletions"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:402
+#, no-c-format
+msgid "all collection element deletions, updates and insertions"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:407
+#, no-c-format
+msgid "all collection insertions"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:412
+#, no-c-format
+msgid ""
+"all entity deletions, in the same order the corresponding objects were "
+"deleted using <methodname>EntityManager.remove()</methodname>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:417
+#, no-c-format
+msgid ""
+"(Exception: entity instances using application-assigned identifiers are "
+"inserted when they are saved.)"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:420
+#, no-c-format
+msgid ""
+"Except when you explicitly <methodname>flush()</methodname>, there are "
+"absolutely no guarantees about when the entity manager executes the JDBC "
+"calls, only the order in which they are executed. However, Hibernate does "
+"guarantee that the <methodname>Query.getResultList()</methodname>/"
+"<methodname>Query.getSingleResult()</methodname> will never return stale "
+"data; nor will they return wrong data if executed in an active transaction."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:423
+#, no-c-format
+msgid ""
+"It is possible to change the default behavior so that flush occurs less "
+"frequently. The <classname>FlushModeType</classname> for an entity manager "
+"defines two different modes: only flush at commit time or flush "
+"automatically using the explained routine unless <methodname>flush()</"
+"methodname> is called explicitly."
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:427
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_23.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:428
+#, no-c-format
+msgid ""
+"During flush, an exception might happen (e.g. if a DML operation violates a "
+"constraint)."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:431
+#, no-c-format
+msgid ""
+"Hibernate provides more flush modes than the one described in the EJB3 "
+"specification. Please refer to the Hibernate core reference documentation "
+"for more information."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:437
+#, no-c-format
+msgid "Outside a transaction"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:438
+#, no-c-format
+msgid ""
+"In an <literal>EXTENDED</literal> persistence context, all read only "
+"operations of the entity manager can be executed outside a transaction "
+"(<literal>find()</literal>, <literal>getReference()</literal>, "
+"<literal>refresh()</literal>, and read queries). Some modifications "
+"operations can be executed outside a transaction, but they are queued until "
+"the persistence context join a transaction. This is the case of "
+"<literal>persist()</literal>, <literal><literal>merge()</literal></literal>, "
+"<literal>remove()</literal>. Some operations cannot be called outside a "
+"transaction: <literal>flush()</literal>, <literal>lock()</literal>, and "
+"update/delete queries."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:446
+#, no-c-format
+msgid "Transitive persistence"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:447
+#, 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
+#: Working_with_objects.xml:450
+#, no-c-format
+msgid ""
+"If the children in a parent/child relationship would be value-typed (for "
+"example, a collection of addresses or strings), their lifecycle would depend "
+"on the parent and no further action would be required for convenient "
+"\"cascading\" of state changes. When the parent is persisted, the value-"
+"typed child objects are persisted as well, when the parent is removed, the "
+"children will be removed, etc. This even works for operations such as the "
+"removal of a child from the collection; Hibernate will detect this and, "
+"since value-typed objects can't have shared references, remove the child "
+"from the database."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:453
+#, no-c-format
+msgid ""
+"Now consider the same scenario with parent and child objects being entities, "
+"not value-types (for example, categories and items, or parent and child "
+"cats). Entities have their own lifecycle, support shared references (so "
+"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. The EJB3 specification does not require persistence by "
+"reachability. It supports a more flexible model of transitive persistence, "
+"as first seen in Hibernate."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:456
+#, no-c-format
+msgid ""
+"For each basic operation of the entity manager - including "
+"<methodname>persist()</methodname>, <methodname>merge()</methodname>, "
+"<methodname>remove()</methodname>, <methodname>refresh()</methodname> - "
+"there is a corresponding cascade style. Respectively, the cascade styles are "
+"named PERSIST, MERGE, REMOVE, REFRESH. If you want an operation to be "
+"cascaded to associated entity (or collection of entities), you must indicate "
+"that in the association annotation:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:460
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_24.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:461
+#, no-c-format
+msgid "Cascading options can be combined:"
+msgstr ""
+
+#. Tag: programlisting
+#: Working_with_objects.xml:465
+#, no-c-format
+msgid ""
+"<xi:include href=\"extras/Code_Example_25.java\" parse=\"text\" xmlns:xi="
+"\"http://www.w3.org/2001/XInclude\"></xi:include>"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:466
+#, no-c-format
+msgid ""
+"You may even use CascadeType.ALL to specify that all operations should be "
+"cascaded for a particular association. Remember that by default, no "
+"operation is cascaded."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:469
+#, no-c-format
+msgid ""
+"Hibernate offers more native cascading options, please refer to the "
+"Hibernate Annotations manual and the Hibernate reference guide for more "
+"information."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:472
+#, no-c-format
+msgid "Recommendations:"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:477
+#, no-c-format
+msgid ""
+"It doesn't usually make sense to enable cascade on a <literal>@ManyToOne</"
+"literal> or <literal>@ManyToMany</literal> association. Cascade is often "
+"useful for <literal>@OneToOne</literal> and <literal>@OneToMany</literal> "
+"associations."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:482
+#, no-c-format
+msgid ""
+"If the child object's lifespan is bounded by the lifespan of the parent "
+"object, make the parent a full lifecycle object by specifying "
+"<literal>CascadeType.ALL</literal> and <literal>org.hibernate.annotations."
+"CascadeType.DELETE_ORPHAN</literal> (please refer to the Hibernate reference "
+"guide for the semantics of orphan delete)"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:487
+#, 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 "
+"<code>cascade={PERSIST, MERGE}</code>. These options can even make sense for "
+"a many-to-many association."
+msgstr ""
+
+#. Tag: title
+#: Working_with_objects.xml:495
+#, no-c-format
+msgid "Locking"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:496
+#, no-c-format
+msgid ""
+"The default locking system in EJB3 is mostly based on optimistic locking (ie "
+"using a version column to check any concurrency issues). EJB3 has defined an "
+"additional mechanism to increase the concurrency guaranties. You can apply a "
+"lock on a given entity (and it's associated entities if <literal>LOCK</"
+"literal> is cascaded) through the <methodname>lock(Object entity)</"
+"methodname> method. Depending on the concurrency guaranties you requires, "
+"you choose a lock mode:"
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:501
+#, no-c-format
+msgid ""
+"<literal>LockMode.READ</literal> prevents dirty-reads and non-repeatable "
+"reads on a given entity."
+msgstr ""
+
+#. Tag: para
+#: Working_with_objects.xml:506
+#, no-c-format
+msgid ""
+"<literal>LockMode.WRITE</literal> prevents dirty-reads and non-repeatable "
+"reads on a given entity and forces an increase of the version number, if any."
+msgstr ""




More information about the jboss-cvs-commits mailing list