0

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

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

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

4

1 回答 1

0

看看这里这里的用户手册。

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

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

于 2010-10-26T15:51:10.237 回答