Mandato wsreversemapping
La herramienta wsreversemapping genera metadatos y definiciones de clases persistentes a partir de un esquema de base de datos.
Sintaxis
Antes de ejecutar el mandato, debe tener una copia del archivo persistence.xml en la classpath o especificarlo como archivo de propiedades en el argumento -p [path_to_persistence.xml]. Emita el mandato desde el subdirectorio bin del directorio raíz_perfil.
La sintaxis del mandato es la siguiente:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsreversemapping.sh [parámetros][argumentos]
![[IBM i]](../images/iseries.gif)
wsreversemapping [parámetros][argumentos]
![[Windows]](../images/windows.gif)
wsreversemapping.bat [parámetros][argumentos]
Parámetros
- -schemas/-s <nombres de esquemas y tablas>: lista de nombres de esquemas y tablas, separados por comas, en los que ejecutar la
herramienta wsreversmapping si no se proporciona ningún archivo de esquema XML.
Cada elemento de la lista debe seguir los convenios de denominación de la propiedad openjpa.jdbc.Schemas. Si se omite el distintivo de este parámetro, adopta de forma predeterminada el valor de la propiedad Schemas. Si la propiedad Schemas no está definida, todos los esquemas se correlacionan a la inversa.
- -package/-p <nombre de paquete>: nombre del paquete de las
clases generadas.
Si no se proporciona ningún nombre de paquete, el código generado no contiene declaraciones de paquete.
- -directory/-d <directorio de salida>:
todo el código generado y los metadatos se graban en el directorio en esta vía de acceso.
Si la vía de acceso no coincide con el paquete de una clase, la estructura del paquete se crea debajo de este directorio. Este paquete adopta de forma predeterminada el valor del directorio actual.
- -useSchemaName/-sn <true/t | false/f>: establezca el distintivo de este parámetro en
true para incluir el esquema y el nombre de tabla de cada clase generada.
Este método puede ser útil cuando se tengan múltiples esquemas con tablas de nombres idénticos.
- -useForeignKeyName/-fkn <true/t
| false/f>: establezca el distintivo de este parámetro en true si desea que los nombres de campo de las relaciones se basen en el nombre de la clave foránea de la base de datos.
De forma predeterminada, los nombres de campos de relaciones se derivan del nombre de la clase relacionada.
- -nullableAsObject/-no <true/t | false/f>: de forma predeterminada, todas las
columnas que no son de clave foránea se correlacionan con las primitivas.
Establezca el distintivo de este parámetro en true para generar campos de derivador primitivo para columnas que permiten valores nulos.
- -blobAsObject/-bo <true/t | false/f>:
de forma predeterminada, todas las columnas binarias se correlacionan con los campos byte[].
Establezca el distintivo de este parámetro en true para correlacionarlas en su lugar con campos de objeto.
Atención: Cuando se correlaciona de esta forma, se presupone que la columna contiene un objeto Java™ serializado. - -primaryKeyOnJoin/pkj <true/t | false/f>:
el comportamiento de la herramienta de correlación inversa estándar es correlacionar
todas las tablas con claves primarias con clases persistentes.
Si el esquema tiene también claves primarias en muchas tablas de unión, establezca este distintivo en true para evitar crear clases para esas tablas.
- -inverseRelations/-ir <true/t | false/f>: establezca el distintivo de este parámetro en false para impedir la creación de relaciones inversas de uno con varios o de uno con uno para cada relación de varios con uno o de uno con uno.
- -useDatastoreIdentity/-ds <true/t | false/f>:
establezca el distintivo de este parámetro en true para utilizar identidad de almacén de
datos para tablas que tengan columnas de clave primaria numérica única.
Por lo general, la herramienta utiliza la identidad de la aplicación para todas las clases generadas.
- -useBuiltinIdentityClass/-bic <true/t
| false/f>: establezca el distintivo de este parámetro en false para evitar que
la herramienta wsreversemapping utilice clases incorporadas de identidad de la aplicación cuando sea posible.
Esto obliga a la herramienta a crear clases de identidad de la aplicación personalizada incluso cuando haya solamente una columna de clave primaria.
- -innerIdentityClasses/-inn <true/t | false/f>:
establezca el distintivo de este parámetro en true para hacer que cualquier clase de
identidad de la aplicación generada se cree como clase interna estática dentro de las
clases persistentes.
El valor predeterminado es false.
- -identityClassSuffix/-is <sufijo>: sufijo que se añadirá a los
nombres de clase para formar nombres de clase de identidad de la aplicación o, para las clases de identidad
interna, el nombre de clase interna.
El sufijo predeterminado es Id.
- -typeMap/-typ <correlación de tipo>:
serie que especifica las clases Java predeterminadas que se generarán para cada tipo SQL que aparece en el esquema.
El formato es SQLTYPE1=JavaClass1, SQLTYPE2=JavaClass2. En primer lugar, el nombre de tipo SQL busca una personalización basada en SQLTYPE(SIZE,PRECISION), luego SQLTYPE(SIZE) y finalmente SQLTYPE(SIZE,PRECISION). Si se encuentra una columna con tipo CHAR, primero se busca la especificación de nombre de tipo CHAR(50,0) y, a continuación, se busca CHAR(50) y, finalmente, CHAR. Por ejemplo, para generar una matriz de caracteres para cada columna de caracteres cuyo tamaño sea exactamente de 50 caracteres, y para generar una forma abreviada para cada nombre de tipo de INTEGER, puede especificar, CHAR(50)=char[],INTEGER=short.
Atención: No todas las bases de datos informan de los distintos nombres de tipo de la misma forma, y es posible que un tipo de base de datos no funcione para otra base de datos. Habilite el registro cronológico de nivel TRACE en el canal de metadatos para realizar un seguimiento de qué nombres de tipo examina JPA para WebSphere Application Server. - -customizerClass/-cc <nombre de clase>:
nombre de clase completo de un plug-in de personalización org.apache.openjpa.jdbc.meta.ReverseCustomizer.
Si no especifica un personalizador inverso por su cuenta, el sistema adopta de forma predeterminada el valor de un PropertiesReverseCustomizer. Este personalizador permite especificar opciones de personalización simples en el archivo de propiedades proporcionado con el distintivo -customizerProperties.
- -customizerProperties/-cp<archivo de propiedades o recurso>: vía de acceso o nombre de recurso de un archivo de propiedades para pasar al personalizador inverso durante la inicialización.
- -customizer/-c <nombre de propiedad> <valor de propiedad>: el nombre de propiedad proporcionado coincide con la propiedad del bean de Java correspondiente en el personalizador inverso especificado y se establece en el valor proporcionado.
Uso
- Debe tener tablas de base de datos y configurada la conexión a la base de datos.
- Ejecute la herramienta wsreversemapping desde la línea de mandatos en el directorio ${raíz_perfil}/bin.
- La herramienta genera los archivos .java para cada clase, junto con un archivo del descriptor XML, orm.xml.
Ejemplos
Generar entidades basadas en la información guardada en el archivo schema.xml. Schema.xml se ha creado ejecutando la herramienta de esquemas. Los archivos Java se crean en el directorio src y utilizan el paquete com.xyz:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
${raíz_perfil}/bin/wsreversemapping.sh
-pkg com.xyz -d ./src schema.xml
![[IBM i]](../images/iseries.gif)
${raíz_perfil}/bin/wsreversemapping -pkg com.xyz -d ./src schema.xml
![[Windows]](../images/windows.gif)
${raíz_perfil}\bin\wsreversemapping.bat -pkg com.xyz -d ./src schema.xml
Generar entidades basadas en la información en una base de datos DB2. Las entidades se crean en el directorio src y utilizan el paquete 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:\> %raíz_perfil%/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:\> %raíz_perfil%/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:\> %raíz_perfil%\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
Información adicional
Para obtener más información, consulte el apartado sobre la correlación en la guía del usuario de Apache OpenJPA.