我正在尝试创建一个应用程序引导程序,如果它们存在,它将删除应用程序中的所有表,然后用新数据初始化它们。
我创建了一个加载数据源上下文的 Spring 上下文 - 但是我不知道如何覆盖数据源的初始化,以便可以根据数据源的加载方式自定义行为。所以.. 使用 Hibernate 作为我的 JPA 实现..
如果数据源是从应用程序加载的 - 那么我希望更新模式:
<persistence-unit name="myDB" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
如果数据源是从引导程序加载的 - 那么我需要以某种方式重载此行为,以便在加载新数据之前始终从头开始创建数据库:
<persistence-unit name="myDB" transaction-type="RESOURCE_LOCAL">
<properties>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
</persistence-unit>
我一直采用的方法不起作用,因为我将使用“更新”设置加载数据源,然后在尝试加载新数据之前删除表(如果存在)。但是 - 不再存在用于写入数据的表!
提前致谢
西蒙