2010-10-18 50 views
0

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

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

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

回答

0

查看用户手册herehere

  • 刷新:等同于保留,然后添加。
    • retain:保留给定XML定义中的所有模式组件,但将其余数据从数据库中删除。此操作从不添加任何模式组件。
    • add:这是默认操作,如果您不指定一个。它通过添加表,列,索引等将模式与给定的XML文档进行最新的更新。此操作从不删除任何模式组件。

也许尝试改变 “刷新” 到 “下降,加上”。