wsappid command
The Java Persistence API (JPA) spec allows an entity's primary key to be made up of more than one column. In this case, the primary key is referred to as a "composite" or "compound" primary key. we need to provide an ID class, which is specified by the @IdClass annotation, in order to manage a composite primary key. Use the identity tool for JPA to generate an ID class for entities that use composite primary keys.
Syntax
Before running the command, have a copy of persistence.xml on the classpath, or specify it as a properties file through the -p [path_to_persistence.xml] argument. Issue the command from the bin subdirectory of the app_install_root directory.The command syntax is as follows:
[AIX] [HP-UX] [Linux] [Solaris]
wsappid.sh [parameters][arguments]
(Windows)
wsappid.bat [parameters][arguments]
Parameters
The wsappid tool accepts the standard set of command-line arguments defined by the configuration framework along with the following:
- -directory/-d <output_directory>: The path to the output directory. If the directory does not match the generated output ID class package, the package structure will be created beneath the directory. If this parameter is not specified, the wsappid tool will attempt to find the directory of the .java file for the class that is capable of persistence, and the wsappid tool uses the current directory if a .java file is not found.
- -ignoreErrors/-i <true/t | false/f>: If this parameter is set to false, an exception is thrown if the tool is run on any class that does not use the application identity or is not the base class in the inheritance hierarchy.
- -token/-t <token>: The token used to separate the values of stringed primary keys in the string form of the object ID. This option can be used only if there are multiple primary key fields. The default is "::".
- -name/-n <id_class_name>: The name of the identity class to generate. If this option is specified, the wsappid tool must be run on exactly one class. If the class meta-data already names an ID class for the object, this option will be ignored. If the name is not fully qualified, the package of the persistence class is appended to form the fully qualified name.
- suffix <id_class_suffix>: A string with which to suffix each persistent class name to form the identity class name. This option is overridden by the -name/-n parameter or by any object ID class specified in the meta-data.
Each additional argument to the wsappid tool must be one of the following:
- The full name of a persistent class.
- The .java name for a persistent class.
- The .class file of a persistent class.
Usage
The identity tool used with JPA for application server simplifies the task of creating an identity class for entities that use composite IDs. A composite ID refers to an identity that uses more than one field as its primary key. The entity class must be compiled, and primary keys need to be identified in the entity class. Run the wsappid tool from the command line in the app_install_root/bin/ directory. When you run this command, a new class representing the composite ID of the entity is generated. Messages and errors are logged to the console as specified.
Examples
Consider the following entity :@Entity public class Employee { @Id private int division; @Id private int id; // . . . }Before the entity can be used we need an ID class. For this example, assume that the entity is found in the src/main/java directory.To generate an ID class for the Magazine entity run:
[AIX] [HP-UX] [Linux] [Solaris]
wsappid.sh -s Id src/main/java/Employee.java -d src/main/java
(Windows)
wsappid.bat -s Id src\main\java\Employee.java -d src\main\javaA new class, EmployeeId.java, will be generated in the src/main/java directory.
Additional information
We can refer to the Application identity tool in persistence classes in the Apache OpenJPA User's Guide.
Related
Develop and packaging JPA applications for a Java SE environment