📄 persistent_classes.po
字号:
msgstr """Les exemples suivants démontrent la représentation utilisant des ""<literal>Map</literal>s. D'abord, dans le fichier de mapping, un ""<literal>entity-name</literal> doit être déclaré au lieu (ou en plus) d'un ""nom de classe :"#. Tag: programlisting#: persistent_classes.xml:264#, no-c-formatmsgid """<![CDATA[<hibernate-mapping>\n""\n"" <class entity-name=\"Customer\">\n""\n"" <id name=\"id\"\n"" type=\"long\"\n"" column=\"ID\">\n"" <generator class=\"sequence\"/>\n"" </id>\n""\n"" <property name=\"name\"\n"" column=\"NAME\"\n"" type=\"string\"/>\n""\n"" <property name=\"address\"\n"" column=\"ADDRESS\"\n"" type=\"string\"/>\n""\n"" <many-to-one name=\"organization\"\n"" column=\"ORGANIZATION_ID\"\n"" class=\"Organization\"/>\n""\n"" <bag name=\"orders\"\n"" inverse=\"true\"\n"" lazy=\"false\"\n"" cascade=\"all\">\n"" <key column=\"CUSTOMER_ID\"/>\n"" <one-to-many class=\"Order\"/>\n"" </bag>\n""\n"" </class>\n"" \n""</hibernate-mapping>]]>"msgstr ""#. Tag: para#: persistent_classes.xml:266#, no-c-formatmsgid """Note that even though associations are declared using target class names, ""the target type of an associations may also be a dynamic entity instead of a ""POJO."msgstr """Notez que même si des associations sont déclarées en utilisant des noms de ""classe cible, le type de cible d'une association peut aussi être une entité ""dynamique au lieu d'un POJO."#. Tag: para#: persistent_classes.xml:273#, no-c-formatmsgid """After setting the default entity mode to <literal>dynamic-map</literal> for ""the <literal>SessionFactory</literal>, we can at runtime work with ""<literal>Map</literal>s of <literal>Map</literal>s:"msgstr """Après avoir configuré le mode d'entité par défaut à <literal>dynamic-map</""literal> pour la <literal>SessionFactory</literal>, nous pouvons lors de ""l'exécution fonctionner avec des <literal>Map</literal>s de <literal>Map</""literal>s :"#. Tag: programlisting#: persistent_classes.xml:279#, no-c-formatmsgid """<![CDATA[Session s = openSession();\n""Transaction tx = s.beginTransaction();\n""Session s = openSession();\n""\n""// Create a customer\n""Map david = new HashMap();\n""david.put(\"name\", \"David\");\n""\n""// Create an organization\n""Map foobar = new HashMap();\n""foobar.put(\"name\", \"Foobar Inc.\");\n""\n""// Link both\n""david.put(\"organization\", foobar);\n""\n""// Save both\n""s.save(\"Customer\", david);\n""s.save(\"Organization\", foobar);\n""\n""tx.commit();\n""s.close();]]>"msgstr ""#. Tag: para#: persistent_classes.xml:281#, no-c-formatmsgid """The advantages of a dynamic mapping are quick turnaround time for ""prototyping without the need for entity class implementation. However, you ""lose compile-time type checking and will very likely deal with many ""exceptions at runtime. Thanks to the Hibernate mapping, the database schema ""can easily be normalized and sound, allowing to add a proper domain model ""implementation on top later on."msgstr """Les avantages d'un mapping dynamique sont un gain de temps pour le ""prototypage sans la nécessité d'implémenter les classes d'entité. Pourtant, ""vous perdez la vérification du typage au moment de la compilation et aurez ""plus d'exceptions à gérer lors de l'exécution. Grâce au mapping d'Hibernate, ""le schéma de la base de données peut facilement être normalisé et solidifié, ""permettant de rajouter une implémentation propre du modèle de domaine plus ""tard."#. Tag: para#: persistent_classes.xml:289#, no-c-formatmsgid """Entity representation modes can also be set on a per <literal>Session</""literal> basis:"msgstr """Les modes de représentation d'une entité peut aussi être configuré par ""<literal>Session</literal> :"#. Tag: programlisting#: persistent_classes.xml:294#, no-c-formatmsgid """<![CDATA[Session dynamicSession = pojoSession.getSession(EntityMode.MAP);\n""\n""// Create a customer\n""Map david = new HashMap();\n""david.put(\"name\", \"David\");\n""dynamicSession.save(\"Customer\", david);\n""...\n""dynamicSession.flush();\n""dynamicSession.close()\n""...\n""// Continue on pojoSession\n""]]>"msgstr ""#. Tag: para#: persistent_classes.xml:297#, no-c-formatmsgid """Please note that the call to <literal>getSession()</literal> using an ""<literal>EntityMode</literal> is on the <literal>Session</literal> API, not ""the <literal>SessionFactory</literal>. That way, the new <literal>Session</""literal> shares the underlying JDBC connection, transaction, and other ""context information. This means you don't have tocall <literal>flush()</""literal> and <literal>close()</literal> on the secondary <literal>Session</""literal>, and also leave the transaction and connection handling to the ""primary unit of work."msgstr """Veuillez noter que l'appel à <literal>getSession()</literal> en utilisant un ""<literal>EntityMode</literal> se fait sur l'API <literal>Session</literal>, ""pas <literal>SessionFactory</literal>. De cette manière, la nouvelle ""<literal>Session</literal> partage les connexions JDBC, transactions et ""autres informations de contexte sous-jacentes. Cela signifie que vous n'avez ""pas à appeler <literal>flush()</literal> et <literal>close()</literal> sur ""la <literal>Session</literal> secondaire, et laissez aussi la gestion de la ""transaction et de la connexion à l'unité de travail primaire."#. Tag: para#: persistent_classes.xml:307#, no-c-formatmsgid """More information about the XML representation capabilities can be found in ""<xref linkend=\"xml\"/>."msgstr """Plus d'informations à propos de la représentation XML peuvent être trouvées ""dans <xref linkend=\"xml\"/>."#. Tag: title#: persistent_classes.xml:315#, no-c-formatmsgid "Tuplizers"msgstr "Tuplizers"#. Tag: para#: persistent_classes.xml:317#, no-c-formatmsgid """<literal>org.hibernate.tuple.Tuplizer</literal>, and its sub-interfaces, are ""responsible for managing a particular representation of a piece of data, ""given that representation's <literal>org.hibernate.EntityMode</literal>. If ""a given piece of data is thought of as a data structure, then a tuplizer is ""the thing 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 correpsonding 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 <literal>org.hibernate.tuple.entity.EntityTuplizer</""literal> and <literal>org.hibernate.tuple.component.ComponentTuplizer</""literal> interfaces. <literal>EntityTuplizer</literal>s are responsible for ""managing the above mentioned contracts in regards to entities, while ""<literal>ComponentTuplizer</literal>s do the same for components."msgstr """<literal>org.hibernate.tuple.Tuplizer</literal>, et ses sous-interfaces, ""sont responsables de la gestion d'une représentation particulière d'un ""morceau de données, en fonction du <literal>org.hibernate.EntityMode</""literal> de réprésentation. Si un morceau donné de données est pensé comme ""une structure de données, alors un tuplizer est la chose qui sait comment ""créer une telle structure de données, comment extraire des valeurs et ""injecter des valeurs dans une telle structure de données. Par exemple, pour ""le mode d'entité POJO, le tuplizer correspondant sait comment créer le POJO ""à travers son constructeur et comment accéder aux propriétés du POJO ""utilisant les accesseurs de la propriété définie. Il y a deux types de ""Tuplizers haut niveau, représenté par les interfaces <literal>org.hibernate.""tuple.EntityTuplizer</literal> et <literal>org.hibernate.tuple.""ComponentTuplizer</literal>. Les <literal>EntityTuplizer</literal>s sont ""responsables de la gestion des contrats mentionnés ci-dessus pour les ""entités, alors que les <literal>ComponentTuplizer</literal>s s'occupent des ""composants."#. Tag: para#: persistent_classes.xml:332#, no-c-formatmsgid """Users may also plug in their own tuplizers. Perhaps you require that a ""<literal>java.util.Map</literal> implementation other than <literal>java.""util.HashMap</literal> be used while in the dynamic-map entity-mode; or ""perhaps you need to define a different proxy generation strategy than the ""one used by default. Both would be achieved by defining a custom tuplizer ""implementation. Tuplizers definitions are attached to the entity or ""component mapping they are meant to manage. Going back to the example of our ""customer entity:"msgstr """Les utilisateurs peuvent aussi brancher leurs propres tuplizers. Peut-être ""vous est-il nécessaire qu'une implémentation de <literal>java.util.Map</""literal> autre que <literal>java.util.HashMap</literal> soit utilisée dans ""le mode d'entité dynamic-map ; ou peut-être avez-vous besoin de définir une ""statégie de génération de proxy différente de celle utilisée par défaut. Les ""deux devraient être effectuées en définissant une implémentation de tuplizer ""utilisateur. Les définitions de tuplizers sont attachées au mapping de ""l'entité ou du composant qu'ils sont censés gérer. Retour à l'exemple de ""notre entité utilisateur :"#. Tag: programlisting#: persistent_classes.xml:341#, no-c-formatmsgid """<![CDATA[<hibernate-mapping>\n"" <class entity-name=\"Customer\">\n"" <!--\n"" Override the dynamic-map entity-mode\n"" tuplizer for the customer entity\n"" -->\n"" <tuplizer entity-mode=\"dynamic-map\"\n"" class=\"CustomMapTuplizerImpl\"/>\n""\n"" <id name=\"id\" type=\"long\" column=\"ID\">\n"" <generator class=\"sequence\"/>\n"" </id>\n""\n"" <!-- other properties -->\n"" ...\n"" </class>\n""</hibernate-mapping>\n""\n""\n""public class CustomMapTuplizerImpl\n"" extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {\n"" // override the buildInstantiator() method to plug in our custom map...\n"" protected final Instantiator buildInstantiator(\n"" org.hibernate.mapping.PersistentClass mappingInfo) {\n"" return new CustomMapInstantiator( mappingInfo );\n"" }\n""\n"" private static final class CustomMapInstantiator\n"" extends org.hibernate.tuple.DynamicMapInstantitor {\n"" // override the generateMap() method to return our custom map...\n"" protected final Map generateMap() {\n"" return new CustomMap();\n"" }\n"" }\n""}]]>"msgstr ""#. Tag: title#: persistent_classes.xml:347#, no-c-formatmsgid "Extentsions"msgstr ""#. Tag: para#: persistent_classes.xml:348#, no-c-formatmsgid """TODO: Document user-extension framework in the property and proxy packages"msgstr """TODO: Document user-extension framework in the property and proxy packages"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -