[jboss-cvs] JBossAS SVN: r96204 - projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 9 21:42:47 EST 2009
Author: xhuang at jboss.com
Date: 2009-11-09 21:42:46 -0500 (Mon, 09 Nov 2009)
New Revision: 96204
Modified:
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Author_Group.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Book_Info.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Feedback.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Preface.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Revision_History.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/architecture.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/batch.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/configuration.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/entitymanagerapi.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/listeners.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_ejbql.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_native.po
projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/transactions.po
Log:
generate PO
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Author_Group.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Author_Group.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Author_Group.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Book_Info.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Book_Info.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Book_Info.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Feedback.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Feedback.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Feedback.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Preface.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Preface.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Preface.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,7 +21,7 @@
#: Preface.xml:5
#, no-c-format
msgid "Introducing EJB3 Persistence"
-msgstr ""
+msgstr "Introduire la persistence EJB3"
#. Tag: para
#: Preface.xml:7
@@ -41,3 +41,17 @@
"You can at all times fall back to Hibernate native APIs, or if required, "
"even to native JDBC and SQL."
msgstr ""
+"La spécification EJB3 reconnaît l'intérêt et le succès du paradigme de "
+"mappage transparent objet/relationel. La spécification EJB3 standardise les "
+"API de base et les metadonnées dont on a besoin pour n'importe quel "
+"mécanisme de persistance objet/realationnel. <emphasis>Hibernate "
+"EntityManager</emphasis> implémente les interfaces de programmation et les "
+"règles de cycle de vie ainsi définies par la spécification de persistance "
+"EJB3. Tout comme <emphasis>Hibernate Annotations</emphasis>, cette "
+"encapsulation (wrapper) implémente une solution de persistance EJB3 complète "
+"( et autonome) par dessus l'Hibernate core mûr. Vous pouvez utiliser une "
+"combinaison des trois ensemble, des annotations sans interfaces de "
+"programmation EJB3 et cycles de vie, ou même Hibernate native pur, suivant "
+"les besoins commerciaux ou techniques de votre projet. Vous pouvez, à tout "
+"moment, retomber sur les API native Hibernate, ou bien, si nécessaire, les "
+"JDBC et SQL native."
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Revision_History.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Revision_History.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/Revision_History.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/architecture.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/architecture.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/architecture.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,13 +21,13 @@
#: architecture.xml:28
#, no-c-format
msgid "Architecture"
-msgstr ""
+msgstr "Architecture"
#. Tag: title
#: architecture.xml:31
#, no-c-format
msgid "Definitions"
-msgstr ""
+msgstr "Définitions"
#. Tag: para
#: architecture.xml:33
@@ -38,12 +38,17 @@
"outside of a particular container. The following programming interfaces and "
"artifacts are available in both environments."
msgstr ""
+"EJB3 fait partie de la plateforme Java EE 5.0. Dans EJB3, Persistence est "
+"disponible dans les conteneurs EJB3, ainsi que pour les applications "
+"indépendantes J2SE, qui exécutent en dehors d'un conteneur particulier. Les "
+"interfaces de programmation suivantes et les artéfacts sont disponibles dans "
+"les deux environnements."
#. Tag: literal
#: architecture.xml:41
#, no-c-format
msgid "EntityManagerFactory"
-msgstr ""
+msgstr "EntityManagerFactory"
#. Tag: para
#: architecture.xml:45
@@ -56,12 +61,19 @@
"interface is similar to the <literal>SessionFactory</literal> in native "
"Hibernate."
msgstr ""
+"Une usine de gestionnaires d'entités fournit des instances de gestionnaires "
+"d'entité, toutes les instances sont configurées pour pouvoir se connecter à "
+"la même base de données, et pour utiliser les mêmes paramètres par défaut "
+"déterminés par l'implémentation particulière, etc. Vous pouvez préparer "
+"plusieurs usines de gestionnaires d'entités pour pouvoir accéder à plusieurs "
+"datastores. Cette interface est semblable à <literal>SessionFactory</"
+"literal> d'Hibernate native."
#. Tag: literal
#: architecture.xml:56
#, no-c-format
msgid "EntityManager"
-msgstr ""
+msgstr "EntityManager"
#. Tag: para
#: architecture.xml:60
@@ -73,12 +85,18 @@
"all entities. This interface is similar to the <literal>Session</literal> in "
"Hibernate."
msgstr ""
+"L'API <literal>EntityManager</literal> est utilisé pour accéder à une base "
+"de données dans une unité de travail particulière. Il est utilisé pour créer "
+"et pour retirer des instances d'entités persistantes, pour trouver des "
+"entités par l'identité de leur clé primaire, et pour effectuer la recherche "
+"à travers toutes les entités. Cette interface est semblable à "
+"<literal>Session</literal> d'Hibernate."
#. Tag: term
#: architecture.xml:69
#, no-c-format
msgid "Persistence context"
-msgstr ""
+msgstr "Contexte de persistance"
#. Tag: para
#: architecture.xml:72
@@ -90,12 +108,18 @@
"a particular entity manager. The scope of this context can either be the "
"transaction, or an extended unit of work."
msgstr ""
+"Un contexte de persistance est un ensemble d'instances d'entités dans "
+"lequel, pour chaque identité d'entité persistante, il y a une instance "
+"d'entité unique. Dans le contexte de persistance, les instances d'entités et "
+"leur cycle de vie sont gérés par un gestionnaire d'entités particulier. La "
+"portée de ce contexte peut être, soit la transaction, soit l'unité de "
+"travail extended."
#. Tag: term
#: architecture.xml:82
#, no-c-format
msgid "Persistence unit"
-msgstr ""
+msgstr "Unité de persistance"
#. Tag: para
#: architecture.xml:85
@@ -106,66 +130,75 @@
"classes that are related or grouped by the application, and which must be "
"collocated in their mapping to a single data store."
msgstr ""
+"L'ensemble des types d'entités qui peuvent être gérées par un gestionnaire "
+"d'entités donné, est défini par l'unité de persistance. Une unité de "
+"persistance détermine l'ensemble de toutes les classes qui sont liées ou qui "
+"sont groupées par l'application, et qui doivent être co-situées dans leur "
+"mappage à un seul datastore."
#. Tag: term
#: architecture.xml:94
#, no-c-format
msgid "<term>Container-managed entity manager</term>"
-msgstr ""
+msgstr "<term>Gestionnaire d'entités container-managed</term>"
#. Tag: para
#: architecture.xml:97
#, no-c-format
msgid "An Entity Manager whose lifecycle is managed by the container"
msgstr ""
+"Un gestionnaire d'entités dont le cycle de vie est géré par le conteneur"
#. Tag: term
#: architecture.xml:103
#, no-c-format
msgid "<term>Application-managed entity manager</term>"
-msgstr ""
+msgstr "<term>Gestionnaire d'entités application-managed</term>"
#. Tag: para
#: architecture.xml:106
#, no-c-format
msgid "An Entity Manager whose lifecycle is managed by the application."
msgstr ""
+"Un gestionnaire d'entités sont le cycle de vie est géré par l'application."
#. Tag: term
#: architecture.xml:112
#, no-c-format
msgid "JTA entity manager"
-msgstr ""
+msgstr "Gestionnaire d'entités JTA"
#. Tag: para
#: architecture.xml:115
#, no-c-format
msgid "Entity manager involved in a JTA transaction"
-msgstr ""
+msgstr "Le gestionnaire d'entités impliquée dans une transaction JTA."
#. Tag: term
#: architecture.xml:120
#, no-c-format
msgid "Resource-local entity manager"
-msgstr ""
+msgstr "Gestionnaire d'entités resource-local."
#. Tag: para
#: architecture.xml:123
#, no-c-format
msgid "Entity manager using a resource transaction (not a JTA transaction)."
msgstr ""
+"Le gestionnaire d'entités utilisant une transaction de ressource (et non par "
+"une transaction JTA)."
#. Tag: title
#: architecture.xml:131
#, no-c-format
msgid "EJB container environment"
-msgstr ""
+msgstr "Environnement de conteneur EJB"
#. Tag: title
#: architecture.xml:134
#, no-c-format
msgid "<title>Container-managed entity manager</title>"
-msgstr ""
+msgstr "<title>Gestionnaire d'entités container-managed</title>"
#. Tag: para
#: architecture.xml:136
@@ -179,16 +212,24 @@
"through dependency injection or through JNDI lookup, A container-managed "
"entity manger requires the use of a JTA transaction."
msgstr ""
+"Le gestionaire d'entités le plus commun et le plus utilisé généralement dans "
+"l'environnement Java EE est le gestionnaire d'entités container-managed "
+"(géré-conteneur). Dans ce mode, les conteneur est chargé de l'ouverture et "
+"de la fermeture du gestionnaire d'entités (cela est transparent dans "
+"l'application). Il est également responsable des limites de la transaction. "
+"Un gestionnaire d'entités container-managed est obtenu dans une application "
+"par injection de dépendance ou par JNDI lookup. Un gestionnaire d'entités "
+"container-managed exige l'utilisation d'une transaction JTA."
#. Tag: title
#: architecture.xml:147
#, no-c-format
msgid "<title>Application-managed entity manager</title>"
-msgstr ""
+msgstr "<title>Gestionnaire d'entités application-managed</title>"
#. Tag: para
#: architecture.xml:149
-#, no-c-format
+#, fuzzy, 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 "
@@ -201,12 +242,24 @@
"manager type (JTA or resource-local) is defined at configuration time, when "
"setting up the entity manager factory."
msgstr ""
+"Un gestionnaire d'entités application-managed (géré-application) vous permet "
+"de contrôler le gestionnaire d'entités en code d'application. Ce "
+"gestionnaire d'entités est extrait par l'API <literal>EntityManagerFactory</"
+"literal>. Un gestionnaire d'entités géré par des applications peut être: "
+"soit impliqué dans la transaction JTA courante (comme un gestionnaire "
+"d'entités JTA), soit la transaction pourra être contrôlée par l'API "
+"<literal>EntityTransaction</literal> (un gestionnaire d'entité ressource-"
+"local). La transaction du gestionnaire d'entités ressource-locale mappe vers "
+"une transaction de ressource directe (c'est à dire, dans le cas d'Hibernate, "
+"vers une transaction JDBC). Le type de gestionnaire d'entités (JTA ou bien "
+"ressource-locale) est déterminé au moment de la configuration, quand on "
+"configure l'usine de gestionnaires d'entités."
#. Tag: title
#: architecture.xml:163
#, no-c-format
msgid "Persistence context scope"
-msgstr ""
+msgstr "Portée du contexte de persistance"
#. Tag: para
#: architecture.xml:165
@@ -217,10 +270,14 @@
"transaction boundaries, or keeping the persistence context available across "
"several transactions."
msgstr ""
+"Le gestionnaire d'entités est l'API qui agit dans le contexte de "
+"persistance. On peut utiliser deux stratégies communes : lier le contexte de "
+"persistance aux limites de la transaction, ou bien conserver le contexte de "
+"persistance qui est disponible pour plusieurs transactions."
#. Tag: para
#: architecture.xml:170
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"The most common case is to bind the persistence context scope to the current "
"transaction scope. This is only doable when JTA transactions are used: the "
@@ -235,6 +292,19 @@
"simply use dependency injection or lookup whenever you need an entity "
"manager."
msgstr ""
+"Le cas le plus commun consiste à lier la portée du contexte de persistance à "
+"la portée de la transaction courante. Ce n'est faisable que quand les "
+"transactions JTA sont utilisées: le contexte de transactions est associé au "
+"cycle de vie des transactions JTA. Quand on invoque un gestionnaire de "
+"transactions, le contexte de persistance est également ouvert, s'il n'y a "
+"pas de contexte de persistance associé à la transaction JTA courante. Sinon "
+"le contexte de persistance associé sera utilisé. Le contexte de persistance "
+"se termine quand la transaction JTA se termine. Cela signifie que pendant la "
+"transaction JTA, une application pourra fonctionner sur les entités gérées "
+"du même contexte de persistance. En d'autres mots, vous n'aurez pas à faire "
+"passer le contexte de persistance du gestionaire d'entités pour vos appels "
+"de méthode EJB, mais vous n'aurez qu'à utiliser l'injection de dépendance ou "
+"lookup à chaque fois que vous aurez besoin d'un gestionnaire d'entités."
#. Tag: para
#: architecture.xml:184
@@ -262,6 +332,33 @@
"allowing the whole process to be commited or rollbacked. For application-"
"managed entity manager only support the exctended persistence context."
msgstr ""
+"Vous pouvez également utiliser un contexte de persistance extended . Cela "
+"peut être combiné aux beans de sessions stateful, si vous utilisez un "
+"gestionnaire d'entités container-managed : le contexte de persistance est "
+"créé quand un gestionnaire d'entités est extrait de l'injection de "
+"dépendance ou de lookup JNDI, et qu'il est conservé jusqu'à ce que le "
+"conteneur le ferme, après avoir effectué la méthode de beans de sessions "
+"stateful <literal>Remove</literal>. Il représente un mécanisme parfait pour "
+"implémenter une 'longue' unité de modèle de travail. Ainsi, si vous avez "
+"affaire à des cycles d'interactions entre plusieurs utilisateurs comme "
+"simple unité de travail (par exemple, un dialogue de l'Assistant qui doit "
+"être complété), normalement, vous le modèlerez comme unité de travail du "
+"point de vue de l'utilisateur de l'application, et vous l'implémenterez à "
+"l'aide du contexte de persistance extended. Veuillez vous référer au Manuel "
+"de référence d'Hibernate ou à l'ouvrage Hibernate in Action pour trouver "
+"davantage d'informations sur ce modèle. JBoss Seam est une structure "
+"d'implication qui lie JSF et EJB3 ensemble autour de la notion de "
+"conversation et d'unité de travail. Pour un gestionnaire d'entités "
+"application-managed, le contexte de persistance est créé quand le "
+"gestionnaire d'entités est créé et il sera conservé jusqu'à ce que le "
+"gestionnaire d'entités soit fermé. Dans un contexte de persistance extended, "
+"toutes les opérations de modifications (persist, merge, remove) qui sont "
+"exécutées en dehors de la transaction, sont mises en file d'attente jusqu'à "
+"ce que le contexte de persistance soit attaché à une transaction. La "
+"transaction a normalement lieu en fin de processus par l'utilisateur, "
+"permettant au processus dans son entier, d'être validé ou renvoyé, car le "
+"gestionnaire d'entités application-managed ne supporte que le contexte de "
+"persistance extended."
#. Tag: para
#: architecture.xml:208
@@ -272,12 +369,16 @@
"managed) has a one-to-one relationship with a persistence context. In other "
"situations <emphasis>persistence context propagation</emphasis> occurs."
msgstr ""
+"Un gestionnaire d'entités ressources-locale ou un gestionnaire d'entités "
+"créé par <literal>EntityManagerFactory.createEntityManager()</literal> "
+"(application-managed) possède une relation one-to-one avec un contexte "
+"persistant."
#. Tag: title
#: architecture.xml:216
#, no-c-format
msgid "Persistence context propagation"
-msgstr ""
+msgstr "Propagation de contexte persistant"
#. Tag: para
#: architecture.xml:218
@@ -285,6 +386,8 @@
msgid ""
"Persistence context propagation occurs for container-managed entity managers."
msgstr ""
+"La propagation de contexte persistant opère pour les gestionnaires d'entités "
+"container-managed."
#. Tag: para
#: architecture.xml:221
@@ -297,6 +400,14 @@
"all share the same persistence context. In Hibernate terms, this means all "
"managers share the same session."
msgstr ""
+"Dans un gestionnaire d'entités géré par conteneur et transaction-scoped (ce "
+"qui représente un cas commun en environnement Java EE), la propagation de "
+"transaction JTA est la même que la propagation de ressource de contexte de "
+"persistance. En d'autres mots, les gestionnaires d'entités gérés par "
+"conteneur et transaction-scoped qui sont extraits d'une transaction JTA "
+"donnée, partagent tous le même contexte de persistance. En termes "
+"d'Hibernate, cela signifie que tous les gestionnaires partagent la même "
+"session."
#. Tag: para
#: architecture.xml:228
@@ -307,6 +418,11 @@
"manager factory. There are some noteworthy exceptions for context "
"propagation when using extended persistence contexts:"
msgstr ""
+"Important : les contextes de persistance ne sont jamais partagés entre les "
+"différentes transactions JTA ou entre les gestionnaires d'entités qui ne "
+"proviennent pas de la même usine de gestionnaires d'entités. Il y a "
+"cependant des exceptions notables quand on utilise des contextes de "
+"persistance extended :"
#. Tag: para
#: architecture.xml:235
@@ -317,6 +433,10 @@
"with an extended persistence context in the same JTA transaction, an "
"IllegalStateException is thrown."
msgstr ""
+"Si un bean de session stateless, un bean message-driven, ou un bean de "
+"session stateful associé à un contexte de persistance transaction-scoped "
+"appelle un bean de session stateful associé à un contexte de persistance "
+"extended dans la même transaction JTA, un IllegalStateException est lancé."
#. Tag: para
#: architecture.xml:242
@@ -327,6 +447,10 @@
"persistence context in the same JTA transaction, the persistence context is "
"propagated."
msgstr ""
+"Si un bean de session stateful lié à un contexte de persistance extended "
+"appelle en tant que bean de session stateless ou bean de session stateful "
+"dans un contexte de persistance transaction-scoped dans la même transaction "
+"JTA, le contexte de persistance sera propagé."
#. Tag: para
#: architecture.xml:249
@@ -336,6 +460,9 @@
"stateless or stateful session bean in a different JTA transaction context, "
"the persistence context is not propagated."
msgstr ""
+"Si un bean de session stateful lié à un contexte de persistance extended "
+"appelle un bean de session stateful ou stateless dans un contexte de "
+"transaction JTA différent, le contexte de persistance ne sera pas propagé."
#. Tag: para
#: architecture.xml:256
@@ -347,6 +474,12 @@
"bean. If the second stateful session bean is called with a different "
"transaction context than the first, an IllegalStateException is thrown."
msgstr ""
+"Si un bean de session stateful lié à un contexte de persistance extended "
+"instancie un autre bean de session stateful lié à un contexte de persistance "
+"extended, le contexte de persistance prolongé sera hérité par le deuxième "
+"bean de session stateful. Si le second bean de session stateful est appelé "
+"en relation à un contexte de transaction différent du premier, une exception "
+"IllegalStateException sera lancée."
#. Tag: para
#: architecture.xml:265
@@ -356,12 +489,16 @@
"stateful session bean with a different extended persistence context in the "
"same transaction, an IllegalStateException is thrown."
msgstr ""
+"Si un bean de session stateful lié à un contexte de persistance extended "
+"appelle un bean de session stateful lié à un contexte de persistance "
+"extended différent dans la même transaction, une exception "
+"IllegalStateException sera lancée."
#. Tag: title
#: architecture.xml:275
#, no-c-format
msgid "Java SE environments"
-msgstr ""
+msgstr "Les environnements Java SE"
#. Tag: para
#: architecture.xml:277
@@ -375,6 +512,14 @@
"the persistence context yourself, e.g. using the thread local session "
"pattern popular in the Hibernate community)."
msgstr ""
+"Dans un environnement Java SE, seuls les gestionnaires d'entités application-"
+"managed de contexte extended sont disponibles. Vous pouvez extraire un "
+"gestionnaire d'entités en utilisant l'API <literal>EntityManagerFactory</"
+"literal>. Seuls les gestionnaires d'entités ressource-local sont "
+"disponibles. En d'autres mots, les transactions JTA et la propagation de "
+"contexte de persistance ne sont pas pris en charge par Java SE (vous devrez "
+"propager le contexte de persistance vous-même, c'est à dire en utilisant le "
+"modèle de session de thread local de la communauté Hibernate.)"
#. Tag: para
#: architecture.xml:285
@@ -385,3 +530,8 @@
"(...)</literal> ) and closed when the entity manager is closed. Many "
"resource-local transaction share the same persistence context, in this case."
msgstr ""
+"Un contexte extended signifie que le contexte de persistance est créé quand "
+"le gestionnaire d'entités est extrait (en utilisant "
+"<literal>EntityManagerFactory.createEntityManager(...)</literal> ) et sera "
+"fermé quand le gestionnaire d'entités est fermé. Plusieurs transactions "
+"ressource-local partagent le même contexte de persistance, dans ce cas."
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/batch.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/batch.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/batch.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/configuration.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/configuration.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/configuration.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,17 +21,17 @@
#: configuration.xml:28
#, no-c-format
msgid "Setup and configuration"
-msgstr ""
+msgstr "Installation et configuration"
#. Tag: title
#: configuration.xml:31
#, no-c-format
msgid "Setup"
-msgstr ""
+msgstr "Installation"
#. Tag: para
#: configuration.xml:33
-#, no-c-format
+#, fuzzy, 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 "
@@ -41,18 +41,26 @@
"annotations.jar, hibernate-entitymanager.jar and all needed third party "
"libraries for each package (incl. ejb-persistence.jar)."
msgstr ""
+"L'Hibernate EntityManager compatible JPA/EJB 3.0 est construit sur Hibernate "
+"core et Hibernate Annotations. Vous devez utiliser des versions compatibles "
+"pour chaque module. Cette version est connue pour fonctionner sur Hibernate "
+"Core 3.2.0.CR5, 3.2.0.GA, 3.2.1.GA et sur Hibernate Annotations 3.2.0.CR3, "
+"3.2.0.GA, 3.2.1.GA. Les bibliothèques suivantes doivent figurer sur votre "
+"chemin d'accès de classe : hibernate3.jar, hibernate-annotations.jar, "
+"hibernate-entitymanager.jar et toutes les bibliothèques de tierces parties "
+"utiles à chaque package (y compris ejb.persistence.jar)."
#. Tag: title
#: configuration.xml:44
#, no-c-format
msgid "Configuration and bootstrapping"
-msgstr ""
+msgstr "Configuration et initialisation"
#. Tag: title
#: configuration.xml:47
#, no-c-format
msgid "Packaging"
-msgstr ""
+msgstr "Packaging"
#. Tag: para
#: configuration.xml:49
@@ -67,10 +75,20 @@
"included in the archive will be added to the persistence unit configuration, "
"so by default, your persistence.xml will be quite minimalist:"
msgstr ""
+"La configuration des gestionnaires d'entités à la fois à l'intérieur d'un "
+"serveur d'application et dans une application autonome résident dans une "
+"archive de persistance. Une archive de persistance est un fichier JAR qui "
+"doit définir un fichier <literal>persistence.xml</literal> qui réside dans "
+"le dossier <filename>META-INF</filename>. Toutes les classes annotées "
+"correctement dans l'archive (c'est à dire ayant l'annotation "
+"<literal>@Entity</literal>), tous les packages annotés et tous les fichiers "
+"Hibernate hbm.xml inclus dans l'archive seront ajoutés à la configuration de "
+"l'unité de persistance, ce qui fait que par défaut, votre persistence.xml "
+"sera assez minimaliste :"
#. Tag: programlisting
#: configuration.xml:60
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
@@ -88,18 +106,35 @@
" </persistence-unit>\n"
"</persistence>"
msgstr ""
+"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence\n"
+" http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd\"\n"
+" version=\"1.0\">\n"
+" <persistence-unit name=\"sample\">\n"
+" <jta-data-source>java:/DefaultDS</jta-data-source>\n"
+" <properties>\n"
+" <property name=\"hibernate.dialect\" value=\"org.hibernate."
+"dialect.HSQLDialect\"/>\n"
+" <property name=\"hibernate.hbm2ddl.auto\" value=\"create-drop\"/"
+">\n"
+" </properties>\n"
+" </persistence-unit>\n"
+"</persistence>"
#. Tag: para
#: configuration.xml:62
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"Here's a more complete example of a <filename><literal>persistence.xml</"
"literal></filename> file"
msgstr ""
+"Voici un exemple plus complexe d'un fichier <filename><literal>persistence."
+"xml</literal></filename>."
#. Tag: programlisting
#: configuration.xml:65
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
@@ -124,24 +159,46 @@
" </persistence-unit>\n"
"</persistence>"
msgstr ""
+"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence\n"
+" http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd\"\n"
+" version=\"1.0\">\n"
+" <persistence-unit name=\"manager1\" transaction-type=\"JTA\">\n"
+" <provider>org.hibernate.ejb.HibernatePersistence</"
+"provider>\n"
+" <jta-data-source>java:/DefaultDS</jta-data-source>\n"
+" <mapping-file>ormap.xml</mapping-file>\n"
+" <jar-file>MyApp.jar</jar-file>\n"
+" <class>org.acme.Employee</class>\n"
+" <class>org.acme.Person</class>\n"
+" <class>org.acme.Address</class>\n"
+" <properties>\n"
+" <property name=\"hibernate.dialect\" value=\"org.hibernate."
+"dialect.HSQLDialect\"/>\n"
+" <property name=\"hibernate.hbm2ddl.auto\" value=\"create-drop\"/"
+">\n"
+" </properties>\n"
+" </persistence-unit>\n"
+"</persistence>"
#. Tag: code
#: configuration.xml:69
#, no-c-format
msgid "name"
-msgstr ""
+msgstr "nom"
#. Tag: para
#: configuration.xml:72
#, no-c-format
msgid "(attribute) Every entity manager must have a name."
-msgstr ""
+msgstr "(attribut) Chaque gestionnaire d'entité doit avoir un nom."
#. Tag: code
#: configuration.xml:77
#, no-c-format
msgid "transaction-type"
-msgstr ""
+msgstr "type-de-transaction"
#. Tag: para
#: configuration.xml:80
@@ -152,28 +209,36 @@
"When a jta-datasource is used, the default is JTA, if non-jta-datasource is "
"used, RESOURCE_LOCAL is used."
msgstr ""
+"(attribut) Type de transaction utilisé. Soit une JTA ou un RESOURCE_LOCAL "
+"(par défaut à JTA dans un environnement JavaEE et à RESOURCE_LOCAL dasn un "
+"environnement JavaSE). Quand une jta-datasource est utilisée, la valeur par "
+"défaut est JTA, si une datasource est utilisée, RESOURCE_LOCAL sera utilisé."
#. Tag: code
#: configuration.xml:89
#, no-c-format
msgid "provider"
-msgstr ""
+msgstr "provider"
#. Tag: para
#: configuration.xml:92
-#, no-c-format
+#, fuzzy, 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 ""
+"Provider est un nom de classe complet du fournisseur de Persistance EJB. "
+"Vous n'aurez pas besoin de le définir si vous ne travaillez pas dans "
+"plusieurs implementations EJB3. Cela est utilise quand vous utilisez des "
+"implémentations de providers divers de la Persistance EJB."
#. Tag: term
#: configuration.xml:101
#, no-c-format
msgid "<code>jta-data-source</code>, <code>non-jta-data-source</code>"
-msgstr ""
+msgstr "<code>jta-data-source</code>, <code>non-jta-data-source</code>"
#. Tag: para
#: configuration.xml:105
@@ -183,12 +248,16 @@
"running without a JNDI available Datasource, you must specify JDBC "
"connections with Hibernate specific properties (see below)."
msgstr ""
+"Il s'agit du nom JNDI de l'endroit où javax.sql.DataSource est situé. Quand "
+"vous exécutez sans une Datasource JNDI disponible, vous devez spécifier les "
+"connexions JDBC avec leurs propriétés spécifiques Hibernate (voir ci-"
+"dessous)."
#. Tag: code
#: configuration.xml:113
#, no-c-format
msgid "mapping-file"
-msgstr ""
+msgstr "mapping-file"
#. Tag: para
#: configuration.xml:116
@@ -202,12 +271,20 @@
"in the mapping file element ie. either hbm files or EJB3 deployment "
"descriptor."
msgstr ""
+"L'élément de classe spécifie un fichier de mappage XML compatible EJB3 que "
+"vous allez mapper. Le fichier devra être dans le chemin de classe. Comme "
+"pour la spécification EJB3, l'EntityManager d'Hibernate tentera de charger "
+"le fichier de mappage situé sur le fichier jar à <literal>META_INF/orm.xml</"
+"literal>. Biensûr, tout fichier de mappage explicite sera chargé également. "
+"En fait, vous pouvez fournir n'importe quel fichier XML dans l'élément de "
+"fichier de mappage, c'est à dire soient des fichiers hbm ou un descripteur "
+"de déploiement EJB3."
#. Tag: code
#: configuration.xml:128
#, no-c-format
msgid "jar-file"
-msgstr ""
+msgstr "jar-file"
#. Tag: para
#: configuration.xml:131
@@ -222,6 +299,15 @@
"environment, the persistence.xml file is not under the same root directory "
"or jar than your domain model)."
msgstr ""
+"Les éléments jar-file précisent quel jar analyser. Toutes les classes "
+"correctement annotées, les packages annotés et tous les fichiers hbm.xml qui "
+"font partie de ce fichier jar seront ajoutés à la configuration d'unité de "
+"persistance. Cet élément est surtout utilisé dans un environnement Java EE. "
+"Son utilisation dans Java SE devrait être considéré comme non portable, dans "
+"lequel cas, un url absolu sera requis. Sinon, vous pourrez pointer vers un "
+"répertoire (cela est surtout utile quand dans votre environnement de test, "
+"le fichier persistence.xml n'est pas sous le même répertoire root ou jar que "
+"votre modèle de domaine)."
#. Tag: programlisting
#: configuration.xml:141
@@ -230,12 +316,14 @@
"<jar-file>file:/home/turin/work/local/lab8/build/classes</jar-"
"file>"
msgstr ""
+"<jar-file>file:/home/turin/work/local/lab8/build/classes</jar-"
+"file>"
#. Tag: code
#: configuration.xml:146
#, no-c-format
msgid "exclude-unlisted-classes"
-msgstr ""
+msgstr "exclude-unlisted-classes"
#. Tag: para
#: configuration.xml:149
@@ -244,12 +332,14 @@
"Do not check the main jar file for annotated classes. Only explicit classes "
"will be part of the persistence unit."
msgstr ""
+"Ne pas vérifier les classes annotées dans le fichier jar principal. Seules "
+"les classes explicites feront partie de l'unité de persistance."
#. Tag: code
#: configuration.xml:155
#, no-c-format
msgid "class"
-msgstr ""
+msgstr "class"
#. Tag: para
#: configuration.xml:158
@@ -265,12 +355,23 @@
"package level (ie in <filename>package-info.java</filename>), it will not "
"include all the classes of a given package."
msgstr ""
+"L'élément de classe spécifie un nom de classe complet qui vous pourrez "
+"mapper. Par défaut, toutes les classes annotées correctement et tous les "
+"fichiers hbm.xml que l'on trouve dans l'archive sont ajoutés dans la "
+"configuration d'unité de persistance. Vous pouvez ajouter quelques entités "
+"externes par l'élément de classe cependant. Comme extension à cette "
+"spécification, vous pouvez ajouter un nom de package dans l'élément "
+"<literal><class></literal> (comme <code><class>org.hibernate."
+"eg</class></code>). Attention, le package devra inclure les "
+"métadonnées définies au niveau du package (c'est à dire dans "
+"<filename>package-info.java</filename>), il ne pourra pas inclure toutes les "
+"classes d'un package donné."
#. Tag: code
#: configuration.xml:173
#, no-c-format
msgid "properties"
-msgstr ""
+msgstr "propriétés"
#. Tag: para
#: configuration.xml:176
@@ -280,6 +381,10 @@
"is where you will define your Hibernate specific configurations. This is "
"also where you will have to specify JDBC connection information as well."
msgstr ""
+"L'élément de propriétés est utilisé pour spécifier les propriétés "
+"spécifiques au fournisseur. C'est là où vous allez pouvoir déterminer vos "
+"configurations spécifiques Hibernate. C'est également là où vous devrez "
+"spécifier les informations de connexion JDBC."
#. Tag: para
#: configuration.xml:184
@@ -291,10 +396,16 @@
"literal>, Hibernate entityManager will use the version embedded in the "
"hibernate-entitymanager.jar. No internet access will be processed."
msgstr ""
+"Veillez à définir la définition de la grammaire de l'élément "
+"<literal>persistence</literal> puisque la spécification EJB3 requiert un "
+"schéma de validation. Si le systemld se termine par <literal>persistence_1_0."
+"xsd</literal>, Hibernate entityManager va utiliser la version qui est "
+"intégrée dans hibernate-entitymanager.jar. Aucun accès internet ne sera "
+"traité."
#. Tag: programlisting
#: configuration.xml:191
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
@@ -302,12 +413,17 @@
"sun.com/xml/ns/persistence/persistence_1_0.xsd\"\n"
" version=\"1.0\">"
msgstr ""
+"<persistence xmlns=\"http://java.sun.com/xml/ns/persistence\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence\n"
+" http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd\"\n"
+" version=\"1.0\">"
#. Tag: title
#: configuration.xml:195
#, no-c-format
msgid "Bootstrapping"
-msgstr ""
+msgstr "Initialisation"
#. Tag: para
#: configuration.xml:197
@@ -318,6 +434,10 @@
"<classname>EntityManager</classname>. The bootstrap class is "
"<classname>javax.persistence.Persistence</classname>, e.g."
msgstr ""
+"La spécification EJB3 détermine la procédure d'initialisation pour accéder "
+"au <classname>EntityManagerFactory</classname> et au "
+"<classname>EntityManager</classname>. La classe d'initialisation est "
+"<classname>javax.persistence.Persistence</classname>, par exemple"
#. Tag: programlisting
#: configuration.xml:202
@@ -331,6 +451,13 @@
"EntityManagerFactory programmaticEmf =\n"
" Persistence.createEntityManagerFactory(\"manager1\", configOverrides);"
msgstr ""
+"EntityManagerFactory emf = Persistence.createEntityManagerFactory(\"manager1"
+"\");\n"
+"//or\n"
+"Map configOverrides = new HashMap();\n"
+"configOverrides.put(\"hibernate.hbm2ddl.auto\", \"create-drop\");\n"
+"EntityManagerFactory programmaticEmf =\n"
+" Persistence.createEntityManagerFactory(\"manager1\", configOverrides);"
#. Tag: para
#: configuration.xml:204
@@ -341,12 +468,16 @@
"defined in your persistence.xml files. There are a couple of EJB3 properties "
"usable in the map:"
msgstr ""
+"La première version est équivalente à la seconde avec un map vide. La "
+"version map est un ensemble de surcharges qui auront prépondérence sur toute "
+"propriété déterminée dans vos fichiers persistence.xml. Il y a quelques "
+"prorpiétés EJB3 qui sont utilisables dans map :"
#. Tag: para
#: configuration.xml:211
#, no-c-format
msgid "javax.persistence.provider to define the provider class used"
-msgstr ""
+msgstr "javax.persistence.provider pour définir la classe de provider utilisée"
#. Tag: para
#: configuration.xml:216
@@ -355,6 +486,8 @@
"javax.persistence.transactionType to define the transaction type used "
"(either JTA or RESOURCE_LOCAL)"
msgstr ""
+"javax.persistence.transactionType pour définir le type de transaction "
+"utilisé (soit JTA ou RESOURCE_LOCAL)"
#. Tag: para
#: configuration.xml:221
@@ -362,6 +495,8 @@
msgid ""
"javax.persistence.jtaDataSource to define the JTA datasource name in JNDI"
msgstr ""
+"javax.persistence.jtaDataSource pour définir le nom de la source de données "
+"dans JNDI"
#. Tag: para
#: configuration.xml:226
@@ -370,6 +505,8 @@
"javax.persistence.nonJtaDataSource to define the non JTA datasource name in "
"JNDI"
msgstr ""
+"javax.persistence.nonJtaDataSource pour définir le nom de la source de "
+"données non JTA dans JNDI"
#. Tag: para
#: configuration.xml:231
@@ -389,6 +526,22 @@
"correct name are found or if the expected persistence provider is not found, "
"a <classname>PersistenceException</classname> is raised."
msgstr ""
+"Quand <code>Persistence.createEntityManagerFactory()</code> est appelé, "
+"l'implémentation de persistance va chercher votre chemin de classe pour "
+"n'importe quel fichier <code>META-INF/persistence.xml</code> qui utilise la "
+"méthode <code>ClassLoader.getResource(\"META-INF/persistence.xml\")</code>. "
+"En fait, la classe <classname>Persistence</classname> va chercher tous les "
+"fournisseurs de Persistence disponibles dans le chemin de classe et demander "
+"à chacun s'ils sont responsables de la création de l'usine de gestionnaires "
+"d'entités <literal>manager1</literal>. Pour chaque fournisseur, il va "
+"essayer, à partir de la liste de ressources, de trouver un gestionnnaire "
+"d'entités qui corresponde au nom que vous aurez déterminé au niveau de la "
+"ligne de commande par rapport à ce qui est spécifié dans le fichier "
+"persistence.xml (biensûr, le fournisseur <literal>element</literal> devra "
+"correspondre au fournisseur persistant courant). Si on ne trouve pas de "
+"persistence.xml avec le nom qu'il faut, ou bien si on ne trouve pas le "
+"fournisseur de persistance auquel on s'attend, l'exception "
+"<classname>PersistenceException</classname> est soulevée."
#. Tag: para
#: configuration.xml:247
@@ -401,32 +554,37 @@
"reference documentation for a complete listing. There are however a couple "
"of properties available in the EJB3 provider only."
msgstr ""
+"Mis à part les paramètres niveau-système d'Hibernate, toutes les propriétés "
+"disponibles d'Hibernate peuvent être configurées dans l'élément "
+"<code>properties</code> du fichier persistence.xml ou bien sous forme de "
+"surcharge du map que vous passez à <code>createEntityManagerFactory()</"
+"code>. Veuillez vous reporter à la documentation de référence Hibernate pour "
+"un listing complet. Il existe cependant plusieurs propriétés disponibles "
+"dans le fournisseur EJB3 spécifiquement."
#. Tag: title
#: configuration.xml:257
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Hibernate Entity Manager specific properties"
-msgstr ""
-"Hibernate Entity Manager User Guide CP03 (Guide d'utilisation de "
-"gestionnaire d'entités Hibernate CP03)"
+msgstr "Propriétés spécifiques au Gestionnaire d'entités d'Hibernate"
#. Tag: entry
#: configuration.xml:266
#, no-c-format
msgid "Property name"
-msgstr ""
+msgstr "Nom de propriété"
#. Tag: entry
#: configuration.xml:268
#, no-c-format
msgid "Description"
-msgstr ""
+msgstr "Description"
#. Tag: entry
#: configuration.xml:274
#, no-c-format
msgid "hibernate.ejb.classcache.<classname>"
-msgstr ""
+msgstr "hibernate.ejb.classcache.<classname>"
#. Tag: entry
#: configuration.xml:276
@@ -437,12 +595,16 @@
"classcache.com.acme.Cat read-write or hibernate.ejb.classcache.com.acme.Cat "
"read-write, MyRegion)."
msgstr ""
+"stratégie cache de classe [virgule cache région] de la valeur par défaut de "
+"la classe de no cache, et cache de région par défaut de fully.qualified."
+"classname (par ex. hibernate.ejb.classcache.com.acme.Cat read-write ou "
+"hibernate.ejb.classcache.com.acme.Cat read-write, MyRegion)."
#. Tag: entry
#: configuration.xml:285
#, no-c-format
msgid "hibernate.ejb.collectioncache.<collectionrole>"
-msgstr ""
+msgstr "hibernate.ejb.collectioncache.<collectionrole>"
#. Tag: entry
#: configuration.xml:287
@@ -453,12 +615,16 @@
"hibernate.ejb.classcache.com.acme.Cat read-write or hibernate.ejb.classcache."
"com.acme.Cat read-write, MyRegion)."
msgstr ""
+"stratégie cache de collection [virgule cache région] de la valeur par défaut "
+"de la classe de no cache, et cache de région par défaut de fully.qualified."
+"classname (par ex. hibernate.ejb.classcache.com.acme.Cat read-write ou "
+"hibernate.ejb.classcache.com.acme.Cat read-write, MyRegion)."
#. Tag: entry
#: configuration.xml:296
#, no-c-format
msgid "hibernate.ejb.cfgfile"
-msgstr ""
+msgstr "hibernate.ejb.cfgfile"
#. Tag: entry
#: configuration.xml:298
@@ -467,12 +633,14 @@
"XML configuration file to use to configure Hibernate (eg. <filename>/"
"hibernate.cfg.xml</filename>)."
msgstr ""
+"fichier de cofiguration XML à utiliser pour configurer Hibernate (par ex. "
+"<filename>/hibernate.cfg.xml</filename>)."
#. Tag: entry
#: configuration.xml:303
#, no-c-format
msgid "hibernate.archive.autodetection"
-msgstr ""
+msgstr "hibernate.archive.autodetection"
#. Tag: entry
#: configuration.xml:305
@@ -481,16 +649,19 @@
"Determine which element is auto discovered by Hibernate Entity Manager while "
"parsing the .par archive. (default to <literal>class,hbm</literal>)."
msgstr ""
+"Déterminer quel élément est découvert automatiquement par le Gestionnaire "
+"d'entités Hibernate quand il analyse l'archive .par. (valeur par défaut de "
+"<literal>class,hbm</literal>)."
#. Tag: entry
#: configuration.xml:311
#, no-c-format
msgid "hibernate.ejb.interceptor"
-msgstr ""
+msgstr "hibernate.ejb.interceptor"
#. Tag: entry
#: configuration.xml:313
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"An optional Hibernate interceptor. The interceptor instance is shared by all "
"<classname>Session</classname> instances. This interceptor has to implement "
@@ -498,12 +669,15 @@
"constructor. This property can not be combined with <literal>hibernate.ejb."
"interceptor.session_scoped</literal>."
msgstr ""
+"Un intercepteur Hibernate optionnel. Cet intercepteur doit implémenter "
+"<classname>org.hibernate.Interceptor</classname> et comporte un constructeur "
+"no-arg."
#. Tag: entry
#: configuration.xml:322
-#, no-c-format
+#, fuzzy, no-c-format
msgid "hibernate.ejb.interceptor.session_scoped"
-msgstr ""
+msgstr "hibernate.ejb.interceptor"
#. Tag: entry
#: configuration.xml:324
@@ -520,7 +694,7 @@
#: configuration.xml:334
#, no-c-format
msgid "hibernate.ejb.naming_strategy"
-msgstr ""
+msgstr "hibernate.ejb.naming_strategy"
#. Tag: entry
#: configuration.xml:336
@@ -530,12 +704,16 @@
"<classname>EJB3NamingStrategy</classname>. You also might want to consider "
"the <classname>DefaultComponentSafeNamingStrategy</classname>."
msgstr ""
+"Une stratégie de nommage optionnelle. La stratégie de nommage par défaut "
+"utilisée est <classname>EJB3NamingStrategy</classname>. Vous souhaiterez "
+"peut-être également considérer "
+"<classname>DefaultComponentSafeNamingStrategy</classname>."
#. Tag: entry
#: configuration.xml:343
#, no-c-format
msgid "hibernate.ejb.event.<eventtype>"
-msgstr ""
+msgstr "hibernate.ejb.event.<eventtype>"
#. Tag: entry
#: configuration.xml:345
@@ -545,12 +723,16 @@
"comma separated fully qualified class name list (eg. hibernate.ejb.event.pre-"
"load com.acme.SecurityListener, com.acme.AuditListener)"
msgstr ""
+"Listener d'événement pour un type d'événement donné. La liste de listeners "
+"d'événements est constituée d'une liste de noms de classe complets séparés "
+"par une virgule (par ex. hibernate.ejb.event.pre-load com.acme."
+"SecurityListener, com.acme.AuditListener)"
#. Tag: entry
#: configuration.xml:352
#, no-c-format
msgid "hibernate.ejb.use_class_enhancer"
-msgstr ""
+msgstr "hibernate.ejb.use_class_enhancer"
#. Tag: entry
#: configuration.xml:354
@@ -559,12 +741,14 @@
"Whether or not use Application server class enhancement at deployment time "
"(default to false)"
msgstr ""
+"Doit-on oui ou non utiliser l'enrichissement de classe de serveur "
+"d'Application au moment du déploiement (faux par défaut )"
#. Tag: entry
#: configuration.xml:359
#, no-c-format
msgid "hibernate.ejb.discard_pc_on_close"
-msgstr ""
+msgstr "hibernate.ejb.discard_pc_on_close"
#. Tag: entry
#: configuration.xml:361
@@ -576,6 +760,12 @@
"be sy,chronized with the database (default to false, ie wait the transaction "
"completion)"
msgstr ""
+"S vrai, le contexte de persistance sera ignoré (pensez clairement - think "
+"clear() - quand la méthode est appelée. Sinon, le contexte de persistance "
+"restera vivant jusqu'à la fin de la transaction : tous les objets "
+"continueront d'être gérés, et tout changement sera synchronisé dans la base "
+"de données ( false par défaut, c'est à dire attendre la fin de la "
+"transaction)"
#. Tag: para
#: configuration.xml:372
@@ -587,6 +777,11 @@
"xml</filename> will override the one in the defined <filename>hibernate.cfg."
"xml</filename>."
msgstr ""
+"Remarquez que vous pouvez mixer la déclaration XML <literal>< class></"
+"literal> et l'utilisation de <literal>hibernate.ejb.cfgfile</literal> dans "
+"la même configuration. Tenez compte des conflits possibles. Les propriétés "
+"fixées dans <filename>persistence.xml</filename> vont surcharger celles qui "
+"sont déterminées dans <filename>hibernate.cfg.xml</filename>."
#. Tag: para
#: configuration.xml:379
@@ -599,16 +794,23 @@
"working in a Java EE environment, you might want to set the "
"<literal>hibernate.transaction.manager_lookup_class</literal> though."
msgstr ""
+"Il est important que vous ne surchargiez pas <literal>hibernate.transaction."
+"factory_class</literal>, Hibernate EntityManager détermine automatiquement "
+"l'usine de transactions qui convient suivant le type d'EntityManager (c'est "
+"à dire <literal>JTA</literal> versus <literal>RESOURSE_LOCAL</literal>). Si "
+"vous travaillez dans un environnement Java EE, vous souhaiterez peut-être "
+"configurer <literal>hibernate.transaction.manager_lookup_class</literal> "
+"malgré tout."
#. Tag: para
#: configuration.xml:389
#, no-c-format
msgid "Here is a typical configuration in a J2SE environment"
-msgstr ""
+msgstr "Voici une configuration typique d'un environnement J2SE"
#. Tag: programlisting
#: configuration.xml:391
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<persistence>\n"
" <persistence-unit name=\"manager1\" transaction-type=\"RESOURCE_LOCAL"
@@ -643,6 +845,41 @@
" </persistence-unit>\n"
"</persistence>"
msgstr ""
+"<persistence>\n"
+" <persistence-unit name=\"manager1\" transaction-type=\"RESOURCE_LOCAL"
+"\">\n"
+" <class>org.hibernate.ejb.test.Cat</class>\n"
+" <class>org.hibernate.ejb.test.Distributor</class>\n"
+" <class>org.hibernate.ejb.test.Item</class>\n"
+" <properties>\n"
+" <property name=\"hibernate.dialect\" value=\"org.hibernate."
+"dialect.HSQLDialect\"/>\n"
+" <property name=\"hibernate.connection.driver_class\" value=\"org."
+"hsqldb.jdbcDriver\"/>\n"
+" <property name=\"hibernate.connection.username\" value=\"sa\"/"
+">\n"
+" <property name=\"hibernate.connection.password\" value=\"\"/"
+">\n"
+" <property name=\"hibernate.connection.url\" value=\"jdbc:hsqldb:."
+"\"/>\n"
+" <property name=\"hibernate.max_fetch_depth\" value=\"3\"/>\n"
+" \n"
+" <!-- cache configuration -->\n"
+" <property name=\"hibernate.ejb.classcache.org.hibernate.ejb.test."
+"Item\"\n"
+" value=\"read-write\"/>\n"
+" <property name=\"hibernate.ejb.collectioncache.org.hibernate.ejb."
+"test.Item.distributors\" \n"
+" value=\"read-write, RegionName\"/>\n"
+"\n"
+" <!-- alternatively to <class> and <property> "
+"declarations, you can use a regular \n"
+" hibernate.cfg.xml file -->\n"
+" <!-- property name=\"hibernate.ejb.cfgfile\" \n"
+" value=\"/org/hibernate/ejb/test/hibernate.cfg.xml\"/ -->\n"
+" </properties>\n"
+" </persistence-unit>\n"
+"</persistence>"
#. Tag: para
#: configuration.xml:393
@@ -654,16 +891,22 @@
"classname>. Refer to the JavaDoc and the Hibernate reference guide for more "
"detailed informations on how to use it."
msgstr ""
+"Pour faciliter la configuration programmatique, Hibernate Entity Manager "
+"fournit un API propriétaire. Cet API est similaire à l'API "
+"<classname>Configuration</classname> et partage les mêmes concepts : "
+"<classname>Ejb3Configuration</classname>. Veuillez vous référer au guide de "
+"référence Hibernate et JavaDoc pour davantage d'informations sur la façon de "
+"l'utiliser."
#. Tag: para
#: configuration.xml:400
#, no-c-format
msgid "TODO: me more descriptive on some APIs like setDatasource()"
-msgstr ""
+msgstr "TODO: me more descriptive on some APIs like setDatasource()"
#. Tag: programlisting
#: configuration.xml:402
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"Ejb3Configuration cfg = new Ejb3Configuration();\n"
"EntityManagerFactory emf = \n"
@@ -679,12 +922,25 @@
"xml\n"
" .buildEntityManagerFactory(); //Create the entity manager factory"
msgstr ""
+"Ejb3Configuration cfg = new Ejb3Configuration();\n"
+"EntityManagerFactory emf = \n"
+" cfg.configure(\"/mypath/hibernate.cfg.xml\") //add a regular hibernate.cfg."
+"xml\n"
+" .addProperties( properties ) //add some properties\n"
+" .setInterceptor( myInterceptorImpl ) // set an interceptor\n"
+" .addAnnotatedClass( MyAnnotatedClass.class ) //add a class to be "
+"mapped\n"
+" .addClass( NonAnnotatedClass.class ) //add an hbm.xml file using the "
+"Hibernate convention\n"
+" .addRerousce( \"mypath/MyOtherCLass.hbm.xml ) //add an hbm.xml file\n"
+" .addRerousce( \"mypath/orm.xml ) //add an EJB3 deployment descriptor\n"
+" .buildEntityManagerFactory(); //Create the entity manager factory"
#. Tag: title
#: configuration.xml:407
#, no-c-format
msgid "Event listeners"
-msgstr ""
+msgstr "Listeners d'événements"
#. Tag: para
#: configuration.xml:409
@@ -696,228 +952,235 @@
"override some of the EJB3 semantics. A safe way is to add your event "
"listeners to the list given below."
msgstr ""
+"Hibernate Entity Manager a besoin d'améliorer Hibernate core pour "
+"implémenter toutes les sémantiques EJB3. Il y parvient grâce au système de "
+"listener d'événement d'Hibernate. Soyez vigilant(e)s quand vous utilisez le "
+"système d'événement vous-mêmes. Une façon sûre est d'ajouter vos listeners "
+"d'événements dans la liste donnée ci-dessous."
#. Tag: title
#: configuration.xml:416
-#, fuzzy, no-c-format
+#, no-c-format
msgid "Hibernate Entity Manager default event listeners"
-msgstr ""
-"Hibernate Entity Manager User Guide CP03 (Guide d'utilisation de "
-"gestionnaire d'entités Hibernate CP03)"
+msgstr "Listeners d'événements par défaut d'Hibernate Entity Manager"
#. Tag: entry
#: configuration.xml:425
#, no-c-format
msgid "Event"
-msgstr ""
+msgstr "Evénement"
#. Tag: entry
#: configuration.xml:427
#, no-c-format
msgid "Listeners"
-msgstr ""
+msgstr "Listeners"
#. Tag: entry
#: configuration.xml:433
#, no-c-format
msgid "flush"
-msgstr ""
+msgstr "flush"
#. Tag: entry
#: configuration.xml:435
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3FlushEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3FlushEventListener"
#. Tag: entry
#: configuration.xml:439
#, no-c-format
msgid "auto-flush"
-msgstr ""
+msgstr "auto-flush"
#. Tag: entry
#: configuration.xml:441
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3AutoFlushEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3AutoFlushEventListener"
#. Tag: entry
#: configuration.xml:445
#, no-c-format
msgid "delete"
-msgstr ""
+msgstr "supprimer"
#. Tag: entry
#: configuration.xml:447
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3DeleteEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3DeleteEventListener"
#. Tag: entry
#: configuration.xml:451
#, no-c-format
msgid "flush-entity"
-msgstr ""
+msgstr "flush-entity"
#. Tag: entry
#: configuration.xml:453
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3FlushEntityEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3FlushEntityEventListener"
#. Tag: entry
#: configuration.xml:457
#, no-c-format
msgid "merge"
-msgstr ""
+msgstr "fusionner"
#. Tag: entry
#: configuration.xml:459
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3MergeEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3MergeEventListener"
#. Tag: entry
#: configuration.xml:463
#, no-c-format
msgid "create"
-msgstr ""
+msgstr "créer"
#. Tag: entry
#: configuration.xml:465
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3PersistEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3PersistEventListener"
#. Tag: entry
#: configuration.xml:469
#, no-c-format
msgid "create-onflush"
-msgstr ""
+msgstr "create-onflush"
#. Tag: entry
#: configuration.xml:471
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3PersistOnFlushEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3PersistOnFlushEventListener"
#. Tag: entry
#: configuration.xml:475
#, no-c-format
msgid "save"
-msgstr ""
+msgstr "sauvegarder"
#. Tag: entry
#: configuration.xml:477
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3SaveEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3SaveEventListener"
#. Tag: entry
#: configuration.xml:481
#, no-c-format
msgid "save-update"
-msgstr ""
+msgstr "save-update (sauvegarde-mise à jour)"
#. Tag: entry
#: configuration.xml:483
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3SaveOrUpdateEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3SaveOrUpdateEventListener"
#. Tag: entry
#: configuration.xml:487 configuration.xml:494
#, no-c-format
msgid "pre-insert"
-msgstr ""
+msgstr "pre-insert (avant-insertion)"
#. Tag: entry
#: configuration.xml:489
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"org.hibernate.secure.JACCPreInsertEventListener, org.hibernate.valitator."
"event.ValidateEventListener"
msgstr ""
+"org.hibernate.secure.JACCPreInsertEventListener, org.hibernate.validator."
+"event.ValidateEventListener"
#. Tag: entry
#: configuration.xml:496
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"org.hibernate.secure.JACCPreUpdateEventListener, org.hibernate.valitator."
"event.ValidateEventListener"
msgstr ""
+"org.hibernate.secure.JACCPreUpdateEventListener, org.hibernate.validator."
+"event.ValidateEventListener"
#. Tag: entry
#: configuration.xml:501
#, no-c-format
msgid "pre-delete"
-msgstr ""
+msgstr "pre-delete (pré-suppression)"
#. Tag: entry
#: configuration.xml:503
#, no-c-format
msgid "org.hibernate.secure.JACCPreDeleteEventListener"
-msgstr ""
+msgstr "org.hibernate.secure.JACCPreDeleteEventListener"
#. Tag: entry
#: configuration.xml:507
#, no-c-format
msgid "pre-load"
-msgstr ""
+msgstr "pre-load (pré-chargement)"
#. Tag: entry
#: configuration.xml:509
#, no-c-format
msgid "org.hibernate.secure.JACCPreLoadEventListener"
-msgstr ""
+msgstr "org.hibernate.secure.JACCPreLoadEventListener"
#. Tag: entry
#: configuration.xml:513
#, no-c-format
msgid "post-delete"
-msgstr ""
+msgstr "post-delete (après-suppression)"
#. Tag: entry
#: configuration.xml:515
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3PostDeleteEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3PostDeleteEventListener"
#. Tag: entry
#: configuration.xml:519
#, no-c-format
msgid "post-insert"
-msgstr ""
+msgstr "post-insert (après-suppression)"
#. Tag: entry
#: configuration.xml:521
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3PostInsertEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3PostInsertEventListener"
#. Tag: entry
#: configuration.xml:525
#, no-c-format
msgid "post-load"
-msgstr ""
+msgstr "post-load (après-chargement)"
#. Tag: entry
#: configuration.xml:527
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3PostLoadEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3PostLoadEventListener"
#. Tag: entry
#: configuration.xml:531
#, no-c-format
msgid "post-update"
-msgstr ""
+msgstr "post-update (après-mise-à-jour)"
#. Tag: entry
#: configuration.xml:533
#, no-c-format
msgid "org.hibernate.ejb.event.EJB3PostUpdateEventListener"
-msgstr ""
+msgstr "org.hibernate.ejb.event.EJB3PostUpdateEventListener"
#. Tag: para
#: configuration.xml:539
@@ -925,21 +1188,27 @@
msgid ""
"Note that the JACC*EventListeners are removed if the security is not enabled."
msgstr ""
+"Remarquez que JACC*EventListeners sont retirés si la sécurité n'est pas "
+"activée."
#. Tag: para
#: configuration.xml:542
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"You can configure the event listeners either through the properties (see "
"<xref linkend=\"setup-configuration\"/>) or through the "
"<methodname>ejb3configuration.getEventListeners()</methodname> API."
msgstr ""
+"Vous pouvez configurer les listeners d'événement soit par les propriétés "
+"(voir <xref linkend=\"Setup_and_configuration-Configuration_and_bootstrapping"
+"\"/>) ou par l'API <methodname>ejb3configuration.getEventListeners()</"
+"methodname>."
#. Tag: title
#: configuration.xml:548
#, no-c-format
msgid "Obtaining an EntityManager in a Java SE environment"
-msgstr ""
+msgstr "Obtention d'un EntityManager dans un environnement Java SE."
#. Tag: para
#: configuration.xml:550
@@ -951,6 +1220,13 @@
"<classname>EntityManager</classname>s. The <classname>Persistence</"
"classname> class is bootstrap class to create an entity manager factory."
msgstr ""
+"Une usine de gestionnaire d'entités devrait être considérée comme le "
+"détenteur d'une configuration qui ne peut pas muter. Elle est déterminée de "
+"façon à pointer à une source de données et à mapper un ensemble d'entités "
+"bien défini. Il s'agit du point d'entrée pour créer et gérer les "
+"<classname>EntityManager</classname>s. La classe <classname>Persistence</"
+"classname> est une classe d'initialisation pour créer une usine de "
+"gestionnaires d'entités."
#. Tag: programlisting
#: configuration.xml:557
@@ -966,10 +1242,19 @@
"...\n"
"emf.close(); //close at application end"
msgstr ""
+"// 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"
#. Tag: para
#: configuration.xml:559
-#, no-c-format
+#, fuzzy, 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. "
@@ -978,6 +1263,13 @@
"wrapper on top of a session factory. Calls to the entityManagerFactory are "
"thread safe."
msgstr ""
+"Une usine de gestionnaires d'entités est normalement créée au moment de "
+"l'initialisation de l'application et est fermée en fin d'application. Sa "
+"création est un processus coûteux. Pour ceux qui sont familiers avec "
+"Hibernate, une usine de gestionnaires d'entités est un peu comme une usine "
+"de sessions. En fait, une usine de gestionnaires d'entités est une "
+"encapsulation au dessus d'une usine de session. Les appels à "
+"l'entityManagerFactory sont thread safe."
#. Tag: para
#: configuration.xml:566
@@ -990,22 +1282,29 @@
"between). You can see an entity manager as a small wrapper on top of an "
"Hibernate session."
msgstr ""
+"Grâce à l'EntityManagerFactory, vous pouvez extraire un gestionnaire "
+"d'entités prolongées. Le gestionnaire d'entités prolongées conserve le même "
+"contexte de persistance pour la durée de vie du gestionnaire d'entités : en "
+"d'autres mots, les entités sont encore gérées entre deux transactions (à "
+"moins que vous appeliez entityManager.clear() entre deux). Vous pouvez vous "
+"imaginer un gestionnaire d'entité comme une petite capsule chapeautant une "
+"session Hibernate."
#. Tag: para
#: configuration.xml:573
#, no-c-format
msgid "TODO explains emf.createEntityManager(Map)"
-msgstr ""
+msgstr "TODO explains emf.createEntityManager(Map)"
#. Tag: title
#: configuration.xml:577
#, no-c-format
msgid "Various"
-msgstr ""
+msgstr "Divers"
#. Tag: para
#: configuration.xml:579
-#, no-c-format
+#, fuzzy, 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 "
@@ -1013,3 +1312,9 @@
"performance cost. For more information on Hibernate Validator, please refer "
"to the Hibernate Annotations reference guide."
msgstr ""
+"Hibernate Entity Manager est fourni avec Hibernate Validator configuré prêt "
+"à l'emploi. Vous n'avez pas besoin de surcharger un événement vous-même. Si "
+"vous ne souhaitez pas utiliser les annotations Hibernate Validator dans "
+"votre modèle de domaine, il n'y aura pas de coût de performance. Pour plus "
+"d'informations sur Hibernate Validator, veuillez vous reporter au guide de "
+"référence Hibernate Annotations."
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/entitymanagerapi.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/entitymanagerapi.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/entitymanagerapi.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -25,9 +25,9 @@
#. Tag: title
#: entitymanagerapi.xml:31
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Entity states"
-msgstr ""
+msgstr "EntityManager"
#. Tag: para
#: entitymanagerapi.xml:33
@@ -209,9 +209,9 @@
#. Tag: title
#: entitymanagerapi.xml:124
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Executing queries"
-msgstr ""
+msgstr "Requêtes nommées"
#. Tag: para
#: entitymanagerapi.xml:126
@@ -375,9 +375,9 @@
#. Tag: title
#: entitymanagerapi.xml:178
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Pagination"
-msgstr ""
+msgstr "Définition"
#. Tag: para
#: entitymanagerapi.xml:180
@@ -408,9 +408,9 @@
#. Tag: title
#: entitymanagerapi.xml:191
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Externalizing named queries"
-msgstr ""
+msgstr "Requêtes nommées"
#. Tag: para
#: entitymanagerapi.xml:193
@@ -458,9 +458,9 @@
#. Tag: title
#: entitymanagerapi.xml:209
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Native queries"
-msgstr ""
+msgstr "Requête native"
#. Tag: para
#: entitymanagerapi.xml:211
@@ -537,7 +537,7 @@
#: entitymanagerapi.xml:251
#, no-c-format
msgid "Description"
-msgstr ""
+msgstr "Description"
#. Tag: entry
#: entitymanagerapi.xml:257
@@ -553,9 +553,9 @@
#. Tag: entry
#: entitymanagerapi.xml:264
-#, no-c-format
+#, fuzzy, no-c-format
msgid "org.hibernate.fetchSize"
-msgstr ""
+msgstr "hibernate.ejb.cfgfile"
#. Tag: entry
#: entitymanagerapi.xml:266
@@ -581,9 +581,9 @@
#. Tag: entry
#: entitymanagerapi.xml:278
-#, no-c-format
+#, fuzzy, no-c-format
msgid "org.hibernate.cacheable"
-msgstr ""
+msgstr "hibernate.ejb.cfgfile"
#. Tag: entry
#: entitymanagerapi.xml:280
@@ -595,9 +595,9 @@
#. Tag: entry
#: entitymanagerapi.xml:285 entitymanagerapi.xml:314
-#, no-c-format
+#, fuzzy, no-c-format
msgid "org.hibernate.cacheMode"
-msgstr ""
+msgstr "hibernate.archive.autodetection"
#. Tag: entry
#: entitymanagerapi.xml:287
@@ -607,9 +607,9 @@
#. Tag: entry
#: entitymanagerapi.xml:292
-#, no-c-format
+#, fuzzy, no-c-format
msgid "org.hibernate.cacheRegion"
-msgstr ""
+msgstr "hibernate.archive.autodetection"
#. Tag: entry
#: entitymanagerapi.xml:294
@@ -914,15 +914,15 @@
#. Tag: title
#: entitymanagerapi.xml:474
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Flush the persistence context"
-msgstr ""
+msgstr "Contexte de persistance"
#. Tag: title
#: entitymanagerapi.xml:477
-#, no-c-format
+#, fuzzy, no-c-format
msgid "In a transaction"
-msgstr ""
+msgstr "EntityTransaction"
#. Tag: para
#: entitymanagerapi.xml:479
@@ -1076,13 +1076,13 @@
#. Tag: title
#: entitymanagerapi.xml:564
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Outside a transaction"
-msgstr ""
+msgstr "EntityTransaction"
#. Tag: para
#: entitymanagerapi.xml:566
-#, no-c-format
+#, fuzzy, 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 "
@@ -1095,6 +1095,17 @@
"transaction: <literal>flush()</literal>, <literal>lock()</literal>, and "
"update/delete queries."
msgstr ""
+"Dans un contexte de persistance <literal>EXTENDED</literal>, toutes les "
+"opérations lecture-seule du gestionnaire d'entités peuvent être exécutées en "
+"dehors d'une transaction (<literal>find()</literal>, <literal>getReference()"
+"</literal>, <literal>refresh()</literal>, et les demandes de lecture). "
+"Certaines opérations de modifications peuvent être exécutées en dehors d'une "
+"transaction, mais elles sont mises en fil d'attente jusqu'à ce que le "
+"contexte de persistance rejoigne une transaction : c'est le cas de "
+"<literal>persist()</literal>, <literal><literal>merge()</literal></literal>, "
+"<literal>remove()</literal>. Certaines opérations ne peuvent pas être "
+"appelées en dehors d'une transaction : <literal>flush()</literal>, "
+"<literal>lock()</literal>, et les demandes de mise à jour/suppression."
#. Tag: title
#: entitymanagerapi.xml:581
@@ -1230,9 +1241,9 @@
#. Tag: title
#: entitymanagerapi.xml:659
-#, no-c-format
+#, fuzzy, no-c-format
msgid "Locking"
-msgstr ""
+msgstr "Packaging"
#. Tag: para
#: entitymanagerapi.xml:661
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/listeners.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/listeners.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/listeners.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,13 +21,13 @@
#: listeners.xml:28
#, no-c-format
msgid "Entity listeners and Callback methods"
-msgstr ""
+msgstr "Listeners d'entités et méthodes de callback"
#. Tag: title
#: listeners.xml:31
#, no-c-format
msgid "Definition"
-msgstr ""
+msgstr "Définition"
#. Tag: para
#: listeners.xml:33
@@ -38,6 +38,11 @@
"kinds of generic functionality, and extension of built-in functionality. The "
"EJB3 specification provides two related mechanisms for this purpose."
msgstr ""
+"Il est souvent utile que l'application puisse réagir face à certains "
+"événements qui ont lieu à l'intérieur du mécanisme de persistance. Cela "
+"permet l'implémentation de certaines fonctionnalités génériques, et "
+"l'extension de fonctionnalités intégrées. La spécification EJB3 fournit deux "
+"mécanismes liées à ce but."
#. Tag: para
#: listeners.xml:39
@@ -51,6 +56,15 @@
"constructor. An entity listener is defined by annotating the entity class "
"with the <literal>@EntityListeners</literal> annotation:"
msgstr ""
+"La méthode d'entités peut être désignée en tant que méthode d'entité pour "
+"recevoir une notification de la part d'un événement d'un cycle de vie "
+"d'entité particulier. Les méthodes de callback sont annotées par une "
+"annotation de callback. Vous pouvez également définir une classe de listener "
+"d'entité à utiliser à la place des méthodes callback qui sont définies "
+"directement à l'intérieur de la classe d'entité. Un listener d'entité est "
+"une classe stateless avec un constructeur no-arg. Un listener d'entité est "
+"déterminé par l'annotation de la classe d'entité par "
+"<literal>@EntityListeners</literal> :"
#. Tag: programlisting
#: listeners.xml:48
@@ -97,6 +111,46 @@
" }\n"
"}"
msgstr ""
+"@Entity \n"
+"@EntityListeners(class=Audit.class)\n"
+"public class Cat {\n"
+" @Id private Integer id;\n"
+" private String name;\n"
+" private Calendar dateOfBirth;\n"
+" @Transient private int age;\n"
+" private Date lastUpdate;\n"
+" //getters and setters\n"
+"\n"
+" /**\n"
+" * Set my transient property at load time based on a calculation,\n"
+" * note that a native Hibernate formula mapping is better for this "
+"purpose.\n"
+" */\n"
+" @PostLoad\n"
+" public void calculateAge() {\n"
+" Calendar birth = new GregorianCalendar();\n"
+" birth.setTime(dateOfBirth);\n"
+" Calendar now = new GregorianCalendar();\n"
+" now.setTime( new Date() );\n"
+" int adjust = 0;\n"
+" if ( now.get(Calendar.DAY_OF_YEAR) - birth.get(Calendar.DAY_OF_YEAR) "
+"< 0) {\n"
+" adjust = -1;\n"
+" }\n"
+" age = now.get(Calendar.YEAR) - birth.get(Calendar.YEAR) + adjust;\n"
+" }\n"
+"}\n"
+"\n"
+"public class LastUpdateListener {\n"
+" /**\n"
+" * automatic property set before any database persistence\n"
+" */\n"
+" @PreUpdate\n"
+" @PrePersist\n"
+" public void setLastUpdate(Cat o) {\n"
+" o.setLastUpdate( new Date() );\n"
+" }\n"
+"}"
#. Tag: para
#: listeners.xml:50
@@ -113,6 +167,17 @@
"Object</literal> type (allowing sharing of listeners accross several "
"entities.)"
msgstr ""
+"La même méthode de callback ou de listener d'entité peut être annotée avec "
+"plus d'une annotation de callback. Pour une entité donnée, vous ne pouvez "
+"pas avoir deux méthodes qui soient annotées par la même annotation de "
+"callback, qu'il s'agisse d'une méthode de callback ou d'une méthode de "
+"listener d'entités. Une méthode de callback est une méthode no-arg sans type "
+"de retour et sans nom arbitraire. Un listener d'entités possède la signature "
+"<code>void <METHOD>(Object)</code> pour laquelle Objects est du type "
+"d'entité (notez que le gestionnaire d'entités Hibernate a relaxé ses "
+"contraintes et permet <literal>Object</literal> de type <literal>java.lang."
+"Object</literal> (permettant ainsi le partage des listeners entre plusieurs "
+"entités.)"
#. Tag: para
#: listeners.xml:61
@@ -122,30 +187,33 @@
"current transaction, if any, must be rolled back. The following callbacks "
"are defined:"
msgstr ""
+"Une méthode de callback peut soulever une exception "
+"<classname>RuntimeException</classname>. La transaction courante, si elle "
+"existe, devra être rolled back. Les callbacks suivants sont définis :"
#. Tag: title
#: listeners.xml:66
#, no-c-format
msgid "Callbacks"
-msgstr ""
+msgstr "Callbacks"
#. Tag: entry
#: listeners.xml:75
#, no-c-format
msgid "Type"
-msgstr ""
+msgstr "Type"
#. Tag: entry
#: listeners.xml:77
#, no-c-format
msgid "Description"
-msgstr ""
+msgstr "Description"
#. Tag: entry
#: listeners.xml:83
#, no-c-format
msgid "@PrePersist"
-msgstr ""
+msgstr "@PrePersist"
#. Tag: entry
#: listeners.xml:85
@@ -154,12 +222,15 @@
"Executed before the entity manager persist operation is actually executed or "
"cascaded. This call is synchronous with the persist operation."
msgstr ""
+"Exécuté avant que l'opération persist (persister)du gestionnaire d'entités "
+"soit bien exécutée ou cascadée. Cet appel est synchrônisé avec l'opération "
+"persist."
#. Tag: entry
#: listeners.xml:91
#, no-c-format
msgid "@PreRemove"
-msgstr ""
+msgstr "@PreRemove"
#. Tag: entry
#: listeners.xml:93
@@ -168,12 +239,15 @@
"Executed before the entity manager remove operation is actually executed or "
"cascaded. This call is synchronous with the remove operation."
msgstr ""
+"Exécuté avant que l'opération remove (suppression) du gestionnaire d'entités "
+"ne soit exécutée ou cascadée. Cet appel est synchrônisé avec l'opération "
+"remove."
#. Tag: entry
#: listeners.xml:99
#, no-c-format
msgid "@PostPersist"
-msgstr ""
+msgstr "@PostPersist"
#. Tag: entry
#: listeners.xml:101
@@ -182,12 +256,15 @@
"Executed after the entity manager persist operation is actually executed or "
"cascaded. This call is invoked after the database INSERT is executed."
msgstr ""
+"Exécuté après que l'opération persist du gestionnaire d'entités ne soit "
+"exécuté ou cascadé. Cet appel est invoqué après que l'INSERT de la base de "
+"données ne soit exécuté."
#. Tag: entry
#: listeners.xml:107
#, no-c-format
msgid "@PostRemove"
-msgstr ""
+msgstr "@PostRemove"
#. Tag: entry
#: listeners.xml:109
@@ -196,36 +273,38 @@
"Executed after the entity manager remove operation is actually executed or "
"cascaded. This call is synchronous with the remove operation."
msgstr ""
+"Exécuté après que l'opération remove du gestionnaire d'entités ait été "
+"exécuté ou cascadé. Cet appel est synchrônisé avec l'opération remove,"
#. Tag: entry
#: listeners.xml:115
#, no-c-format
msgid "@PreUpdate"
-msgstr ""
+msgstr "@PreUpdate"
#. Tag: entry
#: listeners.xml:117
#, no-c-format
msgid "Executed before the database UPDATE operation."
-msgstr ""
+msgstr "Exécuté avant l'opération UPDATE de la base de données."
#. Tag: entry
#: listeners.xml:121
#, no-c-format
msgid "@PostUpdate"
-msgstr ""
+msgstr "@PostUpdate"
#. Tag: entry
#: listeners.xml:123
#, no-c-format
msgid "Executed after the database UPDATE operation."
-msgstr ""
+msgstr "Exécuté après l'opération UPDATE de la base de données."
#. Tag: entry
#: listeners.xml:127
#, no-c-format
msgid "@PostLoad"
-msgstr ""
+msgstr "@PostLoad"
#. Tag: entry
#: listeners.xml:129
@@ -234,6 +313,8 @@
"Eexecuted after an entity has been loaded into the current persistence "
"context or an entity has been refreshed."
msgstr ""
+"Exécuté après qu'une entité ait été chargée dans le contexte de la "
+"persistence courante ou qu'une entité ait été 'rafraichie'."
#. Tag: para
#: listeners.xml:136
@@ -242,12 +323,14 @@
"A callback method must not invoke <classname>EntityManager</classname> or "
"<classname>Query</classname> methods!"
msgstr ""
+"Une méthode callback ne doit pas invoquer de méthodes <classname> "
+"EntityManager</classname> ou <classname>Query</classname>!"
#. Tag: title
#: listeners.xml:142
#, no-c-format
msgid "Callbacks and listeners inheritance"
-msgstr ""
+msgstr "Hétitage de listeners et callbacks"
#. Tag: para
#: listeners.xml:144
@@ -258,12 +341,17 @@
"hierarchy. But you cannot define two listeners for the same event in the "
"same entity or the same entity listener."
msgstr ""
+"Vous pouvez définir plusieurs listeners d'entités à différents niveaux de la "
+"hiérarchie. Vous pouvez également définir plusieurs callbacks à différents "
+"niveaux de la hiérarchie. Mais vous ne pouvez pas définir deux listeners "
+"pour le même événement dans la même entité ou le même listener d'entité."
#. Tag: para
#: listeners.xml:149
#, no-c-format
msgid "When an event is raised, the listeners are executed in this order:"
msgstr ""
+"Quand un événement est soulevé, les listeners sont exécutés dans cet ordre :"
#. Tag: para
#: listeners.xml:154
@@ -272,30 +360,32 @@
"<literal>@EntityListeners</literal> for a given entity or superclass in the "
"array order"
msgstr ""
+"<literal>@EntityListeners</literal> pour une entité donnée ou pour une "
+"superclasse dans l'ordre de la matrice"
#. Tag: para
#: listeners.xml:159
#, no-c-format
msgid "Entity listeners for the superclasses (highest first)"
-msgstr ""
+msgstr "Listeners d'entités pour les superclasses (le plus haute d'abord)"
#. Tag: para
#: listeners.xml:163
#, no-c-format
msgid "Entity Listeners for the entity"
-msgstr ""
+msgstr "Listeners d'entités pour l'entité"
#. Tag: para
#: listeners.xml:167
#, no-c-format
msgid "Callbacks of the superclasses (highest first)"
-msgstr ""
+msgstr "Callbacks des superclasses (la plus haute d'abord)"
#. Tag: para
#: listeners.xml:171
#, no-c-format
msgid "Callbacks of the entity"
-msgstr ""
+msgstr "Callbacks de l'entité"
#. Tag: para
#: listeners.xml:175
@@ -305,12 +395,15 @@
"<literal>@ExcludeSuperclassListeners</literal>, all superclasses "
"<literal>@EntityListeners</literal> will then be ignored."
msgstr ""
+"Vous pouvez stopper l'héritage des listeners d'entités en utilisant "
+"<literal>@ExcludeSuperclassListeners</literal>, toutes les superclasses "
+"<literal>@EntityListeners</literal> seront alors ignorées."
#. Tag: title
#: listeners.xml:181
#, no-c-format
msgid "XML definition"
-msgstr ""
+msgstr "Définition XML"
#. Tag: para
#: listeners.xml:183
@@ -320,6 +413,9 @@
"descriptor. There is also an additional feature that can be useful: default "
"event listeners."
msgstr ""
+"La spécification EJB3 permet aux annotations de surcharger par le "
+"descripteur de déploiement EJB3. Il existe également une fonctionnalité "
+"supplémentaire qui peut être utile : les listeners d'événements par défaut."
#. Tag: programlisting
#: listeners.xml:187
@@ -356,6 +452,36 @@
" </entity>\n"
"</entity-mappings>"
msgstr ""
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"\n"
+"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
+" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
+"orm orm_1_0.xsd\"\n"
+" version=\"1.0\"\n"
+" >\n"
+" <persistence-unit-metadata>\n"
+" <persistence-unit-defaults>\n"
+" <entity-listeners>\n"
+" <entity-listener class=\"org.hibernate.ejb.test.pack."
+"defaultpar.IncrementListener\">\n"
+" <pre-persist method-name=\"increment\"/>\n"
+" </entity-listener>\n"
+" </entity-listeners>\n"
+" </persistence-unit-defaults>\n"
+" </persistence-unit-metadata>\n"
+" <package>org.hibernate.ejb.test.pack.defaultpar</package>\n"
+" <entity class=\"ApplicationServer\">\n"
+" <entity-listeners>\n"
+" <entity-listener class=\"OtherIncrementListener\">\n"
+" <pre-persist method-name=\"increment\"/>\n"
+" </entity-listener>\n"
+" </entity-listeners>\n"
+"\n"
+"\n"
+" <pre-persist method-name=\"calculate\"/>\n"
+" </entity>\n"
+"</entity-mappings>"
#. Tag: para
#: listeners.xml:189
@@ -366,10 +492,14 @@
"call. You can also define event on the entity itself to describe the "
"callbacks."
msgstr ""
+"Vous pouvez surcharger des listeners d'entités sur une entité donnée. Un "
+"listener d'entité correspond à une classe donnée et un ou plusieurs "
+"événements activent un appel de méthode donnée. Vous pouvez également "
+"définir un événement sur l'entité elle-même pour décrire les callbacks."
#. Tag: para
#: listeners.xml:194
-#, no-c-format
+#, fuzzy, 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 "
@@ -377,3 +507,8 @@
"listeners, you can use @ExcludeDefaultListeners (or <exclude-default-"
"listeners/>)."
msgstr ""
+"Enfin, mais non sans importance, vous pouvez définir des listeners d'entités "
+"par défaut qui s'appliqueront tout d'abord à la pile de listeners d'entités "
+"de toutes les entités mappées de l'unité de persistance donnée. Si vous ne "
+"souhaitez pas qu'une entité hérite les listeners par défaut, vous pouvez "
+"utiliser @ExcludeDefaultListeners (ou <exclude-default-listeners/>)."
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_ejbql.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_ejbql.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_ejbql.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,11 +21,11 @@
#: query_ejbql.xml:28
#, no-c-format
msgid "EJB-QL: The Object Query Language"
-msgstr ""
+msgstr "EJB-QL: Le langage de recherche d'objets"
#. Tag: para
#: query_ejbql.xml:30
-#, no-c-format
+#, fuzzy, 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 "
@@ -34,12 +34,19 @@
"queries. Portable EJB3 applications however should stick to EJB-QL or "
"similar vendor extensions are needed."
msgstr ""
+"EJB3-QL a été lourdement inspiré par HQL, le langage de recherche Hibernate "
+"natif. Ils sont donc tous deux très proches de SQL, mais portables et "
+"indépendants du schéma de la base de données. Les personnes qui connaissent "
+"bien HQL ne devraient pas rencontrer de problèmes avec EJB-QL. En fait, vous "
+"utilisez la même requête API pour les requêtes EJB-QL et HQL. Les "
+"applications EJB portables, cependant, doivent se cantonner aux extensions "
+"EJB-QL ou fournisseurs semblables, selon les besoins."
#. Tag: title
#: query_ejbql.xml:39
#, no-c-format
msgid "Case Sensitivity"
-msgstr ""
+msgstr "Respect de la casse "
#. Tag: para
#: query_ejbql.xml:41
@@ -51,6 +58,11 @@
"eg.FOO</literal> is not <literal>org.hibernate.eg.Foo</literal> and "
"<literal>foo.barSet</literal> is not <literal>foo.BARSET</literal>."
msgstr ""
+"Les requêtes sont sensibles à la casse, excepté pour les noms de classes et "
+"les propriétés Java. Donc, <literal>SeLeCT</literal> équivaut à "
+"<literal>sELEct</literal> ou à <literal>SELECT</literal> mais <literal>org."
+"hibernate.eg.FOO</literal> n'est pas <literal>org.hibernate.eg.Foo</literal> "
+"et <literal>foo.barSet</literal> n'est pas <literal>foo.BARSET</literal>."
#. Tag: para
#: query_ejbql.xml:48
@@ -60,28 +72,32 @@
"uppercase keywords more readable, but we find this convention ugly when "
"embedded in Java code."
msgstr ""
+"Ce manuel utilise des mots clé EJBQL en minuscule. Certains utilisateurs "
+"font leurs requêtes avec des mots clé en majuscules plus lisibles, mais nous "
+"trouvons que cette convention n'est pas très élégante quand elle est "
+"associée à l'encodage Java."
#. Tag: title
#: query_ejbql.xml:54
#, no-c-format
msgid "The from clause"
-msgstr ""
+msgstr "La clause \"from\""
#. Tag: para
#: query_ejbql.xml:56
#, no-c-format
msgid "The simplest possible EJB-QL query is of the form:"
-msgstr ""
+msgstr "La requête EJB-QL la plus simple est de la forme :"
#. Tag: programlisting
#: query_ejbql.xml:58
#, no-c-format
msgid "select c from eg.Cat c"
-msgstr ""
+msgstr "sélectionner c de Cat c"
#. Tag: para
#: query_ejbql.xml:60
-#, no-c-format
+#, fuzzy, 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 "
@@ -89,12 +105,18 @@
"unqualified class name (<literal>@Entity</literal>). So we almost always "
"just write:"
msgstr ""
+"ce qui retourne tout simplement toutes les instances de la classe "
+"<literal>eg.Cat</literal>. A la différence d'HQL, la clause sélectionnée "
+"n'est pas optionnelle dans EJB-QL. Nous n'avons pas besoin normalement de "
+"qualifier le nom de classe, puisque le nom de l'entité est par défaut le nom "
+"de la classe non qualifiée (<literal>@Entity</literal>). Donc, on peut "
+"presque toujours écrire :"
#. Tag: programlisting
#: query_ejbql.xml:66
#, no-c-format
msgid "select c from Cat c"
-msgstr ""
+msgstr "sélectionner c de Cat c"
#. Tag: para
#: query_ejbql.xml:68
@@ -104,12 +126,15 @@
"literal> keywork is optional. An alias allows you to refer to <literal>Cat</"
"literal> in other parts of the query."
msgstr ""
+"Comme vous avez pu le noter, on peut assigner des alias aux classes, le mot "
+"clé <literal>as</literal> est optionnel. Un alias vous permet de vous "
+"référer à <literal>Cat</literal> dans d'autres parties de la requête."
#. Tag: programlisting
#: query_ejbql.xml:72 query_ejbql.xml:250
#, no-c-format
msgid "select cat from Cat as cat"
-msgstr ""
+msgstr "select cat from Cat as cat"
#. Tag: para
#: query_ejbql.xml:74
@@ -118,12 +143,14 @@
"Multiple classes may appear, resulting in a cartesian product or \"cross\" "
"join."
msgstr ""
+"Des classes multiples peuvent apparaître, résultant en un produit cartésien "
+"ou \"cross\" join."
#. Tag: programlisting
#: query_ejbql.xml:77
#, no-c-format
msgid "select form, param from Formula as form, Parameter as param"
-msgstr ""
+msgstr "select form, param from Formula as form, Parameter as param"
#. Tag: para
#: query_ejbql.xml:79
@@ -133,12 +160,15 @@
"lowercase, consistent with Java naming standards for local variables (eg. "
"<literal>domesticCat</literal>)."
msgstr ""
+"Il est considéré de bon usage de nommer les alias de requêtes en utilisant "
+"une initiale en minuscules. consistante avec les standards de nommage Java "
+"pour les locales variables (par exemple <literal>domesticCat</literal>)."
#. Tag: title
#: query_ejbql.xml:85
#, no-c-format
msgid "Associations and joins"
-msgstr ""
+msgstr "Associations et jointures"
#. Tag: para
#: query_ejbql.xml:87
@@ -147,6 +177,8 @@
"You may also assign aliases to associated entities, or even to elements of a "
"collection of values, using a <literal>join</literal>."
msgstr ""
+"Vous pouvez aussi assigner des alias à des entités associées, ou même à des "
+"éléments d'une collection de valeurs, utilisant un <literal>join</literal>."
#. Tag: programlisting
#: query_ejbql.xml:91
@@ -156,30 +188,33 @@
" inner join cat.mate as mate\n"
" left outer join cat.kittens as kitten"
msgstr ""
+"select cat, mate, kitten from Cat as cat \n"
+" inner join cat.mate as mate\n"
+" left outer join cat.kittens as kitten"
#. Tag: programlisting
#: query_ejbql.xml:93
#, no-c-format
msgid "select cat from Cat as cat left join cat.mate.kittens as kittens"
-msgstr ""
+msgstr "select cat from Cat as cat left join cat.mate.kittens as kittens"
#. Tag: para
#: query_ejbql.xml:95
#, no-c-format
msgid "The supported join types are borrowed from ANSI SQL"
-msgstr ""
+msgstr "Les types de jointure proviennent d'ANSI SQL"
#. Tag: literal
#: query_ejbql.xml:99
#, no-c-format
msgid "inner join"
-msgstr ""
+msgstr "inner join"
#. Tag: literal
#: query_ejbql.xml:103
#, no-c-format
msgid "left outer join"
-msgstr ""
+msgstr "left outer join"
#. Tag: para
#: query_ejbql.xml:107
@@ -188,6 +223,8 @@
"The <literal>inner join</literal>, <literal>left outer join</literal> "
"constructs may be abbreviated."
msgstr ""
+"Les constructions <literal>inner join</literal>, et <literal>left outer "
+"join</literal> peuvent être abrégées."
#. Tag: programlisting
#: query_ejbql.xml:110
@@ -197,6 +234,9 @@
" join cat.mate as mate\n"
" left join cat.kittens as kitten"
msgstr ""
+"select cat, mate, kitten from Cat as cat \n"
+" join cat.mate as mate\n"
+" left join cat.kittens as kitten"
#. Tag: para
#: query_ejbql.xml:112
@@ -209,6 +249,12 @@
"metadata. See the Performance chapter of the Hibernate reference guide for "
"more information."
msgstr ""
+"De plus, une jointure \"fetch\" vous permet des associations ou des "
+"collections de valeurs à initialiser avec leurs objet-parents, en utilisant "
+"une simple sélection. Cela est particulièrement utile dans le cas d'une "
+"collection. Cela surcharge les options de fetching efficacement pour les "
+"métadonnées de mappage de collections et d'associations. Voir le chapitre "
+"Performance du Guide de référence Hibernate pour davantage d'informations."
#. Tag: programlisting
#: query_ejbql.xml:119
@@ -218,6 +264,9 @@
" inner join fetch cat.mate\n"
" left join fetch cat.kittens"
msgstr ""
+"select cat from Cat as cat \n"
+" inner join fetch cat.mate\n"
+" left join fetch cat.kittens"
#. Tag: para
#: query_ejbql.xml:121
@@ -230,6 +279,13 @@
"object. The only reason we might need an alias is if we are recursively join "
"fetching a further collection:"
msgstr ""
+"Un join fetch n'a pas normalement besoin d'assigner un alias, car les objets "
+"associés ne devraient pas être utilisés dans la clause <literal>where</"
+"literal> (ou n'importe quelle autre clause d'ailleurs). Aussi, les objets "
+"associés ne sont pas retournés directement dans les résultats de requête. A "
+"la place, ils peuvent être accédés par l'objet parent. La seule raison pour "
+"laquelle on pourrait avoir besoin d'un alias, c'est si on 'join fetch' une "
+"collection plus éloignée de façon récursive :"
#. Tag: programlisting
#: query_ejbql.xml:128
@@ -240,10 +296,14 @@
" left join fetch cat.kittens child\n"
" left join fetch child.kittens"
msgstr ""
+"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"
#. Tag: para
#: query_ejbql.xml:130
-#, no-c-format
+#, fuzzy, 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>. "
@@ -255,6 +315,18 @@
"roles also sometimes gives unexpected results for bag mappings, so be "
"careful about how you formulate your queries in this case."
msgstr ""
+"Notez bien que la construction <literal>fetch</literal> peut ne pas être "
+"utilisé pour des requêtes appelées en utilisant <literal>scroll()</literal> "
+"ou <literal>iterate()</literal>. Et <literal>fetch</literal> ne devrait pas "
+"être utilisé avec <literal>setMaxResults()</literal> ou "
+"<literal>setFirstResult()</literal>. Il est possible de créer un produit "
+"cartésien en allant chercher (join fetching) plus d'une collection en "
+"jointure dans une requête (comme dans l'exemple ci-dessus). Veillez à ce que "
+"le résultat de ce produit ne soit pas plus élevé que ce que vous espériez. "
+"La récupération en jointure (join fetching) de plusieurs rôles de collection "
+"peut aussi parfois vous donner des résultats innatendus pour les mappages de "
+"bag, donc faîtes bien attention à la manière dont vous allez formuler vos "
+"demandes dans ce cas."
#. Tag: para
#: query_ejbql.xml:140
@@ -264,6 +336,9 @@
"elaborate. The word \"sometimes\" should never appear in any technical "
"documentation."
msgstr ""
+"TODO: le dernier énoncé est inutile et typique de l'état d'esprit d'un "
+"développeur, veuillez élaborer. Le mot \"sometimes\" (parfois) ne devrait "
+"jamais apparaître dans un document technique."
#. Tag: para
#: query_ejbql.xml:145
@@ -274,26 +349,33 @@
"properties immediately (in the first query) using <literal>fetch all "
"properties</literal>. This is Hibernate specific option:"
msgstr ""
+"Si vous utilisez le lazy fetching au niveau-propriété (avec "
+"l'instrumentation bytecode), il est possible de forcer Hibernate à récupérer "
+"les propriétés lazy immédiatement (dans la première demande) en utilisant "
+"<literal>fetch all properties</literal>. Il s'agit d'une option spécifique "
+"d'Hibernate :"
#. Tag: programlisting
#: query_ejbql.xml:150
#, no-c-format
msgid "select doc from Document doc fetch all properties order by doc.name"
-msgstr ""
+msgstr "select doc from Document doc fetch all properties order by doc.name"
#. Tag: programlisting
#: query_ejbql.xml:152
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select doc from Document doc fetch all properties where lower(doc.name) like "
"'%cats%'"
msgstr ""
+"select doc from Document doc fetch all properties where lower(doc.name) like "
+"'%cats%'"
#. Tag: title
#: query_ejbql.xml:156
#, no-c-format
msgid "The select clause"
-msgstr ""
+msgstr "La clause \"select\""
#. Tag: para
#: query_ejbql.xml:158
@@ -302,6 +384,8 @@
"The <literal>select</literal> clause picks which objects and properties to "
"return in the query result set. Consider:"
msgstr ""
+"La clause <literal>select</literal> choisit les objets et les propriétés à "
+"retourner dans le result set de la recherche. Veuillez considérer :"
#. Tag: programlisting
#: query_ejbql.xml:161
@@ -311,6 +395,9 @@
"from Cat as cat \n"
" inner join cat.mate as mate"
msgstr ""
+"select mate \n"
+"from Cat as cat \n"
+" inner join cat.mate as mate"
#. Tag: para
#: query_ejbql.xml:163
@@ -319,12 +406,15 @@
"The query will select <literal>mate</literal>s of other <literal>Cat</"
"literal>s. Actually, you may express this query more compactly as:"
msgstr ""
+"La requête va sélectionner les <literal>mate</literal>s d'autres "
+"<literal>Cat</literal>s. En fait, vous pouvez exprimer cette requête de "
+"façon plus compacte ainsi :"
#. Tag: programlisting
#: query_ejbql.xml:167
#, no-c-format
msgid "select cat.mate from Cat cat"
-msgstr ""
+msgstr "select cat.mate from Cat cat"
#. Tag: para
#: query_ejbql.xml:169
@@ -333,20 +423,24 @@
"Queries may return properties of any value type including properties of "
"component type:"
msgstr ""
+"Les requêtes peuvent retourner des propriétés attachées à n'importe quel "
+"type de valeur, y compris des propriétés de type de composant :"
#. Tag: programlisting
#: query_ejbql.xml:172
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select cat.name from DomesticCat cat\n"
"where cat.name like 'fri%'"
msgstr ""
+"select cat.name from DomesticCat cat\n"
+"where cat.name like 'fri%'"
#. Tag: programlisting
#: query_ejbql.xml:174
#, no-c-format
msgid "select cust.name.firstName from Customer as cust"
-msgstr ""
+msgstr "select cust.name.firstName from Customer as cust"
#. Tag: para
#: query_ejbql.xml:176
@@ -355,6 +449,8 @@
"Queries may return multiple objects and/or properties as an array of type "
"<literal>Object[]</literal>,"
msgstr ""
+"Les requêtes peuvent retourner des objets multiples et/ou des propriétés "
+"sous forme d'un ensemble de types <literal>Object[]</literal>,"
#. Tag: programlisting
#: query_ejbql.xml:179
@@ -365,12 +461,16 @@
" inner join mother.mate as mate\n"
" left outer join mother.kittens as offspr"
msgstr ""
+"select mother, offspr, mate.name \n"
+"from DomesticCat as mother\n"
+" inner join mother.mate as mate\n"
+" left outer join mother.kittens as offspr"
#. Tag: para
#: query_ejbql.xml:181
#, no-c-format
msgid "or as a <literal>List</literal> (HQL specific feature)"
-msgstr ""
+msgstr "ou en tant que <literal>List</literal> (fonctionnalité spécifique HQL)"
#. Tag: programlisting
#: query_ejbql.xml:183
@@ -381,12 +481,16 @@
" inner join mother.mate as mate\n"
" left outer join mother.kittens as offspr"
msgstr ""
+"select new list(mother, offspr, mate.name)\n"
+"from DomesticCat as mother\n"
+" inner join mother.mate as mate\n"
+" left outer join mother.kittens as offspr"
#. Tag: para
#: query_ejbql.xml:185
#, no-c-format
msgid "or as an actual typesafe Java object,"
-msgstr ""
+msgstr "ou en tant qu'objet Java typesafe,"
#. Tag: programlisting
#: query_ejbql.xml:187
@@ -397,6 +501,10 @@
" join mother.mate as mate\n"
" left join mother.kittens as offspr"
msgstr ""
+"select new Family(mother, mate, offspr)\n"
+"from DomesticCat as mother\n"
+" join mother.mate as mate\n"
+" left join mother.kittens as offspr"
#. Tag: para
#: query_ejbql.xml:189
@@ -405,6 +513,8 @@
"assuming that the class <literal>Family</literal> has an appropriate "
"constructor."
msgstr ""
+"en assumant que la classe <literal>Family</literal> possède un constructeur "
+"qui convient."
#. Tag: para
#: query_ejbql.xml:192
@@ -412,6 +522,8 @@
msgid ""
"You may assign aliases to selected expressions using <literal>as</literal>:"
msgstr ""
+"Vous pouvez assigner des alias pour sélectionner des expressions avec "
+"<literal>as</literal> :"
#. Tag: programlisting
#: query_ejbql.xml:195
@@ -420,6 +532,8 @@
"select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
"from Cat cat"
msgstr ""
+"select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n\n"
+"from Cat cat"
#. Tag: para
#: query_ejbql.xml:197
@@ -428,6 +542,8 @@
"This is most useful when used together with <literal>select new map</"
"literal> (HQL specific feature):"
msgstr ""
+"C'est très utile en combinaison avec <literal>select new map</literal> "
+"(fonctionnalité spécifique HQL) :"
#. Tag: programlisting
#: query_ejbql.xml:200
@@ -437,6 +553,9 @@
"n )\n"
"from Cat cat"
msgstr ""
+"select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as "
+"n )\n"
+"from Cat cat"
#. Tag: para
#: query_ejbql.xml:202
@@ -444,12 +563,14 @@
msgid ""
"This query returns a <literal>Map</literal> from aliases to selected values."
msgstr ""
+"Cette requête retourne un <literal>Map</literal> à partir des alias liés à "
+"des valeurs sélectionnées."
#. Tag: title
#: query_ejbql.xml:207
#, no-c-format
msgid "Aggregate functions"
-msgstr ""
+msgstr "Fonctions agrégées"
#. Tag: para
#: query_ejbql.xml:209
@@ -457,6 +578,8 @@
msgid ""
"HQL queries may even return the results of aggregate functions on properties:"
msgstr ""
+"Les requêtes HQL peuvent même retourner les résultats de fonctionnalités "
+"agrégées sur les propriétés :"
#. Tag: programlisting
#: query_ejbql.xml:212
@@ -465,12 +588,14 @@
"select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
"from Cat cat"
msgstr ""
+"select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)\n"
+"from Cat cat"
#. Tag: para
#: query_ejbql.xml:214
#, no-c-format
msgid "The supported aggregate functions are"
-msgstr ""
+msgstr "Les fonctions agrégées prises en charge sont les suivantes "
#. Tag: literal
#: query_ejbql.xml:218
@@ -478,18 +603,19 @@
msgid ""
"avg(...), avg(distinct ...), sum(...), sum(distinct ...), min(...), max(...)"
msgstr ""
+"avg(...), avg(distinct ...), sum(...), sum(distinct ...), min(...), max(...)"
#. Tag: literal
#: query_ejbql.xml:223
#, no-c-format
msgid "count(*)"
-msgstr ""
+msgstr "count(*)"
#. Tag: literal
#: query_ejbql.xml:227
#, no-c-format
msgid "count(...), count(distinct ...), count(all...)"
-msgstr ""
+msgstr "count(...), count(distinct ...), count(all...)"
#. Tag: para
#: query_ejbql.xml:232
@@ -499,6 +625,9 @@
"functions in the select clause (dpending on configured dialect, HQL specific "
"feature):"
msgstr ""
+"Vous pouvez utiliser la concaténation, les opérateurs arithmétiques, et les "
+"fonctionnalités SQL reconnues dans la clause sélectionnée (suivant le "
+"dialecte configuré, ou la fonctionnalité spécifique HQL) :"
#. Tag: programlisting
#: query_ejbql.xml:235
@@ -509,12 +638,18 @@
" join cat.kittens kitten\n"
"group by cat.id, cat.weight"
msgstr ""
+"select cat.weight + sum(kitten.weight) \n"
+"from Cat cat \n"
+" join cat.kittens kitten\n"
+"group by cat.id, cat.weight"
#. Tag: programlisting
#: query_ejbql.xml:237
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select firstName||' '||initial||' '||upper(lastName) from Person"
msgstr ""
+"dddselect firstName||' '||initial||' '||upper(lastName) from "
+"Person"
#. Tag: para
#: query_ejbql.xml:239
@@ -523,6 +658,8 @@
"The <literal>distinct</literal> and <literal>all</literal> keywords may be "
"used and have the same semantics as in SQL."
msgstr ""
+"Les mots clé <literal>distinct</literal> et <literal>all</literal> peuvent "
+"être utilisés et avoir la même sémantique que dans SQL."
#. Tag: programlisting
#: query_ejbql.xml:242
@@ -532,18 +669,21 @@
"\n"
"select count(distinct cat.name), count(cat) from Cat cat"
msgstr ""
+"select distinct cat.name from Cat cat\n"
+"\n"
+"select count(distinct cat.name), count(cat) from Cat cat"
#. Tag: title
#: query_ejbql.xml:246
#, no-c-format
msgid "Polymorphic queries"
-msgstr ""
+msgstr "Requêtes polymorphiques"
#. Tag: para
#: query_ejbql.xml:248
#, no-c-format
msgid "A query like:"
-msgstr ""
+msgstr "Une requête comme :"
#. Tag: para
#: query_ejbql.xml:252
@@ -557,12 +697,20 @@
"class or implement the interface. The following query would return all "
"persistent objects:"
msgstr ""
+"retourne des instances non seulement de <literal>Cat</literal>, mais aussi "
+"de toutes les sousclasses comme <literal>DomesticCat</literal>. Les requêtes "
+"Hibernate peuvent nommer <emphasis>n'importe quelle</emphasis>classe Java ou "
+"interface de la clause <literal>from</literal> (les requêtes portable EJB-QL "
+"ne doivent uniquement nommer les entités mappées). La requête va retourner "
+"des instances de toutes les classes persistantes qui prolongent cette classe "
+"ou qui implémentent l'interface. La requête suivante devrait retourner tous "
+"les objets persistants :"
#. Tag: programlisting
#: query_ejbql.xml:260
#, no-c-format
msgid "from java.lang.Object o // HQL only"
-msgstr ""
+msgstr "de java.lang.Object o // HQL seulement"
#. Tag: para
#: query_ejbql.xml:262
@@ -571,28 +719,35 @@
"The interface <literal>Named</literal> might be implemented by various "
"persistent classes:"
msgstr ""
+"L'interface <literal>Named</literal> peut être implémentée par des classes "
+"persistantes diverses :"
#. Tag: programlisting
#: query_ejbql.xml:265
#, no-c-format
msgid "from Named n, Named m where n.name = m.name // HQL only"
-msgstr ""
+msgstr "from Named n, Named m where n.name = m.name // HQL only"
#. Tag: para
#: query_ejbql.xml:267
-#, no-c-format
+#, fuzzy, 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 ""
+"Notez que ces deux dernières requêtes auront besoin de plus d'un SQL "
+"<literal>SELECT</literal>. Cela signifie que la clause <literal>order by</"
+"literal> n'ordonne pas correctement le result set dans sa totalité. (Cela "
+"signifie également que vous ne pouvez pas appeler ces requêtes en utilisant "
+"<literal>Query.scroll()</literal>.)"
#. Tag: title
#: query_ejbql.xml:274
-#, fuzzy, no-c-format
+#, no-c-format
msgid "The where clause"
-msgstr "La \"where-clause\" est également optionnelle."
+msgstr "La clause \"where\""
#. Tag: para
#: query_ejbql.xml:276
@@ -601,18 +756,22 @@
"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 ""
+"La clause <literal>where</literal> vous permet de réduire la liste des "
+"instances retournées. S'il n'existe pas d'alias, vous pouvez vous référer "
+"aux propriétés par leur nom :"
#. Tag: programlisting
#: query_ejbql.xml:280
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select cat from Cat cat where cat.name='Fritz'"
-msgstr ""
+msgstr "select cat from Cat cat where cat.name='Fritz'"
#. Tag: para
#: query_ejbql.xml:282
-#, no-c-format
+#, fuzzy, no-c-format
msgid "returns instances of <literal>Cat</literal> named 'Fritz'."
msgstr ""
+"retourne les instances de <literal>Cat</literal> nommées 'Fritz'."
#. Tag: programlisting
#: query_ejbql.xml:284
@@ -622,6 +781,9 @@
"from Foo foo, Bar bar\n"
"where foo.startDate = bar.date"
msgstr ""
+"select foo \n"
+"from Foo foo, Bar bar\n"
+"where foo.startDate = bar.date"
#. Tag: para
#: query_ejbql.xml:286
@@ -633,12 +795,17 @@
"<literal>Foo</literal>. Compound path expressions make the <literal>where</"
"literal> clause extremely powerful. Consider:"
msgstr ""
+"retournera toutes les instances de <literal>Foo</literal> pour lesquelles il "
+"existe une instance de <literal>bar</literal> avec une propriété "
+"<literal>date</literal> égale à la propriété <literal>startDate</literal> de "
+"<literal>Foo</literal>. Les expressions de chemins d'accès composés rendent "
+"la clause <literal>where</literal> extrêmement puissante. Considérez :"
#. Tag: programlisting
#: query_ejbql.xml:292
#, no-c-format
msgid "select cat from Cat cat where cat.mate.name is not null"
-msgstr ""
+msgstr "sélectionnez cat de Cat quand cat.mate.name n'est pas null"
#. Tag: para
#: query_ejbql.xml:294
@@ -647,6 +814,8 @@
"This query translates to an SQL query with a table (inner) join. If you were "
"to write something like"
msgstr ""
+"Cette requête se traduit en une requête SQL liée à une jointure (interne) de "
+"table. Si vous étiez amené à écrire quelquechose comme cela "
#. Tag: programlisting
#: query_ejbql.xml:297
@@ -655,6 +824,8 @@
"select foo from Foo foo \n"
"where foo.bar.baz.customer.address.city is not null"
msgstr ""
+"select foo from Foo foo \n"
+"where foo.bar.baz.customer.address.city is not null"
#. Tag: para
#: query_ejbql.xml:299
@@ -662,6 +833,8 @@
msgid ""
"you would end up with a query that would require four table joins in SQL."
msgstr ""
+"vous devriez vous retrouver avec une requête qui aurait besoin de quatre "
+"jointures de table dans SQL."
#. Tag: para
#: query_ejbql.xml:302
@@ -670,12 +843,14 @@
"The <literal>=</literal> operator may be used to compare not only "
"properties, but also instances:"
msgstr ""
+"L'opérateur <literal>=</literal> peut être utilisé pour comparer des "
+"propriétés, mais aussi pour comparer des instances :"
#. Tag: programlisting
#: query_ejbql.xml:305
#, no-c-format
msgid "select cat, rival from Cat cat, Cat rival where cat.mate = rival.mate"
-msgstr ""
+msgstr "select cat, rival from Cat cat, Cat rival where cat.mate = rival.mate"
#. Tag: programlisting
#: query_ejbql.xml:307
@@ -685,6 +860,9 @@
"from Cat cat, Cat mate\n"
"where cat.mate = mate"
msgstr ""
+"select cat, mate \n"
+"from Cat cat, Cat mate\n"
+"where cat.mate = mate"
#. Tag: para
#: query_ejbql.xml:309
@@ -694,6 +872,10 @@
"reference the unique identifier of an object. (You may also use its mapped "
"identifer property name.). Note that this keyword is specific to HQL."
msgstr ""
+"La propriété spéciale (minuscules) <literal>id</literal> peut être utilisée "
+"pour référencer l'identifiant unique d'un objet. (Vous pouvez aussi utiliser "
+"son nom de propriété d'identifiant mappé). Notez bien que ce mot clé est "
+"spécifique à HQL."
#. Tag: programlisting
#: query_ejbql.xml:313
@@ -703,12 +885,16 @@
"\n"
"select cat from Cat as cat where cat.mate.id = 69"
msgstr ""
+"select cat from Cat as cat where cat.id = 123\n"
+"\n"
+"select cat from Cat as cat where cat.mate.id = 69"
#. Tag: para
#: query_ejbql.xml:315
#, no-c-format
msgid "The second query is efficient. No table join is required!"
msgstr ""
+"La seconde requête est efficace. Aucune jointure de table n'est requise!"
#. Tag: para
#: query_ejbql.xml:317
@@ -718,30 +904,40 @@
"<literal>Person</literal> has a composite identifier consisting of "
"<literal>country</literal> and <literal>medicareNumber</literal>."
msgstr ""
+"On peut également utiliser des propriétés d'identifiants composites. "
+"Supposons que <literal>Person</literal> a un identifiant composite constitué "
+"de <literal>country</literal> et de <literal>medicareNumber</literal>."
#. Tag: programlisting
#: query_ejbql.xml:321
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select person from bank.Person person\n"
"where person.id.country = 'AU' \n"
" and person.id.medicareNumber = 123456"
msgstr ""
+"select person from bank.Person person\n"
+"where person.id.country = 'AU' \n"
+" and person.id.medicareNumber = 123456"
#. Tag: programlisting
#: query_ejbql.xml:323
-#, no-c-format
+#, fuzzy, 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 ""
+"select account from bank.Account account\n"
+"where account.owner.id.country = 'AU' \n"
+" and account.owner.id.medicareNumber = 123456"
#. Tag: para
#: query_ejbql.xml:325
#, no-c-format
msgid "Once again, the second query requires no table join."
msgstr ""
+"Une fois de plus, le seconde requête ne requiert pas de jointure de table."
#. Tag: para
#: query_ejbql.xml:327
@@ -752,12 +948,16 @@
"Java class name embedded in the where clause will be translated to its "
"discriminator value. Once again, this is specific to HQL."
msgstr ""
+"De même, la propriété spéciale <literal>class</literal> accède à la valeur "
+"de discriminateur d'une instance dans le cas de persistance polymorphique. "
+"Un nom de classe Java intégré dans une clause where sera traduit par sa "
+"valeur de discriminateur. Une fois de plus, cela est spécifique à HQL."
#. Tag: programlisting
#: query_ejbql.xml:332
#, no-c-format
msgid "select cat from Cat cat where cat.class = DomesticCat"
-msgstr ""
+msgstr "select cat from Cat cat where cat.class = DomesticCat"
#. Tag: para
#: query_ejbql.xml:334
@@ -769,6 +969,12 @@
"component). For example, if <literal>store.owner</literal> is an entity with "
"a component <literal>address</literal>"
msgstr ""
+"Vous pouvez également spécifier des propriétés de composants ou de types "
+"d'utilisateurs composites (et de composants de composants, etc.). Ne pas "
+"essayer d'utiliser une expression-chemin d'accès qui se termine par une "
+"propriété de type de composant (à l'opposé d'une propriété de composant). "
+"Ainsi, si <literal>store.owner</literal> est une entité comprenant un "
+"composant <literal>address</literal>"
#. Tag: programlisting
#: query_ejbql.xml:340
@@ -777,6 +983,8 @@
"store.owner.address.city // okay\n"
"store.owner.address // error!"
msgstr ""
+"store.owner.address.city // okay\n"
+"store.owner.address // error!"
#. Tag: para
#: query_ejbql.xml:342
@@ -788,14 +996,21 @@
"<literal><any></literal>). <literal>Any</literal> is specific to "
"Hibernate"
msgstr ""
+"Un type \"any\" contient les propriétés spéciales <literal>id</literal> et "
+"<literal>class</literal>, ce qui nous permet d'exprimer une jointure de la "
+"manière suivante (où <literal>AuditLog.item</literal> est une propriété "
+"mappée avec <literal><any></literal>). <literal>Any</literal> est "
+"spécifique à Hibernate"
#. Tag: programlisting
#: query_ejbql.xml:348
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"from AuditLog log, Payment payment \n"
"where log.item.class = 'Payment' and log.item.id = payment.id"
msgstr ""
+"from AuditLog log, Payment payment \n"
+"where log.item.class = 'Payment' and log.item.id = payment.id"
#. Tag: para
#: query_ejbql.xml:350
@@ -805,12 +1020,15 @@
"literal> would refer to the values of completely different database columns "
"in the above query."
msgstr ""
+"Notez que <literal>log.item.class</literal> et <literal>payment.class</"
+"literal> faisaient référence aux valeurs de colonnes de bases de données "
+"complètement différentes dans la requête ci-dessus."
#. Tag: title
#: query_ejbql.xml:356
#, no-c-format
msgid "Expressions"
-msgstr ""
+msgstr "Expressions"
#. Tag: para
#: query_ejbql.xml:358
@@ -819,12 +1037,14 @@
"Expressions allowed in the <literal>where</literal> clause include most of "
"the kind of things you could write in SQL:"
msgstr ""
+"Expressions autorisées dans la clause <literal>where</literal> incluent la "
+"plupart des choses que vous pouvez écrire en SQL :"
#. Tag: para
#: query_ejbql.xml:363
#, no-c-format
msgid "mathematical operators <literal>+, -, *, /</literal>"
-msgstr ""
+msgstr "mathematical operators <literal>+, -, *, /</literal>"
#. Tag: para
#: query_ejbql.xml:367
@@ -833,18 +1053,20 @@
"binary comparison operators <literal>=, >=, <=, <>, !=, like</"
"literal>"
msgstr ""
+"opérateurs de comparaison binaire <literal>=, >=, <=, <>, !=, "
+"like</literal>"
#. Tag: para
#: query_ejbql.xml:372
#, no-c-format
msgid "logical operations <literal>and, or, not</literal>"
-msgstr ""
+msgstr "opérations logiques <literal>and, or, not</literal>"
#. Tag: para
#: query_ejbql.xml:376
#, no-c-format
msgid "Parentheses <literal>( )</literal>, indicating grouping"
-msgstr ""
+msgstr "Parenthèses <literal>( )</literal>, indiquant les groupements"
#. Tag: para
#: query_ejbql.xml:380
@@ -855,6 +1077,10 @@
"<literal>is empty</literal>, <literal>is not empty</literal>, "
"<literal>member of</literal> and <literal>not member of</literal>"
msgstr ""
+"<literal>in</literal>, <literal>not in</literal>, <literal>between</"
+"literal>, <literal>is null</literal>, <literal>is not null</literal>, "
+"<literal>is empty</literal>, <literal>is not empty</literal>, "
+"<literal>member of</literal> et <literal>not member of</literal>"
#. Tag: para
#: query_ejbql.xml:388
@@ -864,6 +1090,9 @@
"and \"searched\" case, <literal>case when ... then ... else ... end "
"(specific to HQL)</literal>"
msgstr ""
+"\"Simple\" case, <literal>case ... when ... then ... else ... end</literal>, "
+"and \"searched\" case, <literal>case when ... then ... else ... end "
+"(spécifique à HQL)</literal>"
#. Tag: para
#: query_ejbql.xml:394
@@ -872,6 +1101,8 @@
"string concatenation <literal>...||...</literal> or <literal>concat(...,...) "
"(use concat() for portable EJB-QL queries)</literal>"
msgstr ""
+"dafdafkl string concatenation <literal>...||...</literal> or <literal>concat"
+"(...,...) (use concat() for portable EJB-QL queries)</literal>"
#. Tag: para
#: query_ejbql.xml:400
@@ -880,6 +1111,8 @@
"<literal>current_date()</literal>, <literal>current_time()</literal>, "
"<literal>current_timestamp()</literal>"
msgstr ""
+"<literal>current_date()</literal>, <literal>current_time()</literal>, "
+"<literal>current_timestamp()</literal>"
#. Tag: para
#: query_ejbql.xml:406
@@ -889,6 +1122,9 @@
"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
"<literal>year(...)</literal>, (specific to HQL)"
msgstr ""
+"<literal>second(...)</literal>, <literal>minute(...)</literal>, <literal>hour"
+"(...)</literal>, <literal>day(...)</literal>, <literal>month(...)</literal>, "
+"<literal>year(...)</literal>, (spécifique à HQL)"
#. Tag: para
#: query_ejbql.xml:413
@@ -898,12 +1134,15 @@
"(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length()</"
"literal>"
msgstr ""
+"Toute fonction ou opérateur défini par EJB-QL 3.0 : <literal>substring(), "
+"trim(), lower(), upper(), length(), locate(), abs(), sqrt(), bit_length()</"
+"literal>"
#. Tag: para
#: query_ejbql.xml:419
#, no-c-format
msgid "<literal>coalesce()</literal> and <literal>nullif()</literal>"
-msgstr ""
+msgstr "<literal>coalesce()</literal> et <literal>nullif()</literal>"
#. Tag: para
#: query_ejbql.xml:424
@@ -914,6 +1153,10 @@
"<literal>cast()</literal> and <literal>extract()</literal> is supported by "
"the underlying database"
msgstr ""
+"<literal>cast(... as ...)</literal>, pour lequel le second argument est le "
+"nom d'un type d'Hibernate, et <literal>extract(... from ...)</literal> si "
+"ANSI <literal>cast()</literal> et <literal>extract()</literal> est pris en "
+"charge par la base de données sous-jacente."
#. Tag: para
#: query_ejbql.xml:432
@@ -923,12 +1166,15 @@
"<literal>trunc()</literal>, <literal>rtrim()</literal>, <literal>sin()</"
"literal>"
msgstr ""
+"Toute fonction scalaire SQL supportée-base de donnée comme <literal>sign()</"
+"literal>, <literal>trunc()</literal>, <literal>rtrim()</literal>, "
+"<literal>sin()</literal>"
#. Tag: para
#: query_ejbql.xml:438
#, no-c-format
msgid "JDBC IN parameters <literal>?</literal>"
-msgstr ""
+msgstr "Paramètres JDBC IN <literal>?</literal>"
#. Tag: para
#: query_ejbql.xml:442
@@ -937,14 +1183,18 @@
"named parameters <literal>:name</literal>, <literal>:start_date</literal>, "
"<literal>:x1</literal>"
msgstr ""
+"paramètres nommés <literal>:name</literal>, <literal>:start_date</literal>, "
+"<literal>:x1</literal>"
#. Tag: para
#: query_ejbql.xml:447
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"SQL literals <literal>'foo'</literal>, <literal>69</literal>, <literal>'1970-"
"01-01 10:00:01.0'</literal>"
msgstr ""
+"Littéraux SQL <literal>'foo'</literal>, <literal>69</literal>, "
+"<literal>'1970-01-01 10:00:01.0'</literal>"
#. Tag: para
#: query_ejbql.xml:452
@@ -953,6 +1203,8 @@
"Java <literal>public static final</literal> constants <literal>eg.Color."
"TABBY</literal>"
msgstr ""
+"Java <literal>public static final</literal> constants <literal>eg.Color."
+"TABBY</literal>"
#. Tag: para
#: query_ejbql.xml:457
@@ -960,38 +1212,48 @@
msgid ""
"<literal>in</literal> and <literal>between</literal> may be used as follows:"
msgstr ""
+"<literal>in</literal> et <literal>between</literal>peuvent être utilisés de "
+"la manière suivante :"
#. Tag: programlisting
#: query_ejbql.xml:460
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select cat from DomesticCat cat where cat.name between 'A' and 'B'"
msgstr ""
+"select cat from DomesticCat cat where cat.name between 'A' and '"
+"B'"
#. Tag: programlisting
#: query_ejbql.xml:462
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select cat from DomesticCat cat where cat.name in ( 'Foo', 'Bar', 'Baz' )"
msgstr ""
+"select cat from DomesticCat cat where cat.name in ( 'Foo', '"
+"Bar', 'Baz' )"
#. Tag: para
#: query_ejbql.xml:464
#, no-c-format
msgid "and the negated forms may be written"
-msgstr ""
+msgstr "et les formes inversées peuvent être inscrites"
#. Tag: programlisting
#: query_ejbql.xml:466
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select cat from DomesticCat cat where cat.name not between 'A' and 'B'"
msgstr ""
+"select cat from DomesticCat cat where cat.name not between 'A' and "
+"'B'"
#. Tag: programlisting
#: query_ejbql.xml:468
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select cat from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )"
msgstr ""
+"select cat from DomesticCat cat where cat.name not in ( 'Foo', '"
+"Bar', 'Baz' )"
#. Tag: para
#: query_ejbql.xml:470
@@ -1000,6 +1262,8 @@
"Likewise, <literal>is null</literal> and <literal>is not null</literal> may "
"be used to test for null values."
msgstr ""
+"De même, <literal>is null</literal> et <literal>is not null</literal> "
+"peuvent être utilisés pour tester les valeurs nulles."
#. Tag: para
#: query_ejbql.xml:473
@@ -1008,12 +1272,14 @@
"Booleans may be easily used in expressions by declaring HQL query "
"substitutions in Hibernate configuration:"
msgstr ""
+"Les booléens peuvent être facilement utilisés dans des expressions en "
+"déclarant des substitutions dans la configuration Hibernate :"
#. Tag: programlisting
#: query_ejbql.xml:476
#, no-c-format
msgid "hibernate.query.substitutions true 1, false 0"
-msgstr ""
+msgstr "hibernate.query.substitutions true 1, false 0"
#. Tag: para
#: query_ejbql.xml:478
@@ -1023,12 +1289,15 @@
"literal> with the literals <literal>1</literal> and <literal>0</literal> in "
"the translated SQL from this HQL:"
msgstr ""
+"Cela va remplacer les mots clé <literal>true</literal> et <literal>false</"
+"literal> avec les littéraux <literal>1</literal> et <literal>0</literal> "
+"dans le SQL traduit à partir de cet HQL :"
#. Tag: programlisting
#: query_ejbql.xml:482
#, no-c-format
msgid "select cat from Cat cat where cat.alive = true"
-msgstr ""
+msgstr "select cat from Cat cat where cat.alive = true"
#. Tag: para
#: query_ejbql.xml:484
@@ -1038,18 +1307,21 @@
"<literal>size</literal>, or the special <literal>size()</literal> function "
"(HQL specific feature)."
msgstr ""
+"Vous pouvez tester la taille d'une collection par la propriété spéciale "
+"<literal>size</literal>, ou bien la fonction spéciale <literal>size()</"
+"literal> (fonctionnalité spécifique HQL)."
#. Tag: programlisting
#: query_ejbql.xml:488
#, no-c-format
msgid "select cat from Cat cat where cat.kittens.size > 0"
-msgstr ""
+msgstr "select cat from Cat cat where cat.kittens.size > 0"
#. Tag: programlisting
#: query_ejbql.xml:490
#, no-c-format
msgid "select cat from Cat cat where size(cat.kittens) > 0"
-msgstr ""
+msgstr "select cat from Cat cat where size(cat.kittens) > 0"
#. Tag: para
#: query_ejbql.xml:492
@@ -1061,6 +1333,12 @@
"of basic type using the <literal>minelement</literal> and "
"<literal>maxelement</literal> functions. These are HQL specific features."
msgstr ""
+"Pour les collections indexées, vous pouvez vous référer aux indices minimum "
+"ou maximum en utilisant les fonctions <literal>minindex</literal> et "
+"<literal>maxindex</literal>. De même, vous pouvez vous référer aux éléments "
+"minimum et maximum d'une collection de types de base en utilisant les "
+"fonctions <literal>minelement</literal> et <literal>maxelement</literal>. Ce "
+"sont des fonctionnalités spécifiques SQL."
#. Tag: programlisting
#: query_ejbql.xml:499
@@ -1068,18 +1346,19 @@
msgid ""
"select cal from Calendar cal where maxelement(cal.holidays) > current date"
msgstr ""
+"select cal from Calendar cal where maxelement(cal.holidays) > current date"
#. Tag: programlisting
#: query_ejbql.xml:501
#, no-c-format
msgid "select order from Order order where maxindex(order.items) > 100"
-msgstr ""
+msgstr "select order from Order order where maxindex(order.items) > 100"
#. Tag: programlisting
#: query_ejbql.xml:503
#, no-c-format
msgid "select order from Order order where minelement(order.items) > 10000"
-msgstr ""
+msgstr "select order from Order order where minelement(order.items) > 10000"
#. Tag: para
#: query_ejbql.xml:505
@@ -1092,6 +1371,13 @@
"QL, <literal>elements</literal> and <literal>indices</literal> are specific "
"HQL features."
msgstr ""
+"Les fonctions SQL <literal>any, some, all, exists, in</literal> sont prises "
+"en charge lorsqu'on leur a passé les ensembles d'indexes ou d'éléments d'une "
+"collection (fonctions <literal>elements</literal> et <literal>indices</"
+"literal>) ou bien le résultat d'une sous-requête (voir ci-dessous). Tandis "
+"que les sous-requêtes sont prises en charge par EJB-SQL, <literal>elements</"
+"literal> et <literal>indices</literal> sont des fonctionnalités HQL "
+"spécifiques."
#. Tag: programlisting
#: query_ejbql.xml:512
@@ -1100,6 +1386,8 @@
"select mother from Cat as mother, Cat as kit\n"
"where kit in elements(foo.kittens)"
msgstr ""
+"select mother from Cat as mother, Cat as kit\n"
+"where kit in elements(foo.kittens)"
#. Tag: programlisting
#: query_ejbql.xml:514
@@ -1108,24 +1396,26 @@
"select p from NameList list, Person p\n"
"where p.name = some elements(list.names)"
msgstr ""
+"select p from NameList list, Person p\n"
+"where p.name = some elements(list.names)"
#. Tag: programlisting
#: query_ejbql.xml:516
#, no-c-format
msgid "select cat from Cat cat where exists elements(cat.kittens)"
-msgstr ""
+msgstr "select cat from Cat cat where exists elements(cat.kittens)"
#. Tag: programlisting
#: query_ejbql.xml:518
#, no-c-format
msgid "select cat from Player p where 3 > all elements(p.scores)"
-msgstr ""
+msgstr "select cat from Player p where 3 > all elements(p.scores)"
#. Tag: programlisting
#: query_ejbql.xml:520
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select cat from Show show where 'fizard' in indices(show.acts)"
-msgstr ""
+msgstr "select cat from Show show where 'fizard' in indices(show.acts)"
#. Tag: para
#: query_ejbql.xml:522
@@ -1137,6 +1427,11 @@
"<literal>maxelement</literal> - may only be used in the where clause in "
"Hibernate3."
msgstr ""
+"Notez que ces constructions - <literal>size</literal>, <literal>elements</"
+"literal>, <literal>indices</literal>, <literal>minindex</literal>, "
+"<literal>maxindex</literal>, <literal>minelement</literal>, "
+"<literal>maxelement</literal> - peuvent n'être utilisées que dans la clause "
+"where d'Hibernate3."
#. Tag: para
#: query_ejbql.xml:528
@@ -1145,21 +1440,26 @@
"In HQL, elements of indexed collections (arrays, lists, maps) may be "
"referred to by index (in a where clause only):"
msgstr ""
+"Dans HQL, les éléments des collections indexées (arrays, lists, maps) "
+"peuvent être référencées par index (dans une clause where uniquement) :"
#. Tag: programlisting
#: query_ejbql.xml:531
#, no-c-format
msgid "select order from Order order where order.items[0].id = 1234"
-msgstr ""
+msgstr "select order from Order order where order.items[0].id = 1234"
#. Tag: programlisting
#: query_ejbql.xml:533
-#, no-c-format
+#, fuzzy, 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 ""
+"select person from Person person, Calendar calendar\n"
+"where calendar.holidays['national day'] = person.birthDay\n"
+" and person.nationality.calendar = calendar"
#. Tag: programlisting
#: query_ejbql.xml:535
@@ -1168,6 +1468,8 @@
"select item from Item item, Order order\n"
"where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11"
msgstr ""
+"select item from Item item, Order order\n"
+"where order.items[ order.deliveredItemIndices[0] ] = item and order.id = 11"
#. Tag: programlisting
#: query_ejbql.xml:537
@@ -1176,6 +1478,8 @@
"select item from Item item, Order order\n"
"where order.items[ maxindex(order.items) ] = item and order.id = 11"
msgstr ""
+"select item from Item item, Order order\n"
+"where order.items[ maxindex(order.items) ] = item and order.id = 11"
#. Tag: para
#: query_ejbql.xml:539
@@ -1184,6 +1488,8 @@
"The expression inside <literal>[]</literal> may even be an arithmetic "
"expression."
msgstr ""
+"L'expression contenue dans <literal>[]</literal> peut même être une "
+"expression arithmétique."
#. Tag: programlisting
#: query_ejbql.xml:542
@@ -1192,6 +1498,8 @@
"select item from Item item, Order order\n"
"where order.items[ size(order.items) - 1 ] = item"
msgstr ""
+"select item from Item item, Order order\n"
+"where order.items[ size(order.items) - 1 ] = item"
#. Tag: para
#: query_ejbql.xml:544
@@ -1200,6 +1508,9 @@
"HQL also provides the built-in <literal>index()</literal> function, for "
"elements of a one-to-many association or collection of values."
msgstr ""
+"HQL procure également la fonctionnalité intégrée <literal>index()</literal>, "
+"pour les éléments d'une association one-to-many ou pour une collection de "
+"valeurs."
#. Tag: programlisting
#: query_ejbql.xml:547
@@ -1209,18 +1520,24 @@
" join order.items item\n"
"where index(item) < 5"
msgstr ""
+"select item, index(item) from Order order \n"
+" join order.items item\n"
+"where index(item) < 5"
#. Tag: para
#: query_ejbql.xml:549
#, no-c-format
msgid "Scalar SQL functions supported by the underlying database may be used"
msgstr ""
+"Les fonctions scalaires SQL prises en charge par la base de données sous-"
+"jacente peuvent être utilisées"
#. Tag: programlisting
#: query_ejbql.xml:552
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select cat from DomesticCat cat where upper(cat.name) like 'FRI%'"
msgstr ""
+"select cat from DomesticCat cat where upper(cat.name) like 'FRI%'"
#. Tag: para
#: query_ejbql.xml:554
@@ -1229,10 +1546,12 @@
"If you are not yet convinced by all this, think how much longer and less "
"readable the following query would be in SQL:"
msgstr ""
+"Si vous n'êtes pas encore convaincu, imaginez combien la requête suivante "
+"devrait être ralongée ou perdre en lisibilité en SQL :"
#. Tag: programlisting
#: query_ejbql.xml:557
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select cust\n"
"from Product prod,\n"
@@ -1242,16 +1561,23 @@
" and store.location.name in ( 'Melbourne', 'Sydney' )\n"
" and prod = all elements(cust.currentOrder.lineItems)"
msgstr ""
+"select cust\n"
+"from Product prod,\n"
+" Store store\n"
+" inner join store.customers cust\n"
+"where prod.name = 'widget'\n"
+" and store.location.name in ( 'Melbourne', 'Sydney' )\n"
+" and prod = all elements(cust.currentOrder.lineItems)"
#. Tag: para
#: query_ejbql.xml:559
#, no-c-format
msgid "<emphasis>Hint:</emphasis> something like"
-msgstr ""
+msgstr "<emphasis>Astuce :</emphasis> quelquechose comme"
#. Tag: programlisting
#: query_ejbql.xml:561
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
"FROM customers cust,\n"
@@ -1271,12 +1597,29 @@
" AND cust.current_order = o.id\n"
" )"
msgstr ""
+"SELECT cust.name, cust.address, cust.phone, cust.id, cust.current_order\n"
+"FROM customers cust,\n"
+" stores store,\n"
+" locations loc,\n"
+" store_customers sc,\n"
+" product prod\n"
+"WHERE prod.name = 'widget'\n"
+" AND store.loc_id = loc.id\n"
+" AND loc.name IN ( 'Melbourne', 'Sydney' )\n"
+" AND sc.store_id = store.id\n"
+" AND sc.cust_id = cust.id\n"
+" AND prod.id = ALL(\n"
+" SELECT item.prod_id\n"
+" FROM line_items item, orders o\n"
+" WHERE item.order_id = o.id\n"
+" AND cust.current_order = o.id\n"
+" )"
#. Tag: title
#: query_ejbql.xml:565
#, no-c-format
msgid "The order by clause"
-msgstr ""
+msgstr "La clause 'order by'"
#. Tag: para
#: query_ejbql.xml:567
@@ -1285,6 +1628,8 @@
"The list returned by a query may be ordered by any property of a returned "
"class or components:"
msgstr ""
+"La liste qui est retournée par une requête peut être ordonnancée par "
+"n'importe quelle propriété d'une classe retournée ou de composants :"
#. Tag: programlisting
#: query_ejbql.xml:570
@@ -1293,6 +1638,8 @@
"select cat from DomesticCat cat\n"
"order by cat.name asc, cat.weight desc, cat.birthdate"
msgstr ""
+"select cat from DomesticCat cat\n"
+"order by cat.name asc, cat.weight desc, cat.birthdate"
#. Tag: para
#: query_ejbql.xml:572
@@ -1301,12 +1648,14 @@
"The optional <literal>asc</literal> or <literal>desc</literal> indicate "
"ascending or descending order respectively."
msgstr ""
+"Les <literal>asc</literal> ou <literal>desc</literal> optionnels indiquent "
+"un ordre ascendant ou descendant respectivement."
#. Tag: title
#: query_ejbql.xml:577
#, no-c-format
msgid "The group by clause"
-msgstr ""
+msgstr "La clause de 'group by'"
#. Tag: para
#: query_ejbql.xml:579
@@ -1315,6 +1664,8 @@
"A query that returns aggregate values may be grouped by any property of a "
"returned class or components:"
msgstr ""
+"Une requête qui retourne des valeurs agrégées qui peuvent être groupées par "
+"n'importe quelle propriété d'une classe de retour ou de composants :"
#. Tag: programlisting
#: query_ejbql.xml:582
@@ -1324,6 +1675,9 @@
"from Cat cat\n"
"group by cat.color"
msgstr ""
+"select cat.color, sum(cat.weight), count(cat) \n"
+"from Cat cat\n"
+"group by cat.color"
#. Tag: programlisting
#: query_ejbql.xml:584
@@ -1333,12 +1687,15 @@
"from Foo foo join foo.names name\n"
"group by foo.id"
msgstr ""
+"select foo.id, avg(name), max(name) \n"
+"from Foo foo join foo.names name\n"
+"group by foo.id"
#. Tag: para
#: query_ejbql.xml:586
#, no-c-format
msgid "A <literal>having</literal> clause is also allowed."
-msgstr ""
+msgstr "Une clause <literal>having</literal> est permise également."
#. Tag: programlisting
#: query_ejbql.xml:588
@@ -1349,6 +1706,10 @@
"group by cat.color \n"
"having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
msgstr ""
+"select cat.color, sum(cat.weight), count(cat) \n"
+"from Cat cat\n"
+"group by cat.color \n"
+"having cat.color in (eg.Color.TABBY, eg.Color.BLACK)"
#. Tag: para
#: query_ejbql.xml:590
@@ -1358,6 +1719,10 @@
"literal> and <literal>order by</literal> clauses, if supported by the "
"underlying database (eg. not in MySQL)."
msgstr ""
+"Les fonctions SQL et les fonctions agrégées sont autorisées dans les clauses "
+"<literal>having</literal> et <literal>order by</literal>, si elles sont "
+"prises en charge par le base de données sous-jacente (par ex. pas dans "
+"MySQL)."
#. Tag: programlisting
#: query_ejbql.xml:594
@@ -1370,6 +1735,12 @@
"having avg(kitten.weight) > 100\n"
"order by count(kitten) asc, sum(kitten.weight) desc"
msgstr ""
+"select cat\n"
+"from Cat cat\n"
+" join cat.kittens kitten\n"
+"group by cat\n"
+"having avg(kitten.weight) > 100\n"
+"order by count(kitten) asc, sum(kitten.weight) desc"
#. Tag: para
#: query_ejbql.xml:596
@@ -1378,12 +1749,14 @@
"Note that neither the <literal>group by</literal> clause nor the "
"<literal>order by</literal> clause may contain arithmetic expressions."
msgstr ""
+"Remarquez bien que ni la clause <literal>group by</literal> ni la clause "
+"<literal>order by</literal> ne contiennent des expressions arithmétiques."
#. Tag: title
#: query_ejbql.xml:602
#, no-c-format
msgid "Subqueries"
-msgstr ""
+msgstr "Sous-requêtes"
#. Tag: para
#: query_ejbql.xml:604
@@ -1394,6 +1767,11 @@
"aggregate function call). Even correlated subqueries (subqueries that refer "
"to an alias in the outer query) are allowed."
msgstr ""
+"Pour les bases de données qui prennent en charge les sous-sélections "
+"(subselects), EJB-QL prend en charge les sous-requêtes au sein des requêtes "
+"elles-mêmes. Une sous-requête doit être entourée de parenthèses (souvent par "
+"un appel de fonction agrégé SQL). Même les sous-requêtes corrélées (qui font "
+"référence à un alias de la requête externe) sont autorisées."
#. Tag: programlisting
#: query_ejbql.xml:609
@@ -1404,6 +1782,10 @@
" select avg(cat.weight) from DomesticCat cat \n"
")"
msgstr ""
+"select fatcat from Cat as fatcat \n"
+"where fatcat.weight > ( \n"
+" select avg(cat.weight) from DomesticCat cat \n"
+")"
#. Tag: programlisting
#: query_ejbql.xml:611
@@ -1414,6 +1796,10 @@
" select name.nickName from Name as name \n"
")"
msgstr ""
+"select cat from DomesticCat as cat \n"
+"where cat.name = some ( \n"
+" select name.nickName from Name as name \n"
+")"
#. Tag: programlisting
#: query_ejbql.xml:613
@@ -1424,6 +1810,10 @@
" from Cat as mate where mate.mate = cat \n"
")"
msgstr ""
+"select cat from Cat as cat \n"
+"where not exists ( \n"
+" from Cat as mate where mate.mate = cat \n"
+")"
#. Tag: programlisting
#: query_ejbql.xml:615
@@ -1434,6 +1824,10 @@
" select name.nickName from Name as name \n"
")"
msgstr ""
+"select cat from DomesticCat as cat \n"
+"where cat.name not in ( \n"
+" select name.nickName from Name as name \n"
+")"
#. Tag: para
#: query_ejbql.xml:617
@@ -1442,6 +1836,8 @@
"For subqueries with more than one expression in the select list, you can use "
"a tuple constructor:"
msgstr ""
+"Pour les sous-requêtes qui contiennent plus d'une expression dans la liste "
+"de sélection, vous pouvez utiliser un constructeur tuple (n-uplet) :"
#. Tag: programlisting
#: query_ejbql.xml:620
@@ -1452,6 +1848,10 @@
" select cat.name, cat.color from DomesticCat cat \n"
")"
msgstr ""
+"select cat from Cat as cat \n"
+"where not ( cat.name, cat.color ) in ( \n"
+" select cat.name, cat.color from DomesticCat cat \n"
+")"
#. Tag: para
#: query_ejbql.xml:622
@@ -1461,26 +1861,34 @@
"constructors in other contexts, for example when querying components or "
"composite user types:"
msgstr ""
+"Notez que dans certaines bases de données (ni dans Oracle, ni dans HSQLDB), "
+"vous pouvez utiliser les constructeurs tuple dans d'autres contextes, par "
+"exemple quand vous recherchez les composants ou des types d'utilisateurs "
+"composites :"
#. Tag: programlisting
#: query_ejbql.xml:626
-#, no-c-format
+#, fuzzy, no-c-format
msgid "select cat from Person where name = ('Gavin', 'A', 'King')"
msgstr ""
+"select cat from Person where name = ('Gavin', 'A', '"
+"King')"
#. Tag: para
#: query_ejbql.xml:628
#, no-c-format
msgid "Which is equivalent to the more verbose:"
-msgstr ""
+msgstr "Ce qui est équivalent au plus verbeux :"
#. Tag: programlisting
#: query_ejbql.xml:630
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"select cat from Person where name.first = 'Gavin' and name.initial = 'A' and "
"name.last = 'King')"
msgstr ""
+"select cat from Person where name.first = 'Gavin' and name.initial = "
+"'A' and name.last = 'King')"
#. Tag: para
#: query_ejbql.xml:632
@@ -1491,16 +1899,21 @@
"query is now dependent upon the ordering of properties in the mapping "
"document."
msgstr ""
+"Il y a deux bonnes raisons pour lesquelles vous êtes susceptibles de ne pas "
+"vouloir faire ce genre de chose : tout d'abord, ce n'est pas totalement "
+"portable entre plateformes de bases de données; deuxièmement, la requête est "
+"maintenant dépendante de l'ordonnancement des propriétés dans le document de "
+"mappage."
#. Tag: title
#: query_ejbql.xml:639
#, no-c-format
msgid "EJB-QL examples"
-msgstr ""
+msgstr "exemples EJB-QL"
#. Tag: para
#: query_ejbql.xml:641
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"Hibernate queries can be quite powerful and complex. In fact, the power of "
"the query language is one of Hibernate's main selling points (and now EJB-"
@@ -1508,6 +1921,12 @@
"recent project. Note that most queries you will write are much simpler than "
"these!"
msgstr ""
+"Les requêtes Hibernate peuvent être à la fois puissantes et complexes. En "
+"fait, la puissance du langage est l'un des atouts commerciaux d'Hibernate "
+"(et maintenant d'EJB-QL). Voici quelques exemples de requêtes qui sont très "
+"similaires aux requêtes que j'ai utilisées dans un projet récent. Notez que "
+"la plupart des requêtes que vous allez rédiger seront plus simples que "
+"celles-ci !"
#. Tag: para
#: query_ejbql.xml:647
@@ -1521,6 +1940,14 @@
"literal>, <literal>CATALOG</literal> and <literal>PRICE</literal> tables has "
"four inner joins and an (uncorrelated) subselect."
msgstr ""
+"La requête suivante retourne l'id d'ordre, le nombre d'éléments et la valeur "
+"totale de l'ordre pour tous les ordres non payés pour un client donné ou "
+"bien une valeur totale minimum donnée, ordonnançant les résultats par valeur "
+"totale. En déterminant les prix, il utilise le catalogue en cours. La "
+"requête SQL résultante, au regard des tables de <literal>ORDER</literal>, "
+"<literal>ORDER_LINE</literal>, <literal>PRODUCT</literal>, <literal>CATALOG</"
+"literal> et <literal>PRICE</literal>, contient quatre jointures internes et "
+"une sous-sélection (non correlée)."
#. Tag: programlisting
#: query_ejbql.xml:656
@@ -1545,14 +1972,34 @@
"having sum(price.amount) > :minAmount\n"
"order by sum(price.amount) desc"
msgstr ""
+"select order.id, sum(price.amount), count(item)\n"
+"from Order as order\n"
+" join order.lineItems as item\n"
+" join item.product as product,\n"
+" Catalog as catalog\n"
+" join catalog.prices as price\n"
+"where order.paid = false\n"
+" and order.customer = :customer\n"
+" and price.product = product\n"
+" and catalog.effectiveDate < sysdate\n"
+" and catalog.effectiveDate >= all (\n"
+" select cat.effectiveDate \n"
+" from Catalog as cat\n"
+" where cat.effectiveDate < sysdate\n"
+" )\n"
+"group by order\n"
+"having sum(price.amount) > :minAmount\n"
+"order by sum(price.amount) desc"
#. Tag: para
#: query_ejbql.xml:658
-#, no-c-format
+#, fuzzy, 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 ""
+"Monstreux! En réalité, je ne suis pas fanatique des sous-requêtes, donc ma "
+"requête ressemblait plutôt à ce qui suit :"
#. Tag: programlisting
#: query_ejbql.xml:661
@@ -1572,6 +2019,19 @@
"having sum(price.amount) > :minAmount\n"
"order by sum(price.amount) desc"
msgstr ""
+"select order.id, sum(price.amount), count(item)\n"
+"from Order as order\n"
+" join order.lineItems as item\n"
+" join item.product as product,\n"
+" Catalog as catalog\n"
+" join catalog.prices as price\n"
+"where order.paid = false\n"
+" and order.customer = :customer\n"
+" and price.product = product\n"
+" and catalog = :currentCatalog\n"
+"group by order\n"
+"having sum(price.amount) > :minAmount\n"
+"order by sum(price.amount) desc"
#. Tag: para
#: query_ejbql.xml:663
@@ -1584,6 +2044,13 @@
"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> and "
"<literal>PAYMENT_STATUS_CHANGE</literal> tables."
msgstr ""
+"Le requête suivante compte le nombre de paiements pour chaque statut, en "
+"excluant tous les paiements du statut <literal>AWAITING_APPROVAL</literal> "
+"pour lequel le changement le plus récent avait été effectué par "
+"l'utilisateur courant. Cela se traduit par une requête SQL avec deux "
+"jointures internes et une sous-sélection corrélée au regard des tables "
+"<literal>PAYMENT</literal>, <literal>PAYMENT_STATUS</literal> et "
+"<literal>PAYMENT_STATUS_CHANGE</literal>."
#. Tag: programlisting
#: query_ejbql.xml:670
@@ -1605,6 +2072,21 @@
"group by status.name, status.sortOrder\n"
"order by status.sortOrder"
msgstr ""
+"select count(payment), status.name \n"
+"from Payment as payment \n"
+" join payment.currentStatus as status\n"
+" join payment.statusChanges as statusChange\n"
+"where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+" or (\n"
+" statusChange.timeStamp = ( \n"
+" select max(change.timeStamp) \n"
+" from PaymentStatusChange change \n"
+" where change.payment = payment\n"
+" )\n"
+" and statusChange.user <> :currentUser\n"
+" )\n"
+"group by status.name, status.sortOrder\n"
+"order by status.sortOrder"
#. Tag: para
#: query_ejbql.xml:672
@@ -1613,6 +2095,9 @@
"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 ""
+"Si vous aviez mappé la collection <literal>statusChanges</literal> sous "
+"forme de liste, au lieu d'un ensemble, la requête aurait été bien plus "
+"facile à écrire."
#. Tag: programlisting
#: query_ejbql.xml:676
@@ -1627,12 +2112,20 @@
"group by status.name, status.sortOrder\n"
"order by status.sortOrder"
msgstr ""
+"select count(payment), status.name \n"
+"from Payment as payment\n"
+" join payment.currentStatus as status\n"
+"where payment.status.name <> PaymentStatus.AWAITING_APPROVAL\n"
+" or payment.statusChanges[ maxIndex(payment.statusChanges) ].user <"
+"> :currentUser\n"
+"group by status.name, status.sortOrder\n"
+"order by status.sortOrder"
#. Tag: para
#: query_ejbql.xml:678
#, no-c-format
msgid "However the query would have been HQL specific."
-msgstr ""
+msgstr "Cependant, la requête aurait pu être spécifique HQL."
#. Tag: para
#: query_ejbql.xml:680
@@ -1646,6 +2139,13 @@
"<literal>ACCOUNT_TYPE</literal>, <literal>ORGANIZATION</literal> and "
"<literal>ORG_USER</literal> tables."
msgstr ""
+"Le requête suivante utilise la fonction de serveur MS SQL <literal>isNull()</"
+"literal> pour retourner tous les comptes et tous les paiements en attente "
+"d'une organisation à laquelle l'utilisateur courant appartient. Cela se "
+"traduit par une requête SQL avec deux jointures internes et une sous-"
+"sélection corrélée au regard des tables <literal>PAYMENT</literal>, "
+"<literal>PAYMENT_STATUS</literal> et <literal>PAYMENT_STATUS_CHANGE</"
+"literal>."
#. Tag: programlisting
#: query_ejbql.xml:689
@@ -1660,32 +2160,45 @@
"PaymentStatus.UNPAID)\n"
"order by account.type.sortOrder, account.accountNumber, payment.dueDate"
msgstr ""
+"select account, payment\n"
+"from Account as account\n"
+" join account.holder.users as user\n"
+" left outer join account.payments as payment\n"
+"where :currentUser = user\n"
+" and PaymentStatus.UNPAID = isNull(payment.currentStatus.name, "
+"PaymentStatus.UNPAID)\n"
+"order by account.type.sortOrder, account.accountNumber, payment.dueDate"
#. Tag: title
#: query_ejbql.xml:693
#, no-c-format
msgid "Bulk UPDATE & DELETE Statements"
-msgstr ""
+msgstr "Bulk UPDATE & DELETE Statements"
#. Tag: para
#: query_ejbql.xml:695
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"Hibernate now supports UPDATE and DELETE statements in HQL/EJB-QL. See <xref "
"linkend=\"batch-direct\"/> for details."
msgstr ""
+"Hibernate prend maintenant en charge les énoncés UPDATE et DELETE dans HQL/"
+"EJB-QL. Voir <xref linkend=\"Batch_processing-Bulk_updatedelete\"/> pour "
+"davantage de détails."
#. Tag: title
#: query_ejbql.xml:700
#, no-c-format
msgid "Tips & Tricks"
-msgstr ""
+msgstr "Conseils et astuces"
#. Tag: para
#: query_ejbql.xml:702
#, no-c-format
msgid "To order a result by the size of a collection, use the following query:"
msgstr ""
+"Pour ordonner un résultat par taille de collection, utiliser la requête "
+"suivante :"
#. Tag: programlisting
#: query_ejbql.xml:705
@@ -1697,6 +2210,11 @@
"group by usr.id, usr.name\n"
"order by count(msg)"
msgstr ""
+"select usr.id, usr.name\n"
+"from User as usr \n"
+" left join usr.messages as msg\n"
+"group by usr.id, usr.name\n"
+"order by count(msg)"
#. Tag: para
#: query_ejbql.xml:707
@@ -1705,18 +2223,23 @@
"If your database supports subselects, you can place a condition upon "
"selection size in the where clause of your query:"
msgstr ""
+"Si votre base de données prend en charge des sous-sélections, vous pouvez "
+"poser une condition au niveau de la taille de la sélection dans la clause "
+"'where' de votre requête :"
#. Tag: programlisting
#: query_ejbql.xml:710
#, no-c-format
msgid "from User usr where size(usr.messages) >= 1"
-msgstr ""
+msgstr "from User usr where size(usr.messages) >= 1"
#. Tag: para
#: query_ejbql.xml:712
-#, no-c-format
+#, fuzzy, no-c-format
msgid "If your database doesn't support subselects, use the following query:"
msgstr ""
+"Si votre base de données ne prend pas encharge les sous-sélections, utilisez "
+"la requête suivante :"
#. Tag: programlisting
#: query_ejbql.xml:715
@@ -1728,14 +2251,22 @@
"group by usr.id, usr.name\n"
"having count(msg) >= 1"
msgstr ""
+"select usr.id, usr.name\n"
+"from User usr.name\n"
+" join usr.messages msg\n"
+"group by usr.id, usr.name\n"
+"having count(msg) >= 1"
#. Tag: para
#: query_ejbql.xml:717
-#, no-c-format
+#, fuzzy, 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 ""
+"Comme cette solution ne peut pas retourner un <literal>User</literal> avec "
+"zero messages à cause de la jointure interne, la forme suivante est "
+"également utile :"
#. Tag: programlisting
#: query_ejbql.xml:721
@@ -1747,3 +2278,8 @@
"group by usr.id, usr.name\n"
"having count(msg) = 0"
msgstr ""
+"select usr.id, usr.name\n"
+"from User as usr\n"
+" left join usr.messages as msg\n"
+"group by usr.id, usr.name\n"
+"having count(msg) = 0"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_native.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_native.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/query_native.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,7 +21,7 @@
#: query_native.xml:28
#, no-c-format
msgid "Native query"
-msgstr ""
+msgstr "Requête native"
#. Tag: para
#: query_native.xml:30
@@ -35,12 +35,21 @@
"procedures) for all create, update, delete, and load operations (please "
"refer to the reference guide for more information.)"
msgstr ""
+"Vous pouvez également exprimer des demandes dans le dialecte SQL natif de "
+"votre base de données. Cela est utile si vous souhaitez utiliser des "
+"fonctionnalités spécifiques à des bases de données comme des astuces de "
+"recherche ou l'option CONNECT BY d'Oracle. Cela fournit aussi un chemin de "
+"migration clair à partir d'une application basée SQL/JDBC vers Hibernate. "
+"Notez qu'Hibernate3 vous permet de spécifier les SQL écrits à la main (y "
+"compris les procédures stockées) pour toutes les opérations créer, mise à "
+"jour, suppression et chargement (veuillez vous reporter au guide de "
+"références pour davantage d'informations.)"
#. Tag: title
#: query_native.xml:39
#, no-c-format
msgid "Expressing the resultset"
-msgstr ""
+msgstr "Exprimer le resultset"
#. Tag: para
#: query_native.xml:41
@@ -52,10 +61,16 @@
"literal> annotation. Each <literal>@SqlResultSetMapping </literal>has a name "
"wich is used when creating a SQL query on <literal>EntityManager</literal>."
msgstr ""
+"Pour utiliser une requête SQL, vous aurez besoin de décrire le resultset "
+"SQL. Cette description vous aidera <literal>EntityManager</literal> à mapper "
+"vos colonnes en propriétés d'entités. Cela est fait en utilisant "
+"l'annotation <literal>@SqlResultSetMapping</literal>. Chaque "
+"<literal>@SqlResultSetMapping </literal> possède un nom qui est utilisé "
+"quand on crée une requête SQL dans <literal>EntityManager</literal>."
#. Tag: programlisting
#: query_native.xml:48
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"@SqlResultSetMapping(name=\"GetNightAndArea\", entities={\n"
" @EntityResult(name=\"org.hibernate.test.annotations.query.Night\", "
@@ -77,6 +92,26 @@
"@SqlResultSetMapping(name=\"defaultSpaceShip\", entities=@EntityResult(name="
"\"org.hibernate.test.annotations.query.SpaceShip\"))"
msgstr ""
+"@SqlResultSetMapping(name=\"GetNightAndArea\", entities={\n"
+" @EntityResult(name=\"org.hibernate.test.annotations.query.Night\", "
+"fields = {\n"
+" @FieldResult(name=\"id\", column=\"nid\"),\n"
+" @FieldResult(name=\"duration\", column=\"night_duration\"),\n"
+" @FieldResult(name=\"date\", column=\"night_date\"),\n"
+" @FieldResult(name=\"area\", column=\"area_id\")\n"
+" }),\n"
+" @EntityResult(name=\"org.hibernate.test.annotations.query.Area\", fields "
+"= {\n"
+" @FieldResult(name=\"id\", column=\"aid\"),\n"
+" @FieldResult(name=\"name\", column=\"name\")\n"
+" })\n"
+" }\n"
+")\n"
+"\n"
+"//or\n"
+"@SqlResultSetMapping(name=\"defaultSpaceShip\",\n"
+" entities=@EntityResult(name=\"org.hibernate.test.annotations.query."
+"SpaceShip\"))"
#. Tag: para
#: query_native.xml:50
@@ -85,6 +120,8 @@
"You can also define scalar results and even mix entity results and scalar "
"results"
msgstr ""
+"Vous pouvez aussi définir des résultats scalaires ou même mixer des "
+"résultats d'entités et des résultats scalaires."
#. Tag: programlisting
#: query_native.xml:53
@@ -110,6 +147,25 @@
" }\n"
")"
msgstr ""
+"@SqlResultSetMapping(name=\"ScalarAndEntities\", \n"
+" entities={\n"
+" @EntityResult(name=\"org.hibernate.test.annotations.query.Night\", "
+"fields = {\n"
+" @FieldResult(name=\"id\", column=\"nid\"),\n"
+" @FieldResult(name=\"duration\", column=\"night_duration\"),\n"
+" @FieldResult(name=\"date\", column=\"night_date\"),\n"
+" @FieldResult(name=\"area\", column=\"area_id\")\n"
+" }),\n"
+" @EntityResult(name=\"org.hibernate.test.annotations.query.Area\", "
+"fields = {\n"
+" @FieldResult(name=\"id\", column=\"aid\"),\n"
+" @FieldResult(name=\"name\", column=\"name\")\n"
+" })\n"
+" },\n"
+" columns={\n"
+" @ColumnResult(name=\"durationInSec\")\n"
+" }\n"
+")"
#. Tag: para
#: query_native.xml:55
@@ -118,6 +174,8 @@
"The SQL query will then have to return a column alias "
"<literal>durationInSec</literal>."
msgstr ""
+"La requête SQL devra alors retourner une colonne alias "
+"<literal>durationInSec</literal>."
#. Tag: para
#: query_native.xml:58
@@ -126,18 +184,20 @@
"Please refer to the Hibernate Annotations reference guide for more "
"information about <literal>@SqlResultSetMapping.</literal>"
msgstr ""
+"Veuillez vous reporter au guide de référence Hibernate Annotations pour "
+"davantage d'informations sur <literal>@SqlResultSetMapping.</literal>"
#. Tag: title
#: query_native.xml:63
#, no-c-format
msgid "Using native SQL Queries"
-msgstr ""
+msgstr "Utiliser des requêtes SQL natives"
#. Tag: para
#: query_native.xml:65
#, no-c-format
msgid "TODO: This sounds like a dupe..."
-msgstr ""
+msgstr "TODO: This sounds like a dupe..."
#. Tag: para
#: query_native.xml:67
@@ -150,6 +210,14 @@
"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 ""
+"Maintenant que l'ensemble des résultat a été décrit, nous sommes en mesure "
+"d'exécuter la requête SQL native. <literal>EntityManager</literal> fournit "
+"tous les API nécesssaires. La première méthode consiste à utiliser le nom de "
+"resultset SQL pour faire la liaison, la seconde méthode consiste à utiliser "
+"le mappage par défaut de l'entité (la colonne retournée doit avoir le même "
+"nom que celle qui est utilisée dans le mappage). Une troisième (qui n'est "
+"pas encore prise en charge par le gestionnaire d'entités Hibernate), "
+"retourne des résultats scalaires purs."
#. Tag: programlisting
#: query_native.xml:75
@@ -164,6 +232,14 @@
"q.setParameter( 1, expectedDuration );\n"
"q.getResultList();"
msgstr ""
+"String sqlQuery = \"select night.id nid, night.night_duration, night."
+"night_date, area.id aid, \"\n"
+" + \"night.area_id, area.name from Night night, Area area where night."
+"area_id = area.id \"\n"
+" + \"and night.night_duration >= ?\";\n"
+"Query q = entityManager.createNativeQuery(sqlQuery, \"GetNightAndArea\");\n"
+"q.setParameter( 1, expectedDuration );\n"
+"q.getResultList();"
#. Tag: para
#: query_native.xml:77
@@ -172,6 +248,8 @@
"This native query returns nights and area based on the "
"<literal>GetNightAndArea</literal> result set."
msgstr ""
+"La requête native retourne des nuits et des régions basées sur l'ensemble de "
+"résultats de <literal>GetNightAndArea</literal>."
#. Tag: programlisting
#: query_native.xml:80
@@ -182,6 +260,10 @@
"q.setParameter( 1, \"Han\" );\n"
"q.getResultList();"
msgstr ""
+"String sqlQuery = \"select * from tbl_spaceship where owner = ?\";\n"
+"Query q = entityManager.createNativeQuery(sqlQuery, SpaceShip.class);\n"
+"q.setParameter( 1, \"Han\" );\n"
+"q.getResultList();"
#. Tag: para
#: query_native.xml:82
@@ -190,21 +272,27 @@
"The second version is useful when your SQL query returns one entity reusing "
"the same columns as the ones mapped in metadata."
msgstr ""
+"La seconde version est utile pour quand votre SQL retourne une entité qui "
+"réutilise les mêmes colonnes que celles qui sont mappées dans les "
+"métadonnées."
#. Tag: title
#: query_native.xml:87
#, no-c-format
msgid "Named queries"
-msgstr ""
+msgstr "Requêtes nommées"
#. Tag: para
#: query_native.xml:89
-#, no-c-format
+#, fuzzy, 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 ""
+"Les requêtes nommées natives partagent la même appelation API que les "
+"requêtes nommées EJB-QL. Vore code n'a pas besoin de connaître la différence "
+"entre les deux. Cela est très utile pour la migration de SQL à EJB-QL."
#. Tag: programlisting
#: query_native.xml:93
@@ -214,3 +302,6 @@
"q.setParameter( 1, name );\n"
"Season season = (Season) q.getSingleResult();"
msgstr ""
+"Query q = entityManager.createNamedQuery(\"getSeasonByNativeQuery\");\n"
+"q.setParameter( 1, name );\n"
+"Season season = (Season) q.getSingleResult();"
Modified: projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/transactions.po
===================================================================
--- projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/transactions.po 2009-11-10 02:35:50 UTC (rev 96203)
+++ projects/docs/enterprise/5.0/Hibernate/Hibernate_Entity_Manager/fr-FR/transactions.po 2009-11-10 02:42:46 UTC (rev 96204)
@@ -8,7 +8,7 @@
msgstr ""
"Project-Id-Version: Batch\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-09-16 01:54+0000\n"
+"POT-Creation-Date: 2009-11-10 02:39+0000\n"
"PO-Revision-Date: 2009-06-17 11:52+1000\n"
"Last-Translator: Corina Roe <croe at redhat.com>\n"
"Language-Team: French <i18 at redhat.com>\n"
@@ -21,7 +21,7 @@
#: transactions.xml:28
#, no-c-format
msgid "Transactions and Concurrency"
-msgstr ""
+msgstr "Transactions et concurrence"
#. Tag: para
#: transactions.xml:30
@@ -37,6 +37,17 @@
"database transactions. Basically, use Hibernate Entity Manager like you "
"would use direct JDBC (or JTA/CMT) with your database resources."
msgstr ""
+"Le plus important concernant Hibernate Entity Manager et le contrôle de "
+"concurrence, c'est que c'est très facile à comprendre. Hibernate Entity "
+"Manager utilise directement les connexions JDBC et les ressources JTA sans y "
+"ajouter aucun comportement de verrouillage supplémentaire. Nous recommandons "
+"fortement que vous passiez un certain temps avec JDBC, ANSI, et la "
+"spécification d'isolation de transaction de votre système de gestion de base "
+"de données. Hibernate Entity Manager ne fait que d'ajouter un 'versioning' "
+"automatique, mais ne verrouille pas les objets en mémoire, ni ne change le "
+"niveau d'isolation de vos transactions de bases de données. En fait, "
+"utilisez Hibernate Entity Manager comme vous utiliseriez directement JDBC "
+"(ou JTA/CMT) avec vos ressources de bases de données."
#. Tag: para
#: transactions.xml:40
@@ -47,10 +58,14 @@
"<literal>EntityManager</literal>, as well as database transactions and long "
"units of work.."
msgstr ""
+"Nous commençons la discussion sur le contrôle de concurrence d'Hibernate par "
+"la granularité de <literal>EntityManagerFactory</literal>, et "
+"d'<literal>EntityManager</literal>, ainsi que des transactions de bases de "
+"données et des longues unités de travail ..."
#. Tag: para
#: transactions.xml:45
-#, no-c-format
+#, fuzzy, 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 "
@@ -61,12 +76,22 @@
"entity manager. Please refer to <xref linkend=\"architecture-ejb-"
"persistctxscope\"/> for more information."
msgstr ""
+"Dans ce chapitre, et à moins que ce soit explicitement demandé, nous allons "
+"mélanger et faire correspondre le concept de gestionnaire d'entité au "
+"contexte de persistance. L'un correspond à un API et à un objet de "
+"programmation, et l'autre à une définition de portée. Cependant, veuillez "
+"garder à l'esprit la différence. Un contexte persistant est normalement lié "
+"à une transaction JTA de Java EE, et un contexte persistant commence et se "
+"termine aux limites d'une transaction (transaction-scoped) à moins que vous "
+"utilisiez un gestionnaire d'entités extended. Veuillez vous reporter à <xref "
+"linkend=\"EJB_container_environment-Persistence_context_scope\"/> pour "
+"davantage d'informations."
#. Tag: title
#: transactions.xml:55
#, no-c-format
msgid "Entity manager and transaction scopes"
-msgstr ""
+msgstr "Gestionnaire d'entités et portées de transactions"
#. Tag: para
#: transactions.xml:57
@@ -76,6 +101,10 @@
"threadsafe object intended to be shared by all application threads. It is "
"created once, usually on application startup."
msgstr ""
+"Un <literal>EntityManagerFactory</literal> est un objet threadsafe coûteux à "
+"créer (expensive-to-create) destiné à être partagé par tous les threads "
+"d'applications. C'est créé une fois, normalement au démarrage de "
+"l'application."
#. Tag: para
#: transactions.xml:61
@@ -91,6 +120,15 @@
"soon as you are implementing some of the following patterns using request "
"interception.)"
msgstr ""
+"Un <literal>EntityManager</literal> est un objet non-threadsafe qui devrait "
+"être utilisé qu'une seule fois, pour un processus commercial simple, une "
+"simple unité de travail, puis être abandonné. Un <literal>EntityManager</"
+"literal> n'obtiendra pas une <literal>Connection</literal> JDBC (ou bien une "
+"<literal>Datasource</literal>) à moins que ce soit utile, donc vous pouvez "
+"ouvrir ou fermer <literal>EntityManager</literal> sans dangers, même si vous "
+"n'êtes pas sûr que l'accès aux données soit utile pour une requête "
+"particulière. (Cela devient important quand vous implémentez certains des "
+"modèles suivants, en utilisant l'interception de requêtes.)"
#. Tag: para
#: transactions.xml:72
@@ -101,6 +139,11 @@
"contention in the database. Long database transactions will prevent your "
"application from scaling to highly concurrent load."
msgstr ""
+"Pour compléter ce tableau, n'oubliez pas les transactions de bases de "
+"données. Une transaction de base de données doit être aussi courte que "
+"possible, pour réduire la contention de verrouillage dans la base de "
+"données. Les transactions de bases de données longues empêcheront que votre "
+"application ajuste son échelle à des charges concurrentes élevées."
#. Tag: para
#: transactions.xml:77
@@ -112,16 +155,21 @@
"<literal>Session</literal> and how do you demarcate the database transaction "
"boundaries?"
msgstr ""
+"Quelle est la portée d'une unité de travail ? Est-ce qu'un simple "
+"<literal>EntityManager</literal> Hibernate peut couvrir plusieurs "
+"transactions de bases de données ou est-ce une relation de portée one-to-"
+"one ? Quand doit-on ouvrir ou fermer une <literal>Session</literal> et "
+"comment doit-on démarquer les limites des transactions de bases de données ?"
#. Tag: title
#: transactions.xml:84
#, no-c-format
msgid "Unit of work"
-msgstr ""
+msgstr "Unité de travail"
#. Tag: para
#: transactions.xml:86
-#, no-c-format
+#, fuzzy, 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</"
@@ -132,6 +180,14 @@
"is useless in an application, this mode is intended for ad-hoc SQL console "
"work.)"
msgstr ""
+"Tout d'abord, ne pas utiliser l'antipattern, c'est à dire n'ouvrez pas et ne "
+"fermez pas un <literal>EntityManager</literal> pour chaque simple base de "
+"données dans un thread unique ! Biensûr, c'est la même chose pour les "
+"transactions de bases de données. Les appels de bases de données d'une "
+"application sont faits à l'aide d'une séquence planifiée, ils sont regroupés "
+"dans des unités atomiques de travail. (Notez que cela signifie également "
+"qu'auto-commit après chaque énoncé SQL simple est inutile dans une "
+"application, ce mode est réservé au travail de console as-hoc SQL.)"
#. Tag: para
#: transactions.xml:96
@@ -148,10 +204,21 @@
"clients request. The relationship between the two is one-to-one and this "
"model is a perfect fit for many applications."
msgstr ""
+"Le modèle le plus commun d'une application client/serveur multi-utilisateur, "
+"est <emphasis>entitymanager-per-request</emphasis>. Dans ce modèle, une "
+"requête du client est envoyée au serveur (où la couche de persistance EJB3 "
+"est exécutée), un nouvel <literal>EntityManager</literal> est ouvert, et "
+"toutes les opérations de base de données sont exécutées dans cette unité de "
+"travail. Une fois que le travail est terminé (et que la réponse du client a "
+"été préparée), le contexte de persistance est purgé et fermé, tout comme "
+"l'objet de gestionnaire d'entités. Vous utiliseriez également une "
+"transaction de base de données simple pour servir la demande des clients. La "
+"relation entre les deux est one-to-one et ce modèle est parfait pour de "
+"nombreuses applications."
#. Tag: para
#: transactions.xml:108
-#, no-c-format
+#, fuzzy, 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) "
@@ -160,10 +227,18 @@
"anymore and just see data access through entity manager and demaraction of "
"transaction scope on session beans as completely orthogonal."
msgstr ""
+"Il s'agit du modèle de persistance EJB3 par défaut dans un environnement "
+"Java EE (borné JTA, contexte de persistance transaction-scoped), les "
+"gestionnaires d'entité injectés (ou consultés) partagent le même contexte de "
+"persistance pour une transaction JTA donnée. Le bon côté d'EJB3, c'est que "
+"vous n'avez plus besoin de vous en inquiéter; vous avez juste besoin "
+"d'observer l'accès des données par le gestionaire d'entités et la "
+"démarcation de la portée de transaction sur les beans de session comme "
+"complètement orthogonale."
#. Tag: para
#: transactions.xml:116
-#, no-c-format
+#, fuzzy, 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 "
@@ -188,12 +263,38 @@
"your first choice is naturally an EJB3 container - preferably a light and "
"modular one such as JBoss application server."
msgstr ""
+"La difficulté, c'est l'implémentation de ce (et cet autre) comportement en "
+"dehors d'un conteneur EJB3 : non seulement <literal>EntityManager</literal> "
+"et la transaction resource-local doivent être démarrés et terminés "
+"convenablement, mais ils doivent aussi être accessibles aux opérations "
+"d'accès aux données. La démarcation d'une unité de travail est par idéal "
+"implémentée en utilisant un intercepteur qui exécute quand une requête "
+"atteint le serveur de conteneur EJB3 et avant que la réponse ne soit envoyée "
+"(c'est à dire <literal>ServletFilter</literal> si vous utilisez un conteneur "
+"de servlet autonome). Nous recommandons d'établir la liaison entre "
+"l'<literal>EntityManager</literal> et le thread qui dessert la requête, par "
+"la variable <literal>ThreadLocal</literal>. Cela permet l'accès aisé (comme "
+"accéder une variable statique) pour tout code exécuté par ce thread. Suivant "
+"le mécanisme de démarcation de transaction de la base de données que vous "
+"choisirez, vous souhaiterez sans doute conserver le contexte de transaction "
+"sous forme d'une variable <literal>ThreadLocal</literal>. Leurs modèles "
+"d'implémentation sont connus sous le nom de <emphasis>ThreadLocal Session</"
+"emphasis> et de <emphasis>Open Session in View</emphasis> dans la communauté "
+"Hibernate. Vous pouvez facilement étendre <literal>HibernateUtil</literal> "
+"comme montré dans la documentation de référence Hibernate, pour implémenter "
+"ce modèle; vous n'aurez pas besoin de logiciel externe (c'est, en fait, "
+"assez trivial). Biensûr, vous devrez trouver un moyen d'implémenter un "
+"intercepteur et de le configurer en fonction de votre environnement. "
+"Consultez le site Hibernate pour des conseils et des exemples. Une fois de "
+"plus, rappelez-vous que votre premier choix est normalement un conteneur "
+"EJB3 - de préférence léger et modulaire, comme le serveur d'application "
+"JBoss."
#. Tag: title
#: transactions.xml:144
#, no-c-format
msgid "Long units of work"
-msgstr ""
+msgstr "Long unités de travail"
#. Tag: para
#: transactions.xml:146
@@ -206,6 +307,13 @@
"span a user interaction with possibly long waiting time between requests. "
"Consider the following example:"
msgstr ""
+"Le modèle entitymanager-per-request n'est pas le seul concept utile que vous "
+"pouvez utiliser pour concevoir des unités de travail. De nombreux processus "
+"commerciaux ont besoin de séries complètes d'interactions avec l'utilisateur "
+"entrelacées aux accès base de données. Dans les applications web et "
+"enterprise, il n'est pas de rigueur pour une transaction de base de données "
+"de couvrir une interaction d'utilisateur interrompue par de longues périodes "
+"d'attente entre les demandes. Voir l'exemple suivant :"
#. Tag: para
#: transactions.xml:156
@@ -215,6 +323,10 @@
"loaded in a particular <literal>EntityManager</literal> and resource-local "
"transaction. The user is free to modify the detached objects."
msgstr ""
+"Le premier écran d'un dialogue ouvre, les données visualisées par "
+"l'utilisateur ont été chargées dans un <literal>EntityManager</literal> "
+"particulier et dans une transaction resource-local. L'utilisateur est libre "
+"de modifier les objets détachés."
#. Tag: para
#: transactions.xml:163
@@ -224,6 +336,10 @@
"made persistent; he also expects that he was the only person editing this "
"information and that no conflicting modification can occur."
msgstr ""
+"L'utilisateur devra cliquer sur \"Save\" au bout de 5 minutes en espérant "
+"que ses modifications seront persistantes; il espère également qu'il était "
+"la seule personne entrain de modifier cette information et qu'aucune autre "
+"modification ne rentre en conflit au même moment."
#. Tag: para
#: transactions.xml:170
@@ -233,6 +349,9 @@
"running <emphasis>application transaction</emphasis>. There are many ways "
"how you can implement this in your application."
msgstr ""
+"Nous appelons cette unité de travail, du point de vue de l'utilisateur, une "
+"<emphasis>transaction d'application</emphasis> 'long running'. Il y a "
+"plusieurs façons d'implémenter cela dans votre application."
#. Tag: para
#: transactions.xml:174
@@ -245,6 +364,13 @@
"lock contention would not allow the application to scale with the number of "
"concurrent users."
msgstr ""
+"Une implémentation naive qui nous vient à l'esprit consiste à garder la "
+"transaction de base de données et l' <literal>EntityManager</literal> ouvert "
+"pendant la durée de réflexion de l'utilisateur, avec les verrous conservés "
+"dans la base de données pour empêcher toute modification concurrente, et "
+"pour garantir l'isolation et l'atomicité. C'est évidemment un antipattern, "
+"une approche pessimiste, puisque la contention de verrouillage ne permettait "
+"pas à l'application de s'adapter au nombre d'utilisateurs concurrents."
#. Tag: para
#: transactions.xml:182
@@ -260,6 +386,17 @@
"implement than it might sound, especially if you use EJB3 entity manager and "
"persistence context features:"
msgstr ""
+"Il est clair que nous devons utiliser plusieurs bases de données de "
+"transactions pour implémenter la transaction de l'application. Dans ce cas, "
+"maintenir l'isolation des processus commerciaux devient en partie la "
+"responsabilité de l'application tier. Une transaction d'application simple "
+"couvre normalement plusieurs transactions de base de données. Elle sera "
+"atomique uniquement si une de ces transactions de base de données (la "
+"dernière) stocke les données mises à jour, toutes les autres se contentent "
+"de lire les données (par ex. dans un dialogue style-wizard qui couvre "
+"plusieurs cycles réponse/demande). Cela est plus facile à implémenter qu'il "
+"ne semble, surtout si vous utilisez le gestionnaire d'entités EJB3 et les "
+"fonctionnalités de contexte de persistance :"
#. Tag: para
#: transactions.xml:195
@@ -271,6 +408,12 @@
"by comparing version numbers or timestamps when updating the data in the "
"final resource-local transaction)."
msgstr ""
+"<emphasis>Automatic Versioning</emphasis> - Un gestionnaire d'entités peut "
+"procéder à des contôles de concurrence optimiste automatique pour vous, et "
+"peut automatiquement détecter si une modification concurrente a eu lieu "
+"pendant le temps de réflexion de l'utilisateur (user think time) (en "
+"comparant normalement les nombres de version ou les dates de mise à jour des "
+"données dans la transaction resource-local finale)."
#. Tag: para
#: transactions.xml:204
@@ -284,6 +427,14 @@
"with-detached-entities</emphasis>. Automatic versioning is used to isolate "
"concurrent modifications."
msgstr ""
+"<emphasis>Detached Entities</emphasis> - Si vous décidez d'utiliser le "
+"modèle <emphasis>entity-per-request</emphasis> dont nous avons déjà discuté, "
+"toutes les instances chargées seront en état \"détaché\" pendant le temps de "
+"réflexion de l'utilisateur. Le gestionnaire d'entités vous permet de merger "
+"l'état (modifié) détaché et de persister les modifications, le modèle "
+"s'appelle <emphasis>entitymanager-per-request-with-detached-entities</"
+"emphasis>. Le versioning automatique est utilisé pour isoler les "
+"modifications concurrentes."
#. Tag: para
#: transactions.xml:216
@@ -300,6 +451,18 @@
"queued modifications. Automatic versioning is used to isolate concurrent "
"modifications."
msgstr ""
+"<emphasis>Extended Entity Manager</emphasis> - Hibernate Entity Manager peut "
+"être disconnecté de la connexion JDBC sous-jacente entre deux appels de "
+"clients et reconnecté quand une nouvelle requête de client a lieu. Ce modèle "
+"s'appelle <emphasis>entitymanager-per-application-transaction</emphasis> et "
+"rend même la fusion inutile. Un contexte de persistance extended est "
+"responsable de collecter et de retenir toute modification (persist/"
+"persister, merge/fusionner, remove/supprimer) effectuée à l'extérieur de la "
+"transaction. Le prochain appel du client fait à l'intérieur d'une "
+"transaction active (normalement la dernière opération d'une conversation "
+"d'utilisateur) va exécuter toutes les modifications en attente. Le "
+"versioning automatique est utilisé pour isoler les modifications "
+"concurrentes."
#. Tag: para
#: transactions.xml:230
@@ -310,18 +473,22 @@
"advantages and disadvantages, we discuss them later in this chapter in the "
"context of optimistic concurrency control."
msgstr ""
+"<emphasis>entitymanager-per-request-with-detached-objects</emphasis> et "
+"<emphasis>entitymanager-per-application-transaction</emphasis> ont tous les "
+"deux des avantages et des inconvénients dont nous discuterons plus tard dans "
+"ce chapitre dans le contexte de concurrence optimiste."
#. Tag: para
#: transactions.xml:236
#, no-c-format
msgid "TODO: This note should probably come later."
-msgstr ""
+msgstr "TODO: This note should probably come later."
#. Tag: title
#: transactions.xml:240
#, no-c-format
msgid "Considering object identity"
-msgstr ""
+msgstr "Considérer l'identité des objets"
#. Tag: para
#: transactions.xml:242
@@ -332,30 +499,34 @@
"never shared between two persistence contexts. Hence there are two different "
"notions of identity:"
msgstr ""
+"Une application peut accéder concurremment le même état de persistance dans "
+"deux contextes de persistance séparés. Cependant, une instance de classe "
+"gérée n'est jamais partagée entre deux contextes de persistance. Donc, il "
+"existe deux notions séparées d'identité :"
#. Tag: term
#: transactions.xml:249
#, no-c-format
msgid "Database Identity"
-msgstr ""
+msgstr "Identité de base de données"
#. Tag: literal
#: transactions.xml:253
#, no-c-format
msgid "foo.getId().equals( bar.getId() )"
-msgstr ""
+msgstr "foo.getId().equals( bar.getId() )"
#. Tag: term
#: transactions.xml:259
#, no-c-format
msgid "JVM Identity"
-msgstr ""
+msgstr "Identité JVM"
#. Tag: literal
#: transactions.xml:263
#, no-c-format
msgid "foo==bar"
-msgstr ""
+msgstr "foo==bar"
#. Tag: para
#: transactions.xml:269
@@ -370,10 +541,20 @@
"\"different\" (JVM identity). Conflicts are resolved using (automatic "
"versioning) at flush/commit time, using an optimistic approach."
msgstr ""
+"Donc, pour les objets attachés à un contexte de persistance "
+"<emphasis>particulier</emphasis> (c'est à dire dans le cadre "
+"d'<literal>EntityManager</literal>), les deux notions sont équivalentes, et "
+"l'identité JVM de l'identité de la base de données est garantie par le "
+"gestionnaire Hibernate Entity Manager. Cependant, alors que l'application "
+"pourrait accéder concurremment au \"même\" objet commercial (identité "
+"persistance) dans deux contextes de persistance différents, les deux "
+"instances seront en fait \"différentes\" (identité JVM). Les conflits sont "
+"résolus en utilisant un temps de vidage/validation (versioning automatique), "
+"en approche optimiste."
#. Tag: para
#: transactions.xml:279
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"This approach leaves Hibernate and the database to worry about concurrency; "
"it also provides the best scalability, since guaranteeing identity in single-"
@@ -383,10 +564,19 @@
"literal>. Within a persistence context, the application may safely use "
"<literal>==</literal> to compare entities."
msgstr ""
+"Cette approche permet à Hibernate et à la base de données de s'inquiéter de "
+"la concurrence; et fournit également la meilleure montée en capacité, dans "
+"la mesure où garantir l'identité dans des unités de travail single-threaded "
+"uniquement, ne requiert pas de verrouillage coûteux et autre moyen de "
+"synchronisation. L'application n'a jamais besoin de se synchroniser à des "
+"objets commerciaux, dans la mesure où elle se cantonne à une seul thread par "
+"<literal>EntityManager</literal>. Dans un contexte de persistance, "
+"l'application pourrait utiliser <literal>==</literal> en toute sécurité, "
+"pour comparer les entités."
#. Tag: para
#: transactions.xml:288
-#, no-c-format
+#, fuzzy, 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 "
@@ -409,12 +599,35 @@
"that this is not a Hibernate issue, but simply how Java object identity and "
"equality has to be implemented."
msgstr ""
+"Cependant, une application qui utilise <literal>==</literal> en dehors d'un "
+"contexte de persistance, peut s'attendre à des résultats inattendus. Cela "
+"peut également avoir lieu dans des endroits particuliers, par exemple, quand "
+"vous mettez deux instances dans le même <literal>Set</literal>. Elles "
+"peuvent toutes deux posséder la même identité (c'est à dire représenter la "
+"même rangée), mais l'identité JVM n'est, par définition, pas garantie pour "
+"les instances en état détaché. Le développeur devra surcharger les méthodes "
+"<literal>equals()</literal> et <literal>hashCode()</literal> dans les "
+"classes persistantes et implémenter sa propre notion d'égalité d'objet. "
+"Avertissement : ne jamais utiliser l'identifiant de la base de données pour "
+"implémenter l'égalité, utiliser une clé commerciale, une combinaison "
+"d'attributs uniques, normalement non mutables. L'identifiant de la base de "
+"données changera si une entité transiente est rendue persistante (voir le "
+"contrat de l'opération <literal>persist()</literal>). Si l'instance "
+"transiente (normalement associée aux instances détachées) est contenue dans "
+"un <literal>Set</literal>, changer les codes de hachage rompt le contrat du "
+"<literal>Set</literal>. Les attributs des bonnes clés commerciales n'ont pas "
+"besoin d'être aussi stables que les clés primaires de bases de données, vous "
+"avez juste à garantir la stabilité tant que les objets sont dans le même "
+"<literal>Set</literal>. Voir le site internet Hibernate pour une discussion "
+"plus pointue sur le sujet. Aussi, notez qu'il ne s'agit pas d'un problème "
+"Hibernate, mais simplement un problème qui porte sur la façon dont "
+"l'identité et l'égalité d'objets Java doit être implémentée."
#. Tag: title
#: transactions.xml:312
#, no-c-format
msgid "Common concurrency control issues"
-msgstr ""
+msgstr "Problèmes communs de contrôle de concurrence "
#. Tag: para
#: transactions.xml:314
@@ -428,6 +641,14 @@
"appear with the recommended patterns, make sure you understand the "
"implications before making a design decision:"
msgstr ""
+"Ne jamais utiliser les antipatterns <emphasis>entitymanager-per-user-"
+"session</emphasis> ou <emphasis>entitymanager-per-application</emphasis> "
+"( il y a biensûr de rares exceptions à cette règle, par ex. entitymanager-"
+"per-application peut être toléré pour une application desktop, avec vidage "
+"manuel du contexte de persistance). Notez que certains des problèmes "
+"suivants peuvent également apparaître dans les modèles conseillés; soyez "
+"certains d'avoir bien compris les implications avant de prendre une décision "
+"au niveau du design :"
#. Tag: para
#: transactions.xml:325
@@ -443,10 +664,21 @@
"concurrently running threads. You will very likely have provisions for this "
"case already in place, for other non-threadsafe but session-scoped objects."
msgstr ""
+"Un gestionnaire d'entités n'est pas thread-safe. Les choses qui sont "
+"supposées fonctionner en concurrence, comme les requêtes HTTP, les beans de "
+"session, ou les Swing workers, connaîtront des conditions de concurrence si "
+"une instance <literal>EntityManager</literal> est partagée. Si vous "
+"conservez l'<literal>EntityManager</literal> Hibernate dans votre "
+"<literal>HttpSession</literal> (on développe plus loin), vous devriez "
+"considérer synchroniser l'accès à votre session Http. Sinon, un utilisateur "
+"qui clique sur rechargement suffisamment rapidement, pourra utiliser le même "
+"<literal>EntityManager</literal> dans deux threads exécutés concurremment. "
+"Vous aurez probablement des provisions en place pour ce cas, pour d'autres "
+"objets non-threadsafe, mais session-scoped."
#. Tag: para
#: transactions.xml:340
-#, no-c-format
+#, fuzzy, 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> "
@@ -459,10 +691,21 @@
"recoverable and you have to start over your unit of work after rollback "
"anyway."
msgstr ""
+"L'exception lancée par l'Entity Manager implique que vous devez restaurer "
+"votre transaction de base de données et fermer l'<literal>EntityManager</"
+"literal> immédiatement (abordé plus loin en détails). Si votre "
+"<literal>EntityManager</literal> est lié à l'application, vous devrez faire "
+"cesser l'application. Restaurer la transaction de base de données ne "
+"restaure pas vos objets commerciaux dans l'état dans lequel ils étaient au "
+"départ de la transaction. Cela implique que l'état de la base de données et "
+"que les objets commerciaux deviennent désynchronisés. Normalement, ce n'est "
+"pas un problème, car les exceptions ne sont pas recouvrables et vous devrez "
+"reprendre du début votre unité de travail après un recouvrement de toutes "
+"façons."
#. Tag: para
#: transactions.xml:354
-#, no-c-format
+#, fuzzy, 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 "
@@ -475,16 +718,29 @@
"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 ""
+"Le contexte de persistance cache tout objet en état géré (état dirty étant "
+"observé et vérifié par Hybernate). Cela signifie qu'il s'agrandit "
+"indéfiniement jusqu'à ce que l'on obtienne une "
+"<classname>OutOfMemoryException</classname>, si vous le gardez ouvert "
+"longtemps ou si vous chargez trop de données, tout simplement. Une solution "
+"à ce problème réside dans une sorte de traitement de batches accompagné de "
+"vidages du contexte de persistance régulier, mais vous devrez considérer "
+"utiliser une procédure stockée en base de données si vous avez besoin "
+"d'opérations de données massives. Des solutions à ce problème sont exposées "
+"dans <xref linkend=\"Batch_processing\"/>. La maintenance d'un contexte de "
+"persistance ouvert pour la durée d'une session d'utilisation, implique "
+"également une forte probabilité de données obsolètes, dont vous devez avoir "
+"conscience, et donc contrôler en fonction."
#. Tag: title
#: transactions.xml:372
#, no-c-format
msgid "Database transaction demarcation"
-msgstr ""
+msgstr "Démarcation de transaction de base de données"
#. Tag: para
#: transactions.xml:374
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"Datatabase (or system) transaction boundaries are always necessary. No "
"communication with the database can occur outside of a database transaction "
@@ -496,6 +752,17 @@
"though, when you'll need to retain modifications in an <literal>EXTENDED</"
"literal> persistence context."
msgstr ""
+"Les limites de transaction de base de données (ou de systèmes) sont toujours "
+"utiles. Il ne peut pas y avoir de communication avec la base de données en "
+"dehors de la transaction de base de données (cela semble porter la confusion "
+"pour de nombreux développeurs qui sont habitués au mode auto-commit). "
+"Utilisez à tout moment des limites de transactions claires, même pour les "
+"opérations en lecture-seule. Suivant votre niveau d'isolation et les "
+"possibilités de votre base de données, ce n'est pas forcément obligatoire, "
+"mais il n'y a pas de conséquences néfastes si vous démarquez toujours les "
+"transactions explicitement. Vous devrez effectuer les opérations en dehors "
+"d'une transaction, mais, quand vous aurez besoin de conserver des "
+"modifications dans un contexte de persistance <literal>EXTENDED</literal> ."
#. Tag: para
#: transactions.xml:384
@@ -512,12 +779,26 @@
"Programmatic transaction demarcation is then no longer necessary, even "
"flushing the <literal>EntityManager</literal> is done automatically."
msgstr ""
+"Une application EJB3 peut exécuter dans des environnements J2EE gérés ou non "
+"gérés (c'est à dire applications autonomes, Web- simples ou Swing). Dans un "
+"environnement non-géré, une <literal>EntityManagerFactory</literal> est "
+"normalement responsable pour son propre pool de connexions aux databases. Le "
+"développeur d'applications doit fixer les limites des transactions "
+"manuellement, autrement dit, commencer, valider, ou recouvrer les "
+"transactions de bases de données lui-même. Une environnement géré fournit "
+"normalement des transaction container-managed, avec le transaction assembly "
+"déterminé déclarativement par des annotations de beans de session EJB, par "
+"exemple. La démarcation de transaction programmatique n'est plus alors "
+"nécessaire, même le vidage d'<literal>EntityManager</literal> est fait "
+"automatiquement."
#. Tag: para
#: transactions.xml:396
#, no-c-format
msgid "Usually, ending a unit of work involves four distinct phases:"
msgstr ""
+"Normalement, la réalisation d'une unité de travail comprend quatre phases "
+"bien distinctes :"
#. Tag: para
#: transactions.xml:400
@@ -526,6 +807,8 @@
"commit the (resource-local or JTA) transaction (this automatically flushes "
"the entity manager and persistence context)"
msgstr ""
+"valide la transaction (resource-local ou JTA) (cela vide automatiquement le "
+"gestionnaire d'entités et le contexte de persistance)"
#. Tag: para
#: transactions.xml:406
@@ -533,36 +816,45 @@
msgid ""
"close the entity manager (if using an application-managed entity manager)"
msgstr ""
+"ferme le gestionnaire d'entités (si vous utilisez un gestionnaire d'entités "
+"application-managed)"
#. Tag: para
#: transactions.xml:411
#, no-c-format
msgid "handle exceptions"
-msgstr ""
+msgstr "Gère les exceptions"
#. Tag: para
#: transactions.xml:415
-#, no-c-format
+#, fuzzy, 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 ""
+"Nous allons maintenant observer de plus près la démarcation de transactions "
+"et la gestion d'exceptions dans des environnements gérés ou non gérés."
#. Tag: title
#: transactions.xml:419
#, no-c-format
msgid "Non-managed environment"
-msgstr ""
+msgstr "Environnements non gérés"
#. Tag: para
#: transactions.xml:421
-#, no-c-format
+#, fuzzy, 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 ""
+"Si une couche de persistance EJB3 est exécutée dans un environnement non "
+"géré, les connexions à la base de données sont normalement gérées par le "
+"mécanisme de mise en commun (pooling) d'Hibernate en arrière plan. Le "
+"gestionnaire d'entités commun et l'idiom de gestion des transactions "
+"ressemblent à ce qui suit :"
#. Tag: programlisting
#: transactions.xml:426
@@ -588,15 +880,37 @@
" em.close();\n"
"}"
msgstr ""
+"// Non-managed environment idiom\n"
+"EntityManager em = emf.createEntityManager();\n"
+"EntityTransaction tx = null;\n"
+"try {\n"
+" tx = em.getTransaction();\n"
+" tx.begin();\n"
+"\n"
+" // do some work\n"
+" ...\n"
+"\n"
+" tx.commit();\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+" if ( tx != null && tx.isActive() ) tx.rollback();\n"
+" throw e; // or display error message\n"
+"}\n"
+"finally {\n"
+" em.close();\n"
+"}"
#. Tag: para
#: transactions.xml:428
-#, no-c-format
+#, fuzzy, 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 ""
+"Vous n'êtes pas obligés de <literal>flush()</literal> (vider) l' "
+"<literal>EntityManager</literal> explicitement - l'appel vers <literal>commit"
+"()</literal> déclenche automatiquement la synchronisation."
#. Tag: para
#: transactions.xml:433
@@ -607,6 +921,10 @@
"literal> is the release of resources - make sure you always close and never "
"outside of guaranteed finally block."
msgstr ""
+"Un appel vers <literal>close()</literal> marque la fin d'un "
+"<literal>EntityManager</literal>. L'implication principale de <literal>close"
+"()</literal> est la libération des ressources - veillez bien à toujours "
+"fermer et jamais en dehors du bloc <literal>finally</literal> garanti."
#. Tag: para
#: transactions.xml:438
@@ -621,21 +939,33 @@
"container services whenever they are available. Exception handling is "
"discussed later in this chapter."
msgstr ""
+"Vous ne verrez sans doute jamais cet idiom en code commercial dans une "
+"application normale. Les exceptions (de système) fatales doivent toujours "
+"être interceptées par le \"haut\". Autrement dit, le code qui exécute des "
+"appels de gestionnaires d'entités (dans la couche de persistance) et le code "
+"qui gère <literal>RuntimeException</literal> (et qui ne peuvent normalement "
+"que nettoyer ou sortir) sont dans des couches différentes. Cela peut être "
+"difficile à concevoir par vous-même et vous devez utiliser les services de "
+"conteneurs J2EE/EJB quand ils sont disponibles. La gestion d'exceptions est "
+"discutée plus loin dans ce chapitre."
#. Tag: title
#: transactions.xml:449
#, no-c-format
msgid "EntityTransaction"
-msgstr ""
+msgstr "EntityTransaction"
#. Tag: para
#: transactions.xml:451
-#, no-c-format
+#, fuzzy, 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 ""
+"Dans un environnement JTA, vous n'avez pas besoin d'API supplémentaires pour "
+"interagir avec la transaction dans votre environnement. Utilisez tout "
+"simplement une déclaration de transaction ou des API JTA."
#. Tag: para
#: transactions.xml:455
@@ -656,6 +986,21 @@
"will try to rollback the transaction and raise a <literal>javax.transaction."
"RollbackException</literal>."
msgstr ""
+"Si vous utilisez un gestionnaire d'entités <literal>RESOURCE_LOCAL</"
+"literal>, vous aurez besoin de démarquer les limites de votre transaction "
+"par l'API <literal>EntityTransaction</literal>. Vous pourrez obtenir un "
+"<literal>EntityTransaction</literal> par <literal>entityManager."
+"getTransaction()</literal>. Cet API <literal>EntityTransaction</literal> "
+"fournit les méthodes habituelles <methodname>begin()</methodname>, "
+"<methodname>commit()</methodname>, <methodname>rollback()</methodname> et "
+"<methodname>isActive()</methodname>. Il fournit également une façon de "
+"marquer une transaction en tant que rollback, c'est à dire qu'il force la "
+"transaction à recouvrer. Cela ressemble à l'opération JTA "
+"<methodname>setRollbackOnly()</methodname>. Quand une opération "
+"<literal>commit()</literal> (de validation) échoue et/ou si la transaction "
+"est marquée <literal>setRollbackOnly()</literal>, la méthode <literal>commit"
+"()</literal> essaiera de recouvrer la transaction et de soulever une "
+"<literal>javax.transaction.RollbackException</literal>."
#. Tag: para
#: transactions.xml:473
@@ -664,12 +1009,14 @@
"In a <literal>JTA</literal> entity manager, <literal>entityManager."
"getTransaction()</literal> calls are not permitted."
msgstr ""
+"Dans un gestionnaire d'entités <literal>JTA</literal>, les appels "
+"<literal>entityManager.getTransaction()</literal> ne sont pas permis."
#. Tag: title
#: transactions.xml:480
#, no-c-format
msgid "Using JTA"
-msgstr ""
+msgstr "Utiliser JTA"
#. Tag: para
#: transactions.xml:482
@@ -680,6 +1027,11 @@
"entity manager will automatically be part of the global JTA transaction. "
"Hibernate offers two strategies for this integration."
msgstr ""
+"Si votre couche de persistance est exécutée dans un serveur d'applications "
+"(par exemple derrière les beans de session EJB3), toute connexion à la base "
+"de données qui est obtenue en interne par le gestionnaire d'entités fera "
+"partie automatiquement de la transaction globale JTA. Hibernate propose deux "
+"stratégies pour cette intégration."
#. Tag: para
#: transactions.xml:488
@@ -687,6 +1039,8 @@
msgid ""
"If you use bean-managed transactions (BMT), the code will look like this:"
msgstr ""
+"Si vous utilisez des transactions gérées-beans (BMT de l'anglais bean-"
+"managed transactions), le code ressemblera à ce qui suit :"
#. Tag: programlisting
#: transactions.xml:491
@@ -713,10 +1067,30 @@
" em.close();\n"
"}"
msgstr ""
+"// BMT idiom\n"
+"@Resource public UserTransaction utx;\n"
+"@Resource public EntityManagerFactory factory;\n"
+"\n"
+"public void doBusiness() {\n"
+" EntityManager em = factory.createEntityManager();\n"
+" try {\n"
+"\n"
+" // do some work\n"
+" ...\n"
+"\n"
+" utx.commit();\n"
+"}\n"
+"catch (RuntimeException e) {\n"
+" if (utx != null) utx.rollback();\n"
+" throw e; // or display error message\n"
+"}\n"
+"finally {\n"
+" em.close();\n"
+"}"
#. Tag: para
#: transactions.xml:493
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"With Container Managed Transactions (CMT) in an EJB3 container, transaction "
"demarcation is done in session bean annotations or deployment descriptors, "
@@ -729,6 +1103,18 @@
"<literal>RuntimeException</literal>s they will rollback the transaction as "
"per the EJB specification (system exception vs. application exception)."
msgstr ""
+"Avec Container Managed Transactions (CMT) dans un conteneur EJB3, la "
+"démarcation de transaction est faite dans des annotations de beans de "
+"session ou par des descripteurs de déploiement, mais pas par programmation. "
+"L'<literal>EntityManager</literal> va être automatiquement vidé en fin de "
+"transaction (et si vous avez injecté ou si vous avez consulté "
+"l'<literal>EntityManager</literal>, il sera également fermé "
+"automatiquement). Si vous apercevez une exception en cours d'utilisation, le "
+"recouvrement de transaction a lieu automatiquement si vous n'interceptez pas "
+"l'exception. Comme les exceptions <literal>EntityManager</literal> sont des "
+"<literal>RuntimeException</literal>, elles vont recouvrer la transaction "
+"suivant les spécifications EJB (exceptions de système vs. exceptions "
+"d'application)."
#. Tag: para
#: transactions.xml:506
@@ -739,10 +1125,14 @@
"to also set <literal>org.hibernate.transaction.manager_lookup_class</"
"literal>."
msgstr ""
+"Il est important de laisser à Hibernate EntityManager le soin de définir "
+"<literal>hibernate.transaction.factory_class</literal> (c'est à dire de ne "
+"pas surcharger cette valeur). N'oubliez pas de configurer également "
+"<literal>org.hibernate.transaction.manager_lookup_class</literal>."
#. Tag: para
#: transactions.xml:511
-#, no-c-format
+#, fuzzy, 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 "
@@ -755,6 +1145,18 @@
"new one and bind it (see <xref linkend=\"architecture-ejb-"
"persistctxpropagation\"/> .)"
msgstr ""
+"Si vous travaillez dans un environnement CMT, vous souhaiterez peut-être "
+"également utiliser le même gestionnaire d'entités pour différentes parties "
+"de votre code. Normalement, dans un environnement non-géré, vous pourrez "
+"utilisez une variable <literal>ThreadLocal</literal> pour contenir le "
+"gestionnaire d'entités, mais une simple requête EJB peut exécuter des "
+"threads différents (par exemple des beans de sessions appelant d'autres "
+"beans de session). Le conteneur EJB3 s'occupe de la propagation du contexte "
+"de persistance pour vous. En utilisant injection ou lookup, le conteneur "
+"EJB3 retournera un gestionnaire d'entités avec le même contexte de "
+"persistance lié au contexte JTA s'il existe, ou en créera un nouveau et le "
+"liera (voir <xref linkend=\"EJB_container_environment-"
+"Persistence_context_propagation\"/>.)"
#. Tag: para
#: transactions.xml:522
@@ -763,6 +1165,8 @@
"Our entity manager/transaction management idiom for CMT and EJB3 container-"
"use is reduced to this:"
msgstr ""
+"Notre idiom de gestion de transaction /de gestionnaire d'entités pour "
+"l'utilisation conteneur CMT ou EJB3 est réduit à ceci :"
#. Tag: programlisting
#: transactions.xml:525
@@ -771,6 +1175,8 @@
"//CMT idiom through injection\n"
"@PersistenceContext(name=\"sample\") EntityManager em;"
msgstr ""
+"//CMT idiom through injection\n"
+"@PersistenceContext(name=\"sample\") EntityManager em;"
#. Tag: para
#: transactions.xml:527
@@ -783,6 +1189,13 @@
"of the entity manager and persistence context is completely managed by the "
"container."
msgstr ""
+"Autrement dit, tout ce que vous avez besoin de faire dans un environnement "
+"géré, c'est d'injecter l'<literal>EntityManager</literal>, de procéder à vos "
+"tâches d'accès aux données, et de laisser le reste au conteneur. Les limites "
+"des transaction sont fixées déclarativement dans les annotations ou dans les "
+"descripteurs de déploiement de vos beans de session. Le cycle de vie du "
+"gestionnaire d'entités et le contexte de persistance sont complètement gérés "
+"par le conteneur."
#. Tag: para
#: transactions.xml:534
@@ -790,6 +1203,7 @@
msgid ""
"TODO: The following paragraph is very confusing, especially the beginning..."
msgstr ""
+"TODO: The following paragraph is very confusing, especially the beginning..."
#. Tag: para
#: transactions.xml:537
@@ -807,12 +1221,24 @@
"easily avoid using <literal>scroll()</literal> or <literal>iterate()</"
"literal> at all from the CMT code.)"
msgstr ""
+"Quand vous utilisez certains API natifs Hibernate, veillez à ne pas oublier "
+"le connexion release note : <literal>after_statement</literal>. En raison "
+"d'une limitation incongrue de FTA spec, il n'est pas possible pour Hibernate "
+"de nettoyer automatiquement des instances <literal>ScrollableResults</"
+"literal> ou <literal>Iterator</literal> qui seraient retournées par "
+"<literal>scroll()</literal> ou par <literal>iterate()</literal>. Vous "
+"<literal>devrez</literal> libérer le curseur de base de données sous-jacent "
+"en appelant <literal>ScrollableResults.close()</literal> ou "
+"<literal>Hibernate.close(Iterator)</literal> explicitement à partir d'un "
+"bloc <literal>finally</literal>. (Biensûr, la plupart des applications "
+"peuvent facilement éviter d'utiliser <literal>scroll()</literal> ou "
+"<literal>iterate()</literal> à partir du code CMT.)"
#. Tag: title
#: transactions.xml:553
#, no-c-format
msgid "Exception handling"
-msgstr ""
+msgstr "Gestion des exceptions"
#. Tag: para
#: transactions.xml:555
@@ -831,6 +1257,19 @@
"managed entity manager will do that for you. You just have to let the "
"RuntimeException propagate up to the container."
msgstr ""
+"Si l'<literal>EntityManager</literal> lance une exception (y compris une "
+"<literal>SQLException</literal>), vous devrez immédiatement recouvrer la "
+"transaction de base de données, appeler <literal>EntityManager.close()</"
+"literal> (si <methodname>createEntityManager()</methodname> a été appelé) et "
+"ignorer l'instance d'<literal>EntityManager</literal>. Certaines méthodes "
+"d'<literal>EntityManager</literal> ne vont <literal>pas</literal> permettre "
+"de maintenir le contexte de persistance dans un état consistant. Aucune "
+"exception envoyée par un gestionnaire d'entités ne peut être considéré comme "
+"recouvrable. Veillez bien à ce que l'<literal>EntityManager</literal> soit "
+"fermé en appelant <literal>close()</literal> dans un bloc <literal>finally</"
+"literal>. Notez qu'un gestionnaire d'entités géré par conteneur fera ce "
+"travail pour vous. Vous avez juste à laisser le RuntimeException se propager "
+"dans le conteneur."
#. Tag: para
#: transactions.xml:569
@@ -840,12 +1279,15 @@
"the Hibernate core exception. Common exceptions raised by the "
"<literal>EntityManager</literal> API are"
msgstr ""
+"Le gestionnaire d'entités d'Hibernate émet normalement des exceptions qui "
+"encapsulent l'exception Hibernate core. Les exceptions communes soulevées "
+"par l'API <literal>EntityManager</literal> sont"
#. Tag: para
#: transactions.xml:575
#, no-c-format
msgid "IllegalArgumentException: something wrong happen"
-msgstr ""
+msgstr "IllegalArgumentException: il y a quelquechose qui ne va pas"
#. Tag: para
#: transactions.xml:579
@@ -854,18 +1296,22 @@
"EntityNotFoundException: an entity was expected but none match the "
"requirement"
msgstr ""
+"EntityNotFoundException: on s'attendait à une entité, mais on n'en a pas "
+"trouvé qui correspondaient aux prérequis"
#. Tag: para
#: transactions.xml:584
#, no-c-format
msgid "TransactionRequiredException: this operation has to be in a transaction"
msgstr ""
+"TransactionRequiredException: cette opération doit se situer dans une "
+"transaction"
#. Tag: para
#: transactions.xml:589
#, no-c-format
msgid "IllegalStateException: the entity manager is used in a wrong way"
-msgstr ""
+msgstr "IllegalStateException: le gestionnaire d'entités a été mal utilisé"
#. Tag: para
#: transactions.xml:594
@@ -877,6 +1323,12 @@
"not a <literal>HibernateException</literal>. These are, again, not "
"recoverable and appropriate action should be taken."
msgstr ""
+"L'exception <literal>HibernateException</literal>, qui couvre la plupart des "
+"erreurs qui peuvent se produire dans une couche de persistance Hibernate, "
+"est une exception non vérifiée. Notez bien qu'Hibernate peut également "
+"lancer d'autres exceptions non vérifiées qui ne sont pas des "
+"<literal>HibernateException</literal>. Celles-ci ne sont pas, elles aussi, "
+"recouvrables et on doit prendre l'action qui convient."
#. Tag: para
#: transactions.xml:601
@@ -897,6 +1349,21 @@
"class for details). The standard <literal>JDBCException</literal> subtypes "
"are:"
msgstr ""
+"Hibernate couvre les <literal>SQLException</literal> émises alors qu'elles "
+"interagissaient avec la base de données dans une <literal>JDBCException</"
+"literal>. En fait, Hibernate va tenter de convertir l'exception en une sous-"
+"classe de <literal>JDBCException</literal> plus significative. L'exception "
+"<literal>SQLException</literal> est toujours disponible par "
+"<literal>JDBCException.getCause()</literal>. Hibernate convertit "
+"<literal>SQLException</literal> sous forme d'une sous-classe "
+"<literal>JDBCException</literal> en utilisant "
+"<literal>SQLExceptionConverter</literal> qui est attaché à "
+"<literal>SessionFactory</literal>. Par défaut, le "
+"<literal>SQLExceptionConverter</literal> est défini par le dialecte "
+"configuré; cependant, il est également possible d'ajouter une implémentation "
+"personnalisée (voir les javadocs pour la classe "
+"<literal>SQLExceptionConverterFactory</literal> pour obtenir les détails). "
+"Le soustypes standard de <literal>JDBCException</literal> sont :"
#. Tag: para
#: transactions.xml:619
@@ -905,6 +1372,8 @@
"<literal>JDBCConnectionException</literal> - indicates an error with the "
"underlying JDBC communication."
msgstr ""
+"<literal>JDBCConnectionException</literal> - indique qu'il y a une erreur "
+"dans la communication JDBC sous-jacente."
#. Tag: para
#: transactions.xml:624
@@ -913,6 +1382,8 @@
"<literal>SQLGrammarException</literal> - indicates a grammar or syntax "
"problem with the issued SQL."
msgstr ""
+"<literal>SQLGrammarException</literal> - indique un problème de syntaxe ou "
+"de grammaire avec le SQL émis."
#. Tag: para
#: transactions.xml:629
@@ -921,6 +1392,8 @@
"<literal>ConstraintViolationException</literal> - indicates some form of "
"integrity constraint violation."
msgstr ""
+"<literal>ConstraintViolationException</literal> - indique une certaine forme "
+"de violation de contrainte d'intégrité."
#. Tag: para
#: transactions.xml:634
@@ -929,6 +1402,9 @@
"<literal>LockAcquisitionException</literal> - indicates an error acquiring a "
"lock level necessary to perform the requested operation."
msgstr ""
+"<literal>LockAcquisitionException</literal> - indique une erreur "
+"d'acquisition du niveau de verrouillage qui convient pour effectuer "
+"l'opération requise."
#. Tag: para
#: transactions.xml:640
@@ -937,12 +1413,14 @@
"<literal>GenericJDBCException</literal> - a generic exception which did not "
"fall into any of the other categories."
msgstr ""
+"<literal>GenericJDBCException</literal> - une exception générique qui ne "
+"tombe pas dans aucune des autres catégories."
#. Tag: title
#: transactions.xml:648
#, no-c-format
msgid "EXTENDED Persistence Context"
-msgstr ""
+msgstr "Contexte de persistance EXTENDED "
#. Tag: para
#: transactions.xml:650
@@ -954,6 +1432,12 @@
"should then understand what happens to operations made outside the scope of "
"a transaction."
msgstr ""
+"Tout gestionnaire d'entités application-managed et tous les contextes de "
+"persistance container-managed ainsi définis, sont <literal>EXTENDED</"
+"literal>. Cela signifie que le type de contexte de persistance va bien au "
+"delà du cycle de vie de la transaction. Nous devons alors essayer de "
+"comprendre ce qui se passe pour les opérations qui sont faites en dehors de "
+"la portée d'une transaction."
#. Tag: para
#: transactions.xml:656
@@ -970,12 +1454,23 @@
"transaction: <literal>flush()</literal>, <literal>lock()</literal>, and "
"update/delete queries."
msgstr ""
+"Dans un contexte de persistance <literal>EXTENDED</literal>, toutes les "
+"opérations lecture-seule du gestionnaire d'entités peuvent être exécutées en "
+"dehors d'une transaction (<literal>find()</literal>, <literal>getReference()"
+"</literal>, <literal>refresh()</literal>, et les demandes de lecture). "
+"Certaines opérations de modifications peuvent être exécutées en dehors d'une "
+"transaction, mais elles sont mises en fil d'attente jusqu'à ce que le "
+"contexte de persistance rejoigne une transaction : c'est le cas de "
+"<literal>persist()</literal>, <literal><literal>merge()</literal></literal>, "
+"<literal>remove()</literal>. Certaines opérations ne peuvent pas être "
+"appelées en dehors d'une transaction : <literal>flush()</literal>, "
+"<literal>lock()</literal>, et les demandes de mise à jour/suppression."
#. Tag: title
#: transactions.xml:669
#, no-c-format
msgid "Container Managed Entity Manager"
-msgstr ""
+msgstr "Gestionnaire d'entités container-managed"
#. Tag: para
#: transactions.xml:671
@@ -987,6 +1482,12 @@
"a transaction, modifications operations (persist, merge, remove) are queued "
"in the persistence context and not executed to the database."
msgstr ""
+"Quand vous utilisez le contexte de persistance EXTENDED avec un gestionnaire "
+"d'entités container-managed, le cycle de vie du contexte de persistance est "
+"lié au cycle de vie du Bean de session stateful. De plus, si le gestionnaire "
+"d'entités est créé en dehors d'une transaction, les opérations de "
+"modification (persist, merge, remove) sont mises en file d'attente dans le "
+"contexte de persistance et ne sont pas exécutées dans la base de données."
#. Tag: para
#: transactions.xml:678
@@ -997,6 +1498,10 @@
"queued operation will then be executed to synchronize the persistence "
"context."
msgstr ""
+"Quand une méthode du bean de session stateful est impliquée ou quand le "
+"démarrage d'une transaction est appelée par la suite, le gestionnaire "
+"d'entité rejoint la transaction. Toutes les opérations en attente seront "
+"alors exécutées pour synchroniser le contexte de persistance."
#. Tag: para
#: transactions.xml:683
@@ -1012,12 +1517,23 @@
"look at JBoss Seam. Jboss Seam emphasizes the concept of conversation and "
"entity manager lifecycle and bind EJB3 and JSF together."
msgstr ""
+"Cela est parfait pour pouvoir implémenter le modèle <literal>entitymanager-"
+"per-conversation</literal>. Un bean de session stateful représente "
+"l'implémentation de la conversation. Tout travail de conversation "
+"intermédiaire sera traité par des méthodes qui n'impliquent pas de "
+"transactions. La fin de la conversation sera traitée à l'intérieur d'une "
+"transaction <literal>JTA</literal>. Ainsi, toutes les opérations en attente "
+"seront exécutées dans la base de données et seront validées. Si vous êtes "
+"intéressés par la notion de conversation au sein de votre application, jetez "
+"un coup d'oeil à JBoss Seam. JBoss Seam insiste sur les concepts de "
+"conversation et de cycle de vie du gestionnaire d'entités, et fait la "
+"liaison entre EJB3 et JSF."
#. Tag: title
#: transactions.xml:696
#, no-c-format
msgid "Application Managed Entity Manager"
-msgstr ""
+msgstr "Gestionnaire d'entités application-managed"
#. Tag: para
#: transactions.xml:698
@@ -1029,6 +1545,12 @@
"outside a transaction, the entity manager will queue the modification "
"operations. When"
msgstr ""
+"Les gestionnaires d'entités application-managed sont toujours "
+"<literal>EXTENDED</literal>. Quand vous créez un gestionnaire d'entités à "
+"l'intérieur d'une transaction, le gestionnaire d'entités rejoint "
+"automatiquement la transaction courante. Si le gestionnaire d'entités est "
+"créé en dehors d'une transaction, le gestionnaire d'entités va mettre les "
+"opérations de modifications en file d'attente. Quand"
#. Tag: para
#: transactions.xml:706
@@ -1037,6 +1559,9 @@
"<methodname>entityManager.joinTransaction()</methodname> is called when a "
"JTA transaction is active for a <literal>JTA</literal> entity manager"
msgstr ""
+"<methodname>entityManager.joinTransaction()</methodname> est appelé quand "
+"une transaction JTA est active pour un gestionnaire d'entités <literal>JTA</"
+"literal>"
#. Tag: para
#: transactions.xml:712
@@ -1045,6 +1570,8 @@
"<literal>entityManager.getTransaction().begin()</literal> is called for a "
"<literal>RESOURCE_LOCAL</literal> entity manager"
msgstr ""
+"<literal>entityManager.getTransaction().begin()</literal> est appelé pour un "
+"gestionnaire d'entités <literal>RESOURCE_LOCAL</literal>"
#. Tag: para
#: transactions.xml:717
@@ -1053,6 +1580,8 @@
"the entity manager join the transaction and all the queued operations will "
"then be executed to synchronize the persistence context."
msgstr ""
+"le gestionnaire d'entités rejoint la transaction et toutes les opérations en "
+"attente seront alors exécutées pour synchroniser le contexte de persistance."
#. Tag: para
#: transactions.xml:721
@@ -1061,12 +1590,14 @@
"It is not legal to call <methodname>entityManager.joinTransaction()</"
"methodname> if no JTA transaction is involved."
msgstr ""
+"Il n'est pas légal d'appeler <methodname>entityManager.joinTransaction()</"
+"methodname> si aucune transaction JTA n'est impliquée."
#. Tag: title
#: transactions.xml:728
#, no-c-format
msgid "Optimistic concurrency control"
-msgstr ""
+msgstr "Contrôle de concurrence optimiste"
#. Tag: para
#: transactions.xml:730
@@ -1081,12 +1612,22 @@
"version checking also has the benefit of preventing lost updates in single "
"database transactions."
msgstr ""
+"La seule approche consistante avec un haut niveau de concurrence et une "
+"bonne capacité de mise à l'échelle, est le contrôle de concurrence optimiste "
+"avec versioning. La vérification de version utilise des numéros de versions, "
+"ou des dates, en vue de détecter des mises à jour qui entrent en conflit (et "
+"pour empêcher des pertes de mises à jour). Hibernate propose trois approches "
+"possibles pour rédiger un code d'application utilisant la concurrence "
+"optimiste. Les cas d'utilisation que nous présentons rentrent dans le cadre "
+"des transactions de longues applications, mais la vérification de bases de "
+"données a également l'avantage d'empêcher les manquements aux mises à jour "
+"dans les transactions de bases de données simples."
#. Tag: title
#: transactions.xml:740
#, no-c-format
msgid "Application version checking"
-msgstr ""
+msgstr "Application version checking (vérification de version d'application)"
#. Tag: para
#: transactions.xml:742
@@ -1100,6 +1641,13 @@
"transaction isolation. This approach is the least efficient in terms of "
"database access. It is the approach most similar to EJB2 entities:"
msgstr ""
+"Dans une application sans grand support de la part du mécanisme de "
+"persistance, chaque interaction avec la base de données a lieu dans le "
+"nouveau <literal>EntityManager</literal> et le développeur est chargé de "
+"recharger toutes les instances persistantes à partir de la base de données "
+"avant de les manipuler. Cette approche est la moins efficace au niveau de "
+"l'accès à la base de données. C'est l'approche la plus semblable à celle des "
+"entités EJB2 :"
#. Tag: programlisting
#: transactions.xml:751
@@ -1118,6 +1666,18 @@
"t.commit();\n"
"em.close();"
msgstr ""
+"// foo is an instance loaded by a previous entity manager\n"
+"em = factory.createEntityManager();\n"
+"EntityTransaction t = em.getTransaction();\n"
+"t.begin();\n"
+"int oldVersion = foo.getVersion();\n"
+"Foo dbFoo = em.find( foo.getClass(), foo.getKey() ); // load the current "
+"state\n"
+"if ( dbFoo.getVersion()!=foo.getVersion ) throw new StaleObjectStateException"
+"();\n"
+"dbFoo.setProperty(\"bar\");\n"
+"t.commit();\n"
+"em.close();"
#. Tag: para
#: transactions.xml:753
@@ -1127,10 +1687,13 @@
"literal>, and the entity manager will automatically increment it during "
"flush if the entity is dirty."
msgstr ""
+"La propriété de <literal>version</literal> est mappée en utilisant "
+"<literal>@Version</literal>, et le gestionnaire d'entités va l'incrémenter "
+"automatiquement pendant le vidage si l'entité est dirty."
#. Tag: para
#: transactions.xml:757
-#, no-c-format
+#, fuzzy, 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 "
@@ -1140,6 +1703,14 @@
"experience lost updates without error messages or a chance to merge "
"conflicting changes."
msgstr ""
+"Biensûr, si vous opérez dans un environnement low-data-concurrency et que "
+"vous n'avez pas besoin du \"version checking\", vous pouvez utiliser cette "
+"approche et simplement éviter le \"version check\". Dans un tel cas, "
+"<emphasis>last commit wins</emphasis> sera la stratégie de choix pour les "
+"transactions de longues applications. N'oubliez pas que cela peut prêter à "
+"confusion pour les utilisateurs de l'application, car ils peuvent se "
+"retrouver avec des pertes de mises à jour sans messages d'erreur ou avec une "
+"chance de fusionner des changements qui entrent en conflit."
#. Tag: para
#: transactions.xml:765
@@ -1151,16 +1722,23 @@
"Hibernate offers automatic version checking with either detached instances "
"or an extended entity manager and persistence context as the design paradigm."
msgstr ""
+"Clairement, les version checking manuelles ne sont uniquement concevables "
+"que dans des circonstances extrêmement triviales, et ne sont pas pratiques "
+"pour la plupart des applications. La plupart du temps, les instances simples "
+"et les graphes complets d'objets modifiés doivent être vérifiés. Hibernate "
+"propose un \"version checking\" automatique, soit avec des instances "
+"détachées, soit un gestionnaire d'entités EXTENDED et un contexte de "
+"persistance comme paradigme de design."
#. Tag: title
#: transactions.xml:774
#, no-c-format
msgid "Extended entity manager and automatic versioning"
-msgstr ""
+msgstr "Gestionnaires d'entités Extended et Versioning automatique"
#. Tag: para
#: transactions.xml:776
-#, no-c-format
+#, fuzzy, 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 "
@@ -1169,6 +1747,13 @@
"the user to merge his changes or to restart the business process with non-"
"stale data)."
msgstr ""
+"Un contexte de persistance simple est utilisé pour toute la transaction "
+"d'application. Le gestionnaire d'entités vérifie les versions d'instances au "
+"moment du vidage, lançant des exceptions si une modification du concurrence "
+"est détectée. C'est au développeur d'intercepter et de gérer cette exception "
+"(les options usuelles consistent au fusionnement des changements par "
+"l'utilisateur ou au redémarrage du processus commercial avec les données non-"
+"obsolètes)."
#. Tag: para
#: transactions.xml:783
@@ -1179,6 +1764,11 @@
"persistence context is flushed when executed in an active transaction (at "
"worse at commit time)."
msgstr ""
+"Dans un contexte de persistance <literal>EXTENDED</literal>' toutes les "
+"opérations effectuées en dehors de la transaction active sont mises en file "
+"d'attente. Le contexte de persistance <literal>EXTENDED</literal> est vidé "
+"quand il est exécuté dans une transaction active (au pire au moment de la "
+"validation)."
#. Tag: para
#: transactions.xml:788
@@ -1198,6 +1788,19 @@
"is no performance impact. The following examples show the idiom in a non-"
"managed environment:"
msgstr ""
+"L'<literal>Entity Manager</literal> est déconnecté de la connexion JDBC sous-"
+"jacente en cours d'attente de l'interaction avec l'utilisateur. Pour un "
+"gestionnaire d'entités extended géré-application, cela a lieu "
+"automatiquement en fin de transaction. Pour un bean de session stateful qui "
+"contient un gestionnaire d'entités extended container-managed (c'est à dire "
+"annoté SFSB avec <literal>@PersistenceContext(EXTENDED)</literal>), cela a "
+"lieu de façon transparente également. L'application n'est pas liée aux "
+"vérifications de versions ou à la fusion d'instances détachées, et il n'est "
+"nul besoin de recharger les instances dans chaque transaction de base de "
+"données. Pour ceux qui s'inquièteraient du nombre de connexions ouvertes ou "
+"fermées, souvenez-vous que le fournisseur de connexions devrait être un pool "
+"de connexions, donc il n'y a pas d'impact de performance. Les exemples "
+"suivants présentent l'idiom dans un environnement non-géré :"
#. Tag: programlisting
#: transactions.xml:803
@@ -1209,6 +1812,11 @@
"foo.setProperty(\"bar\");\n"
"em.getTransaction().commit(); // End tx, flush and check version, disconnect"
msgstr ""
+"// foo is an instance loaded earlier by the extended entity manager\n"
+"em.getTransaction.begin(); // new connection to data store is obtained and "
+"tx started\n"
+"foo.setProperty(\"bar\");\n"
+"em.getTransaction().commit(); // End tx, flush and check version, disconnect"
#. Tag: para
#: transactions.xml:805
@@ -1221,10 +1829,18 @@
"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 ""
+"L'objet <literal>foo</literal> se souvient du <literal>contexte de "
+"persistance</literal> dans lequel il a été chargé. Avec "
+"<literal>getTransaction.begin();</literal>, le gestionnaire d'entités "
+"obtient une nouvelle connexion et peut completer le contexte de persistance. "
+"La méthode <literal>getTransaction().commit()</literal> ne se contente pas "
+"de vider et de vérifier les versions, elle disconnecte également le "
+"gestionnaire d'entités de la connexion JDBC et retourne la connexion vers le "
+"pool."
#. Tag: para
#: transactions.xml:813
-#, no-c-format
+#, fuzzy, 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. "
@@ -1234,10 +1850,18 @@
"few request/response cycles. This is indeed recommended, as the persistence "
"context will soon also have stale data."
msgstr ""
+"Ce modèle est problématique si le contexte de persistance est trop gros pour "
+"être stocké pendant le temps de reflexion de l'utilisateur, et si vous ne "
+"savez pas où le stocker. Ainsi, <literal>HttpSession</literal> devrait "
+"rester aussi petit que possible. Comme le contexte de persistance est aussi "
+"le premier niveau cache (obligatoire) et qu'il contient tous les objets "
+"chargés, nous pouvons probablement utiliser cette stratégie uniquement pour "
+"quelques cycles requête/réponse. Cela est recommandé, car le contexte de "
+"persistance aura bientôt des données obsolètes."
#. Tag: para
#: transactions.xml:822
-#, no-c-format
+#, fuzzy, 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 "
@@ -1246,12 +1870,20 @@
"managed, two-tiered environment the <literal>HttpSession</literal> might "
"indeed be the right place to store it."
msgstr ""
+"C'est à vous de décider où vous souhaitez stocker le gestionnaire d'entités "
+"extended pendant les requêtes; à l'intérieur d'un conteneur EJB3, simplement "
+"utiliser un bean de session stateful comme décrit plus haut. Ne le "
+"transférez pas sur la couche web (ou alors vous pouvez le sérialiser en un "
+"tiers séparé) pour le stocker dans la <literal>HttpSession</literal>. Dans "
+"un environnement two-tiered (deux tiers), non-managed, la "
+"<literal>HttpSession</literal>. pourrait très bien représenter le bon "
+"endroit où le stocker."
#. Tag: title
#: transactions.xml:832
#, no-c-format
msgid "Detached objects and automatic versioning"
-msgstr ""
+msgstr "Objets détachés et versioning automatique"
#. Tag: para
#: transactions.xml:834
@@ -1263,6 +1895,13 @@
"detached instances originally loaded in another persistence context and then "
"merges the changes using <literal>EntityManager.merge()</literal>:"
msgstr ""
+"Dans ce paradigme, chaque interaction avec le store de données a lieu dans "
+"un nouveau contexte de persistance. Cependant, les mêmes instances de "
+"persistance sont réutilisées pour chaque interaction avec la base de "
+"données. L'application manipule l'état des instances détachées qui sont "
+"chargées au départ dans un autre contexte de persistance et qui fusionnent "
+"les changements en utilisant <literal>EntityManager.merge()</literal> par la "
+"suite :"
#. Tag: programlisting
#: transactions.xml:841
@@ -1277,6 +1916,14 @@
"entityManager.getTransaction().commit();\n"
"entityManager.close();"
msgstr ""
+"// foo is an instance loaded by a non-extended entity manager\n"
+"foo.setProperty(\"bar\");\n"
+"entityManager = factory.createEntityManager();\n"
+"entityManager.getTransaction().begin();\n"
+"managedFoo = session.merge(foo); // discard foo and from now on use "
+"managedFoo\n"
+"entityManager.getTransaction().commit();\n"
+"entityManager.close();"
#. Tag: para
#: transactions.xml:843
@@ -1285,3 +1932,6 @@
"Again, the entity manager will check instance versions during flush, "
"throwing an exception if conflicting updates occured."
msgstr ""
+"A nouveau, le gestionnaire d'entités va vérifier les versions d'instances en "
+"cours de vidage, en lançant une exception si les mises à jour rentrent en "
+"conflit."
More information about the jboss-cvs-commits
mailing list