|
Hibernate example source code file (best_practices.po)
This example Hibernate source code file (best_practices.po) is included in the DevDaily.com
"Java Source Code
Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.
The Hibernate best_practices.po source code
# translation of best_practices.po to French
# Myriam Malga <mmalga@redhat.com>, 2007.
# Xi HUANG <xhuang@redhat.com>, 2007.
# Corina Roe <croe@redhat.com>, 2009.
# translation of Collection_Mapping.po to
msgid ""
msgstr ""
"Project-Id-Version: best_practices\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-02-11T05:38:15\n"
"PO-Revision-Date: 2009-11-10 16:06+1000\n"
"Last-Translator: Corina Roe <croe@redhat.com>\n"
"Language-Team: French <i18@redhat.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 1.11.4\n"
#. Tag: title
#, no-c-format
msgid "Best Practices"
msgstr "Meilleures pratiques"
#. Tag: term
#, no-c-format
msgid ""
"Write fine-grained classes and map them using <literal><component>"
"literal>:"
msgstr ""
"Découpez finement vos classes et mappez-les en utilisant <literal><"
"component></literal> :"
#. Tag: para
#, no-c-format
msgid ""
"Use an <literal>Address class to encapsulate street"
"literal>, <literal>suburb, state, "
"<literal>postcode. This encourages code reuse and simplifies "
"refactoring."
msgstr ""
"Utilisez une classe <literal>Address pour résumer street"
"literal>, <literal>suburb, state, "
"<literal>postcode. Ceci permet la réutilisation du code et "
"simplifie la maintenance. "
#. Tag: term
#, no-c-format
msgid "Declare identifier properties on persistent classes:"
msgstr "Déclarez des propriétés d'identifiants dans les classes persistantes :"
#. Tag: para
#, no-c-format
msgid ""
"Hibernate makes identifier properties optional. There are a range of reasons "
"why you should use them. We recommend that identifiers be 'synthetic', that "
"is, generated with no business meaning."
msgstr ""
"Hibernate rend les propriétés d'identifiants optionnelles. Il est recommandé "
"de les utiliser pour de nombreuses raisons. Utilisez les identifiants comme "
"'synthetic' (générés, et sans connotation métier)."
#. Tag: term
#, no-c-format
msgid "Identify natural keys:"
msgstr "Identifiez les clefs naturelles :"
#. Tag: para
#, no-c-format
msgid ""
"Identify natural keys for all entities, and map them using <literal><"
"natural-id></literal>. Implement equals() and "
"<literal>hashCode() to compare the properties that make up the "
"natural key."
msgstr ""
"Identifiez les clefs naturelles pour toutes les entités, et mappez-les avec "
"<literal><natural-id>. Implémentez equals()"
"literal> et <literal>hashCode() pour comparer les propriétés qui "
"composent la clef naturelle. "
#. Tag: term
#, no-c-format
msgid "Place each class mapping in its own file:"
msgstr "Placez chaque mapping de classe dans son propre fichier :"
#. Tag: para
#, no-c-format
msgid ""
"Do not use a single monolithic mapping document. Map <literal>com.eg.Foo"
"literal> in the file <literal>com/eg/Foo.hbm.xml. This makes "
"sense, particularly in a team environment."
msgstr ""
"N'utilisez pas un unique document de mapping. Mappez <literal>com.eg.Foo"
"literal> dans le fichier <literal>com/eg/Foo.hbm.xml. Cela prend "
"tout son sens lors d'un travail en équipe. "
#. Tag: term
#, no-c-format
msgid "Load mappings as resources:"
msgstr "Chargez les mappings comme des ressources :"
#. Tag: para
#, no-c-format
msgid "Deploy the mappings along with the classes they map."
msgstr "Déployez les mappings en même temps que les classes qu'ils mappent."
#. Tag: term
#, no-c-format
msgid "Consider externalizing query strings:"
msgstr "Pensez à externaliser les chaînes de requêtes :"
#. Tag: para
#, no-c-format
msgid ""
"This is recommended if your queries call non-ANSI-standard SQL functions. "
"Externalizing the query strings to mapping files will make the application "
"more portable."
msgstr ""
"Ceci est une bonne habitude si vos requêtes appellent des fonctions SQL qui "
"ne sont pas au standard ANSI. Cette externalisation des chaînes de requête "
"dans les fichiers de mapping rendra votre application plus portable. "
#. Tag: term
#, no-c-format
msgid "Use bind variables."
msgstr "Utilisez les variables bindées."
#. Tag: para
#, no-c-format
msgid ""
"As in JDBC, always replace non-constant values by \"?\". Do not use string "
"manipulation to bind a non-constant value in a query. You should also "
"consider using named parameters in queries."
msgstr ""
"Comme dans JDBC, remplacez toujours les valeurs non constantes par \"?\". "
"N'utilisez jamais la manipulation des chaînes de caractères pour lier des "
"valeurs non constantes dans une requête ! Encore mieux, utilisez les "
"paramètres nommés dans les requêtes."
#. Tag: term
#, no-c-format
msgid "Do not manage your own JDBC connections:"
msgstr "Ne gérez pas vous-même les connexions JDBC :"
#. Tag: para
#, no-c-format
msgid ""
"Hibernate allows the application to manage JDBC connections, but his "
"approach should be considered a last-resort. If you cannot use the built-in "
"connection providers, consider providing your own implementation of "
"<literal>org.hibernate.connection.ConnectionProvider."
msgstr ""
"Hibernate permet à l'application de gérer les connexions JDBC. Vous ne "
"devriez gérer vos connexions qu'en dernier recours. Si vous ne pouvez pas "
"utiliser les systèmes de connexions livrés, considérez la fourniture de "
"votre propre implémentation de <literal>org.hibernate.connection."
"ConnectionProvider</literal>. "
#. Tag: term
#, no-c-format
msgid "Consider using a custom type:"
msgstr "Considérez l'utilisation de types personnalisés :"
#. Tag: para
#, no-c-format
msgid ""
"Suppose you have a Java type from a library that needs to be persisted but "
"does not provide the accessors needed to map it as a component. You should "
"consider implementing <literal>org.hibernate.UserType. This "
"approach frees the application code from implementing transformations to/"
"from a Hibernate type."
msgstr ""
"Supposez que vous ayez un type Java, de telle bibliothèque, qui a besoin "
"d'être persisté mais qui ne fournit pas les accesseurs nécessaires pour le "
"mapper comme composant. Vous devriez implémenter <literal>org.hibernate."
"UserType</literal>. Cette approche évite au code de l'application, "
"l'implémentation de transformations vers / depuis les types Hibernate. "
#. Tag: term
#, no-c-format
msgid "Use hand-coded JDBC in bottlenecks:"
msgstr "Utilisez du JDBC pur dans les goulots d'étranglement :"
#. Tag: para
#, fuzzy, no-c-format
msgid ""
"In performance-critical areas of the system, some kinds of operations might "
"benefit from direct JDBC. Do not assume, however, that JDBC is necessarily "
"faster. Please wait until you <emphasis>know something is a "
"bottleneck. If you need to use direct JDBC, you can open a Hibernate "
"<literal>Session, wrap your JDBC operation as a org."
"hibernate.jdbc.Work</literal> object and using that JDBC connection. This "
"way you can still use the same transaction strategy and underlying "
"connection provider."
msgstr ""
"En ce qui concerne les performances dans certaines parties critiques de "
"votre système, quelques opérations peuvent tirer partie d'un appel JDBC "
"natif. Mais attendez de <emphasis>savoir que c'est un goulet "
"d'étranglement. Ne supposez jamais qu'un appel JDBC sera forcément plus "
"rapide. Si vous devez utiliser JDBC directement, ouvrez une "
"<literal>Session Hibernate et utilisez la connexion SQL sous-"
"jacente. Ainsi vous pourrez utiliser la même stratégie de transation et la "
"même gestion des connexions. "
#. Tag: term
#, no-c-format
msgid "Understand <literal>Session flushing:"
msgstr "Comprenez le flush de <literal>Session :"
#. Tag: para
#, no-c-format
msgid ""
"Sometimes the Session synchronizes its persistent state with the database. "
"Performance will be affected if this process occurs too often. You can "
"sometimes minimize unnecessary flushing by disabling automatic flushing, or "
"even by changing the order of queries and other operations within a "
"particular transaction."
msgstr ""
"De temps en temps la Session synchronise ses états persistants avec la base "
"de données. Les performances seront affectées si ce processus arrive trop "
"souvent. Vous pouvez parfois minimiser les flush non nécessaires en "
"désactivant le flush automatique ou même en changeant l'ordre des requêtes "
"et autres opérations effectuées dans une transaction particulière. "
#. Tag: term
#, no-c-format
msgid "In a three tiered architecture, consider using detached objects:"
msgstr ""
"Dans une architecture à trois couches, vous pouvez utilisez des objets "
"détachés :"
#. Tag: para
#, no-c-format
msgid ""
"When using a servlet/session bean architecture, you can pass persistent "
"objects loaded in the session bean to and from the servlet/JSP layer. Use a "
"new session to service each request. Use <literal>Session.merge() "
"or <literal>Session.saveOrUpdate() to synchronize objects with the "
"database."
msgstr ""
"Quand vous utilisez une architecture à base de servlet / session bean, vous "
"pouvez passer des objets chargés dans le bean session vers et depuis la "
"couche servlet / JSP. Utilisez une nouvelle session pour traiter chaque "
"requête. Utilisez <literal>Session.merge() ou Session."
"saveOrUpdate()</literal> pour synchroniser les objets avec la base de "
"données. "
#. Tag: term
#, no-c-format
msgid "In a two tiered architecture, consider using long persistence contexts:"
msgstr ""
"Dans une architecture à deux couches, pensez à utiliser les contextes de "
"persistance longue :"
#. Tag: para
#, no-c-format
msgid ""
"Database Transactions have to be as short as possible for best scalability. "
"However, it is often necessary to implement long running "
"<emphasis>application transactions, a single unit-of-work from "
"the point of view of a user. An application transaction might span several "
"client request/response cycles. It is common to use detached objects to "
"implement application transactions. An appropriate alternative in a two "
"tiered architecture, is to maintain a single open persistence contact "
"session for the whole life cycle of the application transaction. Then simply "
"disconnect from the JDBC connection at the end of each request and reconnect "
"at the beginning of the subsequent request. Never share a single session "
"across more than one application transaction or you will be working with "
"stale data."
msgstr ""
"Les transactions de bases de données doivent être aussi courtes que possible "
"pour une meilleure extensibilité. Cependant, il est souvent nécessaire "
"d'implémenter de longues <emphasis>transactions applicatives, une "
"simple unité de travail du point de vue de l'utilisateur. Une transaction "
"applicative peut s'étaler sur plusieurs cycles de requêtes/réponses du "
"client. Il est commun d'utiliser des objets détachés pour implémenter des "
"transactions applicatives. Une alternative, extrêmement appropriée dans une "
"architecture à deux couches, est de maintenir un seul contact de persistance "
"ouvert (session) pour toute la durée de vie de la transaction applicative et "
"simplement se déconnecter de la connexion JDBC à la fin de chaque requête, "
"et se reconnecter au début de la requête suivante. Ne partagez jamais une "
"seule session avec plus d'une transaction applicative, ou bien vous "
"travaillerez avec des données périmées. "
#. Tag: term
#, no-c-format
msgid "Do not treat exceptions as recoverable:"
msgstr "Considérez que les exceptions ne sont pas rattrapables :"
#. Tag: para
#, no-c-format
msgid ""
"This is more of a necessary practice than a \"best\" practice. When an "
"exception occurs, roll back the <literal>Transaction and close the "
"<literal>Session. If you do not do this, Hibernate cannot "
"guarantee that in-memory state accurately represents the persistent state. "
"For example, do not use <literal>Session.load() to determine if an "
"instance with the given identifier exists on the database; use "
"<literal>Session.get() or a query instead."
msgstr ""
"Il s'agit plus d'une pratique obligatoire que d'une \"meilleure pratique\". "
"Quand une exception intervient, il faut faire un rollback de la "
"<literal>Transaction et fermer la Session. "
"Sinon, Hibernate ne peut garantir l'intégrité des états persistants en "
"mémoire. En particulier, n'utilisez pas <literal>Session.load() "
"pour déterminer si une instance avec l'identifiant donné existe en base de "
"données, à la place utilisez <literal>Session.get() ou une "
"requête. "
#. Tag: term
#, no-c-format
msgid "Prefer lazy fetching for associations:"
msgstr "Préférez le chargement différé des associations :"
#. Tag: para
#, no-c-format
msgid ""
"Use eager fetching sparingly. Use proxies and lazy collections for most "
"associations to classes that are not likely to be completely held in the "
"second-level cache. For associations to cached classes, where there is an a "
"extremely high probability of a cache hit, explicitly disable eager fetching "
"using <literal>lazy=\"false\". When join fetching is appropriate "
"to a particular use case, use a query with a <literal>left join fetch"
"literal>."
msgstr ""
"Utilisez le chargement complet avec modération. Utilisez les proxies et les "
"collections chargées tardivement pour la plupart des associations vers des "
"classes qui ne sont pas susceptibles d'être complètement retenues dans le "
"cache de second niveau. Pour les associations de classes en cache, où il y a "
"une forte probabilité que l'élément soit en cache, désactivez explicitement "
"le chargement par jointures ouvertes en utilisant <literal>outer-join=\"false"
"\"</literal>. Lorsqu'un chargement par jointure ouverte est approprié pour "
"un cas d'utilisation particulier, utilisez une requête avec un <literal>left "
"join fetch</literal>. "
#. Tag: term
#, no-c-format
msgid ""
"Use the <emphasis>open session in view pattern, or a disciplined "
"<emphasis>assembly phase to avoid problems with unfetched data:"
msgstr ""
"Utilisez le pattern <emphasis>d'une ouverture de session dans une vue"
"emphasis>, ou une <emphasis>phase d'assemblage disciplinée pour "
"éviter des problèmes avec des données non rapatriées :"
#. Tag: para
#, no-c-format
msgid ""
"Hibernate frees the developer from writing tedious <emphasis>Data Transfer "
"Objects</emphasis> (DTO). In a traditional EJB architecture, DTOs serve dual "
"purposes: first, they work around the problem that entity beans are not "
"serializable; second, they implicitly define an assembly phase where all "
"data to be used by the view is fetched and marshalled into the DTOs before "
"returning control to the presentation tier. Hibernate eliminates the first "
"purpose. Unless you are prepared to hold the persistence context (the "
"session) open across the view rendering process, you will still need an "
"assembly phase. Think of your business methods as having a strict contract "
"with the presentation tier about what data is available in the detached "
"objects. This is not a limitation of Hibernate. It is a fundamental "
"requirement of safe transactional data access."
msgstr ""
"Hibernate libère les développeurs de l'écriture fastidieuse des "
"<emphasis>objets de transfert de données (DTO). Dans une "
"architecture EJB traditionnelle, les DTO ont deux buts : premièrement, ils "
"contournent le problème des beans entités qui ne sont pas sérialisables ; "
"deuxièmement, ils définissent implicitement une phase d'assemblage où toutes "
"les données utilisées par la vue sont rapatriées et organisées dans les DTO "
"avant de retourner sous le contrôle de la couche de présentation. Hibernate "
"élimine le premier but. Cependant, vous aurez encore besoin d'une phase "
"d'assemblage (pensez à vos méthodes métier comme ayant un contrat strict "
"avec la couche de présentation, en ce qui concerne les données disponibles "
"dans les objets détachés) à moins que vous soyez préparés à garder le "
"contexte de persistance (la session) ouvert à travers tout le processus de "
"rendu de la vue. Ceci ne représente pas une limitation de Hibernate! Au "
"contraire c'est une exigence fondamentale d'un accès sécurisé aux données "
"transactionnelles. "
#. Tag: term
#, no-c-format
msgid "Consider abstracting your business logic from Hibernate:"
msgstr "Pensez à abstraire votre logique métier d'Hibernate :"
#. Tag: para
#, no-c-format
msgid ""
"Hide Hibernate data-access code behind an interface. Combine the "
"<emphasis>DAO and Thread Local Session "
"patterns. You can even have some classes persisted by handcoded JDBC "
"associated to Hibernate via a <literal>UserType. This advice is, "
"however, intended for \"sufficiently large\" applications. It is not "
"appropriate for an application with five tables."
msgstr ""
"Cachez le mécanisme d'accès aux données (Hibernate) derrière une interface. "
"Combinez les modèles <emphasis>DAO et Thread Local "
"Session</emphasis>. Vous pouvez même avoir quelques classes persistées par "
"du JDBC pur, associées à Hibernate via un <literal>UserType (ce "
"conseil est valable pour des applications de taille respectables ; il n'est "
"pas valable pour une application avec cinq tables). "
#. Tag: term
#, no-c-format
msgid "Do not use exotic association mappings:"
msgstr "N'utilisez pas d'associations de mapping exotiques :"
#. Tag: para
#, no-c-format
msgid ""
"Practical test cases for real many-to-many associations are rare. Most of "
"the time you need additional information stored in the \"link table\". In "
"this case, it is much better to use two one-to-many associations to an "
"intermediate link class. In fact, most associations are one-to-many and many-"
"to-one. For this reason, you should proceed cautiously when using any other "
"association style."
msgstr ""
"Les utilisations appropriées de vraies associations plusieurs-à-plusieurs "
"sont rares. La plupart du temps vous avez besoin d'informations "
"additionnelles stockées dans la table d'association. Dans ce cas, il est "
"préférable d'utiliser deux associations un-à-plusieurs vers une classe de "
"liaisons intermédiaire. En fait, nous pensons que la plupart des "
"associations sont de type un-à-plusieurs ou plusieurs-à-un, vous devez être "
"très prudent lorsque vous utilisez toute autre association et vous demander "
"si c'est vraiment nécessaire. "
#. Tag: term
#, no-c-format
msgid "Prefer bidirectional associations:"
msgstr "Préférez les associations bidirectionnelles :"
#. Tag: para
#, no-c-format
msgid ""
"Unidirectional associations are more difficult to query. In a large "
"application, almost all associations must be navigable in both directions in "
"queries."
msgstr ""
"Les associations unidirectionnelles sont plus difficiles à questionner. Dans "
"une grande application, la plupart des associations devraient être "
"navigables dans les deux directions dans les requêtes. "
Other Hibernate examples (source code examples)
Here is a short list of links related to this Hibernate best_practices.po source code file:
|