wsappid 命令
Java™ Persistence API (JPA) 规范支持由多个列组成实体主键。在此情况下,主键称为“组合主键”或“复合主键”。提供一个 ID 类,该类由 @IdClass 注释指定,用于管理组合主键。用 JPA 的标识工具为使用组合主键的实体生成标识类。
语法
在运行此命令之前,您必须在类路径中具有 persistence.xml 文件的副本,或者在 -p [path_to_persistence.xml] 自变量中将其指定为属性文件。请从 profile_root 目录的 bin 子目录中发出该命令。
命令语法如下所示:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsappid.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsappid [parameters][arguments]
![[Windows]](../images/windows.gif)
wsappid.bat [parameters][arguments]
参数
- -directory/-d <output_directory>:输出目录的路径。
如果该目录与生成的输出标识类包不匹配,那么将在该目录下创建包结构。如果未指定此参数,那么 wsappid 工具将为支持持久性的类查找 .java 文件的目录。如果找不到 .java 文件,那么 wsappid 工具将使用当前目录。
- -ignoreErrors/-i <true/t | false/f>:如果此参数设置为 false,那么当工具在不使用应用程序身份的任何类上运行时,将发生异常。如果任何类在继承层次结构中没有基类,那么也将发生错误。
- -token/-t <token>:该标记用于将字符串化主键的值以对象标识的字符串格式隔开。
仅当具有多个主键字段时才使用此选项。缺省值为“::”。
- -name/-n <id_class_name>:要生成的身份类的名称。
如果指定了此选项,那么必须仅对一个类运行 wsappid 工具。如果类元数据已指定对象的标识类,那么将忽略此选项。如果名称不是标准名称,那么将在该名称后面添加持久性类的包名以构成标准名称。
- suffix <id_class_suffix>:一个字符串,用作每个持久类名的后缀以构成身份类名。
此选项会被 -name/-n 参数或在元数据中指定的任何对象标识类覆盖。
- 持久类的完整名称。
- 持久类的 .java 名称。
- 持久类的 .class 文件。
用法
将该标识工具与用于应用程序服务器的 JPA 配合使用,就可以简化对使用组合标识的实体创建标识类这一任务。组合标识指的是一个以多个字段作为其主键的身份。实体类必须进行编译,而主键必须在该实体类中进行标识。在 profile_root/bin/ 目录中从命令行运行 wsappid 工具。运行此命令时,将生成一个表示该实体的组合标识的新类。消息和错误会被记录至指定的控制台中。
示例
@Entity
public class Employee {
@Id
private int division;
@Id private int id;
// . . .
}
使用该实体之前,需要一个标识类。对于此示例,假定在 src/main/java 目录中找到了该实体。要为 Magazine 实体生成标识类,请运行以下命令:
![[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
将在 src/main/java 目录中生成一个新类 EmployeeId.java。附加信息
请阅读《Apache OpenJPA 用户指南》中的“持久性类中的应用程序身份工具”信息以获取更多信息。