alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Hibernate example source code file (collection_mapping.po)

This example Hibernate source code file (collection_mapping.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.

Java - Hibernate tags/keywords

a, child, entity\n, entity\n, hibernate, hibernate, parent, set, string, tag, tag, the, the, this

The Hibernate collection_mapping.po source code

# translation of collection_mapping.po to French
# Myriam Malga <mmalga@redhat.com>, 2007.
# Xi HUANG <xhuang@redhat.com>, 2007.
# Corina Roe <croe@redhat.com>, 2009, 2010.
# translation of Collection_Mapping.po to
msgid ""
msgstr ""
"Project-Id-Version: collection_mapping\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2010-07-20 21:02+0000\n"
"PO-Revision-Date: 2010-01-05 08:54+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
#: collection_mapping.xml:31
#, no-c-format
msgid "Collection mapping"
msgstr "Mapper une collection "

#. Tag: title
#: collection_mapping.xml:34
#, no-c-format
msgid "Persistent collections"
msgstr "Collections persistantes"

#. Tag: para
#: collection_mapping.xml:36
#, fuzzy, no-c-format
msgid ""
"Naturally Hibernate also allows to persist collections. These persistent "
"collections can contain almost any other Hibernate type, including: basic "
"types, custom types, components and references to other entities. The "
"distinction between value and reference semantics is in this context very "
"important. An object in a collection might be handled with \"value\" "
"semantics (its life cycle fully depends on the collection owner), or it "
"might be a reference to another entity with its own life cycle. In the "
"latter case, only the \"link\" between the two objects is considered to be a "
"state held by the collection."
msgstr ""
"Les collections peuvent contenir la plupart des autres types Hibernate, y "
"compris tous les types basiques, les types utilisateur, les composants, et "
"bien sûr, les références vers d'autres entités. C'est une distinction "
"importante. Un objet dans une collection pourrait être géré avec une "
"sémantique de \"valeur\" (sa durée de vie dépend complètement du "
"propriétaire de la collection) ou il pourrait avoir une référence vers une "
"autre entité, avec sa propre durée de vie. Dans le dernier cas, seul le "
"\"lien\" entre les deux objets est considéré être l'état retenu par la "
"collection. "

#. Tag: para
#: collection_mapping.xml:46
#, fuzzy, no-c-format
msgid ""
"As a requirement persistent collection-valued fields must be declared as an "
"interface type (see <xref linkend=\"example.collection.mapping.annotations\"/"
">). The actual interface might be <literal>java.util.Set, "
"<literal>java.util.Collection, java.util.List, "
"<literal>java.util.Map, java.util.SortedSet, "
"<literal>java.util.SortedMap or anything you like (\"anything you "
"like\" means you will have to write an implementation of <literal>org."
"hibernate.usertype.UserCollectionType</literal>)."
msgstr ""
"L'interface réelle peut être <literal>java.util.Set, java."
"util.Collection</literal>, java.util.List, java."
"util.Map</literal>, java.util.SortedSet, java."
"util.SortedMap</literal> ou n'importe quoi d'autre ! (Où \"n'importe quoi "
"d'autre\" signifie que vous devrez écrire une implémentation de <literal>org."
"hibernate.usertype.UserCollectionType</literal>.)"

#. Tag: para
#: collection_mapping.xml:57
#, fuzzy, no-c-format
msgid ""
"Notice how in <xref linkend=\"example.collection.mapping.annotations\"/> the "
"instance variable <literal>parts was initialized with an instance "
"of <literal>HashSet. This is the best way to initialize collection "
"valued properties of newly instantiated (non-persistent) instances. When you "
"make the instance persistent, by calling <literal>persist(), "
"Hibernate will actually replace the <literal>HashSet with an "
"instance of Hibernate's own implementation of <literal>Set. Be "
"aware of the following error:"
msgstr ""
"Notez comment nous avons initialisé la variable d'instance avec une instance "
"de <literal>HashSet. C'est le meilleur moyen pour initialiser les "
"collections d'instances nouvellement créées (non persistantes). Quand nous "
"fabriquons l'instance persistante - en appelant <literal>persist()HashSet. Prenez garde aux erreurs suivantes : "

#. Tag: title
#: collection_mapping.xml:68
#, no-c-format
msgid "Hibernate uses its own collection implementations"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:70
#, no-c-format
msgid ""
"Cat cat = new DomesticCat();\n"
"Cat kitten = new DomesticCat();\n"
"....\n"
"Set kittens = new HashSet();\n"
"kittens.add(kitten);\n"
"cat.setKittens(kittens);\n"
"session.persist(cat);\n"
"\n"
"kittens = cat.getKittens(); // Okay, kittens collection is a Set\n"
"(HashSet) cat.getKittens(); // Error!"
msgstr ""

#. Tag: para
#: collection_mapping.xml:73
#, no-c-format
msgid ""
"The persistent collections injected by Hibernate behave like "
"<literal>HashMap, HashSet, TreeMapTreeSet or ArrayList, "
"depending on the interface type."
msgstr ""
"Les collections persistantes injectées par Hibernate se comportent de la "
"même manière que <literal>HashMap, HashSet, "
"<literal>TreeMap, TreeSet ou "
"<literal>ArrayList, selon le type de l'interface. "

#. Tag: para
#: collection_mapping.xml:78
#, no-c-format
msgid ""
"Collections instances have the usual behavior of value types. They are "
"automatically persisted when referenced by a persistent object and are "
"automatically deleted when unreferenced. If a collection is passed from one "
"persistent object to another, its elements might be moved from one table to "
"another. Two entities cannot share a reference to the same collection "
"instance. Due to the underlying relational model, collection-valued "
"properties do not support null value semantics. Hibernate does not "
"distinguish between a null collection reference and an empty collection."
msgstr ""
"Les instances des collections ont le comportement habituel des types de "
"valeurs. Elles sont automatiquement persistées quand elles sont référencées "
"par un objet persistant et automatiquement effacées quand elles sont "
"déréférencées. Si une collection est passée d'un objet persistant à un "
"autre, ses éléments peuvent être déplacés d'une table à une autre. Deux "
"entités ne peuvent pas partager une référence vers une même instance de "
"collection. Dû au modèle relationnel sous-jacent, les propriétés contenant "
"des collections ne supportent pas la sémantique de la valeur null ; "
"Hibernate ne fait pas de distinction entre une référence de collection nulle "
"et une collection vide. "

#. Tag: para
#: collection_mapping.xml:89
#, fuzzy, no-c-format
msgid ""
"Use persistent collections the same way you use ordinary Java collections. "
"However, ensure you understand the semantics of bidirectional associations "
"(see <xref linkend=\"collections-bidirectional\"/>)."
msgstr ""
"Ne vous en souciez pas trop. Utilisez les collections persistantes de la "
"même manière que vous utilisez des collections Java ordinaires. Assurez-vous "
"de comprendre la sémantique des associations bidirectionnelles (traitée plus "
"loin). "

#. Tag: title
#: collection_mapping.xml:97
#, fuzzy, no-c-format
msgid "How to map collections"
msgstr "Collections triées"

#. Tag: para
#: collection_mapping.xml:99
#, no-c-format
msgid ""
"Using annotations you can map <classname>Collections, "
"<classname>Lists, Maps and "
"<classname>Sets of associated entities using @OneToMany and "
"@ManyToMany. For collections of a basic or embeddable type use "
"@ElementCollection. In the simplest case a collection mapping looks like "
"this:"
msgstr ""

#. Tag: title
#: collection_mapping.xml:107
#, no-c-format
msgid "Collection mapping using @OneToMany and @JoinColumn"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:109
#, no-c-format
msgid ""
"@Entity\n"
"public class Product {\n"
"\n"
"    private String serialNumber;\n"
"    private Set<Part> parts = new HashSet<Part>();\n"
"\n"
"    @Id\n"
"    public String getSerialNumber() { return serialNumber; }\n"
"    void setSerialNumber(String sn) { serialNumber = sn; }\n"
"   \n"
"    @OneToMany\n"
"    @JoinColumn(name=\"PART_ID\")\n"
"    public Set<Part> getParts() { return parts; }\n"
"    void setParts(Set parts) { this.parts = parts; }\n"
"}\n"
"\n"
"\n"
"@Entity\n"
"public class Part {\n"
"   ...\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:112
#, no-c-format
msgid ""
"Product describes a unidirectional relationship with Part using the join "
"column PART_ID. In this unidirectional one to many scenario you can also use "
"a join table as seen in <xref linkend=\"example-one-to-many-with-join-table"
"\"/>."
msgstr ""

#. Tag: title
#: collection_mapping.xml:118
#, no-c-format
msgid "Collection mapping using @OneToMany and @JoinTable"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:121
#, no-c-format
msgid ""
"@Entity\n"
"public class Product {\n"
"\n"
"    private String serialNumber;\n"
"    private Set<Part> parts = new HashSet<Part>();\n"
"\n"
"    @Id\n"
"    public String getSerialNumber() { return serialNumber; }\n"
"    void setSerialNumber(String sn) { serialNumber = sn; }\n"
"   \n"
"    @OneToMany\n"
"    @JoinTable(\n"
"            name=\"PRODUCT_PARTS\",\n"
"            joinColumns = @JoinColumn( name=\"PRODUCT_ID\"),\n"
"            inverseJoinColumns = @JoinColumn( name=\"PART_ID\")\n"
"    )\n"
"    public Set<Part> getParts() { return parts; }\n"
"    void setParts(Set parts) { this.parts = parts; }\n"
"}\n"
"\n"
"\n"
"@Entity\n"
"public class Part {\n"
"   ...\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:124
#, no-c-format
msgid ""
"Without describing any physical mapping (no <classname>@JoinColumn@JoinTable), a unidirectional one to "
"many with join table is used. The table name is the concatenation of the "
"owner table name, _, and the other side table name. The foreign key name(s) "
"referencing the owner table is the concatenation of the owner table, _, and "
"the owner primary key column(s) name. The foreign key name(s) referencing "
"the other side is the concatenation of the owner property name, _, and the "
"other side primary key column(s) name. A unique constraint is added to the "
"foreign key referencing the other side table to reflect the one to many."
msgstr ""

#. Tag: para
#: collection_mapping.xml:135
#, fuzzy, no-c-format
msgid ""
"Lets have a look now how collections are mapped using Hibernate mapping "
"files. In this case the first step is to chose the right mapping element. It "
"depends on the type of interface. For example, a <literal><set>SetSetone-to-many "
"association</emphasis> links the Product and "
"<literal>Part entities. This association requires the existence of "
"a foreign key column and possibly an index column to the <literal>Part vers Part "
"requiert l'existence d'une clé étrangère et éventuellement une colonne "
"d'index pour la table <literal>Part. Une balise <one-"
"to-many></literal> indique que c'est une association un-à-plusieurs. "

#. Tag: para
#: collection_mapping.xml:156
#, no-c-format
msgid ""
"An instance of the contained entity class cannot belong to more than one "
"instance of the collection."
msgstr ""
"Une instance de la classe de l'entité contenue ne peut pas appartenir à plus "
"d'une instance de la collection."

#. Tag: para
#: collection_mapping.xml:161
#, no-c-format
msgid ""
"An instance of the contained entity class cannot appear at more than one "
"value of the collection index."
msgstr ""
"Une instance de la classe de l'entité contenue peut ne pas apparaître à plus "
"plus d'une valeur d'index de la collection."

#. Tag: para
#: collection_mapping.xml:166
#, no-c-format
msgid ""
"Looking closer at the used <literal><one-to-many> tag we see "
"that it has the following options."
msgstr ""

#. Tag: title
#: collection_mapping.xml:170
#, no-c-format
msgid "options of <one-to-many> element"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:181
#, no-c-format
msgid ""
"<one-to-many\n"
"        class=\"ClassName\"\n"
"        not-found=\"ignore|exception\"\n"
"        entity-name=\"EntityName\"\n"
"        node=\"element-name\"\n"
"        embed-xml=\"true|false\"\n"
"    />"
msgstr ""

#. Tag: para
#: collection_mapping.xml:185
#, no-c-format
msgid "<literal>class (required): the name of the associated class."
msgstr "<literal>class (requis) : le nom de la classe associée."

#. Tag: para
#: collection_mapping.xml:190
#, no-c-format
msgid ""
"<literal>not-found (optional - defaults to exception will treat a missing row as a null "
"association."
msgstr ""
"<literal>not-found (optionnel - par défaut exception traitera une "
"ligne manquante comme une association nulle."

#. Tag: para
#: collection_mapping.xml:198
#, no-c-format
msgid ""
"<literal>entity-name (optional): the entity name of the associated "
"class, as an alternative to <literal>class."
msgstr ""
"<literal>entity-name (optionnel) : le nom de l'entité de la classe "
"associée, comme une alternative à <literal>class. "

#. Tag: para
#: collection_mapping.xml:206
#, no-c-format
msgid ""
"The <literal><one-to-many> element does not need to declare "
"any columns. Nor is it necessary to specify the <literal>table "
"name anywhere."
msgstr ""
"Notez que l'élément <literal><one-to-many> n'a pas besoin de "
"déclarer de colonnes. Il n'est pas non plus nécessaire de spécifier le nom "
"de la <literal>table à aucun endroit."

#. Tag: para
#: collection_mapping.xml:211
#, fuzzy, no-c-format
msgid ""
"If the foreign key column of a <literal><one-to-many> "
"association is declared <literal>NOT NULL, you must declare the "
"<literal><key> mapping not-null=\"true\" "
"or <emphasis>use a bidirectional association with the collection "
"mapping marked <literal>inverse=\"true\". See  si la colonne de la clé d'une "
"association <literal><one-to-many> est déclarée NOT "
"NULL</literal>, vous devez déclarer le mappage de <key>not-null=\"true\" ou  utiliser "
"une association bidirectionnelle </emphasis> avec le mappage de la "
"collection marqué <literal>inverse=\"true\". Voir la discussion "
"sur les associations bidirectionnelles plus tard dans ce chapitre. "

#. Tag: para
#: collection_mapping.xml:221
#, fuzzy, no-c-format
msgid ""
"Apart from the <literal><set> tag as shown in <list><map>, <bag>, "
"<literal><array> and <primitive-array><map> element is "
"representative:"
msgstr ""
"À part <literal><set>, il y aussi les éléments de mappage "
"<literal><list>, <map>, "
"<literal><bag>, <array> et "
"<literal><primitive-array>. L'élément <map>: the collection property name"
msgstr ""
"<literal>name : le nom de la propriété contenant la collection "

#. Tag: para
#: collection_mapping.xml:270
#, no-c-format
msgid ""
"<literal>table (optional - defaults to property name): the name of "
"the collection table. It is not used for one-to-many associations."
msgstr ""
"<literal>table (optionnel - par défaut = nom de la propriété) : le "
"nom de la table de la collection (non utilisé pour les associations un-à-"
"plusieurs) "

#. Tag: para
#: collection_mapping.xml:276
#, no-c-format
msgid ""
"<literal>schema (optional): the name of a table schema to override "
"the schema declared on the root element"
msgstr ""
"<literal>schema (optionnel) : le nom du schéma pour surcharger le "
"schéma déclaré dans l'élément racine "

#. Tag: para
#: collection_mapping.xml:281
#, no-c-format
msgid ""
"<literal>lazy (optional - defaults to true): "
"disables lazy fetching and specifies that the association is always eagerly "
"fetched. It can also be used to enable \"extra-lazy\" fetching where most "
"operations do not initialize the collection. This is suitable for large "
"collections."
msgstr ""
"<literal>lazy (optionnel - par défaut = true) : "
"peut être utilisé pour désactiver l'initialisation tardive et spécifier que "
"l'association est toujours rapportée, ou pour activer la récupération extra-"
"paresseuse (extra-lazy) où la plupart des opérations n'initialisent pas la "
"collection (approprié pour de très grosses collections)."

#. Tag: para
#: collection_mapping.xml:290
#, no-c-format
msgid ""
"<literal>inverse (optional - defaults to false (optionnel - par défaut = false (optional - defaults to none): "
"enables operations to cascade to child entities."
msgstr ""
"<literal>cascade (optionnel - par défaut = none (optional): specifies a sorted collection with "
"<literal>natural sort order or a given comparator class."
msgstr ""
"<literal>sort (optionnel) : spécifie une collection triée via un "
"ordre de tri <literal>naturel, ou via une classe comparateur "
"donnée."

#. Tag: para
#: collection_mapping.xml:308
#, fuzzy, no-c-format
msgid ""
"<literal>order-by (optional): specifies a table column or columns "
"that define the iteration order of the <literal>Map, Setasc or "
"<literal>desc."
msgstr ""
"<literal>order-by (optionnel, seulement à partir du JDK1.4) : "
"spécifie une colonne de table (ou des colonnes) qui définit l'ordre "
"d'itération de <literal>Map, Set ou Bag, avec "
"en option <literal>asc ou desc."

#. Tag: para
#: collection_mapping.xml:316
#, no-c-format
msgid ""
"<literal>where (optional): specifies an arbitrary SQL "
"<literal>WHERE condition that is used when retrieving or removing "
"the collection. This is useful if the collection needs to contain only a "
"subset of the available data."
msgstr ""
"<literal>where (optionnel) : spécifie une condition SQL arbitraire "
"<literal>WHERE à utiliser au chargement ou à la suppression d'une "
"collection (utile si la collection ne doit contenir qu'un sous ensemble des "
"données disponibles)."

#. Tag: para
#: collection_mapping.xml:324
#, no-c-format
msgid ""
"<literal>fetch (optional, defaults to select): "
"chooses between outer-join fetching, fetching by sequential select, and "
"fetching by sequential subselect."
msgstr ""
"<literal>fetch (optionnel, par défaut = select (optional, defaults to 1): "
"specifies a \"batch size\" for lazily fetching instances of this collection."
msgstr ""
"<literal>batch-size (optionnel, par défaut = 1 (optional - defaults to property (optionnel - par défaut = property (optional - defaults to true (optionnel - par défaut = true (optional - defaults to true): "
"a value of <literal>false specifies that the elements of the "
"collection never change. This allows for minor performance optimization in "
"some cases."
msgstr ""
"<literal>mutable (optionnel - par défaut = truefalse spécifie que les éléments "
"de la collection ne changent jamais (une optimisation mineure dans certains "
"cas)."

#. Tag: para
#: collection_mapping.xml:360
#, no-c-format
msgid ""
"After exploring the basic mapping of collections in the preceding paragraphs "
"we will now focus details like physical mapping considerations, indexed "
"collections and collections of value types."
msgstr ""

#. Tag: title
#: collection_mapping.xml:365
#, no-c-format
msgid "Collection foreign keys"
msgstr "Les clés étrangères d'une collection"

#. Tag: para
#: collection_mapping.xml:367
#, fuzzy, no-c-format
msgid ""
"On the database level collection instances are distinguished by the foreign "
"key of the entity that owns the collection. This foreign key is referred to "
"as the <emphasis>collection key column, or columns, of the "
"collection table. The collection key column is mapped by the "
"<literal>@JoinColumn annotation respectively the <"
"key></literal> XML element."
msgstr ""
"Les instances d'une collection sont distinguées dans la base de données par "
"la clé étrangère de l'entité qui possède la collection. Cette clé étrangère "
"est référencée comme la(es) <emphasis>colonne(s) de la clé de la collection."

#. Tag: para
#: collection_mapping.xml:374
#, fuzzy, no-c-format
msgid ""
"There can be a nullability constraint on the foreign key column. For most "
"collections, this is implied. For unidirectional one-to-many associations, "
"the foreign key column is nullable by default, so you may need to specify"
msgstr ""
"Il peut y avoir une contrainte de nullité sur la colonne de la clé "
"étrangère. Pour les associations unidirectionnelles un-à-plusieurs, la "
"colonne de la clé étrangère peut être nulle par défaut, donc vous pourriez "
"avoir besoin de spécifier <literal>not-null=\"true\". "

#. Tag: programlisting
#: collection_mapping.xml:379
#, no-c-format
msgid "@JoinColumn(nullable=false)"
msgstr ""

#. Tag: para
#: collection_mapping.xml:381
#, no-c-format
msgid "<para>or"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:383
#, no-c-format
msgid "<key column=\"productSerialNumber\" not-null=\"true\"/>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:385
#, fuzzy, no-c-format
msgid ""
"The foreign key constraint can use <literal>ON DELETE CASCADE. In "
"XML this can be expressed via:"
msgstr ""
"La contraite de la clé étrangère peut utiliser <literal>ON DELETE CASCADE element."
msgstr ""
"Voir le chapitre précédent pour une définition complète de l'élément "
"<literal><key>."

#. Tag: title
#: collection_mapping.xml:400
#, no-c-format
msgid "Indexed collections"
msgstr "Collections indexées"

#. Tag: para
#: collection_mapping.xml:402
#, no-c-format
msgid ""
"In the following paragraphs we have a closer at the indexed collections "
"<classname>List and Map how the their "
"index can be mapped in Hibernate."
msgstr ""

#. Tag: title
#: collection_mapping.xml:407
#, no-c-format
msgid "Lists"
msgstr ""

#. Tag: para
#: collection_mapping.xml:409
#, no-c-format
msgid "Lists can be mapped in two different ways:"
msgstr ""

#. Tag: para
#: collection_mapping.xml:413
#, no-c-format
msgid "as ordered lists, where the order is not materialized in the database"
msgstr ""

#. Tag: para
#: collection_mapping.xml:418
#, no-c-format
msgid "as indexed lists, where the order is materialized in the database"
msgstr ""

#. Tag: para
#: collection_mapping.xml:423
#, no-c-format
msgid ""
"To order lists in memory, add <literal>@javax.persistence.OrderBy "
"to your property. This annotation takes as parameter a list of comma "
"separated properties (of the target entity) and orders the collection "
"accordingly (eg <code>firstname asc, age desc), if the string is "
"empty, the collection will be ordered by the primary key of the target "
"entity."
msgstr ""

#. Tag: title
#: collection_mapping.xml:432
#, no-c-format
msgid "Ordered lists using <classname>@OrderBy"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:434
#, no-c-format
msgid ""
"@Entity\n"
"public class Customer {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   @OneToMany(mappedBy=\"customer\")\n"
"   @OrderBy(\"number\")\n"
"   public List<Order> getOrders() { return orders; }\n"
"   public void setOrders(List<Order> orders) { this.orders = "
"orders; }\n"
"   private List<Order> orders;\n"
"}\n"
"\n"
"@Entity\n"
"public class Order {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   public String getNumber() { return number; }\n"
"   public void setNumber(String number) { this.number = number; }\n"
"   private String number;\n"
"\n"
"   @ManyToOne\n"
"   public Customer getCustomer() { return customer; }\n"
"   public void setCustomer(Customer customer) { this.customer = customer; }\n"
"   private Customer number;\n"
"}\n"
"\n"
"-- Table schema\n"
"|-------------| |----------|\n"
"| Order       | | Customer |\n"
"|-------------| |----------|\n"
"| id          | | id       |\n"
"| number      | |----------| \n"
"| customer_id |\n"
"|-------------|"
msgstr ""

#. Tag: para
#: collection_mapping.xml:437
#, no-c-format
msgid ""
"To store the index value in a dedicated column, use the <classname>@javax."
"persistence.OrderColumn</classname> annotation on your property. This "
"annotations describes the column name and attributes of the column keeping "
"the index value. This column is hosted on the table containing the "
"association foreign key. If the column name is not specified, the default is "
"the name of the referencing property, followed by underscore, followed by "
"<literal>ORDER (in the following example, it would be "
"<literal>orders_ORDER)."
msgstr ""

#. Tag: title
#: collection_mapping.xml:448
#, no-c-format
msgid "Explicit index column using <classname>@OrderColumn"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:451
#, no-c-format
msgid ""
"@Entity\n"
"public class Customer {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   @OneToMany(mappedBy=\"customer\")\n"
"   @OrderColumn(name=\"orders_index\")\n"
"   public List<Order> getOrders() { return orders; }\n"
"   public void setOrders(List<Order> orders) { this.orders = "
"orders; }\n"
"   private List<Order> orders;\n"
"}\n"
"\n"
"@Entity\n"
"public class Order {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   public String getNumber() { return number; }\n"
"   public void setNumber(String number) { this.number = number; }\n"
"   private String number;\n"
"\n"
"   @ManyToOne\n"
"   public Customer getCustomer() { return customer; }\n"
"   public void setCustomer(Customer customer) { this.customer = customer; }\n"
"   private Customer number;\n"
"}\n"
"\n"
"-- Table schema\n"
"|--------------| |----------|\n"
"| Order        | | Customer |\n"
"|--------------| |----------|\n"
"| id           | | id       |\n"
"| number       | |----------| \n"
"| customer_id  |\n"
"| orders_order |\n"
"|--------------|"
msgstr ""

#. Tag: para
#: collection_mapping.xml:455
#, no-c-format
msgid ""
"We recommend you to convert <classname>the legacy @org.hibernate.annotations."
"IndexColumn</classname> usages to @OrderColumn unless "
"you are making use of the base property. The <literal>base "
"property lets you define the index value of the first element (aka as base "
"index). The usual value is <literal>0 or 1. The "
"default is 0 like in Java."
msgstr ""

#. Tag: para
#: collection_mapping.xml:464
#, no-c-format
msgid ""
"Looking again at the Hibernate mapping file equivalent, the index of an "
"array or list is always of type <literal>integer and is mapped "
"using the <literal><list-index> element. The mapped column "
"contains sequential integers that are numbered from zero by default."
msgstr ""

#. Tag: title
#: collection_mapping.xml:471
#, no-c-format
msgid "index-list element for indexed collections in xml mapping"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:481
#, no-c-format
msgid ""
"<list-index\n"
"        column=\"column_name\"\n"
"        base=\"0|1|...\"/>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:485
#, no-c-format
msgid ""
"<literal>column_name (required): the name of the column holding "
"the collection index values."
msgstr ""
"<literal>column_name (champ requis): lenom de la lolonne qui "
"contient les valeurs 'index' de la collection."

#. Tag: para
#: collection_mapping.xml:490
#, no-c-format
msgid ""
"<literal>base (optional - defaults to 0): the "
"value of the index column that corresponds to the first element of the list "
"or array."
msgstr ""
"<literal>base (optionnel - par défaut = 0) : la "
"valeur de la colonne 'index' qui correspond au premier élément de la liste "
"ou de la table."

#. Tag: para
#: collection_mapping.xml:498
#, no-c-format
msgid ""
"If your table does not have an index column, and you still wish to use "
"<literal>List as the property type, you can map the property as a "
"Hibernate <emphasis><bag>. A bag does not retain its order "
"when it is retrieved from the database, but it can be optionally sorted or "
"ordered."
msgstr ""
"Si votre table n'a pas de colonne d'index, et que vous souhaitez tout de "
"même utiliser <literal>List comme type de propriété, vous devriez "
"mapper la propriété comme un <emphasis><bag> Hibernate. Un "
"sac (bag) ne garde pas son ordre quand il est récupéré de la base de "
"données, mais il peut être optionnellement trié ou ordonné. "

#. Tag: title
#: collection_mapping.xml:506
#, no-c-format
msgid "Maps"
msgstr ""

#. Tag: para
#: collection_mapping.xml:508
#, no-c-format
msgid ""
"The question with <classname>Maps is where the key value is "
"stored. There are everal options. Maps can borrow their keys from one of the "
"associated entity properties or have dedicated columns to store an explicit "
"key."
msgstr ""

#. Tag: para
#: collection_mapping.xml:513
#, no-c-format
msgid ""
"To use one of the target entity property as a key of the map, use "
"<literal>@MapKey(name=\"myProperty\"), where myProperty without the name attribuate, the target entity "
"primary key is used. The map key uses the same column as the property "
"pointed out. There is no additional column defined to hold the map key, "
"because the map key represent a target property. Be aware that once loaded, "
"the key is no longer kept in sync with the property. In other words, if you "
"change the property value, the key will not change automatically in your "
"Java model."
msgstr ""

#. Tag: title
#: collection_mapping.xml:525
#, no-c-format
msgid ""
"Use of target entity property as map key via <classname>@MapKey"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:528
#, no-c-format
msgid ""
"@Entity\n"
"public class Customer {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   @OneToMany(mappedBy=\"customer\")\n"
"   @MapKey(name=\"number\")\n"
"   public Map<String,Order> getOrders() { return orders; }\n"
"   public void setOrders(Map<String,Order> order) { this.orders = "
"orders; }\n"
"   private Map<String,Order> orders;\n"
"}\n"
"\n"
"@Entity\n"
"public class Order {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   public String getNumber() { return number; }\n"
"   public void setNumber(String number) { this.number = number; }\n"
"   private String number;\n"
"\n"
"   @ManyToOne\n"
"   public Customer getCustomer() { return customer; }\n"
"   public void setCustomer(Customer customer) { this.customer = customer; }\n"
"   private Customer number;\n"
"}\n"
"\n"
"-- Table schema\n"
"|-------------| |----------|\n"
"| Order       | | Customer |\n"
"|-------------| |----------|\n"
"| id          | | id       |\n"
"| number      | |----------| \n"
"| customer_id |\n"
"|-------------|"
msgstr ""

#. Tag: para
#: collection_mapping.xml:531
#, no-c-format
msgid ""
"Alternatively the map key is mapped to a dedicated column or columns. In "
"order to customize the mapping use one of the following annotations:"
msgstr ""

#. Tag: para
#: collection_mapping.xml:537
#, no-c-format
msgid ""
"@<classname>MapKeyColumn if the map key is a basic type. If you "
"don't specify the column name, the name of the property followed by "
"underscore followed by <literal>KEY is used (for example "
"<literal>orders_KEY)."
msgstr ""

#. Tag: para
#: collection_mapping.xml:544
#, no-c-format
msgid ""
"<classname>@MapKeyEnumerated / @MapKeyTemporalDate/@MapKeyJoinColumns/@AttributeOverrideskey. to define the type of "
"the key if you don't use generics."
msgstr ""

#. Tag: title
#: collection_mapping.xml:566
#, no-c-format
msgid "Map key as basic type using <classname>@MapKeyColumn"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:569
#, no-c-format
msgid ""
"@Entity\n"
"public class Customer {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   @OneToMany @JoinTable(name=\"Cust_Order\")\n"
"   @MapKeyColumn(name=\"orders_number\")\n"
"   public Map<String,Order> getOrders() { return orders; }\n"
"   public void setOrders(Map<String,Order> orders) { this.orders = "
"orders; }\n"
"   private Map<String,Order> orders;\n"
"}\n"
"\n"
"@Entity\n"
"public class Order {\n"
"   @Id @GeneratedValue public Integer getId() { return id; }\n"
"   public void setId(Integer id) { this.id = id; }\n"
"   private Integer id;\n"
"\n"
"   public String getNumber() { return number; }\n"
"   public void setNumber(String number) { this.number = number; }\n"
"   private String number;\n"
"\n"
"   @ManyToOne\n"
"   public Customer getCustomer() { return customer; }\n"
"   public void setCustomer(Customer customer) { this.customer = customer; }\n"
"   private Customer number;\n"
"}\n"
"\n"
"-- Table schema\n"
"|-------------| |----------| |---------------|\n"
"| Order       | | Customer | | Cust_Order    |\n"
"|-------------| |----------| |---------------|\n"
"| id          | | id       | | customer_id   |\n"
"| number      | |----------| | order_id      |\n"
"| customer_id |              | orders_number |\n"
"|-------------|              |---------------|"
msgstr ""

#. Tag: para
#: collection_mapping.xml:573
#, no-c-format
msgid ""
"We recommend you to migrate from <classname>@org.hibernate.annotations."
"MapKey</classname> / @org.hibernate.annotation.MapKeyManyToMany, "
"<literal><map-key-many-to-many> and <composite-"
"map-key></literal>. <map-key> is used for any "
"basic type, <literal><map-key-many-to-many> for an entity "
"reference and <literal><composite-map-key> for a composite "
"type."
msgstr ""
"À part <literal><set>, il y aussi les éléments de mappage "
"<literal><list>, <map>, "
"<literal><bag>, <array> et "
"<literal><primitive-array>. L'élément <map> (optional): the name of the column holding the "
"collection index values."
msgstr ""
"<literal>colonne (optionnel) : le nom de la colonne qui contient "
"les valeurs 'index' de la collection."

#. Tag: para
#: collection_mapping.xml:610
#, no-c-format
msgid ""
"<literal>formula (optional): a SQL formula used to evaluate the "
"key of the map."
msgstr ""
"<literal>formula (optionnel): formule SQL utilisée pour évaluer la "
"clé de la mappe."

#. Tag: para
#: collection_mapping.xml:615
#, no-c-format
msgid "<literal>type (required): the type of the map keys."
msgstr "<literal>type (requis) : le type de clés de mappe."

#. Tag: title
#: collection_mapping.xml:623
#, fuzzy, no-c-format
msgid "map-key-many-to-many"
msgstr "plusieurs-à-plusieurs "

#. Tag: programlisting
#: collection_mapping.xml:634
#, no-c-format
msgid ""
"<map-key-many-to-many\n"
"        column=\"column_name\"\n"
"        formula=\"any SQL expression\"\n"
"        class=\"ClassName\"\n"
"/>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:638
#, no-c-format
msgid ""
"<literal>column (optional): the name of the foreign key column for "
"the collection index values."
msgstr ""
"<literal>colonne (optionnel) : le nom de la colonne de clés "
"étrangères pour la collection de valeurs 'index'."

#. Tag: para
#: collection_mapping.xml:643
#, no-c-format
msgid ""
"<literal>formula (optional): a SQ formula used to evaluate the "
"foreign key of the map key."
msgstr ""
"<literal>formula (optionnel): formule SQ utilisée pour évaluer la "
"clé étrangère d'une clé de mappe."

#. Tag: para
#: collection_mapping.xml:648
#, no-c-format
msgid ""
"<literal>class (required): the entity class used as the map key."
msgstr ""
"<literal>class (requis) : le nom de la classe utilisée en tant que "
"clé de mappe."

#. Tag: title
#: collection_mapping.xml:658
#, fuzzy, no-c-format
msgid "Collections of basic types and embeddable objects"
msgstr "Collections de valeurs et associations plusieurs-à-plusieurs"

#. Tag: para
#: collection_mapping.xml:660
#, no-c-format
msgid ""
"In some situations you don't need to associate two entities but simply "
"create a collection of basic types or embeddable objects. Use the "
"<classname>@ElementCollection for this case."
msgstr ""

#. Tag: title
#: collection_mapping.xml:665
#, no-c-format
msgid ""
"Collection of basic types mapped via <classname>@ElementCollection annotation. If omitted the "
"collection table name defaults to the concatenation of the name of the "
"containing entity and the name of the collection attribute, separated by an "
"underscore. In our example, it would be <literal>User_nicknames."
msgstr ""

#. Tag: para
#: collection_mapping.xml:678
#, no-c-format
msgid ""
"The column holding the basic type is set using the <classname>@Column."
msgstr ""

#. Tag: para
#: collection_mapping.xml:683
#, no-c-format
msgid ""
"But you are not limited to basic types, the collection type can be any "
"embeddable object. To override the columns of the embeddable object in the "
"collection table, use the <classname>@AttributeOverride "
"annotation."
msgstr ""

#. Tag: title
#: collection_mapping.xml:689
#, no-c-format
msgid "@ElementCollection for embeddable objects"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:691
#, no-c-format
msgid ""
"@Entity\n"
"public class User {\n"
"   [...]\n"
"   public String getLastname() { ...}\n"
"\n"
"   @ElementCollection\n"
"   @CollectionTable(name=\"Addresses\", joinColumns=@JoinColumn(name="
"\"user_id\"))\n"
"   @AttributeOverrides({\n"
"      @AttributeOverride(name=\"street1\", column=@Column(name=\"fld_street"
"\"))\n"
"   })\n"
"   public Set<Address> getAddresses() { ... } \n"
"}\n"
"\n"
"@Embeddable\n"
"public class Address {\n"
"   public String getStreet1() {...}\n"
"   [...]\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:694
#, no-c-format
msgid "Such an embeddable object cannot contains a collection itself."
msgstr ""

#. Tag: para
#: collection_mapping.xml:698
#, no-c-format
msgid ""
"in <classname>@AttributeOverride, you must use the "
"<literal>value. prefix to override properties of the embeddable "
"object used in the map value and the <literal>key. prefix to "
"override properties of the embeddable object used in the map key."
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:704
#, no-c-format
msgid ""
"@Entity\n"
"public class User {\n"
"   @ElementCollection\n"
"   @AttributeOverrides({\n"
"      @AttributeOverride(name=\"key.street1\", column=@Column(name="
"\"fld_street\")),\n"
"      @AttributeOverride(name=\"value.stars\", column=@Column(name=\"fld_note"
"\"))\n"
"   })\n"
"   public Map<Address,Rating> getFavHomes() { ... }"
msgstr ""

#. Tag: para
#: collection_mapping.xml:708
#, no-c-format
msgid ""
"We recommend you to migrate from <classname>@org.hibernate.annotations."
"CollectionOfElements</classname> to the new @ElementCollection tag. For example:"
msgstr ""
"Pour une collection de valeurs, nous utilisons la balise <literal><"
"element></literal>. Par exemple :"

#. Tag: title
#: collection_mapping.xml:718
#, no-c-format
msgid "<element> tag for collection values using mapping files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:730
#, no-c-format
msgid ""
"<element\n"
"        column=\"column_name\"\n"
"        formula=\"any SQL expression\"\n"
"        type=\"typename\"\n"
"        length=\"L\"\n"
"        precision=\"P\"\n"
"        scale=\"S\"\n"
"        not-null=\"true|false\"\n"
"        unique=\"true|false\"\n"
"        node=\"element-name\"\n"
"/>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:734
#, no-c-format
msgid ""
"<literal>column (optional): the name of the column holding the "
"collection element values."
msgstr ""
"<literal>colonne (optionnel) : le nom de la colonne qui contient "
"les valeurs des éléments de collection."

#. Tag: para
#: collection_mapping.xml:739
#, no-c-format
msgid ""
"<literal>formula (optional): an SQL formula used to evaluate the "
"element."
msgstr ""
"<literal>formula (optionnel) : formule SQL utilisée pour évaluer "
"l'élément."

#. Tag: para
#: collection_mapping.xml:744
#, no-c-format
msgid "<literal>type (required): the type of the collection element."
msgstr "<literal>type (requis) : le type d'élément de collection."

#. Tag: title
#: collection_mapping.xml:754
#, no-c-format
msgid "Advanced collection mappings"
msgstr "Mappages de collection avancés"

#. Tag: title
#: collection_mapping.xml:757
#, no-c-format
msgid "Sorted collections"
msgstr "Collections triées"

#. Tag: para
#: collection_mapping.xml:759
#, no-c-format
msgid ""
"Hibernate supports collections implementing <literal>java.util.SortedMapjava.util.SortedSet. With annotations you "
"declare a sort comparator using <literal>@Sort. You chose between "
"the comparator types unsorted, natural or custom. If you want to use your "
"own comparator implementation, you'll also have to specify the "
"implementation class using the <literal>comparator attribute. Note "
"that you need to use either a <classname>SortedSet or a "
"<classname>SortedMap interface."
msgstr ""

#. Tag: title
#: collection_mapping.xml:770
#, fuzzy, no-c-format
msgid "Sorted collection with @Sort"
msgstr "Collections triées"

#. Tag: programlisting
#: collection_mapping.xml:772
#, no-c-format
msgid ""
"@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)\n"
"@JoinColumn(name=\"CUST_ID\")\n"
"@Sort(type = SortType.COMPARATOR, comparator = TicketComparator.class)\n"
"public SortedSet<Ticket> getTickets() {\n"
"    return tickets;\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:775
#, no-c-format
msgid ""
"Using Hibernate mapping files you specify a comparator in the mapping file "
"with <literal><sort>:"
msgstr ""

#. Tag: title
#: collection_mapping.xml:779
#, fuzzy, no-c-format
msgid "Sorted collection using xml mapping"
msgstr "Collections triées"

#. Tag: programlisting
#: collection_mapping.xml:781
#, no-c-format
msgid ""
"<set name=\"aliases\"\n"
"            table=\"person_aliases\" \n"
"            sort=\"natural\">\n"
"    <key column=\"person\"/>\n"
"    <element column=\"name\" type=\"string\"/>\n"
"</set>\n"
"\n"
"<map name=\"holidays\" sort=\"my.custom.HolidayComparator\">\n"
"    <key column=\"year_id\"/>\n"
"    <map-key column=\"hol_name\" type=\"string\"/>\n"
"    <element column=\"hol_date\" type=\"date\"/>\n"
"</map>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:784
#, no-c-format
msgid ""
"Allowed values of the <literal>sort attribute are "
"<literal>unsorted, natural and the name of a "
"class implementing <literal>java.util.Comparator."
msgstr ""
"Les valeurs permises pour l'attribut <literal>sort sont "
"<literal>unsorted, natural et le nom d'une "
"classe implémentant <literal>java.util.Comparator."

#. Tag: para
#: collection_mapping.xml:789
#, no-c-format
msgid ""
"Sorted collections actually behave like <literal>java.util.TreeSet "
"or <literal>java.util.TreeMap."
msgstr ""
"Les collections triées se comportent réellement comme <literal>java.util."
"TreeSet</literal> ou java.util.TreeMap."

#. Tag: para
#: collection_mapping.xml:794
#, fuzzy, no-c-format
msgid ""
"If you want the database itself to order the collection elements, use the "
"<literal>order-by attribute of set, "
"<literal>bag or map mappings. This solution is "
"implemented using <literal>LinkedHashSet or "
"<literal>LinkedHashMap and performs the ordering in the SQL query "
"and not in the memory."
msgstr ""
"Si vous voulez que la base de données elle-même ordonne les éléments de la "
"collection, utilisez l'attribut <literal>order-by des mappages "
"<literal>set, bag ou map. "
"Cette solution est seulement disponible à partir du JDK 1.4 (c'est "
"implémenté en utilisant <literal>LinkedHashSet ou "
"<literal>LinkedHashMap). Ceci exécute le tri dans la requête SQL, "
"pas en mémoire. "

#. Tag: title
#: collection_mapping.xml:802
#, no-c-format
msgid "Sorting in database using order-by"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:804
#, no-c-format
msgid ""
"<set name=\"aliases\" table=\"person_aliases\" order-by=\"lower(name) asc"
"\">\n"
"    <key column=\"person\"/>\n"
"    <element column=\"name\" type=\"string\"/>\n"
"</set>\n"
"\n"
"<map name=\"holidays\" order-by=\"hol_date, hol_name\">\n"
"    <key column=\"year_id\"/>\n"
"    <map-key column=\"hol_name\" type=\"string\"/>\n"
"    <element column=\"hol_date type=\"date\"/>\n"
"</map>"
msgstr ""

#. Tag: title
#: collection_mapping.xml:808
#, no-c-format
msgid "Note"
msgstr "Note"

#. Tag: para
#: collection_mapping.xml:810
#, no-c-format
msgid ""
"The value of the <literal>order-by attribute is an SQL ordering, "
"not an HQL ordering."
msgstr ""
"Notez que la valeur de l'attribut <literal>order-by est un ordre "
"SQL, et non pas un ordre HQL."

#. Tag: para
#: collection_mapping.xml:814
#, no-c-format
msgid ""
"Associations can even be sorted by arbitrary criteria at runtime using a "
"collection <literal>filter():"
msgstr ""
"Les associations peuvent même être triées sur des critères arbitraires à "
"l'exécution en utilisant un <literal>filter() de collection :"

#. Tag: title
#: collection_mapping.xml:818
#, no-c-format
msgid "Sorting via a query filter"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:820
#, no-c-format
msgid ""
"sortedUsers = s.createFilter( group.getUsers(), \"order by this.name\" ).list"
"();"
msgstr ""

#. Tag: title
#: collection_mapping.xml:825
#, no-c-format
msgid "Bidirectional associations"
msgstr "Associations bidirectionnelles"

#. Tag: para
#: collection_mapping.xml:827
#, no-c-format
msgid ""
"A <emphasis>bidirectional association allows navigation from both "
"\"ends\" of the association. Two kinds of bidirectional association are "
"supported:"
msgstr ""
"Une <emphasis>association bidirectionnelle permet la navigation à "
"partir des deux extrémités de l'association. Deux types d'associations "
"bidirectionnelles sont supportées : "

#. Tag: term
#: collection_mapping.xml:831
#, no-c-format
msgid "one-to-many"
msgstr "un-à-plusieurs (one-to-many)"

#. Tag: para
#: collection_mapping.xml:834
#, no-c-format
msgid "set or bag valued at one end and single-valued at the other"
msgstr "ensemble ou sac à une extrémité, une seule valeur à l'autre "

#. Tag: term
#: collection_mapping.xml:840
#, no-c-format
msgid "many-to-many"
msgstr "plusieurs-à-plusieurs "

#. Tag: para
#: collection_mapping.xml:843
#, no-c-format
msgid "set or bag valued at both ends"
msgstr "ensemble ou sac aux deux extrémités"

#. Tag: para
#: collection_mapping.xml:848
#, no-c-format
msgid ""
"Often there exists a many to one association which is the owner side of a "
"bidirectional relationship. The corresponding one to many association is in "
"this case annotated by <literal>@OneToMany(mappedBy=...)"
msgstr ""

#. Tag: title
#: collection_mapping.xml:854
#, no-c-format
msgid "Bidirectional one to many with many to one side as association owner"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:857
#, no-c-format
msgid ""
"@Entity\n"
"public class Troop {\n"
"    @OneToMany(mappedBy=\"troop\")\n"
"    public Set<Soldier> getSoldiers() {\n"
"    ...\n"
"}\n"
"\n"
"@Entity\n"
"public class Soldier {\n"
"    @ManyToOne\n"
"    @JoinColumn(name=\"troop_fk\")\n"
"    public Troop getTroop() {\n"
"    ...\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:860
#, no-c-format
msgid ""
"<classname>Troop has a bidirectional one to many relationship "
"with <literal>Soldier through the troop "
"property. You don't have to (must not) define any physical mapping in the "
"<literal>mappedBy side."
msgstr ""

#. Tag: para
#: collection_mapping.xml:865
#, no-c-format
msgid ""
"To map a bidirectional one to many, with the one-to-many side as the owning "
"side, you have to remove the <literal>mappedBy element and set the "
"many to one <literal>@JoinColumn as insertable and updatable to "
"false. This solution is not optimized and will produce additional UPDATE "
"statements."
msgstr ""

#. Tag: title
#: collection_mapping.xml:872
#, fuzzy, no-c-format
msgid "Bidirectional associtaion with one to many side as owner"
msgstr "Associations bidirectionnelles avec des collections indexées"

#. Tag: programlisting
#: collection_mapping.xml:875
#, no-c-format
msgid ""
"@Entity\n"
"public class Troop {\n"
"    @OneToMany\n"
"    @JoinColumn(name=\"troop_fk\") //we need to duplicate the physical "
"information\n"
"    public Set<Soldier> getSoldiers() {\n"
"    ...\n"
"}\n"
"\n"
"@Entity\n"
"public class Soldier {\n"
"    @ManyToOne\n"
"    @JoinColumn(name=\"troop_fk\", insertable=false, updatable=false)\n"
"    public Troop getTroop() {\n"
"    ...\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:878
#, fuzzy, no-c-format
msgid ""
"How does the mappping of a bidirectional mapping look like in Hibernate "
"mapping xml? There you define a bidirectional one-to-many association by "
"mapping a one-to-many association to the same table column(s) as a many-to-"
"one association and declaring the many-valued end <literal>inverse=\"true\". "

#. Tag: title
#: collection_mapping.xml:885
#, no-c-format
msgid "Bidirectional one to many via Hibernate mapping files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:887
#, no-c-format
msgid ""
"<class name=\"Parent\">\n"
"    <id name=\"id\" column=\"parent_id\"/>\n"
"    ....\n"
"    <set name=\"children\" inverse=\"true\">\n"
"        <key column=\"parent_id\"/>\n"
"        <one-to-many class=\"Child\"/>\n"
"    </set>\n"
"</class>\n"
"\n"
"<class name=\"Child\">\n"
"    <id name=\"id\" column=\"child_id\"/>\n"
"    ....\n"
"    <many-to-one name=\"parent\" \n"
"        class=\"Parent\" \n"
"        column=\"parent_id\"\n"
"        not-null=\"true\"/>\n"
"</class>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:890
#, no-c-format
msgid ""
"Mapping one end of an association with <literal>inverse=\"true\" "
"does not affect the operation of cascades as these are orthogonal concepts."
msgstr ""
"Mapper une extrémité d'une association avec <literal>inverse=\"true\" annotation. You also have to describe the "
"association table and the join conditions using the <literal>@JoinTable defines a name primary key (the \"other side\"). As seen "
"previously, the other side don't have to (must not) describe the physical "
"mapping: a simple <literal>mappedBy argument containing the owner "
"side property name bind the two."
msgstr ""

#. Tag: para
#: collection_mapping.xml:919
#, no-c-format
msgid ""
"As any other annotations, most values are guessed in a many to many "
"relationship. Without describing any physical mapping in a unidirectional "
"many to many the following rules applied. The table name is the "
"concatenation of the owner table name, <keycap>_ and the other side "
"table name. The foreign key name(s) referencing the owner table is the "
"concatenation of the owner table name, <keycap>_ and the owner "
"primary key column(s). The foreign key name(s) referencing the other side is "
"the concatenation of the owner property name, <keycap>_, and the "
"other side primary key column(s). These are the same rules used for a "
"unidirectional one to many relationship."
msgstr ""

#. Tag: title
#: collection_mapping.xml:932
#, no-c-format
msgid "Default values for <classname>@ManyToMany (uni-directional)"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:935
#, no-c-format
msgid ""
"@Entity\n"
"public class Store {\n"
"    @ManyToMany(cascade = CascadeType.PERSIST)\n"
"    public Set<City> getImplantedIn() {\n"
"        ...\n"
"    }\n"
"}\n"
"\n"
"@Entity\n"
"public class City {\n"
"    ... //no bidirectional relationship\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:938
#, no-c-format
msgid ""
"A <literal>Store_City is used as the join table. The "
"<literal>Store_id column is a foreign key to the StoreimplantedIn_id column is a foreign "
"key to the <literal>City table."
msgstr ""

#. Tag: para
#: collection_mapping.xml:943
#, no-c-format
msgid ""
"Without describing any physical mapping in a bidirectional many to many the "
"following rules applied. The table name is the concatenation of the owner "
"table name, <keycap>_ and the other side table name. The foreign "
"key name(s) referencing the owner table is the concatenation of the other "
"side property name, <keycap>_, and the owner primary key column(s). "
"The foreign key name(s) referencing the other side is the concatenation of "
"the owner property name, <keycap>_, and the other side primary key "
"column(s). These are the same rules used for a unidirectional one to many "
"relationship."
msgstr ""

#. Tag: title
#: collection_mapping.xml:955
#, no-c-format
msgid "Default values for <classname>@ManyToMany (bi-directional)"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:958
#, no-c-format
msgid ""
"@Entity\n"
"public class Store {\n"
"    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})\n"
"    public Set<Customer> getCustomers() {\n"
"        ...\n"
"    }\n"
"}\n"
"\n"
"@Entity\n"
"public class Customer {\n"
"    @ManyToMany(mappedBy=\"customers\")\n"
"    public Set<Store> getStores() {\n"
"        ...\n"
"    }\n"
"}"
msgstr ""

#. Tag: para
#: collection_mapping.xml:961
#, no-c-format
msgid ""
"A <literal>Store_Customer is used as the join table. The "
"<literal>stores_id column is a foreign key to the Storecustomers_id column is a foreign key "
"to the <literal>Customer table."
msgstr ""

#. Tag: para
#: collection_mapping.xml:966
#, fuzzy, no-c-format
msgid ""
"Using Hibernate mapping files you can map a bidirectional many-to-many "
"association by mapping two many-to-many associations to the same database "
"table and declaring one end as <emphasis>inverse."
msgstr ""
"Vous pouvez spécifier une association bidirectionnelle plusieurs-à-plusieurs "
"simplement en mappant deux associations plusieurs-à-plusieurs vers la même "
"table de base de données et en déclarant une extrémité comme "
"<emphasis>inverse (celle de votre choix, mais pas une collection "
"indexée). "

#. Tag: para
#: collection_mapping.xml:970
#, no-c-format
msgid "You cannot select an indexed collection."
msgstr ""

#. Tag: para
#: collection_mapping.xml:973
#, fuzzy, no-c-format
msgid ""
"shows a bidirectional many-to-many association that illustrates how each "
"category can have many items and each item can be in many categories:"
msgstr ""
"Voici un exemple d'association bidirectionnelle plusieurs-à-plusieurs ; "
"chaque catégorie peut avoir plusieurs objets et chaque objet peut être dans "
"plusieurs catégories : "

#. Tag: title
#: collection_mapping.xml:979
#, no-c-format
msgid "Many to many association using Hibernate mapping files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:981
#, no-c-format
msgid ""
"<class name=\"Category\">\n"
"    <id name=\"id\" column=\"CATEGORY_ID\"/>\n"
"    ...\n"
"    <bag name=\"items\" table=\"CATEGORY_ITEM\">\n"
"        <key column=\"CATEGORY_ID\"/>\n"
"        <many-to-many class=\"Item\" column=\"ITEM_ID\"/>\n"
"    </bag>\n"
"</class>\n"
"\n"
"<class name=\"Item\">\n"
"    <id name=\"id\" column=\"ITEM_ID\"/>\n"
"    ...\n"
"\n"
"    <!-- inverse end -->\n"
"    <bag name=\"categories\" table=\"CATEGORY_ITEM\" inverse=\"true"
"\">\n"
"        <key column=\"ITEM_ID\"/>\n"
"        <many-to-many class=\"Category\" column=\"CATEGORY_ID\"/>\n"
"    </bag>\n"
"</class>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:984
#, no-c-format
msgid ""
"Changes made only to the inverse end of the association are <emphasis>not persistés. Ceci signifie qu'Hibernate a "
"deux représentations en mémoire pour chaque association bidirectionnelle, un "
"lien de A vers B et un autre de B vers A. Ceci est plus facile à comprendre "
"si vous pensez au modèle objet de Java et à la façon dont nous créons une "
"relation plusieurs-à-plusieurs dans Java : "

#. Tag: title
#: collection_mapping.xml:992
#, fuzzy, no-c-format
msgid "Effect of inverse vs. non-inverse side of many to many associations"
msgstr "Collections de valeurs et associations plusieurs-à-plusieurs"

#. Tag: programlisting
#: collection_mapping.xml:995
#, no-c-format
msgid ""
"category.getItems().add(item);           // The category now \"knows\" about "
"the relationship\n"
"item.getCategories().add(category);      // The item now \"knows\" about the "
"relationship\n"
"\n"
"session.persist(item);                   // The relationship won't be "
"saved!\n"
"session.persist(category);               // The relationship will be saved"
msgstr ""

#. Tag: para
#: collection_mapping.xml:998
#, no-c-format
msgid ""
"The non-inverse side is used to save the in-memory representation to the "
"database."
msgstr ""
"La partie non-inverse est utilisée pour sauvegarder la représentation en "
"mémoire dans la base de données."

#. Tag: title
#: collection_mapping.xml:1003
#, no-c-format
msgid "Bidirectional associations with indexed collections"
msgstr "Associations bidirectionnelles avec des collections indexées"

#. Tag: para
#: collection_mapping.xml:1005
#, fuzzy, no-c-format
msgid ""
"There are some additional considerations for bidirectional mappings with "
"indexed collections (where one end is represented as a <literal><list>"
"</literal> or <map>) when using Hibernate mapping "
"files. If there is a property of the child class that maps to the index "
"column you can use <literal>inverse=\"true\" on the collection "
"mapping:"
msgstr ""
"Une association bidirectionnelle où une extrémité est représentée comme une "
"<literal><list> ou une <map> "
"requiert une considération spéciale. S'il y a une propriété de la classe "
"enfant qui mappe la colonne de l'index, pas de problème, nous pouvons "
"continuer à utiliser <literal>inverse=\"true\" sur le mappage de "
"la collection : "

#. Tag: title
#: collection_mapping.xml:1013
#, fuzzy, no-c-format
msgid "Bidirectional association with indexed collection"
msgstr "Associations bidirectionnelles avec des collections indexées"

#. Tag: programlisting
#: collection_mapping.xml:1015
#, no-c-format
msgid ""
"<class name=\"Parent\">\n"
"    <id name=\"id\" column=\"parent_id\"/>\n"
"    ....\n"
"    <map name=\"children\" inverse=\"true\">\n"
"        <key column=\"parent_id\"/>\n"
"        <map-key column=\"name\" \n"
"            type=\"string\"/>\n"
"        <one-to-many class=\"Child\"/>\n"
"    </map>\n"
"</class>\n"
"\n"
"<class name=\"Child\">\n"
"    <id name=\"id\" column=\"child_id\"/>\n"
"    ....\n"
"    <property name=\"name\" \n"
"        not-null=\"true\"/>\n"
"    <many-to-one name=\"parent\" \n"
"        class=\"Parent\" \n"
"        column=\"parent_id\"\n"
"        not-null=\"true\"/>\n"
"</class>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1018
#, no-c-format
msgid ""
"If there is no such property on the child class, the association cannot be "
"considered truly bidirectional. That is, there is information available at "
"one end of the association that is not available at the other end. In this "
"case, you cannot map the collection <literal>inverse=\"true\". "
"Instead, you could use the following mapping:"
msgstr ""
"Mais, si il n'y a pas de telle propriété sur la classe enfant, nous ne "
"pouvons pas considérer l'association comme vraiment bidirectionnelle (il y a "
"des informations disponibles à une extrémité de l'association qui ne sont "
"pas disponibles à l'autre extrémité). Dans ce cas, nous ne pouvons pas "
"mapper la collection <literal>inverse=\"true\". Par contre, nous "
"utiliserons le mappage suivant : "

#. Tag: title
#: collection_mapping.xml:1026
#, fuzzy, no-c-format
msgid "Bidirectional association with indexed collection, but no index column"
msgstr "Associations bidirectionnelles avec des collections indexées"

#. Tag: programlisting
#: collection_mapping.xml:1029
#, no-c-format
msgid ""
"<class name=\"Parent\">\n"
"    <id name=\"id\" column=\"parent_id\"/>\n"
"    ....\n"
"    <map name=\"children\">\n"
"        <key column=\"parent_id\"\n"
"            not-null=\"true\"/>\n"
"        <map-key column=\"name\" \n"
"            type=\"string\"/>\n"
"        <one-to-many class=\"Child\"/>\n"
"    </map>\n"
"</class>\n"
"\n"
"<class name=\"Child\">\n"
"    <id name=\"id\" column=\"child_id\"/>\n"
"    ....\n"
"    <many-to-one name=\"parent\" \n"
"        class=\"Parent\" \n"
"        column=\"parent_id\"\n"
"        insert=\"false\"\n"
"        update=\"false\"\n"
"        not-null=\"true\"/>\n"
"</class>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1032
#, fuzzy, no-c-format
msgid ""
"Note that in this mapping, the collection-valued end of the association is "
"responsible for updates to the foreign key."
msgstr ""
"Notez que dans ce mappage, l'extrémité de l'association contenant la "
"collection est responsable des mise à jour de la clé étrangère. <!-- TODO: "
"Does this really result in some unnecessary update statements? -->"

#. Tag: title
#: collection_mapping.xml:1037
#, no-c-format
msgid "Ternary associations"
msgstr "Associations ternaires"

#. Tag: para
#: collection_mapping.xml:1039
#, no-c-format
msgid ""
"There are three possible approaches to mapping a ternary association. One "
"approach is to use a <literal>Map with an association as its index:"
msgstr ""
"Il y a trois approches possibles pour mapper une association ternaire. L'une "
"est d'utiliser une <literal>Map avec une association comme son "
"index : "

#. Tag: title
#: collection_mapping.xml:1044
#, fuzzy, no-c-format
msgid "Ternary association mapping"
msgstr "Associations ternaires"

#. Tag: programlisting
#: collection_mapping.xml:1046
#, no-c-format
msgid ""
"@Entity\n"
"public class Company {\n"
"   @Id \n"
"   int id;\n"
"   ...\n"
"   @OneToMany // unidirectional\n"
"   @MapKeyJoinColumn(name=\"employee_id\")\n"
"   Map<Employee, Contract> contracts;\n"
"}\n"
"\n"
"// or\n"
"\n"
"<map name=\"contracts\">\n"
"    <key column=\"employer_id\" not-null=\"true\"/>\n"
"    <map-key-many-to-many column=\"employee_id\" class=\"Employee\"/>\n"
"    <one-to-many class=\"Contract\"/>\n"
"</map>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1049
#, fuzzy, no-c-format
msgid ""
"A second approach is to remodel the association as an entity class. This is "
"the most common approach. A final alternative is to use composite elements, "
"which will be discussed later."
msgstr ""
"Une seconde approche est simplement de remodeler l'association comme une "
"classe d'entité. C'est l'approche la plus commune. "

#. Tag: literal
#: collection_mapping.xml:1055
#, fuzzy, no-c-format
msgid "Using an <idbag>"
msgstr "<literal>Using an <idbag>"

#. Tag: para
#: collection_mapping.xml:1057
#, fuzzy, no-c-format
msgid ""
"The majority of the many-to-many associations and collections of values "
"shown previously all map to tables with composite keys, even though it has "
"been suggested that entities should have synthetic identifiers (surrogate "
"keys). A pure association table does not seem to benefit much from a "
"surrogate key, although a collection of composite values <emphasis>might). Néanmoins, Hibernate "
"fournit une fonctionnalité qui vous permet de mapper des associations "
"plusieurs-à-plusieurs et des collections de valeurs vers une table avec une "
"clé subrogée. "

#. Tag: para
#: collection_mapping.xml:1066
#, no-c-format
msgid ""
"The <literal><idbag> element lets you map a ListCollection) with bag semantics. For example:"
msgstr ""
"L'élément <literal><idbag> vous laisse mapper une "
"<literal>List (ou une Collection) avec une "
"sémantique de sac. Par exemple :"

#. Tag: programlisting
#: collection_mapping.xml:1070
#, no-c-format
msgid ""
"<idbag name=\"lovers\" table=\"LOVERS\">\n"
"    <collection-id column=\"ID\" type=\"long\">\n"
"        <generator class=\"sequence\"/>\n"
"    </collection-id>\n"
"    <key column=\"PERSON1\"/>\n"
"    <many-to-many column=\"PERSON2\" class=\"Person\" fetch=\"join\"/"
">\n"
"</idbag>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1072
#, no-c-format
msgid ""
"An <literal><idbag> has a synthetic id generator, just like "
"an entity class. A different surrogate key is assigned to each collection "
"row. Hibernate does not, however, provide any mechanism for discovering the "
"surrogate key value of a particular row."
msgstr ""
"Comme vous pouvez le constater, un <literal><idbag> a un "
"générateur d'id artificiel, exactement comme une classe d'entité ! Une clé "
"subrogée différente est assignée à chaque ligne de la collection. Cependant, "
"Hibernate ne fournit pas de mécanisme pour découvrir la valeur d'une clé "
"subrogée d'une ligne particulière. "

#. Tag: para
#: collection_mapping.xml:1077
#, no-c-format
msgid ""
"The update performance of an <literal><idbag> supersedes a "
"regular <literal><bag>. Hibernate can locate individual rows "
"efficiently and update or delete them individually, similar to a list, map "
"or set."
msgstr ""
"Notez que les performances de la mise à jour d'un <literal><idbag>bien meilleures qu'un <bag>"
"</literal> ordinaire ! Hibernate peut localiser des lignes individuelles "
"efficacement et les mettre à jour ou les effacer individuellement, comme une "
"liste, une map ou un ensemble. "

#. Tag: para
#: collection_mapping.xml:1082
#, no-c-format
msgid ""
"In the current implementation, the <literal>native identifier "
"generation strategy is not supported for <literal><idbag> "
"collection identifiers."
msgstr ""
"Dans l'implémentation actuelle, la stratégie de la génération de "
"l'identifiant <literal>native n'est pas supportée pour les "
"identifiants de collection <literal><idbag>. "

#. Tag: title
#: collection_mapping.xml:1103
#, no-c-format
msgid "Collection examples"
msgstr "Exemples de collections"

#. Tag: para
#: collection_mapping.xml:1105
#, no-c-format
msgid "This section covers collection examples."
msgstr "Exemples de collections "

#. Tag: para
#: collection_mapping.xml:1107
#, no-c-format
msgid ""
"The following class has a collection of <literal>Child instances:"
msgstr ""
"La classe suivante possède une collection d'instances <literal>Child and Child relationship "
"using annotations"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1124
#, no-c-format
msgid ""
"public class Parent {\n"
"    @Id\n"
"    @GeneratedValue\n"
"    private long id;\n"
"\n"
"    @OneToMany\n"
"    private Set<Child> children;\n"
"\n"
"    // getter/setter\n"
"    ...\n"
"}\n"
"\n"
"\n"
"public class Child {\n"
"   @Id\n"
"   @GeneratedValue\n"
"   private long id;\n"
"   private String name;\n"
"\n"
"   \n"
"   // getter/setter\n"
"   ...\n"
"}"
msgstr ""

#. Tag: title
#: collection_mapping.xml:1128
#, no-c-format
msgid ""
"One to many unidirectional <classname>Parent-Child relationship "
"using mapping files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1131
#, no-c-format
msgid ""
"<hibernate-mapping>\n"
"\n"
"    <class name=\"Parent\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <set name=\"children\">\n"
"            <key column=\"parent_id\"/>\n"
"            <one-to-many class=\"Child\"/>\n"
"        </set>\n"
"    </class>\n"
"\n"
"    <class name=\"Child\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <property name=\"name\"/>\n"
"    </class>\n"
"\n"
"</hibernate-mapping>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1134
#, no-c-format
msgid "This maps to the following table definitions:"
msgstr "Ceci mappe les définitions de tables suivantes :"

#. Tag: title
#: collection_mapping.xml:1137
#, no-c-format
msgid ""
"Table definitions for unidirectional <classname>Parent-"
"<classname>Child relationship"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1141
#, no-c-format
msgid ""
"create table parent ( id bigint not null primary key )\n"
"create table child ( id bigint not null primary key, name varchar(255), "
"parent_id bigint )\n"
"alter table child add constraint childfk0 (parent_id) references parent"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1144
#, no-c-format
msgid ""
"If the parent is <emphasis>required, use a bidirectional one-to-"
"many association:"
msgstr ""
"Si le parent est <emphasis>requis, utilisez une association "
"bidirectionnelle un-à-plusieurs : "

#. Tag: title
#: collection_mapping.xml:1148
#, no-c-format
msgid ""
"One to many bidirectional <classname>Parent-Child relationship "
"using annotations"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1151
#, no-c-format
msgid ""
"public class Parent {\n"
"    @Id\n"
"    @GeneratedValue\n"
"    private long id;\n"
"\n"
"    @OneToMany(mappedBy=\"parent\")\n"
"    private Set<Child> children;\n"
"\n"
"    // getter/setter\n"
"    ...\n"
"}\n"
"\n"
"\n"
"public class Child {\n"
"   @Id\n"
"   @GeneratedValue\n"
"   private long id;\n"
"\n"
"   private String name;\n"
" \n"
"   @ManyToOne\n"
"   private Parent parent;\n"
"\n"
"   \n"
"   // getter/setter\n"
"   ...\n"
"}"
msgstr ""

#. Tag: title
#: collection_mapping.xml:1155
#, no-c-format
msgid ""
"One to many bidirectional <classname>Parent-Child relationship "
"using mapping files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1158
#, no-c-format
msgid ""
"<hibernate-mapping>\n"
"\n"
"    <class name=\"Parent\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <set name=\"children\" inverse=\"true\">\n"
"            <key column=\"parent_id\"/>\n"
"            <one-to-many class=\"Child\"/>\n"
"        </set>\n"
"    </class>\n"
"\n"
"    <class name=\"Child\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <property name=\"name\"/>\n"
"        <many-to-one name=\"parent\" class=\"Parent\" column=\"parent_id"
"\" not-null=\"true\"/>\n"
"    </class>\n"
"\n"
"</hibernate-mapping>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1161
#, no-c-format
msgid "Notice the <literal>NOT NULL constraint:"
msgstr "Notez la contrainte <literal>NOT NULL : "

#. Tag: title
#: collection_mapping.xml:1164
#, no-c-format
msgid ""
"Table definitions for bidirectional <classname>Parent-"
"<classname>Child relationship"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1168
#, no-c-format
msgid ""
"create table parent ( id bigint not null primary key )\n"
"create table child ( id bigint not null\n"
"                     primary key,\n"
"                     name varchar(255),\n"
"                     parent_id bigint not null )\n"
"alter table child add constraint childfk0 (parent_id) references parent"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1171
#, fuzzy, no-c-format
msgid ""
"Alternatively, if this association must be unidirectional you can enforce "
"the <literal>NOT NULL constraint."
msgstr ""
"Alternativement, si vous insistez absolument pour que cette association soit "
"unidirectionnelle, vous pouvez déclarer la contrainte <literal>NOT NULL<key> : "

#. Tag: title
#: collection_mapping.xml:1175
#, no-c-format
msgid ""
"Enforcing NOT NULL constraint in unidirectional relation using annotations"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1178
#, no-c-format
msgid ""
"public class Parent {\n"
"    @Id\n"
"    @GeneratedValue\n"
"    private long id;\n"
"\n"
"    @OneToMany(optional=false)\n"
"    private Set<Child> children;\n"
"\n"
"    // getter/setter\n"
"    ...\n"
"}\n"
"\n"
"\n"
"public class Child {\n"
"   @Id\n"
"   @GeneratedValue\n"
"   private long id;\n"
"   private String name;\n"
"\n"
"   \n"
"   // getter/setter\n"
"   ...\n"
"}"
msgstr ""

#. Tag: title
#: collection_mapping.xml:1182
#, no-c-format
msgid ""
"Enforcing NOT NULL constraint in unidirectional relation using mapping files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1185
#, no-c-format
msgid ""
"<hibernate-mapping>\n"
"\n"
"    <class name=\"Parent\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <set name=\"children\">\n"
"            <key column=\"parent_id\" not-null=\"true\"/>\n"
"            <one-to-many class=\"Child\"/>\n"
"        </set>\n"
"    </class>\n"
"\n"
"    <class name=\"Child\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <property name=\"name\"/>\n"
"    </class>\n"
"\n"
"</hibernate-mapping>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1188
#, fuzzy, no-c-format
msgid ""
"On the other hand, if a child has multiple parents, a many-to-many "
"association is appropriate."
msgstr ""
"D'autre part, si un enfant peut avoir plusieurs parents, une association "
"plusieurs-à-plusieurs est plus appropriée : "

#. Tag: title
#: collection_mapping.xml:1192
#, no-c-format
msgid ""
"Many to many <classname>Parent-Child relationship using "
"annotations"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1195
#, no-c-format
msgid ""
"public class Parent {\n"
"    @Id\n"
"    @GeneratedValue\n"
"    private long id;\n"
"\n"
"    @ManyToMany\n"
"    private Set<Child> children;\n"
"\n"
"    // getter/setter\n"
"    ...\n"
"}\n"
"\n"
"\n"
"public class Child {\n"
"   @Id\n"
"   @GeneratedValue\n"
"   private long id;\n"
"\n"
"   private String name;\n"
"\n"
"   \n"
"   // getter/setter\n"
"   ...\n"
"}"
msgstr ""

#. Tag: title
#: collection_mapping.xml:1199
#, no-c-format
msgid ""
"Many to many <classname>Parent-Child relationship using mapping "
"files"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1202
#, no-c-format
msgid ""
"<hibernate-mapping>\n"
"\n"
"    <class name=\"Parent\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <set name=\"children\" table=\"childset\">\n"
"            <key column=\"parent_id\"/>\n"
"            <many-to-many class=\"Child\" column=\"child_id\"/>\n"
"        </set>\n"
"    </class>\n"
"\n"
"    <class name=\"Child\">\n"
"        <id name=\"id\">\n"
"            <generator class=\"sequence\"/>\n"
"        </id>\n"
"        <property name=\"name\"/>\n"
"    </class>\n"
"\n"
"</hibernate-mapping>"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1205
#, no-c-format
msgid "Table definitions:"
msgstr "Définitions des tables :"

#. Tag: title
#: collection_mapping.xml:1208
#, no-c-format
msgid "Table definitions for many to many releationship"
msgstr ""

#. Tag: programlisting
#: collection_mapping.xml:1210
#, no-c-format
msgid ""
"create table parent ( id bigint not null primary key )\n"
"create table child ( id bigint not null primary key, name varchar(255) )\n"
"create table childset ( parent_id bigint not null,\n"
"                        child_id bigint not null,\n"
"                        primary key ( parent_id, child_id ) )\n"
"alter table childset add constraint childsetfk0 (parent_id) references "
"parent\n"
"alter table childset add constraint childsetfk1 (child_id) references child"
msgstr ""

#. Tag: para
#: collection_mapping.xml:1213
#, fuzzy, no-c-format
msgid ""
"For more examples and a complete explanation of a parent/child relationship "
"mapping, see <xref linkend=\"example-parentchild\"/> for more information. "
"Even more complex association mappings are covered in the next chapter."
msgstr ""
"Pour plus d'exemples et une revue complète du mappage de la relation parent/"
"enfant, consultez le <xref linkend=\"example-parentchild\" />. "

#~ msgid ""
#~ "Hibernate requires that persistent collection-valued fields be declared "
#~ "as an interface type. For example:"
#~ msgstr ""
#~ "Hibernate requiert que les champs contenant des collections persistantes "
#~ "soient déclarés comme des types d'interface, par exemple : "

#~ msgid "Collection mappings"
#~ msgstr "Mapper une collection"

#~ msgid ""
#~ "There are quite a range of mappings that can be generated for collections "
#~ "that cover many common relational models. We suggest you experiment with "
#~ "the schema generation tool so that you understand how various mapping "
#~ "declarations translate to database tables."
#~ msgstr ""
#~ "Il y a une grande variété de mappages qui peuvent être générés pour les "
#~ "collections, couvrant beaucoup de nombreux modèles relationnels communs. "
#~ "Nous vous suggérons d'expérimenter avec l'outil de génération de schéma "
#~ "pour cerner comment les différentes déclarations de mappage se traduisent "
#~ "vers des tables de bases de données. "

#~ msgid "Collection elements"
#~ msgstr "Les éléments d'une collection"

#~ msgid ""
#~ "The contained type is referred to as the <emphasis>collection element "
#~ "type</emphasis>. Collection elements are mapped by <"
#~ "element></literal> or <composite-element>, or "
#~ "in the case of entity references, with <literal><one-to-many><many-to-many>. The first two map "
#~ "elements with value semantics, the next two are used to map entity "
#~ "associations."
#~ msgstr ""
#~ "Le type contenu est référencé comme le <emphasis>type de l'élément de la "
#~ "collection</emphasis>. Les éléments de la collections sont mappés par "
#~ "<literal><element> ou <composite-element><one-"
#~ "to-many></literal> ou <many-to-many>. Les "
#~ "deux premiers mappent des éléments avec une sémantique de valeur, les "
#~ "deux suivants sont utilisés pour mapper des associations d'entité."

#~ msgid ""
#~ "All collection mappings, except those with set and bag semantics, need an "
#~ "<emphasis>index column in the collection table. An index "
#~ "column is a column that maps to an array index, or <literal>ListMap key. The index of a "
#~ "<literal>Map may be of any basic type, mapped with <"
#~ "map-key></literal>. It can be an entity reference mapped with "
#~ "<literal><map-key-many-to-many>, or it can be a composite "
#~ "type mapped with <literal><composite-map-key>. The index "
#~ "of an array or list is always of type <literal>integer and is "
#~ "mapped using the <literal><list-index> element. The "
#~ "mapped column contains sequential integers that are numbered from zero by "
#~ "default."
#~ msgstr ""
#~ "Tous les mappages de collection, exceptés ceux avec les sémantiques "
#~ "d'ensemble (set) et de sac (bag), ont besoin d'une <emphasis>colonne "
#~ "d'index</emphasis> dans la table de la collection - une colonne qui mappe "
#~ "un index de tableau, ou un index de <literal>List, ou une clé "
#~ "de <literal>Map. L'index d'une Map peut être "
#~ "n'importe quel type basique, mappé avec <literal><map-key><"
#~ "map-key-many-to-many></literal>, ou peut être un type composé, mappé "
#~ "avec <literal><composite-map-key>. L'index d'un tableau "
#~ "ou d'une liste est toujours de type <literal>integer et est "
#~ "mappé en utilisant l'élément <literal><list-index>. Les "
#~ "colonnes mappées contiennent des entiers séquentiels (numérotés à partir "
#~ "de zéro par défaut). "

#~ msgid ""
#~ "Any collection of values or many-to-many associations requires a "
#~ "dedicated <emphasis>collection table with a foreign key column "
#~ "or columns, <emphasis>collection element column or columns, "
#~ "and possibly an index column or columns."
#~ msgstr ""
#~ "Toute collection de valeurs ou association plusieurs-à-plusieurs requiert "
#~ "une <emphasis>table de collection avec une(des) colonne(s) de "
#~ "clé étrangère, une(des) <emphasis>colonne(s) d'élément de la collection is specified using the "
#~ "<literal><many-to-many> element."
#~ msgstr ""
#~ "Une association <emphasis>many-to-many est spécifiée en "
#~ "utilisant l'élément <literal><many-to-many>."

#~ msgid ""
#~ "<literal>column (optional): the name of the element foreign key "
#~ "column."
#~ msgstr ""
#~ "<literal>colonne (optionnel) : le nom de la colonne de clés "
#~ "étrangères des éléments."

#~ msgid ""
#~ "<literal>formula (optional): an SQL formula used to evaluate "
#~ "the element foreign key value."
#~ msgstr ""
#~ "<literal>formula (optionnel): formule SQL utilisée pour évaluer "
#~ "la valeur des clés étrangères des éléments."

#~ msgid ""
#~ "<literal>fetch (optional - defaults to join of an entity and its many-to-many relationships "
#~ "to other entities, you would enable <literal>join fetching,not "
#~ "only of the collection itself, but also with this attribute on the "
#~ "<literal><many-to-many> nested element."
#~ msgstr ""
#~ "<literal>fetch (optionnel - par défaut join d'entité ou à partir de "
#~ "ses relations many-to-many à d'autres entités, vous devrez activer la "
#~ "récupération <literal>join, non seulement pour la collection "
#~ "elle-même, mais aussi avec cet attribut qui se trouve sur l'élément "
#~ "<literal><many-to-many>."

#~ msgid ""
#~ "<literal>unique (optional): enables the DDL generation of a "
#~ "unique constraint for the foreign-key column. This makes the association "
#~ "multiplicity effectively one-to-many."
#~ msgstr ""
#~ "<literal>unique (optionnel): permet la génération DDL d'une "
#~ "seule contrainte pour la colonne de la clé étrangère. Cela transforme la "
#~ "muticiplicité de l'association en one-to-many."

#~ msgid ""
#~ "<literal>not-found (optional - defaults to exception will treat a missing row as a null "
#~ "association."
#~ msgstr ""
#~ "<literal>not-found (optionnel - par défaut exception traitera "
#~ "une ligne manquante comme une association nulle."

#~ msgid ""
#~ "<literal>property-ref (optional): the name of a property of the "
#~ "associated class that is joined to this foreign key. If not specified, "
#~ "the primary key of the associated class is used."
#~ msgstr ""
#~ "<literal>property-ref (optionnel): nom d'une propriété de la "
#~ "classe associée associée à une clé étrangère. Si elle n'est pas précisée, "
#~ "la clé primaire de la classe associée sera alors utilisée."

#~ msgid "Here are some examples."
#~ msgstr "Voici quelques exemples :"

#~ msgid "A set of strings:"
#~ msgstr "Un ensemble de chaînes de caractères :"

#~ msgid ""
#~ "A bag containing integers with an iteration order determined by the "
#~ "<literal>order-by attribute:"
#~ msgstr ""
#~ "Un sac contenant des entiers (avec un ordre d'itération déterminé par "
#~ "l'attribut <literal>order-by) : "

#~ msgid "An array of entities, in this case, a many-to-many association:"
#~ msgstr ""
#~ "Un tableau d'entités - dans ce cas, une association plusieurs-à-"
#~ "plusieurs : "

#~ msgid "A map from string indices to dates:"
#~ msgstr "Une map de chaînes de caractères vers des dates :"

#~ msgid "A list of components (this is discussed in the next chapter):"
#~ msgstr "Une liste de composants (traité dans le prochain chapitre) : "

#~ msgid "One-to-many associations"
#~ msgstr "Associations un-à-plusieurs"

#~ msgid ""
#~ "A <emphasis>one-to-many association links the tables of two "
#~ "classes via a foreign key with no intervening collection table. This "
#~ "mapping loses certain semantics of normal Java collections:"
#~ msgstr ""
#~ "Une <emphasis>association un-à-plusieurs lie les tables de "
#~ "deux classes par une clé étrangère, sans l'intervention d'une table de "
#~ "collection. Ce mappage perd certaines sémantiques des collections Java "
#~ "normales : "

#~ msgid ""
#~ "The following example shows a map of <literal>Part entities by "
#~ "name, where <literal>partName is a persistent property of "
#~ "<literal>Part. Notice the use of a formula-based index:"
#~ msgstr ""
#~ "Cet exemple montre une map d'entités <literal>Part par nom (où "
#~ "<literal>partName est une propriété persistante de "
#~ "<literal>Part). Notez l'utilisation d'un index basé sur une "
#~ "formule :"

#~ msgid ""
#~ "Hibernate supports collections implementing <literal>java.util.SortedMapjava.util.SortedSet. You must specify a "
#~ "comparator in the mapping file:"
#~ msgstr ""
#~ "Hibernate supporte des collections implémentant <literal>java.util."
#~ "SortedMap</literal> et java.util.SortedSet. Vous devez "
#~ "spécifier un comparateur dans le fichier de mappage :"

#~ msgid ""
#~ "A final alternative is to use composite elements, which will be discussed "
#~ "later."
#~ msgstr ""
#~ "Une alternative finale est d'utiliser des éléments composites, dont nous "
#~ "discuterons plus tard. "

#~ msgid ""
#~ "Even more complex association mappings are covered in the next chapter."
#~ msgstr ""
#~ "Des mappages d'association plus exotiques sont possibles, nous "
#~ "cataloguerons toutes les possibilités dans le prochain chapitre. "

Other Hibernate examples (source code examples)

Here is a short list of links related to this Hibernate collection_mapping.po source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.