我有一个名为 COMMON 的图书馆项目。 COMMON 已部署到我们公司的产品中,并由许多其他项目使用。在 COMMON 中,我有一些常见的实体。在一个尚未建立数据库连接的较新项目中,我们看到此错误:
org.hibernate.tool.schema.internal.SchemaDropperImpl$DelayedDropActionImpl: HHH000478: Unsuccessful: drop table myschema.my_table if exists
这是令人恐惧的,因为这些实体不会被删除。它们甚至没有在行级别进行修改,因为它们已标记为@Immutable
。
在使用 COMMON 作为依赖项的项目中,我可以告诉hibernate不要通过application.properties中的以下设置来执行此操作:
spring.jpa.hibernate.ddl-auto=none
问题是,如果我想在我的 A 特定实体上使用ddl-auto功能,而不是在 COMMON上使用项目 ,这种方法无法做到这一点。另外,如果开发人员忘记添加此属性,我们也会删除表格。
我们可以限制在休眠状态下删除/创建实体吗?