Mandato wsappid
La especificación JPA (Java™ Persistence API) admite una clave primaria de entidad que se compone de más de una columna. En este caso, la clave primaria se denomina clave primaria compuesta o compuesto. Proporcione una clase de ID, que se especifica mediante la anotación @IdClass, para gestionar una clave primaria compuesta. Utilice la herramienta de identidad para JPA para generar una clase de ID para las entidades que utilizan claves primarias compuestas.
Sintaxis
Antes de ejecutar el mandato, debe tener una copia del archivo persistence.xml en la vía de acceso de clases o especificarlo como archivo de propiedades en el argumento -p [vía-acceso_a_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)
wsappid.sh [parámetros][argumentos]
![[IBM i]](../images/iseries.gif)
wsappid [parámetros][argumentos]
![[Windows]](../images/windows.gif)
wsappid.bat [parámetros][argumentos]
Parámetros
- -directory/-d <directorio_salida>: vía de acceso al directorio
de salida.
Si el directorio no coincide con el paquete de clase de ID de salida generado, la estructura del paquete se creará debajo del directorio. Si no se especifica este parámetro, la herramienta wsappid intenta encontrar el directorio del archivo .java para la clase que admite la persistencia. Si no se encuentra ningún archivo .java, la herramienta wsappid utilizará el directorio actual.
- -ignoreErrors/-i <true/t | false/f>: si este parámetro se establece en false, se produce una excepción cuando la herramienta se ejecuta en cualquier clase que no utilice la identidad de la aplicación. También se produce un error si alguna clase no tiene la clase base en la jerarquía de herencia.
- -token/-t <señal>: señal que se
utiliza para separar los valores de las claves primarias de serie en la forma de serie del ID de objeto.
Utilice esta opción solamente si hay varios campos de clave primaria. El valor predeterminado es "::".
- -name/-n <nombre_clase_id>: nombre de la clase de identidad
que se generará.
Si se especifica esta opción, la herramienta wsappid se deberá ejecutar exactamente en una sola clase. Si los metadatos de clase ya nombran una clase de ID para el objeto, se ignorará esta opción. Si el nombre no está totalmente calificado, el paquete de la clase de persistencia se añadirá para formar el nombre totalmente calificado.
- suffix <sufijo_clase_id>: serie que se
añade como sufijo a cada nombre de clase persistente para formar el nombre de clase de
identidad.
Esta opción la altera temporalmente el parámetro -name/-n o cualquier clase de ID de objeto que se especifique en los metadatos.
- El nombre completo de una clase persistente.
- El nombre .java de una clase persistente.
- El archivo .class de una clase persistente.
Uso
La herramienta de identidad utilizada con JPA para el servidor de aplicaciones simplifica la tarea de creación de una clase de identidad para entidades que utilizan ID compuestos. Un ID compuesto es una identidad con más de un campo como clave primaria. La clase de entidad se debe compilar y las claves primarias deben estar identificadas en la clase de entidad. Ejecute la herramienta wsappid desde la línea de mandatos en el directorio raíz_perfil_apl/bin/. Cuando ejecute este mandato, se generará una clase que representará el ID compuesto de la entidad. En la consola se registrarán mensajes y errores según se haya especificado.
Ejemplos
@Entity
public class Employee {
@Id
private int division;
@Id private int id;
// . . .
}
Para poder utilizar la entidad, necesitará una clase de ID. Para este
ejemplo, presupongamos que la entidad se encuentra en el directorio src/main/java.Para generar una clase de ID para la entidad Magazine ejecute lo siguiente:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsappid.sh -s Id src/main/java/Employee.java -d src/main/java
![[IBM i]](../images/iseries.gif)
wsappid -s Id src/main/java/Employee.java -d src/main/java
![[Windows]](../images/windows.gif)
wsappid.bat -s Id src\main\java\Employee.java -d src\main\java
Se generará una nueva clase, EmployeeId.java,
en el directorio src/main/java. Información adicional
Lea la información sobre la herramienta de identidad de la aplicación en la información de las clases de persistencia en la guía del usuario Apache OpenJPA para obtener más detalles.