Spring Boot 如果依赖项控制了数据库结构,而我们无法更改它,那么有什么方法可以向应用程序添加新实体?

kjthegm6  于 2023-04-30  发布在  Spring
关注(0)|答案(1)|浏览(80)

**Env:**我们有一个用Sping Boot 编写的应用程序。

该应用程序由2个模块组成。

  • 第一个模块 * 负责业务逻辑和数据库。该模块使用Liquibase来控制数据库结构。
  • 第二模块 * 依赖于第一模块,负责REST API(例如)。
    任务:我们想在第二模块中添加一个新的JPA实体。新的JPA实体与业务逻辑无关,它具有辅助功能。我们不能改变第一个模块的源代码。
    **问题:**有哪些实现方式?
    **问题:**我们可以用通常的方式实现(实体、仓库等)。注解)。但是我们如何强制应用程序为新实体创建表呢?在我们的例子中,不可能使用Hibernate为新实体创建表,因为依赖项使用Liquibase创建数据库结构。因此,spring.jpa.hibernate.ddl-auto属性为none
gcuhipw9

gcuhipw91#

我找到了解决这个任务的办法。
Liquibase只有一个变更日志文件(spring.liquibase.changeLog属性),它是所有包含的变更集文件的入口点(这些文件使用include标记连接)。
我们可以覆盖spring.liquibase.changeLog属性以使用我们自己的更改日志文件。并且我应该在新的变更日志文件中包含在属性覆盖之前使用的变更日志文件。
这样,我们将保留原始的数据库结构,并有机会添加自定义更改集。

相关问题