Hibernate 使用Liquibase Maven插件从JPA实体生成changlog
我想将Liquibase DB迁移支持添加到我的项目中。它也使用弹簧靴。现在,我想通过使用Hibernate和JPA实体类,在不使用DB连接的情况下生成changelog。但它抛出了一个错误:Hibernate 使用Liquibase Maven插件从JPA实体生成changlog,hibernate,spring-boot,jpa,liquibase,liquibase-hibernate,Hibernate,Spring Boot,Jpa,Liquibase,Liquibase Hibernate,我想将Liquibase DB迁移支持添加到我的项目中。它也使用弹簧靴。现在,我想通过使用Hibernate和JPA实体类,在不使用DB连接的情况下生成changelog。但它抛出了一个错误: mvn liquibase:generateChangeLog [...] Error setting up or running Liquibase: javax.persistence.PersistenceException: Unable to resolve persistence unit r
mvn liquibase:generateChangeLog
[...]
Error setting up or running Liquibase: javax.persistence.PersistenceException: Unable to resolve persistence unit root URL: class path resource [] cannot be resolved to URL because it does not exist
[...]
我没有PersistentUnitXML文件,因为这都是由SpringBoot在运行时完成的。
该项目是一个多模块项目。Liquibase插件配置位于父POM中。实体位于子模块中
这是Liquibase的Maven插件配置:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies>
<configuration>
<url>hibernate:spring:org.kitodo.mediaserver.core.db.entities?dialect=liquibase.ext.hibernate.database.HibernateGenericDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</url>
<driver>liquibase.ext.hibernate.database.connection.HibernateDriver</driver>
</configuration>
</plugin>
org.liquibase
liquibase maven插件
${liquibase.version}
org.liquibase.ext
液化酶-5
3.6
org.springframework.boot
spring引导启动器数据jpa
2.0.0.1版本
hibernate:spring:org.kitodo.mediaserver.core.db.entities?dialogue=liquibase.ext.hibernate.database.hibernateGenericDialogue&;hibernate.physical\u naming\u strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&;hibernate.implicit\u naming\u strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
liquibase.ext.hibernate.database.connection.HibernateDriver
如果我使用DB连接而不是hibernate:spring:。。。它起作用了
如何在没有DB连接的情况下通过实体生成变更日志?我遇到了同样的问题,为了解决这个问题,我添加了包含实体的maven项目的依赖项。例如:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>org.liquibase.ext</groupId>
<artifactId>liquibase-hibernate5</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<!-- Add your maven project which hosts your entities classes -->
<dependency>
<groupId>org.kitodo.mediaserver</groupId>
<artifactId>org.kitodo.mediaserver.core.db.entities</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<configuration>
<url>hibernate:spring:org.kitodo.mediaserver.core.db.entities?dialect=liquibase.ext.hibernate.database.HibernateGenericDialect&hibernate.physical_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&hibernate.implicit_naming_strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy</url>
<driver>liquibase.ext.hibernate.database.connection.HibernateDriver</driver>
</configuration>
</plugin>
org.liquibase
liquibase maven插件
${liquibase.version}
org.liquibase.ext
液化酶-5
3.6
org.springframework.boot
spring引导启动器数据jpa
2.0.0.1版本
org.kitodo.mediaserver
org.kitodo.mediaserver.core.db.entities
1.0.0
hibernate:spring:org.kitodo.mediaserver.core.db.entities?dialogue=liquibase.ext.hibernate.database.hibernateGenericDialogue&;hibernate.physical\u naming\u strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy&;hibernate.implicit\u naming\u strategy=org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
liquibase.ext.hibernate.database.connection.HibernateDriver