2010-10-18 66 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文檔進行最新的更新。此操作從不刪除任何模式組件。

也許嘗試改變 「刷新」 到 「下降,加上」。