wsreversemapping 命令
wsreversemapping 工具根据数据库模式生成持久类定义和元数据。
语法
在运行命令之前,必须在类路径上具有 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)
wsreversemapping.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsreversemapping [parameters][arguments]
![[Windows]](../images/windows.gif)
wsreversemapping.bat [parameters][arguments]
参数
- -schemas/-s <schema and table names>:用逗号分隔的模式和表名列表,在未提供任何 XML 模式文件的情况下用于运行 wsreversmapping 工具。
列表的每个元素均必须遵循 openjpa.jdbc.Schemas 属性的命名约定。如果省略此参数标志,那么此参数将缺省为 Schemas 属性的值。如果未定义 Schemas 属性,那么将对所有模式进行逆向映射。
- -package/-p <package name>:所生成的类的包名。
如果未给定任何包名,那么所生成的代码将不包含包声明。
- -directory/-d <output directory>:所生成的所有代码和元数据均会写入此路径处的目录中。
如果该路径与类的包不匹配,那么将在此目录下创建包结构。此参数缺省为当前目录。
- -useSchemaName/-sn <true/t | false/f>:将此参数标志设置为 true 以在所生成的每个类的名称中包含模式名和表名。
处理多个具有同名表的模式时,这种方法非常有用。
- -useForeignKeyName/-fkn <true/t | false/f>:如果要让关系的字段名基于数据库外键名,请将此参数标志设置为 true。
缺省情况下,根据相关类的名称来派生关系字段名称。
- -nullableAsObject/-no <true/t | false/f>:缺省情况下,所有非外键列均映射至基本类型。
将此参数标志设置为 true 以生成基本类型包装程序字段,而不是生成支持空值的列。
- -blobAsObject/-bo <true/t | false/f>:缺省情况下,所有二进制列均映射至 byte[] 字段。
将此参数标志设置为 true 以将它们改为映射至“对象”字段。
注意: 当按此方式进行映射时,假定列包含序列化的 Java™ 对象。 - -primaryKeyOnJoin/pkj <true/t | false/f>:标准逆向映射工具行为是将所有具有主键的表映射至持久类。
如果您的模式在多个连接表上也具有主键,请将此标志设置为 true 以避免为那些表创建类。
- -inverseRelations/-ir <true/t | false/f>:将此参数标志设置为 false 以阻止为检测到的每个多对一或一对一关系创建反向一对多或一对一关系。
- -useDatastoreIdentity/-ds <true/t | false/f>:设置为 true 以将数据存储器标识用于具有单个数字主键列的表。
通常,该工具将应用程序标识用于所生成的所有类。
- -useBuiltinIdentityClass/-bic <true/t
| false/f>:将此参数标志设置为 false 以在可能时阻止 wsreversemapping 工具使用内置应用程序标识类。
即使在只有一个主键列时,这也会强制该工具创建定制应用程序标识类。
- -innerIdentityClasses/-inn <true/t | false/f>:将此参数标志设置为 true 以将所生成的任何应用程序标识类创建为持久类中的静态内部类。
缺省设置为 false。
- -identityClassSuffix/-is <suffix>:在类名后面添加的后缀,用于组成应用程序标识类名(对于内部标识类,则为内部类名)。
缺省后缀是 Id。
- -typeMap/-typ <type mapping>:指定为模式中所看到的每种 SQL 类型生成的缺省 Java 类的字符串。
格式为 SQLTYPE1=JavaClass1, SQLTYPE2=JavaClass2。SQL 类型名称首先根据 SQLTYPE(SIZE,PRECISION),然后根据 SQLTYPE(SIZE),再根据SQLTYPE 来查找定制。如果找到类型为 CHAR 的列,那么它将首先查找 CHAR(50,0) 类型名称规范,再查找 CHAR(50),最后查找 CHAR。例如,要为大小均为 50 个字符的每个 char 列生成 char 数组,以及要为每个类型名称 INTEGER 生成 short,可指定 CHAR(50)=char[],INTEGER=short。
注意: 数据库不同,所报告的类型名称报告方式亦不同,一种数据库类型对于其他数据库可能无效。启用登录到元数据通道上的 TRACE 级别来跟踪 WebSphere Application Server 的 JPA 正在检查哪些类型名称。 - -customizerClass/-cc <class name>:org.apache.openjpa.jdbc.meta.ReverseCustomizer 定制插件的完整类名。
如果您未单独指定逆向定制程序,那么系统会将其缺省为 PropertiesReverseCustomizer。此定制程序支持在使用 -customizerProperties 标志给定的属性文件中指定简单定制选项。
- -customizerProperties/-cp<properties file or resource>:初始化时传递到逆向定制程序的属性文件的路径或资源名称。
- -customizer/-c <property name> <property value>:将给定的属性名与指定的逆向定制程序中的相应 Java Bean 属性相匹配,并将其设置为给定的值。
用法
- 您必须已配置数据库表和数据库连接。
- 在命令行中从 $ {profile_root}/bin 目录运行 wsreversemapping 工具。
- 该工具将为每个类生成 .java 文件和一个 XML 描述符文件 orm.xml。
示例
根据 schema.xml 文件中保存的信息生成实体。schema.xml 是通过运行模式工具创建的。Java 文件创建于 src 目录中,并使用程序包 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
根据 DB2® 数据库中的信息生成实体。这些实体是在 src 目录中创建的,且使用的是 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
附加信息
有关更多信息,请参阅《Apache OpenJPA 用户指南》中的『映射』部分。