Gestion de la persistance des types de données complexes

Dans l'exemple suivant, les deux classes sont définies comme persistantes.

La classe Client contient un attribut Adresse doté du type de données complexe ADRESSE. Ce type de données est basé sur le code de la classe Adresse.



Pour plus d'informations sur la création d'une classe comme type de données, voir Affectation d'un classificateur à un type de données ou à un type de résultat.

Lorsque vous appliquez des types de données complexes persistants à un attribut de classe ou à un domaine, vous pouvez définir les options de génération suivantes :

Génération sous forme de classe persistante

Dans la page Détails de la feuille de propriétés d'un attribut utilisant un type de données complexe, vous devez :

  • Cocher la case Persistant

  • Sélectionner Persistante dans la liste Génération de classe

A l'issue de la génération d'un MOO dans un MPD, les deux classes deviennent des tables et une référence est créée entre elles. Cette référence contient une jointure qui relie la colonne de clé primaire dans la table parent Adresse (cette colonne est nouvelle, elle a été créée lors de la génération) et la colonne de clé étrangère dans la table enfant Client. La colonne de clé étrangère représente l'attribut utilisant un type de données complexe dans le MOO.

Par exemple, si vous définissez les options de génération de types de données standard suivantes pour l'exemple Adresse/Client, le MPD généré se présente comme suit :



La référence comporte une jointure entre Adresse_ID (nouvelle colonne dans la table Adresse) et la colonne adresse dans la table enfant Client. Adresse_ID contient la clé primaire migrée dans la colonne adresse.

Génération sous forme d'une classe incorporée

Dans la page Détails de la feuille de propriétés d'un attribut utilisant un type de données complexe, vous devez :

  • Cocher la case Persistant

  • Sélectionner Incorporée dans la liste Génération de classe

A l'issue de la génération d'un MOO dans un MPD, tous les attributs de la classe utilisée comme type de données sont incorporés dans la table contenant l'attribut avec un type de données complexe. Ces attributs sont préfixés par le nom de l'attribut utilisant le type de données complexe.

Par exemple, si vous définissez les options de génération de type de données incorporé dans le cas de l'exemple Adresse/Client, le MCD généré se présente comme suit :



Tous les attributs de la classe Adresse sont incorporés dans la table Client et sont préfixés par "adresse" qui est le nom de l'attribut utilisant Adresse comme type de données complexe.

Génération sous forme d'une classe de type de données abstrait

Dans la page Détails de la feuille de propriétés d'un attribut utilisant un type de données complexe, vous devez :

  • Cocher la case Persistant

  • Sélectionner Incorporée dans la liste Génération de classe

Vous devez également cocher la case Type de données abstrait dans la page Détails de la feuille de propriétés de la classe utilisée comme type de données.

A l'issue de la génération d'un MOO dans un MPD, la classe utilisée comme type de données devient un type de données abstrait.

Par exemple, si vous définissez les options de génération sous forme de type de données abstrait dans l'exemple Adresse/Client, le MPD généré se présente comme suit :



La classe Adresse est générée comme type de données abstrait attaché à la colonne adresse dans la table Client.