Commande wsreversemapping
L'outil wsreversemapping génère les métadonnées et les définitions de classe persistante à partir d'un schéma de base de données.
Syntaxe
Avant d'exécuter la commande, vous devez disposer d'une copie du fichier persistence.xml dans le chemin d'accès aux classes ou l'indiquer en tant que fichier de propriétés via l'argument -p [chemin_vers_persistence.xml]. Lancez la commande à partir du sous-répertoire bin du répertoire racine_profil.
La syntaxe de la commande est la suivante :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsreversemapping.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsreversemapping [parameters][arguments]
![[Windows]](../images/windows.gif)
wsreversemapping.bat [parameters][arguments]
Paramètres
- -schemas/-s <noms de schéma et de
table> : liste des noms de schéma et de table, dont les éléments
sont séparés par une virgule, sur lesquels exécuter l'outil wsreversmapping
si aucun fichier de schéma XML n'est indiqué.
Chaque élément de la liste doit respecter les conventions d'attribution de nom de la propriété openjpa.jdbc.Schemas. Si cette option est omise, le paramètre prend par défaut la valeur de la propriété Schemas. Si la propriété Schemas n'est pas définie, tous les schémas sont mappés à l'inverse.
- -package/-p <nom package> :
nom du package des classes générées.
Si aucun nom de package est donné, le code généré ne contient aucune déclaration de package.
- -directory/-d <répertoire de
sortie> : les métadonnées et le code générés sont écrits dans le
répertoire indiqué par ce chemin.
Si le chemin ne correspond pas au package d'une classe, la structure du package est créée sous ce répertoire. Ce paramètre prend par défaut la valeur du répertoire en cours.
- -useSchemaName/-sn <true/t |
false/f> : réglez cette option à true pour inclure le
nom du schéma ainsi que le nom des tables dans le nom de chaque classe
générée.
Ce procédé peut être utile si plusieurs schémas comportent des tables aux noms identiques.
- -useForeignKeyName/-fkn <true/t |
false/f> : réglez cette option à true si vous
souhaitez que les noms de zone des relations soient basés sur le nom de la
clé externe de la base de données.
Par défaut, les noms de zone des relations sont issus du nom de la classe associée.
- -nullableAsObject/-no <true/t |
false/f> : par défaut, toutes les colonnes de clé non externe
sont mappées vers des primitives.
Réglez cette option à true pour générer champs encapsuleurs de types primitifs à la place des colonnes qui admettent les valeurs NULL.
- -blobAsObject/-bo <true/t |
false/f> : par défaut, toutes les colonnes binaires sont mappées
vers les zones byte[].
Réglez cette option à true pour les mapper vers des champs Object à la place.
Avertissement : Une fois mappée de cette manière, la colonne est censée contenir un objet Java™ sérialisé. - -primaryKeyOnJoin/pkj <true/t |
false/f> : le comportement de l'outil de mappage inverse standard
consiste à mapper toutes les tables dotées de clés primaires vers des
classes persistantes.
Si le schéma comporte des clés primaires sur plusieurs tables jointes, réglez cette option à true pour éviter le création de classes pour ces tables.
- -inverseRelations/-ir <true/t | false/f> : réglez cette à option à false pour empêcher la création de relations un à plusieurs/un à un inverses pour chaque relation plusieurs à un/un à un détectée.
- -useDatastoreIdentity/-ds <true/t |
false/f> : réglez cette option à true pour
utiliser l'identité du magasin de données pour les tables dotées de
colonnes ne comportant qu'une seule clé primaire numérique.
L'outil emploie généralement l'identité de l'application pour toutes les classes générées.
- -useBuiltinIdentityClass/-bic <true/t
| false/f> : réglez cette option à false pour
empêcher l'outil wsreversemapping d'utiliser les classes d'identité de
l'application intégrées lorsque cela est possible.
Cela force l'outil à créer des classes d'identité de l'application personnalisées même lorsqu'il n'existe qu'une seule colonne de clé primaire.
- -innerIdentityClasses/-inn <true/t |
false/f> : réglez cette option à true pour que les
classes d'identité de l'application générées soient créées en tant que
classes internes statiques dans les classes persistantes.
La valeur par défaut est false.
- -identityClassSuffix/-is
<suffixe> : suffixe à ajouter aux noms de classe pour
former les noms de classe d'identité de l'application, ou, pour les
classes d'identité internes, le nom de classe interne.
Le suffixe par défaut est Id.
- -typeMap/-typ <type mapping> :
chaîne qui indique les classes Java par défaut pour la génération de
chaque type SQL vu dans le schéma.
Le format est SQLTYPE1=JavaClass1, SQLTYPE2=JavaClass2. Le nom du type SQL recherche d'abord une personnalisation basée sur SQLTYPE(SIZE,PRECISION), puis sur SQLTYPE(SIZE), et enfin sur SQLTYPE. Si une colonne de type CHAR est trouvée, la chaîne recherche d'abord la spécification de nom de type CHAR(50,0), puis CHAR(50) et finalement CHAR. Par exemple, pour générer un tableau char pour chaque colonne char dont la taille est d'exactement 50 caractères et pour générer un short pour chaque nom de type INTEGER, vous devez indiquer CHAR(50)=char[],INTEGER=short.
Avertissement : Les différentes bases de données indiquent les noms de type de manière différente ; le type d'une base de données peut ne pas fonctionner avec une autre base de données. Activez la consignation de niveau TRACE sur le canal metadata pour effectuer le suivi des noms de type examinés par JPA for WebSphere Application Server. - -customizerClass/-cc <nom classe> : nom de classe complet d'un
plug-in de personnalisation org.apache.openjpa.jdbc.meta.ReverseCustomizer.
Si vous n'indiquez pas vous-même de personnaliseur inverse, le système utilise par défaut un personnaliseur PropertiesReverseCustomizer. Ce dernier permet d'indiquer des options de personnalisation simples dans le fichier propriétés donné grâce à l'option -customizerProperties.
- -customizerProperties/-cp<ressource ou fichier propriétés> : chemin ou nom de ressource d'un fichier de propriétés à transmettre au personnaliseur inverse lors de l'initialisation.
- -customizer/-c <nom propriété> <valeur propriété> : le nom de la propriété indiqué est mis en correspondance avec la propriété du bean Java correspondante dans le personnaliseur inverse précisé et prend la valeur donnée.
Utilisation
- Les tables de base de données et la connexion à la base de données doivent être configurées.
- Exécutez l'outil wsreversemapping à partir de la ligne de commande dans le répertoire $ {racine_profil}/bin.
- L'outil génère un fichier .java pour chaque classe, ainsi qu'un fichier descripteur XML orm.xml.
Exemples
Générez des entités basées sur les informations sauvegardées dans le fichier schema.xml. Le fichier schema.xml a été créé via l'exécution de l'outil schema. Les fichiers Java sont créés dans le répertoire src et utilisent le package com.xyz :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
${profile_root}/bin/wsreversemapping.sh -pkg com.xyz -d ./src schema.xml
![[IBM i]](../images/iseries.gif)
${profile_root}/bin/wsreversemapping -pkg com.xyz -d ./src schema.xml
![[Windows]](../images/windows.gif)
${profile_root}\bin\wsreversemapping.bat -pkg com.xyz -d ./src schema.xml
Générez des entités basées sur les informations figurant dans une base de données DB2. Les entités sont créées dans le répertoire src et utilisent le package com.reversemapped :
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
C:\> %profile_root%/bin/wsreversemapping.bat -sa dropDB Magazine.javapkg com.reversemapped -d src
-connectionDriverName=com.ibm.db2.jcc.DB2Driver -connectionURL=jdbc:db2:localhost:50000/TEST
-connectionUser=db2User -connectionPassword=db2Password
![[IBM i]](../images/iseries.gif)
C:\> %profile_root%/bin/wsreversemapping -sa dropDB Magazine.javapkg com.reversemapped -d src
-connectionDriverName=com.ibm.db2.jcc.DB2Driver -connectionURL=jdbc:db2:localhost:50000/TEST
-connectionUser=db2User -connectionPassword=db2Password
![[Windows]](../images/windows.gif)
C:\> %profile_root%\bin\wsreversemapping.bat -sa dropDB Magazine.javapkg com.reversemapped -d src
-connectionDriverName=com.ibm.db2.jcc.DB2Driver -connectionURL=jdbc:db2:localhost:50000/TEST
-connectionUser=db2User -connectionPassword=db2Password
Informations supplémentaires
Pour plus d'informations, reportez-vous à la section relative au mappage dans le document Apache OpenJPA User's Guide.