wsmapping 命令

wsmapping 工具用于提供实体对象模型到数据库关系模型的自顶向下映射。可使用 wsmapping 工具创建数据库表。

语法

在运行命令之前,必须在类路径上具有 persistence.xml 的副本,或在 -p [path_to_persistence.xml] 自变量中将其指定为属性文件。 请从 profile_root 目录的 bin 子目录中发出该命令。

命令语法如下所示:

[AIX][HP-UX][Linux][Solaris][z/OS]
wsmapping.sh [options][arguments]
[IBM i]
wsmapping [options][arguments] 
[Windows]
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 脚本,而不是用于修改数据库。

    将此参数与 buildschemaAction 组合使用,以便生成一个为当前映射重新创建模式(即使该模式已存在)的脚本。

  • -dropTables/-dt <true/t | false/f>:如果将此选项设置为 true,那么模式将删除 retainrefresh 操作期间似乎未使用的表。

    缺省值为 true

  • -dropSequences/-dsq <true/t | false/f>:如果将此选项设置为 true,那么模式将删除 retainrefresh 操作期间未使用的序列。

    缺省值为 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:确保给定类的映射有效且与数据库的模式匹配。此操作并不更改表的任何映射。如果有任何映射无效,那么将发生异常。
wsmapping 工具的各个附加自变量均必须是下列其中一项:
  • 持久类的完整名称。
  • 持久类的 .java 名称。
  • 持久类的 .class 文件。

如果未对 wsmapping 工具提供任何自变量,那么将对持久类列表中的类运行该工具。

用法

在运行 wsmapping 工具前,必须先配置数据源信息,其中包括 URL、用户名和密码。运行 wsmapping 工具以将字节码插入实体类前,必须运行 wsenhancer 工具。此外,您实体的已编译类文件应该在类路径上。假设能够在 target/classes 中找到实体类文件,例如:

[AIX][HP-UX][Linux][AIX HP-UX Solaris][Solaris][z/OS]
export CLASSPATH=${CLASSPATH}:target/classes 

wsmapping.sh ...
[IBM i]
export CLASSPATH=${CLASSPATH}:target/classes 

wsmapping ...
[Windows]
SET CLASSPATH=%CLASSPATH%;target\classes  

wsmapping.bat . . .

要创建表,请从 ${profile_root}/bin 目录运行 wsmapping 命令。完成后,将创建或更新数据库表。将消息和错误记录到由日志设置所指定的管理控制台中。

wsmapping.sh . . . 在 Windows 上:

提示: 通过对 openjpa.jdbc.SynchronizeMappings 属性指定 buildSchema 参数,映射工具将自动提供与数据库模式相匹配的缺省映射。如果缺省映射满足必要的数据库模式,您就不必运行此映射工具。

示例

要创建 Magazine.java 文件所需的数据库表:

[AIX][HP-UX][Linux][Solaris][z/OS]
${profile_root}/bin/wsmapping.sh Magazine.java
[IBM i]
${profile_root}/bin/wsmapping Magazine.java
[Windows]
${profile_root}\bin\wsmapping.sh Magazine.java

删除 Magazine.java 的表:

[AIX][HP-UX][Linux][Solaris][z/OS]
C:\> %profile_root%/bin/wsmapping.sh -sa dropDB Magazine.java
[IBM i]
C:\> %profile_root%/bin/wsmapping -sa dropDB Magazine.java
[Windows]
C:\> %profile_root%\bin\wsmapping.bat -sa dropDB Magazine.java

验证类路径上所有类的映射:

[AIX][HP-UX][Linux][Solaris][z/OS]
C:\> %profile_root%/bin/wsmapping.sh -a validate
[IBM i]
C:\> %profile_root%/bin/wsmapping -a validate
[Windows]
C:\> %profile_root%\bin\wsmapping.bat -a validate

附加信息

有关更多信息和示例,请参阅《Apache OpenJPA 用户指南》中的映射信息。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_wsmapping
文件名:rejb_wsmapping.html