📄 best_practices.po
字号:
"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 opérations ""menées dans une transaction particulière."#. Tag: term#: best_practices.xml:145#, no-c-formatmsgid "In a three tiered architecture, consider using detached objects."msgstr """Dans une architecture à trois couches, pensez à utiliser ""<literal>saveOrUpdate()</literal>."#. Tag: para#: best_practices.xml:147#, no-c-formatmsgid """When using a servlet / session bean architecture, you could pass persistent ""objects loaded in the session bean to and from the servlet / JSP layer. Use ""a new session to service each request. Use <literal>Session.merge()</""literal> or <literal>Session.saveOrUpdate()</literal> to synchronize objects ""with the database."msgstr """Quand vous utilisez une architecture à base de servlet / session bean, vous ""pourriez 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()</literal> ou <literal>Session.""saveOrUpdate()</literal> pour synchroniser les objets avec la base de ""données."#. Tag: term#: best_practices.xml:156#, no-c-formatmsgid "In a two tiered architecture, consider using long persistence contexts."msgstr """Dans une architecture à deux couches, pensez à utiliser la déconnexion de ""session."#. Tag: para#: best_practices.xml:158#, no-c-formatmsgid """Database Transactions have to be as short as possible for best scalability. ""However, it is often neccessary to implement long running ""<emphasis>application transactions</emphasis>, a single unit-of-work from ""the point of view of a user. An application transaction might span several ""client request/response cycles. It is common to use detached objects to ""implement application transactions. An alternative, extremely appropriate in ""two tiered architecture, is to maintain a single open persistence contact ""(session) for the whole life cycle of the application transaction and 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 montée en charge.Cependant, il est souvent nécessaire ""d'implémenter de longues <emphasis>transactions applicatives</emphasis>, 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 à 2 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 vous travaillerez ""avec des données périmées."#. Tag: term#: best_practices.xml:172#, no-c-formatmsgid "Don't treat exceptions as recoverable."msgstr "Considérez que les exceptions ne sont pas rattrapables."#. Tag: para#: best_practices.xml:174#, no-c-formatmsgid """This is more of a necessary practice than a \"best\" practice. When an ""exception occurs, roll back the <literal>Transaction</literal> and close the ""<literal>Session</literal>. If you don't, Hibernate can't guarantee that in-""memory state accurately represents persistent state. As a special case of ""this, do not use <literal>Session.load()</literal> to determine if an ""instance with the given identifier exists on the database; use ""<literal>Session.get()</literal> or a query instead."msgstr """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</literal> et fermer la <literal>Session</literal>. ""Sinon, Hibernate ne peut garantir l'intégrité des états persistants en ""mémoire. En particulier, n'utilisez pas <literal>Session.load()</literal> ""pour déterminer si une instance avec un identifiant donné existe en base de ""données, utilisez <literal>Session.get()</literal> ou un requête."#. Tag: term#: best_practices.xml:184#, no-c-formatmsgid "Prefer lazy fetching for associations."msgstr "Préférez le chargement tardif des associations."#. Tag: para#: best_practices.xml:186#, no-c-formatmsgid """Use eager fetching sparingly. Use proxies and lazy collections for most ""associations to classes that are not likely to be completely held in the ""second-level cache. For associations to cached classes, where there is an a ""extremely high probability of a cache hit, explicitly disable eager fetching ""using <literal>lazy=\"false\"</literal>. When an 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 assocations de classes en cache, où il y a ""une extrêmement 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#: best_practices.xml:196#, no-c-formatmsgid """Use the <emphasis>open session in view</emphasis> pattern, or a disciplined ""<emphasis>assembly phase</emphasis> 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</emphasis> disciplinée pour ""éviter des problèmes avec des données non rapatriées."#. Tag: para#: best_practices.xml:201#, no-c-formatmsgid """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. However, 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) unless you are ""prepared to hold the persistence context (the session) open across the view ""rendering process. 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 (NdT : Data Transfer Objects)</""emphasis> (DTO). Dans une architecture EJB traditionnelle, les DTOs ont deux ""buts : premièrement, ils contournent le problème des \"entity bean\" 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 DTOs avant de retourner sous le contrôle ""de la couche de présentation. Hibernate élimine le premier but. Pourtant, ""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 à propos ""de quelles données sont 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."#. Tag: term#: best_practices.xml:215#, no-c-formatmsgid "Consider abstracting your business logic from Hibernate."msgstr "Pensez à abstraite votre logique métier d'Hibernate."#. Tag: para#: best_practices.xml:217#, no-c-formatmsgid """Hide (Hibernate) data-access code behind an interface. Combine the ""<emphasis>DAO</emphasis> and <emphasis>Thread Local Session</emphasis> ""patterns. You can even have some classes persisted by handcoded JDBC, ""associated to Hibernate via a <literal>UserType</literal>. (This advice is ""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 patterns <emphasis>DAO</emphasis> et <emphasis>Thread Local ""Session</emphasis>. Vous pouvez même avoir quelques classes persistées par ""du JDBC pur, associées à Hibernate via un <literal>UserType</literal> (ce ""conseil est valable pour des applications de taille respectables ; il n'est ""pas valable pour une application avec cinq tables)."#. Tag: term#: best_practices.xml:227#, no-c-formatmsgid "Don't use exotic association mappings."msgstr "N'utilisez pas d'associations de mapping exotiques."#. Tag: para#: best_practices.xml:229#, no-c-formatmsgid """Good usecases for a 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, we think that most associations are one-to-""many and many-to-one, you should be careful when using any other association ""style and ask yourself if it is really neccessary."msgstr """De bons cas d'utilisation pour de vraies associations plusieurs-vers-""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-vers-plusieurs vers une classe de ""liaisons intermédiaire. En fait, nous pensons que la plupart des ""associations sont de type un-vers-plusieurs ou plusieurs-vers-un, vous devez ""être très attentifs lorsque vous utilisez autre chose et vous demander si ""c'est vraiment nécessaire."#. Tag: term#: best_practices.xml:239#, no-c-formatmsgid "Prefer bidirectional associations."msgstr "Préférez les associations bidirectionnelles."#. Tag: para#: best_practices.xml:241#, no-c-formatmsgid """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."
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -