是否可以使用JPA删除创建一些表

时间:2014-03-07 14:31:24

标签: jpa

您可以在persistence.xml中设置表,以便在启动时删除并重新创建。是否有可能更有选择性地让一些表保持填充并重新创建其他表?

1 个答案:

答案 0 :(得分:1)

幸运的是,从JPA 2.1开始,使用以下一组属性支持这种功能(甚至更多):

<property name="javax.persistence.schema-generation.database.action" 
value="drop-and-create"/>
<property name="javax.persistence.schema-generation.create-source" 
value="script"/>
<property name="javax.persistence.schema-generation.drop-source" 
value="script"/>
<property name="javax.persistence.schema-generation.drop-script-source" 
value="META-INF/drop-script.sql"/>
<property name="javax.persistence.schema-generation.create-script-source" 
value="META-INF/create-script.sql"/>
<property name="javax.persistence.sql-load-script-source" 
value="META-INF/load-script.sql"/>

在上面的示例中,javax.persistence.schema-generation.drop-source通知提供程序使用脚本来创建,删除或加载相应属性值中指定的数据库模式:

  • drop-script.sql DROP TABLE ...语句
  • create-script.sql CREATE TABLE ...语句
  • load-script.sql INSERT INTO ...语句

我希望它有所帮助。