从Ant任务中删除表列 - OpenJpa

时间:2010-10-18 10:18:03

标签: java ant openjpa

据说,通过使用org.apache.openjpa.jdbc.ant.MappingToolTask​​,可以将域模型类与db模式同步。因此,通过将以下脚本作为Ant任务,我可以将新列添加到persistance.xml上的给定数据库中。

<target>
   <taskdef name="mappingtool" classpathref="maven.compile.classpath" classname="org.apache.openjpa.jdbc.ant.MappingToolTask" />
      <mappingtool schemaAction="refresh" >
      </mappingtool>
</target>

每次向域类添加新属性时,此脚本都会添加新列。但如果我从域类中删除它,它不会删除相应的列。无论如何,使用单个ant脚本存档同步(添加/删除)?

1 个答案:

答案 0 :(得分:0)

查看用户手册herehere

  • 刷新:等效于保留,然后添加。
    • 保留:将所有架构组件保留在给定的XML定义中,但将其余部分从数据库中删除。此操作从不添加任何架构组件。
    • 添加:如果您未指定,则为默认操作。它通过添加表,列,索引等使模式与给定的XML文档保持同步。此操作永远不会删除任何模式组件。

或许尝试将“刷新”更改为“删除,添加”。

相关问题