wsmapping 命令
wsmapping 工具用于提供实体对象模型到数据库关系模型的自顶向下映射。可使用 wsmapping 工具创建数据库表。
语法
命令语法如下所示:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsmapping.sh [options][arguments]
![[IBM i]](../images/iseries.gif)
wsmapping [options][arguments]
![[Windows]](../images/windows.gif)
wsmapping.bat [options][arguments]
参数
- -schemaAction/-sa <add | refresh | drop
| build | reflect | retain | createDB | import | export | none>:对模式实现此操作。
这些选项与该模式工具的操作相对应。如果未指定任何操作,那么 Add 是缺省操作。可在列表中写入多个操作,操作之间用逗号分隔。
注: wsmapping 工具接受 -action/-a 标志以指定要对个别类执行的操作。除非对所有持久类型一次性运行 wsmapping 或删除映射,否则必须使用缺省 add 操作或 build 操作。否则,您可能会意外删除您当前未对其运行该工具的类所使用的模式组件。 - -schemaFile/-sf <true/t | false/f>:此选项可用于将已规划的模式写入 XML 文档,而不是用于修改数据库。
然后,可使用模式工具来修改和操作 XML 文档并将该 XML 文档落实至数据库。
- -sqlFile/-sql <stdout | output file>:此选项可用于将已规划的模式修改写入 SQL 脚本,而不是用于修改数据库。
将此参数与 build 的 schemaAction 组合使用,以便生成一个为当前映射重新创建模式(即使该模式已存在)的脚本。
- -dropTables/-dt <true/t | false/f>:如果将此选项设置为 true,那么模式将删除 retain 和 refresh 操作期间似乎未使用的表。
缺省值为 true。
- -dropSequences/-dsq <true/t | false/f>:如果将此选项设置为 true,那么模式将删除 retain 和 refresh 操作期间未使用的序列。
缺省值为 true。
- -openjpatables/-ot <true/t | false/f>:反映模式时,此参数确定是否反映名称以 OPENJPA_ 开头的表和序列。
某些 OpenJPA 组件可使用这些表和序列,例如表模式工厂。使用其他操作时,openjpaTables 参数控制是否可以删除这些表。缺省设置为 false。
- -ignoreErrors/-i <true/t | false/f>:如果设置为 false,那么在该工具遇到数据库错误时,将发生异常。
缺省值设置为 false。
- -schemas/-s <schema list>:表示运行 wsschema 工具时 OpenJPA 应该访问的模式名和表名列表。
这相当于将 openjpa.jdbc.Schemas 属性设置为运行一次。此参数与 wsschema 工具中的 -schemas/-s 参数相符。如果未将 -readSchema/-rs 设置为 true,那么将忽略此选项。
- -readSchema/-rs <true/t | false/f>:将此选项设置为 true 以在映射工具运行时读取整个现有模式。
读取现有模式可确保 OpenJPA 不会生成任何使用与现有名称冲突的表、索引、主键或外键名称的映射。
注: 选择 -readSchema/-rs 功能可能会减缓大型模式的处理过程,取决于具体的 JDBC 驱动程序。 - -primaryKeys/-pk <true/t | false/f>:此标志确定是否可在现有表上操作主键。
缺省值为 true。
- -foreignKeys/fk <true/t | false/f>:此标志确定是否可在现有表上操作外键。
缺省值为 true。这意味着要向已映射的类添加新外键,就必须将此参数标志显式地设置为 true。
- -indexes/-ix <true/t | false/f>:此标志确定是否可在现有表上操作索引。
缺省值为 true。这意味着要向已映射的类添加新索引,就必须将此参数标志显式地设置为 true。
- -sequences/-sq <true/t | false/f>:此标志确定是否可操作序列。
缺省值为 true。
- -meta/-m <true/t | false/f>:此标志确定映射是否适用于元数据,而不适用于或同时适用于标准映射。
- wsmapping 工具接受 -action/-a 标志以指定对每个类执行的操作。可在列表中写入多个操作,操作之间用逗号分隔。可用操作为:
- buildSchema:这是缺省操作。buildSchema 操作使数据库模式与现有映射匹配。如果提供的映射与类定义冲突,那么 OpenJPA 将失败并发出参考异常。
- validate:确保给定类的映射有效且与数据库的模式匹配。此操作并不更改表的任何映射。如果有任何映射无效,那么将发生异常。
- 持久类的完整名称。
- 持久类的 .java 名称。
- 持久类的 .class 文件。
如果未对 wsmapping 工具提供任何自变量,那么将对持久类列表中的类运行该工具。
用法
在运行 wsmapping 工具前,必须先配置数据源信息,其中包括 URL、用户名和密码。运行 wsmapping 工具以将字节码插入实体类前,必须运行 wsenhancer 工具。此外,您实体的已编译类文件应该在类路径上。假设能够在 target/classes 中找到实体类文件,例如:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[AIX HP-UX Solaris]](../images/unix.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
export CLASSPATH=${CLASSPATH}:target/classes
wsmapping.sh ...
![[IBM i]](../images/iseries.gif)
export CLASSPATH=${CLASSPATH}:target/classes
wsmapping ...
![[Windows]](../images/windows.gif)
SET CLASSPATH=%CLASSPATH%;target\classes
wsmapping.bat . . .
要创建表,请从 ${profile_root}/bin 目录运行 wsmapping 命令。完成后,将创建或更新数据库表。将消息和错误记录到由日志设置所指定的管理控制台中。
wsmapping.sh . . . 在 Windows 上:
示例
要创建 Magazine.java 文件所需的数据库表:
![[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/wsmapping.sh Magazine.java
![[IBM i]](../images/iseries.gif)
${profile_root}/bin/wsmapping Magazine.java
![[Windows]](../images/windows.gif)
${profile_root}\bin\wsmapping.sh Magazine.java
删除 Magazine.java 的表:
![[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/wsmapping.sh -sa dropDB Magazine.java
![[IBM i]](../images/iseries.gif)
C:\> %profile_root%/bin/wsmapping -sa dropDB Magazine.java
![[Windows]](../images/windows.gif)
C:\> %profile_root%\bin\wsmapping.bat -sa dropDB Magazine.java
验证类路径上所有类的映射:
![[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/wsmapping.sh -a validate
![[IBM i]](../images/iseries.gif)
C:\> %profile_root%/bin/wsmapping -a validate
![[Windows]](../images/windows.gif)
C:\> %profile_root%\bin\wsmapping.bat -a validate
附加信息
有关更多信息和示例,请参阅《Apache OpenJPA 用户指南》中的映射信息。